var j = Class.extend({
	arrMenuName : new Array(),
	menuText : "",
	arrC : new Array(),
	arrInc : -1,
	arrMenuOvered : new Array(),
	arrMenuOpened : new Array(),
	arrMenuInterval : new Array(),
	
	create : function(obj) {
		slideMenu.arrMenuName.unshift(obj.id);
		slideMenu.arrMenuOvered.unshift("");
		slideMenu.arrMenuOpened.unshift(",");
		slideMenu.arrMenuInterval.unshift(null);
		slideMenu.menuText = "";
		
		re = /^\$|\n/g;
		obj.innerHTML = obj.innerHTML.replace(re, "");
		re = /^\$|\t/g;
		obj.innerHTML = obj.innerHTML.replace(re, "");
		
		var top = obj.childNodes;
		slideMenu.menuText = "<div id=\""+obj.id+"_container\" style=\"overflow:hidden; white-space:nowrap; \" class=\"menuBar\">";
		
		for (var j=0; j<top.length; j++) {
			slideMenu.menuText += "<span style=\"display:inline; display:-moz-inline-box;\" id=\""+obj.id+"_"+top[j].id+"\" onmouseover=\"this.style.backgroundPosition='center bottom'; this.style.backgroundColor='#ffffff'; this.style.color='#2d90c6';  slideMenu.shallShow(this);\" onmouseout=\"this.style.backgroundPosition='center top';  this.style.backgroundColor='#b50000'; this.style.fontWeight='normal'; this.style.color='#ffffff'; \" class=\"mainMenu\"";
			if (slideMenu.hasChildNodes(top[j])) slideMenu.menuText += "onclick=\"slideMenu.showMenu(this);\"";
			else if (top[j].getAttribute("action")!=null) { slideMenu.menuText += "onclick=\"slideMenu.clearMenu('"+obj.id+"'); "+top[j].getAttribute("action")+"\""; }
			slideMenu.menuText += ">" + top[j].getAttribute("rel") + "</span>";
		}
		slideMenu.menuText += "</div>";
		slideMenu.menuText += "<div style=\"width:100%; height:100%;\" id=\""+obj.id+"_altContainer\">";
		var totalChilds = 0;
		for (var j=0; j<top.length; j++) {
			if (slideMenu.hasChildNodes(top[j])) {
				slideMenu.arrInc = slideMenu.arrInc + 1;
				var c = slideMenu.arrInc;
				totalChilds++;
				slideMenu.createSubMenu(obj.id, top[j], top[j].id, c);
			}
		}
		for (var i=0; i<slideMenu.arrC.length; i++) {
			slideMenu.menuText += slideMenu.arrC[i];
		}
		slideMenu.menuText += "</div>";
		obj.innerHTML = slideMenu.menuText;
		if (totalChilds == 0) core.gID(obj.id+"_altContainer").style.display = "none";
	},
	
	hasChildNodes : function(div) {
		var has = false;
		if (div.childNodes.length > 0) {
			has = true;
		}
		return has;
	},
	
	showMenu : function(obj) {
		var mName = obj.id.split("_")[0];
		var wd = slideMenu.findMenuID(mName);
		var objPos = core.findObjectPosition(obj);
		var objKeys = obj.id.replace(mName, "") + "_";
		
		slideMenu.mouseListener(mName, true);
		
		if (slideMenu.arrMenuOpened[wd].indexOf(","+objKeys+",")==-1)
			slideMenu.arrMenuOpened[wd] += objKeys + ",";
			
		var om = slideMenu.arrMenuOpened[wd];
		var oms = om.split(",");
		
		core.gID(mName+"_"+objKeys.split("_")[1]).style.backgroundPosition='center bottom';
		core.gID(mName+"_"+objKeys.split("_")[1]).style.backgroundColor='#ffffff';
		core.gID(mName+"_"+objKeys.split("_")[1]).style.color='#2a90c6';
		
		if (obj.id.split("_").length > 2) {	
			obj.childNodes[0].style.backgroundPosition = "0px -22px";
			obj.childNodes[1].style.backgroundPosition = "0px -22px";
			obj.childNodes[2].style.backgroundPosition = "-22px -22px";
		}
		
		for (var i=1; i<oms.length-1; i++) {
			if (objKeys.indexOf(oms[i])==-1) {
				if (oms[i].split("_").length > 3) {
					var w = core.gID(mName+(oms[i].substring(0, oms[i].length-1)));
					w.childNodes[0].style.backgroundPosition = "0px 0px";
					w.childNodes[1].style.backgroundPosition = "0px 0px";
					w.childNodes[2].style.backgroundPosition = "22px 0px";
				} else {
					core.gID(mName+(oms[i].substring(0, oms[i].length-1))).style.backgroundPosition='0px 0px';
				}
			}
		}
		
		for (var i=1; i<oms.length-1; i++) {
			if (objKeys.indexOf(oms[i])==-1) {
				try { core.gID(mName+oms[i]+"container").style.display = "none"; } catch (e) { }
				slideMenu.arrMenuOpened[wd] = slideMenu.arrMenuOpened[wd].replace(oms[i]+",", "");
			}
		}
		
		if (!core.gID(obj.id+"_container")) return;
		
		var container = core.gID(obj.id+"_container");
		if (obj.id.split("_").length > 2) {
			objParentPos = core.findObjectPosition(obj.parentNode);
			container.style.left = objParentPos[0]+objParentPos[2] + 2;
			container.style.top = objPos[1] - 1;
		} else {
			container.style.left = objPos[0];
			container.style.top = objPos[1] + objPos[3];
		}
		container.style.display = "";
			
	},
	
	shallShow : function(obj) {
		var mName = obj.id.split("_")[0];
		var wd = slideMenu.findMenuID(mName);
		if (slideMenu.arrMenuOpened[wd] != ",") 
			slideMenu.showMenu(obj);
	},
	
	createSubMenu : function (menuName, div, id, c) {
		var wd = slideMenu.findMenuID(menuName);
		var top = div.childNodes;
		slideMenu.arrC[c] = "";
		slideMenu.arrC[c] += "<div id=\""+menuName+"_"+id+"_container\" style=\"display:none; position:absolute;\" class=\"menuContainer\"><div style=\"border:1px solid #ffffff;\"><table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"menuItem\">";
		for (var j=0; j<top.length; j++) {
			var tID = id + "_" + top[j].id;
			var hasMenu = false;
			if (slideMenu.hasChildNodes(top[j])) hasMenu = true;
			slideMenu.arrC[c] += "<tr id=\""+menuName+"_"+tID+"\" onmouseover=\"slideMenu.showMenu(this);\" onmouseout=\"slideMenu.mouseListener('"+menuName+"', false);\" ";
			if (top[j].getAttribute("action")!=null) { slideMenu.arrC[c] += "onclick=\"slideMenu.clearMenu('"+menuName+"'); "+top[j].getAttribute("action")+"\""; }
			slideMenu.arrC[c] += "><td class=\"menuItemCornerLeft\"><img src=\"images/s.gif\" width=\"22\"></td><td class=\"menuItemMain\">" + top[j].getAttribute("rel") +"</td><td class=\"menuItemCornerRight\">";
			slideMenu.arrC[c] += (hasMenu) ? "<img src=\"images/menuArrow.gif\" width=\"22\" height=\"22\">" : "<img  src=\"images/s.gif\" width=\"22\">";
			slideMenu.arrC[c] += "</td></tr>";
			if (hasMenu) {
				slideMenu.arrInc = slideMenu.arrInc + 1;
				var d = slideMenu.arrInc;
				slideMenu.createSubMenu(menuName, top[j], tID, d);
			}
		}
		slideMenu.arrC[c] += "</table></div></div>";
	},
	
	findMenuID : function(menu) {
		var mID = 0;
		for (var i=0; i<slideMenu.arrMenuName.length; i++) {
			if (slideMenu.arrMenuName[i] == menu) {
				mID = i;
				break;
			}
		}
		return mID;
	},
	
	mouseListener : function(menuName, cond) {
		var wd = slideMenu.findMenuID(menuName);
		if (!cond) slideMenu.arrMenuInterval[wd] = setInterval("slideMenu.clearMenu('"+menuName+"');", 1500);
		else clearInterval(slideMenu.arrMenuInterval[wd]);
	},
	
	clearMenu : function(menuName) {
		var wd = slideMenu.findMenuID(menuName);
		for (var i=1; i<slideMenu.arrMenuOpened[wd].split(",").length-1; i++) {
			try  {
				if (slideMenu.arrMenuOpened[wd].split(",")[i].split("_").length > 3) {
					var w = core.gID(menuName+(slideMenu.arrMenuOpened[wd].split(",")[i].substring(0, slideMenu.arrMenuOpened[wd].split(",")[i].length-1)));
					w.childNodes[0].style.backgroundPosition = "0px 0px";
					w.childNodes[1].style.backgroundPosition = "0px 0px";
					w.childNodes[2].style.backgroundPosition = "22px 0px";
				} else {
					core.gID(menuName+(slideMenu.arrMenuOpened[wd].split(",")[i].substring(0, slideMenu.arrMenuOpened[wd].split(",")[i].length-1))).style.backgroundPosition='center top';
					core.gID(menuName+(slideMenu.arrMenuOpened[wd].split(",")[i].substring(0, slideMenu.arrMenuOpened[wd].split(",")[i].length-1))).style.backgroundColor='#b50000';
					core.gID(menuName+(slideMenu.arrMenuOpened[wd].split(",")[i].substring(0, slideMenu.arrMenuOpened[wd].split(",")[i].length-1))).style.color='#ffffff';
				}
				core.gID(menuName+slideMenu.arrMenuOpened[wd].split(",")[i]+"container").style.display = "none";
			} catch (e) {
				
			}
		}
		slideMenu.arrMenuOpened[wd] = ",";
		clearInterval(slideMenu.arrMenuInterval[wd]);
	}
});

var slideMenu = new j();
