// mortgage payment calculator
function floor(number)
{
  return Math.floor(number*Math.pow(10,2) + 0.5)/Math.pow(10,2);
}

function dosum()
{
  var mi = document.temps.IR.value / 1200;
  var base = 1;
  var mbase = 1 + mi;
  for (i=0; i<document.temps.YR.value * 12; i++)
  {
    base = base * mbase
  }
  document.temps.PI.value = floor(document.temps.LA.value * mi / ( 1 - (1/base)))
  document.temps.MT.value = floor(document.temps.AT.value / 12)
  document.temps.MI.value = floor(document.temps.AI.value / 12)
  var dasum = document.temps.LA.value * mi / ( 1 - (1/base)) +
        document.temps.AT.value / 12 +
        document.temps.AI.value / 12;
  document.temps.MP.value = floor(dasum);
}

// email validator

//use errorMode=0 for alert
//use errorMode=1 to write errors to an element
errorMode = 0;

//elementId to write the errors to (if applicable)
errorElementId = '';

//custom js arrays
var reqd_fields = new Array();
reqd_fields[0] = 'nxb';
reqd_fields[1] = 'pxb';
reqd_fields[2] = 'mxb';
var email_fields = new Array();
email_fields[0] = 'exb';

function dropdownSelected(selectObj) {
        return (selectObj.selectedIndex == 0 || selectObj.value == '')?false:true;
}
function checkboxChecked(checkboxObj) {
        return checkboxObj.checked;
}
function inputFilled(formElem) {
        return (formElem.value == '')?false:true;
}
function isProvided(formElem) {
        switch (formElem.type) {
                case 'select-one':
                        return dropdownSelected(formElem);
                        break;
                case 'checkbox':
                        return checkboxChecked(formElem);
                        break;
                default:
                        return inputFilled(formElem);
                        break;
        }
}
function isEmail(formElem) {
        emailStr = formElem.value;
        atPos = emailStr.indexOf('@');
        dotPos = emailStr.lastIndexOf('.');
        return (atPos > 0 && dotPos > atPos && dotPos < emailStr.length-2);
}
function displayErrors(a) {
        flag = true;
        spacer = (errorMode==0)?"\n":"<br />";
        errStr = "";
        for (var i=0; i < a.length; i++) {
                if (a[i].length > 0) {
                        flag = false;
                        for (var v=0; v < a[i].length; v++) {
                                errStr += a[i][v] + spacer;
                        }
                }
        }
        if (errStr != "") {
                if (errorMode == 0)
                        alert(errStr);
                else {
                        document.getElementById(errorElementId).innerHTML = errStr;
                        location.href = "#";
                }
        }
        return flag;
}
//call from onsubmit parameter of form tag like this: return validate(this)
function validate(formObj) {
        req_error = new Array();                                email_error = new Array();                error = new Array(
                                req_error                                                                ,email_error                                );

        for (var i=0; i < reqd_fields.length; i++) {
                formElem = formObj.elements[reqd_fields[i]];
                if (!isProvided(formElem))
                        req_error[req_error.length] = "All fields are required.";
        }
        for (var i=0; i < email_fields.length; i++) {
                formElem = formObj.elements[email_fields[i]];
                if (!isEmail(formElem))
                        email_error[email_error.length] = "\'" + formElem.value + "\' is not a valid email address.";
        }
        return displayErrors(error);
}

function urlDecode(psEncodeString)
{
  var lsRegExp = /\+/g;
  return unescape(String(psEncodeString).replace(lsRegExp, " "));
}

function getQueryField(varName)
{
  var query = urlDecode(window.location.search.substring(1));
  var vars = query.split("&");
  for (var i=0; i<vars.length; i++)
  {
    var pair = vars[i].split("=");
    if (pair[0].toLowerCase() == varName.toLowerCase())
    {
      return pair[1];
    }
  }
}

function fillFormFields()
{
  for(i=0; i<document.forms['LoanApp'].elements.length; i++)
  {
    var ele = document.forms['LoanApp'].elements[i];
    var val = getQueryField(ele.name);
    if (val)
    {
      if (ele.type == "text" || ele.type == "textarea")
      {
        ele.value = val;
      }
      if (ele.type == "select" || ele.type == "select-one")
      {
        ele.options[ele.options.length] = new Option("---");
        ele.options[ele.options.length] = new Option(val);
        ele.selectedIndex = ele.options.length-1;
      }
    }
  }
}

function validateFields()
{
  if (document.forms['LoanApp'].lastname.value=='' || document.forms['LoanApp'].firstname.value=='')
  {
    alert('Name is required');
    return false;
  }

  if (document.forms['LoanApp'].email.value=='' && document.forms['LoanApp'].homephone.value==''
   && document.forms['LoanApp'].workphone.value=='' && document.forms['LoanApp'].celphone.value=='')
  {
    alert('Email or phone is required');
    return false;
  }

  return true;
}



