/*
        Preferred Financial Services JavaScript Utility functions
*/

function validate_debt_form()
{
   var d = document.frm;

   if (d.firstname.value == '')   {
      alert("Please enter your First Name");
      d.firstname.focus();
      return false;
   }
   if (d.lastname.value == '') {
      alert("Please enter your Last Name");
      d.lastname.focus();
      return false;
   }
   if (d.email.value == '') {
      alert("Please enter your Email Address");
      d.email.focus();
      return false;
   }
   if (! validate_email(d.email.value)) {
      alert("Invalid Email Address, Please re-enter");
      d.email.focus();
      return false;
   }
   if (d.besttime.selectedIndex == 0) {
      alert("Please select the Best Time to Call");
      d.besttime.focus();
      return false;
   }
   if (d.debtlevel.selectedIndex == 0) {
      alert("Please select your Debt Level");
      d.debtlevel.focus();
      return false;
   }
   if (d.securitycode.value == '') {
      alert("Please enter the Security Character String");
      d.securitycode.focus();
      return false;
   }
   return true;
}

function validate_contact_form()
{
   var d = document.Contactfrm;

   if (d.firstname.value == '') {
      alert("Please enter your First Name");
      d.firstname.focus();
      return false;
   }
   if (d.lastname.value == '') {
      alert("Please enter your Last Name");
      d.lastname.focus();
      return false;
   }
   if (d.email.value == '') {
      alert("Please enter your Email Address");
      d.email.focus();
      return false;
   }
   if (! validate_email(d.email.value)) {
       alert("Invalid Email Address, Please re-enter");
       d.email.focus();
       return false;
   }
   if (d.besttime.selectedIndex == 0) {
      alert("Please select the Best Time to Call");
      d.besttime.focus();
      return false;
   }
   if (d.comments.value == '') {
      alert("Please enter your Comment");
      d.comments.focus();
      return false;
   }
   if (d.securitycode.value == '') {
      alert("Please enter the Security Character String");
      d.securitycode.focus();
      return false;
   }
   return true;
}

function validate_literature_form()
{
   var d = document.frm;

   if (d.firstname.value == '') {
      alert("Please enter your First Name");
      d.firstname.focus();
      return false;
   }
   if (d.lastname.value == '') {
      alert("Please enter your Last Name");
      d.lastname.focus();
      return false;
   }
   if (d.email.value == '') {
      alert("Please enter your Email Address");
      d.email.focus();
      return false;
   }
   if (! validate_email(d.email.value)) {
       alert("Invalid Email Address, Please re-enter");
       d.email.focus();
       return false;
   }
   if (d.address1.value == '') {
      alert("Please enter your Street Address");
      d.address1.focus();
      return false;
   }
   if (d.besttime.selectedIndex == 0) {
      alert("Please enter the Best Time to Call");
      d.besttime.focus();
      return false;
   }
   if (d.city.value == '') {
      alert("Please enter your City");
      d.city.focus();
      return false;
   }
   if (d.zip.value == '') {
      alert("Please enter your ZIP Code");
      d.zip.focus();
      return false;
   }
   if (d.literature.selectedIndex == 0) {
      alert("Please select the Literature Requested");
      d.literature.focus();
      return false;
   }
   if (d.state.selectedIndex == 0) {
      alert("Please select your State");
      d.state.focus();
      return false;
   }
   if (d.securitycode.value == '') {
      alert("Please enter the Security Character String");
      d.securitycode.focus();
      return false;
   }
   return true;
}

function validate_debt_consolidation_form()
{
   var d = document.frm;

   if (d.firstname.value == '')   {
      alert("Please enter your First Name");
      d.firstname.focus();
      return false;
   }
   if (d.lastname.value == '') {
      alert("Please enter your Last Name");
      d.lastname.focus();
      return false;
   }
   if (d.email.value == '') {
      alert("Please enter your Email Address");
      d.email.focus();
      return false;
   }
   if (! validate_email(d.email.value)) {
      alert("Invalid Email Address, Please re-enter");
      d.email.focus();
      return false;
   }
   if (d.address1.value == '') {
      alert("Please enter your Street Address");
      d.address1.focus();
      return false;
   }
   if (d.city.value == '') {
      alert("Please enter your City");
      d.city.focus();
      return false;
   }
   if (d.state.selectedIndex == 0) {
      alert("Please select your State");
      d.state.focus();
      return false;
   }
   if (d.zip.value == '') {
      alert("Please enter your ZIP Code");
      d.zip.focus();
      return false;
   }
   if (d.besttime.selectedIndex == 0) {
      alert("Please select the Best Time to Call");
      d.besttime.focus();
      return false;
   }
   if (d.securitycode.value == '') {
      alert("Please enter the Security Character String");
      d.securitycode.focus();
      return false;
   }
   return true;
}

function validate_email(emailStr)
{
   var emailPat=/^(.+)@(.+)$/
   var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"
   var validChars="\[^\\s" + specialChars + "\]"
   var quotedUser="(\"[^\"]*\")"
   var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/
   var atom=validChars + '+'
   var word="(" + atom + "|" + quotedUser + ")"
   var userPat=new RegExp("^" + word + "(\\." + word + ")*$")
   var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$")

   var matchArray=emailStr.match(emailPat)
   if (matchArray==null) {
      return false
   }
   var user=matchArray[1]
   var domain=matchArray[2]
   if (user.match(userPat)==null) {
       return false
   }
   var IPArray=domain.match(ipDomainPat)
   if (IPArray!=null) {
        for (var i=1;i<=4;i++) {
          if (IPArray[i]>255) {
            return false
          }
       }
       return true
   }
   var domainArray=domain.match(domainPat)
   if (domainArray==null) {
      return false
   }
   var atomPat=new RegExp(atom,"g")
   var domArr=domain.match(atomPat)
   var len=domArr.length
   if (domArr[domArr.length-1].length<2 ||
       domArr[domArr.length-1].length>4) {
      return false
   }
   if (len<2) {
      return false
   }
   return true;
}   

function onlyint(e)
{
   if (window.event) keynum = e.keyCode;
   else if (e.which) keynum = e.which;

   if (keynum == 0x08) return true;
   else if (keynum == 0x09) return true;
   else if ((keynum == 0x24) || (keynum == 0x2E) ||
                 (keynum == 0x2C) || (keynum == 0x2D)) return true;
   else if ((keynum >= 0x30) && (keynum <=0x39)) return true;
   return false;
}

function total_expenses()
{
   var d = document.frm;

   var rent = Number(d.rent.value);
   var mortgage = Number(d.mortgage.value);
   var vehicle = Number(d.vehicle.value);
   var insurance = Number(d.insurance.value);
   var groceries = Number(d.groceries.value);
   var utilities = Number(d.utilities.value);
   var medical = Number(d.medical.value);
   var childsup = Number(d.childsup.value);
   var childday = Number(d.childday.value);
   var credit = Number(d.credit.value);
   var misc = Number(d.misc.value);
   var other = Number(d.other.value);
   var loan = Number(d.loan.value);
   var assets = Number(d.assets.value);
   var liabilities = Number(d.liabilities.value);
   var dependents = Number(d.dependents.value);
   var mortgagebal = Number(d.mortgagebal.value);
   var valueofhome = Number(d.valueofhome.value);
   d.totalexp.value = rent + mortgage + vehicle + insurance + groceries + utilities + 
                      medical + childsup + childday + credit + misc + other + loan + 
                      assets + liabilities + dependents + mortgagebal + valueofhome;
}

function total_income()
{
   var d = document.frm;

   var monthlyinc = Number(d.monthlyinc.value);
   var childsupinc = Number(d.childsupinc.value);
   var foodstamps = Number(d.foodstamps.value);
   var military = Number(d.military.value);
   var socialsec = Number(d.socialsec.value);
   var spouseinc = Number(d.spouseinc.value);
   d.totalinc.value = monthlyinc + childsupinc + foodstamps + military + socialsec + spouseinc;
}

function total_creditors()
{
   var d = document.frm;

   var bal1 = Number(d.bal1.value);
   if (isNaN(bal1)) bal1 = 0;
   var bal2 = Number(d.bal2.value);
   if (isNaN(bal2)) bal2 = 0;
   var bal3 = Number(d.bal3.value);
   if (isNaN(bal3)) bal3 = 0;
   var bal4 = Number(d.bal4.value);
   if (isNaN(bal4)) bal4 = 0;
   var bal5 = Number(d.bal5.value);
   if (isNaN(bal5)) bal5 = 0;
   var bal6 = Number(d.bal6.value);
   if (isNaN(bal6)) bal6 = 0;
   d.total.value = bal1 + bal2 + bal3 + bal4 + bal5 + bal6;
}

function creditor_enter(field)
{
   field.value = '';
}

function creditor_leave(field)
{
   if (field.value == '') field.value = 'Creditor';
}

function balance_enter(field)
{
   field.value = '';
}

function balance_leave(field)
{
   total_creditors();
   if (field.value == '') field.value = 'Balance $';
}

