var IsIE=(navigator.appName.indexOf("Microsoft")!=-1);
var browserName=navigator.appName; 
var canHide = IsIE;
var isSetup=true;
var Frequency, Period, Payment;
var InitialCapital, Capital, InitialPayment, Interest;
var sepChar, decChar, Decimals;
sepChar=" ";decChar=",";Decimals=2;

function setDecimals(NewVal){
	Decimals = NewVal;
}
function SetFormat(TextBox, DecimalPlaces) {
	TextBox.value = FormatCurrency(TextBox.value, DecimalPlaces);
}
function FormatCurrency(num, decs){
	var dollars, cents, isNeg;
	cents = "";
	isNeg = false;
	//if(num.toString().length>0){
	if(num.length>0){
		if(isNaN(num)){
			num=ValidateNumber(num.toString());
		}
	}
	if (isNaN(decs)){
		decs = Decimals;
	}
	if(num<0){
		isNeg = true;
		num = Math.abs(num);
	}
	powNum = Math.pow(10, decs);
	dollars = num.toString();
	if(dollars.lastIndexOf(".") >= 0){
		dollars=(Math.round(num * powNum) / powNum).toString();
	}else{
		if(decs > 0){
			dollars = (Math.round(num)).toString();
		}
	}
	if(dollars.lastIndexOf(".") < 0 && decs > 0){
		dollars += ".";
	}
	while(decs > dollars.substring(dollars.lastIndexOf(".")+1).length){
		dollars += "0";
	}
	if(decs>0){
		if(dollars.lastIndexOf(".")>=0){
			cents = dollars.substring(dollars.lastIndexOf(".")+1)
			dollars = dollars.substring(0, dollars.lastIndexOf("."))
		}
		dollars += decChar + cents;
	}
	for(var i = (dollars.lastIndexOf(".") == -1) ? dollars.length : dollars.lastIndexOf("."); i-3 > 0; i-=3){
		dollars = dollars.substring(0, i-3) + sepChar + dollars.substring(i-3,dollars.length);
	}
	if(isNeg){
		dollars = "-" + dollars;
	}
	var nuReDollars = new RegExp(" ,", "i");
	dollars = dollars.replace(nuReDollars,",");
	return dollars;
}
function ValidateNumber(strNum){
	if(strNum==""){
		strNum="0.00";
	}
	else{
		var pospoint;
		pospoint = strNum.lastIndexOf(",");
		if(pospoint >= 0 && (pospoint >= strNum.length - 3 || pospoint == strNum.length-1)){
			strNum = strNum.substring(0, pospoint) + "." + strNum.substr(pospoint+1,3);
		}
		var nuRe = new RegExp("/\$| |[,]|[a-z]|\D/", "i");
		while(nuRe.test(strNum)){
			strNum = strNum.replace(nuRe,"");
		}
		if(isNaN(strNum)){
			alert("Seul des caractères numéric sont permis!");
			return 0;
		}
	}
	return parseFloat(strNum);
}
function verification(){
	var frm = window.document.calc;
	if (window.document.calc.prix.value == 0 || window.document.calc.prix.value ==""){
		alert("Vous devez entrer un capital.");
		frm.prix.focus();
	}
	else{
		if(frm.interest.value=="" || frm.interest.value==" "){
			alert("Vous devez entrer un taux hypothécaire.");
			frm.interest.focus();
		}
		else{
			var t = ValidateNumber(frm.interest.value);
			if(t<=0){
				alert("Vous devez entrer un taux hypothécaire valide.");
				frm.interest.focus();
			}
			else{
				if(frm.period.value=="" || frm.period.value==" "){
					alert("Vous devez entrer une période.");
					frm.period.focus();
				}
				else{
					if(parseInt(frm.period.value) > 25 || parseInt(frm.period.value)<=0){
						alert("Vous devez entrer une période moin que 25 et plus que 0.");
						frm.period.focus();
						frm.period.select();
					}
					else{
						calcul();
					}
				}
			}
		}
	}
}
function CheckStatus(){
	var frm = window.document.calc;
	var a = frm.prix.value;
	//var d = frm.depot.value;
	var d = 0;
	var t = frm.interest.value;
	var p = frm.period.value;
	if (a.length > 0 && t.length > 0 && p.length > 0) { 
		if(InitialCapital>0){
			t = ValidateNumber(t);
			p = parseInt(ValidateNumber(p));
			if(p>25){
				p=25;
				frm.period.value="25";
			}
			if(t>0 && p>0){
				calcul();
			}else{
				HideTable(1);
			}
		}
	}else{
		HideTable(1);
	}
}
function UpdateCapital() {
	var frm = document.calc;
	var Deposit = frm.depot.value;
	var Price = frm.prix.value;
	Deposit = (Deposit.length > 0) ? ValidateNumber(Deposit) : 0;
	Price = (Price.length > 0) ? ValidateNumber(Price) : 0;
	InitialCapital = Price - Deposit;
	//frm.capital.value = FormatCurrency(InitialCapital);
}
function calcul(){
	var payementFinal;
	var frm = window.document.calc;
	if (frm.interest.value == "" || frm.period.value == ""){
		return 0;
	}
	Period = parseInt(frm.period.value);
	//Frequency = "12";
	Frequency = frm.frequency.options[frm.frequency.selectedIndex].value;
	var np = Frequency * Period;
	Interest = ValidateNumber(frm.interest.value);
	Interest = (Interest / Frequency)/100;
	var q = Math.pow((1+Interest),np);
	InitialPayment = ((InitialCapital*q)/(q-1)) * Interest;
	frm.payment.value = (InitialPayment >= 0) ? FormatCurrency(InitialPayment): "-" + FormatCurrency(Math.abs(InitialPayment));
	isSetup = false;
	//remplirtableau("debut");
}
function remplirtableau(moment){
	if (canHide){
		var tbl = document.all.tableau;
		tbl.style.visibility = "hidden";
	}	
	var frm = window.document.calc;
	var BalanceForward = InitialCapital;
	var CapitalAcc = 0;
	var CapitalPerYear = 0;
	var CapitalPerPeriod = 0;
	var InterestAcc = 0;
	var InterestPerYear = 0;
	var InterestPerPeriod = 0;
	var stNum = "";
	var fldNum;
	var lst;
	for(var i=1;i<=Period && i<=25;i++){
		CapitalPerYear = 0;
		InterestPerYear = 0;
		fldNum = (i>9) ? i: "0" + i;
		eval("frm.payment_" + fldNum + ".value=i");
		stNum = FormatCurrency(BalanceForward);
		eval("frm.solde_" + fldNum + ".value=\"" + stNum + "\"");
		for(j=1; j<=Frequency;j++) {
			InterestPerPeriod = Math.round((InitialCapital - CapitalAcc) * Interest * 100) / 100;		
			InterestPerYear += InterestPerPeriod;
			CapitalPerPeriod = Math.round((parseFloat(InitialPayment) - InterestPerPeriod) * 100) / 100;
			CapitalPerYear += CapitalPerPeriod;
			CapitalAcc += CapitalPerPeriod;
		}
		InterestAcc += InterestPerYear;
		BalanceForward -= CapitalPerYear;
		eval("frm.capital_" + fldNum + ".value=\"" + FormatCurrency(CapitalPerYear) + "\"");
		eval("frm.interet_" + fldNum + ".value=\"" + FormatCurrency(InterestPerYear) + "\"");
		eval("frm.capitalacc_" + fldNum + ".value=\"" + FormatCurrency(CapitalAcc) + "\"");
		eval("frm.interetacc_" + fldNum + ".value=\"" + FormatCurrency(InterestAcc) + "\"");
		if(IsIE){
			eval("tr" + i + ".style.visibility = 'visible'");
		}
	}
	for(var i=Period+1;i<=25;i++){
		fldNum = (i>9) ? i: "0" + i;
		eval("frm.payment_" + fldNum + ".value=\"\"");
		eval("frm.solde_" + fldNum + ".value=\"\"");
		eval("frm.capital_" + fldNum + ".value=\"\"");
		eval("frm.interet_" + fldNum + ".value=\"\"");
		eval("frm.capitalacc_" + fldNum + ".value=\"\"");
		eval("frm.interetacc_" + fldNum + ".value=\"\"");
	}
	
	if (canHide){
		tbl.style.visibility = "visible";
		HideTable(i);
	}
}
function HideTable(StartRow){
	var frm = window.document.calc;
	var fldNum;
	if (canHide){
		if(StartRow <= 1){
			//document.all.tableau.style.visibility = "hidden";
		}
		if (!isSetup) {
			for(; StartRow<=25; StartRow++) {
				fldNum = (StartRow>9) ? StartRow: "0" + StartRow;
				eval("frm.payment_" + fldNum + ".value=\"\"");
				eval("frm.capital_" + fldNum + ".value=\"\"");
				eval("frm.interet_" + fldNum + ".value=\"\"");
				eval("frm.capitalacc_" + fldNum + ".value=\"\"");
				eval("frm.interetacc_" + fldNum + ".value=\"\"");
				eval("frm.solde_" + fldNum + ".value=\"\"");
				//eval("tr" + StartRow + ".style.visibility = 'hidden'");
			}
		}
	}
}
function body_load(){
	if(IsIE){
		//document.all.tableau.style.visibility = "hidden";
		var se=document.calc.frequency;
		se.style.fontFamily="Tahoma,Verdana,Arial";
		se.style.fontSize="11px";
		se.style.textAlign="right";
		se.style.background="#EEEEEE";
		se.style.borderStyle="ridge";
		se.style.borderWidth="2px";
		se.style.borderColor="#AAAAAA"
	}
}

