function saveItem(form,processPage)
{
	if(CheckAll(form)) 
	{
	    form.cmd.value="save";
		form.action=processPage;
		form.submit();
	}
	else
	{
		form.cmd.value="";
		form.action=processPage;
	}
}
function deleteItem(form,processPage,confirmMesg)
{
	if(confirm(confirmMesg))
	{
		with(form)
		{
			cmd.value="delete";
			action=processPage;
			submit();
		}
	}
}
function editItem(form,processPage)
{
	with(form)
	{
		cmd.value="edit";
		action=processPage;
		submit();
	}
}
function updateItem(form,processPage)
{
	with(form)
	{
		cmd.value="update";
		action=processPage;
		submit();
	}
}
function CheckCharLen(errortext,elem,lo,hi)
{
	var len = elem.value.length
	if(len > hi || len < lo || len == null || len == 0) {
		alert(errortext);
		elem.focus();
		elem.select();
		return false;
	}
	return true;
}
function CheckIfEmpty(errortext,elem)
{
	var len = elem.value.length
	if(len == 0 || len == null){
		alert(errortext);
		elem.focus();
		elem.select();
		return false;
	}
	return true;
}
function CheckPassword(errorText,pass1,pass2){
	if(pass1.value != pass2.value)
	{
		alert(errorText);
		return false;
	}
	return true;
}
function CheckNumVal(name,elem,lo,hi)
{
	var fltLo
	var lftHi
	fltLo = parseFloat(lo)
	fltHi = parseFloat(hi)
	if (elem.value > fltHi || elem.value < fltLo || !isNumber(elem.value))
	{
		if(lo > 0)
		{
			alert('The ' + name + ' field is required and must be less then ' + (hi+1));
		}
		else
		{
			alert('The ' + name + ' field must be less then ' + (hi+1));
		}
		return false;
	}
	return true;
}
function CheckNumLen(name,elem,lo,hi)
{
	var len = elem.value.length
	if(len > hi || len < lo || !isNumber(elem.value)) 
	{
		//alert('The ' + name + ' field must be ' + lo + ' to ' + hi + ' numbers in length.');
		if (lo > 0) 
		{
			alert('The ' + name + ' field is required and must be less then ' + hi + ' numbers.');
		}
		else
		{
			alert('The ' + name + ' field must be less then ' + hi + ' numbers.');
		}
		elem.focus();
		elem.select();
		return false;
	}
	return true;
}
function isNumber(inputVal)
{
	var inputStr
	var oneDecimal
	oneDecimal = false;
	inputStr = inputVal.toString();
	for (i = 0; i < inputStr.length; i++)
	{
		var oneChar = inputStr.charAt(i);
		if(i==0 && oneChar == "-")
		{
			continue;
		}
		if (oneChar == "." && !oneDecimal)
		{
			oneDecimal = true;
			continue;
		}
		if(oneChar < "0" || oneChar > "9")
		{
			return false;
		}
	}
	return true;
}
function isTime(strField,gField)
{
	// need to handle 12:00 PM,12:00:00 PM,1200 PM,120000 PM,13:00,13:00:00,
	var inputStr = gField.value;
	// get rid of any bogus characters.
	inputStr = inputStr.replace(/a+/g,'A');
	inputStr = inputStr.replace(/m+/g,'M');
	inputStr = inputStr.replace(/p+/g,'P');
	inputStr = inputStr.replace(/[^0-9,A,P,M,:]*/g,'');
	
	if (inputStr.search(/[0-9]{6}[P,A]M$/) == 0)//hhmmssDD
	{
		// Do nothing it is perfect
	}
	if(inputStr.search(/[0-9]{4}[P,A]M$/) == 0)//hhmmDD
	{
		inputStr = inputStr.substring(0,4) + '00' + inputStr.substring(4,6)
	}
	if(inputStr.search(/[0-9]{1,2}:[0-9]{1,2}[P,A]M$/) == 0)//hh:mmDD
	{
		if(inputStr.search(/[0-9]:[0-9]{1,2}[P,A]M$/) == 0)
			inputStr = '0' + inputStr;
		if(inputStr.search(/[0-9]{2}:[0-9][P,A]M$/) == 0)
			inputStr = inputStr.substring(0,3) + '0' + inputStr.substring(3,6);
		inputStr = inputStr.substring(0,5) + '00' + inputStr.substring(5,7);
		inputStr = inputStr.replace(/:+/g,'');
	}
	if(inputStr.search(/[0-9]{1,2}:[0-9]{1,2}:[0-9]{1,2}[P,A]M$/) == 0)//hh:mm:ssDD
	{
		if(inputStr.search(/[0-9]:[0-9]{1,2}:[0-9]{1,2}[P,A]M$/) == 0)
			inputStr = '0' + inputStr;
		if(inputStr.search(/[0-9]{2}:[0-9]:[0-9]{1,2}[P,A]M$/) == 0)
			inputStr = inputStr.substring(0,3) + '0' + inputStr.substring(3,inputStr.length);
		if(inputStr.search(/[0-9]{2}:[0-9]{2}:[0-9][P,A]M$/) == 0)
			inputStr = inputStr.substring(0,6) + '0' + inputStr.substring(6,9);
		inputStr = inputStr.replace(/:+/g,'');
	}
	if(inputStr.search(/[0-9]{6}$/) == 0)//hhmmss
	{
		if (parseInt(inputStr.substring(0,2)) > 11)
			if (parseInt(inputStr.substring(0,2)) > 22)
				inputStr = parseInt(inputStr.substring(0,2)) - 12 + inputStr.substring(2,6) + 'PM'
			else	
				if (parseInt(inputStr.substring(0,2)) == 12)
					inputStr = inputStr + 'PM';
				else
					inputStr = '0' + (parseInt(inputStr.substring(0,2)) - 12) + inputStr.substring(2,6) + 'PM';
		else
			inputStr = inputStr + 'AM';
	}
	if(inputStr.search(/[0-9]{4}$/) == 0)//hhmm
	{
		inputStr = inputStr + '00';
		if (parseInt(inputStr.substring(0,2)) > 11)
			if (parseInt(inputStr.substring(0,2)) > 22)
				inputStr = parseInt(inputStr.substring(0,2)) - 12 + inputStr.substring(2,6) + 'PM'
			else	
				if (parseInt(inputStr.substring(0,2)) == 12)
					inputStr = inputStr + 'PM';
				else
					inputStr = '0' + (parseInt(inputStr.substring(0,2)) - 12) + inputStr.substring(2,6) + 'PM';
		else
			inputStr = inputStr + 'AM';
	}
	if(inputStr.search(/[0-9]{1,2}:[0-9]{1,2}$/) == 0)//hh:mm
	{
		if (inputStr.search(/[0-9]:[0-9]{1,2}$/) == 0)
			inputStr = '0' + inputStr
		if(inputStr.search(/[0-9]{2}:[0-9]$/) == 0) 
			inputStr = inputStr.substring(0,3) + '0' + inputStr.substring(3,4);
		inputStr = inputStr.replace(/:+/g,'') + '00'
		if (parseInt(inputStr.substring(0,2)) > 11)
			if (parseInt(inputStr.substring(0,2)) > 22)
				inputStr = parseInt(inputStr.substring(0,2)) - 12 + inputStr.substring(2,6) + 'PM'
			else	
				if (parseInt(inputStr.substring(0,2)) == 12)
					inputStr = inputStr + 'PM';
				else
					inputStr = '0' + (parseInt(inputStr.substring(0,2)) - 12) + inputStr.substring(2,6) + 'PM';
		else
			inputStr = inputStr + 'AM';		
	}
	if(inputStr.search(/[0-9]{1,2}:[0-9]{1,2}:[0-9]{1,2}$/) == 0)//hh:mm:ss
	{
		if (inputStr.search(/[0-9]:[0-9]{1,2}:[0-9]{1,2}$/) == 0)
			inputStr = '0' + inputStr;
		if(inputStr.search(/[0-9]{2}:[0-9]:[0-9]{1,2}$/) == 0) 
			inputStr = inputStr.substring(0,3) + '0' + inputStr.substring(3,inputStr.length);
		if(inputStr.search(/[0-9]{2}:[0-9]{2}:[0-9]$/) == 0)
			inputStr = inputStr.substring(0,6) + '0' + inputStr.substring(6,7);
		inputStr = inputStr.replace(/:+/g,'');
		if (parseInt(inputStr.substring(0,2)) > 11)
			if (parseInt(inputStr.substring(0,2)) > 22)
				inputStr = parseInt(inputStr.substring(0,2)) - 12 + inputStr.substring(2,6) + 'PM'
			else
				if (parseInt(inputStr.substring(0,2)) == 12)
					inputStr = inputStr + 'PM';
				else
					inputStr = '0' + (parseInt(inputStr.substring(0,2)) - 12) + inputStr.substring(2,6) + 'PM';
		else
			inputStr = inputStr + 'AM';				
	}
	if(parseInt(inputStr.substring(0,2)) > 12)
	{
		inputStr = parseInt(inputStr.substring(0,2)) - 12 + inputStr.substring(2,inputStr.length)
	}
	if(inputStr.search(/[0-9]{6}[P,A]M/)==0)
	{
		inputStr = inputStr.substring(0,2) + ':' + inputStr.substring(2,4) + ':' + inputStr.substring(4,6) + ' ' + inputStr.substring(6,8)
		gField.value = inputStr;
	}
	else
	{ 
		alert(strField + ": has an invalid time format. Please use hh:mm:ss am/pm");
		gField.focus();
		gField.select();
		return false;
	}
	
	return true;
}
function isDate(strField,gField)
{
	var inputStr = gField.value;
	while(inputStr.indexOf("-") != -1)
	{
		inputStr = replaceString(inputStr,"-","/");
	}
	var delim1 = inputStr.indexOf("/");
	var delim2 = inputStr.lastIndexOf("/");
	if(delim1 != -1 && delim1 == delim2)
	{ // there is only one delimiter in the string
		alert(strField + ": has an invalid format. Please use mmddyyyy, mm/dd/yyyy, or mm-dd-yyyy.");
		gField.focus();
		gField.select();
		return false;
	}
	if (delim1 != -1)
	{
		// there are delimiters; extract component values
		var mm = parseInt(inputStr.substring(0,delim1),10);
		var dd = parseInt(inputStr.substring(delim1 + 1, delim2),10)
		var yyyy = parseInt(inputStr.substring(delim2 +1,inputStr.length),10)
	}
	else
	{
		// there are no delimiters; extract component values
		var mm = parseInt(inputStr.substring(0,2),10)
		var dd = parseInt(inputStr.substring(2,4),10)
		var yyyy = parseInt(inputStr.substring(4,inputStr.length),10)
	}
	if(isNaN(mm) || isNaN(dd) || isNaN(yyyy))
	{
		alert(strField + ": has an invalid format. Please use mmddyyyy, mm/dd/yyyy, or mm-dd-yyyy.");
		gField.focus();
		gField.select();
		return false;
	}
	if(mm<1 || mm > 12)
	{
		alert(strField + ": months must be entered between the range of 01 (January) and 12 (December).");
		gField.focus();
		gField.select();
		return false;
	}
	if (dd < 1 || dd > 31)
	{
		// date value is not 1 thru 31
		alert(strField + ": days must be entered between the range of 01 and a maximum of 31 (depending on the month and year.)");
		gField.focus();
		gField.select();
		return false;
	}
	// validate year
	if (yyyy <100)
	{
		if (yyyy >= 30)
		{
			yyyy += 1900;
		}
		else
		{
			yyyy += 2000;
		}
	}
	if (yyyy < 1930 || yyyy > 3000)
	{
		alert(strField + ": has an invalid format. Please use mmddyyyy, mm/dd/yyyy, or mm-dd-yyyy.");
		gField.focus();
		gField.select();
		return false;
	}
	if(!checkMonthLength(mm,dd))
	{
		gField.focus();
		gField.select();
		return false;
	}
	if (mm == 2)
	{
		if (!checkLeapMonth(mm,dd,yyyy))
		{
			gField.focus();
			gField.select();
			return false;
		}
	}
	gField.value = monthDayFormat(mm) + "/" + monthDayFormat(dd) + "/" + yyyy

	return true;
}
function monthDayFormat(strLine)
{
	strLine = "00" + strLine;
	return strLine.substring(strLine.length-2);
}
function checkMonthLength(mm,dd)
{
	var months = new Array("","January","February","March","April","May","June","July","August","September","October","November","December");
	if ((mm == 4 || mm == 6 || mm == 9 || mm == 11)  && dd > 30)
	{
		alert(months[mm] + " has only 30 days in.");
		return false;
	}
	else
	{
		if (dd > 31)
		{
			alert(months[mm] + " has only 31 days.");
			return false
		}
	}
	return true;
}
function checkLeapMonth(mm,dd,yyyy)
{
	if(yyyy % 4 > 0 && dd > 28)
	{
		alert("February of " + yyyy + " has only 28 days.");
		return false;
	}
	else
	{
		if (dd > 29) 
		{
			alert("February of " + yyyy + " has only 29 days.");
			return false;
		}
	}
	return true;
}

