// JavaScript Document

function Calculate()	{
var Loan
var PercentageRate		
var Rate
var Payments			
var Type
var MonthlyCost
//Loan = parseFloat(eval(document.getElementById('txtLoan').value));
Loan = document.getElementById('txtLoan').value;
Loan = parseFloat(Loan.toString().replace(/\£|\,/g,''));
PercentageRate = parseFloat(eval(document.getElementById('txtRate').value));
Payments = parseFloat(eval(document.getElementById('txtNoPayments').value));
//Rate = (1 + (parseFloat(PercentageRate)/100))
Rate = (0 + (parseFloat(PercentageRate)/100))
for (i=0;i<document.forms['frmMortgageCalculator'].rdoType.length;i++)
{
	if (document.forms['frmMortgageCalculator'].rdoType[i].checked)
	{
		Type = document.forms['frmMortgageCalculator'].rdoType[i].value;
	}
}
switch(Type)
	{
	case 'Repayment' : 
			MonthlyCost = Repayment(Loan,Rate,Payments);
			break;
	case 'Interest' : 
			MonthlyCost = Interest(Loan,Rate,Payments);
			break;
	}
	if (isNaN(MonthlyCost)==true)
		{
		//MonthlyCost = parseFloat(MonthlyCost)
		document.getElementById('txtMonthlyAmount').value = ""
		}
	else
		{
		MonthlyCost = formatCurrency(parseFloat(MonthlyCost))
		document.getElementById('txtMonthlyAmount').value = "£ " + MonthlyCost
		}	
}

function Repayment(Loan,Rate,Payments)	{
	var monthlyCost;
	var paymentrate;
	paymentrate = Math.pow((1 + parseFloat(Rate)),parseFloat(Payments))
	//monthlyCost = (parseFloat(Loan) * parseFloat(Rate) * paymentrate) / (paymentrate - 1)
	monthlyCost = (parseFloat(Loan) * parseFloat(Rate) * paymentrate) / (12 * (paymentrate - 1)) //KW our mod...
	return monthlyCost;
}

function Interest(Loan,Rate,Payments)	{
	var monthlyCost;
	monthlyCost = (parseFloat(Loan) * parseFloat(Rate))/(12);
	return monthlyCost;
}

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);
	return (((sign)?'':'-') + num + '.' + cents);
	}

function Validate(ShowError,Check)	{
	var Loan
	var PercentageRate
	var Payments
	var sMessage
	var sMessageLoan
	var sMessagePercentageRate
	var sMessagePayments
	var bEmptyField
	//get values
	Loan = document.getElementById('txtLoan').value;
	Loan = Loan.toString().replace(/\$|\,/g,'');
	document.getElementById('txtLoan').value = Loan;
	PercentageRate = document.getElementById('txtRate').value;
	Payments = document.getElementById('txtNoPayments').value;
	//if ((Loan=="")||(PercentageRate=="")||(Payments=="")) bEmptyField = true;
	sMessage = ""
	sMessageLoan = ""
	sMessagePercentageRate = ""
	sMessagePayments = ""
	bEmptyField = false
	//Checks:
	if (Check=='All' || Check=='Payments')
		{
			if(isNaN(Payments))	{
				sMessagePayments = sMessagePayments + "\nThe number of payments must consist of numbers only.\n"
				document.getElementById('txtNoPayments').value = "";
			}
			if(Payments<1)	{
				sMessagePayments = sMessagePayments + "\nThe number of payments should be greater than 1.\n"
			}
			if (Payments=="") bEmptyField = true;
		}
	if (Check=='All' || Check=='Rate')
		{
			if(isNaN(PercentageRate))	{
				sMessagePercentageRate = sMessagePercentageRate + "\nThe interest rate must consist of numbers only.\n"
				document.getElementById('txtRate').value = "";
			}
			if(PercentageRate<0 || PercentageRate>100)	{
				sMessagePercentageRate = sMessagePercentageRate + "\nThe interest rate should be less than 100%.\n"
			}
			if (PercentageRate=="") {bEmptyField = true;}
		}
	if (Check=='All' || Check=='Amount')
		{
			if(isNaN(Loan))
			{
				sMessageLoan = sMessageLoan + "\nThe amount you wish to borrow must consist of numbers only.\n"
				document.getElementById('txtLoan').value = "";
			}
			if (Loan=="") {bEmptyField = true;}
		}
	//Combine messages
	sMessage = sMessageLoan + sMessagePercentageRate + sMessagePayments
	//Calculate if data is OK
	if ((sMessage=="") && (bEmptyField!=true))
		{
		Calculate();
		}
	else
		{
		if ((ShowError == true) && (bEmptyField!=true))
			{
			alert(sMessage);
			}
		}
}
