/*********************************
* (c) Professional Health Products
*********************************/
function trim(str) { if (str) { return str.replace(/^\s*/, '').replace(/\s*$/, ''); } else { return str; } } 
function replaceChar(str) { if (str) { return str.replace(/\"/g, "&quot;"); } else { return str; } }
function removeNonAlpha(str) { if (str) { return str.replace(/[^0-9a-z]/gi, ""); } else { return str; } }
function parseDigits(str) { if (str) { return str.replace(/[^0-9]/g,''); } else { return str; } }
function parseFloat(str) { if (str) { return String(str).replace(/[^0-9.]/g, ''); } return str; }
function money(num) {
  var isNegative = false;
  num = parseFloat(num);

  if (isNaN(num)) { num = "0"; }
  if (num < 0) { num = Math.abs(num); isNegative = true; }

  var cents = Math.floor( (num * 100 + 0.5) % 100);
  num       = Math.floor( (num * 100 + 0.5) / 100).toString();

  if (cents < 10) { cents = "0" + cents; }

  for (i = 0; i < Math.floor((num.length - (1 + i)) / 3); i++) {
    num = num.substring( 0 ,num.length - ( 4 * i + 3 ) ) + ',' + num.substring( num.length - ( 4 * i + 3 ) );
  }

  var result = '$' + num + '.' + cents;

  if (isNegative) { result = "-" + result; }

  return result;
}
function fmtPhone(phone) {
  if (phone) {
    var str = parseDigits(phone);

    switch (str.length) { // 1 222 333 4444
      case  7: return str.substring(0,3) + "-" + str.substring(3, 7);
      case 10: return str.substring(0,3) + "-" + str.substring(3, 6) + "-" + str.substring(6, 10);
      case 11: return str.substring(0,1) + "-" + str.substring(1, 4) + "-" + str.substring(4, 7) + "-" + str.substring(7, 11);
    }
  }

  return phone;
}
function fmtPhones(fm) {
  if (fm.primaryPhone) { fm.primaryPhone.value = fmtPhone(fm.primaryPhone.value); }
  if (fm.secondaryPhone) { fm.secondaryPhone.value = fmtPhone(fm.secondaryPhone.value); }
  if (fm.fax) { fm.fax.value = fmtPhone(fm.fax.value); }
  if (fm.mobile) { fm.mobile.value = fmtPhone(fm.mobile.value); }
  return true;
}
function vNumber(number) {
  if (isNaN(number)) {
    alert(number + " is not a valid number. Please enter a correct value.");
    return false;
  }
  return true;
}
function vMoney(money) {
  var number = parseFloat(money);
  if (isNaN(number)) {
    alert(money + " is not a valid currency amount. Please enter a correct value.");
    return false;
  }
  return true;
}
function vMaxRec(value, fm) {
  if (vNumber(value)) {
    fm.rc.value = parseInt(value);
    return true;
  } else {
    fm.rc.focus();
    return false; 
  }
}
function vDate(sDate, eDate) {
    var errMsg      = "Start date must be before end date.";
    var sDateErrMsg = new Array("Start date must be in the format of yyyy-mm-dd.",
                                "Start date has invalid value.");
    var eDateErrMsg = new Array("End date must be in the format of yyyy-mm-dd.",
                                "End date has invalid value.");

    if (!sDate && !eDate) { return true; }

    // date must be in format: yyyy-mm-dd
    if ( sDate && (sDate.length != 10) ) { alert(sDateErrMsg[0]); return false; }
    if ( eDate && (eDate.length != 10) ) { alert(eDateErrMsg[0]); return false; }  

    var sYear  = sDate.substring(0, 4);
    var sMonth = sDate.substring(5, 7);
    var sDay   = sDate.substring(8, 10);

    var eYear  = eDate.substring(0, 4);
    var eMonth = eDate.substring(5, 7);
    var eDay   = eDate.substring(8, 10);

    var tmpSDate = new Date(sYear, (sMonth-1), sDay);
    var tmpEDate = new Date(eYear, (eMonth-1), eDay);

    if ( (tmpSDate.getFullYear() != sYear) || (tmpSDate.getMonth() != (sMonth-1)) || (tmpSDate.getDate() != sDay) ) {
      alert(sDateErrMsg[1]);
      return false;
    }

    if ( (tmpEDate.getFullYear() != eYear) || (tmpEDate.getMonth() != (eMonth-1)) || (tmpEDate.getDate() != eDay) ) {
      alert(eDateErrMsg[1]);
      return false;
    }

    if (Date.parse(tmpEDate.toString()) < Date.parse(tmpSDate.toString())) {
      alert(errMsg);
      return false;
    }

    return true;
}
function getCurrentDate() {
  var date  = new Date();
  var day   = date.getDate();
  var month = ( eval(date.getMonth())+1);
  
  // Fill leading zero.
  if (day < 10) { day = "0" + day; }
  if (month < 10) { month = "0" + month; }

  return date.getFullYear() + "-" + month + "-" + day;
}
function show(object) {
  if (document.getElementById && document.getElementById(object)) {
    node = document.getElementById(object).style.visibility="visible";
  } else if (document.layers && document.layers[object]) {
    document.layers[object].visibility = "visible";
  } else if (document.all) {
    document.all[object].style.visibility = "visible";
  }
}
function hide(object) {
  if (document.getElementById && document.getElementById(object)) {
    node = document.getElementById(object).style.visibility="hidden";
  } else if (document.layers && document.layers[object]) {
    document.layers[object].visibility = "hidden";
  } else if (document.all) {
    document.all[object].style.visibility = "hidden";
  }
}