//definizione delle variabili globali

var win; //contiene un oggetto window

function orari(url)
	 {
	 /*
	 questa funzione apre una finestra standardizzata per contenere gli
	 orari settimanali di un ufficio;
	 richiede come argomento l'url della pagina contenente gli orari
	 
	 il metodo WINDOW.OPEN genera una nuova istanza della finestra
	 del browser.
	 1° argomento: url della pagina da visualizzare nella nuova finestra
	 2° argomento: titolo della finestra
	 3° argomento: stringa contenente le proprietà della nuova finestra
	 
	 le proprietà WINDOW.SCREEN.WIDTH E .HEIGHT ritornano la risoluzione utilizzata in pixel
	 */
	 var screenX=window.screen.width;
	 var screenY=window.screen.height;
	 
	 //centraggio della nuova finestra
	 var xPos=(screenX-320)/2;
	 var yPos=((screenY-160)/2)-100;
	 
	 window.open(url,"", "height=160, width=320, dependent=0, resizable=0, left="+xPos+", top="+yPos);
	 }
	 
function apriFinestra(url,x,y,attributi)
	 {
	 /*
	 apre una nuova finestra delle dimensioni specificate
	 argomenti:
	 url		: indirizzo della pagina da aprire
	 x  		: larghezza finestra
	 y  		: altezza finestra
	 attributi	: stringa con attributi particolari della finestra (en scrollbars, titlebar, resizable)
	 
	 il metodo WINDOW.OPEN genera una nuova istanza della finestra
	 del browser.
	 1° argomento: url della pagina da visualizzare nella nuova finestra
	 2° argomento: titolo della finestra
	 3° argomento: stringa contenente le proprietà della nuova finestra
	 	 
	 le proprietà WINDOW.SCREEN.WIDTH E .HEIGHT ritornano la risoluzione utilizzata in pixel
	 */
	 var screenX = window.screen.width;
	 var screenY = window.screen.height;
	 	 	  
	 //imposta le dimensioni delle finestra se queste non vengono passate alla funzione
	 if ( !x ) x = 400;
	 if ( !y ) y = 300;
	 
	 //controlla le dimensioni dello schermo rispetto alle dimensioni della nuova finestra
	 var extraScreen = false;
	 
	 if ( x > screenX - 80 ) 
	 {
		x = screenX - 80;
		extraScreen = true;
	 }
			
	 if ( y > screenY - 80 ) 
	 {
	 	y = screenY - 80;
		extraScreen = true;
	 }	
	 
	 //imposta gli attributi di default alla finestra se questi non vengono passati alla funzione
	 if ( !attributi ) 
	 {
	 	attributi = "dependent=0, resizable=0";
	 	if ( extraScreen ) attributi += ", scrollbars=1";
	 }
	 //centraggio della nuova finestra
	 xPos=(screenX-x)/2;
	 yPos=((screenY-y)/2)-100;
	 if ( yPos < 10 ) yPos = 10;
	 
	 //istanza della finestra
	 if (!win || win.closed) 
	 	win=window.open(url,"", "height="+y+", width="+x+", left="+xPos+", top="+yPos+","+attributi);
	 else 	{
	 		win.close();
			win=null;
			win=window.open(url,"", "height="+y+", width="+x+", left="+xPos+", top="+yPos+","+attributi);
			}
	 }
	 
function apriMappa()
	 {
	 // url della mappa da aprire
	 var url = "/montagna/gta/_images/gif/foto/x_testi/cartina_piccola3.gif";
	 
	 // dimensioni dello schermo
	 var screenX = window.screen.width;
	 var screenY = window.screen.height;
	 
	 // imposta le dimensioni delle finestra
	 var x = 570;
	 var y = 546;
	 
	 // imposta gli attributi di default alla finestra se questi non vengono passati alla funzione
	 attributi = "dependent=0, resizable=0";
	 
	 // centraggio della nuova finestra
	 xPos = (screenX-x) / 2;
	 yPos = (screenY-y) / 2;
	 
	 // istanza della finestra
	 if (!win || win.closed) 
	 	win = window.open(url, "", "height=" + y  +", width=" + x + ", left=" + xPos + ", top=" + yPos + "," + attributi);
	 else 	{
	 		win.close();
			win = null;
			win = window.open(url, "", "height=" + y  +", width=" + x + ", left=" + xPos + ", top=" + yPos + "," + attributi);
			}
	 }	 
	 
function cambiaUrl(url)
	{
	/*
	cambia l'url di una finestra.
	argomento:
	url: indirizzo della pagina da visualizzare
	la funzione può essere usata per cambiare url ad una finestra madre
	da una finestra figlia
	
	la funzione controlla l'esistenza della finestra madre.
	se è presente ne cambia l'url, altrimenti cambia l'url della
	finestra attuale
	*/
	if (!window.opener) window.location=url
	else if(!window.opener.closed)window.opener.location=url;
		 else	{
		 		window.open(url)
				}
	
	} 

function rollOver(imgName,newImage)
	{
	/*
	dati il nome di un'immagine presente nella pagina, e l'url di un file contenente un'altra immagine
	la funzione cambia l'immagine presente con quella nuova
	L'array document.images[] contiene tutte le immagini della pagina, indicizzate per nome o per numero
	La proprietà .src contiene l'url dell'immagine visualizzata
	*/
	document.images[imgName].src=newImage;
	}

function stampaData()
	{
	/*
	Funzione che stampa la data odierna
	*/
	var data=new Date(); //l'oggetto date contiene la data attuale lato client
	var giorno="";
	var mese="";
	var anno="";
	var strData=""
	var ssi="<!--#echo var='DATE_LOCAL' -->"; //direttiva ssi: viene sostituita da una data se ssi è abilitato
	var arrayMesi=new Array("Gennaio","Febbraio","Marzo","Aprile","Maggio","Giugno","Luglio","Agosto","Settembre","Ottobre","Novembre","Dicembre");
	
	//se SSI è abilitato la stringa ssi non contiene 'echo'
	if (ssi.indexOf("echo")==-1)
		{
		//ssi abilitato: recupera la data dal server con direttive ssi
		giorno="<!--#config timefmt='%d'--><!--#echo var='DATE_LOCAL' -->";
		mese="<!--#config timefmt='%m'--><!--#echo var='DATE_LOCAL' -->";
		anno="<!--#config timefmt='%Y'--><!--#echo var='DATE_LOCAL' -->";
		strData=giorno+" "+arrayMesi[mese-1]+" "+anno;
		}
	else 	{
			//ssi non abilitato: recupera la data dal computer locale
			giorno=data.getDate();
			mese=data.getMonth();
			anno=data.getUTCFullYear();
			strData=giorno+" "+arrayMesi[mese]+" "+anno;
			strData=strData.fontcolor("#0000FF");
			}
	
	
	document.write(strData);
	}

function locus(type)
	{
	/*
	
	genera la barra di navigazione del sito
	argomento type: può assumere il valore "title"; in questo caso la funzione genera crea un tag
	                title con il livello della pagina
	*/
	var cnt=0;			//contatore ad uso dello sviluppatore
	var livelli=0;		//contatore che memorizza il numero di livelli rilevati nell'url 
	var inizio=0;		//contatore di posizione del carattere successivo a "/" all'interno di una stringa 
	var fine=0;		    //contatore di posizione del carattere precedente a "/" partendo dalla posizione inizio+1
	var up="index.jsp";			//nome della pagina indice
	var barraNav="";	//stringa che forma la barra di navigazione finita 
	var arrayLivelli= new Array();	//array contenente i nomi dei livelli rilevati nell'url
	var hostName="www.provincia.cuneo.it"; //nome dell'host (QUANDO PUBBLICATO DA PRELEVARE DALL'OGGETTO Location)
	var siteName="www.provincia.cuneo.it"; //nome che compare come radice della barra di navigazione
	var url=location.href; //url completa della pagina visualizzata
	var path="";		//percorso relativo (url senza protocollo e hostname)
	var index=false;	//il flag indica se la pagina attuale è un indice (true= pagina indice)
	var underscoredDir=false //il flag indica se la pagina è contenuta in una cartella che inizia con "_"
	
	if (url.indexOf("index.")!=-1) index=true; //imposta il flag index se nell'url è presente "index."
	if ((url.lastIndexOf("/")+1)==url.length) index=true //imposta il flag index se l'ultimo carattere del'url è "/"	
	
	//estrae l'url relativa eliminando il protocollo e l'hostname dall'url
	if (location.host!="") path=location.pathname;
	else 
		{
		path=url.substring((url.indexOf(hostName)+hostName.length),url.length);
		up="index.jsp";
		}
	/*al path viene anche eliminato il nome della pagina visualizzata localizzato 
	dopo l'ultima occorrenza di "/" nel path stesso
	in questo modo si elimina anche un'eventuale stringa di query
	il risultato è: "/livello_1/livello_2/livello_n/"
	*/
	path=path.substring(0,path.lastIndexOf("/")+1);
	
	/*
	correzione delle parole accentate tramite il metodo replace dell'oggetto String
	(le parole che compongono l'url non contengono accenti)
	*/
	path=path.replace("cdp","C.D.P.");
	path=path.replace("universita","università");
	path=path.replace("comunita","comunità");
	path=path.replace("mondovi","mondovì");
	path=path.replace("asl","A.S.L.");
	path=path.replace("tracciabilita","tracciabilità");
	path=path.replace("regione_piemonte","Regione Piemonte");
	path=path.replace("autorita_ambito","autorità d'ambito");
	
	/*
	conta i livelli nella struttura di directory controllando il numero di
	occorrenze del carattere "/"
	n livelli avranno n+1 caratteri "/" 
	per ottenere il giusto numero di livelli occorre sottrarre 1 al totale conteggiato
	*/
	while(cnt>=0) 
		{
		livelli++;
		cnt=path.indexOf("/",cnt+1);
		}
	livelli-=1;
	
	/*
	se ci troviamo al livello zero, cioè la root del sito, usciamo dalla funzione
	senza stampare la barra di navigazione, ma stampando il titolo della finestra
	*/
	if (livelli==0)
		{
		if (type=="title") document.title="www.provincia.cuneo.it"
		return
		}
		
	//crea un oggetto RegExp con un pattern per eliminare "_" dai nomi dei livelli
	var pattern=new RegExp("[_+]","g")
	
	/*
	il carattere "/" formatta la stringa path, consentendo di separare ogni singolo
	elemento della struttura delle directory
	nel ciclo for le variabili inizio e fine localizzano la posizioni di ogni "/"
	il metodo .substring genera una sottostringa di caratteri partendo da inizio+1 a fine
	viene usato inizio+1 per eliminare il carattere "/" dalla sottostringa
	alla fine di ogni ciclo inizio prende il valore di fine per trovare l'elemento successivo
	nella stringa	
	*/
	for (q=0;q<=livelli-1;q++) 
		{
		inizio=path.indexOf("/",inizio)
		fine=path.indexOf("/",inizio+1)
		arrayLivelli[q]=path.substring(inizio+1,fine)
		
		//imposta il flag underscoredDir a true se il nome del livello inizia per "_"
		if (arrayLivelli[q].substring(0,1)=="_") underscoredDir=true 
		
		//elimina "_" dai nomi dei livelli usando un'espressione regolare contenuta in pattern (vedi sopra)
		arrayLivelli[q]=arrayLivelli[q].replace(pattern," ");
		
		inizio=fine;
		}
		
	/*
	se siamo in una cartella il cui nome inizia per "_" (molto probabilmente la dir _common della root)
	usciamo dalla funzione senza stampare la barra di navigazione
	*/
	
	if (underscoredDir==true) 
		{
		if (type=="title" ) document.title="www.provincia.cuneo.it"
		return
		}		
	
	/*
	trasforma gli item dell'array in link relativi
	la stringa up contiene il nome dell'indice "index.htm"
	partendo dal livello più interno vengono assegnati gli url ad ogni item
	ad ogni salita di livello, viene aggiunto un "../" all'url dell'index di ritorno
	se type è uguale a titolo, gli item dell'array non vengono trasformati in link
	*/
	if (type!="title")
	{
	for (q=livelli-1;q>=0;q--) 
		{
		if (!(q==livelli-1 && index==true)) arrayLivelli[q]=arrayLivelli[q].link(up);
		up="../"+up;
		}
	}	
	
	/*
	genera la stringa contenente la barra di navigazione ed elimina l'ultimo carattere
	all'hostname viene assegnato il link ad index del livello 0 (la root)
	tutti gli item vengono concatenati nella stringa barraNav separati da " > "
	*/
	if (type!="title") barraNav=siteName.link(up)+" > ";
	else barraNav=hostName+" > ";
	
	for (q=0;q<=livelli-1;q++)
		{
		barraNav+=arrayLivelli[q]+" > ";
		}
	
	//l'ultimo " > " viene eliminato dalla stringa barraNav	
	barraNav=barraNav.substring(0,barraNav.length-3);					
	
	/*
	se type è titolo allora viene impostato il titolo a barraNav
	altrimenti il metodo document.write stampa sulla pagina html la stringa barraNav
	*/
	if (type=="title") document.title=barraNav;
	else document.write (barraNav+"<br>");
	}

function cambiaImmagine(name,src,alt,x,y)
	{
	/* 
	Cambia il file sorgente di un immagine e la ridimensiona
    argomenti: name(nome assegnato al tag immagine) src(file sorgente) alt(campo facoltativo, che definisce l'alt)
	*/
	var img=document.images[name];
		
	//Se non esiste l'oggetto img o non è passato src si esce dalla funzione senza variazioni
	if (!img || !src) return;

	//Se vengono passati x e y allora imposta le nuove dimensioni
	if (x && y)
		{
		img.width=x;
		img.height=y;
		}	
	
	//imposta i nuovi attributi dell'immagine
	img.src=src;
	if (alt) img.alt=alt;
	}
	
/********************************************************************************************************
/* Funzioni specifiche per la Montagna */

var over=new Image();
var stato=new Image();
over.src="/montagna/gta/_images/gif/elementi_pagina/puntatore_12x12_over.gif";

/*Funzione per  cambiare lo stato dei bottoni del menu*/
	
	function rollOver(imgName)
		{
		stato.src = document.images[imgName].src;
		document.images[imgName].src = over.src;
		}
/*Funzione per  ripristinare lo stato dei bottoni del menu*/
		
	function restore(imgName)
		{
		document.images[imgName].src = stato.src;
		}
	
/* Rollover pallino 8x8 */

var over_8x8=new Image();
var stato_8x8=new Image();
over_8x8.src="/montagna/gta/_images/gif/elementi_pagina/puntatore_8x8_over.gif";

/*Funzione per  cambiare lo stato dei bottoni del menu*/
	
	function rollOver_8x8(imgName)
		{
		stato_8x8.src = document.images[imgName].src;
		document.images[imgName].src = over_8x8.src;
		}
/*Funzione per  ripristinare lo stato dei bottoni del menu*/
		
	function restore_8x8(imgName)
		{
		document.images[imgName].src = stato_8x8.src;
		}
