//________________________________________________________________________________________________
		//_____________________      validateZIP     _____________________________________________________

		function validateZIP(field) {
		var valid = "0123456789-";
		var hyphencount = 0;

		if (field.value.length!=5 && field.value.length!=10) {
		alert("Please enter your 5 digit or ( 5 + 4 ) digit  ZIP  code.");
		return false;
		}
		for (var i=0; i < field.value.length; i++) {
		temp = "" + field.value.substring(i, i+1);
		if (temp == "-") hyphencount++;
		if (valid.indexOf(temp) == "-1") {
		alert("Invalid characters in your ZIP code.  Please try again.");
		return false;
		}
		if ((hyphencount > 1) || ((field.value.length==10) && ""+field.value.charAt(5)!="-")) {
		alert("The hyphen character should be used with a properly formatted 5 digit+four  ZIP  code, like '12345-6789'.   Please try again.");
		return false;
		}
		}
		return true;
		}

		function reformatUSPhone (USPhone)
		{   return (reformat (USPhone, "", 3, "-", 3, "-", 4))
		}

                function reformatUSFax(USFax)
		{   return (reformat (USFax, "", 4, "-", 3, "-", 4))
		}
                
		function checkUSPhone (theField, emptyOK)
		{   if (checkUSPhone.arguments.length == 1) emptyOK = defaultEmptyOK;
			if ((emptyOK == true) && (isEmpty(theField.value))) return true;
			else
			{  var normalizedPhone = stripCharsInBag(theField.value, phoneNumberDelimiters)
			if (!isUSPhoneNumber(normalizedPhone, false)) 
				//return warnInvalid (theField, iUSPhone);
				return false;
			else 
			{  // if you don't want to reformat as (123) 456-789, comment next line out
				theField.value = reformatUSPhone(normalizedPhone)
				return true;
			}
			}
		}

		function checkUSFax (theField, emptyOK)
		{   if (checkUSFax.arguments.length == 1) emptyOK = defaultEmptyOK;
			if ((emptyOK == true) && (isEmpty(theField.value))) return true;
			else
			{  var normalizedFax = stripCharsInBag(theField.value, phoneNumberDelimiters)
			if (!isUSFaxNumber(normalizedFax, false)) 
				//return warnInvalid (theField, iUSPhone);
				return false;
			else 
			{  // if you don't want to reformat as (123) 456-789, comment next line out
				//theField.value = reformatUSfax(normalizedFax)
				return true;
			}
			}
		}

		function warnInvalid (theField, s)
		{   theField.focus()
			theField.select()
			alert(s)
			return false
		}

		function reformat (s)
		{   var arg;
			var sPos = 0;
			var resultString = "";

			for (var i = 1; i < reformat.arguments.length; i++) {
			arg = reformat.arguments[i];
			if (i % 2 == 1) resultString += arg;
			else {
				resultString += s.substring(sPos, sPos + arg);
				sPos += arg;
			}
			}
			return resultString;
		}

		//________________________________________________________________________________________________
		//_____________________      isEmail     _________________________________________________________

		function isEmail(string) {
			if (string.search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/) != -1)
				return true;
			else
				return false;
		}
		
		


		function stripCharsInBag (s, bag)

		{   var i;
			var returnString = "";

			// Search through string's characters one by one.
			// If character is not in bag, append to returnString.

			for (i = 0; i < s.length; i++)
			{   
				// Check that current character isn't whitespace.
				var c = s.charAt(i);
				if (bag.indexOf(c) == -1) returnString += c;
			}

			return returnString;
		}

		function isUSPhoneNumber (s)
		{   if (isEmpty(s)) 
			if (isUSPhoneNumber.arguments.length == 1) return defaultEmptyOK;
			else return (isUSPhoneNumber.arguments[1] == true);
			return (isInteger(s) && s.length == digitsInUSPhoneNumber)
		}

                function isUSFaxNumber (s)
		{   if (isEmpty(s)) 
			if (isUSFaxNumber.arguments.length == 1) return defaultEmptyOK;
			else return (isUSFaxNumber.arguments[1] == true);
			return (isInteger(s) && ((s.length == digitsInUSFaxNumber)||(s.length == digitsInUSPhoneNumber)))
		}

		function isInteger (s)

		{   var i;

			if (isEmpty(s)) 
			if (isInteger.arguments.length == 1) return defaultEmptyOK;
			else return (isInteger.arguments[1] == true);

			// 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.

			for (i = 0; i < s.length; i++)
			{   
				// Check that current character is number.
				var c = s.charAt(i);

				if (!isDigit(c)) return false;
			}

			// All characters are numbers.
			return true;
		}

		function isDigit (c)
		{   return ((c >= "0") && (c <= "9"))
		}

		//_____________________      isEmpty     _________________________________________________________
		function isEmpty(inputStr){
	    if ((inputStr == null) || (inputStr.replace( / /g, "").length == 0))
	    {
		    return true;
	    }
	    else
	    {
		    return false;
	    }
     }
		
		//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

        function clearCharacters( oCtrl ) {
	        oCtrl.value = oCtrl.value.replace(/\D/g,'');
        }
        
        
        
        function checklength(i){   
                if (i<10){   
                 i="0"+i;}   
                 return i;   
         }   
             
 //************* validate date****************/
var dtCh= "/";
var minYear=1900;
var maxYear=2100;

function DaysArray(n) {
	for (var i = 1; i <= n; i++) {
		this[i] = 31
		if (i==4 || i==6 || i==9 || i==11) {this[i] = 30}
		if (i==2) {this[i] = 29}
   } 
   return this
}

             
 function isDate(dtStr){
	var daysInMonth = DaysArray(12)
	var pos1=dtStr.indexOf(dtCh)
	var pos2=dtStr.indexOf(dtCh,pos1+1)
	var strMonth=dtStr.substring(0,pos1)
	var strDay=dtStr.substring(pos1+1,pos2)
	var strYear=dtStr.substring(pos2+1)
	strYr=strYear
	if (strDay.charAt(0)=="0" && strDay.length>1) strDay=strDay.substring(1)
	if (strMonth.charAt(0)=="0" && strMonth.length>1) strMonth=strMonth.substring(1)
	for (var i = 1; i <= 3; i++) {
		if (strYr.charAt(0)=="0" && strYr.length>1) strYr=strYr.substring(1)
	}
	month=parseInt(strMonth)
	day=parseInt(strDay)
	year=parseInt(strYr)
	if (pos1==-1 || pos2==-1){
		//alert("The date format should be : mm/dd/yyyy")
		return false
	}
	if (strMonth.length<1 || month<1 || month>12){
		//alert("Please enter a valid month")
		return false
	}
	if (strDay.length<1 || day<1 || day>31 || (month==2 && day>daysInFebruary(year)) || day > daysInMonth[month]){
		//alert("Please enter a valid day")
		return false
	}
	if (strYear.length != 4 || year==0 || year<minYear || year>maxYear){
		//alert("Please enter a valid 4 digit year between "+minYear+" and "+maxYear)
		return false
	}
	if (dtStr.indexOf(dtCh,pos2+1)!=-1 || isInteger(stripCharsInBag(dtStr, dtCh))==false){
		//alert("Please enter a valid date")
		return false
	}
return true
}


function compareDates(date1, date2)
{
	if(date1.getFullYear() > date2.getFullYear())
		return 1;	

	if(date1.getFullYear() < date2.getFullYear())
		return -1;
	
	if(date1.getMonth() > 

date2.getMonth())
		return 1;		
		
	if(date1.getMonth() < 

date2.getMonth())
		return -1;	
	
	if(date1.getDate() > date2.getDate())
		

return 1;	
	if(date1.getDate() < date2.getDate())
		return -1;		
	
	

return 0;	
		
}

 //************* end  validate date****************/

   
        //~~~~~~~~~~~~~~~~~~~~~~~
		var defaultEmptyOK = false;
		var phoneNumberDelimiters = "()-./ ";
		var digitsInUSPhoneNumber = 10;
		var digitsInUSFaxNumber = 11;
		var iUSPhone = "This field must be a 10 digit U.S. phone number (like 415-555-1212). Please reenter it now."
		var iUSFax = "This field must be a 10 or 11 digit U.S. phone number (like 415-555-1212 or 1-415-555-1212). Please reenter it now."
		//-->
		


		function isWhitespace(s){ 
           return ((s == null) || (s.replace( / /g, "").length == 0));
        }

		

        function  isNumeric( strValue ) {
	        var objRegExp  =  /(^-?\d\d*\.\d*$)|(^-?\d\d*$)|(^-?\.\d\d*$)/;
	        return objRegExp.test(strValue);
        }

        function focusNext( oCtrl, NextCtrlID ) {
	        if(oCtrl.value.length==3)
	        {
		        if (document.getElementById(NextCtrlID))
			        document.getElementById(NextCtrlID).focus();
	        }
        }
        
        function trim(str)
        {
            if(!str || typeof str != 'string')
                return null;

            return str.replace(/^[\s]+/,'').replace(/[\s]+$/,'').replace(/[\s]{2,}/,' ');
        }
        
        
        /***** GENERAL FUNCTIONS *****/
function check3Phone( PhoneField1ID, PhoneField2ID, PhoneField3ID, isRequired, showAlert )
{
	
	if( (document.getElementById(PhoneField1ID)) && (document.getElementById(PhoneField2ID)) && (document.getElementById(PhoneField3ID)) )
	{
		var PhoneField1 = document.getElementById(PhoneField1ID);
		var PhoneField2 = document.getElementById(PhoneField2ID);
		var PhoneField3 = document.getElementById(PhoneField3ID);
		
		if ((PhoneField1.value.length > 0 ) || (PhoneField2.value.length > 0) || (PhoneField3.value.length > 0)) {
			
			if (PhoneField1.value.length < 3 ) {
				if(showAlert)
					alert('This field must be a 3 digit from an U.S. phone number (like 415-555-1212)');
				//changeClass(PhoneField1ID,'errField');
				PhoneField1.focus();
				return false;
			}
			else
			{
			//	changeClass(PhoneField1ID,'standardField');
			}
			
			if (PhoneField2.value.length < 3) {
				if(showAlert)
					alert('This field must be a 3 digit from an U.S. phone number (like 415-555-1212)');
				//changeClass(PhoneField2ID,'errField');
				PhoneField2.focus();
				return false;
			}
			else
			{
				//changeClass(PhoneField2ID,'standardField');
			}
				
			if (PhoneField3.value.length < 4) {
				if(showAlert)
					alert('This field must be a 4 digit from an U.S. phone number (like 415-555-1212)');
				//changeClass(PhoneField3ID,'errField');
				PhoneField3.focus();
				return false;
			}
			else
			 {
				//changeClass(PhoneField3ID,'standardField');
			 }
		}
		else
		{
			if ( isRequired ) 
			{
				if(showAlert)
					alert("Please enter Phone ");
				PhoneField1.focus();
				return false;
			}
		}
	}
	else
	{
		alert("No Phone field present on this form");
	    return false;
	}
	
	return true;
}
