var g_allowSubmit = true;

function checkEnter(e)
{
	var theForm;
	var characterCode;

	if(e && e.which)
	{ 
		//if which property of event object is supported (NN4)
		e = e;
		characterCode = e.which; //character code is contained in NN4's which property
		if(!e.target.form) return;
		theForm = e.target.form; //firefox uses target to store the element that triggered the event
		if (e.target.tagName == 'TEXTAREA') return;
	}
	else
	{
		e = event;
		characterCode = e.keyCode; //character code is contained in IE's keyCode property
		if(!e.srcElement.form) return;
		theForm = e.srcElement.form; //IE uses srcElement to store the element that triggered the event
		if (e.srcElement.tagName == 'TEXTAREA') return;
	}

	if ((characterCode == 13) && (g_allowSubmit))
	{
		//find the number of text boxes in the form
		var elements = theForm.getElementsByTagName('INPUT');
		var txtCounter = 0;
		for (var i=0; i<elements.length; i++)
		{
			if (elements[i].type.toLowerCase() == 'text')
				txtCounter++;
		}

		if (txtCounter == 1)
		{
			//only one text box, if the browser sees the enter key press it will auto-submit
			//set the OnKeyPress (the calling event handler) to false to supress/ignore the enter press
			if (window.navigator.userAgent.indexOf("MSIE") > 0)
				e.returnValue = false;	//IE
			else
				e.preventDefault();		//Mozilla
		}
	
		//if generated character code is equal to ascii 13 (if enter key)
		if(theForm.onsubmit!=null)
		{
			if(theForm.onsubmit != '')
			{
				if(eval(theForm.onsubmit()))
				{
					g_allowSubmit = false;
					theForm.submit() //submit the form 
				}
			}
		}
		else
		{
			g_allowSubmit = false;		
			theForm.submit() //submit the form 
		}
	}
}


function Trim(str)
{
	var matchLeadingBlanks = /^[\s]*/gi;   // this pattern matches the leading blanks
	var matchTrailingBlanks = /[\s]*$/gi;  // this pattern matches the trailing blanks
	str = str.replace(matchLeadingBlanks,""); // remove the leading blanks
	str =str.replace(matchTrailingBlanks,""); // remove trailing blanks
	return str;
}

function isInteger(input)
{
	var badchars = /[,\$\ ]/g; //matches space, comma, dollar sign
	var integer = /^\d+$/; //matches only integers
	var str = input.toString();

	str = str.replace(badchars, '');//filter out characters we don't care about

	return (str.match(integer) != null);
}

function checkEmail(email)
{
	var value = email.value;
	var at = value.indexOf('@');
	var period = value.indexOf('.');
	var period2 = value.indexOf('.', period + 1);
	// if second period exists, make sure both don't come before @ and that an period is not adjacent to the second .
	if (period2 >= 0)
	{
		if ((period < at) && (period2 < at))
		{
			alert('Please enter a valid email address');
			email.focus();
			return false;
		}
		if (period2 + 1 == value.indexOf('.', period2 + 1))
		{
			alert('Please enter a valid email address');
			email.focus();
			return false;
		}
	}
	// if second period doesn't exist, make sure first period doesn't come before @
	else
	{
		if (period < at)
		{
			alert('Please enter a valid email address');
			email.focus();
			return false;
		}
	}
	
	// make sure both periods are not adjacent to @ symbol and that the last period of the email isn't at the end
	if (((at - 1) == period) || value.lastIndexOf('.') + 1 == value.length ||((at + 1) == period) || ((at - 1) == period2) || ((at + 1) == period2))
	{
		alert('Please enter a valid email address');
		email.focus();
		return false;
	}
	
	//check for:@, a period, @ is not at beginning or end, just 1 @, the period is not the last character
	if ((at < 0 ) || (period < 0) || (value.lastIndexOf('@') != at) || (at == 0) || (at + 1 == value.length) || (period + 1 == value.length))
	{
		alert('Please enter a valid email address');
		email.focus();
		return false;
	}
	else
		return true;	
}

function hideAllSubNavs(id)
{	
	var subNavs = document.getElementsByTagName('DIV');
	if (subNavs.length)
	{
		for(var i=0; i<subNavs.length; i++)
		{
			if ((subNavs[i].name == 'SubNav') && (subNavs[i].id != id) && (subNavs[i].parentNode.nextSibling != null))
			{
				hideSubNav(subNavs[i].id);
			}
		}
	}
}


function getNavCounter()
{
	var x;
	x = 0;
	var currentPage = getSelectedPage();
	for(x=0; x < navArray.length; x++)
	{
		if(navArray[x] == currentPage)
			return x;	
	}
}


function hideSubNav(id)
{
		
			var counter = getNavCounter();
			var page = getSelectedPage();
			var subNav = document.getElementById(id);	
			if (subNav != null)
			{	
				if (subNav.parentNode.firstChild.className == 'NavLinkHover')
					subNav.parentNode.firstChild.className = 'NavLink';	
				
				if((id != navArray[counter+1]) && (id != navArray[counter]))
				{
					if ((subNav.parentNode.previousSibling != null) && (subNav.parentNode.previousSibling.firstChild != null))
						if(subNav.parentNode.previousSibling.firstChild.className == 'NavDividerHover')
							subNav.parentNode.previousSibling.firstChild.className = 'NavDivider';
				}
				if((id != navArray[counter-1]) && (id != navArray[counter]))
				{
					if ((subNav.parentNode.nextSibling != null) && (subNav.parentNode.nextSibling.firstChild != null))
						if (subNav.parentNode.nextSibling.firstChild.className == 'NavDividerHover')
							subNav.parentNode.nextSibling.firstChild.className = 'NavDivider';
				}
				var subSubNav = subNav.getElementsByTagName('DIV');			
				if (subSubNav.length > 0)
					hideSubNav(subSubNav[0].id);
				
				subNav.style.visibility = 'hidden';
				toggleDropDowns(true);
				
			}
		
}

function showSubNav(id, doAll)
{
	//if doAll = 1 then building the nav
	//if doAll = 0 then changing nav for current page selection
	if (doAll == 1)
		hideAllSubNavs(id);
	
	var subNav = document.getElementById(id); 
	var iWinWidth;
	var iSubNavLeft;
	var iRightPos;
	
	
	if (subNav != null)
	{	
		if(doAll == 1)
			toggleDropDowns(false);
		if (subNav.parentNode.firstChild.className == 'NavLink')
			subNav.parentNode.firstChild.className = 'NavLinkHover';
		
		
			if ((subNav.parentNode.previousSibling != null) && (subNav.parentNode.previousSibling.firstChild != null))
				if(subNav.parentNode.previousSibling.firstChild.className == 'NavDivider')
					subNav.parentNode.previousSibling.firstChild.className = 'NavDividerHover';
			if ((subNav.parentNode.nextSibling != null) && (subNav.parentNode.nextSibling.firstChild != null))
				if(subNav.parentNode.nextSibling.firstChild.className == 'NavDivider')
					subNav.parentNode.nextSibling.firstChild.className = 'NavDividerHover';
	
		if (subNav.parentNode.nextSibling != null)
		{
			subNav.style.left = getAbsoluteLeft(subNav.parentNode);
			if (navigator.userAgent.indexOf('KHTML') != -1)
			{
				subNav.style.top = getAbsoluteTop(subNav.parentNode) + subNav.parentNode.clientHeight;
			}
			else
			{
				subNav.style.top = getAbsoluteTop(subNav.parentNode) + subNav.parentNode.clientHeight - 5;
			}
		}
		else
		{
			subNav.style.left = -(subNav.offsetWidth);		
			subNav.style.top = getAbsoluteTop(subNav.parentNode) - getAbsoluteTop(subNav.parentNode.parentNode.parentNode);
		}
		
		// check if beyond window bounds
		if (subNav.parentNode.nextSibling != null)
		{
			iSubNavLeft = getAbsoluteLeft(subNav.parentNode);
			if(parseInt(navigator.appVersion) > 3)
			{
				if (navigator.appName == 'Netscape')
					iWinWidth = window.innerWidth;
				if (navigator.appName.indexOf("Microsoft") != -1)
					iWinWidth = document.body.offsetWidth;
			}
			iWinWidth = iWinWidth - 20; //account for scrollbars
			
			if(eval(iSubNavLeft + subNav.offsetWidth) > iWinWidth)
			{
				iRightPos = eval(iSubNavLeft + subNav.parentNode.offsetWidth) + 2; //2 for border
				subNav.style.left = eval(iRightPos - subNav.offsetWidth);
			}
		}
		if(doAll == 1)
			subNav.style.visibility = 'visible';
	}
	
}

function toggleDropDowns(bShow)
{
	selObjects = document.getElementsByTagName("SELECT");
	for(var k=0; k < selObjects.length; k++)
	{
		if(bShow)
			selObjects[k].style.visibility = 'visible';
		else
			selObjects[k].style.visibility = 'hidden';
	}
}

var _version = 'Pre 1.2';

function getElementsByClassName(className, element)
{
	if (!(element))
	{
		element = document;
	}
	var allElements;
	var matchElements = new Array();

	if (document.getElementsByTagName('*').length == 0)
	{
		//HACK: 1- IE 5 will not return ('*') elements
		//		2- IE 5 will not see elements dynamically appended to body-- force searching from document level
		allElements = document.all;
	}
	else
	{	
		allElements = element.getElementsByTagName('*');
	}

	for(var i=0,len=allElements.length; i<len; i++)
	{
		if ((allElements[i].getAttribute('tag') == className) || (allElements[i].className.toLowerCase() == className.toLowerCase()))
		{
			matchElements[matchElements.length]=allElements[i];
		}
	}
	return matchElements;
}

document.getElementsById = function (id)
{
	var allElements;
	var matchElements = new Array();

	if (document.getElementsByTagName('*').length == 0)
	{
		//HACK: 1- IE 5 will not return ('*') elements
		//		2- IE 5 will not see elements dynamically appended to body-- force searching from document level
		allElements = document.all;
	}
	else
	{	
		allElements = document.getElementsByTagName('*');
	}

	for(var i=0,len=allElements.length; i<len; i++)
	{
		if (allElements[i].id.toLowerCase() == id.toLowerCase())
		{
			matchElements[matchElements.length]=allElements[i];
		}
	}
	return matchElements;
}			

function formatPoints(points)
{
	if (isNaN(parseInt(points)))
	{
		return 0;
	}
	else
	{
		var i = parseInt(points);
		var minus = '';
		var a = [];

		if(i < 0) 
		{ 
			minus = '-'; 
		}
		i = Math.abs(i);
		var n = new String(i);
		while(n.length > 3)
		{
			var nn = n.substr(n.length-3);
			a.unshift(nn);
			n = n.substr(0,n.length-3);
		}
		if(n.length > 0) 
		{
			a.unshift(n);
		}
		n = a.join(',');
		amount = n;
		amount = minus + amount;
		return amount;
	}
}

function getAbsoluteLeft(element)
{
	var left = element.offsetLeft;
	if (element.offsetParent != null)
	{
		left += getAbsoluteLeft(element.offsetParent);
	}
	return left;
}

function getAbsoluteTop(element)
{
	var top = element.offsetTop;
	if (element.offsetParent != null)
	{
		top += getAbsoluteTop(element.offsetParent);
	}
	return top;
}	

function createXmlDocument()
{
	var xmlDoc;

	if (window.ActiveXObject)
	{
		xmlDoc = new ActiveXObject('Microsoft.XMLDOM');
		var xmlPI = xmlDoc.createProcessingInstruction('xml', ' version="1.0" encoding="ISO-8859-1"');
		xmlDoc.appendChild(xmlPI);
		return xmlDoc;
	}
	else if (document.implementation && document.implementation.createDocument)
	{
		xmlDoc = document.implementation.createDocument('', '', null);
		return xmlDoc;
	}
	else
	{
		return null;
	}
}

function loadXmlDocumentAsync(xmlURL, callbackFunc)
{
	var xmlDoc;
	var httpRequest;

	if (window.ActiveXObject)
	{
		xmlDoc = new ActiveXObject('Microsoft.XMLDOM');
		xmlDoc.async = true;
		var xmlPI = xmlDoc.createProcessingInstruction('xml', ' version="1.0" encoding="ISO-8859-1"');
		xmlDoc.appendChild(xmlPI);
		xmlDoc.load(xmlURL);
		xmlDoc.onreadystatechange = function()
		{
			callbackFunc(xmlDoc);
		}
		return true;
	}
	else if(window.XMLHttpRequest && document.implementation && document.implementation.createDocument)
	{
		httpRequest = new XMLHttpRequest();
		if (httpRequest.overrideMimeType) httpRequest.overrideMimeType('text/xml');
		httpRequest.onreadystatechange = function()
		{
			if (httpRequest.readyState == 4)
			{
				if (httpRequest.status == 200)
				{
					callbackFunc(httpRequest.responseXML);
				}
				else
				{
					alert('There was a problem with the request.');
				}
			}
		}
        httpRequest.open('GET', xmlURL, true);
        httpRequest.send(null);

		return true;
	}
	else
	{
		return false;
	}
}

function loadXmlDocument(xmlURL, callbackFunc)
{
	var xmlDoc;
	var httpRequest;
	
	if (window.ActiveXObject)
	{
		xmlDoc = new ActiveXObject('Microsoft.XMLDOM');
		xmlDoc.async = false;
		var xmlPI = xmlDoc.createProcessingInstruction('xml', ' version="1.0" encoding="ISO-8859-1"');
		xmlDoc.appendChild(xmlPI);
		xmlDoc.load(xmlURL);
		callbackFunc(xmlDoc);
		return true;
	}
	else if (window.XMLHttpRequest && document.implementation && document.implementation.createDocument)
	{
		httpRequest = new XMLHttpRequest();
		if (httpRequest.overrideMimeType) httpRequest.overrideMimeType('text/xml');
		httpRequest.onreadystatechange = function()
		{
			if (httpRequest.readyState == 4)
			{
				if (httpRequest.status == 200)
				{
					callbackFunc(httpRequest.responseXML);
				}
				else
				{
					alert('There was a problem with the request.');
				}
			}
		}
        httpRequest.open('GET', xmlURL, true);
        httpRequest.send(null);

		return true;
	}
	else
	{
		return false;
	}
}

function sendXmlDocument(xmlURL, xmlDoc, callbackFunc) 
{
	if (window.ActiveXObject)
	{
		xmlPost = new ActiveXObject('Microsoft.XMLHTTP');
		xmlPost.onreadystatechange = callbackFunc;
		xmlPost.open('POST', xmlURL, true);
		xmlPost.setRequestHeader('content-type', 'text/xml');
		xmlPost.send(xmlDoc);
		return true;
	}
	else if (window.XMLHttpRequest)
	{
		xmlPost = new XMLHttpRequest();
		xmlPost.onreadystatechange = callbackFunc;
		xmlPost.open('POST', xmlURL, true);
		xmlPost.setRequestHeader('content-type', 'text/xml');
		xmlPost.send(xmlDoc);
		return true;
	}		
	else
	{
		return false;
	}
}

function findBaseStylesheet()
{
	for (var i=0; i<document.styleSheets.length; i++)
	{
		if (document.styleSheets[i].href.toLowerCase() == 'stylesheets/re2006_base.css')
			return i;
	}
}

function arrayContains(arrayToCheck, objectToFind)
{
	var found = false;
	if (arrayToCheck != null)
	{
		for(var i=0; i<arrayToCheck.length; i++)
		{
			if (arrayToCheck[i] == objectToFind)
			{
				found = true;
				break;
			}
		}
	}
	return found;
}

function arrayIndexOf(arrayToCheck, objectToFind)
{
	var found = false;
	if (arrayToCheck != null)
	{
		for(var i=0; i<arrayToCheck.length; i++)
		{
			if (arrayToCheck[i] == objectToFind)
				return i;
		}
	}
	return -1;
}
function getSitePalette()
{
	var sitePalette = new Array();
	for(var i=0; i<document.styleSheets.length; i++)
	{
		if (document.styleSheets[i].rules)
		{
			for(var j=0; j<document.styleSheets[i].rules.length; j++)
			{
				if ((document.styleSheets[i].rules[j].style.color != '') && (!(arrayContains(sitePalette, document.styleSheets[i].rules[j].style.color.toString().toLowerCase()))))
					sitePalette[sitePalette.length] = document.styleSheets[i].rules[j].style.color.toString().toLowerCase();
				if ((document.styleSheets[i].rules[j].style.backgroundColor != '') && (!(arrayContains(sitePalette, document.styleSheets[i].rules[j].style.backgroundColor.toString().toLowerCase()))))
					sitePalette[sitePalette.length] = document.styleSheets[i].rules[j].style.backgroundColor.toString().toLowerCase();
			}
		}
		else if (document.styleSheets[i].cssRules)
		{
			for(var j=0; j<document.styleSheets[i].cssRules.length; j++)
			{
				if ((document.styleSheets[i].cssRules[j].style.color != '') && (!(arrayContains(sitePalette, document.styleSheets[i].cssRules[j].style.color.toString().toLowerCase()))))
					sitePalette[sitePalette.length] = document.styleSheets[i].cssRules[j].style.color.toString().toLowerCase();
				if ((document.styleSheets[i].cssRules[j].style.backgroundColor != '') && (!(arrayContains(sitePalette, document.styleSheets[i].cssRules[j].style.backgroundColor.toString().toLowerCase()))))
					sitePalette[sitePalette.length] = document.styleSheets[i].cssRules[j].style.backgroundColor.toString().toLowerCase();
			}
		}
	}
	
	sitePalette.sort(sortPalette)
	return sitePalette;
}

function sortPalette(a, b)
{
	var r1 = parseInt(a.substr(1, 2), 16) * 1000000;
	var g1 = parseInt(a.substr(3, 2), 16) * 1000;
	var b1 = parseInt(a.substr(5, 2), 16) * 1;
	var r2 = parseInt(b.substr(1, 2), 16) * 1000000;
	var g2 = parseInt(b.substr(3, 2), 16) * 1000;
	var b2 = parseInt(b.substr(5, 2), 16) * 1;

	var sum1 = r1 + g1 + b1;
	var sum2 = r2 + g2 + b2;

	return (sum1 - sum2) * -1;
}

function setColor(color)
{
	color = color.toString().toLowerCase();
	//color has been chosen
	if (currentFontEdit != '')
	{
		//display sample
		var sample = document.getElementById('FontEditor_Sample');
		sample.innerText = document.getElementById(currentFontEdit).value.length > 10 ? document.getElementById(currentFontEdit).value.substring(0, 10) + '...' : document.getElementById(currentFontEdit).value;
		
		if (color != '')
		{
			//set for object based on sample tag (header content footer)
			sample.style.color = color;
			eval('boxArray[boxIndex].' + document.getElementById(currentFontEdit).tag + 'Styles')[0] = 'color: ' + sample.style.color;
			document.getElementById('FontEditor_CurrentColor').style.backgroundColor = color;
			document.frmFontEditor.FontEditor_ColorHex.value = color.toUpperCase();
		}
	}
	else
	{
		//not a font, so it is a border, background or palette for skins
		if (document.getElementById('Layout_BGEditor') && document.getElementById('Layout_BGEditor').style.visibility == 'visible')
		{
			boxArray[boxIndex].bgColor = color;
			document.getElementById('BGEditor_CurrentColor').style.backgroundColor = color;				
			document.frmBGEditor.BGEditor_ColorHex.value = color.toUpperCase();
			if (color == '')
				document.getElementById('BGEditor_CurrentColor').style.backgroundImage = 'url(images/content_colortrans.gif)';
			else
				document.getElementById('BGEditor_CurrentColor').style.backgroundImage = '';
		}
		else if (document.getElementById('Layout_BorderEditor') && document.getElementById('Layout_BorderEditor').style.visibility == 'visible')
		{
			boxArray[boxIndex].borderColor = color;
			document.getElementById('BorderEditor_CurrentColor').style.backgroundColor = color;
			document.frmBorderEditor.BorderEditor_ColorHex.value = color.toUpperCase();
			if (color == '')
				document.getElementById('BorderEditor_CurrentColor').style.backgroundImage = 'url(images/content_colortrans.gif)';
			else
				document.getElementById('BorderEditor_CurrentColor').style.backgroundImage = '';
		}
		else if (document.getElementById('Layout_UnderlineEditor') && document.getElementById('Layout_UnderlineEditor').style.visibility == 'visible')
		{
			boxArray[boxIndex].underlineColor = color;
			document.getElementById('UnderlineEditor_CurrentColor').style.backgroundColor = color;
			document.frmUnderlineEditor.UnderlineEditor_ColorHex.value = color.toUpperCase();
			if (color == '')
				document.getElementById('UnderlineEditor_CurrentColor').style.backgroundImage = 'url(images/content_colortrans.gif)';
			else
				document.getElementById('UnderlineEditor_CurrentColor').style.backgroundImage = '';
		}		
		else if (document.getElementById('Layout_BulletEditor') && document.getElementById('Layout_BulletEditor').style.visibility == 'visible')
		{
			boxArray[boxIndex].bulletColor = color;
			document.getElementById('BulletEditor_CurrentColor').style.backgroundColor = color;
			document.frmBulletEditor.BulletEditor_ColorHex.value = color.toUpperCase();
			if (color == '')
				document.getElementById('BulletEditor_CurrentColor').style.backgroundImage = 'url(images/content_colortrans.gif)';
			else
				document.getElementById('BulletEditor_CurrentColor').style.backgroundImage = '';
		}
		else if (document.getElementById('Layout_SkinPalette') && document.getElementById('Layout_SkinPalette').style.visibility == 'visible')
		{
			document.getElementById('SkinPalette_CurrentColor').style.backgroundColor = color;
			document.frmSkinPalette.SkinPalette_ColorHex.value = color.toUpperCase();
			if (color == '')
				document.getElementById('SkinPalette_CurrentColor').style.backgroundImage = 'url(images/content_colortrans.gif)';
			else
				document.getElementById('SkinPalette_CurrentColor').style.backgroundImage = '';
		}		
	}
}

function setSelectedIndex(dropDown, newValue)
{

	for (var i=0; i<dropDown.options.length; i++)
	{
		if (dropDown.options[i].value == newValue)
			dropDown.selectedIndex = i;
	}
}

function Int64(x)
{
	this.lo = x >>> 0;
	this.hi = Math.floor(x / Math.pow(2, 32));
}

function bitwiseAnd(x, y)
{
	var x64 = new Int64(x);
	var y64 = new Int64(y);
	return Math.pow(2, 32) * (x64.hi & y64.hi) + ((x64.lo & y64.lo) >>> 0);
}

function toggleAdvanced()
{
	var objArray = document.getElementsByName('advToggle');
	var tmpString;
	var sPageName = '';
	var sQueryString = '';
	
	for(var l=0; l<objArray.length; l++)
	{
		switch(objArray[l].tagName.toUpperCase())
		{
			case 'A':
				tmpString = objArray[l].href.toLowerCase();
				sPageName = objArray[l].innerText;
				if(tmpString.toLowerCase().indexOf('toggleadvanced()') > 0)
				{
					if(document.frmIbTranslate)
					{
						if(objArray[l].innerText == document.frmIbTranslate.hdAdvanced.value)//'Advanced Mode')
							objArray[l].innerText = document.frmIbTranslate.hdSimple.value;//'Simple Mode';
						else
							objArray[l].innerText = document.frmIbTranslate.hdAdvanced.value;//'Advanced Mode';
					}
				}
				else
				{
					sPageName = tmpString.substring(parseInt(tmpString.indexOf('/ib_') + 1), tmpString.indexOf('?'));
					sQueryString = tmpString.substring(tmpString.indexOf('?'), tmpString.length);
					if(sPageName == 'ib_setdataperiods.asp')
						objArray[l].href = 'ib_ruleschedule.asp' + sQueryString;
					else
						objArray[l].href = 'ib_setdataperiods.asp' + sQueryString;
				}
				break;
			case 'IMG':
				tmpString = objArray[l].src.toLowerCase();
				sPageName = tmpString.substring(parseInt(tmpString.indexOf('/ib_') + 1), tmpString.length);
				if(sPageName == 'ib_table_simpleicon.gif')
				{
					objArray[l].src = 'images/ib_table_advancedicon.gif';
					if(document.frmIbTranslate)
					{
						objArray[l].alt = document.frmIbTranslate.hdAdvanced.value;//'Advanced Mode';
					}
				}
				else
				{
					objArray[l].src = 'images/ib_table_simpleicon.gif';
					if(document.frmIbTranslate)
					{
						objArray[l].alt = document.frmIbTranslate.hdSimple.value;//'Simple Mode';
					}
				}
				break;
			default:
				tmpString = objArray[l].style.display;
				sPageName = objArray[l].style.visibility;
				if(objArray[l].style.visibility == 'hidden')
				{
					objArray[l].style.visibility = 'visible';
					objArray[l].style.display = '';
				}
				else
				{
					objArray[l].style.visibility = 'hidden';
					objArray[l].style.display = 'none';
				}
				break;
		}
	}
	adjustHeights(true)
}

function formatOrdinal(number)
{
	number = Trim(number.toString());

	switch (number.substr(number.length-1, 1))
	{
		case '1' :
			return ((number.length > 1) && (number.substr(number.length-2, 2) == '11')) ? number + 'th' : number + 'st';
		case '2' : 
			return ((number.length > 1) && (number.substr(number.length-2, 2) == '12')) ? number + 'th' : number + 'nd';
		case '3' :
			return ((number.length > 1) && (number.substr(number.length-2, 2) == '13')) ? number + 'th' : number + 'rd';
		case '' :
			return '';
		default :
			return number + 'th';
	}
}

function PropagatePastReferrer()
{
	if (!document.prevreferrer) return;
	
	var i;
	var refform;
	var refnode;
	
	refform = document.prevreferrer;
	
	//copy the past referrer into all of the forms on the page
	for(i = 0; i < document.forms.length; i++)
	{
		if (document.forms[i] != refform && document.forms[i].method.toUpperCase() != 'GET')
		{
			refnode = refform.pastreferrer.cloneNode(false);
			document.forms[i].appendChild(refnode);
		}
	}
}

function HideLangLinks()
{
	var alllinks = document.getElementsByTagName("A");
	var i;
	for(i = 0; i < alllinks.length; i++)
	{
		if(alllinks[i].href.indexOf('general_changelanguage.asp') != -1)
		{
			alllinks[i].style.display = 'none';
			alllinks[i].style.visibility = 'hidden';
		}
	}
}
