function focusElement(formName, elemName) {
   var elem = document.forms[formName].elements[elemName];
   elem.focus();
   elem.select();
}

function isBlank(s) {
   var str = Trim(s.value);
   if ((s.value) && (str.length > 0)) {
//      alert("*"+str+" Length="+str.length+"*");
      return false;
   }
   return true;
}

function squish(s) {
   var re = new RegExp(" ", "g");
   return s.value = s.value.replace(re,"");
}

function errIfBlank(s) {
   if (isBlank(s)) {
      alert("Field is required. Please enter a value.")
		setTimeout("focusElement('" + s.form.name + "', '" + s.name + "')",0);
		return true;
   }
   return false;
}

function validateCode(s) {
   squish(s);
   errIfBlank(s);
}

function LTrim(str) {
   var whitespace = new String(" \t\n\r");
   var s = new String(str);

   if (whitespace.indexOf(s.charAt(0)) != -1) {
      // We have a string with leading blank(s)...
      var j=0, i = s.length;
      while (j < i && whitespace.indexOf(s.charAt(j)) != -1)
         j++;
      s = s.substring(j, i);
   }
   return s;
}

function RTrim(str) {
   var whitespace = new String(" \t\n\r");
   var s = new String(str);

   if (whitespace.indexOf(s.charAt(s.length-1)) != -1) {
      // We have a string with trailing blank(s)...
      var i = s.length - 1;
      while (i >= 0 && whitespace.indexOf(s.charAt(i)) != -1)
         i--;
      s = s.substring(0, i+1);
   }
   return s;
}

function Trim(str) {
   return RTrim(LTrim(str));
}

function isEMailAddr(elem) {
   var str = elem.value;
   var re = /^[\w-]+(\.[\w-]+)*@([\w-]+\.)+[a-zA-Z]{2,7}$/;
   if (!str.match(re)) {
      alert("Verify the email address format.");
      setTimeout("focusElement('" + elem.form.name + "', '" + elem.name + "')",0);
      return false;
   } else {
      return true;
   }
}

function isPhone(phStr){
   var inPhStr = phStr.value;
   var wPhStr = Trim(phStr.value);
   if ((wPhStr == null) || (wPhStr == "")) {
      phStr.value = wPhStr;
      alert("The phone is blank");
      setTimeout("focusElement('" + phStr.form.name + "', '" + phStr.name + "')",0);
      return false;
   }
   var p1 = ''; 
   var p2 = ''; 
   var p3 = ''
   var wDigits = '';
// Try and find phone number by number of digits
   if (isInteger(wPhStr)) {
      if (wPhStr.length == 10) {
         p1 = wPhStr.substr(0,3);
         p2 = wPhStr.substr(3,3);
         p3 = wPhStr.substr(6,4);
         wDigits = new Array(p1,p2,p3);
      }
   }
   else {
      wDigits = wPhStr.split(/\D/);
   }
// Validate phone number
   if (wDigits.length !== 3) {
      alert("The phone format should be : 999-999-9999");
      setTimeout("focusElement('" + phStr.form.name + "', '" + phStr.name + "')",0);
      return false;
   }
// Format the phone number
	wDate = wDigits.join("-");
   phStr.value = wDate;
return true;
}

function isOptionalPhone(phStr){
   if ((phStr.value == null) || (phStr.value == "")) {
      return true;
   }
   isPhone(phStr);
}