(function($) {
	$.log = function(msg) {if((document.location.href.indexOf(".ilsole24ore.it") > -1) && (typeof(console.log) != "undefined")) console.log(msg);};
	$.fn.checkacquisto = function(settings){
		var cfg = {};
		var $img;
		var current;
		$.extend(cfg, settings);

		var _channel_url = function(){
			var path_name = document.location.pathname; // path di default
			var len = cfg.sfogliatore.length;
			var str_find = cfg.sfogliatore.substring(0,len-1);

			if(path_name.indexOf(str_find) != -1)
				var path_name = path_name.replace(str_find, "/");

			return path_name;
		};

		var _URL = _channel_url() + "index.php";

		var params_sfoglio = "newspaper=##TESTATA##&issue=##ISSUE##&edition=##EDIZIONE##&startpage=1&displaypages=##DISPLAYPAGES##";
		var openpop = function(target){
			_choosepopup(target, current);
		};
		var _go = function(){
			var displaypages = current.attr("data-testata") == "GNZ" ? "1" : "2";
			document.location = _channel_url() + cfg.sfogliatore.substring(1) + params_sfoglio.replace("##TESTATA##", current.attr("data-testata")).replace("##ISSUE##", current.attr("data-issue")).replace("##EDIZIONE##", current.attr("data-edizione")).replace("##DISPLAYPAGES##", displaypages);
		};

		var openissue = function(e){
			// sfogliatore posizionato in modo fisso
			current = $(e.target);
			if(getCookie(cookiesfoglia.name) == encodeURI("{\"preview\":\"on\"}") || 
				getCookie(cookiesfoglia.name) == "{\"preview\":\"on\"}") _go(); // in caso di anteprima vado direttamente
			else{
				if(!_ACTIVE_POP){
					if(current.is(".center") || current.is(".edition-wrap img") || current.is(".result img.noinserts") || current.is("img.coverimg")){
						if(getCookie(cookiesfoglia.name) == null || getCookie(cookiesfoglia.name) == "") cookiesfoglia.add("off");
						loading(true);
						_ACTIVE_POP = true;
						var data = {};
						data.checkacquisto = 1;
						data.date = current.attr("data-issue");
						data.prodid = current.attr("data-pid");
						data.rand = new Date().getTime();
						var testata = current.attr("data-testata");
						$.ajax({
							url: _URL,
							data: data,
							error: _ERROR,
							success: function(response){
								loading(false);
								if (response == "true") {
									if (['S24', 'HTS', 'ILS'].indexOf(testata) >= 0) {
										// per queste testate visualizzo il disclaimer
										window._go = _go;
										checkDisclaimer(current);
									} else {
										_go();
									}
								} else {
									if (typeof(unloadenabled) != "undefined") {
										unloadenabled = false;
									}
									openpop(current);
								}
							}
						});
					}
				}
			}
		}; //openissue

		return this.each(function(){
			var $parent = $(this).parent();

			$img = $(this);
			$img.bind(_CLICK, openissue);
		});
	};

	$.fn.useSVG = function(settings) {
		var cfg = {};
		$.extend(cfg, settings);

		var _cannotuseSVG = navigator.userAgent.indexOf("Android 2.3") == -1;

		return this.each(function(){
			if(!_cannotuseSVG) {
				var source = $(this).attr("data").replace(".svg", ".png");
				$(this).replaceWith("<img src=\"" + source + "\" />");
			}
		});
	};
})(jQuery);

var codes = {
	"300": "Hai esaurito le sessioni per il tuo utente",
	"1": "Non hai i permessi per visualizzare il contenuto.",
	"2": "Per accedere al servizio e' necessario essere autenticato.",
	"3": "Parametro prodid mancante.",
	"4": "Parametro testata mancante.",
	"502": "Si e' verificato un problema, si prega di riprovare piu' tardi.",
	"500": "La tua sessione e' scaduta.",
	"1001" : "<strong>Nome utente o password errati.</strong><a href=\"https://du.ilsole24ore.com/DU/passwordReminder.aspx?RURL=http%3A//www.sanita.ilsole24ore.com/vetrina/\" class=\"recupera\" id=\"pwdreminder2\">Recupera Password</a>"
};
var _URL_POP = "static/popup-buy.php";
var _ERROR = function(jqXHR, ts, et){$.log("textStatus: " + ts + " errorThrown: " + et);};
var _ACTIVE_POP = false;
var _authorized = false; // questa variabile serve per il controllo d'accesso in caso ci sia un errore sul server delle sessioni.

var isAndroid = navigator.userAgent.indexOf("Android") > -1;
var isiOS = (navigator.userAgent.indexOf("iPad") > -1) || (navigator.userAgent.indexOf("iPhone") > -1)|| (navigator.userAgent.indexOf("iPod") > -1);

if(typeof(_CLICK) == "undefined") _CLICK = (_HAS_TOUCH)?"tap":"click";
var _loading = function(e){
	$(".filter select").show();
	if(e.type == "overlayloaded") {
		if (typeof(userName) != "undefined")	// sono nello sfogliatore
			$("#loading").append("<img src=\"../img2012/loader-2.gif\" />");
		else $("#loading").append("<img src=\"img2012/loader-2.gif\" />");
		$(".loading").bind("overlayloaded", _loading).bind("overlayclosing", _loading).overlay();
	} else {
		$("#over, #loading").remove();
		$(".loading").unbind("overlayloaded", _loading).unbind("overlayclosing", _loading);
		$("#overlay").remove();
	}
};
var loading = function (flag) {
	
	if($("body .loading").length == 0) $("body").append("<div class=\"loading\"></div>");
	if(flag) $(".loading").bind("overlayloaded", _loading).bind("overlayclosing", _loading).overlay({hideobjects:false,overlay: "over",animate:false,click2close:false,w:70, h:70,container: "loading"});
	else $(".loading").trigger("overlayclosing");
};
var cookiesfoglia =  {
	webdomain: "",
	name: "",
	remove: function(){
		deleteCookie(cookiesfoglia.name, "/", cookiesfoglia.webdomain);
	},
	add: function(value){
		val = "{\"preview\":\"" + value + "\"}";

		if (navigator.userAgent.toLowerCase().indexOf("msie") != -1)
			val = encodeURI("{\"preview\":\"" + value + "\"}");

		setCookie(cookiesfoglia.name,val,1,"/",cookiesfoglia.webdomain);

	}
};
var _choosepopup = function(target, current){
	_get_pid(current);
	var currentTarget = target;
	if(target.attr("id")=="covercarousel") {
		currentTarget = $("#caption a.btn.red");
	}

/*	if(!isAuthenticated) target.bind("overlayloaded", _complete).bind("overlayclosing", _closing).overlay({w:364,h:322, container:"loginplease"});
	else target.bind("overlayloaded",{img:current}, _complete_loggedin).bind("overlayclosing", _closing).overlay({w:466,h:372, container:"buyplease"});
*/
	var pid = current.attr("data-pid");
	var issueDate = current.attr("data-issue");
	if (navigator.userAgent.match(/MSIE 8/)) {
		var fIssueDate = issueDate.substring(0,4)+"/"+issueDate.substring(4,6)+"/"+issueDate.substring(6,8);
	} else {
		var fIssueDate = issueDate.substring(0,4)+"-"+issueDate.substring(4,6)+"-"+issueDate.substring(6,8);
	}

	var allCookies=document.cookie;var soleAuthStart=allCookies.indexOf("SoleAuth");if(soleAuthStart>=0){isAuthenticated=true;}else{isAuthenticated=false;}
	if (pid == "1-web") {
		var dotw = $.datepicker.formatDate("D", new Date(fIssueDate));
		if (dotw == "Sun") {
			h = 655;
		} else {
			h = 415;
		}
		currentTarget.bind("oload",{img:current}, _complete_loggedin).bind("overlayclosing", _closing).overlay({w:740,h:h, container:"buyplease2020",completeOverlay:"oload"});
	} else if (pid == "613" || pid == "614") {
		h = 415;
		currentTarget.bind("oload",{img:current}, _complete_loggedin).bind("overlayclosing", _closing).overlay({w:740,h:h, container:"buyplease2020",completeOverlay:"oload"});
	} else {
		var h = 320;
		if(!isAuthenticated) h = 505;
		currentTarget.bind("oload",{img:current}, _complete_loggedin).bind("overlayclosing", _closing).overlay({w:466,h:h, container:"buyplease",completeOverlay:"oload"});
	}
};
var _closeoverlay = function (e, selector) {
	var sel = selector === undefined ? '#overlay' : selector;
	$(sel).trigger("click");
};

var _complete = function(e){
	html = "<h2>Accesso ai contenuti</h2><a href=\"javascript:void(0)\" id=\"closeme\">X</a>"
		+ "<p><strong>Gentile Utente,</strong><br/>questo servizio &egrave; riservato ai soli utenti abbonati.<br/>Effettua l'accesso o abbonati.</p>"
		+ "<a href=\"http://www.shopping24.ilsole24ore.com/sh4/catalog/Product.jsp?PRODID=prod990019\" class=\"btn red\" target=\"_blank\">Abbonati ora</a>"
		+ "<a href=\"javascript:void(0)\" class=\"btn red scrollto\">Effettua il log</a>";
	$("#loginplease").append(html);
	$("#loginplease #closeme").bind(_CLICK, _closeoverlay);
	$("#loginplease .scrollto").bind(_CLICK, function(e){
		e.preventDefault();
		e.stopPropagation();

		$("#overlay").trigger("click");
	});
};

var _complete_loggedin = function(e){
	// faccio la get del file statico
	$.ajax({
		url: _getRootPath() + _URL_POP + "?pid="+ $(e.target).attr("data-pid") + "&rnd=" + new Date().getTime() + "&dateIssue=" + $(e.target).attr("data-issue"),
		error: _ERROR,
		success: function(resp){
			var isProfWeb = function() {
				return location.hostname === 'profquotidiano.ilsole24ore.com' || location.search.indexOf('canale=ITPROF2WEB') !== -1;
			};
			if (isProfWeb()) {
				e.target.classList.add('modal-opener');
				_closeoverlay();
				showLogin();
				return;
			}
			if ($("#buyplease2,#buyplease2020").length > 0) {
				$("#buyplease2,#buyplease2020").append($.trim(resp));
				$("#buyplease2 #closeme,#buyplease2020 #closeme").bind(_CLICK, _closeoverlay);
				$("#buyplease2020 #accedipopup").bind(_CLICK, function(e){
					e.preventDefault();
					e.stopPropagation();
	
					_closeoverlay();
					showLogin();
				});
				$("#buyplease2 img#popupimg").attr("src", e.data.img.attr("src"));
	
				$("#buyplease2 .scrollto").bind(_CLICK, function(e){
					e.preventDefault();
					e.stopPropagation();
	
					$("#overlay").trigger("click");
					$.scrollTo({top: "0px", left: "0px"}, 800);
				});
			} else {
				$("#buyplease").append($.trim(resp));
				$("#buyplease #closeme").bind(_CLICK, _closeoverlay);
				$("#buyplease > img").attr("src", e.data.img.attr("src"));
	
				$("#buyplease .scrollto").bind(_CLICK, function(e){
					e.preventDefault();
					e.stopPropagation();
	
					$("#overlay").trigger("click");
					$.scrollTo({top: "0px", left: "0px"}, 800);
				});
			}
		}
	});
};

var _closing = function(e){
	_ACTIVE_POP = false;
	$("select").show();
	//$("#loginplease,#buyplease, #overlay").remove();
	$(e.target).unbind("oload", _complete_loggedin).unbind("overlayclosing", _closing);
};

var _check_access_call = function(url, redirect){
	if(!_authorized) document.location.href = redirect + "502";
	else{
		$.ajax({
			url: url,
			cache: false,
			dataType: "jsonp",
			error: function(){$.log("error");},
			success: function(data){
				if (data.error.code != "-1"){
					unloadenabled = false;
					window.alert="";
					document.location.href = redirect + data.error.code;
				} else _clean_timeout(data);// equivale a passare {error: {code: -1}} come parametro
			}
		});
	} // commentare qui in caso di problemi sui server
};
var _clean_timeout = function(data){
	if(data.error.code == -1) timer = setTimeout(_refresh_call,__timer_length);
	else document.location = __redirect_vetrina + data.error.code;
};
var _refresh_call = function(){
	$.ajax({
		url: __getSessionUrl(__calltypes.refresh, fingerprint),
		cache: false,
		async:false,
		dataType: "jsonp",
		error: _ERROR,
		success: _clean_timeout
	});
};

var _logout_call = function(url, async, success){
	$.ajax({
		url: url,
		cache: false,
		dataType: "jsonp",
		error: _ERROR,
		success: success
	});
};

/* FM - click sul pulsante SFOGLIA della spalla sx */
var _btnSfoglia = function(){$("#covercarousel img.center").trigger(_CLICK);};

// per i canali
var _scroll2archives = function(e){
	var descr_height = $(".grid-8 .descrizione").height() + 50;
	var pos = $("#archives").position().top + descr_height;
	$.scrollTo({top: pos + "px", left: "0px"}, 800);
};

//per i canali vetrina
var _scroll2archivesVetrina = function(e){
	var pos = $("#archives").position().top;
	$.scrollTo({top: pos + "px", left: "0px"}, 800);
};

var _get_pid = function(img){ // passare due parametri: selettore della img da cui prendere pid e selettore dello span in cui mettere pid
	var imgAttr = img.attr("data-pid");
	if(img.attr("class")=="center") {
		$("#caption a.btn.red").attr("data-pid", imgAttr);
	}
	else {
		//var imgAttr = img.attr("data-pid");
		$(".result span + span").attr("data-pid", imgAttr);
	}
};

var _getRootPath = function(){
	var path_name = document.location.pathname; // path di default
	var len = sfogliatore.length;
	var str_find = sfogliatore.substring(0,len-1);

	if(path_name.indexOf(str_find) != -1)
		var path_name = path_name.replace(str_find, "/");

	return path_name;
};

var _openarchives/*callarchives*/ = function(e){
	$(this).unbind(e);
	var sfogliatore = e.data.sfogliatore;
	var par = {};
		for(i in e.data.params){
				if(e.data.params[i] != ""){
						par[i]=e.data.params[i];
				}
		}
	$.ajax({
		url: "?pastissues=1&"+ $.param(par),
		error: _ERROR,
		success: function(resp){
			$("#archives-listing").append(resp);
			$(".results-list .result button > img").each(function(i, img){
				if($(img).next().is(":not(.issuelist)")) $(img).addClass("noinserts").checkacquisto({sfogliatore:sfogliatore});
			});
			$(".results-list .result button > img,.results-list .result > .issuelist").bind(_CLICK, _accordion);
			$(".results-list .edition-wrap img").checkacquisto({sfogliatore:sfogliatore});
			$(".results-list .edition-wrap span,.results-list .result span + span").bind(_CLICK, _opensfoglia);
			$(".sep + .pagination").pagination({start:1,maxpage:3});
			$(".filter").searcharchives();

			//$("#archives h4 a").replaceWith( "Archivio" );
			$("#archives h4").addClass("close");
			$("#show_archive").html("Chiudi l&#39;archivio");
			$("#show_archive").click(function(){
				$("#show_archive").html($("#archives h4").hasClass("close") ? "Apri l&#39;archivio" : "Chiudi l&#39;archivio");
				$("#archives-listing").slideToggle('fast', function(){
					$("#archives h4").toggleClass("close");
				});
			});
		}
	});
};

var _displaybanner = function(pid, dateissue){
	var data = {};
	data.checkacquisto = 1;
	data.date = dateissue;
	data.prodid = pid;
	data.rand = new Date().getTime();
	$.ajax({
		url: "/https/howtospenditmagazine.ilsole24ore.com/index.php",
		data: data,
		error: _ERROR,
		success: function(response){
			if(response == "true") {
				$(".main_text").css("display", "none");
				var currentDate = new Date();
				expirationDate = new Date(currentDate.getFullYear(), currentDate.getMonth(), currentDate.getDate()+1, 0, 0, 0);
				setCookie("CookieBanner","NO",expirationDate,"/",cookiesfoglia.webdomain.substr(cookiesfoglia.webdomain.indexOf(".")));
			}
			else {
				expirationDate = new Date();
				expirationDate.setTime(expirationDate.getTime()+(60*60*1000));
				setCookie("CookieBanner","YES",expirationDate,"/",cookiesfoglia.webdomain.substr(cookiesfoglia.webdomain.indexOf(".")));
			}
		}
	});
};

var getQueryVariable = function(variable) {
    var query = window.location.search.substring(1);
    var vars = query.split('&');
    for (var i = 0; i < vars.length; i++) {
        var pair = vars[i].split('=');
        if (decodeURIComponent(pair[0]) == variable) {
            return decodeURIComponent(pair[1]);
        }
    }
    console.log('Query variable %s not found', variable);
}

var regDisclaimer = function(e, testata){
	var data = {};
	data.regdisclaimer = 1;
	data.testata = testata;
	data.rand = new Date().getTime();
	$.ajax({
		url: '/index.php',
		data: data,
		error: _ERROR,
		success: function(response) {
			if (response == "true") {
				if (typeof _go !== 'undefined') {
					// se sono nello sfogliatore, non faccio nulla, sono già dentro
					_go();
				}
			} else {
				// disclaimer($(e.target));
				_errorcodesDisclaimer();
			}
		}
	});
};

var loadDisclaimer = function (e) {
	loading(true);
	var testata = $(e.target).attr("data-testata");
	// se testata è vuota, sono nello sfogliatore, recupero la testata dalla url
	if (typeof testata === 'undefined') {
		testata = getQueryVariable('newspaper');
	}
	//var discurl = ((window._disclaimerUrl.startsWith('http') || window._disclaimerUrl.startsWith('/')) && window._disclaimerUrl) || '/static/quotdisclaimer.php';
	// ie11 non prende startswith
	var discurl = ((window._disclaimerUrl.indexOf('http') === 0 || window._disclaimerUrl.indexOf('/') === 0) && window._disclaimerUrl) || '/static/quotdisclaimer.php';
	// faccio la get del file statico
	$.ajax({
		url: _getRootPath() + 'static/disclaimer.php?discurl=' + discurl,
		error: _ERROR,
		success: function(resp){
			loading(false); // questo loading butta via l'overlay
			if ($("#disclaimer2020").length > 0) {
				$("#disclaimer2020").append($.trim(resp));
				// bisogna fare unbind altrimenti ogni volta lo riaggancia
				$('body').off('terms-clicked').on("terms-clicked", function(){ 
					e.preventDefault();
					e.stopPropagation();
					_closeoverlay(null, "#backdrop");
					$(".disclaimer-on").unbind("oload", loadDisclaimer).unbind("overlayclosing", closingDisclaimer);
					regDisclaimer(e, testata);
				})
			}
		}
	});
};

var closingDisclaimer = function(e){
	_ACTIVE_POP = false;
	$("select").show();
	//$("#loginplease,#buyplease, #overlay").remove();
	$(e.target).removeClass("disclaimer-on").unbind("oload", loadDisclaimer).unbind("overlayclosing", closingDisclaimer);
};

var disclaimer = function (target) {
	target.addClass("disclaimer-on").bind("oload", loadDisclaimer).bind("overlayclosing", closingDisclaimer).overlay({w:740,h:300, container:"disclaimer2020",completeOverlay:"oload", overlay: "backdrop"});
};

var checkDisclaimer = function(current){
	var testata = $(current).attr("data-testata");
	// se testata è vuota, sono nello sfogliatore, recupero la testata dalla url
	if (typeof testata === 'undefined') {
		testata = getQueryVariable('newspaper');
	}
	var data = {};
	data.checkdisclaimer = 1;
	data.testata = testata;
	data.rand = new Date().getTime();
	$.ajax({
		url: '/index.php',
		data: data,
		error: _ERROR,
		success: function(response) {
			if (response == "true") {
				if (typeof _go !== 'undefined') {
					// se sono nello sfogliatore, non faccio nulla, sono già dentro
					_go();
				}
			}
			else {
				// nella response mi aspetto di avere la url del disclaimer da richiamare
				window._selection = current;
				window._disclaimerUrl = response;
				disclaimer(current);
			}
		}
	});
};

var _errorsDisclaimer = function(e){
	if(e.type == "overlayclosing") {
		$("body").unbind("overlayloaded", _errorsDisclaimer).unbind("overlayclosing", _errorsDisclaimer)
		$("#error").empty();
		$("#overlay").remove();
	} else {
		html = "<h2>Accesso ai contenuti</h2><a title=\"close window\" id=\"closeme\" class=\"icon-remove\" href=\"javascript:void(0)\"></a>";
		html += "<p><strong>Gentile Utente,</strong><br/>Si e' verificato un errore, si prega di riprovare</p>"
		$("#error").append(html);
		$("#error #closeme").bind(_CLICK,function(e2) {_closeoverlay();disclaimer(window._selection);});
	}
}
var _errorcodesDisclaimer = function(){
	$("body").bind("overlayloaded", _errorsDisclaimer).bind("overlayclosing", _errorsDisclaimer).overlay({overlay: "overlay",animate:false,w:364, h:150,container: "error"});

}
