// Nav Functions

var htpCurrentVisibleNavId = ''; // The name of the current visible navbar
var htpTimeOverNav = -1; // Amount of time over nav
var htpCurrentDelayTimeOutPtr = ''; // The previous hidden timeout pointer


function htpDelayedNavShow(navId, navLeftPos, navWidth)
{
	if(htpCurrentDelayTimeOutPtr)
	{
		window.clearTimeout(htpCurrentDelayTimeOutPtr);
	}
	htpTimeOverNav = new Date().getTime();
	htpCurrentDelayTimeOutPtr = window.setTimeout("htpNavShow('"+navId+"')",250);
}

function htpNodeContains(a, b)
{
// Return true if node a contains node b.
	while (b.parentNode)
		if ((b = b.parentNode) == a)
			return true;
	return false;
}

function htpDetectNavPanelMouseOut(event, obj, navId)
{
	var current, related;
	if (window.event)
	{
		current = obj;
		related = window.event.toElement;
	}
	else
	{
		current = event.currentTarget;
		related = event.relatedTarget;
	}
	if (current != related && !htpNodeContains(current, related))
	{
		htpNavHide(navId);
	}
}


function htpNavShow(navId)
{
// Show the navbar
	if ( htpCurrentVisibleNavId && (htpCurrentVisibleNavId != navId) )
	{
		htpNavHide( htpCurrentVisibleNavId );
	}

	var menu = htpMenuEntries[ navId ];
	if ( menu )
	{
		var navWidth = htpGetDhtmlMenuWidth( menu );
		var navLeftPos = menu.posX || 0;
		var subnav = htpGetObject( navId + 'SubNav' );

		if(subnav && subnav.style)
		{
			if((navLeftPos+navWidth)>787) {navLeftPos=787-navWidth;}
			subnav.style.left = navLeftPos;
			subnav.style.width = navWidth;
			subnav.style.visibility = 'visible';
			htpAlterAllSelects('hidden')
		}

		htpCurrentVisibleNavId = navId;
	}
}

function htpNavHide(navId)
{
// hide the navbar
	var subnav = htpGetObject( navId + 'SubNav' );
	if(subnav)
	{
		subnav.style.visibility = 'hidden';
		subnav.style.width = '0px';
		htpAlterAllSelects('visible')
	}

}

function htpGetObject( id ) {
	var object = null;
	if ( document.getElementById )
	{
		object = document.getElementById( id );
	}
	else
	if ( document.all )
	{
		object = document.all[ id ];
	}
	return object;
}

// Define Widths
document.htpDhtmlNavSectionWidth = 230;
document.htpDhtmlNavPadding = 6;
function htpGetDhtmlMenuWidth( menu )
{
	var sectionWidth = menu.sectionWidth || document.htpDhtmlNavSectionWidth || 230;
	var navPadding = document.htpDhtmlNavPadding || 6;
	outerWidth = sectionWidth + ( navPadding * 2 );
	return outerWidth;
}

function htpWriteMenuEntries( menuCollection )
{
// write out the dhtml panes
	var prependHost = 'http://hailtopurple.com';
	for ( eachMenu in menuCollection )
	{
		var navId = eachMenu;
		var sectionWidth = menuCollection[eachMenu].sectionWidth || document.htpDhtmlNavSectionWidth || 230;
		var navPadding = document.htpDhtmlNavPadding || 6;
		var outerWidth = htpGetDhtmlMenuWidth( menuCollection[eachMenu] );
		var navLeftPos = menuCollection[eachMenu].posX || 0;
		if ( (navLeftPos+outerWidth) > 787 ) {
			navLeftPos = 787 - outerWidth;
		}

		var navHtml = "";

		navHtml += '<div class="htpDhtmlMenu" id="'+navId+'SubNav" style="width:'+outerWidth+'px;left:'+navLeftPos+';" onmouseover="htpNavShow(\''+navId+'\');return false;" onmouseout="htpDetectNavPanelMouseOut(event, this, \''+navId+'\');">';

		navHtml += '<table width="' + outerWidth + '" border="0" cellspacing="0" cellpadding="' + navPadding + '" onmouseout="htpDetectNavPanelMouseOut(event, this, \''+navId+'\');">';
		navHtml += '<tr valign="top"><td width="'+sectionWidth+'">';

		if(menuCollection[eachMenu].menuItems)
		{
			for ( var entryNo = 0; entryNo < menuCollection[eachMenu].menuItems.length; entryNo += 2 )
			{
				var menuPrependHost = prependHost;
				if(menuCollection[eachMenu].menuItems[entryNo+1].indexOf('http:/\/')>-1){ menuPrependHost='';}
				navHtml += '<div class="htpDhtmlMenuSect" onMouseOver="htpColorMenuItem(this,1)" onMouseOut="htpColorMenuItem(this,0)" onclick="location.href=\''+menuPrependHost+menuCollection[eachMenu].menuItems[entryNo+1]+'\'">';
				navHtml += '<a href="'+menuPrependHost+menuCollection[eachMenu].menuItems[entryNo+1]+'">'+menuCollection[eachMenu].menuItems[entryNo].toUpperCase()+'</a>';
				navHtml += '</div>';
			}
		}

		navHtml += '</td></tr></table>';
		navHtml += '</div>';

		document.write( navHtml );
	}


}

function htpColorMenuItem( element, on )
{
	if ( navigator.userAgent.indexOf( "KHTML" ) == -1 )
	{
		if ( on )
		{
			element.className = "htpDhtmlMenuSectHov";
		}
		else
		{
			element.className = "htpDhtmlMenuSect";
		}
	}
}

function htpAlterAllSelects(visibility)
{
	var allSelectObjs = document.getElementsByTagName('select');
	if(allSelectObjs)
	{
		for(var selectCounter = 0;selectCounter<allSelectObjs.length;selectCounter++)
		{
			var currentSelectObj = allSelectObjs.item(selectCounter);
			currentSelectObj.style.visibility=visibility;
		}
	}
}

var htpMenuEntries = new Array();

//CSI Functions
var htpCSIs = new Array();
var htpUseDelayedCSI = 0;
var localUserAgent = navigator.userAgent.toLowerCase();
if((localUserAgent.indexOf('msie')>-1) && (localUserAgent.indexOf('mac')>-1)){htpUseDelayedCSI = 1;}

function htpAddCSI(id,source,args)
{
	if(!args) { args='';}
	if(htpUseDelayedCSI)
	{
		var newCSI = new Object();
		newCSI.src = source;
		newCSI.id  = id;
		newCSI.args = args;
		htpCSIs[htpCSIs.length]=newCSI;
	}
	else
	{
		var today = new Date();
		var currTime = today.getTime();
		var iframeArgs = '&time='+currTime;
		if(!document.switchDocDomain) {iframeArgs=iframeArgs+'&disableDocDom=1';}
		if(args)
		{
			iframeArgs=iframeArgs+'&'+args;
		}
		var iframeHtmlSrc='<iframe src="'+source+'?domId='+id+iframeArgs+'" name="iframe'+id+'" id="iframe'+id+'" width="0" height="0" align="right" style="position:absolute;visibility:hidden;"></iframe>';
		document.write(iframeHtmlSrc);
	}
}

function htpUpdateCSI(html, id)
{
	var htmlContainerObj = htpGetObject( id );
	if(htmlContainerObj)
	{
		htmlContainerObj.innerHTML = html;
	}

// force a refresh of the content area
	var htmlContentArea = document.body;
	if(htmlContentArea)
	{
		var previousTopVal = htmlContentArea.style.top || '0px';
		htmlContentArea.style.top = '1px';
		htmlContentArea.style.top = previousTopVal;
	}
}

