var IE4 = (document.all && !document.getElementById) ? true : false;
var NS4 = (document.layers) ? true : false;
var IE5 = (document.all && document.getElementById) ? true : false;
var NS6 = (document.getElementById && !document.all) ? true : false;

var reEmail = /^[a-zA-Z0-9_][\w\.-]*[\w]\@[\w\.-]+\.(com|edu|org|net|gov|mil|info|biz|name|cc|us|uk|ws|bz|tv|co|ca|de|jp|ro|tc|dk|gs|sh|be|st|vu|kz|lt|fm|ac|nz|to|ms|as|ph|vg){1}(\.(\w{2}))?$/;
var reZip = /^[0-9]{5}((\-)|(-[0-9]{4})|([0-9]{4}))?$/;
var reAreaCode = /^[0-9]{3}$/;
var rePrefix = /^[0-9]{3}$/;
var rePhone = /^[0-9]{4}$/;
var reDate = /^(([1]{1}[0-2]{1})|([1-9]{1})|([0]{1}[1-9]{1})){1}\/(([1-2]{1}[0-9]{1})|([3]{1}[0-1]{1})|([1-9]{1})|([0]{1}[1-9]{1})){1}\/((19[0-9]{1}[0-9]{1})|(20[0]{1}[0-9]{1})){1}$/;
var reInteger = /^[0-9]+$/;
var reExtension = /^[0-9]{1,5}$/;
var reWhiteSpace = /[\s]/;

var arrMonths = new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December");
var arrDaysInMonth = new Array(31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31)

function isValidDate(strDate) {
	var arrDate = new Array();
	var posBeg;
	var posEnd;
	var i = 0;
	var intYear;

	strDate = strDate + '/';
	posBeg = 0;
	posEnd = strDate.indexOf("/");
	
	while(posEnd != -1) {
		arrDate[i] = parseInt(strDate.substring(posBeg,posEnd),10);
		i++;
		posBeg = posEnd + 1;
		posEnd = strDate.indexOf("/",posBeg);
	}

	intYear = parseInt(arrDate[2],10)
	if (intYear == 0) {
		return false;
	}
	
	if (isNaN(arrDate[0])) {
		return false;
	}
	
	if (isNaN(arrDate[1])) {
		return false;
	}
	
	//if month is February and not a leap year, set Days in Month = 28
	if((parseInt(arrDate[0],10) == 2) && ((intYear % 4 != 0) || (intYear % 4 == 0 && intYear % 100 == 0 && intYear % 400 != 0))) {
		arrDaysInMonth[1] = 28;
	}
	//else February is a leap year, set Days in Month = 29
	else {
		arrDaysInMonth[1] = 29;
	}
	
	//show error message if days in month is not valid
	if(parseInt(arrDate[1],10) > parseInt(arrDaysInMonth[parseInt(arrDate[0])-1],10)) {
		alert(arrMonths[parseInt(arrDate[0])-1] + " does not have " + arrDate[1] + " days.\nPlease enter a valid date.");
		return false;
	}
	else {
		return true;
	}
}

function getDelimiterPos(strVal, intBeg) {
	var intPos;
	var i;
	var intRetVal = -1;
	var arrDelimiter = new Array("/", ".", "-");
	
	for(i = 0; i < arrDelimiter.length; i++) {
		intPos = strVal.indexOf(arrDelimiter[i],intBeg);
		
		if(intPos > -1) {
			intRetVal = intPos;
			i = arrDelimiter.length;
			break;
		}
	}
	
	return intRetVal;
}

function printCurPage() {
	if(window.print) {
		window.print();
	}
	else if(IE4) {
		VBPrint();
	}
	else {
		alert("Your browser does not support this functionality.");
	}
}