function ErrorAlert(objField,sText)
{
    objField.select();
    alert(sText);
    return false;
}

function GetMonthlyValues(totalAmount, Number_Months)
{
    var aROI=new Array(0.00869,0.00793,0.00716,0.00639);
    var aPayment=new Array();
    var selectedAmt=0;
    var vAPR="";
    var posDecimal=0;
    var vPayment="";
    
    for (var i=0;i<5;i++)
    {
        aPayment[i]=(totalAmount * ( 1-( Math.pow((1 / (aROI[i] + 1)),(Number_Months)) ) ) / aROI[i]) + 0.005;
    }
    
    for (var c=0;c<5;c++)
    {
        if (aPayment[c]>=5000 && aPayment[c]<14999)
        {
            vAPR="10.9";
            selectedAmt=aPayment[0];
            break;
        }
        else if (aPayment[c]>=15000 && aPayment[c]<24999)
        {
            vAPR="9.9";
            selectedAmt=aPayment[1];
            break;
        }
        else if (aPayment[c]>=25000 && aPayment[c]<34999)
        {
            vAPR="8.9";
            selectedAmt=aPayment[2];
            break;
        }
        else if (aPayment[c]>=35000) 
        {
            vAPR="7.9";
            selectedAmt=aPayment[3];
            break;
        }
    }

    vPayment=String(selectedAmt);
    posDecimal=vPayment.indexOf(".");

    if (vPayment.charAt(posDecimal+2)=="") vPayment+="0";
    vPayment=vPayment.substring(0,posDecimal+3);

    return new Array(vPayment,vAPR);
     
   
}

function populateAPR() {


var f=document.frmCalc;

//get loan amount
var vLoanAmount= eval(removeCommas(f.Total_Loan.value));

		if (vLoanAmount<3000)
        {
            //null all options
	    for (s = f.APR.options.length; s >= 1; s--)
	    {	f.APR.options[s] = null;
	    f.APR.options[0] = new Option ("Select");
	    f.APR.options[0].value = "";}
	    }
		
		if (vLoanAmount>=3000 && vLoanAmount<9999)
        {
            //null all options
	    for (s = f.APR.options.length; s >= 1; s--)
	    {	f.APR.options[s] = null;}
	    
	    f.APR.options[0] = new Option ("9.9%");
	    f.APR.options[0].value = "0.00793";
	    f.APR.options[1] = new Option ("10.9%");
	    f.APR.options[1].value = "0.00869";
	    f.APR.options[2] = new Option ("11.9%");
	    f.APR.options[2].value = "0.00945";
	    f.APR.options[3] = new Option ("12.7%");
	    f.APR.options[3].value = "0.01001";
	    f.APR.options[4] = new Option ("16.9%");
	    f.APR.options[4].value = "0.01310";
	    f.APR.options[5] = new Option ("19.9%");
	    f.APR.options[5].value = "0.01521";
        }
        else if (vLoanAmount>=10000 && vLoanAmount<24999)
        {
            //null all options
	    	    for (s = f.APR.options.length; s >= 1; s--)
	    	    {	f.APR.options[s] = null;}
	    
	    f.APR.options[0] = new Option ("8.9%");
	    f.APR.options[0].value = "0.00716";	    
	    f.APR.options[1] = new Option ("9.9%");
	    f.APR.options[1].value = "0.00793";
	    f.APR.options[2] = new Option ("10.9%");
	    f.APR.options[2].value = "0.00869";
	    f.APR.options[3] = new Option ("12.7%");
	    f.APR.options[3].value = "0.01001";
	    f.APR.options[4] = new Option ("16.9%");
	    f.APR.options[4].value = "0.01310";
	    f.APR.options[5] = new Option ("19.9%");
	    f.APR.options[5].value = "0.01521";
        }
		
		else if (vLoanAmount>=25000 && vLoanAmount<100001)
        {
            //null all options
	    	    for (s = f.APR.options.length; s >= 1; s--)
	    	    {	f.APR.options[s] = null;}
	    
	    f.APR.options[0] = new Option ("7.4%");
	    f.APR.options[0].value = "0.00597";	    
		f.APR.options[1] = new Option ("8.9%");
	    f.APR.options[1].value = "0.00716";
	    f.APR.options[2] = new Option ("9.9%");
	    f.APR.options[2].value = "0.00793";
	    f.APR.options[3] = new Option ("10.9%");
	    f.APR.options[3].value = "0.00869";
	    f.APR.options[4] = new Option ("12.7%");
	    f.APR.options[4].value = "0.01001";
	    f.APR.options[5] = new Option ("13.9%");
	    f.APR.options[5].value = "0.01094";
	    f.APR.options[6] = new Option ("19.9%");
	    f.APR.options[6].value = "0.01521";
        }
        

}


function GetMonthlyAmountFromLoanAmount(loanAmt, outstandingAmt, Number_Months, ppType,roi,apr)
{
     
    var aPayment=new Array();
    var selectedAmt=0;
    var posDecimal=0;
    var vPayment="";
    
    roi= eval(roi);
    
    if (outstandingAmt==null) outstandingAmt=loanAmt;

    vPayment=String((outstandingAmt/((1-Math.pow(1/(1+roi),(Number_Months)))/roi))+0.005);
    
    posDecimal=vPayment.indexOf(".");

    if (vPayment.charAt(posDecimal+2)=="") vPayment+="0";
    vPayment=vPayment.substring(0,posDecimal+3);


    return new Array(vPayment, apr);
}

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);
pence = num%100;
num = Math.floor(num/100).toString();
if(pence<10)
pence = "0" + pence;
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 + '.' + pence);
}

function removeCommas(aNum) {

//remove any commas

aNum=aNum.replace(/,/g,"");

//remove any spaces

aNum=aNum.replace(/\s/g,"");

return aNum;

}

function Calculate()
{

    var f=document.frmCalc;
	
	if ((f.Total_Loan.value < 25500) || (f.Total_Loan.value > 750000)) {
		alert('Please enter a mortgage amount between £25500 and £750000');
		return false;
	}
  	if (f.Total_Number_Months.value == 0){
		alert('Please select a mortgage term');
		return false;
	}  
    
    var loanAmt=removeCommas(f.Total_Loan.value);
    
    var Number_Months=f.Total_Number_Months.value;
    var MonthlyPayment=f.MonthlyPayment.value
    var ppType=3;
    var roi=f.APR.options[f.APR.selectedIndex].value; 
    var apr=f.APR.options[f.APR.selectedIndex].text; 
    
    var aReturn=GetMonthlyAmountFromLoanAmount(loanAmt,null,Number_Months,ppType,roi,apr);
    
    f.OverallFig.value= formatCurrency((aReturn[0]*Number_Months));
    f.MonthlyPayment.value=String(aReturn[0]);
    
 
}

function ClearResults()
{
    with (document.frmCalc)
    {
        //Total_Loan.style.background="#FFFFFF";
        //Total_Number_Months.style.background="#FFFFFF";
		MonthlyPayment.value="";
        OverallFig.value="";
        //APR.value="";
    }
}



