eventHandler.addLoadEvent(function () {
    var headNavi = {
        activators:getElementsByClassName('headNavi'),
        opacityStepIn:.15,
        opacityStepOut:.05,
        zIndex:cssHandler.getCSSValue(getElementsByClassName('headNavi')[0], 'zIndex'),
        activeMenus:0,
        buildMenus:function () {
            var ul, li, a;
            for (i in no) {
                ul = document.createElement('ul');
                for (y in no[i].pages) {
                    li = ul.appendChild(document.createElement('li'));
                    a = li.appendChild(document.createElement('a'));
                    a.href = no[i].pages[y].url;
                    a.appendChild(document.createTextNode(y))
                }
                document.getElementById('headNavi0'+no[i].id).appendChild(ul);
            }
        },
        init:function () {
            var that = this;
            for (var i in this.activators) {
                if (typeof this.activators[i].getElementsByTagName != 'undefined') {
                    try {
                        this.activators[i].subMenu = this.activators[i].getElementsByTagName('UL')[0];
                        if (typeof this.activators[i].subMenu != 'undefined') {
                            throw true;
                        } else {
                            throw false
                        }
                    } catch (e) {
                        if (e==false) {
                            continue;
                        }
                    }
                    this.activators[i].subMenu.opacity = 0;
                    this.activators[i].subMenu.opacityStepIn = this.opacityStepIn;
                    this.activators[i].subMenu.opacityStepOut = this.opacityStepOut;
                    this.activators[i].subMenu.state = 'hidden';
                    cssHandler.setOpacity(this.activators[i].subMenu, 0);
                    if (userAgent.app=='MSIE' && userAgent.version < 9) {
                        this.activators[i].subMenu.setOpacity = function (opacity) {
                            this.style.filter = 'Alpha(opacity:'+(opacity*100)+')';
                        };
                    } else {
                        this.activators[i].subMenu.setOpacity = function (opacity) {
                            this.style.opacity = opacity;
                        };
                    }
                    /**
                     * Hack off the list elements BG Images for IE6
                     * left been rendered very slow in Animating this *rolleyes*
                     */
                    if (navigator.appVersion.indexOf('MSIE 6')>-1) {
                        this.activators[i].subMenu.listElements = this.activators[i].subMenu.getElementsByTagName('LI');
                        this.activators[i].subMenu.listElementsBackgroundImage = cssHandler.getCSSValue(this.activators[i].subMenu.listElements[0], 'backgroundImage');
                        for (var n=0; n<this.activators[i].subMenu.listElements.length; n++) {
                            this.activators[i].subMenu.listElements[n].style.backgroundImage = 'none';
                        }
                        this.activators[i].subMenu.toggleBackground = function (x) {
                            if(x==1) {
                                for (var i=0; i< this.listElements.length; i++) {
                                    this.listElements[i].style.backgroundImage = this.listElementsBackgroundImage;
                                }
                            } else {
                                for (var i=0; i< this.listElements.length; i++) {
                                    this.listElements[i].style.backgroundImage = 'none';
                                }
                            }
                        }
                    }
                    /**
                     * Attach events
                     */
                    eventHandler.addEvent(this.activators[i], 'mouseover', function () {
                        if (typeof this.interval != 'undefined') {
                            window.clearInterval(this.interval);
                            that.activeMenus--;
                            this.interval = undefined;
                        }
                        that.activeMenus++;
                        this.subMenu.style.display = 'block';
                        this.subMenu.state = 'fadeIn';
                        this.style.zIndex = that.zIndex;
                        that.zIndex++;
                        this.interval = window.setInterval(function () {
                            this.subMenu.opacity += this.subMenu.opacityStepIn;
                            if (this.subMenu.opacity >= 1) {
                                this.subMenu.setOpacity(1);
                                window.clearInterval(this.interval);
                                if (typeof this.subMenu.toggleBackground == 'function') {
                                    this.subMenu.toggleBackground(1);
                                }
                                this.subMenu.state = 'visible';
                                this.interval = undefined;
                            } else {
                                this.subMenu.setOpacity(this.subMenu.opacity);
                            }
                        }.bindAsTimer(this), 40);
                    });
                    eventHandler.addEvent(this.activators[i], 'mouseout', function () {
                        if (typeof this.interval != 'undefined') {
                            window.clearInterval(this.interval);
                            this.interval = undefined;
                        }
                        if (typeof this.subMenu.toggleBackground == 'function') {
                            this.subMenu.toggleBackground(0);
                        }
                        this.interval = window.setInterval(function () {
                            if (this.subMenu.state == 'fadeIn') {
                                if (this.subMenu.opacity >= 1) {
                                    this.subMenu.setOpacity(1);
                                    this.subMenu.state = 'fadeOut';
                                } else {
                                    this.subMenu.opacity += this.subMenu.opacityStepIn;
                                }
                            } else {
                                this.subMenu.opacity -= this.subMenu.opacityStepOut;
                            }

                            if (this.subMenu.opacity <= 0) {
                                this.subMenu.setOpacity(0);
                                this.subMenu.style.display = 'none';
                                window.clearInterval(this.interval);
                                this.interval = undefined;
                                this.subMenu.state = 'hidden';
                                that.activeMenus--;
                                if (that.activeMenus == 0) {
                                    // All submenus hidden
                                }
                            } else {
                                this.subMenu.setOpacity(this.subMenu.opacity);
                            }
                        }.bindAsTimer(this), 40);
                    });
                }
                var link = this.activators[i].getElementsByTagName('A')[0];
                for (var x=0;x<link.childNodes.length;x++) {
                    link.parentNode.insertBefore(link.childNodes[x].cloneNode(true), link);
                    link.parentNode.insertBefore(document.createTextNode(' '), link);
                }
                link.parentNode.removeChild(link);
            }
        }
    }
    headNavi.buildMenus();
    headNavi.init();
});

