//this function overrides window.open and will not return back any values
//causing the source page to go to a page with the label "[object]"
function MM_openBrWindow(theURL,winName,features) {
  var objWin = window.open(theURL,winName,features);
  objWin.focus();
}

function dateAdd(sStartDate,nDays){
   var dtNow = new Date(sStartDate + ' 12:00:00').valueOf();
   var dtThen = dtNow + nDays*1000*3600*24;
   var dtNew = new Date(dtThen);
    if (dtNew.getYear() < 100){
      dtNew.setYear(dtNew.getYear() + 2000);
    }
    return (dtNew.getMonth()+1)+'/'+dtNew.getDate()+'/'+(Math.floor(dtNew.getFullYear() / 10) % 10)+(dtNew.getFullYear() % 10);
}

function validateUSPhone( strValue ) {
  var objRegExp  = /^\([1-9]\d{2}\)\s?\d{3}\-\d{4}$/;
  return objRegExp.test(strValue);
}

function validateEmail(strValue) {
  var objRegExp = /^[a-z0-9_\-]+(\.[a-z0-9_\-]+)*@[a-z0-9_\-]+(\.[a-z0-9_\-]+)*\.[a-z0-9]{2,}$/i;
  return objRegExp.test(strValue);
}

function ZipCodeOK(s)
  {
    var tst = s.value;
    var boolNumTst = true;
    if ((tst.length != 5) && (tst.length != 10))
      return false;
    else if ((tst.length > 5) && (tst.charAt(5) != '-'))
      return false;
    else {
      for (var i = 0; i < tst.length; i++) {
        if ((i != 5) && ((tst.charAt(i) < '0') || (tst.charAt(i) > '9')))
          boolNumTst = false;
      }
      return boolNumTst;
    }
  }

function isNumeric(value){
  var ch;
  if(value.length == 0)
    return false;
  for (var i=0; i<value.length; i++){
    ch=value.substring(i,i+1);
    if(!((ch>='0' && ch<='9') || (ch=='.'))) {
      return false;
    }
  }
  return true;
}

function isDate(dateStr) {
  var datePat = /^(\d{1,2})(\/|-)(\d{1,2})(\/|-)(\d{2}|\d{4})$/;
  var matchArray = dateStr.match(datePat); // is the format ok?
  if (matchArray == null) {
      return false;
  }
  month = matchArray[1]; // parse date into variables
  day = matchArray[3];
  year = matchArray[5];
  if (month < 1 || month > 12) { // check month range
      return false;
  }
  if (day < 1 || day > 31) {
      return false;
  }
  if ((month==4 || month==6 || month==9 || month==11) && day==31) {
      return false;
  }
  if (month == 2) { // check for february 29th
      var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
      if (day > 29 || (day==29 && !isleap)) {
          return false;
      }
  }
  return true; // date is valid
}

function cDate(dateStr) {
  var newDate = new Date(dateStr);
  var year = newDate.getYear();
  year = year - 0;
  if (year < 70) {
      year = year + 2000;
  }
  if (year < 1900)  {
      year = year + 1900;
  }
  newDate.setYear(year);
  return newDate;
}

function dateDiff(dDate1,dDate2) {
  var year = dDate1.getYear();
  year = year - 0;
  if (year < 70) {
      year = year + 2000;
  }
  if (year < 1900)  {
      year = year + 1900;
  }
  dDate1.setYear(year);
  year = dDate2.getYear();
  year = year - 0;
  if (year < 70) {
      year = year + 2000;
  }
  if (year < 1900)  {
      year = year + 1900;
  }
  dDate2.setYear(year);
  var _delta = 0;
  _delta = dDate2.getTime() - dDate1.getTime(); // in msecs
  _delta /= (1000 * 60 * 60 * 24); // days
  return _delta;
}

function trim(str_String)
{
   return str_String.replace(/^\s*(.*\S|.*)\s*$/, '$1');
}

function SetCookie(sName, sValue, expires, path, domain, secure) {
  if(sName==''){
    return;
  }

  var sFullStr = GetFullCookieStr();
  var aCookie = sFullStr.split("~");
  var sResult = '';
  var bFound = false;
  for (var i=0; i < aCookie.length; i++)
  {
    var aCrumb = aCookie[i].split("|");
    if (sResult != '') 
      sResult = sResult + '~';

    sResult = sResult + aCrumb[0] + '|';
    if (sName == aCrumb[0]) {
      sResult = sResult + sValue;
      bFound = true;   
    } else {
      sResult = sResult + aCrumb[1];
    }
  }
  if (!bFound) {
    if (sResult != '') {
      sResult = sResult + '~';
      sResult = sResult + sName + "|" + sValue;
    }
  }

  document.cookie =  escape('ESCAPECOOKIES') + '=' + escape(sResult)
   + (expires ? '; expires=' + expires.toGMTString() : '')
   + (path ? '; path=' + path : '')
   + (domain ? '; domain=' + domain : '')
   + (secure ? '; secure' : '');
}

function GetCookie(sName) {
  if(sName==''){
    return '';
  }
  var sFullStr = GetFullCookieStr();
  var aCookie = sFullStr.split("~");
  for (var i=0; i < aCookie.length; i++)
  {
    var aCrumb = aCookie[i].split("|");
    if (sName == aCrumb[0]) 
      return unescape(aCrumb[1]);
  }
}

function GetFullCookieStr() {
  var cookieValue = '';
  var posName = document.cookie.indexOf(escape('ESCAPECOOKIES') + '=');
  if (posName != -1)
  {
    var posValue = posName + (escape('ESCAPECOOKIES') + '=').length;
    var endPos = document.cookie.indexOf(';', posValue);
    if (endPos != -1)
      cookieValue = unescape(document.cookie.substring(posValue, endPos));
    else
      cookieValue = unescape(document.cookie.substring(posValue));
  }
  return (cookieValue);
}
