/* This file is used to create the tabbed content areas on the CMT home page */

var tabmenu={
	disabletablinks: false, //disable hyperlinks in 1st level tabs with sub contents (true or false)?

definemenu:function(tabid, dselected){
	this[tabid+"-menuitems"]=null
	this.addEvent(window, function(){tabmenu.init(tabid, dselected)}, "load")
},

showsubmenu:function(tabid, targetitem){
	var menuitems=this[tabid+"-menuitems"]
 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"
},

addEvent:function(target, functionref, tasktype){ //assign a function to execute to an event handler (ie: onunload)
	var tasktype=(window.addEventListener)? tasktype : "on"+tasktype
	if (navigator.userAgent.toLowerCase().indexOf('applewebkit')!=-1) //for Safari
		target.addEventListener(tasktype, functionref, false)
	else if (target.addEventListener) //for Firefox
		target.addEventListener("DOMContentLoaded", functionref, false)
	else if (target.attachEvent) //for Explorer
		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}
		}
		else //for items without a submenu, add onMouseout effect
			menuitems[x].onmouseout=function(){this.className=""}
		menuitems[x].onmouseover=function(){tabmenu.showsubmenu(tabid, this)}
		if (parseInt(dselected)==x)
			tabmenu.showsubmenu(tabid, menuitems[x])
	}
}

}

EventUtil = {
	addEventHandler:function(target, eventType, handler)
	{
		if(target.addEventListener) // mozilla
		{
			target.addEventListener(eventType, handler, false);
		}
		else if(target.attachEvent) // ie
		{
			target.attachEvent("on"+eventType, handler);
		}
		else // all others
		{
			target["on"+eventType] = handler;
		}
	}
}

function TabRotator()
{
	
	var _menuitems;
	var _intId;
	
	this.init = _init;
	this.advance = _advanceTab;
			
	function _setTabMenu(menuname)
	{
		_menuitems = document.getElementById(menuname).getElementsByTagName("a");
		for(i = 0; i < _menuitems.length; i++)
		{
			var display = document.getElementById(_menuitems[i].getAttribute("rel"));
			EventUtil.addEventHandler(_menuitems[i], "mouseover", _stop);
			EventUtil.addEventHandler(_menuitems[i], "mouseout", _start);
			EventUtil.addEventHandler(display, "mouseover", _stop);
			EventUtil.addEventHandler(display, "mouseout", _start);
		}
	}
	
	function _stop()
	{
		clearInterval(_intId);
		_intId = null;
	}
	
	function _start()
	{
		_intId = window.setInterval("tr.advance()", 5000);
	}
	
	/* return int of menu item set to display block */
	function _getCurrentTab()
	{
		for(i = 0; i < _menuitems.length; i++)
		{
			var itemDisplayClass = document.getElementById(_menuitems[i].getAttribute("rel")).style.display;
			if(itemDisplayClass == "block")
			{
				return i;
			}
		}
		return 0;
	}
	
	function _getNextTab()
	{
		if(_getCurrentTab() < _menuitems.length -1)
		{
			return _getCurrentTab() + 1;
		}
		else
		{
			return 0;
		}
	}
	
	function _init(delay, menuname)
	{
		_setTabMenu(menuname);
		_start();
	}
	
	function _advanceTab()
	{
		var next = _getNextTab();
		for(i = 0; i < _menuitems.length; i++)
		{
			if(i == next)
			{
				block = document.getElementById(_menuitems[i].getAttribute("rel")).style.display = "block";
				_menuitems[i].className="current";
			}
			else
			{
				none = document.getElementById(_menuitems[i].getAttribute("rel")).style.display = "none";
				_menuitems[i].className="none";
			}
		}
	}
	
}

addEvent(window, function(){tr = new TabRotator(); tr.init(5000, "p1tabs");}, "load");
