if (typeof(MooTools) != 'undefined'){

        var subnav = new Array();

        Element.extend(
        {
            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();
                }
            },

            setActive: function () {
                //this.addClass(classname);
                this.className+='sfhover';
                /*
                for(var i=0;i<this.childNodes.length; i++) {
                    if(this.childNodes[i].nodeName.toLowerCase() == 'a') {
                        //$(this.childNodes[i]).addClass(classname);
                        $(this.childNodes[i]).setActive();
                        return;
                    }
                }
                */
            },

            setDeactive: function () {
                //this.removeClass(classname);
                this.className=this.className.replace(new RegExp("sfhover\\b"), "");
                /*
                for(var i=0;i<this.childNodes.length; i++) {
                    if(this.childNodes[i].nodeName.toLowerCase() == 'a') {
                        $(this.childNodes[i]).setDeactive();
                        return;
                    }
                }
                */
            },

            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();
                    //this.parentNode.setActive();
                } else {
                    //this.parentNode.setDeactive();
                }

                if (this.status == 'hide')
                {
                    this.hidding = 1;
                    //this.myFx1.stop();
                    this.myFx2.stop();
                    //this.myFx1.start(1,0);
                    if (this.parent._id) this.myFx2.start(this.offsetWidth,0);
                    else this.myFx2.start(this.offsetHeight,0);
                } else {
                    this.setStyle('left', 'auto');
                    //this.myFx1.stop();
                    this.myFx2.stop();
                    //this.myFx1.start(0,1);
                    if (this.parent._id) this.myFx2.start(0,this.mw);
                    else this.myFx2.start(0,this.mh);
                }
            },

            init: function() {
                this.mw = this.clientWidth;
                this.mh = this.clientHeight;
                //this.myFx1 = new Fx.Style(this, 'opacity');
                //this.myFx1.set(0);
                if (this.parent._id)
                {
                    this.myFx2 = new Fx.Style(this, 'width', {duration: 300});
                    this.myFx2.set(0);
                }else{
                    this.myFx2 = new Fx.Style(this, 'height', {duration: 300});
                    this.myFx2.set(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)
                    {
                        //alert(_obj._id);
                        return true;
                    }
                    obj = obj.parent;
                }
                return false;
            }


        });
        

        var DropdownMenu = new Class({  
            initialize: function(element)
            {
                //$(element).mh = 0;
                $A($(element).childNodes).each(function(el)
                {
                    if(el.nodeName.toLowerCase() == 'li')
                    {
                        //if($(element)._id) $(element).mh += 30;
                        $A($(el).childNodes).each(function(el2)
                        {
                            if(el2.nodeName.toLowerCase() == 'ul')
                            {
                                $(el2)._id = subnav.length+1;
                                $(el2).parent = $(element);
                                subnav.push ($(el2));
                                el2.init();
                                el.addEvent('mouseover', function()
                                {
                                    el.setActive();
                                    el2.show(0);
                                    return false;
                                });
        
                                el.addEvent('mouseout', function()
                                {
                                    el.setDeactive();
                                    el2.hide(20);
                                });
                                new DropdownMenu(el2);
                                el.hasSub = 1;
                            }
                        });
                        if (!el.hasSub)
                        {
                            el.addEvent('mouseover', function()
                            {
                                el.setActive();
                                return false;
                            });

                            el.addEvent('mouseout', function()
                            {
                                el.setDeactive();
                            });
                        }
                    }
                });
                return this;
            }
        });
        
        window.addEvent('domready',function() {new DropdownMenu($('ja-cssmenu'))});
    
    }else {
    
        sfHover = function() {
        var sfEls = document.getElementById("ja-cssmenu").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);
}
