var mastertabvar=new Object()
mastertabvar.baseopacity=0
mastertabvar.browserdetect=""

var defaultset=new Object()

var testtimeout = null;

var showingid = '';

function showsubmenu(masterid, id){
actualhide(masterid)
actualshow(masterid, id)
}

function actualshow(masterid, id)
{
if (typeof highlighting!="undefined")
clearInterval(highlighting)
submenuobject=document.getElementById(id)
mastertabvar.browserdetect=submenuobject.filters? "ie" : typeof submenuobject.style.MozOpacity=="string"? "mozilla" : ""
submenuobject.style.display="block"
showingid = id;
if (id != defaultset[masterid])
{
	instantset(mastertabvar.baseopacity)
	highlighting=setInterval("gradualfade(submenuobject)",50)
}
}

function hidesubmenus(tabid){
actualhide(tabid);
if ('' != defaultset[tabid]) actualshow(tabid, defaultset[tabid])
}

function actualhide(tabid){
if (null != testtimeout) clearTimeout(testtimeout);
testtimeout = null;
submenuarray = mastertabvar[tabid]
for (var i=0; i<submenuarray.length; i++)
document.getElementById(submenuarray[i]).style.display="none"
showingid = '';
}

function instantset(degree){
if (mastertabvar.browserdetect=="mozilla")
submenuobject.style.MozOpacity=degree/100
else if (mastertabvar.browserdetect=="ie")
submenuobject.filters.alpha.opacity=degree
}

function gradualfade(cur2){
if (mastertabvar.browserdetect=="mozilla" && cur2.style.MozOpacity<1)
cur2.style.MozOpacity=Math.min(parseFloat(cur2.style.MozOpacity)+0.25, 0.99)
else if (mastertabvar.browserdetect=="ie" && cur2.filters.alpha.opacity<100)
cur2.filters.alpha.opacity+=0
else if (typeof highlighting!="undefined") //fading animation over
clearInterval(highlighting)
}

function initalizetab(tabid,def){
	defaultset[tabid] = def;
	mastertabvar[tabid]=new Array()
	var menuitems=document.getElementById(tabid).getElementsByTagName("li")
	for (var i=0; i<menuitems.length; i++){
		if (menuitems[i].getAttribute("rel")){
			menuitems[i].setAttribute("rev", tabid) //associate this submenu with main tab
			mastertabvar[tabid][mastertabvar[tabid].length]=menuitems[i].getAttribute("rel") //store ids of submenus of tab menu
			if (menuitems[i].className=="selected")
			showsubmenu(tabid, menuitems[i].getAttribute("rel"))
			menuitems[i].getElementsByTagName("a")[0].onmouseover=function(){
				if (null != testtimeout) clearTimeout(testtimeout);
				testtimeout = null;
				if (showingid != this.parentNode.getAttribute("rel"))
				showsubmenu(this.parentNode.getAttribute("rev"), this.parentNode.getAttribute("rel"))
			}
			menuitems[i].getElementsByTagName("a")[0].onmouseout=function(){
				if (null != testtimeout) clearTimeout(testtimeout);
				testtimeout = null;
				if (this.parentNode.getAttribute("rel") != defaultset[tabid])
				{
					testtimeout = setTimeout("hidesubmenus('"+tabid+"')", 200)
				}
			}
			
			var subitems = document.getElementById(menuitems[i].getAttribute("rel")).getElementsByTagName("li");
			for (var j=0; j<subitems.length; j++){
				subitems[j].getElementsByTagName("a")[0].onmouseover=function(){
					if (null != testtimeout) clearTimeout(testtimeout);
					testtimeout = null;
				}
				subitems[j].getElementsByTagName("a")[0].onmouseout=function(){
					if (null != testtimeout) clearTimeout(testtimeout);
					testtimeout = null;
					if (this.parentNode.parentNode.id != defaultset[tabid])
					{
						testtimeout = setTimeout("hidesubmenus('"+tabid+"')", 200)
					}
				}
			}
		}
	}
}
