function trim(fld)   
	{ 
	
	// This function trims off leading and trailing spaces from strings
	  
	var str = fld.value     
	while (str.substr(0,1) == " " || str.substr(str.length - 1) == " ")       
		{       
		if (str.substr(0,1) == " ")         
			{         
			str = str.substr(1)         
			}       
		else         
			{         
			str = str.substr(0, str.length - 1)         
			}
		}
		fld.value = str
	}
	
function ucit(fld)
	{
	
	// This function changes letter characters to uppercase.
	
	fld.value = fld.value.toUpperCase();
	}
	
function round(me)
{
  var xyz = me.value;
  if (xyz < .10)
  {
  var dollarVal = myRound(xyz,2);
  }
  else
  {
  var dollarVal = dollarValue(xyz);
  }
  me.value = "" + dollarVal;
}
function dollarValue(n)
{
  var Bstr = "";
  var b = n * 100;
  var c = Math.round(b);
  var Astr = c.toString();
  var Alength = Astr.length;
  if (Alength <= 2) Bstr = Bstr + ".";
  var dot = Alength - 3;
  var counter = 0;
    while (counter < Alength )
    {
      Bstr = Bstr + Astr.charAt(counter);
      if (counter == dot) Bstr = Bstr + ".";
      counter = counter + 1;
    }
  var d = Bstr;
  return d;
}
function myRound(val, prec)
  {
  // rounds val to specified precision (prec)
  val = val * Math.pow(10,prec);
  val = Math.round(val);
  val = val / Math.pow(10,prec);
  return val;
  }
  
/* ************************************************  validate month ***** */
function isValidmonth(dateStr5) {
// Checks for the following valid date formats:
//   days     
 datework5 = dateStr5.value
 var datePat = /^(\d{1,2})$/; // mm
 var matchArray = dateStr5.match(datePat); // is the format ok?
 if (matchArray == null) {
 alert(dateStr5 + "  Date is not in a valid format.")
 return false;
 }
 month5 = matchArray[1]; // parse date into variables
 //day = matchArray[2];
 //year = matchArray[3];
 if (month5 < 1 || month5 > 12) { // check month range
 alert("Month must be between 01 and 12.");
 return false;
 }
 dateStr5.value = datework5;
 return true;
 }
function checkmonth(meform,me) {
	if (me.value == null || me.value.length == 0) {
	return;
	}
 	if (isValidmonth(me.value)) /* validate month*/
 	{ // Validates month                   
 	}                                           
 	else
 	{
 	setTimeout("document." + meform.name + "." + me.name + ".focus()",25);
	setTimeout("document." + meform.name + "." + me.name + ".select()",25);
    return false; // otherwise exits
 	}
}  
/* ***************** end validate month ******************* */


//checking for required fields where input is blank
function required_fld(meform,me)
{
	if (me.value.length < 1)  //blank or null
	{
		alert(me.name + " - " + "This is a required field.");
		setTimeout("document." + meform.name + "." + me.name + ".focus()",25);
		setTimeout("document." + meform.name + "." + me.name + ".select()",25);
		return false;
	}
	return true;
}


/* ************************************************  validate date ***** */
//remove zero prefix
function filterNum(filStr) {
re = /^\0|0/g;
return filStr.replace(re, "");
}
// Checks for the following valid date formats:
//   mm/dd/yyyy   mm-dd-yyyy
function isValidDate(dateStr) {
 datework = dateStr.value;
 var datePat = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{4})$/; // requires 4 digit year
 var matchArray = dateStr.match(datePat); // is the format ok?
 if (matchArray == null) {
 alert(dateStr + "  Date is not in a valid format.")
 return false;
 }
 month = matchArray[1]; // parse date into variables
 day = matchArray[3];
 year = matchArray[4];
 if (month < 1 || month > 12) { // check month range
 alert("Month must be between 01 and 12.");
 return false;
 }
 if (day < 1 || day > 31) {
 alert("Day must be between 01 and 31.");
 return false;
 }
 if ((month==4 || month==6 || month==9 || month==11) && day==31) {
 alert("Month "+month+" doesn't have 31 days!")
 return false;
 }
 if (month == 2) { // check for february 29th
 var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
 	if (day>29 || (day==29 && !isleap)) {
 alert("February " + year + " doesn't have " + day + " days!");
 return false;
  	}
 }
 dateStr.value = datework;
 return true;
 }
function checkdate(meform,me) {
	if (me.value == null || me.value.length == 0) {
	return;
	}
 	if (isValidDate(me.value)) /* validate date*/
 	{ // Validates month
		if (month < 10) {
    	month = filterNum(month);
    	month = (0 + month);
    	} 
    	if (day < 10) {
    	day = filterNum(day);
    	day = (0 + day);
    	}         
 	}                                           
 	else
 	{
 	setTimeout("document." + meform.name + "." + me.name + ".focus()",25);
	setTimeout("document." + meform.name + "." + me.name + ".select()",25);
    return false; // otherwise exits
 	}
} 
/* ******************************** end validate date ************** */

/* *** Validate amount fields for whole dollar *** */
//Testing for numerics in the input field
function Validateamount(meform,me)  //commented out parseInt
{	
	/*
    var result = parseInt(me.value,10);
    if (!(result >= 0))
    {
		me.value = "";
		alert("This is not a valid number!");
		//event.srcElement.focus();
		setTimeout("document." + meform.name + "." + me.name + ".focus()",25);
		setTimeout("document." + meform.name + "." + me.name + ".select()",25);
        return false;
    }
	*/
	var inputStr = "" + me.value; // Make sure inputStr is numeric
		for (var i = 0; i < inputStr.length; i++) {
			var oneChar = inputStr.substring(i, i + 1)
			if (oneChar < "0" || oneChar > "9") {
				//me.value = "";
				if (oneChar != ".") {
				alert("This is not a valid number!!");
				setTimeout("document." + meform.name + "." + me.name + ".focus()",25);
				setTimeout("document." + meform.name + "." + me.name + ".select()",25);
			  	return false;
				}
				
			}
		}
    return true;
}

function checknan(meform,me)  //check for Not A Number (N.aN)
{	
	var inputStr = "" + me.value;
	if (isNaN(inputStr))
	{
		alert("This is not a valid number or Not A Number!!");
		setTimeout("document." + meform.name + "." + me.name + ".focus()",25);
		setTimeout("document." + meform.name + "." + me.name + ".select()",25);
		return false;
	}
}

/* *** Validate SSN numbers *** */
//Testing for numerics in the entire length of the input field - Taxpayer SSN Required field
function Validatenumber(meform,me,len)
{	
    if(me.value.length < len)
    {
		//me.value = "";
		alert("The field must contain " + len + " numbers!");
		//event.srcElement.focus();
		setTimeout("document." + meform.name + "." + me.name + ".focus()",25);
		setTimeout("document." + meform.name + "." + me.name + ".select()",25);
		return false;
	}
    var result = parseInt(me.value,10);
    if (!(result >= 0))
    {
		me.value = "";
		alert("This is not a valid number!");
		//event.srcElement.focus();
		setTimeout("document." + meform.name + "." + me.name + ".focus()",25);
		setTimeout("document." + meform.name + "." + me.name + ".select()",25);
        return false;
    }
	
	var inputStr = "" + me.value; // Make sure inputStr is numeric
		for (var i = 0; i < inputStr.length; i++) {
			var oneChar = inputStr.substring(i, i + 1)
			if (oneChar < "0" || oneChar > "9") {
				me.value = "";
				alert("This is not a valid number!!");
				setTimeout("document." + meform.name + "." + me.name + ".focus()",25);
				setTimeout("document." + meform.name + "." + me.name + ".select()",25);
			  return false;
			}
		}
    return true;
}
//Testing for numerics in the entire length of the input field - Spouse SSN optional field
function Validatenumber2(meform,me,len)
{	
if(me.value.length > 0) //if field is not blank - edit
{
	/* commented out
    if(me.value.length < len)
    {
		//me.value = "";
		me.value = 0;
		alert("The field must contain " + len + " numbers!");
		//event.srcElement.focus();
		setTimeout("document." + meform.name + "." + me.name + ".focus()",25);
		setTimeout("document." + meform.name + "." + me.name + ".select()",25);
		return false;
	}
    var result = parseInt(me.value,10);
    if (!(result >= 0))
    {
		//me.value = "";
		me.value = 0;
		alert("This is not a valid number!");
		//event.srcElement.focus();
		setTimeout("document." + meform.name + "." + me.name + ".focus()",25);
		setTimeout("document." + meform.name + "." + me.name + ".select()",25);
        return false;
    }
	*/
	var inputStr = "" + me.value; // Make sure inputStr is numeric
		for (var i = 0; i < inputStr.length; i++) {
			var oneChar = inputStr.substring(i, i + 1)
			if (oneChar < "0" || oneChar > "9") {
				//me.value = "";
				alert("This is not a valid number!");
				setTimeout("document." + meform.name + "." + me.name + ".focus()",25);
				setTimeout("document." + meform.name + "." + me.name + ".select()",25);
			  return false;
			}
		}
}
    return true;
}

function Validatelength(meform,me,len)
{	
    if(me.value.length < len)
    {
		//me.value = "";
		alert("The field must contain " + len + " characters/numbers!");
		//event.srcElement.focus();
		setTimeout("document." + meform.name + "." + me.name + ".focus()",25);
		setTimeout("document." + meform.name + "." + me.name + ".select()",25);
		return false;
	}
}

//auto tab routine
var isNN = (navigator.appName.indexOf("Netscape")!=-1);
function autoTab(input,len, e) {
	var keyCode = (isNN) ? e.which : e.keyCode; 
	var filter = (isNN) ? [0,8,9] : [0,8,9,16,17,18,37,38,39,40,46];
	if(input.value.length >= len && !containsElement(filter,keyCode)) {
	input.value = input.value.slice(0, len);
	input.form[(getIndex(input)+1) % input.form.length].focus();
	}
	function containsElement(arr, ele) {
	var found = false, index = 0;
	while(!found && index < arr.length)
	if(arr[index] == ele)
	found = true;
	else
	index++;
	return found;
	}
	function getIndex(input) {
	var index = -1, i = 0, found = false;
	while (i < input.form.length && index == -1)
	if (input.form[i] == input)index = i;
	else i++;
	return index;
	}
return true; 
}

