// JavaScript Document


$.fn.serializeObject = function()
{
    var o = {};
    var a = this.serializeArray();
    $.each(a, function() {
        if (o[this.name]) {
            if (!o[this.name].push) {
                o[this.name] = [o[this.name]];
            }
            o[this.name].push(this.value || '');
        } else {
            o[this.name] = this.value || '';
        }
    });
    return o;
};



$(function() {
//document ready
$("#loginSubmit").click(callLogin);

$(".serviceMenu .userLogout a").click(callLogout);
//fine document ready
});


function callLogin() {
	var submit = $(this);
	var username = $("#loginUsername").val();
	var password = $("#loginPassword").val();
	login(username, password);
	
	return false;
}

function dialogError(testo){
	$("<div title='ERRORE'>" + testo + "</div>").dialog({ buttons: { "Chiudi" : function() { $(this).dialog("close"); } } });
}

function dialogAlert(testo, autoclose){
	var dialog = $("<div title='OPERAZIONE EFFETTUATA'>" + testo + "</div>").dialog({ buttons: { "Chiudi" : function() { $(this).dialog("close"); } } });
	if (autoclose) {
		setTimeout(function(){
			dialog.parent(".ui-dialog").fadeOut(800,function() {dialog.dialog("close")});			
		},1500);
	}
}

function callCarrello(controller, method, data, callback) {
  $.extend(data,{ format:"json"});
  $.getJSON('https://www.mondadorieducation.it/app/mondadorieducation/'+controller+'/'+method+'?jsoncallback=?', data, callback);
}


function richiediInfoCarrello() {
	callCarrello("carrello", "infoCarrelloJson", {}, popolaCarrello);
}


function popolaCarrello(value) {
	var count = 0;
	var total = 0; 
	var result = value.result; 
	if (result == "OK") {
		count = value.data.numero;
		total = value.data.importo;   
	}
	$("span.cartNrItems").html(count);
	$("#cartBox .riepilogoPrezzo").html("&euro; " + total.toFixed(2).replace(".",","));
}

function reloadPage(){
	var currentURL = window.location;
	var url=currentURL.toString();
	if(url.search("/libro/") != -1){
		$('#popinSegnalibri12').show();
		$('#popinScelta12').show();
		$('#popinSceltaOmaggio12').show();
		$('a[class="addToCart"]').show();
	}		
}

function reloadPagelogout(){
	var currentURL = window.location;
	var url=currentURL.toString();
/*	if(url.search("/libro/") != -1){
		$('#popinSegnalibri12').hide();
		$('#popinScelta12').hide();
		$('#popinSceltaOmaggio12').hide();
		$('a[class="addToCart"]').hide();
	}
*/  		
}

function login(username, password) {
	setToLoading($("#loginBox"));
	callCarrello("login", "loginJsonp", {'username' : username, 'password' : password}, function(value){
		setToNormal($("#loginBox"));
		var result = value.result;
		if (result == 'OK') {
			popolaCarrello(value);
			$("#loginBox").hide(); 
			var serviceMenu = $("div.serviceMenu");
			$("ul.userLogged li.userNome").html(value.data.username);
			var loggedContent = $("#nascosto").children().detach();
			var unloggedContent = serviceMenu.children(":not(#nascosto)").detach();
			serviceMenu.append(loggedContent);
			$("#nascosto").append(unloggedContent);
			reloadPage();
		} else {
			$("#formLogin .loginError").show();
			var str="Errore: Nome utente e/o Password errati.";
			dialogError(str);
		}
	});
	
}



function callLogout() {
	var clicked = $(this);
	setToLoading(clicked.parent());
	callCarrello("login", "logoutJsonp", {}, function(data) {
		setToNormal(clicked.parent());
		var result = data.result;
		if (result == 'OK') {
			$("ul.userLogged li.userNome").html("");
			var serviceMenu = $("div.serviceMenu");
			var unloggedContent = $("#nascosto").children().detach();
			var loggedContent = serviceMenu.children(":not(#nascosto)").detach();
			serviceMenu.append(unloggedContent);
			$("#nascosto").append(loggedContent);
			reloadPagelogout();
		}
	});
	return false;
}

function aggiungiAiPreferitiJs(valori,caller) {
	setToLoading(caller);
	callCarrello("preferiti", "aggiungiJson", valori, function(value){
		setToNormal(caller);
		var result = value.result;
		if(result == 'OK'){
			var str = "Il libro &egrave; stato aggiunto ai preferiti.";
			dialogAlert(str,true);
		}else{
			var azione  = "l'aggiunta ai preferiti di questo ebook";
			var str = gestisciErrore(value, azione);
			
			dialogError(str);
		}
	});
}


function aggiungiAlCarrelloJs(valori, caller) {
	setToLoading(caller);
	callCarrello("carrello", "aggiungiJson", valori, function(value){
		setToNormal(caller);
		var result = value.result;
		if(result == 'OK'){
			richiediInfoCarrello();
			var str = "Il libro &egrave; stato aggiunto al carrello personale.";
			dialogAlert(str,true);
		}else{
			var azione  = "l'acquisto di questo ebook";
			var str = gestisciErrore(value, azione);
			
			dialogError(str);
		}
	});
}

function gestisciErrore(value, azione) {
	var result;
	if (value.errorCode == "ERRNOLOG") {
		result='Per completare '+ azione +' effettua la log in <a href="https://www.mondadorieducation.it/login/?urlRitorno=carrello/mostra/">qui</a>.<br /><br /> Se non sei ancora registrato, registrati <a href="http://register.mondadori.it/app/register/module/registrazione/Iscrizione/iscrivi?idServizio=ACQUISTI&idApplicazione=PIANETA_SCUOLA&idArea=PS&urlRitorno=https://www.mondadorieducation.it/">qui</a>.';
	} else {
		result = 'Non &egrave; stato possibile completare '+azione+' :<br />'+value.error+'.';
	}

	return result;
}	


function scaricaOmaggioJs(valori) {
	callCarrello("ordine", "aggiungiOmaggioJson", valori, function(value){
		var result = value.result;
		if(result == 'OK'){
			var urlscarico="https://www.mondadorieducation.it/ordine/dettaglio/" + value.data + "/";
			var str="Il codice &egrave; stato inserito con successo.<br />";
			str += "Puoi scaricare il volume attraverso la pagina del <a href='" + urlscarico +  "'>dettaglio ordine</a>";
			dialogAlert(str);
		}else{
			
			var azione="lo scaricamento con codice";
						
			var str = gestisciErrore(value, azione);
			
			dialogError(str);
		}
	});
}


function setToLoading(element) {
	if (element != null) {
	element.block( {
		message : '<img src="/design/mondadorishared/images/spinner.gif" />',
		css : {
			border : '0',
			backgroundColor : '#EEE',
			opacity : 0.6
		},
		overlayCSS : {
			backgroundColor : '#EEE',
			opacity : 0.8
		},
		centerX : true,
		centerY : true
	});
	}	
}


function setToNormal(element) {
	if (element != null) {
	element.unblock();
	}
}
