// Formatting Functions

function formatDollar(ctlName) {
    var s = ctlName.value;
    s = trimAll(s);
    if (!isNaN(parseFloat(s)) && s.charAt(0) != '$') {
    s = "$" + s;
    ctlName.value = s;
    }
}

function formatFloat(fNum) {
    var whole, part;
    var absFNum = Math.abs(fNum);
    whole = "" + Math.round(absFNum * 100);
    part = whole.substr(whole.length - 2,2);
    whole = whole.substr(0,whole.length - 2);
    var prefix = (fNum < 0) ? "-" : "";
    if (part != "00" && part != "0") {
        part = "." + part;
    } else {
        part = "";
    }
    if (fNum > -1 && fNum < 1) {
    return prefix + "0" + whole + part;
    } else {
    return prefix + whole + part;
    }
}

function formatPercent(ctlName) {
    var s = ctlName.value;
    s = trimAll(s);
    if (!isNaN(parseFloat(s)) && s.charAt(s.length - 1) != '%') {
        s += "%";
    ctlName.value = s;
    }
}

function formatSSN(ctlName) {
    var s = ctlName.value;
    s = trimAll(s);
    if (s.length == 9 && s.indexOf("-") == -1) {
      s = s.substr(0,3) + '-' + s.substr(3,2) + '-' + s.substr(5,4);
    }
    ctlName.value = s;
}

function formatPhone(ctlName) {
    var s = ctlName.value;
    s = trimAll(s);
    if (s.length == 10 && s.indexOf("-") == -1) {
      s = s.substr(0,3) + '-' + s.substr(3,3) + '-' + s.substr(6,4);
    }
    ctlName.value = s;
}

function formatDate(ctlName) {
    var s = ctlName.value;
    s = trimAll(s);
    if (s.length == 8 && s.indexOf("/") == -1) {
      s = s.substr(0,2) + '/' + s.substr(2,2) + '/' + s.substr(4,4);
    }
    ctlName.value = s;
}

function formatZipCode(ctlName) {
    var s = ctlName.value;
    s = trimAll(s);
    if (s.length == 9 && s.indexOf("-") == -1) {
      s = s.substr(0,5) + '-' + s.substr(5,4);
    }
    ctlName.value = s;
}

function CNmsg() {
	if (strCN.length == 0){
		alert("Valid US zip codes are 5 digits.  Valid Canadian zip codes are in the format ANANAN, where A is Alphanumeric and N is Numeric");
		strCN = "done";
		}
}
function trimAll(s) {
    return (this.trimLeft(this.trimRight(s)));
}

function trimLeft(s) {
    while ((s.length > 0) && (s.charAt(0) == ' ')) {
        s = s.substr(1, s.length - 1);
    }
    return s;
}

function trimRight(s) {
    while ((s.length > 0) && (s.charAt(s.length - 1) == ' ')) {
        s = s.substr(0, s.length - 1);
    }
    return s;
}

// Validation Functions

function checkemail(entered){
	with (entered)
	{
		apos = value.indexOf("@"); 
		dotpos = value.lastIndexOf(".");
		lastpos = value.length-1;

		if (apos<1 || dotpos-apos<2 || lastpos-dotpos>3 || lastpos-dotpos<2) 
		{
			entered.focus();
			alert("Please check email address for errors."); 
			return (false);
		}
		else
		{
			return true;
		}
	}
} 


function checkvalidvalue(entered, min, max, alertbox, datatype){
	with (entered){
		checkvalue=parseFloat(value);
		
		if (datatype){
			smalldatatype=datatype.toLowerCase();
			if (smalldatatype.charAt(0)=="i") {
				checkvalue=parseInt(value)
			};
		}
		if ((parseFloat(min)==min && checkvalue<min) || (parseFloat(max)==max && checkvalue>max) || value!=checkvalue){
			if (alertbox!="") {alert(alertbox);
			} 
		return false;
		}
		else {
			return true;
		}
	}
} 

function checkvalidlength(entered, min, max, alertbox, datatype){
	with (entered){
		checkvalue=parseFloat(value);
		
		if (datatype){
			smalldatatype=datatype.toLowerCase();
				if (smalldatatype.charAt(0)=="i") {
					checkvalue=parseInt(value); 
						if (value.indexOf(".")!=-1) {
						checkvalue=checkvalue+1
						}
				};
		}
		if ((parseFloat(min)==min && value.length<min) || (parseFloat(max)==max && value.length>max) || value!=checkvalue){
			if (alertbox!="") {
				alert(alertbox);
			} 
			return false;
		}
		else {
		return true;
		}
	}
} 


function checkrequired(entered, alertbox){
	with (entered){
		if (value==null || value==""){
			if (alertbox!="") {
				alert(alertbox);
			} return false;
		}
		else {
		return true;
		}
	}
} 

// isPro (STRING s)
// 
// Returns true if all characters in string s are numbers, 7 or 9 digits in length.
//
// Accepts non-signed integers only. Does not accept floating 
// point, exponential notation, etc.
//
//
// EXAMPLE FUNCTION CALL:     RESULT:
// isInteger ("5555555")      true 
// isInteger ("-5555555")     false
// isInteger ("")      		  false


// Check browser version
var isNav4 = false, isNav5 = false, isIE4 = false
var strSeperator = "/"; 
// If you are using any Java validation on the back side you will want to use the / because 
// Java date validations do not recognize the dash as a valid date separator.

var vDateType = 3; // Global value for type of date format
//                1 = mm/dd/yyyy
//                2 = yyyy/dd/mm  (Unable to do date check at this time)
//                3 = dd/mm/yyyy

var vYearType = 4; //Set to 2 or 4 for number of digits in the year for Netscape
var vYearLength = 2; // Set to 4 if you want to force the user to enter 4 digits for the year before validating.

var err = 0; // Set the error code to a default of zero


if(navigator.appName == "Netscape") 
{
   if (navigator.appVersion < "5")  
   {
      isNav4 = true;
      isNav5 = false;
	}
   else
   if (navigator.appVersion > "4") 
   {
      isNav4 = false;
      isNav5 = true;
	}
}
else  
{
   isIE4 = true;
}


function DateFormat(vDateName, vDateValue, e, dateCheck, dateType)  {

vDateType = dateType;
mDateValue = vDateValue;

        
// vDateName = object name
// vDateValue = value in the field being checked
// e = event
// dateCheck 
//       True  = Verify that the vDateValue is a valid date
//       False = Format values being entered into vDateValue only
// vDateType
//       1 = mm/dd/yyyy
//       2 = yyyy/mm/dd
//       3 = dd/mm/yyyy

   
   //Enter a tilde sign for the first number and you can check the variable information.
   if (vDateValue == "~")
   {
      alert("AppVersion = "+navigator.appVersion+" \nNav. 4 Version = "+isNav4+" \nNav. 5 Version = "+isNav5+" \nIE Version = "+isIE4+" \nYear Type = "+vYearType+" \nDate Type = "+vDateType+" \nSeparator = "+strSeperator);
      vDateName.value = "";
      vDateName.focus();
      return true;
   }
      
   var whichCode = (window.Event) ? e.which : e.keyCode;
   //if e == "blur" then set whichCode to valid code since blur event is valid
   //but does not have a code
   //***DCE 8/12/2008***
   if (e.type == "blur") {
        whichCode = "47";
   }
 
   // Check to see if a seperator is already present.
   // bypass the date if a seperator is present and the length greater than 8
   if (vDateValue.length > 8 && isNav4)
   {
      if ((vDateValue.indexOf("-") >= 1) || (vDateValue.indexOf("/") >= 1))
         return true;
   }
   
   //Eliminate all the ASCII codes that are not valid
   var alphaCheck = " abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ/-";
   if (alphaCheck.indexOf(vDateValue) >= 1)  
   {
      if (isNav4)
      {
         vDateName.value = "";
         vDateName.focus();
         vDateName.select();
         return false;
      }
      else
      {
         vDateName.value = vDateName.value.substr(0, (vDateValue.length-1));
         return false;
      } 
   }
   if (whichCode == 8) //Ignore the Netscape value for backspace. IE has no value
      return false;
   else 
   {
      //Create numeric string values for 0123456789/
      //The codes provided include both keyboard and keypad values
      
      var strCheck = '47,48,49,50,51,52,53,54,55,56,57,58,59,95,96,97,98,99,100,101,102,103,104,105';
      if (strCheck.indexOf(whichCode) != -1)  
      {
         if (isNav4)  
         {
            if (((vDateValue.length < 6 && dateCheck) || (vDateValue.length == 7 && dateCheck)) && (vDateValue.length >=1))
            {
               alert("Invalid Date\nPlease Re-Enter");
               vDateName.value = "";
               vDateName.focus();
               vDateName.select();
               return false;
            }
            if (vDateValue.length == 6 && dateCheck)  
            {
               var mDay = vDateName.value.substr(2,2);
               var mMonth = vDateName.value.substr(0,2);
               var mYear = vDateName.value.substr(4,4)
               
               //Turn a two digit year into a 4 digit year
               if (mYear.length == 2 && vYearType == 4) 
               {
                  var mToday = new Date();
                  
                  //If the year is greater than 30 years from now use 19, otherwise use 20
                  var checkYear = mToday.getFullYear() + 30; 
                  var mCheckYear = '20' + mYear;
                  if (mCheckYear >= checkYear)
                     mYear = '19' + mYear;
                  else
                     mYear = '20' + mYear;
               }
               var vDateValueCheck = mMonth+strSeperator+mDay+strSeperator+mYear;
               
               if (!dateValid(vDateValueCheck))  
               {
                  alert("Invalid Date\nPlease Re-Enter");
                  vDateName.value = "";
                  vDateName.focus();
                  vDateName.select();
                  return false;
		         }
               vDateName.value = vDateValueCheck;
               return true;
            
            }
            else
            {
               // Reformat the date for validation and set date type to a 1
               
               
               if (vDateValue.length >= 8  && dateCheck)  
               {
                  if (vDateType == 1) // mmddyyyy
                  {
                     var mDay = vDateName.value.substr(2,2);
                     var mMonth = vDateName.value.substr(0,2);
                     var mYear = vDateName.value.substr(4,4)
                     vDateName.value = mMonth+strSeperator+mDay+strSeperator+mYear;
                  }
                  if (vDateType == 2) // yyyymmdd
                  {
                     var mYear = vDateName.value.substr(0,4)
                     var mMonth = vDateName.value.substr(4,2);
                     var mDay = vDateName.value.substr(6,2);
                     vDateName.value = mYear+strSeperator+mMonth+strSeperator+mDay;
                  }
                  if (vDateType == 3) // ddmmyyyy
                  {
                     var mMonth = vDateName.value.substr(2,2);
                     var mDay = vDateName.value.substr(0,2);
                     var mYear = vDateName.value.substr(4,4)
                     vDateName.value = mDay+strSeperator+mMonth+strSeperator+mYear;
                  }
                  
                  //Create a temporary variable for storing the DateType and change
                  //the DateType to a 1 for validation.
                  
                  var vDateTypeTemp = vDateType;
                  vDateType = 1;
                  var vDateValueCheck = mMonth+strSeperator+mDay+strSeperator+mYear;
                  
                  if (!dateValid(vDateValueCheck))  
                  {
                     alert("Invalid Date\nPlease Re-Enter");
                     vDateType = vDateTypeTemp;
                     vDateName.value = "";
                     vDateName.focus();
                     vDateName.select();
                     return false;
		            }
                     vDateType = vDateTypeTemp;
                     return true;
	            }
               else
               {
                  if (((vDateValue.length < 8 && dateCheck) || (vDateValue.length == 9 && dateCheck)) && (vDateValue.length >=1))
                  {
                     alert("Invalid Date\nPlease Re-Enter");
                     vDateName.value = "";
                     vDateName.focus();
                     vDateName.select();
                     return false;
                  }
               }
            }
         }
         else  
         {
         // Non isNav Check
            if (((vDateValue.length < 8 && dateCheck) || (vDateValue.length == 9 && dateCheck)) && (vDateValue.length >=1))
            {
               alert("Invalid Date\nPlease Re-Enter");
               vDateName.value = "";
               vDateName.focus();
               return true;
            }
            
            // Reformat date to format that can be validated. mm/dd/yyyy
            
            
            if (vDateValue.length >= 8 && dateCheck)  
            {
            
               // Additional date formats can be entered here and parsed out to
               // a valid date format that the validation routine will recognize.
               
               if (vDateType == 1) // mm/dd/yyyy
               {
                  var mMonth = vDateName.value.substr(0,2);
                  var mDay = vDateName.value.substr(3,2);
                  var mYear = vDateName.value.substr(6,4)
               }
               if (vDateType == 2) // yyyy/mm/dd
               {
                  var mYear = vDateName.value.substr(0,4)
                  var mMonth = vDateName.value.substr(5,2);
                  var mDay = vDateName.value.substr(8,2);
               }
               if (vDateType == 3) // dd/mm/yyyy
               {
                  var mDay = vDateName.value.substr(0,2);
                  var mMonth = vDateName.value.substr(3,2);
                  var mYear = vDateName.value.substr(6,4)
               }
               if (vYearLength == 4)
               {
                  if (mYear.length < 4)
                  {
                     alert("Invalid Date\nPlease Re-Enter");
                     vDateName.value = "";
                     vDateName.focus();
                     return true;
                  }
               }
               
               // Create temp. variable for storing the current vDateType
               var vDateTypeTemp = vDateType;
               
               // Change vDateType to a 1 for standard date format for validation
               // Type will be changed back when validation is completed.
               vDateType = 1;
               
               // Store reformatted date to new variable for validation.
               var vDateValueCheck = mMonth+strSeperator+mDay+strSeperator+mYear;
               
               if (mYear.length == 2 && vYearType == 4 && dateCheck)  
               {
                  
                  //Turn a two digit year into a 4 digit year
                  var mToday = new Date();
                  
                  //If the year is greater than 30 years from now use 19, otherwise use 20
                  var checkYear = mToday.getFullYear() + 30; 
                  var mCheckYear = '20' + mYear;
                  if (mCheckYear >= checkYear)
                     mYear = '19' + mYear;
                  else
                     mYear = '20' + mYear;
                  vDateValueCheck = mMonth+strSeperator+mDay+strSeperator+mYear;
                  
                  // Store the new value back to the field.  This function will
                  // not work with date type of 2 since the year is entered first.
                  
                  if (vDateTypeTemp == 1) // mm/dd/yyyy
                     vDateName.value = mMonth+strSeperator+mDay+strSeperator+mYear;
                  if (vDateTypeTemp == 3) // dd/mm/yyyy
                     vDateName.value = mDay+strSeperator+mMonth+strSeperator+mYear;

               } 
               
               
               if (!dateValid(vDateValueCheck))  
               {
                  alert("Invalid Date\nPlease Re-Enter");
                  vDateType = vDateTypeTemp;
                  vDateName.value = "";
                  vDateName.focus();
                  return true;
		         }
               vDateType = vDateTypeTemp;
               return true;
            
            }
            else
            {
               
               if (vDateType == 1)
               {
                  if (vDateValue.length == 2)  
                  {
                     vDateName.value = vDateValue+strSeperator;
                  }
                  if (vDateValue.length == 5)  
                  {
                     vDateName.value = vDateValue+strSeperator;
                  }
               }
               if (vDateType == 2)
               {
                  if (vDateValue.length == 4)  
                  {
                     vDateName.value = vDateValue+strSeperator;
                  }
                  if (vDateValue.length == 7)  
                  {
                     vDateName.value = vDateValue+strSeperator;
                  }
               } 
               if (vDateType == 3)
               {
                  if (vDateValue.length == 2)  
                  {
                     vDateName.value = vDateValue+strSeperator;
                  }
                  if (vDateValue.length == 5)  
                  {
                     vDateName.value = vDateValue+strSeperator;
                  }
               }
               return true;
            }
         }
         if (vDateValue.length == 10   && dateCheck)  
         {
            if (!dateValid(vDateName))  
            {
// Un-comment the next line of code for debugging the dateValid() function error messages
//               alert(err);  
               alert("Invalid Date\nPlease Re-Enter");
               vDateName.focus();
               vDateName.select();
	         }
         }
         return false;
      }
      else  
      {
         // If the value is not in the string return the string minus the last
         // key entered.
         if (isNav4)
         {
            vDateName.value = "";
            vDateName.focus();
            vDateName.select();
            return false;
         }
         else
         {
            vDateName.value = vDateName.value.substr(0, (vDateValue.length-1));
            return false;
         }
		}
	}
}


   function dateValid(objName) {
      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;
      strDate = objName;
      
      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 != 3) 
            {
               err = 1;
               return false;
            }
            else 
            {
               strDay = strDateArray[0];
               strMonth = strDateArray[1];
               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);
         }
      }
      //Adjustment for short years entered
      if (strYear.length == 2) {
         strYear = '20' + strYear;
      }
      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;
            }
         }
      }
         return true;
      }

   function LeapYear(intYear) {
      if (intYear % 100 == 0) {
         if (intYear % 400 == 0) { return true; }
      }
      else {
         if ((intYear % 4) == 0) { return true; }
      }
         return false;
      }
//  End -->

//check to see that a whole number was entered
function isWholeNum(Num)
{
	if (parseInt(Num) != Num) {
		return(false);
		}
	return (true);
}
//check to see that a whole number was entered
function isDollarAmount(Num)
{
	if (parseFloat(Num) != Num) {
		return(false);
		}
	return (true);
}
function isPro (s)

{ 
    // Search through string's characters one by one
    // until we find a non-numeric character.
    // When we do, return false; if we don't, return true.
	if (s.value.length > 0) {
	if (s.value.length == 7 || s.value.length == 9)
	{
    	for (var i = 0; i < s.value.length; i++)
    		{   
        	// Check that current character is number.
        	var c = s.value.charAt(i);
        	if (isNaN(c)) 
				{
				s.focus();			
				alert("Pro numbers must contain only digits.");
				return false;
				}			
			}
		return true;
	}    		
	else
	{
		s.focus();			
		alert("Pro numbers must be 7 or 9 digits in length.");
		return false;
	}
    	// All characters are numbers, 7 or 9 digits in length.
    	//return true;
	} return true;
}

//check for 5 digit zip code
function isZip5 (s)

{ 
    // Search through string's characters one by one
    // until we find a non-numeric character.
    // When we do, return false; if we don't, return true.
	if (s.value.length > 0) {
	if (s.value.length == 5)
	{
    	for (var i = 0; i < s.value.length; i++)
    		{   
        	// Check that current character is number.
        	var c = s.value.charAt(i);
        	if (isNaN(c)) 
				{
				s.focus();			
				alert("Zip codes must contain only digits.");
				return false;
				}			
			}
		return true;
	}    		
	else
	{
		s.focus();			
		alert("Please enter a 5 digit zip code.");
		return false;
	}
    	// All characters are numbers, 5 digits in length.
    	//return true;
	} return true;
}

//check for 5 digit US zip code or ANA NAN or ANANAN CN zip code
function isZipValid (s, allow3DigitCN)
{ 
	if (allow3DigitCN == null) {
		allow3DigitCN = false;
	}
	
    // Search through string's characters one by one
    // until we find a non-numeric character in a numeric position.
    // When we do, return false; if we don't, return true.
	var zipMsg = "Valid US zip codes are 5 digits long.  Valid Canadian zip codes are in the format ANANAN or ANA NAN(where A is Alphanumeric, N is Numeric).";
	
	if (s.value.length != 5 && s.value.length != 6 && s.value.length != 7) {		
		if (allow3DigitCN && s.value.length != 3 || !allow3DigitCN) {
			s.focus();			
			alert(zipMsg);
			return false;
		}
	}


	if (s.value.length == 5)
	{
   		for (var i = 0; i < s.value.length; i++)
  		{   
        	// Check that current character is number.
        	var c = s.value.charAt(i);
       		if (isNaN(c)) 
			{
				s.focus();			
				alert(zipMsg);
				return false;
			}			
		}
	}    		
	if (s.value.length == 6 || s.value.length == 3){
		for (var i = 0; i < s.value.length; i++)
		{   
			// Check that current character is number.
			var c = s.value.charAt(i);
			if (isNaN(c) && (i == 1 || i == 3 || i == 5) )
			{
				s.focus();			
				alert(zipMsg);
				return false;
			}			
		}
		for (var i = 0; i < s.value.length; i++)
		{   
			// Check that current character is number.
			var c = s.value.charAt(i);
			if ( IsNumeric(c) && (i == 0 || i == 2 || i == 4 ) )
			{
				s.focus();			
				alert(zipMsg);
				return false;
			}			
		}
	}				
	if (s.value.length == 7)
	{
		for (var i = 0; i < s.value.length; i++)
		{   
			// Check that current character is number.
			var c = s.value.charAt(i);
			if (isNaN(c) && (i == 1 || i == 4 || i == 6) )
			{
				s.focus();			
				alert(zipMsg);
				return false;
			}			
		}
		for (var i = 0; i < s.value.length; i++)
		{   
			// Check that current character is number.
			var c = s.value.charAt(i);
			if ( IsNumeric(c) && (i == 0 || i == 2 || i == 3 || i == 5) )
			{
				s.focus();			
				alert(zipMsg);
				return false;
			}			
		}
	}				

    // correctly formatted zip code.
    //return true;
	return true;
}

function IsNumeric(cNumber)
{
   var ValidChars = "0123456789";
   var IsNumber=true;

  if (ValidChars.indexOf(cNumber) < 0) 
	 {
	 IsNumber = false;
	 }
	 
   return IsNumber;
   
   }

function Routing_Validator(theForm)
{
  var pointMsg = "Must enter a point to get route information.";
  var origOK;
  if (theForm.pointsEntry.checked) {
      if (trimAll(theForm.origPoint.value).length > 0) {
          origOK = true;
      } else {
          origOK = false;
          alert(pointMsg);          
      }
  } else {
      origOK = isZipValid(theForm.origZip);
  }
  
  if (origOK) {
        var destOK;
        if (theForm.pointsEntry.checked) {
            if (trimAll(theForm.destPoint.value).length > 0) {
                destOK = true;
            } else {
                destOK = false;
                alert(pointMsg);                
            }
        } else {
            destOK = isZipValid(theForm.destZip);
        }  	
        
        if (destOK) {
            return true;		
	} else {
            if (theForm.pointsEntry.checked) {
                theForm.destPoint.focus();
            } else {
                theForm.destZip.focus();
            }
            return false;
	}
  } else {
        if (theForm.pointsEntry.checked) {
            theForm.origPoint.focus();
        } else {
            theForm.origZip.focus();
        }
	return false;
  }
}
