function isEmpty (s) {
	var i;
	var space = " \r\n";
	if ((s == null) || (s.length < 1)) return true;
	for (i = 0; i < s.length; i++) {   
		var ch = s.charAt(i);
		if (space.indexOf(ch) == -1) return false;
	}
	return true;
}

function isEmail (s) {
	if (isEmpty(s)) return false;
	if (s.indexOf('@') == -1) return false;
	if (s.indexOf('.') == -1) return false;
	if (s.length < 4) return false;
	return true;
	}
 	

function isChecked(s) {
	if (!s.length) var checkval = 1;
	for (var i=0;i<s.length;i++) {
		if (s[i].checked) {
			var checkval = 1;
		}
	}
	if (checkval != 1) return true;
	else return false;
}

function isRadio(s) {
     for (var i=0;i<s.length;i++) {
	if (s[i].checked) {
		var radval = 1;
	}
  }
  if (radval != 1) return true;
  else return false;
 	}

function isSelected(s) {
	if (s.selectedIndex == 0 && s.options[s.selectedIndex].value == '') return true;
	else return false;
}

function IsNumeric(sText){
	var ValidChars = "0123456789.-";
	var IsNumber=true;
	var Char;

	//if (sText.length==0) return false;
 
   	for (i = 0; i < sText.length && IsNumber == true; i++) { 
      	Char = sText.charAt(i); 
      	if (ValidChars.indexOf(Char) == -1){
        	IsNumber = false;
		}
	}
   return IsNumber;
   
}

function isAlpha(s){
	var checkAlpha = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
	var checkStr = s;
	var blZipValid = false;	
	
	for (x=0; x < checkStr.length; x++){
  		if (checkAlpha.indexOf(checkStr.substr(x,1)) > -1){
  			blZipValid = true;
  		}
  	}
  	
  	return blZipValid;
}

function padCanadaZip(objZip){
	var strfix = "";
	if (objZip.value.length == 6){
		//pad a space between char 3 and 4
		strfix = objZip.value.substr(0,3);
		strfix += " ";
		strfix += objZip.value.substr(3,3);
		
		objZip.value = strfix;
	}else{
		strfix = objZip.value;
	}	
	
	return strfix;
}

function isValidZip(objDD, objZip){
	
	if (objDD.options[objDD.selectedIndex].value.toLowerCase()=="can"){
		//Canada
	  	if (objZip.value.length < 6){
	  		//alert( "Invalid Zip/Postal Code.");
	  		//objZip.focus();
	  		//alert("less than 6");
      		return false;
	  	}
	  	
	  	//check alpha characters
	  	
	  	if (!isAlpha(objZip.value)){
	  		//alert("alpha");
	  		return false;
	  	}
		
		objZip.value = padCanadaZip(objZip)
	  	
	  
	  	return true;	

	} else{	//end canada check	  	
		if (objZip.value.length < 5 || objZip.value.length > 5 ){
	  		//alert( "zip size");
	  		//objZip.focus();
      		return false;
	  	}
	  	
	  	if (!IsNumeric(objZip.value)){
	  		//alert( "Invalid Zip/Postal Code. US zip codes are only numeric.");
	  		//objZip.focus();
	  		//alert("numeric");
	  		return false;
	  	}
	  	
	  	return true
	}
}	

function validDate(s)
    {
	   var result = true;

 	   if (isEmpty(s)) {
	      result = false;
       }
 	   if (result) {
 		  var elems = s.split("/");
 		
 		  result = (elems.length == 3); // should be three components

 		  if (result) {
 		     var month = elems[0];
  			 var day   = elems[1];
 			 var year  = elems[2];

             result = !isNaN(month) && (month > 0) && (month < 13) &&
                      !isNaN(day) && (day > 0) && (day < 32) &&
                      !isNaN(year) && (elems[2].length == 4)
 		  }
 		
	   } 
	
       return result;
}
