ERR = 1;
function message(type, str) {
  var intro;
  if (type == ERR) {
    intro = "Input Error";
  }
  var msg = "========================================\n" +
            intro + "\n" +
            "--------------------------------------------------------------------------------\n\n" +
            str + "\n\n" +
            "--------------------------------------------------------------------------------\n";
  alert(msg);
}


String.prototype.right = function (n) {
  if (n < this.length) {
    return this.substring (this.length - n, this.length);
  } else {
    return this;
  }
}


function punctDollars(d) {
  var pd = "";
  while (d.length > 3) {
    pd = "," + d.right(3) + pd;
    d = d.substr(0, d.length - 3);
  }
  pd = d + pd; 
  return pd;
}


function formatMoneyText(amount) {
  if (/(\$\s?)?\d{1,2}(,?\d{3})*(\.\d{1,2})?/.test(amount)) {
    amount=amount.replace(/\s/g,"");
    amount=amount.replace(/\$/,"");
    amount=amount.replace(/,/,"");
    var parts = amount.split(".");
    var dollars = punctDollars(parts[0]);
    var cents = parts.length > 1 ? parts[1] + "0" : "00";
    cents = cents.substr(0, 2);
    return "$" + dollars + (cents > "00" ? "." + cents : "");
  }
}


function formatMoney(f) {
  var amount=f.value;
  if (amount.length == 0) {
    return;
  }
  if (/(\$\s?)?\d{1,2}(,?\d{3})*(\.\d{1,2})?/.test(amount)) {
status="got here";
    amount=amount.replace(/\s/g,"");
    amount=amount.replace(/\$/,"");
    amount=amount.replace(/,/,"");
    var parts = amount.split(".");
    var dollars = punctDollars(parts[0]);
    var cents = parts.length > 1 ? parts[1] + "0" : "00";
    cents = cents.substr(0, 2);
    f.value = "$" + dollars + "." + cents;
  }
  else {
    message(ERR,"You must enter a valid dollar amount.");
    f.value="";
    f.focus();
  }
}


function unformatMoney(amount) {
  if (/(\$\s?)?\d{1,2}(,?\d{3})*(\.\d{1,2})?/.test(amount)) {
    amount=amount.replace(/\s/g,"");
    amount=amount.replace(/\$/,"");
    amount=amount.replace(/,/,"");
    return amount;
  }
}


IE = (!document.layers);
function validate() {
  var fldList="";
  var f=document.forms[0];
  for (var i=0; i < f.elements.length; ++i) {
    if (f.elements[i].onfocus) {
      s=f.elements[i].onfocus.toString();
      if (s.indexOf("required = true") > -1) {
        f.elements[i].onblur=resetColor;
        var pattern=/fldDesc\s*=\s*(["'])(.*)\1/;
        pattern.test(s);
        var desc=(RegExp.$2.length > 0) ? RegExp.$2 : f.elements[i].name;
        if (f.elements[i].type=="text") {
          if (f.elements[i].value.length==0) {
            fldList+="  "+desc+"\n";
            if (IE) f.elements[i].style.backgroundColor="#ffff00";
          }
          else if (IE) f.elements[i].style.backgroundColor="#ffffff";
        }
        else if (f.elements[i].type.substr(0, 6)=="select") {
          if (f.elements[i].selectedIndex==0) {
            fldList+="  "+desc+"\n";
            if (IE) f.elements[i].style.backgroundColor="#ffff00";
          }
          else if (IE) f.elements[i].style.backgroundColor="#ffffff";
        }
      }
    }
  }
  if (fldList.length > 0) {
    alert("Before submitting this form, please fill in the following:\n\n"+fldList);
    return false;
  }
  else {
    return true;
  }
}


function resetColor() {
  this.style.backgroundColor="#ffffff";
}

