﻿	function changeLocation(){
		if (document.cceForm.location.options[document.cceForm.location.selectedIndex].value){
			self.location.href=document.cceForm.location.options[document.cceForm.location.selectedIndex].value;
		}
	}
    function Calculation(LA,IR,TY,Tax1,Tax2)
    {
	    var AVH = removeCommas(document.cceForm.AVH.value);
	    var LA = removeCommas(document.cceForm.LA.value);
	    var TY = removeCommas(document.cceForm.TY.value);
	    var IR = removeCommas(document.cceForm.IR.value);
	    var Tax1 = removeCommas(document.cceForm.PT.value);
	    var Tax2 = removeCommas(document.cceForm.HI.value);

	    if ( (checkAV(AVH)) || (checkLA(LA)) || (checkTY(TY)) || (checkIR(IR)) || (checkPT(Tax1)) || (checkHI(Tax2))) document.location = "#edit"; 
	    else if (checkLesser(LA, AVH, "The Loan Amount", "the Appraised Value"))  document.location = "#edit";
            else
	         {
                   
	           var calc2 = new Calculate2(AVH,LA,TY,IR,Tax1,Tax2);
               
  	           document.result.PI.value= addCommas( calc2.PI.toString() );
	           document.result.MI.value= addCommas( calc2.MoI.toString() );
	           document.result.TI.value= addCommas( calc2.TT.toString() );
	           document.result.TMP.value= addCommas( calc2.TMP.toString() );
	           ShowDiv(getObj('resultsDiv'));
	          }
	    setCommas();
	
    }
function calPI(LA,IR,TY)
{
if (IR < .0001)
  {
    PI = LA/(TY*12);
  }
else
  {
    PI = (LA* ((IR/12)/100) / (1 -(Math.pow((1+((IR/12)/100)),(-(TY*12))))))
  }
return PI;
}

function calMoI( LA, TY, AVH ){
	//alert( "LA " + LA );
	var PMI=0;
	//var TY = parseFloat(TY);
	//var AVH = parseFloat(AVH);
	//var LA = parseFloat(LA);
    LTV= (Math.round(((LA/AVH)*10000000000))/100000000);
	//return 100;
	if(TY<=15)
	{
		if (LTV <= 80.00)
		{
			PMI = 0;
		}
		else if (LTV <= 85.00)
		{
			PMI = .16;
		}
		else if (LTV <= 90.00)
		{
			PMI = .23;
		}
		else if (LTV <= 95.00)
		{
			PMI = .56;
		}
		else
		{
			PMI = .85;
		}
	}
	else 
	{
		if (LTV <= 80.00)
		{
			PMI = 0;
		}
		else if (LTV <= 85.00)
		{
			PMI = .32;
		}
		else if (LTV <= 90.00)
		{
			PMI = .52;
		}
		else if (LTV <= 95.00)
		{
			PMI = .78;
		}
		else 
		{
			PMI = .96;
		}
	}
	//alert( "LA " + isNaN( LA ) + "\nPMI " + isNaN( PMI ) );
	
	MOI=(((LA*PMI)/12)/100)
	MOI=Math.round(MOI);
	return MOI;
}

function calTMP(PI,TT,MOI)
{
	/*var PI = parseFloat(PI);
	var TT = parseFloat(TT);
	var MOI = parseFloat(MOI);*/
	
	TMP = PI+TT+MOI;
	return TMP;
}

function calTT(PI,PT,HI)
{
	//alert( "PI = " + PI );
	if(PI !=0 )
	{
		TT = ((PT/12)+(HI/12));
	}
	else 
	{
		TT = 0;
	}
	return TT;
}

function calPIFromTMP(TMP,TT,MoI)
{
	if(TMP != 0)
	{
		PI = TMP - (TT+MoI);
	}
	else
	{
		PI=0;
	}
	PI = Math.round(PI);
	return PI;
}

function calPM(PI,IR,TY)
{
	if(IR!=0)
		IR = IR/100;
		i=(1+IR);
		j=i;
		if(TY!=0) 
		{
			for(y=1; y<TY; y++)
			{
				j=i*j;	
			}
			PM = (((PI*12)*(1-(1/j)))/IR);
			if (isNaN(PM))
			{
				PM = 0;
			}	
		}
	else
	{
		PM=0;
	}
	PM = Math.round(PM);
	return PM;
}

function calLA(PM,IR,TY,DP)
{
    	if(TY!=0 && IR!=0)
	{
		LA = (PM-DP);
	}
	else
	{
		LA = 0;
	}
	Math.round(LA);
	return LA;
}

function calTTS(LA,IR,TY,SFTR)
                 
{
	TIP = calTIP(LA,TY,IR);
	TTS = ((TIP) * (SFTR/100));
	return TTS;
	}
function calATSI(LA,IR,TY,SFTR)
                 
{
	
	TTS = calTTS(LA,IR,TY,SFTR);
	ATSI = (TTS / TY);
	ATSI = Math.round(ATSI);
	return ATSI;
        	
}
function calATSD(LA,DP,TY,SFTR)
                 
{
	ATSD = (((LA * DP/100) * (SFTR/100))/TY);
	return ATSD;
}
function calATSP(YPT,SFTR)
                 
{
	ATSP = ((YPT) * (SFTR/100));
	return ATSP;
}

function calTATS(LA,IR,TY,SFTR,DP,YPT)
{
	ATSI = calATSI(LA,IR,TY,SFTR);
	ATSD = calATSD(LA,DP,TY,SFTR);
	ATSP = calATSP(YPT,SFTR);
	TATS = ATSI + ATSD + ATSP;		
	TATS = Math.round(TATS);
             	if(isNaN(TATS))
		{
			TATS=0;
			TATS = parseInt(TATS);
		}
        return TATS;	

}

function calTIP(LA,TY,IR)
{
	if((LA!=0) && (IR!=0) && (TY!=0))
	{
		TIP = 0;
		PI = calPI(LA,IR,TY);
		IP = 0;
		MoN = (TY*12);
		for(i=0; i<=MoN; i++)
		{
			IP = ((LA*IR)/(100*12));
			TIP = parseFloat(TIP);
			IP = parseFloat(IP);
			PI = parseFloat(PI);
			LA = parseFloat(LA);
			TIP= (TIP + IP);
			PA = (PI - IP);
			LA = (LA - PA);
		}	
	}
	else
	{
		TIP=0;
	}
		return TIP;
}

function calPIFromLA(LA,IR,TY)
{
		LA1 = (LA * .083333);
		TY = parseFloat(TY);		
		PI = ((LA1 / TY)*12);
		return PI;
}

function calLAFromDP(DPAY,PP)
{
	DPAY = parseInt(DPAY);	
	PP = parseInt(PP);	
	LA = (PP - DPAY);
	LA = Math.round(LA);
       	 return LA;	
}

function calPD(DPAY,PP)
{
	DP = ((DPAY * 100)/PP);
	DP = Math.round(DP);
	return DP;	
}

function calNetCost(IR,LA,TY,DP,OF,OLC,SFT,PP,PT,HI,TYS)
{
	ITF = (SFT/100);
	IRm=((IR/12)/100);
	TYm=(TY*12);
	MOI=calMoI(LA,TY,PP);
	TYSm=(TYS*12);					
	PTm=(PT/12);
	HIm=(HI/12);
	PNT=((LA*DP)/100);
	FEE=((LA*OF)/100);
	PP=parseFloat(PP);
	LA=parseFloat(LA);
	DPAY=(PP-LA);
	DPAY=parseFloat(DPAY);
	FEE=parseFloat(FEE);
	PNT=parseFloat(PNT);
	OLC=parseFloat(OLC);
	TYm=parseFloat(TYm);
	TYSm=parseFloat(TYSm);
	TF=(1-(Math.pow((1+IRm),(-TYm))));
	MTSF=(1-(Math.pow((1+IRm),(TYSm-TYm))));
	PI = ((LA*IRm)/TF);
	PTm=parseFloat(PTm);
	HIm=parseFloat(HIm);
	TI = (PTm+HIm);
	TMP=(PI+TI+MOI);			
	TC=(DPAY+PNT+FEE+OLC+(TMP*TYSm));
	IP = (LA * (((TYSm * IRm)/TF)+((MTSF/TF)- 1)));
	BEN = (ITF *(PNT+IP+(TYSm * PTm)));
	RP = (LA - ((PI*TYSm)-IP));
	BEN1 = (BEN + (PP-RP));
	NC=(TC-BEN1);
 	NC=Math.round(NC);
	return NC;
}
function calCostDifference(NC1,NC2)
{
	var NETC1=NC1;
	var NETC2=NC2;

	if (NETC1>NETC2) var COD = (NETC1 - NETC2);
	else  var COD=(NETC2-NETC1);	
	return COD;
}


function calTC(LA,DP,OF,OLC)
{
	if(LA!=0)
	{
		TC=(((LA*DP)/100) + ((LA*OF)/100) + ((OLC*100)/100));
	}
	else 
	{
		TC=0;
	}
	TC = Math.round(TC);
	return TC;
}

function calCS(TMPL,TMP,SR,TYS,TC,TCL)
{
	var CS = 0;
	if(TMPL>TMP)
	{
		V = ((TMP - TMPL)/(10*12));
		SR = SR/100;
		SR = SR/12;
		i=(1+SR);
		j=i;
		TYS = TYS*12;
		if(TYS!=0) 
		{
			for(y=1; y<TYS; y++)
			{
				j=i*j;	
			}
			ASC = ((V*(j-1))/SR);
			if(TCL>TC)
			{
				X = (TCL - TC);
			}
			else if(TC>TCL)
			{
				X = (TC - TCL);
			}
			else 
			{
				X=0;
			}
			CS = (X + ASC);
		}
	}
	else if(TMP>TMPL)
	{
		V = ((TMP - TMPL)/(10*12));
		SR = SR/100;
		SR = SR/12
		i=(1+SR);
		j=i;
		TYS = TYS*12;
		if(TYS!=0) 
		{
			for(y=1; y<TYS; y++)
			{
				j=i*j;	
			}
			ASC = ((V*(j-1))/SR);
			if(TCL>TC)
			{
				X = (TCL - TC);
			}
			else if(TC>TCL)
			{
				X = (TC - TCL);
			}
			else 
			{
				X=0;
			}
			CS = (X + ASC);
		}
	}
	else
	{
		if(TCL>TC)
		{
			X = (TCL - TC);
		}
		else if(TC>TCL)
		{
			X = (TC - TCL);
		}
		else 
		{
			X=0;
		}
		CS = X; 
	}
	CS = Math.round(CS);
	return CS;		
}
function CalSC(TP,TP1,LA,IR,TY,PT,HI,SR,YBYS,TSC)
{
	SC = 0;
	if (TP1>TP)
	{
	PD = (TP1 - TP) 
	AMS = (PD/(YBYS * 12));
	SC = (AMS*((((1 + (SR/100))*YBYS)-1)/(SR/100)))
	}
	else if(TP>TP1) 	
	{
	PD = (TP - TP1) 
	AMS = (PD/(YBYS * 12));
	SC = (AMS*((((1 + (SR/100))*YBYS)-1)/(SR/100)))
	}
	return SC;
}

function calCostSave(TC1,TC2,LA,IR,TY,PT,HI,SR,YBYS,TSC)
{
	TCS = 0;
	if (TC1>TC2)
	{
	CD = (TC1 - TC2) 
	SC  = TSC;//CalSC(TP,TP1,LA,IR,TY,PT,HI,SR,YBYS);
	TCS = (SC + CD)
	}
	else if(TC2>TC1) 	
	{
	CD = (TC2 - TC1) 
	SC  = TSC;//CalSC(TP,TP1,LA,IR,TY,PT,HI,SR,YBYS);
	TCS = (SC - CD)
	}
	return TCS;
}
function calRLA(OLA,IR,OTY,YAP)
{
	if((OLA!=0) && (IR!=0) && (OTY!=0))
	{
		YRS=0;
		PI = calPI(OLA,IR,OTY);
		IR=(IR/100);
		IR=(IR/12);
		YAP =(12*YAP);
		RLA = OLA;
		while(YRS<=YAP)
		{
			MI = (RLA*IR);
			TA = (PI-MI);
			RLA = (RLA-TA);
			YRS++;
		}
		
	}
	else
	{
		RLA=0;
	}
	
	return RLA;
}

function setCommas(){
	for(var i = 0; i < document.cceForm.elements.length; i++){
		var tmpNum = document.cceForm.elements[i].value;
		tmpNum = removeCommas( tmpNum );
		tmpNum = addCommas( tmpNum );
		document.cceForm.elements[i].value = tmpNum;
	}
	for(var n = 0; n < document.result.elements.length; n++){
		//alert( document.result.elements[i].type );
		var tmpNum = document.result.elements[n].value;
		tmpNum = removeCommas( tmpNum );
		tmpNum = addCommas( tmpNum );
		document.result.elements[n].value = tmpNum;
	}
}

function setComma( whichField ){
	var tmp = removeCommas( whichField.value );
	whichField.value = addCommas( tmp );
}

function removeCommas( strValue ) {
  var objRegExp = /,/g; 
  return strValue.replace(objRegExp,'');
}


function addCommas( strValue ) {
  var objRegExp  = new RegExp('(-?[0-9]+)([0-9]{3})'); 
    while(objRegExp.test(strValue)) {
       strValue = strValue.replace(objRegExp, '$1,$2');
    }
  return strValue;
}

function formatLA( whichField ){
	if( !checkLA( whichField.value ) ){
		var myValue = whichField.value;
		myValue = addCommas( myValue );
		whichField.value = myValue
	}
}

function formatTY( whichField ){
	if( !checkTY( whichField.value ) ){
		var myValue = whichField.value;
		myValue = addCommas( myValue );
		whichField.value = myValue
	}
}

function formatYAP( whichField, OTField ){
	if( !checkYAP( whichField.value, OTField.value, "the Origianl Loan Term" ) ){
		var myValue = whichField.value;
		myValue = addCommas( myValue );
		whichField.value = myValue
	}
}

function formatDP( whichField ){
	if( !checkDP( whichField.value ) ){
		var myValue = whichField.value;
		myValue = addCommas( myValue );
		whichField.value = myValue
	}
}

function formatOF( whichField ){
	if( !checkOF( whichField.value ) ){
		var myValue = whichField.value;
		myValue = addCommas( myValue );
		whichField.value = myValue
	}
}

function formatOLC( whichField ){
	if( !checkOLC( whichField.value ) ){
		var myValue = whichField.value;
		myValue = addCommas( myValue );
		whichField.value = myValue
	}
}

function formatIR( whichField ){
	if( !checkIR( whichField.value ) ){
		var myValue = whichField.value;
		myValue = addCommas( myValue );
		whichField.value = myValue
	}
}

function formatAV( whichField ){
	if( !checkAV( whichField.value ) ){
		var myValue = whichField.value;
		myValue = addCommas( myValue );
		whichField.value = myValue
	}
}

function formatPT( whichField ){
	if( !checkPT( whichField.value ) ){
		var myValue = whichField.value;
		myValue = addCommas( myValue );
		whichField.value = myValue
	}
}

function formatHI( whichField ){
	if( !checkHI( whichField.value ) ){
		var myValue = whichField.value;
		myValue = addCommas( myValue );
		whichField.value = myValue
	}
}

function formatSFTR( whichField ){
	if( !checkSFTR( whichField.value ) ){
		var myValue = whichField.value;
		myValue = addCommas( myValue );
		whichField.value = myValue
	}
}

function formatYBYSspecial( whichField ){
	if( !checkYBYSspecial( whichField.value ) ){
		var myValue = whichField.value;
		myValue = addCommas( myValue );
		whichField.value = myValue
	}
}

function formatMR( whichField ){
	if( !checkMR( whichField.value ) ){
		var myValue = whichField.value;
		myValue = addCommas( myValue );
		whichField.value = myValue
	}
}

function formatMRI( whichField ){
	if( !checkMRI( whichField.value ) ){
		var myValue = whichField.value;
		myValue = addCommas( myValue );
		whichField.value = myValue
	}
}

function formatAIR( whichField ){
	if( !checkAIR( whichField.value ) ){
		var myValue = whichField.value;
		myValue = addCommas( myValue );
		whichField.value = myValue
	}
}

function formatPP( whichField ){
	if( !checkPP( whichField.value ) ){
		var myValue = whichField.value;
		myValue = addCommas( myValue );
		whichField.value = myValue
	}
}

function formatHAR( whichField ){
	if( !checkHAR( whichField.value ) ){
		var myValue = whichField.value;
		myValue = addCommas( myValue );
		whichField.value = myValue
	}
}

function formatYBYS( whichField, TYField ){
	if( !checkYBYS( whichField.value, TYField.value, "Term in Years" ) ){
		var myValue = whichField.value;
		myValue = addCommas( myValue );
		whichField.value = myValue
	}
}

function formatYM( whichField ){
	if( !checkYM( whichField.value ) ){
		var myValue = whichField.value;
		myValue = addCommas( myValue );
		whichField.value = myValue
	}
}

function formatSC( whichField ){
	if( !checkSC( whichField.value ) ){
		var myValue = whichField.value;
		myValue = addCommas( myValue );
		whichField.value = myValue
	}
}

function formatMEP( whichField ){
	if( !checkMEP( whichField.value ) ){
		var myValue = whichField.value;
		myValue = addCommas( myValue );
		whichField.value = myValue
	}
}

function formatAMP( whichField ){
	if( !checkAMP( whichField.value ) ){
		var myValue = whichField.value;
		myValue = addCommas( myValue );
		whichField.value = myValue
	}
}

function formatTMP( whichField ){
	if( !checkTMP( whichField.value ) ){
		var myValue = whichField.value;
		myValue = addCommas( myValue );
		whichField.value = myValue
	}
}

function formatDPT( whichField ){
	if( !checkDPT( whichField.value ) ){
		var myValue = whichField.value;
		myValue = addCommas( myValue );
		whichField.value = myValue
	}
}

/*
This script is used to check the validity of all user entries. 
*/

function isDigit (c)
{   return ((c >= "0") && (c <= "9"))
}

function isEmpty (s)
{   return ((s == null) || (s.length == 0))
}

function isFloat (s)

{   var i;
    var seenDecimalPoint = false;
    var decimalPointDelimiter = ".";

    if (isEmpty(s)) 
       if (isFloat.arguments.length == 1) return false;
       else return (isFloat.arguments[1] == true);

    if (s == decimalPointDelimiter) return false;

    // Search through string's characters one by one
    // until we find a non-numeric character.
    // When we do, return false; if we don't, return true.

    for (i = 0; i < s.length; i++)
    {   
        // Check that current character is number.
        var c = s.charAt(i);

        if ((c == decimalPointDelimiter) && !seenDecimalPoint) seenDecimalPoint = true;
        else if (!isDigit(c)) return false;
    }

    // All characters are numbers.
    return true;
}

function isInteger (s)
{   var i;

    if (isEmpty(s)) 
       if (isInteger.arguments.length == 1) return true;
       else return (isInteger.arguments[1] == true);

    // Search through string's characters one by one
    // until we find a non-numeric character.
    // When we do, return false; if we don't, return true.

    for (i = 0; i < s.length; i++)
    {   
        // Check that current character is number.
        var c = s.charAt(i);

        if (!isDigit(c)) return false;
    }

    // All characters are numbers.
    return true;
}

function checkChar (s)
{
    if (isFloat(s)) return false;
    else
      {
	if (isEmpty(s)) alert("Please enter values for all fields.");
	else alert("There should be no letters, or other special characters entered in the spaces provided.");
        return true;
      }      
}

function checkBounds (s, floor, ceiling, errormsg)
{
	if (checkChar(s)) return true;
	else
	{
	   var svalue = parseFloat(s);
	   var floor = parseFloat(floor);
	   var ceiling = parseFloat(ceiling);
	   if ((svalue < floor) || (svalue > ceiling))
	      {
		alert("Please fix the following error:  " + errormsg);
		return true;
	      }
	   else return false;
	}
}

function checkLA (s)
{	if (isInteger(s))
	   {
	     var floor = 1000;
	     var ceiling = 50000000;
	     var errormsg = "Loan Amount must be a number between $1,000 and $50,000,000.";
	     return checkBounds(s, floor, ceiling, errormsg);
	   }
	else
	   {
             alert("Please fix the following error:  Loan Amount must be a whole number and there should be no letters, or special characters entered in the spaces provided.");
             return true;
           }

}

function checkPP (s)
{	if (isInteger(s))
	   {
	     var floor = 1000;
	     var ceiling = 50000000;
	     var errormsg = "Purchase Price must be a number between $1,000 and $50,000,000.";
	     return checkBounds(s, floor, ceiling, errormsg);
	   }
        else
           {
             alert("Please fix the following error:  Purchase Price must be a whole number and there should be no letters, or special characters entered in the spaces provided.");
             return true;
           }

}

function checkTY (s)
{	
	var floor = 1
	var ceiling = 40;
	var errormsg = "Term in Years must be a number between 1 and 40.";
	return checkBounds(s, floor, ceiling, errormsg);
}

function checkYAP (s, maxvalue, maxname)
{	if (isInteger(s))
          {
	    var YAP = parseInt(s);
	    var maxvalue = parseInt(maxvalue);
	    if (YAP >= maxvalue)
	      {
		alert("Please fix the following error:  Years Already Paid must be less than " + maxname + ".");
		return true;
	      }
	    else
	      {
		var floor = 0;
		var ceiling = 30;
		var errormsg = "Years Already Paid must be a number between 0 and 30.";
		return checkBounds(s, floor, ceiling, errormsg);
              }
	   }
         else
           {
	     alert("Please fix the following error:  Years Already Paid must be a whole number and there should be no letters, or special characters entered in the spaces provided.");
             return true;
           }
}

function checkIR (s)
{	
	var floor = 1;
	var ceiling = 30;
	var errormsg = "Interest Rate must be a number between 1% and 30%. ";
	return checkBounds(s, floor, ceiling, errormsg);
}

function checkDP (s)
{	
	var floor = 0;
	var ceiling = 20;
	var errormsg = "Discount Points must be a number between 0% and 20%.";
	return checkBounds(s, floor, ceiling, errormsg);
}

function checkOF (s)
{	
	var floor = 0;
	var ceiling = 10;
	var errormsg = "Origination Fee must be a number between 0% and 10%.";
	return checkBounds(s, floor, ceiling, errormsg);
}

function checkOLC (s)
{	
	var floor = 0;
	var ceiling = 100000;
	var errormsg = "Other Loan Costs must be a number between $0 and $100,000.";
	return checkBounds(s, floor, ceiling, errormsg);
}

function checkAV (s)
{	if (isInteger(s))
	   {
	     var floor = 1000;
	     var ceiling = 50000000;
	     var errormsg = "Appraised Value must be a number between $1,000 and $50,000,000.";
	     return checkBounds(s, floor, ceiling, errormsg);
	   }
        else
           {
             alert("Please fix the following error:  Appraised Value must be a whole number and there should be no letters, or special characters entered in the spaces provided.");
             return true;
           }
}

function checkPT (s)
{	
	var floor = 0;
	var ceiling = 5000000;
	var errormsg = "Yearly property tax must be a number between $0 and $5,000,000.";
	return checkBounds(s, floor, ceiling, errormsg);
}

function checkHI (s)
{	
	var floor = 0;
	var ceiling = 100000;
	var errormsg = "Yearly property insurance must be a number between $0 and $100,000.";
	return checkBounds(s, floor, ceiling, errormsg);
}

function checkSFTR (s)
{	
	var floor = 0;
	var ceiling = 80;
	var errormsg = "Your State and Federal Tax Rate must be a number between 0% and 80%.";
	return checkBounds(s, floor, ceiling, errormsg);
}

function checkYBYSspecial (s)
{	if (isInteger(s))
	  { 
	    var floor = 1;
	    var ceiling = 40;
	    var errormsg = "Years Before You Sell or Pay Off Loan must be a number between 1 and 40.";
	    return checkBounds(s, floor, ceiling, errormsg);
	  }
	else
	  {
            alert("Please fix the following error:  Years Before You Sell or Pay Off Loan must be a whole number and there should be no letters, or special characters entered in the spaces provided.");
            return true;
          }
}

function checkYBYS (s, maxvalue, maxname)
{	if (isInteger(s))
          {
            var YBYS = parseInt(s);
            var maxvalue = parseInt(maxvalue);
            if (YBYS > maxvalue)
              {
                 alert("Please fix the following error:  Years Before Loan is Paid Off cannot be greater than " + maxname +".");
                 return true;
              }
  	    else
	      {
 	        var floor = 1;
	        var ceiling = 40;
	        var errormsg = "Years Before You Sell or Pay Off Loan must be a number between 1 and 40.";
	        return checkBounds(s, floor, ceiling, errormsg);
              }
	  }
        else
          {
            alert("Please fix the following error:  Years Before You Sell or Pay Off Loan must be a whole number and there should be no letters, or special characters entered in the spaces provided."); 
            return true;
          }
}

function checkMR (s)
{	
	var floor = 0;
	var ceiling = 100000;
	var errormsg = "Monthly Rent must be a number between $0 and $100,000.";
	return checkBounds(s, floor, ceiling, errormsg);
}

function checkMRI (s)
{	
	var floor = 0;
	var ceiling = 10000;
	var errormsg = "Monthy Renter's Insurance must be a number between $0 and $10,000.";
	return checkBounds(s, floor, ceiling, errormsg);
}

function checkAIR (s)
{	
	var floor = 0;
	var ceiling = 100;
	var errormsg = "Annual Rent Increase must be a number between 0% and 100%. ";
	return checkBounds(s, floor, ceiling, errormsg);
}

function checkHAR (s)
{	
	var floor = 0;
	var ceiling = 100;
	var errormsg = "House's Annual Appreciation Rate must be a number between 0% and 100%. ";
	return checkBounds(s, floor, ceiling, errormsg);
}

function checkYM (s)
{	
	var floor = 0;
	var ceiling = 1000000;
	var errormsg = "Yearly Maintenance must be a number between $0 and $1,000,000. ";
	return checkBounds(s, floor, ceiling, errormsg);
}

function checkSC (s)
{	
	var floor = 0;
	var ceiling = 20;
	var errormsg = "Selling Costs must be a number between 0% and 20%.";
	return checkBounds(s, floor, ceiling, errormsg);
}

function checkTMP (s)
{	
	var floor = 1;
	var ceiling = 10000000;
	var errormsg = "Total Monthly Payment must be a number between $1 and $10,000,000.";
	return checkBounds(s, floor, ceiling, errormsg);
}

function checkDPT (s)
{	
	var floor = 0;
	var ceiling = 50000000;
	var errormsg = "Down Payment must be a number between $0 and $50,000,000.";
	return checkBounds(s, floor, ceiling, errormsg);
}


function checkMEP (s)
{	if (isInteger(s))
          {
	    var floor = 1;
	    var ceiling = 360;
	    var errormsg = "Months Until You Start Extra Payments must be number between 1 and 360.";
	    return checkBounds(s, floor, ceiling, errormsg); 
	  }
        else
          {
            alert("Please fix the following error:  Months Until You Start Extra Payments must be a whole number and there should be no letters, or special characters entered in the spaces provided.");
            return true;
          }
}

function checkAMP (s)
{	
	var floor = 0;
	var ceiling = 10000;
	var errormsg = "Additional Monthly Payment must be number between $0 and $10,000.";
	return checkBounds(s, floor, ceiling, errormsg);
}

function checkLesser (lowernum, highernum, lowername, highername)
{	var lowernum = parseFloat(lowernum);
	var highernum = parseFloat(highernum);
	if (highernum < lowernum) 
	  {
	    alert("Please fix the following error:  " + lowername + " cannot be greater than " + highername + ".");
	    return true;
	  }
	else return false;
}

function checkFirstAdjMonth (s)
{
	var floor = 1;
	var ceiling = 360;
	var errormsg = "Months Before First Adjustment must be a number between 1 and 360.";
	return checkBounds(s, floor, ceiling, errormsg);
}

function checkMaxRate(s)
{
	var floor = 1;
	var ceiling = 30;
	var errormsg = "Maximum Interest Rate must be a number between 1% and 30%.";
	return checkBounds(s, floor, ceiling, errormsg);
}

function checkMargin(s)
{
	var floor = 0;
	var ceiling = 10;
	var errormsg = "Margin must be a number between 0% and 10%.";
	return checkBounds(s, floor, ceiling, errormsg);
}

function checkInitialIndexRate(s)
{
	var floor = 1;
	var ceiling = 30;
	var errormsg = "Initial Index Rate must be a number between 1% and 30%.";
	return checkBounds(s, floor, ceiling, errormsg);
}

function checkIndexRateChange(s)
{
	var floor = 1;
	var ceiling = 10;
	var errormsg = "Index Rate Change per Adjustment must be a number between 1 and 360.";
	return checkBounds(s, floor, ceiling, errormsg);
}

function checkMonthsBetweenIndexAdj(s)
{
	var floor = 1;
	var ceiling = 360;
	var errormsg = "Months Between Index Adjustments must be a number between 1 and 360.";
	return checkBounds(s, floor, ceiling, errormsg);
}
/*
Short Terms.. 
Loan Amount=LA
Appraised Value of the Home=AVH
Term in Years=TY   
Yearly Property Taxes=Tax1   
Yearly Homeowner's Insurance=Tax2   
Interest Rate=IR 
Principal and Interest=PI   
Taxes and Insurance=TT   
Mortgage Insurance=MoI   
Total Monthly Payment=TMP  
*/
function Calculate2(AVH,LA,TY,IR,Tax1,Tax2)
{
	this.TT = calTT(LA,Tax1,Tax2);
	this.PI = calPI(LA,IR,TY);
	this.MoI = calMoI(LA,TY,AVH);
	this.TMP = calTMP(this.PI,this.TT,this.MoI);
	this.TT = Math.round(this.TT);
	this.PI = Math.round(this.PI);
	this.MoI = Math.round(this.MoI);
	this.TMP = Math.round(this.TMP);
	return this;
}

function getObj(elementID)
  {
	return document.getElementById(elementID);
  }
function ShowDiv(objDiv)
        {
            if(objDiv != null)
            {
                objDiv.style.visibility = "visible";
                objDiv.style.display = "inline";
            }
            return(false);
        }
