	function validate_required(field,alerttxt)
	{
	with (field) {
	  if (value==null||value=="")
	    { alert(alerttxt);return false; }
	  else { return true; }
	  }
	}

    function get_interest_factor(year_term, monthly_interest_rate) {
        
        factor      = 0;
        base_rate   = parseFloat(1 + monthly_interest_rate);
        denominator = base_rate;
        for (i=0; i < (year_term * 12); i++) {
            factor += parseFloat((1 / denominator));
            denominator *= base_rate;
        }
        return factor;
    }        

	function formatCurrency(num) {
		num = num.toString().replace(/\$|\,/g,'');
		if(isNaN(num))
		num = "0";
		sign = (num == (num = Math.abs(num)));
		num = Math.floor(num*100+0.50000000001);
		cents = num%100;
		num = Math.floor(num/100).toString();
		if(cents<10)
		cents = "0" + cents;
		for (var 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));
		return (((sign)?'':'-') + '$' + num + '.' + cents);
	}	
	
	function checkForZero(field)
	{
	    if (field.value == 0 || field.value.length == 0) {
	        alert ("This field can't be 0!");
	        field.focus(); }
	    else
	        calculatePayment(field.form);
	}
	
	function submitform()
	{
	 if(document.form.onsubmit())
	 {//this check triggers the validations
	    document.form.submit();
	 }
	}
	
	
	function validate_email(field,alerttxt)
	{
	with (field)
	  {
	  apos=value.indexOf("@");
	  dotpos=value.lastIndexOf(".");
	  if (apos<1||dotpos-apos<2)
	    {alert(alerttxt);return false;}
	  else {return true;}
	  }
	}
	function number_required(field,alerttxt)
	{
	with (field) {
	  if (value.length==0||value==0)
	    { alert(alerttxt);return false; }
	  else
	    { return true; }
	  }
	}
	
	function validate_form(thisform)
	{
	with (thisform)
	  {
	  totMortgage = parseFloat(Mortgage_1_Amount.value) + parseFloat(Mortgage_2_Amount.value);
	  upsidedown = (totMortgage - parseFloat(Assessed_Value.value))/parseFloat(Assessed_Value.value)*100;
	
	  if (validate_required(Borrower,"Please enter Borrower's Name")==false)
	  {Borrower.focus();return false;}
	  if (validate_email(email,"Please enter a valid e-mail address!")==false)
	  {email.focus();return false;}
	  if (number_required(Mortgage_1_Amount,"Please enter the 1st Mortgage Amount!")==false)
	  {Mortgage_1_Amount.focus();return false;}
	  if (validate_required(Plaintiff_1,"Please enter 1st Mortgage Lender Name!")==false)
	  {Plaintiff_1.focus();return false;}
	  if (number_required(Current_Total_Housing,"Please enter your current monthly mortgage payment!")==false)
	  {Current_Total_Housing.focus();return false;}
	  if (number_required(Total_Income,"Please enter the total monthly income!")==false)
	  {Total_Income.focus();return false;}
	  if (number_required(Assessed_Value,"Please enter the Current Market Value for your home!")==false)
	  {Assessed_Value.focus();return false;}
	  if (number_required(Total_Debt,"Please enter the monthly debt payment ~ credit cards, car payment, and other!")==false)
	  {Total_Debt.focus();return false;}
	  if (Assessed_Value.value > totMortgage)
	  {  alert("Your home current market value is greater than your mortgage!"+upsidedown);return false; }
	  if (upsidedown <= 25)
	  {  alert("Your mortgage amount has to be greater than the current market value at least 25% to qualify! Based on your input, it's "+upsidedown.toFixed(2)+"% up side down.");return false; }
	  }
	}
	
	function calculate(form)
	{
	
		form.Total_Income_All.value = "";
		form.Proposed_Housing.value = "";
		form.DTI_Total_Debt.value = "";
		form.DTI_Ratio.value = "";
		form.Net_Monthly_Savings.value = "";
		form.Net_Yearly_Savings.value = "";
		form.Positive_Equity_Gained.value = "";
		form.Negative_Equity_Eliminated.value ="";
		form.programMsg.value = "Please complete the principal reduction calculation form above and click on the calculate button to calculate your principal reduction.";
		
	}

