/*  Snai Main JavaScript
	version7
 *--------------------------------------------------------------------------*/
var necessarioSalvataggioMenu = true;

function caricaEventi() {
	// EVENTO LOAD DELLA PAGINA
	Event.observe(window, "load", function() {
		Menu.load();	
		SortableLists.load();
		Orologio.load();
		CreaLinkLogin();	
		CreaLinkNewsletter();		
		Menu.calcolaAltezzaContenitoriMenu();
	});
	
	// EVENTO RESIZE DELLA PAGINA
	Event.observe(window, "resize", function() {
		Menu.loadMenuEsterni();									 
	});
	
	// EVENTO RESIZE DELLA PAGINA
	Event.observe(window, "unload", function() {
		if (necessarioSalvataggioMenu)
			Menu.salvaStatoMenu({f: '1'});									 
	});
}

// oggetto che contiene le funzioni per configurare l'orologio
var Orologio = {
	orologio: null,
	timer: null,
	load: function() {
    ore = parseInt((ore.substr(0,1)=="0" ? ore.replace("0", "") : ore));
    minuti = parseInt((minuti.substr(0,1)=="0" ? minuti.replace("0", "") : minuti));
    secondi = parseInt((secondi.substr(0,1)=="0" ? secondi.replace("0", ""): secondi));
		this.orologio = $('orologio');
		this.timer = window.setInterval('Orologio.tick()', 1000);
		Orologio.tick();
	},
	tick: function() {
		secondi++;
		if (secondi >= 60) { minuti++; secondi = 0; }
		if (minuti >= 60) { ore++; minuti = 0; }
		if (ore >= 24) { ore = 0; }
		var curTime = ((ore < 10) ? "0" : "") + ore + ":" 
					+ ((minuti < 10) ? "0" : "") + minuti + ":"
					+ ((secondi < 10) ? "0" : "") + secondi;
		this.orologio.update(curTime);	
	}
}



	


// oggetto contenente le funzioni per configurare i menu della pagina
var Menu = {
	loadMenuEsterni: function() {
		var contenitoreEsterno = $("contenitoreEsterno");
		if (getWindowWidth() >= 1419) {
			/*$("ListaMenuOutSx").setStyle({ display: "block" });*/
			//$("ListaMenuOutDx").setStyle({ display: "block" });
			contenitoreEsterno.addClassName("grande");
		} else if(contenitoreEsterno.hasClassName("grande")) {
			$("ListaMenuOutSx").setStyle({ display: "none" });
			$("ListaMenuOutDx").setStyle({ display: "none" });			
			contenitoreEsterno.removeClassName("grande");
		}
	},
	
	load: function() {	
		Menu.loadMenuEsterni();
		
		// scorro ogni menù..
		$$('.menu').each(function(objMenu) {			
			// inserisco le funzioni al click dei pulsanti riduzione/chiusura
			var pulsanteChiusura = objMenu.select('.pulsante_chiusura').first();
			if (pulsanteChiusura != undefined)
				pulsanteChiusura.observe('click', function(event) { Menu.chiudiMenu(objMenu.identify()); }); 
			var pulsanteRiduzione = objMenu.select(".pulsante_riduzione").first();
			if (pulsanteRiduzione != undefined)
				pulsanteRiduzione.observe('click', function(event) { Menu.cambiaStatoMenu(objMenu.identify()); });			
		});
		
		// posiziona gli spot in fondo alla lista di destra
		Menu.posizionaSpot();
	},
	
	apriMenu: function(objLink) {
		var argomenti = arguments;
		
		var objSottoMenu = $(objLink).next('ul.sottoMenu');
		if (objSottoMenu != undefined) {
   		if (objSottoMenu.getStyle("display") == "block")
				objSottoMenu.setStyle({ display: "none" });
			else
				objSottoMenu.setStyle({ display: "block" });

			var span = objLink.select('span').first();
			if (span != undefined)
				if (objSottoMenu.getStyle("display") == "block")
					span.className = "aperto";
				else
					span.className = "chiuso";

			if (argomenti.length > 1 && objSottoMenu.getStyle("display") == "block")
				eval(argomenti[1]);
			else
				Menu.calcolaAltezzaContenitoriMenu();
		}
	},
	
	calcolaAltezzaContenitoriMenu: function() {
		var altezzaMax = 0;
		var listaMenu = SortableLists.lists;
		
		listaMenu.each(function(id) {	
			var contenitore = $(id);
			if (contenitore != undefined) {
				var altezza = 0;
				contenitore.select(".menu").each(function(object) {
					if (object.visible())
						altezza += object.getHeight();								
				});
				if (altezza > altezzaMax) 
					altezzaMax = altezza;
			}
		});
		
		var contenuto = $("contenuto");
		if (contenuto.getHeight() > altezzaMax)
			altezzaMax = contenuto.getHeight();

		listaMenu.each(function(id) {
			var menu = $(id);
			if (menu != undefined) {
				if (BrowserDetect.browser == "Explorer" && BrowserDetect.version == "6")
					menu.setStyle({ height: ""+altezzaMax+"px" });
				else
					menu.setStyle({ minHeight: ""+altezzaMax+"px" });
			}
		});
	},
		
	chiudiMenu: function(obj) { 
	// funzione che effettua le necessarie operazioni per chiudere il menù, di cui ne viene passato l'id tramite parametro
		$(obj).hide();
		Menu.calcolaAltezzaContenitoriMenu();
	},
	
	cambiaStatoMenu: function(obj) { 
	// funzione che modifica lo stato del menu (ridotto/massimizzato)
		var vociMenu = $(obj).select(".contenuto_menu").first();  
		Effect.toggle(vociMenu, 'blind', { 
			duration: 0.2,
			afterFinish: function(contenuto_menu) {
				Menu.calcolaAltezzaContenitoriMenu();
			}
		}); 	
		
		Menu.cambiaStatoPulsanteRiduzione(obj);
	},
	
	cambiaStatoPulsanteRiduzione: function(obj) {
		// cambia il pulsante di riduzione/massimizzazione
		var pulsante = $(obj).select(".pulsante_riduzione").first();
		var srcArray = pulsante.readAttribute("src").split('.');
		if (srcArray.length > 1) {
			var nomeImg = srcArray[srcArray.length-2];
			switch (nomeImg.substr(nomeImg.length-1, 1)) {
				case "1": pulsante.writeAttribute("src", "img/icona_riduzione_2.gif"); break;
				case "2": pulsante.writeAttribute("src", "img/icona_riduzione_1.gif"); break;
			}
		}			
	},

	salvaStatoMenu: function() { 
	// funzione che salva lo stato dei menù
	// il template della stringa di salvataggio è "id_contenitore_menu,posizione,visibile,ridotto:id_sottoMenu_aperto,id_sottoMenu_aperto"

		necessarioSalvataggioMenu = false;
		
		var parametri = {};
		var listaContenitoriMenu = SortableLists.lists;
		
		listaContenitoriMenu.each(function(id) {
			var posizione = 0;
			
			var contenitore = $(id);
			if (contenitore != undefined)
				contenitore.select('.menu').each(function(menu) {
					var statoMenu = "";
					if (menu.visible()) {
						statoMenu += TrovaContenitoreMenuParent(menu).identify() + ",";
						statoMenu += posizione + ",";
						statoMenu += "true,"; //visibile
						
						// verifica se il contenuto del menù è visibile o meno (ridotto o no)
						var vociMenu = menu.select('.contenuto_menu');
						if (vociMenu != undefined && vociMenu.length > 0)
							statoMenu += (!vociMenu.first().visible()).toString();
						else 
							statoMenu += "false";								
						statoMenu += ":";
						
						// prende gli id dei sottomenu aperti
						var statoSottoMenu = "";
						menu.select('ul.sottoMenu').each(function(object) {
							var oggetto = $(object);
							if (oggetto.getStyle('display')=='block'){
								if (statoSottoMenu.length > 0)
									statoSottoMenu += ",";
								statoSottoMenu += oggetto.identify();
							}		
						});
						statoMenu += statoSottoMenu;
					} else {
						statoMenu += TrovaContenitoreMenuParent(menu).identify() + ",";
						statoMenu += posizione + ",";
						statoMenu += "false,false:";
					}		
					
					parametri[menu.identify()] = encodeURIComponent(statoMenu);
					posizione++;
				});
		});		
	
    	if (arguments.length > 0) {
			var parametri_aggiuntivi = arguments[0];
			for(var param in parametri_aggiuntivi)
				parametri[param] = encodeURIComponent(parametri_aggiuntivi[param]);
		}
		
		return parametri;
	},
	
	posizionaSpot: function() {
		var listaSpot = $('lista_spot');
		if (listaSpot != undefined) {
			Element.remove(listaSpot);
			var menuDestro = $('ListaMenuDx');
			if(menuDestro != undefined)
				menuDestro.appendChild(listaSpot);
		}
	},
	
	riduciMenu: function(obj) {
		var oggetto = $(obj);
		if (oggetto != undefined) {
			var contenuto = oggetto.select('.contenuto_menu');
			if (contenuto != undefined)
				contenuto.first().hide();				
			Menu.cambiaStatoPulsanteRiduzione(oggetto);
		}
	},
	
	nascondiMenu: function(obj) {
		var oggetto = $(obj);
		if (oggetto != undefined) {
			oggetto.hide();	
		}		
	},	
	
	settaRelativoSeIE: function(object) {
		// se è IE allora setto la posizione del tag a a relativa perchè altrimenti effettua male l'animazione
		if (Prototype.Browser.IE && object != undefined)
			object.addClassName('relativo');														
	},
	settaStaticoSeIE: function(object) {
		// se è IE allora setto la posizione del tag a a statico perchè altrimenti effettua male l'animazione
		if (Prototype.Browser.IE && object != undefined)
			object.removeClassName('relativo');														
	}
}

// oggetto contenente tutto ciò che serve per creare i sortable
var SortableLists = {
	lists: ["ListaMenuDx", "ListaMenuSx", "ListaMenuOutSx", "ListaMenuOutDx"],	
	updated: function(object) {
		Menu.calcolaAltezzaContenitoriMenu();
		Menu.posizionaSpot();
	},
	load: function() {
		var lists = SortableLists.lists;
		lists.each(function(id) {
			if ($(id) != undefined)
				Sortable.create(id, {
					dropOnEmpty: true,
					containment: lists,
					tag: 'div',
					constraint: false,
					handle: 'handle',
					onUpdate: SortableLists.updated,
					onDrag: SortableLists.dragged
				});
		});
	}
}

// oggetto contenente le funzioni necessarie per il carrello
var Carrello = {
	update: function(url, parametri) {
    new Ajax.Request(  url, {		
    	method: 'post',
			asynchronous: false,
			parameters: parametri,
			onSuccess: function(transport){
        if((transport.responseText=='PopLoginOpen') || (transport.responseText=='\r\nPopLoginOpen')){
          ApriLogin();            
        }
        else {
          $("contenuto_carrello").update(transport.responseText);  
        }        
      }
		}); 
	},
  	updatePopup: function(url, parametri) {
		var carrello = $(window.opener.document.getElementById('contenuto_carrello'));
		if (carrello != undefined)
			new Ajax.Request(url, {
				method: 'post',
				asynchronous: false,
				parameters:parametri,
				onSuccess: function(transport) {
				  if(transport.responseText=='PopLoginOpen')
					ApriLogin();               
				  else {          	
					carrello.update(transport.responseText);
				  }
				}
			}); 				
	}
}

// funzione che riduce o ripristina una porzione di pagina
function RiduciRipristina(sender, obj) {
	var oggetto = $(obj);
	if (oggetto != undefined) {
		var statoOggetto = oggetto.getStyle('display');
		if (statoOggetto == 'block' || statoOggetto == '') {
			oggetto.setStyle({ display: 'none' });
			$(sender).select("img").first().writeAttribute("src", "img/icona_piu.jpg");
		}
		else {
			oggetto.setStyle({ display: 'block' });
			$(sender).select("img").first().writeAttribute("src", "img/icona_meno.jpg");		
		}
	}
}
// funzione che riduce o ripristina una porzione di pagina
function RiduciRipristinanewicon(sender, obj) {
	var oggetto = $(obj);
	if (oggetto != undefined) {
		var statoOggetto = oggetto.getStyle('display');
		if (statoOggetto == 'block' || statoOggetto == '') {
			oggetto.setStyle({ display: 'none' });
			$(sender).select("img").first().writeAttribute("src", "img/icona_riduzione_2.gif");
		}
		else {
			oggetto.setStyle({ display: 'block' });
			$(sender).select("img").first().writeAttribute("src", "img/icona_riduzione_1.gif");		
		}
	}
}

// crea finestra modale di login
function CreaLinkLogin() {
	var login = $('link_login');
	if (login != undefined)
		new Control.Modal(login, { iframe: true, width: 453, height: 314 });
}

// apre la finestra di login
function ApriLogin() {
	var modale = new Control.Modal(false, { iframe: true, width: 453, height: 314, src: "login.php" });
	modale.open();
}

// apre la finestra di login
function ApriLogin_vipshop() {
	var modale = new Control.Modal(false, { iframe: true, width: 280, height: 500, src: "login.php" });
	modale.open();
}

// apre la finestra di login da un popup
function ApriLoginPopup() {
	window.opener.ApriLogin();
	window.close();
}
// crea finestra modale newsletter
function CreaLinkNewsletter() {
	var newsletter = $('link_newsletter');
	if (newsletter != undefined)
		new Control.Modal(newsletter, { iframe: true, width: 400, height: 55 });
}

// apre la finestra di login
function ApriNewsletter() {
	var modale2 = new Control.Modal(false, { iframe: true, width: 400, height: 55, src: "iscriz_newsletter.html" });
	modale2.open();
}

// apre la finestra di Newsletter da un popup
function ApriNewsletterPopup() {
	window.opener.ApriNewsletter();
	window.close();
}
// funzione che rende visibile una slide della pagina live
function SlideAttiva(numSlide) {
	// tolgo eventuali tab attivi
	$$('#BoxLive .ContenitoreBotAttivo').each(function(obj) { obj.removeClassName('ContenitoreBotAttivo'); });
	$$('#BoxLive table').each(function(obj) { obj.hide(); });
	
	// attivo il tab cliccato e mostro il relativo contenuto
	var links = new Array("boxlive_link_tutte", "boxlive_link_risultato_finale", "boxlive_link_segnagol", "boxlive_link_altro_evento");
	var tabelle = new Array("boxlive_tabella_0", "boxlive_tabella_1", "boxlive_tabella_2");
	if (numSlide == 0) {
		$(links[numSlide]).addClassName('ContenitoreBotAttivo');
		for(var i=0; i<tabelle.length; i++)
			$(tabelle[i]).show();
	} else {
		$(links[numSlide]).addClassName('ContenitoreBotAttivo');
		$(tabelle[numSlide-1]).show();
	}
}


//************************************
// REFRESH STATO CORSE IPPICA
//************************************
function caricamenuippica(){
	new Ajax.Request(  '/dati_processi/menuippica.inc', {		
		method: 'post',
		asynchronous: false,
		onSuccess: function(transport){
			$("menu_ippica").update(transport.responseText);  
		}
	}); 
}
