function formattaImporto(e, label) {
	var importo = e.value;
	if (importo.length > 0) {
		var interi = "" + importo;
		var decimali = "00";
		var punto = importo.lastIndexOf(".");
		var virgola = importo.lastIndexOf(",");
		var j = 0;
		var c = 0;
		//alert("Punto: " + punto);
		//alert("Virgola: " + virgola);
		//alert("Importo length: " + importo.length);
		
		if (punto != -1) {
			// Caso in cui le cifre prima del primo punto sono maggiori di 3 (nel caso in cui c'è più di un punto)
			// oppure caso in cui le cifre prima del primo punto sono maggiori di 3 e c'è solo un punto
		/*	if ((importo.indexOf(".") > 3 && (importo.indexOf(".") != importo.lastIndexOf("."))) || (importo.indexOf(".") > 3 && (importo.indexOf(".") == importo.lastIndexOf(".")))) {
				alert("Attenzione: il valore inserito nel campo " + label + " non e' corretto!1");
				e.focus();
				return;
			}*/
			
			// Creo i decimali solo se dopo l'ultimo punto ci sono solo due cifre
			if ((importo.length - (punto+1)) <= 2) {
					
				// Elimino i punti separatori di migliaia
				importo_senza_punti = "";
				for (i = 0; i <= punto; i++) {
					//alert("J: " + j + " - C: " + c + " - Importo.charAt: " + importo.charAt(i));				
					if (importo.charAt(i) == ".") { 
						if (c > 0) { // Se c > 0 ho già passato il primo punto
							if (j != 3) {
								alert("Attenzione: il valore inserito nel campo " + label + " non e' corretto!2");
								e.focus();
								return;
							}
							j++;
						}
						c++;
						j = 0;
					}
					else {
						importo_senza_punti += importo.charAt(i);
						j++;
					}														
				}		
				
				interi = importo_senza_punti;
				decimali = importo.substring(punto + 1, importo.length);
			}
			// Caso in cui dopo l'ultimo punto ci sono più di 3 cifre, dopo questo punto non devon esserci virgole
			// Se dopo l'ultimo punto ci sono 3 cifre consideriamo migliaia, se ce ne sono 2 o meno consideriamo decimali	
			//else if ((importo.length - (punto+1)) > 3 && (punto+1) > virgola) { 
			//	alert("Attenzione: il valore inserito nel campo " + label + "  non e' corretto!3");
			//	e.focus();
			//	return;
		//	}
			// Caso in cui ci sono più punti nell'importo, nessun punto viene visto come separatore di decimali
			else {
				
				// Elimino i punti separatori di migliaia
				importo_senza_punti = "";
				for (i = 0; i < importo.length; i++) {
				
					//alert("J: " + j + " - C: " + c + " - Importo.charAt: " + importo.charAt(i));				
					if (importo.charAt(i) == ".") { 
						if (c > 0) { // Se c > 0 ho già passato il primo punto
							if (j != 3) {
							    //alert("Attenzione: il valore inserito nel campo " + label + " non e' corretto!4");
							    alert("Attenzione: il valore inserito nel campo " + label + " non e' corretto!4");
								e.focus();
								return;
							}
							j++;
						}
						c++;
						j = 0;
					}
					else {
						importo_senza_punti += importo.charAt(i);
						j++;
					}
										
				}
				if (virgola != -1) {
					importo = importo_senza_punti;
					virgola = importo.lastIndexOf(",");
					//alert("Importo: " + importo);
				}
				else {
					interi = importo_senza_punti;
					//alert("importo_senza_punti: " + importo_senza_punti);
					//interi = importo.substring(0,punto);
					//decimali = importo.substring(punto + 1, importo.length);
				}						
			}
		}
		

		if (virgola != -1) {
			interi = importo.substring(0,virgola);
			decimali = importo.substring(virgola + 1, importo.length);
		}	

		if (interi == "")
			interi = "0";

		if (decimali == "")
			decimali = "00";

		if (decimali.length > 2)
			decimali = decimali.substring(0,2);

		if (decimali.length == 1)
			decimali = decimali + "0";

		if (isOnlyNumber(interi) != 0 || isOnlyNumber(decimali) != 0) {
		    //alert("Attenzione: il valore inserito nel campo " + label + " non e' un numero!");
		    alert("Attenzione: il valore inserito non e' un numero!");
			e.focus();
			return;
		}

		interi = parseFloat(interi);

		if (interi == 0)
			interi = "0";

		//e.value = interi + "," + decimali;

            e.value = format_importo(interi + "," + decimali, "");
		//e.value = format_importo(interi ,"");
	}
}


// Controllo che il parametro str sia costituito solo da cifre
function isOnlyNumber(str) {
	if(str == "")
		return 2;
	var state = 0;
	var val = 0;
	for (var i=0; i<str.length; i++)
	{ 
		if((str.charAt(i) < "0" || str.charAt(i) > "9")) {
			val = val + 1;
			break;
		}
	}
	if(val > 0)
		state = 1;
	return state;
}

// Formattazione dell'importo col punto separatore di migliaia
function format_importo(num,divisa) {
	if (num == "")
		return;

	var number; var dec = "";
	var gruppi = new Array();
	var virgola = num.indexOf(",");

	
	if(virgola > -1)
	{
		dec = num.substring(virgola, num.length);
		number = num.substring(0, virgola);
		
		if (dec.length < 3)
		{
			if (dec.length < 2)
			{
				dec = dec + "0";
			}
			dec = dec + "0";
		}
	}
	else
	{

		dec = ",00";
		number = num;
}
	

	
	if (number.length == 0)
		number = "0";
			
	var i;
	var step = parseInt((number.length-1)/3);
	for(i=step; i>=1; i--)
	{
		gruppi[i] = number.substring(number.length-3, number.length);
		number = number.substring(0, number.length-3);
	}
	for(i=1; i<=step; i++)
	{
		number += "." + gruppi[i];
	}
	var val = number + dec;
	
	return number;
}

