function getElementsByClass(searchClass,node,tag) {
        var classElements = new Array();
        if ( node == null )
                node = document;
        if ( tag == null )
                tag = '*';
        var els = node.getElementsByTagName(tag);
        var elsLen = els.length;
        var pattern = new RegExp("(^|\\s)"+searchClass+"(\\s|$)");
        for (i = 0, j = 0; i < elsLen; i++) {
                if ( pattern.test(els[i].className) ) {
                        classElements[j] = els[i];
                        j++;
                }
        }
        return classElements;
}

function getStyle(el,IEStyleProp, CSSStyleProp)
{
	
	if (el.currentStyle)
		var y = el.currentStyle[IEStyleProp];
	else if (window.getComputedStyle)
		var y = document.defaultView.getComputedStyle(el,null).getPropertyValue(CSSStyleProp);
	return y;
}

function adjustNavigationPadding()
{
	//grab the width of the wrapper
	var navWidth = document.getElementById('wrapper').offsetWidth;
	//var navWidth=983;
	
	//grab all the top level elements which have a name of navA
	var navAnchors = getElementsByClass('topNavEl', document);
	
	
	var numButtons = navAnchors.length;
	
	var anchorsWidth = 0;
	var LImargin = 0;
	
	var ulWidth = 200;
	//This loops through all the items to grab their total width
	if (typeof(paddingExtra) == 'undefined') 
		var paddingExtra = 0;
	
	for (x = 0; x < numButtons; x = x + 1) {
		//Find the width of all the anchor tags parents (the li nodes)
		//We do the parents because they may contain a border, which offsetWidth will grab
		anchorsWidth = anchorsWidth + navAnchors[x].offsetWidth + paddingExtra;
		
		marginLeft = getStyle(navAnchors[x], "marginLeft", "margin-left").replace(/px/, "");
		marginRight = getStyle(navAnchors[x], "marginRight", "margin-right").replace(/px/, "");
		LImargin = LImargin + parseInt(marginLeft) + parseInt(marginRight);
	}
	
	LImargin = parseInt(LImargin);
	
	//calculate the leftover space
	var space = (navWidth - anchorsWidth) - LImargin;
	
	if (space >= 0) {
	
		//calculate the padding and round it down
		var padding = space / (numButtons * 2);
		
		padding = Math.floor(padding);
		
		//calculate the remainder to be added to the very ends
		var remainder = space - (padding * (numButtons * 2));
		
		var outsidePadding = Math.floor(remainder / 4);
		
		if (outsidePadding <= 0) {
			//if the remainder is less than 4, then we'll just set that to extra
			outsidePadding = 0;
			var extra = remainder;
		}
		else {
			//if there is extra leftover after the remainder has been divided, get it here
			var extra = remainder - (outsidePadding * 4);
		}
		
		var wrapper = document.getElementById('wrapper');
		//This loop goes through the middle items
		for (x = 1; x < (numButtons - 1); x = x + 1) {
			var realAnchor = navAnchors[x].getElementsByTagName('a')[0];
			realAnchor.style.paddingRight = padding + "px";
			realAnchor.style.paddingLeft = padding + "px";
		}
		
		var firstAnchor = navAnchors[0].getElementsByTagName('a')[0];
		
		firstAnchor.style.paddingRight = (padding + outsidePadding) + "px";
		firstAnchor.style.paddingLeft = (padding + outsidePadding + extra) + "px";
		
		var lastAnchor = navAnchors[numButtons - 1].getElementsByTagName('a')[0];
		//If items are added, alter this accordingly to be the last item in the index.
		lastAnchor.style.paddingRight = (padding + outsidePadding) + "px";
		lastAnchor.style.paddingLeft = (padding + outsidePadding) + "px";
		
		
		// adjust last element's dropdown if necessary
		var lastDropdown = document.getElementById('tn_last');
		if (lastDropdown)
		{
			// find the position
			var parentEl = lastDropdown.parentNode;
			var leftOffset = parentEl.offsetLeft;
			var diff = navWidth - (leftOffset + lastDropdown.offsetWidth);
			if (diff < 0)
			{
				// adjust left value of dropdown ul
				leftOffset.style.marginLeft = diff + 'px';
			}
			
		}
	}
}

function adjustDropdownPosition()
{
	var navWidth = document.getElementById('wrapper').offsetWidth;

	var topNavEls = jQuery('.topNavEl');
	var leftAdjust = 0;
	for (var i=0; i < topNavEls.length; i++)
	{
		var leftOffset = topNavEls[i].offsetLeft;
		if (i == 0 && (leftOffset > 5))
			leftAdjust = leftOffset;
		var ulList = topNavEls[i].getElementsByTagName('ul');
		if (ulList.length > 0)
		{
			var ul = ulList[0];
			var diff = navWidth - ((leftOffset-leftAdjust) + ul.offsetWidth);
			if (diff < 0)
			{
				jQuery(ul).css({marginLeft: diff});
			}
		}
	}
}
var sfHover
sfHover = function() {
	// Support the standard nav without a class of nav.
	var el = document.getElementById("nav");
	if(!/\bnav\b/.test(el.className) && el.tagName == "UL")
		setHover(el);

	// Find all unordered lists.
	var ieNavs = document.getElementsByTagName('ul');
	for(i=0; i<ieNavs.length; i++) {
		var ul = ieNavs[i];
		// If they have a class of nav add the menu hover.
		if(/\bnav\b/.test(ul.className))
			setHover(ul);
	}

}

function setHover(nav) {
	var ieULs = nav.getElementsByTagName('ul');
	if (navigator.appVersion.substr(22,3)!="5.0") {
		// IE script to cover <select> elements with <iframe>s
		for (j=0; j<ieULs.length; j++) {
			var ieMat=document.createElement('iframe');
			if(document.location.protocol == "https:")
				ieMat.src="//0";
			else if(window.opera != "undefined")
				ieMat.src="";
			else
				ieMat.src="javascript:false";
			ieMat.scrolling="no";
			ieMat.frameBorder="0";
			ieMat.style.width=ieULs[j].offsetWidth+"px";
			ieMat.style.height=ieULs[j].offsetHeight+"px";
			ieMat.style.zIndex="-1";
			ieULs[j].insertBefore(ieMat, ieULs[j].childNodes[0]);
			ieULs[j].style.zIndex="20000";
		}
		// IE script to change class on mouseover
		var ieLIs = nav.getElementsByTagName('li');
		for (var i=0; i<ieLIs.length; i++) if (ieLIs[i]) {
			// Add a sfhover class to the li.
			ieLIs[i].onmouseover=function() {
				if(!/\bsfhover\b/.test(this.className))
					this.className+=" sfhover";
			}
			ieLIs[i].onmouseout=function() {
				if(!this.contains(event.toElement))
					this.className=this.className.replace(' sfhover', '');
			}
		}
	} else {
		// IE 5.0 doesn't support iframes so hide the select statements on hover and show on mouse out.
		// IE script to change class on mouseover
		var ieLIs = document.getElementById('nav').getElementsByTagName('li');
		for (var i=0; i<ieLIs.length; i++) if (ieLIs[i]) {
			ieLIs[i].onmouseover=function() {this.className+=" sfhover";hideSelects();}
			ieLIs[i].onmouseout=function() {this.className=this.className.replace(' sfhover', '');showSelects()}
		}
	}
}

// If IE 5.0 hide and show the select statements.
function hideSelects(){
	var oSelects=document.getElementsByTagName("select");
	for(var i=0;i<oSelects.length;i++)
		oSelects[i].className+=" hide";
}

function showSelects(){
	var oSelects=document.getElementsByTagName("select");
	for(var i=0;i<oSelects.length;i++)
		oSelects[i].className=oSelects[i].className.replace(" hide","");
}

// Run this only for IE.
if (window.attachEvent) window.attachEvent('onload', sfHover);
// end

