var vettoreQta = [];
var vettoreColori = [];
var vettoreCodici = [];
var numeroProdotti = 0;
var prezzoTotaleGlobale = 0;
var prezzoTotaleGlobaleTemp = 0;
var idNazioneGlobale = 0;
var speseSpedizioneGlobale = 0;
var speseSpedizioneTemp = 0;
var assicurataGlobale = 0;

var concordataGlobale = 0;

var radioGlobale = 0;
var codicePromoGlobale = '';
var codicePromoGlobaleTemp = 'iniziale';
var modifiche = 0;
var sconto = 0;
var sedePPGlobale = 0;

var sogliaTrasportoGratis = $("#tabella_carrello").attr("rel");

var extraSconto = 0;

/* inizializzazione tendine spedizione e radio buttons */
$("#ppsedi").val(0);
$("#nazioni").val(0);
$("#assicurata").attr("checked",false);

$("#concordata").attr("checked",false);

$(":radio").attr("checked",false);
/* --- --- --- --- --- --- --- --- */


var codiceOrdine = $("#tabella_carrello").attr("class");

$(".riga_tabella_carrello:odd").addClass("riga_dispari");
$("#next input").attr("disabled",true);
$("#next #error").text("Selezionare una tipologia di spedizione");

aggiornaVettori(); 
calcolaNumeroProdotti();
scriviNumeroProdotti();
calcolaPrezzoTotale();
scriviPrezzoTotale();
scriviSpeseSpedizione();

function aggiornaVettori() {
	$(".cella6 select").each( function(i) {
			vettoreQta[i] = $(this).val();
			vettoreColori[i] = $(this).attr("id");
			vettoreCodici[i] = $(this).attr("class");
		}
	);
}

function calcolaNumeroProdotti() {
	numeroProdotti = 0;
	jQuery.each(vettoreQta, function(i,x) { numeroProdotti += parseInt(x); });
}

function scriviNumeroProdotti() { $("#contatore").text(numeroProdotti); }

function gestioneExtraSconto() {
	$.ajax({
		url: "gestioneExtraSconto.cfm",
		data: {totale:prezzoTotaleGlobale},
		type: "GET",
		async: false,
		cache: false,
		success: function (value) {
			value = jQuery.trim(value);
			extraSconto = parseFloat(value);
		}
	}); return false
}


function calcolaPrezzoTotale() {
	prezzoTotaleGlobale = 0;
	
	$(".cella7").each( function(i) {
			if(i!=0){
				var prezzoParziale = $(this).text();
				prezzoParziale = parseInt(prezzoParziale.substring(2,prezzoParziale.length));
				prezzoTotaleGlobale += prezzoParziale;
			}
		}
	);
	
	gestioneExtraSconto(); 
	
	if (extraSconto < 0) {
		var msgExtraSconto = $("#msgExtraSconto");
		if (msgExtraSconto.length > 0) {
			msgExtraSconto.html("(con extra sconto di " + -extraSconto + " \u20ac)");
		}
		else {
			msgExtraSconto = jQuery("<span></span>").attr("id","msgExtraSconto");
			msgExtraSconto.html("(con extra sconto di " + -extraSconto + " \u20ac)");
			msgExtraSconto.appendTo("#etichetta_totale");
		}
		
		var msgAreaExtraSconto = $("#msgAreaExtraSconto");
		if (msgAreaExtraSconto.length > 0) {
			msgAreaExtraSconto.html("Complimenti, L'importo del suo ordine  ha raggiunto la soglia di extra sconto pari a euro " + -extraSconto);
		}
		else {
			msgAreaExtraSconto = jQuery("<span></span>").attr("id","msgAreaExtraSconto");
			msgAreaExtraSconto.html("Complimenti, L'importo del suo ordine  ha raggiunto la soglia di extra sconto pari a euro " + -extraSconto);
			msgAreaExtraSconto.appendTo("#areaExtraSconto");
		}
	}
	else {
		var msgExtraSconto = $("#msgExtraSconto");
		msgExtraSconto.remove();
		
		var msgAreaExtraSconto = $("#msgAreaExtraSconto");
		msgAreaExtraSconto.remove();
	}
	
	prezzoTotaleGlobale += extraSconto;
}

function scriviPrezzoTotale() {	$("#prezzo_totale").text("\u20ac " + prezzoTotaleGlobale); }
function scriviPrezzoTotaleTemp() {	$("#prezzo_totale").text("\u20ac " + prezzoTotaleGlobaleTemp); }
function scriviSpeseSpedizione() { $("#valore_spese_spedizione").text("\u20ac " + speseSpedizioneGlobale); }
function aggiornaDbQta(codiceSelezionato, coloreSelezionato, nuovaQta) {
	$.ajax({
		url: "carrello.cfm",
		data: {id:codiceSelezionato, colore:coloreSelezionato, qty:nuovaQta, swap:1},
		type: "GET",
		async: false,
		cache: false		
	}); return false
}
function cancellaDettaglio(idOrd, codArt, coloreSelezionato) {
	$.ajax({
		url: "deleteDetail.cfm",
		data: {cod:idOrd, id:codArt, colore:coloreSelezionato},
		type: "GET",
		async: false,
		cache: false		
	}); return false
}

function gestioneCoupon(){
	codicePromoGlobale = $("#input_promo").val();
	if ((codicePromoGlobale != codicePromoGlobaleTemp) || modifiche == 1)
		if (codicePromoGlobale == '') {
			$("#messaggio").text("");
			if (modifiche != 1) prezzoTotaleGlobale += sconto;
			sconto = 0;
			calcolaSpeseSpedizione();
		}
		else {
				$.ajax({
					url: "enableCoupon.cfm",
					data: {id:codicePromoGlobale, tot:prezzoTotaleGlobale},
					type: "GET",
					async: false,
					cache: false,
					success: function (value) {

						value = jQuery.trim(value);
						value = parseInt(value);
							
						switch(value) {
							case -1:
								$("#messaggio").text("Codice promo non trovato");
								prezzoTotaleGlobale += sconto;
								sconto = 0;
							break;
							case -2:
								$("#messaggio").text("Promozione inattiva");
								prezzoTotaleGlobale += sconto;
								sconto = 0;
							break;
							case -3:
								$("#messaggio").text("Promozione scaduta");
								prezzoTotaleGlobale += sconto;
								sconto = 0;
							break;
							case -4:
								$("#messaggio").text("Importo insufficiente per usufruire della promozione");
								prezzoTotaleGlobale += sconto;
								sconto = 0;
							break;
							default:
								sconto = prezzoTotaleGlobale - value;
								prezzoTotaleGlobale -= sconto;
								$("#messaggio").text("Sconto promozione: " + sconto + " \u20ac");
						}
						calcolaSpeseSpedizione();
					}
				}
			); return false
		}
}

function gestioneAssicurata() {

	if (assicurataGlobale == 1) { 
		speseSpedizioneTemp = 6;
	}
}

function gestioneConcordata() {

	if (concordataGlobale == 1) { 
		speseSpedizioneTemp += 7;
	}
}


function calcolaSpeseSpedizione() {
	if (radioGlobale != 0)
		if (radioGlobale == 1) {
			speseSpedizioneGlobale = 0;
			scriviSpeseSpedizione();
			scriviPrezzoTotale();
		}
		else
			if (radioGlobale == 2) {
				speseSpedizioneTemp = 0;
				gestioneAssicurata();
				
				gestioneConcordata();
				
				$.ajax({
					url: "calcolaSpese.cfm",
					data: {idNaz:105, tot:prezzoTotaleGlobale, soglia:sogliaTrasportoGratis},
					type: "GET",
					//async: false,
					cache: false,
					success: function (data) {
						data = jQuery.trim(data);
						data = parseInt(data);
						speseSpedizioneTemp += data;
						speseSpedizioneGlobale = speseSpedizioneTemp;
						prezzoTotaleGlobaleTemp = prezzoTotaleGlobale + speseSpedizioneGlobale;
						scriviSpeseSpedizione();
						scriviPrezzoTotaleTemp();
					}
				}); return false
			}
			else {
				speseSpedizioneTemp = 0;
				gestioneAssicurata();
				
				gestioneConcordata();
				
				if (idNazioneGlobale != 0) {
					$.ajax({
						url: "calcolaSpese.cfm",
						data: {idNaz:idNazioneGlobale, tot:prezzoTotaleGlobale, soglia:sogliaTrasportoGratis},
						type: "GET",
						//async: false,
						cache: false,
						success: function (data) {
							data = jQuery.trim(data);
							data = parseInt(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").change( function() {
		var indice = $(".cella6 select").index(this);
		var codiceSelezionato = $(this).attr("class");
		var coloreSelezionato = $(this).attr("id");
		var nuovaQta = parseInt($(this).val());
		var vecchiaQta = 0;
		
		// aggiornamento record db
		aggiornaDbQta(codiceSelezionato, coloreSelezionato, nuovaQta);

		// 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").eq(indice+1).text();
		prezzoUnitario = prezzoUnitario.substring(2,prezzoUnitario.length);
		prezzoUnitario = parseInt(prezzoUnitario);
		
		/* aggiorno prezzoParziale */ 
		var prezzoParziale = prezzoUnitario * nuovaQta;
		$(".cella7").eq(indice+1).text("\u20ac " + prezzoParziale);

		calcolaNumeroProdotti();
		scriviNumeroProdotti();
		calcolaPrezzoTotale();
		scriviPrezzoTotale();
		
		if(radioGlobale == 0)
			radioGlobale = 1;
		gestioneCoupon();
	}
);
/* --------------------------- */
/* --------------------------- */



/* ------------------------------------------- */
/* Gestione evento eliminazione di un prodotto */
/* ------------------------------------------- */
$(".cella8 a").click( function() {
		var indice = $(".cella8 a").index(this);
		var codiceProdottoEliminato = $(this).attr("id");
		var codiceColoreEliminato = $(this).attr("class");

		cancellaDettaglio(codiceOrdine, codiceProdottoEliminato, codiceColoreEliminato);
		
		//fade out e rimuovi dal DOM
		$(".riga_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); });
		vettoreQta = jQuery.grep(vettoreQta, function(n, i) { return (i != indice); });
		
		calcolaNumeroProdotti();
		scriviNumeroProdotti();
		if(numeroProdotti == 0) {
			$("#tabella_carrello").fadeOut("slow").html("<h5>Nessun prodotto nel carrello.<br /><br /><a href=\"/\">Torna alla homepage</a> oppure visiona i prodotti attualmente in <a href=\"/promo.cfm\">promozione</a></h5>").fadeIn("slow");
		}
		calcolaPrezzoTotale();
		scriviPrezzoTotale();

		modifiche = 1;
		if(radioGlobale == 0)
			radioGlobale = 1;
		gestioneCoupon();
		modifiche = 0;
	
	}
);
/* --------------------------- */
/* --------------------------- */



/* ---------------------------------------- */
/* Gestione evento click attivazione coupon */
/* ---------------------------------------- */
$("#attiva_promo").click(function() {
		if (radioGlobale == 0) radioGlobale = 1;
		modifiche=1;
		gestioneCoupon();
		modifiche=0;
		return false
	}
);
/* --------------------------- */
/* --------------------------- */



/* --------------------------- */
/* Gestione click checkbox assicurata */
/* --------------------------- */
$("#assicurata").click(function() {
		
		assicurataGlobale = ($(this).is(':checked')) ? 1 : 2;
		if (radioGlobale == 0) {
			$("#error").css("visibility","visible").text("Selezionare una tipologia di spedizione");
		}
		else {
			if (radioGlobale == 2)
				$(":radio[value='Pickpay']").attr("checked", true);
			else
				if(radioGlobale == 3) $(":radio[value='Corriere']").attr("checked", true);
		}
		assicurataGlobale = ($(this).is(':checked')) ? 1 : 2;
		calcolaSpeseSpedizione();

	}
);
/* --------------------------- */
/* --------------------------- */

/* --------------------------- */
/* Gestione click checkbox concordata */
/* --------------------------- */
$("#concordata").click(function() {
		
		concordataGlobale = ($(this).is(':checked')) ? 1 : 2;
		if (radioGlobale == 0) {
			$("#error").css("visibility","visible").text("Selezionare una tipologia di spedizione");
		}
		else {
			if (radioGlobale == 2)
				$(":radio[value='Pickpay']").attr("checked", true);
			else
				if(radioGlobale == 3) $(":radio[value='Corriere']").attr("checked", true);
		}
		concordataGlobale = ($(this).is(':checked')) ? 1 : 2;
		calcolaSpeseSpedizione();

	}
);
/* --------------------------- */
/* --------------------------- */


/* --------------------------- */
/* Gestione selezione radio */
/* --------------------------- */
$(":radio[value='Sede']").click(function() {
		$("#next input").attr("disabled",false);
		$("#error").css("visibility","hidden");
		
		radioGlobale = 1;
		$("#ppsedi").attr("disabled", true);
		$("#nazioni").attr("disabled", true);
		$("#assicurata").attr("disabled", true);
		
		$("#concordata").attr("disabled", true);
		
		calcolaSpeseSpedizione();
	}
);

$(":radio[value='Pickpay']").click(function() {
		if(sedePPGlobale == 0) { 		
			$("#next input").attr("disabled",true);
			$("#error").css("visibility","visible").text("Selezionare una sede per il ritiro pick & pay");
		}
		else {
			$("#next input").attr("disabled",false);
			$("#error").css("visibility","hidden");
		}

		radioGlobale = 2;
		$("#ppsedi").attr("disabled", false);
		$("#nazioni").attr("disabled", true);
		$("#assicurata").attr("disabled", false);
		
		$("#concordata").attr("disabled", false);
		
		calcolaSpeseSpedizione();
	}
);

$(":radio[value='Corriere']").click(function() {
		if(idNazioneGlobale == 0) {
			$("#next input").attr("disabled",true);
			$("#error").css("visibility","visible").text("Selezionare una nazione per la spedizione");
		}
		else {
			$("#next input").attr("disabled",false);
			$("#error").css("visibility","hidden");
		}

		radioGlobale = 3;
		$("#ppsedi").attr("disabled", true);
		$("#nazioni").attr("disabled", false);
		$("#assicurata").attr("disabled", false);
		
		$("#concordata").attr("disabled", false);
		
		calcolaSpeseSpedizione();
	}
);
/* --------------------------- */
/* --------------------------- */



/* --------------------------- */
/* Gestione selezione nazione */
/* --------------------------- */
$("#nazioni").change(function() {
		$("#error").css("visibility","hidden");
		$("#next input").attr("disabled",false);
		
		$(":radio[value='Corriere']").attr("checked", true);
		radioGlobale = 3;
		idNazioneGlobale = $(this).val();
		if(idNazioneGlobale == 0) { 
			$("#next input").attr("disabled",true);
			$("#error").css("visibility","visible").text("Selezionare una nazione per la spedizione");
		}
		calcolaSpeseSpedizione();
	}
);
/* --------------------------- */
/* --------------------------- */

/* --------------------------- */
/* Gestione selezione sede Pick & Pay (utile solo per determinare se abilitare il tasto Continua) */
/* --------------------------- */
$("#ppsedi").change(function() {
		$("#error").css("visibility","hidden");
		$("#next input").attr("disabled",false);
		
		$(":radio[value='Pickpay']").attr("checked", true);
		radioGlobale = 2;
		sedePPGlobale = $(this).val();
		if(sedePPGlobale == 0) { 
			$("#next input").attr("disabled",true);
			$("#error").css("visibility","visible").text("Selezionare una sede per il ritiro pick & pay");
		}
		calcolaSpeseSpedizione();
	}
);
/* --------------------------- */
/* --------------------------- */
