function checkNumber(input, min, max, msg)
{
	msg = msg + " field has invalid data: " + input.value;
	var str = input.value;
	for (var i = 0; i < str.length; i++) 
	{
		var ch = str.substring(i, i + 1)
		if ((ch < "0" || "9" < ch) && ch != '.') 
		{
			alert(msg);
			return false;
		}
	}
	var num = parseFloat(str)
	if (num < min || max < num) 
	{
		alert(msg + " not in range [" + min + ".." + max + "]");
		return false;
	}
	input.value = str;
	return true;
}

function computeField5(input)
{
	if (input.value != null && input.value.length != 0)
	input.value = "" + eval(input.value);
	computeForm(input.form);
	computeForm1(input.form);
	computeForm2(input.form);
	computeForm3(input.form);
	computeForm4(input.form);
}

function computeField(input)
{
	if (input.value != null && input.value.length != 0)
	input.value = "" + eval(input.value);
	computeForm(input.form);
}

function computeField1(input) 
{
	if (input.value != null && input.value.length != 0)
	input.value = "" + eval(input.value);
	computeForm1(input.form);
}

function computeField2(input) 
{
	if (input.value != null && input.value.length != 0)
	input.value = "" + eval(input.value);
	computeForm2(input.form);
}

function computeField3(input) 
{
	if (input.value != null && input.value.length != 0)
	input.value = "" + eval(input.value);
	computeForm3(input.form);
}

function computeField4(input) 
{
	if (input.value != null && input.value.length != 0)
	input.value = "" + eval(input.value);
	computeForm4(input.form);
}

var money=0.00;
var money1=0.00;
var money2=0.00;
var money3=0.00;
var money4=0.00;
var money5=0.00;

function computeForm(form)
{
	if ((form.payments.value == null || form.payments.value.length == 0) || (form.interest.value == null || form.interest.value.length == 0) || (form.principal.value == null || form.principal.value.length == 0)) 
	{
	return;
}
	if (!checkNumber(form.payments, 1, 300, "No. of payments") || !checkNumber(form.interest,  0, 99, "Interest") || !checkNumber(form.principal, 100, 10000000, "Principal Amount")) 
	{
		form.payment.value = "Invalid";
		return;
	}
	var i=form.interest.value
	var i = form.interest.value;
	if (i == 0)
	{
		var prin= parseFloat(form.principal.value)
		var instal=parseFloat(form.payments.value)
		money=Math.ceil(prin/instal)
	}
	else
	{ // for else
		if (i > 1.0) 
		{
			i = i / 100;
			//form.interest.value = i;
		}
		i /= 12;
		var pow = 1;
		for (var j = 0; j < form.payments.value; j++)
			pow = pow * (1 + i);
			money = "" + .01* Math.round(100*(form.principal.value * pow * i) / (pow - 1));
			dec = money.indexOf(".");
			if(dec!=-1){
			dollars = money.substring(0,dec); 
			cents = money.substring(dec+1,dec+3);
			cents = (cents.length < 2) ? cents + "0" : cents;
			money = dollars + "." + cents;
		}
		else
		{
		}
		
	}		
	if (money=="")
	{
		money=0
	} 

	if (money1=="")
	{
		money1=0
	} 

	if (money2=="")	
	{
		money2=0
	} 

	if (money3=="")
	{
		money3=0
	} 

	if (money5=="")
	{
		money5=0
	} 
	money4 = parseFloat(money) + parseFloat(money1) + parseFloat(money2) + parseFloat(money3)+ parseFloat(money5)
	money4=money4
	window.document.calcform.payment.value =Math.ceil(money4);
	calcinterest()
}

function computeForm1(form) 
{
	if ((form.payments.value == null || form.payments.value.length == 0) || (form.interest1.value == null || form.interest1.value.length == 0)|| (form.principal1.value == null || form.principal1.value.length == 0)) 
	{
	return;
	}
	if (!checkNumber(form.payments, 1, 300, "No. of payments") || !checkNumber(form.interest1, 0, 99, "Interest") || !checkNumber(form.principal1, 100, 10000000, "Principal Amount"))
	{
		form.payment.value = "Invalid";
		return;
	}
	var i=form.interest1.value
	var i = form.interest1.value;

	if (i == 0)
	{
		var prin1= parseFloat(form.principal1.value)
		var instal=parseFloat(form.payments.value)
		money1=Math.ceil(prin1/instal)
	}
	else
	{ // for else
		if (i > 1.0) 
		{
			i = i / 100;
			//form.interest1.value = i;
		}
		i /= 12;
		var pow = 1;
		for (var j = 0; j < form.payments.value; j++)
			pow = pow * (1 + i);
			money1 = "" + .01* Math.round(100*(form.principal1.value * pow * i) / (pow - 1));
			dec = money1.indexOf(".");
			if(dec!=-1)
			{
				dollars = money1.substring(0,dec); 
				cents = money1.substring(dec+1,dec+3);
				cents = (cents.length < 2) ? cents + "0" : cents;
				money1 = dollars + "." + cents;
			}
			else
			{
		}
	}					
	if (money=="")
	{
		money=0
	} 

	if (money1=="")
	{
		money1=0
	} 

	if (money2=="")
	{
		money2=0
	} 

	if (money3=="")
	{
		money3=0
	} 

	if (money5=="")
	{
		money5=0
	} 

	money4 = parseFloat(money) + parseFloat(money1) + parseFloat(money2) + parseFloat(money3) + parseFloat(money5)
	money4=money4
	form.payment.value = Math.ceil(money4);
	calcinterest()
}

function computeForm2(form) 
{
	if ((form.payments.value == null || form.payments.value.length == 0) || (form.interest2.value == null || form.interest2.value.length == 0) || (form.principal2.value == null || form.principal2.value.length == 0)) 
	{
		return;
	}
	if (!checkNumber(form.payments, 1, 300, "No. of payments") || !checkNumber(form.interest2, 0, 99, "Interest") || !checkNumber(form.principal2, 100, 10000000, "Principal Amount")) 
	{
		form.payment.value = "Invalid";
		return;
	}
	var i=form.interest2.value
	var i = form.interest2.value;

	if (i == 0)
	{
		var prin2= parseFloat(form.principal2.value)
		var instal=parseFloat(form.payments.value)
		money2=Math.ceil(prin2/instal)
	}
	else
	{ // for else
		if (i > 1.0) 
		{
			i = i / 100;
			//form.interest.value = i;
		}
		i /= 12;
		var pow = 1;
		for (var j = 0; j < form.payments.value; j++)
			pow = pow * (1 + i);
			money2 = "" + .01* Math.round(100*(form.principal2.value * pow * i) / (pow - 1));
			dec = money2.indexOf(".");
			if(dec!=-1)
			{
				dollars = money2.substring(0,dec); 
				cents = money2.substring(dec+1,dec+3);
				cents = (cents.length < 2) ? cents + "0" : cents;
				money2 = dollars + "." + cents;
			}
			else
			{
		}
	}
	if (money=="")
	{
		money=0
	} 

	if (money1=="")
	{
		money1=0
	} 

	if (money2=="")
	{
		money2=0
	} 

	if (money3=="")
	{
		money3=0
	} 

	if (money5=="")
	{
		money5=0
	} 

	money4 = parseFloat(money) + parseFloat(money1) + parseFloat(money2) + parseFloat(money3) + parseFloat(money5)
	money4=money4
	form.payment.value = Math.ceil(money4);
	calcinterest()
}

function computeForm3(form) 
{
	if ((form.payments.value == null || form.payments.value.length == 0) || (form.interest3.value == null || form.interest3.value.length == 0) || (form.principal3.value == null || form.principal3.value.length == 0)) 
	{
		return;
	}
	if (!checkNumber(form.payments, 1, 300, "No. of payments") || !checkNumber(form.interest3, 0, 99, "Interest") || !checkNumber(form.principal3, 100, 10000000, "Principal Amount")) 
	{
		form.payment.value = "Invalid";
		return;
	}
	var i=form.interest3.value
	var i = form.interest3.value;

	if (i == 0)
	{
		var prin3= parseFloat(form.principal3.value)
		var instal=parseFloat(form.payments.value)
		money3=Math.ceil(prin3/instal)
	}
	else
	{ // for else
		if (i > 1.0) 
		{
			i = i / 100;
			//form.interest.value = i;
		}
		i /= 12;
		var pow = 1;
		for (var j = 0; j < form.payments.value; j++)
			pow = pow * (1 + i);
			money3 = "" + .01* Math.round(100*(form.principal3.value * pow * i) / (pow - 1));
			dec = money3.indexOf(".");
			if(dec!=-1)
			{
				dollars = money3.substring(0,dec); 
				cents = money3.substring(dec+1,dec+3);
				cents = (cents.length < 2) ? cents + "0" : cents;
				money3 = dollars + "." + cents;
			}
			else
			{
		}
	}							
	if (money=="")
	{
		money=0
	} 

	if (money1=="")
	{
		money1=0
	} 

	if (money2=="")
	{
		money2=0
	} 

	if (money3=="")
	{
		money3=0
	} 

	if (money5=="")
	{
		money5=0
	} 
	money4 = parseFloat(money) + parseFloat(money1) + parseFloat(money2) + parseFloat(money3)+ parseFloat(money5)
	money4=money4
	form.payment.value = Math.ceil(money4);
	calcinterest()
}

function computeForm4(form) 
{
	if ((form.payments.value == null || form.payments.value.length == 0) || (form.interest4.value == null || form.interest4.value.length == 0) || (form.principal4.value == null || form.principal4.value.length == 0)) 
	{
		return;
	}
	if (!checkNumber(form.payments, 1, 300, "No. of payments") || !checkNumber(form.interest4,0, 99, "Interest") || !checkNumber(form.principal4, 100, 10000000, "Principal Amount")) 
	{
		form.payment.value = "Invalid";
		return;
	}
	var i=form.interest4.value
	var i = form.interest4.value;

	if (i == 0)
	{
		var prin4= parseFloat(form.principal4.value)
		var instal=parseFloat(form.payments.value)
		money5=Math.ceil(prin4/instal)
	}
	else
	{ // for else
		if (i > 1.0) 
		{
			i = i / 100;
			//form.interest.value = i;
		}
		i /= 12;
		var pow = 1;
		for (var j = 0; j < form.payments.value; j++)
			pow = pow * (1 + i);
			money5 = "" + .01* Math.round(100*(form.principal4.value * pow * i) / (pow - 1));
			dec = money5.indexOf(".");
			if(dec!=-1)
			{
				dollars = money5.substring(0,dec); 
				cents = money5.substring(dec+1,dec+3);
				cents = (cents.length < 2) ? cents + "0" : cents;
				money5 = dollars + "." + cents;
			}
			else
			{
		}
	}
	if (money=="")
	{
		money=0
	} 

	if (money1=="")
	{
		money1=0
	} 

	if (money2=="")
	{
		money2=0
	} 

	if (money3=="")
	{
		money3=0
	} 

	if (money5=="")
	{
		money5=0
	} 
	money4 = parseFloat(money) + parseFloat(money1) + parseFloat(money2) + parseFloat(money3)+ parseFloat(money5)
	money4=money4
	form.payment.value = Math.ceil(money4);
	calcinterest()
}

function clearForm(form)
{
	form.payments.value = "";
	form.interest.value = "";
	form.principal.value = "";
	form.payment.value = "";
	form.interest1.value = "";
	form.principal1.value = "";

	form.interest2.value = "";
	form.principal2.value = "";
	form.interest3.value = "";
	form.principal3.value = "";
	form.interest4.value = "";
	form.principal4.value = "";
}

//interest calculation
function calcinterest()
{
	principal=window.document.calcform.principal.value
	principal1=window.document.calcform.principal1.value
	principal2=window.document.calcform.principal2.value
	principal3=window.document.calcform.principal3.value
	principal4=window.document.calcform.principal4.value
	if (principal=="")
	{
		principal=0
	} 

	if (principal1=="")
	{
		principal1=0
	} 
	 
	if (principal2=="")
	{
		principal2=0
	} 
	 
	if (principal3=="")
	{
		principal3=0
	} 
	 
	if (principal4=="")
	{
		principal4=0
	} 
	principal=parseFloat(principal)
	principal1=parseFloat(principal1)
	principal2=parseFloat(principal2)
	principal3=parseFloat(principal3)
	principal4=parseFloat(principal4)
	principaltotal=  principal + principal1 + principal2 + principal3 + principal4
	 
	pay=toRound(document.calcform.payment.value)
	install=document.calcform.payments.value
	total=parseInt(install*pay)
	interest12= total - principaltotal
	window.document.calcform.totint.value=interest12
}

function toRound(figure)
{
	return Math.round(figure*100)* 0.01
}

// done hiding from old browsers -->

function MoreDetails()
{
	var chart
	var  forchart
	chart=window.open("","det","width=520,height=520,resizable=yes,scrollbars=yes") 
	principal=window.document.calcform.principal.value
	principal1=window.document.calcform.principal1.value
	principal2=window.document.calcform.principal2.value
	principal3=window.document.calcform.principal3.value
	principal4=window.document.calcform.principal4.value
	 
	if (principal=="")
	{
		 principal=0
	} 

	if (principal1=="")
	{
		principal1=0
	} 
	 
	if (principal2=="")
	{
		principal2=0
	} 
	 
	if (principal3=="")
	{
		principal3=0
	} 
	 
	if (principal4=="")
	{
		principal4=0
	} 
	principal=parseFloat(principal)
	principal1=parseFloat(principal1)
	principal2=parseFloat(principal2)
	principal3=parseFloat(principal3)
	principal4=parseFloat(principal4)

	rate=window.document.calcform.interest.value
	rate1=window.document.calcform.interest1.value
	rate2=window.document.calcform.interest2.value
	rate3=window.document.calcform.interest3.value
	rate4=window.document.calcform.interest4.value

	installments=document.calcform.payments.value
	emi=document.calcform.payment.value

	principaltotal=  principal + principal1 + principal2 + principal3 + principal4

	forchart= "<html><head></head><body >"
	forchart = forchart + "<TABLE align=center><tr><td align=CENTER><FONT SIZE=2 face=verdana><B>Amortization Chart</B></FONT><tD><tr></TABLE>"
	forchart = forchart + "<TABLE width=50% cellpadding=4 cellspacing=3 border=1 bordercolor=#e5dbb8 align=center style=border:none><tr bgcolor=#E5DBB8><TD align=center><FONT SIZE=1 face=verdana><B>Loan Details</B></FONT></TD></TR><TR><TD><FONT SIZE=1 face=verdana>Loan Amount :      " + principaltotal + "</FONT></td></tr>\n"
	forchart = forchart +"<TR><TD><FONT SIZE=1 face=verdana>"+ installments + "  E.M.I  \@ :    " + emi + "</FONT></td></tr>"
	forchart = forchart + "<TR><TD colspan=2 align=left><FONT SIZE=1 face=verdana>Payable every month\n</FONT></td></tr>" 
	forchart = forchart + "<TR bgcolor=#E5DBB8><TD colspan=2 align=center><FONT SIZE=1 face=verdana><B>Interest Slabs</B>\n</FONT></td></tr>" 

	if (principal != 0 ) 
	{
		forchart = forchart + "<TR ><TD><FONT SIZE=1 face=verdana>" + principal + " \@   " + rate + "%</FONT></td></tr>\n" 
	}
	if (principal1 != 0 ) 
	{
		forchart = forchart + "<TR ><TD><FONT SIZE=1 face=verdana>" + principal1 + " \@  " + rate1 + "%</FONT></td></tr>\n" 
	}
	if (principal2 != 0 ) 
	{
		 forchart = forchart + "<TR ><TD><FONT SIZE=1 face=verdana>" + principal2 + " \@  " + rate2 + "%</FONT></td></tr>\n" 
	}
	if (principal3 != 0 ) 
	{
		forchart = forchart + "<TR ><TD><FONT SIZE=1 face=verdana>" + principal3 + " \@  " + rate3 + "%</FONT></td></tr>\n" 
	}
	if (principal4 != 0 ) 
	{
		forchart = forchart + "<TR><TD><FONT SIZE=1 face=verdana>" + principal4 + " \@   " + rate4 + "%</FONT></td></tr></table>\n" 
	}

	forchart = forchart + "<table><TR><TD></td></tr></table>\n<BR><BR>"

	forchart = forchart + "<TABLE width=80% cellpadding=4 cellspacing=3 border=1 bordercolor=#e5dbb8 align=center style=border:none><tr bgcolor=#E5DBB8><TD align=center><FONT SIZE=1 face=verdana> <B>Sr. No </B></FONT></TD><TD align=right><FONT SIZE=1 face=verdana><B>EMI Amount</B></FONT></TD><TD align=right><FONT SIZE=1 face=verdana><B>Principal</B></FONT></TD><TD align=right><FONT SIZE=1 face=verdana><B>Interest</B></FONT></TD><TD align=right><FONT SIZE=1 face=verdana><B>Balance</B></FONT></TD></TR>"
	forchart = forchart + "<TR><TD colspan=4><FONT SIZE=1 face=verdana><B>Opening  Balance</B></FONT> </td><TD align=right><FONT SIZE=1 face=verdana>" +  principaltotal + "</FONT></td></tr>\n"
	var balance=0.00;
	var balance1=0.00;
	var balance2=0.00;
	var balance3=0.00;
	var balance4=0.00;
	 
	var interestr=0.00;
	var interestr1=0.00;
	var interestr2=0.00;
	var interestr3=0.00;
	var interestr4=0.00;
	 
	var lprincipal=0.00;
	var lprincipal1=0.00;
	var lprincipal2=0.00;
	var lprincipal3=0.00;
	var lprincipal4=0.00;
	 
	var lint=0.00;
	var lint1=0.00;
	var lint2=0.00;
	var lint3=0.00;
	var lint4=0.00;

	balance=principal
	balance1=principal1
	balance2=principal2
	balance3=principal3
	balance4=principal4
	 
	totalbalance=principaltotal

	interestr=rate/12
	interestr1=rate1/12 
	interestr2=rate2/12 
	interestr3=rate3/12  
	interestr4=rate4/12
	 
	var test= 0.00
	for (i=1;i<=installments;i++)
	{
		lint = (balance * interestr / 100);
		lint1 = (balance1 * interestr1 / 100);
		lint2 = (balance2 * interestr2 / 100);
		lint3 = (balance3 * interestr3 / 100);
		lint4 = (balance4 * interestr4 / 100);
		 
		linttotal = lint + lint1 + lint2 + lint3+lint4;
		lprincipal = money - lint
		lprincipal1 = money1 - lint1
		lprincipal2 = money2 - lint2
		lprincipal3 = money3 - lint3
		lprincipal4 = money5 - lint4

		lprincipaltotal = lprincipal + lprincipal1 + lprincipal2 + lprincipal3+ lprincipal4
		lbalancetotal= (balance + balance1 + balance2 + balance3+balance4) - lprincipaltotal
		if (i==installments)
		{
			var inte=parseInt(emi)-parseInt(test)
			forchart = forchart + "<TR><TD align=right><FONT SIZE=1 face=verdana>" + i +"</FONT></td><TD align=right><FONT SIZE=1 face=verdana>" + parseInt(emi) + "</FONT></td><TD align=right><FONT SIZE=1 face=verdana>" + test  +"</FONT></td><TD align=right><FONT SIZE=1 face=verdana>" + inte  +"</FONT></td><td align=right><FONT SIZE=1 face=verdana>0</FONT></td></tr>"
		}
		else
		{
			forchart = forchart + "<TR><TD align=right><FONT SIZE=1 face=verdana>" + i +"</FONT></td><TD align=right><FONT SIZE=1 face=verdana>" + parseInt(emi) + "</FONT></td><TD align=right><FONT SIZE=1 face=verdana>" + Math.ceil(lprincipaltotal)  +"</FONT></td><TD align=right><FONT SIZE=1 face=verdana>" + Math.ceil(linttotal)  +"</FONT></td><td align=right><FONT SIZE=1 face=verdana>" + parseInt(lbalancetotal) + "</FONT></td></tr>"
			test=parseInt(lbalancetotal)
		}
	 
		balance = balance - lprincipal 
		balance1 = balance1 - lprincipal1 
		balance2 = balance2 - lprincipal2 
		balance3 = balance3 - lprincipal3 
		balance4 = balance4 - lprincipal4 
	}
	forchart=forchart + "</body></table>"
	//alert(forchart);
	chart.document.write(forchart)
}
