$("#nazione").val(0);
$("#input_promo").val("");

var codiceOrdine = $("#tabella_carrello").attr("class");
var vettoreCodici = [];
var vettoreColori = [];
var vettoreTaglie = [];
var vettoreQta = [];

var numeroProdotti = 0;
var prezzoTotaleGlobale = 0;
var prezzoTotaleGlobaleTemp = 0;

/*var idNazioneGlobale = 0;*/
var idNazioneGlobale = 105;

var speseSpedizioneGlobale = 0;
var speseSpedizioneTemp = 0;

var codicePromoGlobale = '';
var codicePromoGlobaleTemp = 'iniziale';

var codiceClubGlobale = '';
var codiceClubGlobaleTemp = 'iniziale';

var modificheCoupon = 0;
var sconto = 0;

var modificheClub = 0;
var scontoClub = 0;

var esclusioneSconti = 0;

//$("#next input").attr("disabled",true);
//$("#error").text("Selezionare una nazione per la spedizione");

aggiornaVettori(); 
calcolaNumeroProdotti();
scriviNumeroProdotti();
calcolaPrezzoTotale();
scriviPrezzoTotale();
scriviSpeseSpedizione();

function aggiornaVettori() {
	$(".cella6","#tabella_carrello").each( function(i) {
			vettoreCodici[i] = $(this).attr("id");
		}
	);
	$(".cella6 select","#tabella_carrello").each( function(i) {
			vettoreQta[i] = $(this).val();
			vettoreColori[i] = $(this).attr("id");
			vettoreTaglie[i] = $(this).attr("class");
		}
	);
}

function calcolaNumeroProdotti() {
	numeroProdotti = 0;
	//jQuery.each(vettoreQta, function(i,x) { numeroProdotti += parseInt(x); });
	
	var len = vettoreQta.length;
	for (var i=0; i<len; i++) {
		numeroProdotti += parseInt(vettoreQta[i]);
	}
}

function scriviNumeroProdotti() { $("#contatore").text(numeroProdotti); }

function calcolaPrezzoTotale() {
	prezzoTotaleGlobale = 0;
	
	$(".cella7","#tabella_carrello").each( function(i) {
			if(i!=0){
				var prezzoParziale = $(this).text();
				//prezzoParziale = parseInt(prezzoParziale.substring(2,prezzoParziale.length));
				prezzoParziale = parseFloat(prezzoParziale.substring(2,prezzoParziale.length));
				prezzoTotaleGlobale += prezzoParziale;
			}
		}
	);
}

function scriviPrezzoTotale() {
		$("#prezzo_totale").text("\u20ac " + Math.ceil(prezzoTotaleGlobale*100)/100);
		$("input[name='totaleordine']").val(prezzoTotaleGlobale);
}

function scriviPrezzoTotaleTemp() {	$("#prezzo_totale").text("\u20ac " + Math.ceil(prezzoTotaleGlobaleTemp*100)/100); }

function scriviSpeseSpedizione() {
		$("#valore_spese_spedizione").text("\u20ac " + speseSpedizioneGlobale);
		$("input[name='spesespedizione']").val(speseSpedizioneGlobale);
}

function aggiornaDbQta(codiceSelezionato, coloreSelezionato, nuovaQta, tagliaSelezionata) {
	$.ajax({
		url: "carrello.cfm",
		data: {step:1, id:codiceSelezionato, colore:coloreSelezionato, qta:nuovaQta, taglia:tagliaSelezionata},
		type: "POST",
		async: false,
		cache: false		
	}); return false
}

function cancellaDettaglio(codiceOrdine, codiceArticolo, coloreSelezionato, tagliaSelezionata) {
	$.ajax({
		url: "/ajax/deleteDetail.cfm",
		data: {cod:codiceOrdine, id:codiceArticolo, colore:coloreSelezionato, taglia:tagliaSelezionata},
		type: "GET",
		async: false,
		cache: false		
	}); return false
}

function gestioneCoupon() {

	codicePromoGlobale = $("#input_promo").val();

	esclusioneSconti = 1;
	$("#input_club").val("");
	prezzoTotaleGlobale += scontoClub;
	scontoClub = 0;
	$("#messaggio_club").text("");

	if ((codicePromoGlobale !== codicePromoGlobaleTemp) || modificheCoupon === 1 ){

		codicePromoGlobaleTemp = '';
		
		if (codicePromoGlobale === '') {
			$("#messaggio").text("");
			if (modificheCoupon !== 1) { prezzoTotaleGlobale += sconto; }
			sconto = 0;
			calcolaSpeseSpedizione();
		}
		else {
				$.ajax({
					url: "/ajax/enableCoupon.cfm",
					data: {id:codicePromoGlobale, tot:prezzoTotaleGlobale},
					type: "POST",
					async: false,
					cache: false,
					success: function (value) {

						value = jQuery.trim(value);
						if (value.length > 0) {
							value = parseFloat(value);
								
							switch(value) {
								case -1:
									$("#messaggio").css("display","none");
									$("#messaggio").text("Codice promo non trovato");
									$("#messaggio").fadeIn("slow");
									prezzoTotaleGlobale += sconto;
									sconto = 0;
								break;
								case -2:
									$("#messaggio").css("display","none");
									$("#messaggio").text("Promozione inattiva");
									$("#messaggio").fadeIn("slow");
									prezzoTotaleGlobale += sconto;
									sconto = 0;
								break;
								case -3:
									$("#messaggio").css("display","none");
									$("#messaggio").text("Promozione scaduta");
									$("#messaggio").fadeIn("slow");
									prezzoTotaleGlobale += sconto;
									sconto = 0;
								break;
								case -4:
									$("#messaggio").css("display","none");
									$("#messaggio").text("Importo insufficiente per usufruire della promozione");
									$("#messaggio").fadeIn("slow");
									prezzoTotaleGlobale += sconto;
									sconto = 0;
								break;
								default:
									$("#messaggio").css("display","none");
									sconto = prezzoTotaleGlobale - value;
									prezzoTotaleGlobale -= sconto;
									codicePromoGlobaleTemp = codicePromoGlobale;
									$("#messaggio").text("Sconto promozione: " + Math.floor(sconto*100)/100 + " \u20ac");
									$("#messaggio").fadeIn("slow");
							}
							calcolaSpeseSpedizione();
						}
					}
				}
			); return false
		}
	}
}

function gestioneClub(){
	codiceClubGlobale = $("#input_club").val();

	esclusioneSconti = 2;
	$("#input_promo").val("");
	prezzoTotaleGlobale += sconto;
	sconto = 0;
	$("#messaggio").text("");
	
	if ((codiceClubGlobale !== codiceClubGlobaleTemp) || modificheClub === 1 ){

		codiceClubGlobaleTemp = '';
		
		if (codiceClubGlobale === '') {
			$("#messaggio_club").text("");
			if (modificheClub !== 1) { prezzoTotaleGlobale += scontoClub; }
			scontoClub = 0;
			calcolaSpeseSpedizione();
		}
		else {
				$.ajax({
					url: "/ajax/manageClub.cfm",
					data: {id:codiceClubGlobale, tot:prezzoTotaleGlobale},
					type: "GET",
					async: false,
					cache: false,
					success: function (value) {
						value = jQuery.trim(value);
						value = parseFloat(value);
						
						switch(value) {
							case -1:
								$("#messaggio_club").css("display","none");
								$("#messaggio_club").text("Codice club non trovato");
								$("#messaggio_club").fadeIn("slow");
								prezzoTotaleGlobale += scontoClub;
								scontoClub = 0;
							break;
							default:
								$("#messaggio_club").css("display","none");
								scontoClub = prezzoTotaleGlobale - value;
								prezzoTotaleGlobale -= scontoClub;
								codiceClubGlobaleTemp = codiceClubGlobale;
								$("#messaggio_club").text("Sconto club: " + Math.floor(scontoClub*100)/100 + " \u20ac");
								$("#messaggio_club").fadeIn("slow");
						}
						calcolaSpeseSpedizione();
					}
				}
			); return false
		}
	}
}

function calcolaSpeseSpedizione() {
	speseSpedizioneTemp = 0;
	if (idNazioneGlobale !== 0) {
		$.ajax({
			url: "/ajax/calcolaSpese.cfm",
			data: {idNaz:idNazioneGlobale,tot:prezzoTotaleGlobale},
			type: "GET",
			//async: false,
			cache: false,
			success: function (data) {
				data = jQuery.trim(data);
				//data = parseInt(data);
				data = parseFloat(data);
				speseSpedizioneTemp += data;
				speseSpedizioneGlobale = speseSpedizioneTemp;
				prezzoTotaleGlobaleTemp = prezzoTotaleGlobale + speseSpedizioneGlobale;
				scriviSpeseSpedizione();
				scriviPrezzoTotaleTemp();
			}
		}); return false
	}
	else {
		speseSpedizioneGlobale = speseSpedizioneTemp;
		prezzoTotaleGlobaleTemp = prezzoTotaleGlobale + speseSpedizioneGlobale;
		scriviSpeseSpedizione();
		scriviPrezzoTotaleTemp();
	}
}
/* --------------------------- */
/* --------------------------- */



/* ------------------------------- */
/* Gestione evento cambiamento qta */
/* ------------------------------- */
$(".cella6 select","#tabella_carrello").change( function() {
		var indice = $(".cella6 select","#tabella_carrello").index(this);
		var codiceSelezionato = $(this).parent().attr("id");
		var tagliaSelezionata = $(this).attr("class");
		var coloreSelezionato = $(this).attr("id");
		var nuovaQta = parseInt($(this).val());
		var vecchiaQta = 0;
		
		// aggiornamento record db
		aggiornaDbQta(codiceSelezionato, coloreSelezionato, nuovaQta, tagliaSelezionata);

		// memorizzo vecchia qta e aggiorno vettore globale qta con nuova qta
		vecchiaQta = vettoreQta[indice];
		vettoreQta[indice] = nuovaQta;

		/* calcolo il nuovo prezzo parziale (prezzo unitario * nuova qta) */
		var prezzoUnitario = $(".cella5","#tabella_carrello").eq(indice+1).text();
		prezzoUnitario = prezzoUnitario.substring(2,prezzoUnitario.length);
		//prezzoUnitario = parseInt(prezzoUnitario);
		prezzoUnitario = parseFloat(prezzoUnitario);
		
		prezzoUnitario = Math.floor(prezzoUnitario*100)/100;
		
		/* aggiorno prezzoParziale */ 
		var prezzoParziale = Math.floor(prezzoUnitario * nuovaQta * 100)/100;
		$(".cella7","#tabella_carrello").eq(indice+1).text("\u20ac " + prezzoParziale);

		calcolaNumeroProdotti();
		scriviNumeroProdotti();
		calcolaPrezzoTotale();
		scriviPrezzoTotale();
		
		if(esclusioneSconti != 0) {
			if(esclusioneSconti==1) {
				modificheCoupon = 1;
				gestioneCoupon();
				modificheCoupon = 0;
			}
			else {
				modificheClub = 1;
				gestioneClub();
				modificheClub = 0;
			}
		}
	}
);
/* --------------------------- */
/* --------------------------- */



/* ------------------------------------------- */
/* Gestione evento eliminazione di un prodotto */
/* ------------------------------------------- */
$(".cella8 a","#tabella_carrello").click( function() {
		var indice = $(".cella8 a","#tabella_carrello").index(this);
		
		var codiceProdottoEliminato = $(this).parent().attr("id");
		var codiceColoreEliminato = $(this).attr("id");
		var codiceTagliaEliminata = $(this).attr("class");

		cancellaDettaglio(codiceOrdine, codiceProdottoEliminato, codiceColoreEliminato, codiceTagliaEliminata);
		
		//fade out e rimuovi dal DOM
		$(".riga_tabella_carrello","#tabella_carrello").eq(indice+1).fadeOut("slow").remove();
		
		//aggiorno i vettori di codici, colori e qta
		vettoreCodici = jQuery.grep(vettoreCodici, function(n, i) { return (i != indice); });
		vettoreColori = jQuery.grep(vettoreColori, function(n, i) { return (i != indice); });
		vettoreTaglie = jQuery.grep(vettoreTaglie, function(n, i) { return (i != indice); });
		vettoreQta = jQuery.grep(vettoreQta, function(n, i) { return (i != indice); });
		
		calcolaNumeroProdotti();
		scriviNumeroProdotti();
		
		if(numeroProdotti === 0) {
			$("#tabella_carrello").html("Nessun prodotto presente nel carrello.<br /><br /><a href=\"/\">Torna alla homepage</a>.");
		}
		
		calcolaPrezzoTotale();
		scriviPrezzoTotale();

		if(esclusioneSconti != 0) {
			if(esclusioneSconti==1) {
				modificheCoupon = 1;
				gestioneCoupon();
				modificheCoupon = 0;
			}
			else {
				modificheClub = 1;
				gestioneClub();
				modificheClub = 0;
			}
		}
	}
);
/* --------------------------- */
/* --------------------------- */



/* ---------------------------------------- */
/* Gestione evento click attivazione coupon */
/* ---------------------------------------- */
$("#attiva_promo").click(function() {
		gestioneCoupon();
		return false
	}
);
/* --------------------------- */
/* --------------------------- */



/* ---------------------------------------- */
/* Gestione evento click attivazione club   */
/* ---------------------------------------- */
$("#attiva_club").click(function() {
		gestioneClub();
		return false
	}
);
/* --------------------------- */
/* --------------------------- */



/* --------------------------- */
/* Gestione selezione nazione */
/* --------------------------- */
$("#nazione").change(function() {
		$("#error").css("visibility","hidden");
		$("#next input").attr("disabled",false);
		
		idNazioneGlobale = $(this).val();
		if(idNazioneGlobale == 0) { 
			$("#next input").attr("disabled",true);
			$("#error").css("visibility","visible").text("Selezionare una nazione per la spedizione");
		}
		calcolaSpeseSpedizione();
	}
);
/* --------------------------- */
/* --------------------------- */