// Missing Field Values
function CheckForMissingValue(myfield,myfield_error)
	{
	if (document.getElementById(myfield) != undefined && document.getElementById(myfield_error) != undefined)
		{
		if (trim(document.getElementById(myfield).value) == "")
			{ 
			document.getElementById(myfield_error).innerHTML = "* Required";
			valid = false;
			} 
		else
			{document.getElementById(myfield_error).innerHTML = "*";}
		}
	}

// Trim
String.prototype.trim = function()
	{return this.replace(/^\s+|\s+$/g,"");}
String.prototype.ltrim = function()
	{return this.replace(/^\s+/,"");}
String.prototype.rtrim = function()
	{return this.replace(/\s+$/,"");}

function ltrim(str)
	{ 
	for(var k = 0; k < str.length && isWhitespace(str.charAt(k)); k++);
	return str.substring(k, str.length);
	}
function rtrim(str)
	{
	for(var j=str.length-1; j>=0 && isWhitespace(str.charAt(j)) ; j--) ;
	return str.substring(0,j+1);
	}
function trim(str)
	{return ltrim(rtrim(str));}
function isWhitespace(charToCheck)
	{
	var whitespaceChars = " \t\n\r\f";
	return (whitespaceChars.indexOf(charToCheck) != -1);
	}

// Show popups
function ShowPopup(hoveritem,hovertextID)
	{
	hp = document.getElementById(hovertextID);
	
	// Set position of hover-over popup
	hp.style.top = hoveritem.offsetTop + 0;
	hp.style.left = hoveritem.offsetLeft + 20;
	
	// Set popup to visible
	hp.style.visibility = "Visible";
	}

function HidePopup(hovertextID)
	{
	hp = document.getElementById(hovertextID);
	hp.style.visibility = "Hidden";
	}

// Validate Phone Number
function ValidatePhoneNumber(myfield,myfield_error)
	{
	validTemp = true;
	
	// Remove Characters
	document.getElementById(myfield).value = (document.getElementById(myfield).value.replace("(",""));
	document.getElementById(myfield).value = (document.getElementById(myfield).value.replace(")",""));
	document.getElementById(myfield).value = (document.getElementById(myfield).value.replace("-",""));

	document.getElementById(myfield).value = (document.getElementById(myfield).value.replace("(",""));
	document.getElementById(myfield).value = (document.getElementById(myfield).value.replace(")",""));
	document.getElementById(myfield).value = (document.getElementById(myfield).value.replace("-",""));
	
	// Validate IsNumber
	var validchars = "0123456789()-";
	var isnumber = true;
	var char;
	var myvalue = document.getElementById(myfield).value;
	
	for (i = 0; i < myvalue.length && isnumber == true; i++)
		{
		char = myvalue.charAt(i);
		if (validchars.indexOf(char) == -1)
			{
			isnumber = false;
			valid = false;
			validTemp = false;
			}
		}
		if (isnumber == false)
			{document.getElementById(myfield_error).innerHTML = "* Invalid character";}
	
	// Check Minimum Length
	if (validTemp == true && document.getElementById(myfield).value.length > 0 && document.getElementById(myfield).value.length < 10)
		{
		document.getElementById(myfield_error).innerHTML = "* Invalid length";
		valid = false;
		validTemp = false;
		}
	
	// Mask Field
	if (validTemp == true)
		{
			tel='('; 
			var val = document.getElementById(myfield).value.split(''); 
			for(var i=0;i<val.length;i++)
			{ 
				if(i==2)
				{val[i]=val[i]+')'} 
				if(i==5)
				{val[i]=val[i]+'-'} 
				tel=tel+val[i] 
			}
			// Allow null value
			if (tel != "(")
				{document.getElementById(myfield).value=tel;}
		}
		
	if (validTemp == true)
		{document.getElementById(myfield_error).innerHTML = "";}
	
	}
	
// Validate Email Address
regExp = /^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+(?:[A-Z]{2}|com|org|net|edu|gov|mil|biz|info|mobi|name|aero|jobs|coop|museum|us)\b/;
function validate_email(myfield,myfield_error)
	{
	if (regExp.test(trim(document.getElementById(myfield).value)) == true)
		{document.getElementById(myfield_error).innerHTML = "";}
	else
		{document.getElementById(myfield_error).innerHTML = "* Check formatting";}
	}
