// JavaScript Document

var amount, apr, n, payment, npy, tablebuilt=false;

function calculate(){
	var d = document.f;
	amount = d.amount.value;
	apr = d.apr.value;
	n = d.n.value;
	npy = d.npy.value;
	if( (amount!='') && (n!='') && (apr!='') && (npy!='') ){
		tmp = Math.pow((1+(apr/100/npy)), (n*npy));
		payment = (amount*tmp*(apr/100/npy))/(tmp-1);
		if((!isNaN(payment))&&(payment!=Number.POSITIVE_INFINITY)&&(payment!=Number.NEGATIVE_INFINITY)){
			d.payment.value = round(payment);
			d.totpaid.value = round(payment*n*npy);
			d.intpaid.value = round((payment*n*npy)-amount);
			
			d.payment.value = formatNumber(d.payment.value, 2);
			d.payment.value = formatPers(d.payment.value, 2);
			
			d.totpaid.value = formatNumber(d.totpaid.value, 2);
			d.totpaid.value = formatPers(d.totpaid.value, 2);
			
			d.intpaid.value = formatNumber(d.intpaid.value, 2);
			d.intpaid.value = formatPers(d.intpaid.value, 2);
			
			
		}else alert('Attenzione:\nalcuni campi contengono dati\nche non possono essere usati per il\ncalcolo.');
	}else alert('Attenzione:\nnon sono stati inseriti tutti i dati richiesti.');
}

function round(val){
	tmp = Math.round(val*100)/100+'';
	if (tmp.indexOf('.')==-1) tmp+=',00';
	else if (tmp.length-tmp.indexOf(',') == 2) tmp+='0';
	return tmp;
}

function resetall(){
	var d = document.f;
	/*d.amount.value = '';
	d.apr.value = '';
	d.n.value = '';
	d.npy.value = 12;
	d.payment.value =  '';
	d.totpaid.value = '';
	d.intpaid.value = '';
	d.amount.focus();
	*/
	d.amount.value = '200000';
	d.apr.value = '3';
	d.n.value = '6';
	d.npy.value = 6;
	d.payment.value =  '';
	d.totpaid.value = '';
	d.intpaid.value = '';
	d.amount.focus();
	
}

function buildtable(){
	tablebuilt = true;
	/*txt = '<html><head><title>Esploso Pagamenti</title></head><body bgcolor="#4A5157"><center><form>';
	txt += '<input type="button" value="Chiudi" onClick="self.close()"><br><br>';
	txt += '<table bgcolor="white" border="1" cellpadding="4">';
	txt += '<tr><td align="center">Numero<br>Scadenza</td><td align="center">Importo<br>Rata</td><td align="center">Interesse</td><td align="center">Capitale</td><td align="center">Residuo</td></tr>';
	*/
	txt = '<html><head><title>Esploso Pagamenti</title></head><link href="/file_comuni/css/stileListino.css" rel="stylesheet" type="text/css" />'+
		  '<body><center><form>';
	txt += '<input type="button" class="txt_puls" value="Chiudi" onClick="self.close()"><br><br>';
	txt += '<table cellpadding="0" border="1" width="100%" cellpadding="0" cellspacing="0"  bordercolor="#333333">';
	txt += '<tr align="center" valign="middle" bgcolor="#939598" class="txt10bianco_stampa">'+
		   '<td bgcolor="#939598" class="txt12boldc" align="center">Numero<br>Scadenza</td>'+
		   '<td bgcolor="#939598" class="txt12boldc" align="center">Importo<br>Rata</td>'+
		   '<td bgcolor="#939598" class="txt12boldc" align="center">Interesse</td>'+
		   '<td bgcolor="#939598" class="txt12boldc" align="center">Capitale</td>'+
		   '<td bgcolor="#939598" class="txt12boldc" align="center">Residuo</td></tr>';
	
	amount = eval(amount);
	for(i = 1; i <= n*npy; i++){
		tbldata = '<td bgcolor="' + ((i%2!=0) ? '#ECF8FF' : '#DDF0FF')+'" class="txt11r">';
		interest = amount*apr/npy/100;
		amount += interest;
		principle = payment-interest;
		amount -= payment;
		txt += '<tr>' + tbldata + i + ':</td>' + tbldata + "\u20AC" + formatNumberMio(round(payment), 2) + '</td>' + 
				tbldata + "\u20AC" + formatNumberMio(round(interest), 2) +
			   '</td>' + tbldata + "\u20AC" + formatNumberMio(round(principle), 2) + '</td>' + 
			   tbldata + "\u20AC" + formatNumberMio(round(amount), 2) + '</td></tr>';
	}
	txt += '</table><br><br><input type="button" class="txt_puls" value="Chiudi" onClick="self.close()"></center></form></body></html>';
	var psch = window.open('', 'viewsch' ,'top=0,left=0,toolbar=no,scrollbars=yes,resizable=yes,width=500,height=450,menubar=no,status=no');
	psch.document.write(txt);
}

if (document.f != undefined) {
	window.onload = function(){
		document.f.amount.focus();
	}
}

function formatNumberMio (obj, decimal) {
	
	anynum = obj;
	divider =10;
	switch(decimal) {
		case 0:
			divider =1;
			break;
		case 1:
			divider =10;
			break;
		case 2:
			divider =100;
			break;
		default:  	 //for 3 decimal places
			divider =1000;
	}

	workNum = Math.abs((Math.round(anynum*divider)/divider));

	if (isNaN(workNum)) {
		workStr = "" + anynum;
	} else {
		workStr = "" + workNum;
	} 
	
	if (workStr.indexOf(".") == -1 && workStr.indexOf(",") == -1) {
	   workStr += "."
	}
	
	//Aggiunto da me per avere la virgola NO coome separatore di migliaia ma come separatore di decimali
	workStr = workStr.replace(/\./, ",");
	
	dStr = workStr.substr(0, workStr.indexOf(","));
	dNum = dStr-0
	pStr = workStr.substr(workStr.indexOf(","))
	while (pStr.length-1 < decimal){
		pStr += "0"
	}

	if(pStr == '.') pStr = '';

    if (dNum >= 1000) {
		dLen = dStr.length
	  	dStr = parseInt("" + (dNum/1000)) + "." + dStr.substring(dLen-3,dLen)
   	}

	if (dNum >= 1000000) {
		dLen = dStr.length
		dStr = parseInt("" + (dNum/1000000)) + "." + dStr.substring(dLen-7,dLen)
	}
    retval = dStr + pStr
    
    if (anynum<0) {retval="("+retval+")";}

	return retval;
}
