nav_class = function() {
	
	var url = window.location.href.split("/");
	this.currentPage = url[url.length-1].substring(0,url[url.length-1].indexOf("."));
	this.currentNav = null;
	this.currentMenu = null;
	this.mousePos = null;

	Events.add({element:document.body, type:"mousemove", handler:this.mouseMove, context:this});
}

nav_class.prototype.revealMenu = function(el,profile) {
    
    if(this.currentNav && this.currentNav != Element.get(el)) { this.closeMenu(); }
    
    this.currentNav  = Element.get(el); 
    this.currentMenu = Element.get(profile);
	Element.setStyle(this.currentMenu,"display:block;");
	Element.addClass(this.currentNav, "on");
}

nav_class.prototype.closeMenu = function() {
    Element.setStyle(this.currentMenu,"display:none;");
    if(!this.currentMenu || this.currentMenu.id.indexOf(this.currentPage) < 0) {
	    Element.removeClass(this.currentNav,"on");
	}
}

nav_class.prototype.scrollList = function(ul,dir) {
    
    var ul = Element.get(ul);

    var currentPos = ul.style.top.replace('px','');
    
    if(!currentPos) {
        currentPos = 15;
    }

    var size = Element.getSize(ul);
    
    if(dir == 'down') {    
    
        if((size.height + parseInt(currentPos)) > 95) {
            ul.style.top = parseInt(currentPos - 19) + 'px';
        }
    }
    if(dir == 'up') {    
   
        if((parseInt(currentPos) + 15) < 16) { 
            ul.style.top = parseInt(currentPos) + 19 + 'px';
        }
    }
}

nav_class.prototype.showHideSubMenu = function(el) {

    var parentDiv       = Element.getParent(el,"div");
    var containerDiv    = Element.getParent(parentDiv, "div");
    var ulChild         = Element.parseSelector("ul",parentDiv,0);
    var ulChildren      = Element.parseSelector("ul",containerDiv);
    var controlChild    = Element.nextElement(parentDiv,"div");
    var controlChildren = Element.parseSelector(".menucontrol-opened, .menucontrol-closed",containerDiv);
    
    for(var i in ulChildren) {
        Element.removeClass(ulChildren[i],"menulist-open");
        Element.addClass(ulChildren[i],"menulist");
    }
    for(var i in controlChildren) {
        Element.removeClass(controlChildren[i],"menucontrol-opened");
        Element.addClass(controlChildren[i],"menucontrol-closed");
    }
    
    var aChildren = Element.parseSelector("a",containerDiv);
    for(var i in aChildren) {
        if(el != aChildren[i]) {
            Element.removeClass(aChildren[i],"open");
            var parent = Element.getParent(aChildren[i],"div");
            Element.setHeight(parent,18);
        }
    }
    
    if(Element.hasClass(el,"open")) {
        Element.removeClass(el,"open");
    } else {
        Element.addClass(el,"open");
        Element.removeClass(ulChild,"menulist");
        Element.addClass(ulChild,"menulist-open");
        Element.removeClass(controlChild,"menucontrol-closed");
        Element.addClass(controlChild,"menucontrol-opened");
        Element.setHeight(parentDiv,95);
    }
}

nav_class.prototype.mouseMove = function(e, el){
    
    this.mousePos = this.mouseCoords(e);

    if(this.currentMenu) {
        var divXY = Element.getXY(this.currentMenu);
        var divSize = Element.getSize(this.currentMenu);
        var divX1 = divXY.x;
        var divX2 = divSize.width + divXY.x;
        var divY1 = divXY.y - 70;
        var divY2 = divSize.height + divXY.y;

        if(this.mousePos.x < divX1 || this.mousePos.x > divX2 || this.mousePos.y < divY1 || this.mousePos.y > divY2) {
            this.closeMenu();
        }
	}
}

nav_class.prototype.mouseCoords = function(e){
	if(e.nativeEvent.pageX || e.nativeEvent.pageY){
		return {x:e.nativeEvent.pageX, y:e.nativeEvent.pageY};
	}
	return {
		x:e.nativeEvent.clientX + document.body.scrollLeft - document.body.clientLeft,
		y:e.nativeEvent.clientY + document.body.scrollTop  - document.body.clientTop
	};
}

Events.add({element:window, type:"load", handler:function(){ window.nav = new nav_class(); }});