function check() { 
	var loanamt = top.document.loan_form.amt.value;
	var paymnt = top.document.loan_form.pay.value*12;
	var rate = top.document.loan_form.rate.value;
	var startdate = top.document.loan_form.sdate.value;
	
	DateDatas = startdate.split('-');
	startMonth = DateDatas[1];
	startYear = DateDatas[2];

	if(loanamt=="" || isNaN(parseFloat(loanamt)) || loanamt==0) { 
		alert("Format invalide.");
		top.document.loan_form.amt.value="";
		top.document.loan_form.amt.focus();
		return false; 
	} else if(paymnt=="" || isNaN(parseFloat(paymnt)) || paymnt==0) {
		alert("Format invalide.");
		top.document.loan_form.pay.value="";
		top.document.loan_form.pay.focus();
		return false; 
	} else if(rate=="" || isNaN(parseFloat(rate)) || rate==0 || rate>50) {
		alert("Taux invalide, entrer une valeure inférieure a 50%.");
		top.document.loan_form.rate.value="";
		top.document.loan_form.rate.focus();
		return false; 
	}else if(startdate=="" || startMonth>12 || startMonth<1 || startYear<2008) {
		alert("Format invalide.");
		top.document.loan_form.startdate.value="";
		top.document.loan_form.startdate.focus();
		return false; 
	} else {
		show(); 
	}
}

function clearScreen() { 
	top.document.loan_form.amt.value="";
	top.document.loan_form.pay.value="";
	top.document.loan_form.rate.value="";
	top.document.getElementById("pmt").innerHTML="";
	top.document.getElementById("det").innerHTML="";
}

function fixVal(value,numberOfCharacters,numberOfDecimals,padCharacter) { 
	var i, stringObject, stringLength, numberToPad;            // define local variables

	value=value*Math.pow(10,numberOfDecimals);                 // shift decimal point numberOfDecimals places
	value=Math.round(value);                                   //  to the right and round to nearest integer

	stringObject=new String(value);                            // convert numeric value to a String object
	stringLength=stringObject.length;                          // get length of string
	while(stringLength<numberOfDecimals) {                     // pad with leading zeroes if necessary
		stringObject="0"+stringObject;                     // add a leading zero
		stringLength=stringLength+1;                       //  and increment stringLength variable
	}

	if(numberOfDecimals>0) {			           // now insert a decimal point
		stringObject=stringObject.substring(0,stringLength-numberOfDecimals)+"."+
		stringObject.substring(stringLength-numberOfDecimals,stringLength);
	}

	if (stringObject.length<numberOfCharacters && numberOfCharacters>0) {
		numberToPad=numberOfCharacters-stringObject.length;      // number of leading characters to pad
		for (i=0; i<numberToPad; i=i+1) {
			stringObject=padCharacter+stringObject;
		}
	}

	return stringObject;                                       // return the string object
}

function show() {
	var amount=parseFloat(top.document.loan_form.amt.value);
	var numpay=parseInt(top.document.loan_form.pay.value)*12;
	var rate=parseFloat(top.document.loan_form.rate.value);
 
	rate=rate/100;
	var monthly= rate/12;
	var payment=((amount*monthly)/(1-Math.pow((1+monthly),-numpay)));
	var total=payment*numpay;
	var total2=payment*((numpay*1)/12);
	var interest=total-amount;

	var output = "";
	var detail = "";
	

	

	output += "<table align='center' style='width:100%;margin:3px' class='text'> \
			<tr><td>Montant mon emprunt :</td><td align='right'>"+amount+"</td></tr><tr><td>La dur&eacute;e de mon emprunt en nombre d'ann&eacute;es :</td> \
			<td align='right'>"+(numpay/12)+"</td></tr><tr><td>Nombre total de remboursements : </td><td align='right'>"+numpay+"</td></tr><tr><td>Taux d'int&eacute;r&ecirc;t annuel :</td><td align='right'>"+fixVal((rate*100),0,2,' ')+"%</td></tr> \
			<tr><td>Taux d'int&eacute;r&ecirc;t mensuel :</td><td align='right'>"+fixVal((monthly*100),0,2,' ')+"%</td></tr><tr><td>Montant de chaque remboursement :</td> \
			<td align='right'>"+fixVal(payment,0,2,' ')+"</td></tr><tr><td>Montant total rembours&eacute;:</td><td align='right'><i>"+fixVal(total,0,2,' ')+"</i></td></tr> \
			<tr><td>Montant total  remboursé par an </td><td align='right'>"+fixVal(total/(numpay/12),0,2,' ')+"</td></tr> \
			<tr><td>Montant total des int&eacute;r&ecirc;t pay&eacute;s :</td><td align='right'>"+fixVal(interest,0,2,' ')+"</td></tr></table>";

	detail += "<table border='0' align='center' cellpadding='3' cellspacing='0' width='100%' class='text'> \
			<tr><td align='center' valign='bottom' bgcolor='white'><b>Paiement N°</b></td><td align='center' valign='bottom' bgcolor='white'><b>Date de paiement</b></td><td align='right' valign='bottom' bgcolor='white'><b>Montant</b></td> \
			<td align='right' valign='bottom' bgcolor='white'><b>Int&eacute;r&ecirc;t</b></td><td align='right' valign='bottom' bgcolor='white'><b>Solde initial</b></td> \
			<td align='right' valign='bottom' bgcolor='white'><b>Solde final</b></td></tr><tr><td align='center' bgcolor='white'>0</td> \
			<td align='center' bgcolor='white'>&nbsp;</td><td align='center' bgcolor='white'>&nbsp;</td><td align='center' bgcolor='white'>&nbsp;</td> \
			<td align='right' bgcolor='white'>"+fixVal(amount,0,2,' ')+"</td></tr>";

	newPrincipal=amount;

	var i = 1;
	
	var year=startYear;
	var month=startMonth;
	
	while (i <= numpay) {
		newInterest=monthly*newPrincipal;
		reduction=payment-newInterest;
		newPrincipal=newPrincipal-reduction;

var Tmonth=new Array(13);
Tmonth[1]="Jan";
Tmonth[2]="Fev";
Tmonth[3]="Mar";
Tmonth[4]="Avr";
Tmonth[5]="Mai";
Tmonth[6]="Jui";
Tmonth[7]="Jui";
Tmonth[8]="Aou";
Tmonth[9]="Sep";
Tmonth[10]="Oct";
Tmonth[11]="Nov";
Tmonth[12]="Dec";
		
		detail += "<tr><td align='center'>"+i+"</td><td align='center'>"+Tmonth[month]+"-"+year+"</td><td align='right' bgcolor='white'>"+fixVal(payment,0,2,' ')+"</td> \
				<td align='right' bgcolor='white'>"+fixVal(newInterest,0,2,' ')+"</td> \
				<td align='right' bgcolor='white'>"+fixVal(reduction,0,2,' ')+"</td> \
				<td align='right' bgcolor='white'>"+fixVal(newPrincipal,0,2,' ')+"</td></tr>";
		if (month==12){
			year=year*1+1;
			month=1;
			}
			else {month=month*1+1;}
		
		
		i++;
	}

	detail += "</table>";

	document.getElementById("pmt").innerHTML = output;
	document.getElementById("det").innerHTML = detail;
}

