// Loans Calculator Javascript 
// James - 16/04/08

function viewinput1(){

  document.getElementById('input1').style.display  = "block";
  document.getElementById('input2').style.display  = "none";
  document.getElementById('input3').style.display  = "none";

  document.getElementById('resultbox').style.display  = "none";
  document.getElementById('inactive1').style.display  = "none";
  document.getElementById('active1').style.display  = "block";
  document.getElementById('inactive2').style.display  = "block";
  document.getElementById('active2').style.display  = "none";  
  document.getElementById('inactive3').style.display  = "block";
  document.getElementById('active3').style.display  = "none";  
}

function viewinput2(){

  document.getElementById('input1').style.display  = "none";
  document.getElementById('input2').style.display  = "block";
  document.getElementById('input3').style.display  = "none";

  document.getElementById('resultbox').style.display  = "none";
  document.getElementById('inactive1').style.display  = "block";
  document.getElementById('active1').style.display  = "none";  
  document.getElementById('inactive2').style.display  = "none";
  document.getElementById('active2').style.display  = "block";  
  document.getElementById('inactive3').style.display  = "block";
  document.getElementById('active3').style.display  = "none";    
}

function viewinput3(){
  document.getElementById('input1').style.display  = "none";
  document.getElementById('input2').style.display  = "none";
  document.getElementById('input3').style.display  = "block";

  document.getElementById('resultbox').style.display  = "none";
  document.getElementById('inactive1').style.display  = "block";    
  document.getElementById('active1').style.display  = "none";  
  document.getElementById('inactive2').style.display  = "block";
  document.getElementById('active2').style.display  = "none";    
  document.getElementById('inactive3').style.display  = "none";
  document.getElementById('active3').style.display  = "block";  
}

function formatCurrencyZeroDP(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 formatCurrencyZeroDP(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);
} 




function borrowingCosts(){

	var validated = true;

	//declare key variables
	var	Loan		=	document.getElementById("LoanAmount").value;
	Loan			=	parseFloat(Loan.replace(/[^0-9.]/g, ''));
	
	if(isNaN(Loan) || (Loan == 0)){
		document.getElementById("LoanAmount").style.border = "#ff0000 solid 1px";	
		validated = false;
	} else {
		document.getElementById("LoanAmount").style.border = "";	
	}
	
	var	Rate		=	document.getElementById("InterestRate").value;
	Rate			=	parseFloat(Rate.replace(/[^0-9.]/g, ''));
	
	if(isNaN(Rate)){
		document.getElementById("InterestRate").style.border = "#ff0000 solid 1px";	
		validated = false;
	} else {
		document.getElementById("InterestRate").style.border = "";	
	}
	
	var	temp		=	document.getElementById("Term").value;
	temp			=	parseFloat(temp.replace(/[^0-9.]/g, ''));
		
	var	Term		=	new Number(temp);
	Term			=	parseFloat(Term);
	
	if(isNaN(Term) || (Term == 0)){
		document.getElementById("Term").style.border = "#ff0000 solid 1px";
		validated = false;	
	} else {
		document.getElementById("Term").style.border = "";
	}
	
	if(validated){	
		document.getElementById("LoanAmount").style.border = "";
		document.getElementById("InterestRate").style.border = "";
		document.getElementById("Term").style.border = "";
		
		//repayment amount
		var MonthlyRate = Rate/1200;
		var TermMonths = Term * -1;
		var Multiplier = 1 + MonthlyRate;
		Multiplier = Math.pow(Multiplier, TermMonths);
		Multiplier = 1 - Multiplier;
		Multiplier = MonthlyRate / Multiplier;
		var RepaymentAmount = Loan * Multiplier;
	
		//display
	
		var resultText = "<p>To borrow <span style='color: #00F;'>£"+Loan+"</span>, it will cost <span style='color: #00F;'>£"+formatCurrencyZeroDP(RepaymentAmount)+"</span>/month<br /><br />";
		resultText = resultText + "Over the life of the loan, this costs <span style='color: #00F;'>£"+formatCurrencyZeroDP(((RepaymentAmount*Term)-Loan))+"</span> in interest</p>";
} else {
		var resultText = "<p>Please insert values in every box.</p>";

	}
	document.getElementById("Rresults").innerHTML  = resultText;
	document.getElementById("resultbox").style.display= "block";
}

function howMuch(){

	var validated = true;
	
	var	RepaymentAmount	=	document.getElementById("RepaymentAmount").value;
	RepaymentAmount		=	parseFloat(RepaymentAmount.replace(/[^0-9.]/g, ''));
	
	if(isNaN(RepaymentAmount) ||(RepaymentAmount ==0)){
		document.getElementById("RepaymentAmount").style.border = "#ff0000 solid 1px";
		validated = false;
	} else {
		document.getElementById("RepaymentAmount").style.border = "";
	}
	
	
	var	Rate			=	document.getElementById("InterestRate3").value;
	Rate				=	parseFloat(Rate.replace(/[^0-9.]/g, ''));
	
	if(isNaN(Rate)){
		document.getElementById("InterestRate3").style.border = "#ff0000 solid 1px";
		validated = false;
	} else {
		document.getElementById("InterestRate3").style.border = "";
	}
	
	var	temp			=	document.getElementById("Term3").value;
	temp				=	parseFloat(temp.replace(/[^0-9.]/g, ''));
	
	
	var	Term			=	new Number(temp);
	Term				=	parseFloat(Term);
	
	if(isNaN(Term) || (Term ==0)){
		document.getElementById("Term3").style.border = "#ff0000 solid 1px";	
		validated = false;
	} else {
		document.getElementById("Term3").style.border = "";	
	}
		
	if(validated){
		document.getElementById("RepaymentAmount").style.border = "";
		document.getElementById("InterestRate3").style.border = "";
		document.getElementById("Term3").style.border = "";
		var InterestRate = document.getElementById("InterestRate3").value;
		var MonthlyRate = Rate/1200;
		var TermMonths = Term * -1;
		var Multiplier = 1 + MonthlyRate;
		Multiplier = Math.pow(Multiplier, TermMonths);
		Multiplier = 1 - Multiplier;
		Multiplier = MonthlyRate / Multiplier;
		var Loan = RepaymentAmount / Multiplier;
		var interestPaid = formatCurrencyZeroDP((RepaymentAmount*Term)-Loan)	;
		Loan = formatCurrencyZeroDP(Loan);
		//display
		var resultText = "Repaying <span style='color: #00F;'>£"+formatCurrencyZeroDP(RepaymentAmount)+"</span>/month, over <span style='color: #00F;'>"+Term+"</span> months, <br />you will be able to borrow <span style='color: #00F;'>£"+formatCurrencyZeroDP(Loan)+"</span> <br/><br/> <span style='font-size:9pt; font-weight:normal'><b>Explanation:<b/> <br/><br/>The total repayment is £<span style='color: #00F;'>"+formatCurrencyZeroDP(RepaymentAmount*Term)+"</span>, made up of the original <span style='color: #00F;'>£"+formatCurrencyZeroDP(Loan)+"</span><br/> plus the £<span style='color: #00F;'>"+formatCurrencyZeroDP(interestPaid)+"</span> interest you’d repay at <span style='color: #00F;'>"+(InterestRate)+"%</span>"; 
	
	} else {
		var resultText = "<p>Please insert values in every box.</p>";

	}
	document.getElementById("Rresults").innerHTML  = resultText;
	document.getElementById("resultbox").style.display= "block";
}


function switchingLoans(){
	var validated = true;	
	
	var	Loan		=	document.getElementById("LoanAmount2").value;
	Loan			=	parseFloat(Loan.replace(/[^0-9.]/g, ''));
	
	if(isNaN(Loan) || (Loan == 0)){
		document.getElementById("LoanAmount2").style.border = "#ff0000 solid 1px";	
		validated = false;
	} else {
		document.getElementById("LoanAmount2").style.border = "";
	}
	
	var Payment		=   document.getElementById("MonthlyPayment").value;
	Payment			=   parseFloat(Payment.replace(/[^0-9.]/g, ''));
	
	if(isNaN(Payment) || (Payment == 0)){
		document.getElementById("MonthlyPayment").style.border = "#ff0000 solid 1px";	
		validated = false;
	} else {
		document.getElementById("MonthlyPayment").style.border = "";	
	}
	
	var	Rate		=	document.getElementById("InterestRate2").value;
	Rate			=	parseFloat(Rate.replace(/[^0-9.]/g, ''));
	
	if(isNaN(Rate)){
		document.getElementById("InterestRate2").style.border = "#ff0000 solid 1px";	
		validated = false;
	} else {
		document.getElementById("InterestRate2").style.border = "";	
	}
	
	var	temp		=	document.getElementById("Term2").value;
	temp			=	parseFloat(temp.replace(/[^0-9.]/g, ''));
	
	var	Term		=	new Number(temp);
	Term			=	parseFloat(Term);
	
	if(isNaN(Term) || (Term == 0)){
		document.getElementById("Term2").style.border = "#ff0000 solid 1px";	
		validated = false;
	} else {
		document.getElementById("Term2").style.border = "";	
	}
	if(validated){		

		var MonthlyRate = Rate/1200;
		var TermMonths 	= Term * -1;
		var Multiplier 	= 1 + MonthlyRate;
		
		Multiplier = Math.pow(Multiplier, TermMonths);
		Multiplier = 1 - Multiplier;
		Multiplier = MonthlyRate / Multiplier;

		var RepaymentAmount = Loan * Multiplier;
		var repayment 	= Payment * Term;
		var final 		=  repayment - (RepaymentAmount * Term);
		
		RepaymentAmount = formatCurrencyZeroDP(RepaymentAmount);
		
		document.getElementById("Rresults").innerHTML  = "<span style='color: #00F;'>£"+RepaymentAmount+"</span> - <span style='color: #00F;'>£"+formatCurrencyZeroDP(repayment)+ "</span> = <span style='color: #00F;'>£"+formatCurrencyZeroDP(final)+"<span style='color: #00F;'>";
	
		if(final > 0){
			
			
			var resultText =" <span style=' font-weight:normal'><span style=\"color:#0DCB18; font-weight:bold;\">You CAN save by switching</span><br/><br/>Stick with your current deal and you will repay <span style='color: #00F;'>£"+formatCurrencyZeroDP(Math.round(repayment))+"</span><br/><br/>Shift to the new deal and you will repay <span style='color: #00F;'>£"+formatCurrencyZeroDP(Math.round(RepaymentAmount * Term))+"</span><br/><br/><b>Therefore you are <span style='color: #00F;'>£"+formatCurrencyZeroDP(Math.round(final))+"</span> better off by switching</b></span>";
			
						
		} else {
			
			var resultText =" <span style=' font-weight:normal'><span style=\"color:#CF1919; font-weight:bold;\">You will NOT save by switching</span><br/><br/>Stick with your current deal and you will repay <span style='color: #00F;'>£"+formatCurrencyZeroDP(Math.round(repayment))+"</span><br/><br/>Shift to the new deal and you will repay <span style='color: #00F;'>£"+formatCurrencyZeroDP(Math.round(RepaymentAmount * Term))+"</span><br/><br/><b>Therefore you are <span style='color: #00F;'>£"+formatCurrencyZeroDP(Math.round(final*-1))+"</span> worse off by switching</b></span>";
		}
	} else {
		var resultText = "<p>Please insert values in every box.</p>";
	}
	document.getElementById("Rresults").innerHTML  = resultText;
	document.getElementById("resultbox").style.display= "block";
}