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.onDomReady(function() {new DropdownMenu($E('#menue ul'))});

	}
    else {

		sfHover = function() {
		var sfEls = document.getElementById("menue").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);
}

