function openwindow(temp) {
   var settings  ='scrollbars=yes,';
   settings +='resizable=yes';
 newwin = window.open(temp, "", settings);
}

function goToURL(x) {
   window.location = "x";
}

function textToNumeric(x) {
   t=(1 * x);
   if (isNaN(t)) {t=0;}
   return t;
}

function formatAmt(x) {
   var v;
   v = textToNumeric(x.value);
   return x.value = v.toFixed(2);
}

function focusElement(formName, elemName) {
   var elem = document.forms[formName].elements[elemName];
   elem.focus();
   elem.select();
}

function isBlank(s) {
   if (s == null) return true;
   var str = Trim(s.value);
   if ((s.value) && (str.length > 0)) {
//      alert("*"+str+" Length="+str.length+"*");
      return false;
   }
   return true;
}

function squish(s) {
   if (s == null) return;
   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. (" + s.name + ")")
      var x1=s.form.name;
      var x2=s.name;
      setTimeout("focusElement('" + s.form.name + "', '" + s.name + "')",0);
      return true;
   }
   return false;
}

function errIfNotMinLen(s,l) {
   if (s == null) return;
   if (s.value.length < l) {
      alert("Field must be at least " + l + " in length.")
      setTimeout("focusElement('" + s.form.name + "', '" + s.name + "')",0);
      return true;
   }
   return false;
}

function validateCode(s) {
   if (s == null) return;
   squish(s);
   errIfBlank(s);
}

function LTrim(str) {
   if (str == null) return;
   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) {
   if (str == null) return;
   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) {
   if (str == null) return;
   return RTrim(LTrim(str));
}

function isEMailAddr(elem) {
   if (elem == null) return;
   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){
   if (phStr == null) return;
   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);
}

// Use the next 2 fuctions like this:
//   QueryString.keys = new Array();
//   QueryString.values = new Array();
//   QueryString_Parse();
//   id=QueryString("id")

function QueryString(key) {
 if (key == null) return;
 var value = null;
 for (var i=0;i<QueryString.keys.length;i++)
 {
  if (QueryString.keys[i]==key)
  {
   value = QueryString.values[i];
   break;
  }
 }
 return value;
}

function QueryString_Parse() {
 var query = window.location.search.substring(1);
 var pairs = query.split("&");

 for (var i=0;i<pairs.length;i++)
 {
  var pos = pairs[i].indexOf('=');
  if (pos >= 0)
  {
   var argname = pairs[i].substring(0,pos);
   var value = pairs[i].substring(pos+1);
   QueryString.keys[QueryString.keys.length] = argname;
   QueryString.values[QueryString.values.length] = value;
  }
 }

}

function rtvRadioValue(x) {
   if (x == null) return;
   var v;
   for (i=0;i<x.length;i++) {
    if (x[i].checked)  {
     return v = x[i].value;
    }
   }
}

function isInteger(s){
 if (s == null) return;
 var i;
    for (i = 0; i < s.length; i++){
        // Check that current character is number.
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    }
    // All characters are numbers.
    return true;
}

function daysInFebruary (year){
 // February has 29 days in any year evenly divisible by four,
   // EXCEPT for centurial years which are not also divisible by 400.
    return (((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28 );
}

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 checkDate(dtStr){
   var minYear=1900;
   var maxYear=2100;
   var inDtStr = dtStr.value;
   var wDtStr = Trim(dtStr.value);
   if ((wDtStr == null) || (wDtStr == "")) {
      dtStr.value = wDtStr;
      alert("The date is blank");
      setTimeout("focusElement('" + dtStr.form.name + "', '" + dtStr.name + "')",0);
      return false;
   }
 var daysInMonth = DaysArray(12)
   var mm = ''; dd = ''; yyyy = ''
   wDigits = '';
// Try and find month, day, year
   if (isInteger(wDtStr)) {
      if (wDtStr.length == 6) {
         mm = wDtStr.substr(0,2);
         dd = wDtStr.substr(2,2);
         yyyy = '20' + wDtStr.substr(4,4);
      }
      if (wDtStr.length == 8) {
         mm = wDtStr.substr(0,2);
         dd = wDtStr.substr(2,2);
         yyyy = wDtStr.substr(4,4);
      }
      wDigits = new Array(mm,dd,yyyy);
   }
   else {
      wDigits = wDtStr.split(/\D/);
      if (wDigits[2] < 100) {
         wDigits[2] = ((wDigits[2] - 0) + 2000).toString();
      }
      if (wDigits[0].length == 1) {wDigits[0] = "0" + wDigits[0];}
      if (wDigits[1].length == 1) {wDigits[1] = "0" + wDigits[1];}
   }
// Validate month, day, year
   if (wDigits.length !== 3) {
      alert("The date format should be : mm/dd/yyyy");
      setTimeout("focusElement('" + dtStr.form.name + "', '" + dtStr.name + "')",0);
      return false;
   }
// Convert to numeric for testing
 month=wDigits[0]-0;
 day=wDigits[1]-0;
 year=wDigits[2]-0;
 if (wDigits[0].length<1 || month<1 || month>12){
  alert("Please enter a valid month. Current value(" + month + ")")
  dtStr.value = inDtStr;
  setTimeout("focusElement('" + dtStr.form.name + "', '" + dtStr.name + "')",0);
  return false
 }
 if (wDigits[1].length<1 || day<1 || day>31 || (month==2 && day>daysInFebruary(year)) || day > daysInMonth[month]){
  alert("Please enter a valid day. Current value(" + wDigits[1] + ")");
  setTimeout("focusElement('" + dtStr.form.name + "', '" + dtStr.name + "')",0);
  dtStr.value = inDtStr;
  return false
 }
 if (wDigits[2].length != 4 || year==0 || year<minYear || year>maxYear){
  alert("Please enter a valid 4 digit year between "+minYear+" and "+maxYear+". Current value(" + wDigits[2] + ")");
  setTimeout("focusElement('" + dtStr.form.name + "', '" + dtStr.name + "')",0);
  dtStr.value = inDtStr;
  return false
 }
 wDate = wDigits.join("/");
   dtStr.value = wDate;
return true
}