
function StripNum(formField)
{
	var numberString = "-.0123456789", TempChar, RetVal = "";

	formField.value = "" + formField.value //force to string

	if (formField.value.length == 0) 
		return ("");

	for (Count=0; Count < formField.value.length; Count++)
	{
		TempChar = formField.value.substring (Count, Count+1);
		if (numberString.indexOf (TempChar, 0)==-1) {
			RetVal = "";
			break;
		}
		else {
			RetVal = RetVal + TempChar;
		}
	}
   return (RetVal);
}

function justDigits(formField,fieldLabel)
{
	var numberString ="1234567890", result = true;
	if(unescape(formField) != "undefined")
	for (Count=0; Count < formField.value.length; Count++)
	{
		TempChar = formField.value.substring (Count, Count+1);
		if (numberString.indexOf (TempChar, 0)==-1)  
		{
			alert('The "' + fieldLabel +'" field may only contain numeric characters ("0" through "9").');
			formField.focus();
			result = false;
			break;
		}
	}
	if(unescape(formField) != "undefined")
	if (formField.value == ""){
			alert('The "' + fieldLabel +'" field must have a value.');
			result = false;
	}
	return result;
}

function validListBox(formField,fieldLabel)
{
	var result = true;
	
	if (formField.value == "")
	{
		alert('Please make a selection for the "' + fieldLabel +'" field.');
		formField.focus();
		result = false;
	}
	return result;
}

function validRequired(formField,fieldLabel)
{
	var result = true;
	if(unescape(formField) != "undefined"){
		if (formField.value == "")
		{
			alert('Please enter a value for the "' + fieldLabel +'" field.');
			formField.focus();
			result = false;
		}
	}
	return result;
}

function validDate(formField, fieldLabel, required)
{
	var result = true;

	if (required && !validRequired(formField,fieldLabel))
		return false;

	if (!required && formField.value == "")
		return true;

 	if (result)
 	{

		var elems = formField.value.split("/");
     
		result = (elems.length == 3);
     
		if (result)
		{
			var month = parseInt(elems[0],10);
			var day = parseInt(elems[1],10);
			var year = parseInt(elems[2],10);

			if (isNaN(day)) result = false;
			if (isNaN(month)) result = false;
			if (isNaN(year)) result = false;

			if ((month<1)||(month>12)) result = false;
			if ((day<1)||(day>32)) result = false;

			if (year<0) result = false;
			if ((year>99) && (year<1900)) result = false;
			if (year>2100) result = false;

			if (year > 50) year = year + 1900;
			if (year <= 50) year = year + 2000;

			if ( ((month==4)||(month==6)||(month==9)||(month==11)) && (day>30) ) result = false;

			if (month==2)
			{
				var lastDay = 28;

				if (year % 100 == 0) {
					if ((year % 400) == 0) {lastDay = 29;}
				}
				else {
					if ((year % 4) == 0) {lastDay = 29;} 
				}
				
				if (day>lastDay) result = false;

			}
		}
   }
     
	if (!result)
	{
		alert('Please enter a date in the format MM/DD/YYYY for the "' + fieldLabel + '" field.');
		formField.focus();
	}

	return result;
}

function validText(formField,fieldLabel,required,maxlength)
{
	var result = true;
	
	if (required && !validRequired(formField,fieldLabel))
		result = false;
	if(unescape(formField) != "undefined")
	if (result && formField.value.length > maxlength && maxlength > 0)
	{
		alert('Please enter at most ' + maxlength + ' characters for the "' + fieldLabel + '" field.');
		formField.focus();
		result = false;
	}
   
  return result;

}

function validFloat(formField,fieldLabel,required,maxlength)
{
	var result = true, TempString = "";


	if (required && !validRequired(formField,fieldLabel))
		return false;

	if (!required && formField.value == "")
		return true;

	TempString = parseFloat(StripNum(formField));

	if ( isNaN(TempString) )
	{
		alert('Please enter a valid value for the "' + fieldLabel + '" field.');
		formField.focus();
		result = false;
	}

	if (result && required && !validRequired(formField,fieldLabel))
		result = false;

	if (result && formField.value.length > maxlength && maxlength > 0)
	{
		alert('Please enter at most ' + maxlength + ' characters for the "' + fieldLabel + '" field.');
		formField.focus();
		result = false;
	}
   
  return result;

}

function validSSN(formField,fieldLabel,required)
{
	var result = true;
	var matchArr = formField.value.match(/^(\d{3})-?\d{2}-?\d{4}$/);
	var numDashes = formField.value.split('-').length - 1;

	if (required && !validRequired(formField,fieldLabel))
		return false;
		
	if (matchArr == null || numDashes == 1) {
		alert('Please use the format XXX-XX-XXXX for the "' + fieldLabel + '" field.');
		result = false;
	}
	else {
		if (parseInt(matchArr[1],10)==0) {
			alert('The "' + fieldLabel + '" field cannot start with 000.');
		result = false;
		}
   }

  return result;
}

