﻿// GK MooMenu v.2.0 Copyright by GavickPro
window.addEvent("domready", function() {
    // necessary classes
    Fx.Height = Fx.Style.extend({ initialize: function(el, options) { $(el).setStyle('overflow', 'hidden'); this.parent(el, 'height', options); }, toggle: function() { var style = this.element.getStyle('height').toInt(); return (style > 0) ? this.start(style, 0) : this.start(0, this.element.scrollHeight); }, show: function() { return this.set(this.element.scrollHeight); } });
    Fx.Width = Fx.Style.extend({ initialize: function(el, options) { this.element = $(el); this.element.setStyle('overflow', 'hidden'); this.iniWidth = this.element.getStyle('width').toInt(); this.parent(this.element, 'width', options); }, toggle: function() { var style = this.element.getStyle('width').toInt(); return (style > 0) ? this.start(style, 0) : this.start(0, this.iniWidth); }, show: function() { return this.set(this.iniWidth); } });
    Fx.Opacity = Fx.Style.extend({ initialize: function(el, options) { this.now = 1; this.parent(el, 'opacity', options); }, toggle: function() { return (this.now > 0) ? this.start(1, 0) : this.start(0, 1); }, show: function() { return this.set(1); } });

    var main = $("horiz-menu");
    var levels = new Array();
    var opacityFX = new Array(); var heightFX = new Array(); var widthFX = new Array();
    main.getChildren().each(function(el, i) {
        levels.push(new Array());
        opacityFX.push(new Array()); heightFX.push(new Array()); widthFX.push(new Array());
        el.getElementsBySelector("ul ul").each(function(elm, j) {
            levels[i].push(elm.getParent());
            opacityFX[i].push(new Fx.Opacity(elm, { duration: 180, transition: Fx.Transitions.linear }).set(0)); heightFX[i].push(new Fx.Height(elm, { duration: 180, transition: Fx.Transitions.linear }).set(0)); widthFX[i].push(new Fx.Width(elm, { duration: 180, transition: Fx.Transitions.linear }).set(0));
        });
    });

    levels.each(function(e, k) {
        e.each(function(a, l) {
            a.addEvents({
                "mouseenter": function() {
                    a.getChildren()[1].setStyle("overflow", "hidden");
                    if (window.ie7 && (a.getChildren()[1].getParent() && a.getChildren()[1].getParent().getParent() && a.getChildren()[1].getParent().getParent().getParent() && a.getChildren()[1].getParent().getParent().getParent().hasClass("level1")) && a.getChildren()[1].getStyle("position") != 'absolute') a.getChildren()[1].setStyle("margin-top", "35px");
                    a.getChildren()[1].setStyle("position", "absolute");
                    opacityFX[k][l].toggle(); heightFX[k][l].toggle(); widthFX[k][l].toggle(); (function() { a.getChildren()[1].setStyle("overflow", "") }).delay(180);
                },
                "mouseleave": function() {
                    a.getChildren()[1].setStyle("overflow", "hidden");
                    opacityFX[k][l].stop().set(0); heightFX[k][l].stop().set(0); widthFX[k][l].stop().set(0);
                }
            });
        });
    });
    // submenu activation
    $ES('li.level1', '#horiz-menu').each(function(el) {
        if (($E('.active', el) || el.hasClass('active')) && $E('ul', el)) {
            $E('ul', el).setStyle("display", "block");
            $ES('li.level1', '#horiz-menu').each(function(elm) {
                elm.addEvent("mouseenter", function() {
                    if (elm != el) {
                        if (!window.ie) $E('ul', el).setProperty("style", "");
                        else $E('ul', el).removeProperty("style");
                    }
                });

                elm.addEvent("mouseleave", function() {
                    if (elm != el) {
                        $E('ul', el).setStyle("display", "block");
                    }
                });
            });
        }
    });
});
