// Tab Menu- Script
var tabmenu=
{
	disabletablinks: true,  //Disable hyperlinks in 1st level tabs with sub contents [true/false]?
	snap2original: [true, 300],  //Should tab revert back to default selected when mouse moves out of menu [true/false, delay_millisec]?
	currentpageurl: window.location.href.replace("http://"+window.location.hostname, "").replace(/^\//, ""),  //get current page url (minus hostname)

	definemenu:function(tabid, dselected)
	{
		this[tabid+"-menuitems"]=null
		this[tabid+"-dselected"]=-1
		this.addEvent(window, function(){tabmenu.init(tabid, dselected)}, "load")
	},

	showsubmenu:function(tabid, targetitem)
	{
		var menuitems=this[tabid+"-menuitems"]
		this.clearrevert2default(tabid)
		for (i=0; i<menuitems.length; i++)
		{
			menuitems[i].className=""
			if (typeof menuitems[i].hasSubContent!="undefined")
			{
				document.getElementById(menuitems[i].getAttribute("rel")).style.display="none"
			}
		}
		targetitem.className="current"
		if (typeof targetitem.hasSubContent!="undefined")
		{
			document.getElementById(targetitem.getAttribute("rel")).style.display="block"
		}
	},

	isSelected:function(menuurl)
	{
		var menuurl=menuurl.replace("http://"+menuurl.hostname, "").replace(/^\//, "")
		return (tabmenu.currentpageurl==menuurl)
	},

	isContained:function(m, e)
	{
		var e=window.event || e
		var c=e.relatedTarget || ((e.type=="mouseover")? e.fromElement : e.toElement)
		while (c && c!=m)try {c=c.parentNode} catch(e){c=m}
		if (c==m)
			return true
		else
			return false
	},

	revert2default:function(outobj, tabid, e)
	{
		if (!tabmenu.isContained(outobj, tabid, e))
		{
			window["hidetimer_"+tabid]=setTimeout(function(){tabmenu.showsubmenu(tabid, tabmenu[tabid+"-dselected"])}, 
			tabmenu.snap2original[1])
		}
	},

	clearrevert2default:function(tabid)
	{
		 if (typeof window["hidetimer_"+tabid]!="undefined")
		{
				clearTimeout(window["hidetimer_"+tabid])
		}
	},

	addEvent:function(target, functionref, tasktype)
	{
		var tasktype=(window.addEventListener)? tasktype : "on"+tasktype
		if (target.addEventListener)
			target.addEventListener(tasktype, functionref, false)
		else if (target.attachEvent)
			target.attachEvent(tasktype, functionref)
	},

	init:function(tabid, dselected)
	{
		var menuitems=document.getElementById(tabid).getElementsByTagName("a")
		this[tabid+"-menuitems"]=menuitems
		for (var x=0; x<menuitems.length; x++)
		{
			if (menuitems[x].getAttribute("rel"))
			{
				this[tabid+"-menuitems"][x].hasSubContent=true
				if (tabmenu.disabletablinks)
					menuitems[x].onclick=function(){return false}
				if (tabmenu.snap2original[0]==true)
				{
					var submenu=document.getElementById(menuitems[x].getAttribute("rel"))
					menuitems[x].onmouseout=function(e){tabmenu.revert2default(submenu, tabid, e)}
					submenu.onmouseover=function(){tabmenu.clearrevert2default(tabid)}
					submenu.onmouseout=function(e){tabmenu.revert2default(this, tabid, e)}
				}
			}
			else
			{
				menuitems[x].onmouseout=function(e){this.className=""; if (tabmenu.snap2original[0]==true) tabmenu.revert2default(this, tabid, e)}
			}
			menuitems[x].onmouseover=function(){tabmenu.showsubmenu(tabid, this)}
			if (dselected=="auto" && typeof setalready=="undefined" && this.isSelected(menuitems[x].href))
			{
				tabmenu.showsubmenu(tabid, menuitems[x])
				this[tabid+"-dselected"]=menuitems[x]
				var setalready=true
			}
			else if (parseInt(dselected)==x)
			{
				tabmenu.showsubmenu(tabid, menuitems[x])
				this[tabid+"-dselected"]=menuitems[x]
			}
		}
	}
}
