﻿var ieVersion = getInternetExplorerVersion();

function textBoxCheckEnter(e, buttonClientId)
{
	if (getPressedKeyCode(e) == 13)
	{
		trimTextFields();
		
		if (document.getElementById(buttonClientId).onclick())
			window.location = document.getElementById(buttonClientId).href;
	}
}

function getPressedKeyCode(e)
{
	var charCode = -1;
	
	if (e && e.which)
	{
		if (e.target.tagName != 'TEXTAREA')
			charCode = e.which; //character code is contained in NN4's which property
	}
	else
	{
		if (event.srcElement.tagName != 'TEXTAREA')
			charCode = event.keyCode; 
	}
	
	return charCode;
}

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 trimTextFields()
{
	for (var i = 0; i < document.forms[0].elements.length; i++)
	{
		if (document.forms[0].elements[i].type == 'text' || document.forms[0].elements[i].type == 'password' || document.forms[0].elements[i].type == 'textarea')
			document.forms[0].elements[i].value = Trim(document.forms[0].elements[i].value);
	}
}

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 isAlphaNumeric(str)
{
	return (str.match(/^[a-z0-9]*$/i));
}



function showSubNav(element)
{
	if (element.childNodes.length > 1 && element.tagName.toUpperCase() == 'LI' && element.parentNode.className == 'navigation')
	{
		//if (ieVersion > 0 && ieVersion < 8)
		//	element.childNodes[1].style.top = getAbsoluteTop(element) + element.offsetParent.clientHeight - 1 + 'px';
		//else
			element.childNodes[1].style.top = getAbsoluteTop(element) + element.offsetHeight + 'px';

		if (element.childNodes[1].offsetWidth < element.offsetWidth)
			element.childNodes[1].style.width = element.offsetWidth + 2 + 'px';
		//alert(getAbsoluteTop(element));
		if (ieVersion > 0 && ieVersion < 8)
		{
			for (var i = 0; i < element.childNodes[1].childNodes.length; i++)
			{
				element.childNodes[1].childNodes[i].childNodes[0].style.width = element.childNodes[1].offsetWidth - 18;
			}
		}
			
		element.childNodes[1].style.left = getAbsoluteLeft(element) + 'px';
		element.childNodes[1].style.visibility = 'visible';
	}
}

function getInternetExplorerVersion()
// Returns the version of Internet Explorer or a -1
// (indicating the use of another browser).
{
	var rv = -1; // Return value assumes failure.
	if (navigator.appName == 'Microsoft Internet Explorer')
	{
		var ua = navigator.userAgent;
		var re = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
		if (re.exec(ua) != null)
			rv = parseFloat(RegExp.$1);
	}
	return rv;
}

function hideSubNav(element)
{
	if (element.childNodes.length > 1)
		element.childNodes[1].style.visibility = 'hidden';
}

function getAbsoluteLeft(element)
{
	var left = element.offsetLeft;

	//recursivly obtain position until either primary or previous subnav element is found
	if (element.offsetParent != null && element.offsetParent.tagName.toUpperCase() != 'UL')
		left += getAbsoluteLeft(element.offsetParent);

	return left;
}

function getAbsoluteTop(element)
{
	var top = element.offsetTop;

	//recursivly obtain position until div is found
	if (element.offsetParent != null && element.offsetParent.tagName.toUpperCase() != 'UL')
		top += getAbsoluteTop(element.offsetParent);

	return top;
}

function activateMap(imagename)
{
	document.getElementById('map').setAttribute('src', '../images/about_maps/' + imagename + '_over.jpg');
}
function resetMap()
{
	document.getElementById('map').setAttribute('src', '../images/about_maps/map_off.jpg');
}
