Файл: js/mega_menudropdown.js
Строк: 160
<?php
/**
 # mega_alatinum - Mega Alatinum Template for Joomla! 1.7
 # author         OmegaTheme.com
 # copyright     Copyright(C) 2011 - OmegaTheme.com. All Rights Reserved.
 # @license     http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
 # Website:     http://omegatheme.com
 # Technical support: Forum - http://omegatheme.com/forum/
**/
/**------------------------------------------------------------------------
 * file: mega.menudropdown.js 1.7.0 00001, April 2011 12:00:00Z OmegaTheme $
 * package:    Mega Alatinum Template
 *------------------------------------------------------------------------*/
if (typeof(MooTools) != 'undefined') {
    var subnav = new Array();
    
    Element.implement(
    {
        hide: function(timeout)
        {
            this.status = 'hide';
            clearTimeout(this.timeout);
            if (timeout) {
                this.timeout = setTimeout(this.anim.bind(this), timeout);
            } else {
                this.anim();
            }
        },
        
        show: function(timeout)
        {
            this.status = 'show';
            clearTimeout(this.timeout);
            if (timeout) {
                this.timeout = setTimeout(this.anim.bind(this), timeout);
            } else {
                this.anim();
            }
        },
        
        set_Active: function()
        {
            this.className += ' sfhover';
        },
        
        setDeactive: function() {
            this.className = this.className.replace(new RegExp(' sfhover\b'), '');
        },
        
        anim: function()
        {
            if ((this.status == 'hide' && this.style.left != 'auto') || (this.status == 'show' && this.style.left == 'auto' && !this.hidding)) return;
            this.setStyle('overflow', 'hidden');
            if (this.status == 'show') {
                this.hidding = 0;
                this.hideAll();
            }
            
            if (this.status == 'hide') {
                this.hidding = 1;
                this.myFx2.cancel();
                if (this.parent._id) {
                    this.myFx2.start('width', this.offsetWidth, 0);
                } else {
                    this.myFx2.start('height', this.offsetHeight, 0);
                }
            } else {
                this.setStyle('left', 'auto');
                this.myFx2.cancel();
                if (this.parent._id) this.myFx2.start('width', 0, '205px');
                    else this.myFx2.start('height', 0, this.mh);
            }
        },
        init: function()
        {
            this.mw = this.clientWidth;
               this.mh = this.clientHeight;
            if (this.parent._id) {
                this.myFx2 = new Fx.Tween(this, {
                    duration: 400,
                    link: 'cancel'
                });
                this.myFx2.set('width',0);
            } else {
                this.myFx2 = new Fx.Tween(this, {
                    duration: 400,
                    link: 'cancel'
                });
                this.myFx2.set('height',0);
            }
            
            this.setStyle('left', '-999em');
            
            animComp = function()
            {
                if (this.status == 'hide') {
                    this.setStyle('left', '-999em');
                    this.hidding = 0;
                }
                
                this.setStyle('overflow', '');
            }
            this.myFx2.addEvent('onComplete', animComp.bind(this));
        },
        
        hideAll: function()
        {
            for (var i = 0; i < subnav.length; i++) {
                if (!this.isChild(subnav[i])) {
                    subnav[i].hide(0);
                }
            }
        },
        
        isChild: function(_obj)
        {
            obj = this;
            while (obj.parent) {
                if (obj._id == _obj._id) {
                    return true;
                }
                obj = obj.parent;
            }
            return false;
        }
    });
    
    var DropdownMenu = new Class({
        
        initialize: function(element)
        {
            if(element.className == 'menu_round')
            {
                $A($(element).childNodes).each(function(el){
                    if(el.className == 'menu_mid'){
                        $A($(el).childNodes).each(function(el_1){
                            if(el_1.nodeName.toLowerCase() == 'ul'){
                                elm = $(el_1);
                            }
                        });
                    }
                });
            }
            else
            {
                elm = $(element);
            }
            $A($(elm).childNodes).each(function(el_2){
                if (el_2.nodeName.toLowerCase() == 'li') {
                    $A($(el_2).childNodes).each(function(el_3) {
                        if (el_3.className == 'menu_round') {
                            $(el_3)._id = subnav.length + 1;
                            $(el_3).parent = $(element);
                            subnav.push($(el_3));
                            el_3.init();
                            
                            el_2.addEvent('mouseenter', function() {
                                el_2.set_Active();
                                el_3.show(0);
                                return false;
                                
                            });
                            
                            el_2.addEvent('mouseleave', function() {
                                el_2.setDeactive();
                                el_3.hide(20);
                            });
                            
                            new DropdownMenu(el_3);
                            el_2.hasSub = 1;
                        }
                    });
                    if (!el_2.hasSub) {
                        el_2.addEvent('mouseenter', function() {
                            el_2.set_Active();
                            return false;
                        });
                        
                        el_2.addEvent('mouseleave', function() {
                            el_2.setDeactive();
                        });
                    }
                }
            });
            return this;
        }
    });
        window.addEvent('domready', function() {
            new DropdownMenu(document.getElement('#mega_menu ul.level0'));
        });
} else {
    sfHover = function()
    {
        var sfEls = document.getElementById("mega_menu").getElementsByTagName("li");
        for (var i = 0; i<sfEls.length; ++i) {
            sfEls[i].onmouseover = function() {
                this.className += " sfhover";
            }
            sfEls[i].onmouseout = function() {
                this.className = this.className.replace(new RegExp(" sfhover\b"), "");
            }
        }
    }
    if (window.attachEvent) window.attachEvent("onload", sfHover);
}
/* +++++++++++++++ End +++++++++++++++++++ */
?>