var menu="",submenu="";
var xpos=0;
var timer=null;
var subtimer=null;
var sort="";

//Main Menu
function ShowMenu(showmenu){
	CancelTimer();
	if(menu==showmenu.id){return;}
	HideMenu(false);
	var sub=document.getElementById("menu "+showmenu.id);
	if(sub==null)return;
	sub.style.left=findPosX(showmenu)+"px";
	xpos=findPosX(showmenu);
	sub.style.visibility="visible";
	menu=showmenu.id;
	var main=document.getElementById(menu);
	main.style.backgroundColor="#CCCCCC";
}
function HideMenu(timed){
	if(typeof(timed)=='undefined')timed=true;
	if(timed)HideTimer();
	else{
		HideSubMenu(false);
		if(menu!=""){
			document.getElementById("menu "+menu).style.visibility="hidden";
			var main=document.getElementById(menu);
			main.style.backgroundColor="#FFFFFF";
		}
		menu="";
		xpos=0;
		CancelTimer();
	}
}
//Sub Menu
function ShowSubMenu(showmenu){
	CancelSubTimer();
	if(submenu==showmenu.id){return;}
	HideSubMenu(false);
	var sub=document.getElementById("sub "+showmenu.id);
	if(sub==null)return;
	if(IsLastMenu(showmenu.id))sub.style.left=(xpos-sub.offsetWidth)+"px";//Print last menu to the left
	else sub.style.left=(xpos+showmenu.offsetWidth)+"px";//Print menu to the right
	sub.style.top=(findPosY(showmenu)+OffsetTop())+"px";
	sub.style.visibility="visible";
	submenu=showmenu.id;
}
function HideSubMenu(timed){
	if(typeof(timed)=='undefined')timed=true;
	if(timed)HideSubTimer();
	else{
		if(submenu!=""){
			document.getElementById("sub "+submenu).style.visibility="hidden";
		}
		submenu="";
		CancelSubTimer();
	}
}
function HideTimer(){
	if(timer==null)timer=setTimeout("HideMenu(false);",500);
}
function HideSubTimer(){
	if(subtimer==null)subtimer=setTimeout("HideSubMenu(false);",500);
}
function CancelTimer(){
	if(timer!=null)clearTimeout(timer);
	timer=null;
}
function CancelSubTimer(){
	CancelTimer();
	if(subtimer!=null)clearTimeout(subtimer);
	subtimer=null;
}

function Blank(){Goto('blank');}
function Goto(url){
	window.location="index.php?"+url+((sort!="")?"&sort="+sort:"");
	HideMenu();
}
function ShowArtist(artist,category,type){
	var url="artist="+URLEncode(artist);
	if(typeof(category)!='undefined')url+="&category="+URLEncode(category);
	if(typeof(type)!='undefined')url+="&type="+URLEncode(type);
	Goto(url);
}
function ShowCategory(category,type){
	var url="category="+URLEncode(category);
	if(typeof(type)!='undefined')url+="&type="+URLEncode(type);
	Goto(url);
}
function Sort(type){if(type!="")sort=type;}
function ViewCategories(artist,type){
	var url="command=ViewCategories&artist="+URLEncode(artist);
	if(typeof(type)!='undefined')url+="&type="+URLEncode(type);
	Goto(url);
}
function ViewArtists(type,cateogry){
	var url="command=ViewArtists";
	if(typeof(type)!='undefined')url+="&type="+URLEncode(type);
	if(typeof(category)!='undefined')url+="&category="+URLEncode(category);
	Goto(url);
}

function URLEncode(str) {
	var result = "";
	
	for (i = 0; i < str.length; i++) {
		if (str.charAt(i) == " ") result += "+";
		else result += str.charAt(i);
	}
	
	return escape(result);
}
function findPosX(obj)
{
	var curleft = 0;
	if (obj.offsetParent)
	{
		while(true)
		{
			curleft += obj.offsetLeft;
			if(!obj.offsetParent)break;
			obj = obj.offsetParent;
		}
	}
	else if (obj.x)curleft += obj.x;
	return curleft;
}

function findPosY(obj)
{
	var curtop = 0;
	if (obj.offsetParent)
	{
		while(true)
		{
			curtop += obj.offsetTop;
			if(!obj.offsetParent)break;
			obj = obj.offsetParent;
		}
	}
	else if (obj.y)curtop += obj.y;
	return curtop;
}
function OffsetTop(){
	if(Browser()=="Safari")return -1;//9
	else return 0;
}
function OffsetLeft(){
	if(Browser()=="Safari")return 0;//9
	else return 0;
}
function Browser(){
	var browser=navigator.userAgent;
	browser=browser.substring(browser.lastIndexOf(" ")+1,browser.lastIndexOf("/"));
	return browser;
}
