
<!--

	/*
	
		This utility file contains common client side error checking functions to trap errors
		client side. This utility assumes standard browsers version 4.0 or better with standard 
		support for the DOM and Javascript 1.0 or greater.
	
	*/


//--------------------------------------------------------------------------------------------------

function ValidateStringForSize(objString, nMinSize, nMaxSize)
{
	
	if (!(objString == null))
	{
		// determine if the string is within the required size  
		return ((objString.value.length <= nMaxSize) && (objString.value.length >= nMinSize));		
	}
	else
	{
		// no string to validate
		return(false);
	}

}


//--------------------------------------------------------------------------------------------------

	
function AddToErrorList(strError, strMsg) 
{

	if (strError == "") 
	{
		strError = "Please Note:\n";
	}
	strError = strError + "* " + strMsg + "\n";
	
	return strError;
	
}


//--------------------------------------------------------------------------------------------------


function ValidateString(objString)
{
	if (!(objString.value == null))
	{
		// return a true value if the string contains data
		return (Trim(objString.value) != "")
	}
	else
	{
		// no string available 
		return false;
	}

}

//--------------------------------------------------------------------------------------------------

function Trim(v)
{
	var begin = 0;
	var len = v.length;
	while( begin < len )
	{
		if( v.charAt(begin) != " " )
			break;
		begin++;
	}
	var end = len
	var nextend = len - 1;
	while( end > begin )
	{
		if( v.charAt(nextend) != " " )
			break;
		end--;
		nextend--;
	}
	if( end > begin )
		v = v.substring(begin, end);
	else
		v = "";
	return v;
}

//--------------------------------------------------------------------------------------------------

function ValidateEmail(emailAddress) 
{
	if (emailAddress==null)
	{
		return false;
	}
	else
	{
		return ((emailAddress.value.indexOf("@") != -1) && (emailAddress.value.indexOf(".") != -1) && ValidateString(emailAddress));
	}
}

//--------------------------------------------------------------------------------------------------

function ValidateDate(dateCheck) 
{
	if (dateCheck==null)
	{
		return false;
	}
	else
	{
		// parse for month
	
	
	
		return ((emailAddress.value.indexOf("@") != -1) && (emailAddress.value.indexOf(".") != -1) && ValidateString(emailAddress));
	}
	
}

//--------------------------------------------------------------------------------------------------






function checkdate(objName) 
{
	var datefield = objName;
	if (chkdate(objName) == false) 
	{
		datefield.select();
		alert("That date is invalid. Please try again.");
		datefield.focus();
		return false;
	}
	else 
	{
		return true;
	}
}

function chkdate(objName) 
{
	var strDatestyle = "US"; //United States date style Month Day Year
	//var strDatestyle = "EU"; //European date style Day Month Year
	var runTime = new Date();
	var strCurrentYear = runTime.getYear();
	var strDate;
	var strDateArray;
	var strDay;
	var strMonth;
	var strYear;
	var intday;
	var intMonth;
	var intYear;
	var booFound = false;
	var datefield = objName;
	var strSeparatorArray = new Array("-"," ","/",".");
	var intElementNr;
	var err = 0;
	var strMonthArray = new Array(12);
	strMonthArray[0] = "Jan";
	strMonthArray[1] = "Feb";
	strMonthArray[2] = "Mar";
	strMonthArray[3] = "Apr";
	strMonthArray[4] = "May";
	strMonthArray[5] = "Jun";
	strMonthArray[6] = "Jul";
	strMonthArray[7] = "Aug";
	strMonthArray[8] = "Sep";
	strMonthArray[9] = "Oct";
	strMonthArray[10] = "Nov";
	strMonthArray[11] = "Dec";
	strDate = datefield.value;
	if (strDate.length < 1) 
	{
		return true;
	}
	for (intElementNr = 0; intElementNr < strSeparatorArray.length; intElementNr++) 
	{
		if (strDate.indexOf(strSeparatorArray[intElementNr]) != -1) 
		{
			strDateArray = strDate.split(strSeparatorArray[intElementNr]);
			if ((strDateArray.length < 2) || (strDateArray.length > 3)) 
			{
				err = 1;
				alert('X');
				return false;
			}
			else 
			{
				strDay = strDateArray[0];
				strMonth = strDateArray[1];
				if (strDateArray.length == 2) 
				strYear = strCurrentYear
				else
				strYear = strDateArray[2];
			}
		booFound = true;
		}
	}
	if (booFound == false) 
	{
		if (strDate.length>5) 
		{
			strDay = strDate.substr(0, 2);
			strMonth = strDate.substr(2, 2);
			strYear = strDate.substr(4);
		}
	}

	if (strYear == null) 
	{
	  return false;
	}

	if (strYear.length == 1) 
	{
		strYear = '0' + strYear
	}

	if (strYear.length == 2) 
	{
		strYear = '20' + strYear;
	}

	// US style
	if (strDatestyle == "US") 
	{
		strTemp = strDay;
		strDay = strMonth;
		strMonth = strTemp;
	}

	intday = parseInt(strDay, 10);
	if (isNaN(intday))
	{
		err = 2;
		return false;
	}

	intMonth = parseInt(strMonth, 10);
	if (isNaN(intMonth)) 
	{
		for (i = 0;i<12;i++) 
		{
			if (strMonth.toUpperCase() == strMonthArray[i].toUpperCase()) 
			{
				intMonth = i+1;
				strMonth = strMonthArray[i];
				i = 12;
			}
		}

		if (isNaN(intMonth))
		{
			err = 3;
			return false;
		}
	}

	intYear = parseInt(strYear, 10);
	if (isNaN(intYear))
	{
		err = 4;
		return false;
	}

	if (intMonth>12 || intMonth<1) 
	{
		err = 5;
		return false;
	}

	if ((intMonth == 1 || intMonth == 3 || intMonth == 5 || intMonth == 7 || intMonth == 8 || intMonth == 10 || intMonth == 12) && (intday > 31 || intday < 1)) 
	{
		err = 6;
		return false;
	}

	if ((intMonth == 4 || intMonth == 6 || intMonth == 9 || intMonth == 11) && (intday > 30 || intday < 1)) 
	{
		err = 7;
		return false;
	}

	if (intMonth == 2) 
	{
		if (intday < 1) 
		{
			err = 8;
			return false;
		}
		if (LeapYear(intYear) == true) 
		{
			if (intday > 29) 
			{
				err = 9;
				return false;
			}
		}
		else 
		{
			if (intday > 28)	
			{
				err = 10;
				return false;
			}
		}
	}

	if (strDatestyle == "US") 
	{
		datefield.value = strMonthArray[intMonth-1] + " " + intday+" " + strYear;
	}
	else 
	{
		datefield.value = intday + "/" + strMonthArray[intMonth-1] + "/" + strYear;
	}

	return true;
}

function LeapYear(intYear) {
if (intYear % 100 == 0) {
if (intYear % 400 == 0) { return true; }
}
else {
if ((intYear % 4) == 0) { return true; }
}
return false;
}

//-->