
String.prototype.replace = stringReplace;
function stringReplace(findText, replaceText) {
	var originalString = new String(this);
	var len = findText.length;
	var pos = 0;
	pos = originalString.indexOf(findText);
	while (pos != -1) {
		preString = originalString.substring(0,pos);
		postString = originalString.substring(pos+len, originalString.length);
		originalString = preString + replaceText + postString;
		pos = originalString.indexOf(findText);
	}
	return originalString;
}

function isBlank(data)
{
  if (data.length == 0)
      return 1;

  for (i = 0; i < (data.length); i++)
    {
      if (data.charAt(i) != " ")
        return 0;
    }

  return 1;
}

function calculate_affordability() 
{
    // alert("affordability");
	fm = document.affordabilityForm;

//Validations
  var message = new Array();
  var errorMsg = "";
  
  message[0] = "Please enter the Monthly Net Income.\n";
  message[1] = "The Monthly Net Income should be free of special\n characters or letters.\n";
  message[2] = "The Additional Monthly Income should be free of special\n characters or letters.\n";
  message[3] = "The Monthly Debt should be free of special\n characters or letters.\n";
  message[4] = "The Expected Down Payment should be free of special\n characters or letters.\n";
  message[5] = "Please enter the Interest Rate.\n";
  message[6] = "The Interest Rate should be free of special\n characters or letters.\n";
  
  if (isBlank(fm.in1.value) == 1)
	errorMsg = errorMsg + message[0];
  else if (isNaN(fm.in1.value) == true)
	errorMsg = errorMsg + message[1];
	
  if (isBlank(fm.in2.value) == 0 && isNaN(fm.in2.value) == true)
	errorMsg = errorMsg + message[2];

  if (isBlank(fm.in3.value) == 0 && isNaN(fm.in3.value) == true)
	errorMsg = errorMsg + message[3];

  if (isBlank(fm.in4.value) == 0 && isNaN(fm.in4.value) == true)
	errorMsg = errorMsg + message[4];

  if (isBlank(fm.in9.value) == 1)
	errorMsg = errorMsg + message[5];
  else if (isNaN(fm.in9.value) == true)
	errorMsg = errorMsg + message[6];

  if (errorMsg.length != 0)
  {
	alert("Before continuing, the following fields require attention:\n\n" + errorMsg);
	return false;
  }
//End of Validations


	var tempVar1 = new String(fm.in1.value);
	var tempVar2 = new String(fm.in2.value);
	var tempVar3 = new String(fm.in3.value);
	var tempVar4 = new String(fm.in4.value);
	var tempVar7 = new String("0");
	var tempVar9 = new String(fm.in9.value);

	tempVar1 = tempVar1.replace(",", "");
	tempVar2 = tempVar2.replace(",", "");
	tempVar3 = tempVar3.replace(",", "");
	tempVar4 = tempVar4.replace(",", "");
	tempVar7 = tempVar7.replace(",", "");
	tempVar9 = tempVar9.replace(",", "");

	var vin1 = new Number (tempVar1);
	var vin2 = new Number (tempVar2);
	var vin3 = new Number (tempVar3);
	var vin4 = new Number (tempVar4);
	var vin6 = new Number (.01);
	var vin7 = new Number ((tempVar7)/100);
	var vin8 = new Number (fm.in8.options[fm.in8.selectedIndex].value);
	var vin9 = new Number ((tempVar9)/100);

	var tmpay = 0;

	var a = (vin1.valueOf() + vin2.valueOf()) * 0.28;
	var b = (vin1.valueOf() + vin2.valueOf()) * 0.36 - vin3.valueOf();
	var tmpay = Math.min(a.valueOf(),b.valueOf());

 if (vin4.valueOf() >=0 && vin4.valueOf()<=15000) {
 var ltv = 0.95 ;
 } else if (vin4.valueOf() >=15001 && vin4.valueOf()<=30000) {
 var ltv = 0.90 ;
 } else if (vin4.valueOf() >=30001 && vin4.valueOf()<= 49999) {
 var ltv = 0.85 ;
 } else if (vin4.valueOf() >=50000) {
 var ltv = 0.80 ;
 }
 var lookup = 0;
 if (ltv == 0.95) {
  if (vin8==15) lookup = 0.0077;
  if (vin8==20) lookup = 0.0081;
  if (vin8==30) lookup = 0.0090;
 } else if (ltv == 0.90) {
  if (vin8==15) lookup = 0.0056;
  if (vin8==20) lookup = 0.0065;
  if (vin8==30) lookup = 0.0078;
 } else if (ltv == 0.85) {
  if (vin8==15) lookup = 0.0023;
  if (vin8==20) lookup = 0.0037;
  if (vin8==30) lookup = 0.0052;
 } else if (ltv == 0.80) {
 }

 var vout2 = 
  (  tmpay.valueOf() - (  vin4.valueOf() * ( (vin6.valueOf() + vin7.valueOf()) / 12 ) ) )
/
  (  (  (vin9.valueOf() / 12)
      / (  (1 - Math.pow((1 + (vin9.valueOf()/12)),-(vin8.valueOf() * 12)) ) )
     ) 
   + ( (vin7.valueOf() + vin6.valueOf() + lookup.valueOf())/12 )
  );

 if (vout2 < 0) {
 out1 = 0.00;
 out2 = 0.00;
 out3 = 0.00;
 out4 = 0.00;
 out5 = 0.00;
 out7 = 0.00;
 }
 else {
 var tmparr = vout2.valueOf().toString().split(".");
 if (tmparr[1] != null) {
  var tmpdec = tmparr[1].substring(0,2);
 } else {
  var tmpdec = "00";
 }
 if (tmparr[0].length < 4) {
  out2 = tmparr[0] + "." + tmpdec;
 } 
 if (tmparr[0].length == 4) {
  var tmpnum1 = tmparr[0].substring(0,1);
  var tmpnum2 = tmparr[0].substring(1,4);
  out2 = tmpnum1 + "," + tmpnum2 + "." + tmpdec;
 } 
 if (tmparr[0].length == 5) {
  var tmpnum1 = tmparr[0].substring(0,2);
  var tmpnum2 = tmparr[0].substring(2,5);
  out2 = tmpnum1 + "," + tmpnum2 + "." + tmpdec;
 } 
 if (tmparr[0].length == 6) {
  var tmpnum1 = tmparr[0].substring(0,3);
  var tmpnum2 = tmparr[0].substring(3,6);
  out2 = tmpnum1 + "," + tmpnum2 + "." + tmpdec;
 } 
 if (tmparr[0].length == 7) {
  var tmpnum1 = tmparr[0].substring(0,1);
  var tmpnum2 = tmparr[0].substring(1,4);
  var tmpnum3 = tmparr[0].substring(4,7);
  out2 = tmpnum1 + "," + tmpnum2 + "," + tmpnum3 + "." + tmpdec;
 } 
 if (tmparr[0].length == 8) {
  var tmpnum1 = tmparr[0].substring(0,2);
  var tmpnum2 = tmparr[0].substring(2,5);
  var tmpnum3 = tmparr[0].substring(5,8);
  out2 = tmpnum1 + "," + tmpnum2 + "," + tmpnum3 + "." + tmpdec;
 }
 vout1 = vout2.valueOf() + vin4.valueOf();
 var tmparr = vout1.valueOf().toString().split(".");
 if (tmparr[1] != null) {
  var tmpdec = tmparr[1].substring(0,2);
 } else {
  var tmpdec = "00";
 }
 if (tmparr[0].length < 4) {
  out1 = tmparr[0] + "." + tmpdec;
 } 
 if (tmparr[0].length == 4) {
  var tmpnum1 = tmparr[0].substring(0,1);
  var tmpnum2 = tmparr[0].substring(1,4);
  out1 = tmpnum1 + "," + tmpnum2 + "." + tmpdec;
 } 
 if (tmparr[0].length == 5) {
  var tmpnum1 = tmparr[0].substring(0,2);
  var tmpnum2 = tmparr[0].substring(2,5);
  out1 = tmpnum1 + "," + tmpnum2 + "." + tmpdec;
 } 
 if (tmparr[0].length == 6) {
  var tmpnum1 = tmparr[0].substring(0,3);
  var tmpnum2 = tmparr[0].substring(3,6);
  out1 = tmpnum1 + "," + tmpnum2 + "." + tmpdec;
 } 
 if (tmparr[0].length == 7) {
  var tmpnum1 = tmparr[0].substring(0,1);
  var tmpnum2 = tmparr[0].substring(1,4);
  var tmpnum3 = tmparr[0].substring(4,7);
  out1 = tmpnum1 + "," + tmpnum2 + "," + tmpnum3 + "." + tmpdec;
 } 
 if (tmparr[0].length == 8) {
  var tmpnum1 = tmparr[0].substring(0,2);
  var tmpnum2 = tmparr[0].substring(2,5);
  var tmpnum3 = tmparr[0].substring(5,8);
  out1 = tmpnum1 + "," + tmpnum2 + "," + tmpnum3 + "." + tmpdec;
 }
 var vout3 = vout2.valueOf() * ((vin9.valueOf()/12)/(1-Math.pow(1+(vin9.valueOf()/12),-(vin8.valueOf()*12))));
 var tmparr = vout3.valueOf().toString().split(".");
 if (tmparr[1] != null) {
  var tmpdec = tmparr[1].substring(0,2);
 } else {
  var tmpdec = "00";
 }
 if (tmparr[0].length < 4) {
  out3 = tmparr[0] + "." + tmpdec;
 } 
 if (tmparr[0].length == 4) {
  var tmpnum1 = tmparr[0].substring(0,1);
  var tmpnum2 = tmparr[0].substring(1,4);
  out3 = tmpnum1 + "," + tmpnum2 + "." + tmpdec;
 } 
 if (tmparr[0].length == 5) {
  var tmpnum1 = tmparr[0].substring(0,2);
  var tmpnum2 = tmparr[0].substring(2,5);
  out3 = tmpnum1 + "," + tmpnum2 + "." + tmpdec;
 } 
 if (tmparr[0].length == 6) {
  var tmpnum1 = tmparr[0].substring(0,3);
  var tmpnum2 = tmparr[0].substring(3,6);
  out3 = tmpnum1 + "," + tmpnum2 + "." + tmpdec;
 } 
 if (tmparr[0].length == 7) {
  var tmpnum1 = tmparr[0].substring(0,1);
  var tmpnum2 = tmparr[0].substring(1,4);
  var tmpnum3 = tmparr[0].substring(4,7);
  out3 = tmpnum1 + "," + tmpnum2 + "," + tmpnum3 + "." + tmpdec;
 } 
 if (tmparr[0].length == 8) {
  var tmpnum1 = tmparr[0].substring(0,2);
  var tmpnum2 = tmparr[0].substring(2,5);
  var tmpnum3 = tmparr[0].substring(5,8);
  out3 = tmpnum1 + "," + tmpnum2 + "," + tmpnum3 + "." + tmpdec;
 }
 var vout4 = vout2.valueOf() * (lookup.valueOf()/12);
 var tmparr = vout4.valueOf().toString().split(".");
 if (tmparr[1] != null) {
  var tmpdec = tmparr[1].substring(0,2);
 } else {
  var tmpdec = "00";
 }
 if (tmparr[0].length < 4) {
  out4 = tmparr[0] + "." + tmpdec;
 } 
 if (tmparr[0].length == 4) {
  var tmpnum1 = tmparr[0].substring(0,1);
  var tmpnum2 = tmparr[0].substring(1,4);
  out4 = tmpnum1 + "," + tmpnum2 + "." + tmpdec;
 } 
 if (tmparr[0].length == 5) {
  var tmpnum1 = tmparr[0].substring(0,2);
  var tmpnum2 = tmparr[0].substring(2,5);
  out4 = tmpnum1 + "," + tmpnum2 + "." + tmpdec;
 } 
 if (tmparr[0].length == 6) {
  var tmpnum1 = tmparr[0].substring(0,3);
  var tmpnum2 = tmparr[0].substring(3,6);
  out4 = tmpnum1 + "," + tmpnum2 + "." + tmpdec;
 } 
 if (tmparr[0].length == 7) {
  var tmpnum1 = tmparr[0].substring(0,1);
  var tmpnum2 = tmparr[0].substring(1,4);
  var tmpnum3 = tmparr[0].substring(4,7);
  out4 = tmpnum1 + "," + tmpnum2 + "," + tmpnum3 + "." + tmpdec;
 } 
 if (tmparr[0].length == 8) {
  var tmpnum1 = tmparr[0].substring(0,2);
  var tmpnum2 = tmparr[0].substring(2,5);
  var tmpnum3 = tmparr[0].substring(5,8);
  out4 = tmpnum1 + "," + tmpnum2 + "," + tmpnum3 + "." + tmpdec;
 }

 var vout5 = vout1.valueOf() * (vin6.valueOf()/12);

 var tmparr = vout5.valueOf().toString().split(".");
 if (tmparr[1] != null) {
  var tmpdec = tmparr[1].substring(0,2);
 } else {
  var tmpdec = "00";
 }
 if (tmparr[0].length < 4) {
  out5 = tmparr[0] + "." + tmpdec;
 } 
 if (tmparr[0].length == 4) {
  var tmpnum1 = tmparr[0].substring(0,1);
  var tmpnum2 = tmparr[0].substring(1,4);
  out5 = tmpnum1 + "," + tmpnum2 + "." + tmpdec;
 } 
 if (tmparr[0].length == 5) {
  var tmpnum1 = tmparr[0].substring(0,2);
  var tmpnum2 = tmparr[0].substring(2,5);
  fm.out5.value = tmpnum1 + "," + tmpnum2 + "." + tmpdec;
 } 
 if (tmparr[0].length == 6) {
  var tmpnum1 = tmparr[0].substring(0,3);
  var tmpnum2 = tmparr[0].substring(3,6);
  out5 = tmpnum1 + "," + tmpnum2 + "." + tmpdec;
 } 
 if (tmparr[0].length == 7) {
  var tmpnum1 = tmparr[0].substring(0,1);
  var tmpnum2 = tmparr[0].substring(1,4);
  var tmpnum3 = tmparr[0].substring(4,7);
  out5 = tmpnum1 + "," + tmpnum2 + "," + tmpnum3 + "." + tmpdec;
 } 
 if (tmparr[0].length == 8) {
  var tmpnum1 = tmparr[0].substring(0,2);
  var tmpnum2 = tmparr[0].substring(2,5);
  var tmpnum3 = tmparr[0].substring(5,8);
  out5 = tmpnum1 + "," + tmpnum2 + "," + tmpnum3 + "." + tmpdec;
 }

 var vout7 = vout3.valueOf() + vout4.valueOf() + vout5.valueOf();
 var tmparr = vout7.valueOf().toString().split(".");

 if (tmparr[1] != null) {
  var tmpdec = tmparr[1].substring(0,2);
 } else {
  var tmpdec = "00";
 }
 if (tmparr[0].length < 4) {
  out7 = tmparr[0] + "." + tmpdec;
 } 
 if (tmparr[0].length == 4) {
  var tmpnum1 = tmparr[0].substring(0,1);
  var tmpnum2 = tmparr[0].substring(1,4);
   out7 = tmpnum1 + "," + tmpnum2 + "." + tmpdec;
 } 
 if (tmparr[0].length == 5) {
  var tmpnum1 = tmparr[0].substring(0,2);
  var tmpnum2 = tmparr[0].substring(2,5);
  out7 = tmpnum1 + "," + tmpnum2 + "." + tmpdec;
 } 
 if (tmparr[0].length == 6) {
  var tmpnum1 = tmparr[0].substring(0,3);
  var tmpnum2 = tmparr[0].substring(3,6);
  out7 = tmpnum1 + "," + tmpnum2 + "." + tmpdec;
 } 
 if (tmparr[0].length == 7) {
  var tmpnum1 = tmparr[0].substring(0,1);
  var tmpnum2 = tmparr[0].substring(1,4);
  var tmpnum3 = tmparr[0].substring(4,7);
  out7 = tmpnum1 + "," + tmpnum2 + "," + tmpnum3 + "." + tmpdec;
 } 
 if (tmparr[0].length == 8) {
  var tmpnum1 = tmparr[0].substring(0,2);
  var tmpnum2 = tmparr[0].substring(2,5);
  var tmpnum3 = tmparr[0].substring(5,8);
  out7 = tmpnum1 + "," + tmpnum2 + "," + tmpnum3 + "." + tmpdec;
 }
 }
 
 var monthly_payment = vout7; //out7 + out5 + out4;  

 if (out7==0) {
    var drerror = "<p>Prior to performing calculations, this calculator verifies that your debt does not exceed 35% of your income. The amounts you entered exceed this debt-to-income ratio and therefore we are unable to present you with a maximum loan amount. Please check that you have not included housing costs in your monthly debts.</p>"
    document.getElementById('results').style.display="none";
    document.getElementById('instructions').innerHTML = drerror;
  document.getElementById('instructions').style.display="block";
 } else {

  document.getElementById('aff_property_value').innerHTML = '$' + out1;
  document.getElementById('max_mortgage').innerHTML = '$' + out2;
  
  document.getElementById('monthly_mortgage').innerHTML = '$' + out3;
  document.getElementById('taxes').innerHTML = '$' + out5;
  document.getElementById('pmi').innerHTML = '$' + out4;
  
  document.getElementById('monthly_payment').innerHTML = '$' + out7;

  document.getElementById('instructions').style.display="none";
  document.getElementById('results').style.display="block";
 }
  
 return false;
}

