function individuaOggetto(e){ //individua l'oggetto da cui e' partito l'evento
	
		// questa prima parte serve per avere una gestione degli oggetti comune
		if (!e) var e = window.event;
		// e gives access to the event in all browsers
		
		//questa seconda parte individua l'elemento che ha scatenato l'oggetto
		var targ;

		if (e.target) targ = e.target;
		else if (e.srcElement) targ = e.srcElement;
		
		if (targ.nodeType == 3) // defeat Safari bug
			targ = targ.parentNode;
			
		//restituisce l'elemento
		return targ;
	
	}

/***************************** funzione che crea i menu   *****************/
	
function Menu(menu_id,attivaClick,position,attivaOver,defaultGroup) { //creo una classe menu
	
		/** proprieta' della classe 
		menu_id e' il nome del menu: sempre obbligatorio
		attivaClick, attiva l'evidenziazione del menu al click del moude
		attivaOver, attiva l'effetto di visualizzione contenuto al mouse over
		position, indica la posizione del tab attivo
		**/
		this.menu_id=menu_id;
		this.attivaClick=attivaClick;
		this.position=position;
		this.attivaOver=attivaOver;
		this.defaultGroup=defaultGroup;
	
		/*** metodi della classe ***/
		
		this.Menu=function Menu() { //costruttore
			/*** lancio funzioni che costruiscono la classe***/		
			this.inizializzaMenu();
		}
		
		this.inizializzaMenu=function inizializzaMenu() {
			
					//se il click e' attivato ed e' il primo elemento, all'inzializzazione del menu,
					//evidenzio il primo tab
					//con position specifico, l'elemento che deve essere attivato
					
					var elementoEvidenziato=0; //di default l'elemento evidenzato e' il primo
					if (this.position) {
							elementoEvidenziato=this.position;
					}
					
			
				varGlobMenu=eval(this.menu_id+'varGlob=new Array()');
				 //creo una variabile globale che ha come nome
				//il nome del menu, e contiene la posizione dell'elemento evidenziato
				
				//se il menu non necessita mouse over la variabile globale e' settata a 'no'

				varGlobMenu[0]=this.position;		//posizione iniziale		
				varGlobMenu[1]='no';		//elemento evidenziato
				varGlobMenu[2]='no';		//gruppo di default
				
				if (this.attivaOver) {

					varGlobMenu[1]=this.position;  
	
					
					if (this.defaultGroup) {
						varGlobMenu[2]=this.defaultGroup;
					}
					
					
				}

				ancore=document.getElementById(this.menu_id).getElementsByTagName('a');
				lunAncore=ancore.length;

				
				for (var n=0;n<lunAncore;n++) {
		
					/***gestione mouse over e mouse out ***/

					if ( (this.attivaClick)&&(n==elementoEvidenziato) ) {
						ancore.item(elementoEvidenziato).onmouseover=null;
						ancore.item(elementoEvidenziato).onmouseout=null;
						separaGruppi(ancore.item(elementoEvidenziato).id); //evidenzia il gruppo corrispondente al tab
					
						if(ancore.item(elementoEvidenziato).className.indexOf('_over')==-1) {
						//se l'elemento e' instato mouse out, lo coloro
							cambiaOver(ancore.item(elementoEvidenziato)); 
						}
					}
					
					else { //se non c'e' il click e si tratta degli altri elementi
						//variabile per vedere se c'e' da attivare il mouse over
											
						if (  ( ( (this.attivaClick)&&(this.attivaOver) )&& ( (ancore.item(n).id!='') ) || ( (ancore.item(n).id=='')&&(varGlobMenu[2]!='no') )  )  ) { //se c'e' da visualizzare gli elementi al mous eover
								ancore.item(n).onmouseover=tabClick;
						}
						else {
							a=ancore.item(n).onmouseover;
							
							ancore.item(n).onmouseover=tabOver;

						}
						
						ancore.item(n).onmouseout=tabOut;
					}
					/***gestione click ***/
					
					if(this.attivaClick) {
						ancore.item(n).onclick=tabClick;

					}
					
					
				}
				
			  	function tabOver(e){

					var el=individuaOggetto(e); //el e' elemento che ha fatto partire l'evento
												//la funzione individuaOggetto(e) e' etserna a questa classe
					cambiaOver(el);


				}
				
				function cambiaOver(el) {
				
					
					if ( (el.previousSibling!=null)&&(el.previousSibling.tagName.toLowerCase()=='span') &&(el.className.indexOf('_over')==-1) ) { 
						el.className=el.className+'_over';
						el.previousSibling.className=el.previousSibling.className+'_over';
						el.nextSibling.className=el.nextSibling.className+'_over';
					}
					
					else if (el.id.indexOf('_over')==-1) {
							el.id=el.id+'_over';
					}
					
					
				}
				
				function tabOut(e) {
					var el=individuaOggetto(e); //el e' elemento che ha fatto partire l'evento
					cambiaOut(el);
				}
				
				function cambiaOut(el) {
											
					if ( (el.previousSibling!=null) &&(el.previousSibling.tagName.toLowerCase()=='span') &&(el.className.indexOf('_over')>0) ) { //se e' un menu con tab di tre elementi..
						el.className=el.className.replace('_over','');
						el.previousSibling.className=el.previousSibling.className.replace('_over','');
						el.nextSibling.className=el.nextSibling.className.replace('_over','');
						
					}
					
					
					else if (el.id.indexOf('_over')>0) {		//se e' un menu con tab img...
							el.id=el.id.replace('_over','');
					}
	

					
				}
				
				
				function controllaClick(e,el,id_menu) {
					if (!e) var e = window.event;
					var varGlobMenu=eval(id_menu+'varGlob');
					/*
					Questa parte disabilita' l'over in caso di click. Non necessaria qui.
					
					if(e.type=='click') {
						eval(id_menu+"varGlob='no';");
					}
				
					*/
					//else if(el.id!=''){
						
						// || ((el.id=='')&&(varGlobMenu[2]!='no')) 
					if ( (varGlobMenu[1]!='no') && (el.id!='')  ){
						var anch=document.getElementById(id_menu).getElementsByTagName('a');
						var lunAnch=anch.length;
						for (var m=0;m<lunAnch;m++) {
							if (anch.item(m).id==el.id) {
								varGlobMenu[1]=m;
								
							}
						}
						
					}
					

					
				}
				
				function tabClick(e) {

					var el=individuaOggetto(e); //el e' elemento che ha fatto partire l'evento
					
					controllaClick(e,el,el.parentNode.parentNode.id);
					var varGlobMenu=eval(el.parentNode.parentNode.id+'varGlob');
					
					//rimuovo mouse over e mouse out dall'elemento:
					el.onmouseover=null;
					el.onmouseout=null;
			
					cambiaOver(el); 

					
					//la struttura del documento e' UL > LI > A -- noi siamo nell'A
					
					var ancore=document.getElementById(el.parentNode.parentNode.id).getElementsByTagName('a');
					var lunAncore=ancore.length;
					
					for (var n=0;n<lunAncore;n++) {
						if(ancore.item(n)!=el) {
							//riassegno gli eventi agli altri elementi

							cambiaOut(ancore.item(n)); //riassegno lo stato mout

							if ( ((varGlobMenu[1]!='no')&& ( (ancore.item(n).id!='') ) || ( (ancore.item(n).id=='' &&varGlobMenu[2]!='no') ) ) ) {	//controllo che la visualizzazione dei contenuti all'over
																						//non sia disabilitata e che l'id dell'elemento non sia vuoto

									ancore.item(n).onmouseover=tabClick;
							}
							else {
								ancore.item(n).onmouseover=tabOver;
							}

							ancore.item(n).onmouseout=tabOut;
						}
						
						/*
						else if ( (el.id=='') && (varGlobMenu[2]!='no') ) {
							ancore.item(n).onmouseout=function(){
								cambiaOut(el);
								cambiaOver(ancore.item(varGlobMenu[0]) );
								if (ancore.item(varGlobMenu[0]).id!='') {
									separaGruppi(ancore.item(varGlobMenu[0]).id);
								}
								else if(varGlob[2]!='no') {
									separaGruppi(varGlobMenu[2]);
								}
								
							}
						}*/
						
					}				
					
					var elemento='';
					
					if(el.id.indexOf('_over')>0) { //se l'id dell'elmento contiene '_over'.
													//non puo' succedere per il cambio di classe
													//ma puo' succedere pe ril cambio di ID.
													//Quindi questo controllo e' utile per la classe MenuID
													//che erdita da questa.
													
						elemento=el.id.replace('_over','');
					}
					
					else if (el.id==''&&varGlobMenu[2]!='no') {
						elemento=varGlobMenu[2];
					}
					
					else elemento=el.id;
					return separaGruppi(elemento); //funzione che verifica se ci sono da visualizzare dei contenuti
				
				}
				
				
		}


		this.Menu(); //lancio il costruttore


}

/**************************** funzione per la gestione dei gruppi  **************/

function separaGruppi(el_id) {
	if (el_id!=null) { //se e' settato l'elemento id
					
		var temp=(el_id).split('||'); //se all'interno dell'id c'e' || --> i gruppi da ricaricare sono 2 alla volta
		var tempL=temp.length;			
						
		for (var n=0;n<tempL;n++) {
						
			var ritorno=visualizzaContent(temp[n]);
			if (n==tempL-1) { // se e' l'ultimo elemento dell'id
				return ritorno; // restituisco il valore 
			}

		}
						
	}
					
	else return true; //se non e' settato l'ID si prosegue con il link
					
				
}

function visualizzaContent(el_id) {
	//la funzione deve restituire true o false
	//true fa proseguire il link; false ferma il link
				
	/*** se e' settato l'ID faccio partire le funzioni che cambiano il blocco ***/
	if (el_id.indexOf('-')>0) { //se e' settato l'id e se contiene il trattino
			var temp=(el_id).split('-'); //ricavo due parti con: gruppo-blocco
							
			//gruppo e' un oggetto quindi va trasformato da stringa a oggetto
							
			var gruppo=eval(temp[0]);
			var blocco=temp[1];
							
			if (gruppo) { //se l'oggetto gruppo e' stato creato, rimando al link statico
				gruppo.mostraBlocco(blocco); // visualizzo il blocco e fermo il link
				return false; 
			}
	
			else {	//se l'oggetto gruppo non e' stato creato proseguo con il link statico
				return true;

			}
					
	}
						
						
}
				

/***************************** funzione che precarica tutte le imgs   *****************/
(function(){

	/*Use Object Detection to detect IE6*/
	var  m = document.uniqueID /*IE*/
	&& document.compatMode  /*>=IE6*/
	&& !window.XMLHttpRequest /*<=IE6*/
	&& document.execCommand ;

	try{
		if(!!m){
			m("BackgroundImageCache", false, true) /* = IE6 only */
		}

	}catch(oh){};
})();


function preloadImgs(args) {
	for(var n=0;n<arguments.length;n++) {
		preloadImg(arguments[n]);
	}	
	
	//funzione che precarica un immagine
	function preloadImg(percorso) {
		var temp=new Image();
		temp.src=percorso;
	}
	
}







/**********************************************************************************************************************/
function inizializzaOverSito(args) 
{
	for(var n=0;n<arguments.length;n++) 
		assegnaStati(arguments[n]);
}

function assegnaStati(elemento) 
{
	var img = document.getElementById(elemento);
	
	if (img != null)
		assegnaQuestoEl(img);
	else
	{
		var imgs = document.getElementsByTagName('img');
		var lunImg = imgs.length;
		
		if (lunImg > 0) 
		{
			
			for (var i=0;i<lunImg;i++) 
			{
				if (imgs.item(i).className == elemento) 
					assegnaQuestoEl(imgs.item(i));
			}
		}
	}
	
	function assegnaQuestoEl(parImg) 
	{
		parImg.onmouseover = cambiaOver();
		parImg.onmouseout = cambiaOut();
	}

}

function cambiaOver() 
{
	swapImg(this,'over');
}

function cambiaOut() 
{
	swapImg(this,'out');
}

function swapImg(el,status) 
{
	var pathOver = '/static/img/common/over/on/';
	var pathOut = '/static/img/common/over/off/';
	
	var path = (status == 'out'? pathOut : pathOver);
	var name = (el.id == ''? el.className : el.id);
	el.src = path+name+'.gif';
}


/***** funzione per il discalimer ***/

function controllaCheck() 
{
	if (document.getElementById('disclaBox').checked == false) 
	{
		alert("Ricordati di leggere e accettare le avvertenze");
		return false;
	}
	else
		return true;
}


/******************* funzioni di preload *****************/

function preloadImgs(args) {
	for(var n=0;n<arguments.length;n++) {
		preloadImg(arguments[n]);
	}	
	
	//funzione che precarica un immagine
	function preloadImg(percorso) {
		var temp=new Image();
		temp.src=percorso;
	
	}
	
}


preloadImgs(
'/static/img/css/menu_blog_over.gif',
'/static/img/css/menu_contatti_over.gif',
'/static/img/css/menu_investimento_over.gif',
'/static/img/css/menu_partner_over.gif',
'/static/img/css/menu_servizi_over.gif',
'/static/img/css/menu_zonafree_over.gif',
'/static/img/css/menu_home_over.gif',
'/static/img/css/menu_entra_over.gif',
'/static/img/css/menu_blog.gif',
'/static/img/css/menu_contatti.gif',
'/static/img/css/menu_investimento.gif',
'/static/img/css/menu_partner.gif',
'/static/img/css/menu_servizi.gif',
'/static/img/css/menu_zonafree.gif',
'/static/img/css/menu_home.gif',
'/static/img/css/menu_entra.gif',
'/static/img/css/compra_ora_over.gif',
'/static/img/css/abbonati_ora_over.gif',
'/static/img/css/iscriviti_gratis_subito.gif',
'/static/img/css/informati.gif',
'/static/img/css/iscriviti.gif'
);


/**************   FUNZIONI X I SERVIZI PREMIUM   ********************/

function Hash1() 
{
	var Prod;
	var selectHash;
	
	Prod=document.frm1.selectProd1;
	
	for (counter = 0; counter<Prod.length; counter++)
	{ 
       if (Prod[counter].checked)
	   { 
        	selectHash = Prod[counter].value; 
			
        	if (selectHash == '#') 
				alert("Per cortesia, seleziona il periodo di tuo interesse.");
			else
				window.location.href = selectHash;	        	
       } 
    }
}

function Hash2() 
{
	var Prod;
	var selectHash;
	
	Prod = document.frm2.selectProd2;
	
	for (counter = 0; counter<Prod.length; counter++)
	{ 
       if (Prod[counter].checked)
	   { 
        	selectHash = Prod[counter].value; 
			
        	if (selectHash == '#') 
				alert("Per cortesia, seleziona il periodo di tuo interesse.");
			else
				window.location.href = selectHash;        	
       } 
    }
}

function Hash3() 
{
	var Prod;
	var selectHash;
	
	Prod = document.frm3.selectProd3;
	
	for (counter = 0; counter<Prod.length; counter++)
	{ 
       if (Prod[counter].checked)
	   { 
        	selectHash = Prod[counter].value; 
			
        	if (selectHash == '#')
				alert("Per cortesia, seleziona il periodo di tuo interesse.");
			else
				window.location.href = selectHash;	        	
       } 
    }
}


function openfwpopup(ChoosePopup) 
{
	/* IBCC */
	if(ChoosePopup == 1)
	{
		puwin = window.open('','Newsletter','menubar=no,resizable=no,status=no,scrollbars=yes,width=610,height=390,top=0,left=0');
		if(puwin)
		{
			puwin.location.replace('/tpl/popup.html');
			puwin.focus();
		}
	}
	
	/* INVINT */
	if(ChoosePopup == 2)
	{
		puwin2 = window.open('','Newsletter','menubar=no,resizable=no,status=no,scrollbars=yes,width=610,height=390,top=0,left=0');
		if(puwin2)
		{
			puwin2.location.replace('/tpl/popup1.html');
			puwin2.focus();
		}
	}
	
	/* IBII */
	if(ChoosePopup == 5)
	{
		puwin5 = window.open('','Newsletter','menubar=no,resizable=no,status=no,scrollbars=yes,width=610,height=390,top=0,left=0');
		if(puwin5)
		{
			puwin5.location.replace('/tpl/popup4.html');
			puwin5.focus();
		}
	}
	
	/* FWObll */
	if(ChoosePopup == 6)
	{
		puwin6 = window.open('','Newsletter','menubar=no,resizable=no,status=no,scrollbars=yes,width=610,height=390,top=0,left=0');
		if(puwin6)
		{
			puwin6.location.replace('/tpl/popup5.html');
			puwin6.focus();
		}
	}
	
	if(ChoosePopup == 3)
	{
		puwin3 = window.open('','Newsletter','menubar=no,resizable=no,status=no,scrollbars=yes,width=610,height=390,top=0,left=0');
		if(puwin3)
		{
			puwin3.location.replace('/tpl/popup2.html');
			puwin3.focus();
		}
	}
	
	if(ChoosePopup == 4)
	{
		puwin4 = window.open('','Newsletter1','menubar=no,resizable=no,status=no,scrollbars=yes,width=610,height=390,top=0,left=0');
		if(puwin4)
		{
			puwin4.location.replace('/tpl/popup3.html');
			puwin4.focus();
		}
	}
}

function apriFinestra(nomeFinestra,larghezza,altezza,collegamento) 
{
  larghFinestra=larghezza;
  altezFinestra=altezza; 
  sinistra=screen.width-larghFinestra+20;

  alto=(screen.height-larghFinestra)/2; 

  window.open(collegamento,nomeFinestra,'left='+sinistra+',top='+alto+',width='+larghFinestra+',height='+altezFinestra+',location=no, directories=no,menubar=no,toolbar=no,resizable=no');
}
