/*Some menu setup stuff*/
var buttonList = new Array();
var buttonIndex = 0;
var buttonListDown = new Array();
var buttonIndexDown = 0;
var menuDownTarget = "";
var menuUpTarget = "";
var onState = "";

function initMenu(theTarget,direction,MenuArray,On){
	onState = On;
	if(direction == "down"){
		menuDownTarget = theTarget;
		for(var i = 0; i < MenuArray.length; i++){			
			buildMenuDown(MenuArray[i].pageid,2,MenuArray[i].offset);
		}
		
		MenuDown();
	}else if(direction == "up"){
		menuUpTarget = theTarget;
		for(var i = 0; i < MenuArray.length; i++){
			buildMenuUp(MenuArray[i].pageid,2,MenuArray[i].offset);
		}
		MenuUp();
		
	}else{
		alert("Menu can only go either up or down. please fix :)")
	}
}

function MenuDown(){
	var t;
	var t2;
	var MenuToClose;
	var CurrentZIndex = 1000;
	for(var i = 0; i < buttonListDown.length; i++){
		var offset = jQuery("#"+menuDownTarget+"_" + buttonListDown[i]).offset();
		var subMenuHeight = jQuery("#L2_" + buttonListDown[i]).height();
		var cOffset = jQuery("#L2_" + buttonListDown[i]).attr("offset");
		if(isNaN(cOffset)){
			if(cOffset == "center"){
				//positon at the center of the parent element
				var pWidth = jQuery("#"+menuDownTarget+"_" + buttonListDown[i]).width();
				var mWidth = jQuery("#L2_" + buttonListDown[i]).width();
				jQuery("#L2_" + buttonListDown[i]).css("left",(offset.left + ((pWidth/2)-(mWidth/2))) + "px");
			}else{
				//position at left
				jQuery("#L2_" + buttonListDown[i]).css("left",offset.left + "px");
			}
		}else{
			//custom offset
			jQuery("#L2_" + buttonListDown[i]).css("left",(offset.left + parseInt(cOffset)) + "px");
		}
		jQuery("#L2_" + buttonListDown[i]).css("top",(offset.top + jQuery("#"+menuDownTarget+"_" + buttonListDown[i]).height()) + "px");
		jQuery("#L2_" + buttonListDown[i]+ " #holder").css("position","relative");
		jQuery("#L2_" + buttonListDown[i]).css("overflow","hidden");
		jQuery("#L2_" + buttonListDown[i]).css("width",jQuery("#L2_" +  buttonListDown[i]).width()+"px");
		jQuery("#L2_" + buttonListDown[i]).css("height",jQuery("#L2_" +  buttonListDown[i]).height()+"px");
		jQuery("#L2_" + buttonListDown[i]+" #holder").css("top","-" + jQuery("#L2_" +  buttonListDown[i]).height()+"px");
	}
	jQuery("#"+menuDownTarget+" li a").hover(
      function () {
		var buttonID = jQuery(this).attr("id").substring(menuDownTarget.length+1,jQuery(this).attr("id").length);
		if(buttonID == MenuToClose){
			clearTimeout(t2);
		}
		var offset = jQuery(this).offset();
		var subMenuHeight = jQuery("#L2_" + buttonID).height();
		
		for(var i = 0; i < buttonListDown.length; i++){
			if(buttonID == buttonListDown[i]){
				jQuery("#L2_" + buttonListDown[i]).css("z-index",CurrentZIndex + 1);
			}else{
				jQuery("#L2_" + buttonListDown[i]).css("z-index",CurrentZIndex);
			}
		}
		jQuery("#L2_" +  buttonID+" #holder").stop();
		 jQuery("#L2_" +  buttonID+" #holder").queue("fx", []);
		jQuery("#L2_" +  buttonID+" #holder").dequeue();
		jQuery("#L2_" + buttonID).show(0);
		jQuery("#L2_" + buttonID+" #holder").animate({top: 0},250);
      }, 
      function () {
	   var buttonID = jQuery(this).attr("id").substring(menuDownTarget.length+1,jQuery(this).attr("id").length);
	   MenuToClose = buttonID;
		for(var i = 0; i < buttonListDown.length; i++){
			if(MenuToClose == buttonListDown[i]){
				t = setTimeout(function(){
					
					jQuery("#L2_" + MenuToClose+" #holder").animate({top: "-" + jQuery("#L2_" + MenuToClose).height()},250);
					jQuery("#L2_" +  MenuToClose+" #holder").queue(function () {
					
					jQuery(this).parent().hide();
					jQuery(this).dequeue();
				});		
				},50);
			}else{
				
				jQuery("#L2_" + buttonListDown[i]+" #holder").animate({top:"-" +  jQuery("#L2_" + buttonListDown[i]).height()},250);
				jQuery("#L2_" +  buttonListDown[i]+" #holder").queue(function () {
					
					jQuery(this).parent().hide();
					jQuery(this).dequeue();
				});	
			}
		}
      }
    );
	
	jQuery(".subMenu").hover(
      function () {
      	clearTimeout(t);
		var myID = jQuery(this).attr("id").substring(3,jQuery(this).attr("id").length);
		jQuery("#"+menuDownTarget+"_"+myID).addClass("on");		
      }, 
      function () {
		//hide the menu
		t2 = setTimeout(function(){
			jQuery("#L2_" + MenuToClose+" #holder").animate({top:"-" +  jQuery("#L2_" + MenuToClose).height()},250);
			jQuery("#L2_" +  MenuToClose+" #holder").queue(function () {
				jQuery(this).parent().hide();
				jQuery(this).dequeue();
			});	
		},50);
		var myID = jQuery(this).attr("id").substring(3,jQuery(this).attr("id").length);
		if(myID != onState){
			jQuery("#"+menuDownTarget+"_"+myID).removeClass("on");
		}
      }
    );
}

function buildMenuDown(pageID, level, cO){
	buttonListDown[buttonIndexDown++] = pageID;
	var firstItem = true;
	var menuString = "";
	if(pageID == onState){
		jQuery("#"+menuDownTarget+"_"+pageID).addClass("on");	
	}
	for(var i = 0; i < pageList.length; i++){
		if(pageList[i].parentID == pageID && pageList[i].level == level){
			if(firstItem){
				menuString = "<div id='L2_"+pageID+"' class='subMenu'>";
				menuString+= "<div id='holder'><div id='menu-header'><!-- --></div>"
			}
			target = ""
			if(pageList[i].target) target = " target=\"_blank\"";
			menuString += "<a class='subMenuItems' href='" + pageList[i].pageURL + "'" + target + ">" + pageList[i].pageName + "</a>";
			firstItem = false;
		}
	}
	if(menuString.length > 0){
		menuString+= "<div id='menu-footer'><!-- --></div>"
		menuString += "</div></div>";
		jQuery("#"+menuDownTarget).after(menuString);
		if(cO == undefined){
			cO = "none";
		}
		jQuery("#L2_"+pageID).attr("offset",cO)
	}
}
//-----------------------------up functions-----------------------------------
function MenuUp(){
	var t;
	var t2;
	var MenuToClose;
	var CurrentZIndex = 1000;
	//position the menus to their correct place
	for(var i = 0; i < buttonList.length; i++){
		var offset = jQuery("#"+menuUpTarget+"_" + buttonList[i]).offset();
		var subMenuHeight = jQuery("#L2_" + buttonList[i]).height();
		var cOffset = jQuery("#L2_" + buttonList[i]).attr("offset");
		if(isNaN(cOffset)){
			if(cOffset == "center"){
				//positon at the center of the parent element
				var pWidth = jQuery("#"+menuUpTarget+"_" + buttonList[i]).width();
				var mWidth = jQuery("#L2_" + buttonList[i]).width();
				jQuery("#L2_" + buttonList[i]).css("left",(offset.left + ((pWidth/2)-(mWidth/2))) + "px");
			}else{
				//position at left
				//alert("position at left");
				//alert("o-left = " + offset.left + ", o-top = " + offset.top);
				jQuery("#L2_" + buttonList[i]).css("left",offset.left + "px");
			}
		}else{
			//custom offset
			jQuery("#L2_" + buttonList[i]).css("left",(offset.left + parseInt(cOffset)) + "px");
		}
		if(jQuery.browser.mozilla){
			jQuery("#L2_" + buttonList[i]).css("top",(offset.top - (subMenuHeight-1)) + "px");
		}else{
			jQuery("#L2_" + buttonList[i]).css("top",(offset.top - subMenuHeight) + "px");
		}
		jQuery("#L2_" + buttonList[i]).attr("endMove",(offset.top - subMenuHeight))
		jQuery("#L2_" + buttonList[i]).attr("startMove",(offset.top))
		jQuery("#L2_" + buttonList[i]+ " #holder").css("position","relative");
		jQuery("#L2_" + buttonList[i]).css("overflow","hidden");
		jQuery("#L2_" + buttonList[i]).css("width",jQuery("#L2_" +  buttonList[i]).width()+"px");
		jQuery("#L2_" + buttonList[i]).css("height",jQuery("#L2_" +  buttonList[i]).height()+"px");
		jQuery("#L2_" + buttonList[i]+" #holder").css("top", jQuery("#L2_" +  buttonList[i]).height()+"px");
	}
	jQuery("#"+menuUpTarget+" li a").hover(
      function () {
		var buttonID = jQuery(this).attr("id").substring(menuUpTarget.length+1,jQuery(this).attr("id").length);
		if(buttonID == MenuToClose){
			clearTimeout(t2);
		}
		for(var i = 0; i < buttonList.length; i++){
			if(buttonID == buttonList[i]){
				jQuery("#L2_" + buttonList[i]).css("z-index",CurrentZIndex + 1);
			}else{
				jQuery("#L2_" + buttonList[i]).css("z-index",CurrentZIndex);
			}
		}		
		jQuery("#L2_" +  buttonID+" #holder").stop();
		 jQuery("#L2_" +  buttonID+" #holder").queue("fx", []);
		jQuery("#L2_" +  buttonID+" #holder").dequeue();
		jQuery("#L2_" + buttonID).show(0);
		
		jQuery("#L2_" + buttonID+" #holder").animate({top: 0},250);
      }, 
      function () {
	   var buttonID = jQuery(this).attr("id").substring(menuUpTarget.length+1,jQuery(this).attr("id").length);
	   MenuToClose = buttonID;
		for(var i = 0; i < buttonList.length; i++){
			if(MenuToClose == buttonList[i]){
				t = setTimeout(function(){
					jQuery("#L2_" + MenuToClose+" #holder").animate({top: jQuery("#L2_" + MenuToClose).height()},250);
					jQuery("#L2_" +  MenuToClose+" #holder").queue(function () {
					jQuery(this).parent().hide();
					jQuery(this).dequeue();
				});		
				},50);
			}else{
				jQuery("#L2_" + buttonList[i]+" #holder").animate({top: jQuery("#L2_" + buttonList[i]).height()},250);
				jQuery("#L2_" +  buttonList[i]+" #holder").queue(function () {
					jQuery(this).parent().hide();
					jQuery(this).dequeue();
				});	
			}
		}
      }
    );
	
	jQuery(".subMenuUp").hover(
      function () {
		clearTimeout(t);
		var myID = jQuery(this).attr("id").substring(3,jQuery(this).attr("id").length);
		jQuery("#"+menuUpTarget+"_"+myID).addClass("on");		
      }, 
      function () {
		//hide the menu
		t2 = setTimeout(function(){
			jQuery("#L2_" + MenuToClose+" #holder").animate({top: jQuery("#L2_" + MenuToClose).height()},250);
			jQuery("#L2_" +  MenuToClose+" #holder").queue(function () {
				jQuery(this).parent().hide();
				jQuery(this).dequeue();
			});	
		},50);
		var myID = jQuery(this).attr("id").substring(3,jQuery(this).attr("id").length);
		if(myID != onState){
			jQuery("#"+menuUpTarget+"_"+myID).removeClass("on");
		}
      }
    );
}

function buildMenuUp(pageID, level,cO){
	buttonList[buttonIndex++] = pageID;
	var firstItem = true;
	var menuString = "";
	if(pageID == onState){
		jQuery("#"+menuUpTarget+"_"+pageID).addClass("on");	
	}
	for(var i = pageList.length-1; i > 0; i--){
		if(pageList[i].parentID == pageID && pageList[i].level == level){
			if(firstItem){
				menuString = "<div id='L2_"+pageID+"' class='subMenuUp'>";
				menuString+= "<div id='holder'><div id='menu-header'><!-- --></div>"
			}
			target = ""
			if(pageList[i].target) target = " target=\"_blank\"";
			menuString += "<a class='subMenuItemsUp' href='" + pageList[i].pageURL + "'" + target + ">" + pageList[i].pageName + "</a>";
			firstItem = false;
		}
	}
	if(menuString.length > 0){
		menuString+= "<div id='menu-footer'><!-- --></div>"
		menuString += "</div></div>";
		jQuery("#" + menuUpTarget).after(menuString);
		if(cO == undefined){
			cO = "none";
		}
		jQuery("#L2_"+pageID).attr("offset",cO)
	}
}