window.onload = setupPage;

function setupPage()
{
	if (!document.getElementsByTagName)
	{
		return;
	}
	
	var anchors = document.getElementsByTagName("a");
	
	for (var i = 0; i < anchors.length; i++)
	{
		var anchor = anchors[i];
		
		if (anchor.getAttribute("href") && anchor.getAttribute("rel") == "external")
		{
			anchor.target = "_blank";
		}
	}
}

function trackClick(id)
{
	if (pageTracker != null)
	{
		pageTracker._trackPageview('Link: ' + id);
	}
}

function getQueryString(name)
{
	var queryString = window.location.search.substring(1);
	var values = queryString.split("&");
	
	for (var i = 0; i < values.length; i++)
	{
		var pair = values[i].split("=");
		
		if (pair[0] == name)
		{
			return pair[1];
		}
	}
	
	return "";
}

function createCookie(name, value, days)
{
	if (value == "")
	{
		days = -1;
	}
	
	if (!days)
	{
		var expires = "";
	}
	else
	{
		var date = new Date();
		date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
		var expires = "; expires=" + date.toGMTString();
	}
	
	document.cookie = name + "=" + value + expires + "; path=/";
}

function getCookie(name)
{
	var cookies = document.cookie.split(";");
	name += "=";
	
	for (var i = 0; i < cookies.length; i++)
	{
		var cookie = cookies[i];
		
		while (cookie.charAt(0) == " ")
		{
			cookie = cookie.substring(1, cookie.length);
		}
		
		if (cookie.indexOf(name) == 0)
		{
			return cookie.substring(name.length, cookie.length);
		}
	}
	
	return null;
}

var validated = false;

function validateRequiredField(field, name)
{
	var validationField = document.getElementById(field + "_r");
	
	if (document.getElementById(field).value == "")
	{
		validationField.innerHTML = "<br />" + name + " is required.";
		
		return false;
	}
	else
	{
		validationField.innerHTML = "";
		
		return true;
	}
}


function validatePhone(field, name)
{
	var validationField = document.getElementById(field + "_r");
	
	if (document.getElementById(field).value.search(/^\d{3}\-\d{3}\-\d{4}/)==-1)
	{
		validationField.innerHTML = "<br />Phone number should be this format: xxx-xxx-xxxx.";
		return false;		
	}
	else if (document.getElementById(field).value == "555-555-5555") {
		validationField.innerHTML = "<br />Please enter a valid phone number.";
		return false;	
	}
	
	return true;
}


function validateEmail(field, name)
{
	var email = document.getElementById(field);
	var validChars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789@.-_";
	var invalidChars = false;
	
	for (i = 0; i < email.value.length && !invalidChars; i++)
	{
		 var chr = email.value.charAt(i);
		 
		 if (validChars.indexOf(chr) == -1)
		 {
         	invalidChars = true;
         }
	}
	
	var atPos = email.value.indexOf("@");
	var dotPos = email.value.lastIndexOf(".");
	var validationField = document.getElementById(field + "_r");
	
	if (invalidChars || email.value.indexOf("@@") != -1 || email.value.indexOf("..") != -1 || atPos < 2 || atPos == email.value.length - 1 || dotPos < 5 || dotPos > email.value.length - 3 || dotPos < atPos || email.value.indexOf("@", atPos + 1) != -1 || dotPos < atPos + 3 || email.value.indexOf(" ") != -1)
	{
		validationField.innerHTML = "<br />" + name + " is invalid.";
		
		return false;
	}
	else
	{
		validationField.innerHTML = "";
		
		return true;
	}
}

function validateEmailDomain(field, name)
{
	var invalid = false;
	var invalidDomains = new Array("@yahoo.", "@gmail.", "@hotmail.", "@aol.", "@icqmail.", "@lycos.", "@myway.", "@linuxmail.org", "@operamail.", "@rediffmail.", "@mail2web.", "@mail.", "@juno.", "@earthlink.net", "@cableone.net", "@cox.net", "@comcast.net", "@optonline.net", "@charter.net");
	var email = document.getElementById(field);
	var validationField = document.getElementById(field + "_r");
	
	for (var i = 0; i < invalidDomains.length; i++)
	{
		if (email.value.indexOf(invalidDomains[i]) != -1)
		{
			invalid = true;
			
			break;
		}
	}
	
	if (invalid)
	{
		validationField.innerHTML = "<br />" + name + " cannot be a personal address.";
		
		return false;
	}
	else
	{
		validationField.innerHTML = "";
		
		return true;
	}
}

function finalValidation(errorCount, field)
{
	validated = true;
	
	if (errorCount == 0)
	{
		document.getElementById(field).innerHTML = "";
		
		return true;
	}
	else
	{
	//	document.getElementById(field).innerHTML = "<p>Please correct the errors below.</p>";
		
		return false;
	}
}

function reValidate()
{
	if (validated)
	{
		validateForm();
	}
}

function validateNumber(evt)
{
//	var e = event || evt;
	var e = evt;
	var chr = e.which || e.keyCode;
	
	if (chr > 31 && (chr < 48 || chr > 57))
	{
		return false;
	}
	
	return true;
}

function validateNumberValue(field, minNumber, maxNumber)
{
	if (minNumber != "" && field.value < minNumber)
	{
		field.value = minNumber;
	}
	
	if (maxNumber != "" && field.value > maxNumber)
	{
		field.value = maxNumber;
	}
}

function updateBilled()
{
	document.getElementById("employee_billed_raw").innerHTML = 100 - document.getElementById("company_billed").value;
	document.getElementById("employee_billed").value = 100 - document.getElementById("company_billed").value;
}
