/* Gestione lingue */

jQuery(function($){
	var lingua=$("html").attr("lang");
	var aperto=false;
	var $ul=$("ul.lang");

	// gestione "altra lingua" - su richiesta cliente 23/11/11
	
	$("li", $ul).each(function(){
		if ($(this).attr("lang") != lingua)
			$(this).addClass("attivo");
		else
			$(this).removeClass("attivo");
	});
	
	$("ul.lang>li,div.footer span.freccia_giu").css({cursor:"pointer"}).click(function(){
		var lang=$(this).attr("lang");
		var re=(/^(.*)\/-(..)(?:\/(.*))?$/.exec(window.location.pathname));
		
		var nuova_path = re[1]+"/-"+lang;
		if (re[3] !== undefined)
			nuova_path += "/"+re[3];
		
//		console.log(nuova_path, lang, aperto, re[2]);
		if (!re || (re[2] == lang))
			return;
		window.location.pathname = nuova_path;
	});
	
	return;

	// gestione a menu - bloccata su richiesta cliente 23/11/11

	$("ul.lang>li[lang='"+lingua+"']").addClass("attivo");
	
	$("ul.lang>li,div.footer span.freccia_giu").css({cursor:"pointer"}).click(function(){
		if (!aperto) {
			$("li",$ul).css({display:"block"});
			aperto = true;
			return;
		}
			
		if ($(this).hasClass("freccia_giu")) {
			$("li:not(.attivo)",$ul).css({display:"none"});
			aperto = false;
			return;
		}
		var lang=$(this).attr("lang");
		var re=(/^(.*)\/-(..)(?:\/(.*))?$/.exec(window.location.pathname));
		
		var nuova_path = re[1]+"/-"+lang;
		if (re[3] !== undefined)
			nuova_path += "/"+re[3];
		
//		console.log(nuova_path, lang, aperto, re[2]);
		if (!re || (re[2] == lang))
			return;
		window.location.pathname = nuova_path;
	});
});

/* Gestione menu */

jQuery(function($){
	$("ul.menu1>li").hover(function(){
		$("ul.submenu", $(this)).show();
	},function(){
		$("ul.submenu", $(this)).hide();
	});
});

/* Gestione slideshow */

jQuery(function($) {
	var $imgs=$("div.background>div.hooks>img");
	function ABtransition(A,B,arg) {
		var v,h;
		t=(arg.t===undefined)?250:arg.t;
		jQuery.fx.interval=10;
		if (arg.angolo === undefined) {
			v=0.0;
			h=1.0;
		} else {
			v=Math.sin(Math.PI*arg.angolo/180);
			h=Math.cos(Math.PI*arg.angolo/180);
		}

		switch (arg.type) {
		case 0:
			A.css({opacity:1.0,zIndex:200,display:"inline"});
			B.css({opacity:0,zIndex:100,display:"inline"});
			
			B.animate({opacity:1.0}, arg.t, function() {$(this).css({zIndex:200});});
			A.animate({opacity:0.0}, arg.t, function() {$(this).css({zIndex:50});});
			break;
		case 1:
			A.css({opacity:1.0,zIndex:200,display:"inline",top:0,left:0});
			B.css({opacity:1.0,zIndex:100,display:"inline"});
			
			var target={};
			
			if (v>0.5)
				target.top=-A.height();
			else if (v>-0.5)
				target.top=-2*v*A.height();
			else
				target.top=A.height();

			if (h>0.5)
				target.left=A.width();
			else if (h>-0.5)
				target.left=2*h*A.width();
			else
				target.left=-A.width();
			A.animate(target, t, function(){
				B.css({zIndex:200});
				A.css({opacity:0.0,zIndex:50,top:0,left:0});
			});
			break;
		case 2:
			var pt=0,pb=A.height(),pl=0,pr=A.width();
			var resetclip="rect("+pt+"px "+pr+"px "+pb+"px "+pl+"px)";
			resetclip="";
			A.css({zIndex:200,display:"inline",clip:resetclip,overflow:"hidden"});
			B.css({zIndex:100,display:"inline"});
			
			if (v>0.5)
				pb=0;
			else if (v>0)
				pb=Math.floor(2*(0.5-v)*A.height());
			else if (v>-0.5)
				pt=Math.floor(-2*v*A.height());
			else
				pt=A.height();

			if (h>0.5)
				pl=A.width();
			else if (h>0)
				pl=Math.floor(2*h*A.width());
			else if (h>-0.5)
				pr=Math.floor(2*(0.5+h)*A.width());
			else
				pr=0;
			A.animate({clip: "rect("+pt+"px "+pr+"px "+pb+"px "+pl+"px)"}, t, function(){
				B.css({zIndex:200});
				A.css({zIndex:50,clip:resetclip,overflow:"visibile"});
			});
			break;
		case 3:
			var resetclip="rect("+0+"px "+A.width()+"px "+A.height()+"px "+0+"px)";
			resetclip="";
			var sy=Math.floor(A.height()*arg.y);
			var sx=Math.floor(A.width()*arg.x);
			
			A.css({zIndex:200,display:"inline",clip:resetclip,overflow:"hidden"});
			B.css({zIndex:100,display:"inline"});
			
			A.animate({clip: "rect("+sy+"px "+sx+"px "+sy+"px "+sx+"px)"}, t, function(){
				B.css({zIndex:200});
				A.css({zIndex:50,clip:resetclip,overflow:"visibile"});
			});
		}
	}

	var startResizer = function(iw,ih) {
		var $box;
		var $hooks;
		var ir=iw/ih;
		
		var resizer = function(){
			$box = $("div.background");
			$hooks = $("div.hooks");
			var w = $(window).width()-parseInt($box.css("paddingLeft"))-parseInt($box.css("paddingRight"));
			var h = $(window).height()-parseInt($box.css("marginTop"))-parseInt($box.css("marginBottom"));
			var r = w/h;
			var espansa;
			var sw,sh;
			
			if (espansa=(w>iw)&&(h>ih)) {
				if (ir>r) {
					sw = w;
					sh = Math.floor(sw/ir);
				} else {
					sh = h;
					sw = Math.floor(ir*sh);
				}
			} else {
				sw = iw;
				sh = ih;
			}

			$hooks.css({
				width: sw,
				height: sh
			});
			if (isCenter) { // ancoraggio al centro
				var delta = (w>iw)?(w-sw)/2:0;

				$(".anchorsx").each(function(){
					var pad = parseInt($(this).css("paddingLeft"))+parseInt($(this).css("marginLeft"));
					$(this).css({marginLeft: -delta,paddingLeft: delta+pad});
				});
				
				$("div.board").css({marginLeft:delta});
				$("div.footer,div.login").css({right:-delta,paddingRight:delta,left:-delta,paddingLeft:delta});
			} else { // ancoraggio a sx
				$("div.footer,div.login").css({right:sw-w,paddingRight:w-sw});
			}
			$("div.hooks").trigger("hooks.resize", {width: sw,height: sh});
		};
		var isCenter = $("body").hasClass("center");
		
		$("div.background>div.hooks img.slide").css({
			width: "100%",
			height: "100%"
		}).eq(0).fadeIn(500);

		$(window).resize(resizer);
		resizer();
		$("body").css({visibility:"visible"}).show();

		if ($imgs.length>1) {
			var current=0;
			var fasi=[
				{type:0, t: 600},
				{type:1, t:1500, angolo:0}
			];
			var fase=0;
			setInterval(function(){
				var A,B;
				A= $imgs.eq(current);
				current = (current+1)%$imgs.length;
				B= $imgs.eq(current)
				ABtransition(A,B,fasi[fase]);
				fase = (fase+1)%fasi.length;
			},6000);
		}
	};

	// 763x460
	// 897x536
	
	// 926x560 -> 
	
	var bw=Math.floor(926*0.8);
	var bh=Math.floor(560*0.8);
	
	$("body").css({
		"min-width": bw+76,
		"min-height": bh+134
	});
	$("body>div.board>div.background").css({
		"min-width": bw,
		"min-height": bh
	});
	
//	console.log(bh, bw);
	if ($imgs.length>0)
		$imgs.waitload(function(){
			startResizer(bw, bh);
		});
	else
		startResizer(bw, bh);
		
});

/* Gestione select */

jQuery(function($){
	$("ul.select").each(function(){
		var $ul=$(this);
		var is_open=false;
		var enabled=!$ul.hasClass("disabled");
		var emptyTag =$("li.header>span.nome", $ul).html();
		
		var n_li = $("li.option", $ul).length;
		var h_li = $("li.option", $ul).height();
		var nc=Math.ceil(n_li/7);
		
		var h_closed=$("li.header",$ul).height();
		var w_closed=$ul.width();
		var h_open=Math.ceil(n_li/nc)*h_li+h_closed;
		var w_open=w_closed*nc;
		
		if (enabled)
			$ul.css({cursor:"pointer"});
		$ul.css({overflow:"hidden", height: h_closed, width: w_closed});
		
		$("li",$ul).click(function(){
			if (!enabled)
				return;
			is_open=!is_open;
			if (is_open)
				$ul.animate({height:h_open, width: w_open}, 250);
			else
				$ul.animate({height:h_closed, width: w_closed}, 250);
			$ul.trigger("select.status", {"is_open":is_open});

			if (is_open) {
				$("li.header", $ul).removeClass("attivo");
				$("li.header>span.nome", $ul).html(emptyTag);
				return;
			}

			var id=null;
			var r = /\bid(\d+)\b/.exec($(this).attr("class"));
			if (r && r.length>0)
				id = parseInt(r[1]);

			$ul.trigger("select.select", id);
		});

		$ul.bind("select.disable", function() {
			enabled = false;
			$ul.css({cursor:"auto"}).addClass("disabled");
		});
		
		$ul.bind("select.enable", function() {
			enabled = true;
			$ul.css({cursor:"pointer"}).removeClass("disabled");
		});
		
		$ul.bind("select.select", function(ev, id) {
			var desc;
			var $li = $("li.id"+id, $ul);

			if ($li.hasClass("option")) {
//				if (!$li.hasClass("scelta")) {
					$("li", $ul).removeClass("scelta");
					$li.addClass("scelta");
					$("li.header", $ul).addClass("attivo");
					$("li.header>span.nome", $ul).html(desc=$("span.nome", $li).html());
/*					
				} else {
*/
//				}
			} else {
				id = null;
				$("li", $ul).removeClass("scelta");
				$("li.header").removeClass("attivo");
				$("li.header>span.nome", $ul).html(desc=emptyTag);
			}
			$ul.trigger("select.click", {"id":id, "desc":desc});
		});
	
		$ul.bind("select.reset", function(ev) {
			var id;

			id = null;

			$("li", $ul).removeClass("scelta");
			$("li.header").removeClass("attivo");
			$("li.header>span.nome", $ul).html(emptyTag);
			$ul.trigger("select.click", {"id":id, "desc":emptyTag});
		});
	
		$ul.bind("select.close", function() {
			if (!is_open)
				return;

			is_open=false;
			$ul.animate({height:h_closed,width: w_closed}, 250).trigger("select.status", {"is_open":is_open});
			$("li.header", $ul).removeClass("attivo");
			$("li.header>span.nome", $ul).html(emptyTag);
		});
	});
	
	$("a.esterno").attr({target:"new"});
});

jQuery(function($){
	var $login=$("div.board>div.login");
	var $form_login=$("div.board>div.login>form.login");
	var $form_dimenticato=$("div.board>div.login>form.dimenticato");
	var is_aperta=false;
	
	$("span.chiudi_login", $login).css({cursor:"pointer"}).click(function(){
		$login.fadeOut(250);
		is_aperta=false;
	});

	$("span.dimenticato", $form_login).css({cursor:"pointer"}).click(function(){
		$form_login.slideUp(250,function(){
			$form_dimenticato.slideDown(250,function(){
				
			});
		});
	});

	$("span.entra", $form_login).css({cursor:"pointer"}).click(function(){
		$form_login.slideUp(250,function(){
			var utente=$("label.username input", $form_login).val();
			var password=$("label.password input", $form_login).val();
			$.ajax({
				type: "POST",
				url: "php/login.php",
				dataType: "json",
				headers: { 
					"x-action": "login",
					"x-username": utente, 
					"x-password": password
				},
				error: function(xhr,t,e) {
					$form_login.slideDown(250);
					alert("Errore nell'esecuzione della richiesta");
					console.log("ko",xhr,t,e);
				},
				success: function(o) {
					$form_login.slideDown(250);
					if (!o.logged) {
						console.log(o);
						alert("Username o password non validi");
						return;
					}
					alert("successo!");
				}
			});
		});
	});
	
	var gestisciLogin = function(){
		is_aperta=true;
	};

	$("span.riservata").click(function(){
		if (is_aperta)
			return;
		$.ajax({
			type: "POST",
			url: "php/login.php",
			dataType: "json",
			headers: { 
				"x-action": "login"
			},
			error: function(xhr,t,e) {
				alert("Errore nell'esecuzione della richiesta");
				console.log("ko",xhr,t,e);
			},
			success: function(o) {
				if (!o.logged) {
					$("form", $login).css({display:"none"});
					$("form.login", $login).css({display:"block"});
					$login.fadeIn(250, gestisciLogin());
					return;
				}
				window.location="area_riservata.php";
			}
		});
	});
	
	$("span.invia", $form_dimenticato).css({cursor:"pointer"}).click(function(){
		$form_dimenticato.slideUp(250,function(){
			var utente=$("label.username input", $form_dimenticato).val();
			var email=$("label.email input", $form_dimenticato).val();
			$.ajax({
				type: "POST",
				url: "php/login.php",
				dataType: "json",
				headers: { 
					"x-action": "nuovapwd",
					"x-username": utente, 
					"x-email": email
				},
				error: function(xhr,t,e) {
					$form_login.slideDown(250);
					alert("Errore nell'esecuzione della richiesta");
					console.log("ko",xhr,t,e);
				},
				success: function(o) {
					$form_login.slideDown(250);
					if (!o.ok) {
						alert("Username o email non esistenti");
						return;
					}
					alert("Le istruzioni per creare una nuova password\nsono state inviate all'indirizzo richiesto");
				}
			});
		});
	});

	var gestisciCambio = function(){
		is_aperta=true;
	};

	$("form.nuova", $login).live("avvia_step1", function(){
		if (is_aperta)
			return;
		$("form", $login).css({display:"none"});
		$("form.nuova", $login).css({display:"block"});
		$login.fadeIn(250, gestisciCambio());
	});

});
