/*----------------------------------------------------------------------------------------------
 Codice Javascript per gestione immagini (versione italiana)
----------------------------------------------------------------------------------------------*/ 
function cimm(nome, titolo, w, h) {
/*
	Funzione caricamento immagini nel documento
	Parametri:
		nome() = array degli url delle immagini da caricare
		titolo() = array dei titoli delle finestre che saranno aperte
		w() = array delle larghezze delle immagini
		h() = array delle altezze delle immagini
	Restituisce:
		imm() = array immagini caricate in memoria
	
*/
	var imm = new Array();		// oggetti immagine
	var indimm = new Array();	// indice dei link del documento corrispondenti a immagini
	var confronto = /javascript:avvnc/i;	// pattern per vedere se è un link immagine
	var ii = 0;					// indice delle immagini nel documento

	for(var i = 0; i < document.links.length; i++) {	// aggiusta indici immagini
		if (confronto.test(document.links[i])) {
			indimm[ii] = i;
			ii++;
		}
	}

for(var i = 0; i < nome.length; i++) {  
	imm[i] = new Image();		// crea oggetto immagine
	
	imm[i].onload = function() { 
					for(var j = 0; j < nome.length; j++) {
					var jj = indimm[j];
					if (imm[j]) document.links[jj].href = "javascript:fimm(imm["+j+"],titolo["+j+"],w["+j+"],h["+j+"])";
					}	
			}					
	
	imm[i].onerror = function() {
					for(var j = 0; j < nome.length; j++) {
					var jj = indimm[j];
					if (imm[j]) document.links[jj].href = "javascript:avvEC(imm["+j+"].src)";
					}	
			}			
			
	imm[i].src = nome[i];		// carica immagine in memoria
	}
return imm;
}
	
//---------------------------------------------------------------------------------- 
function avvNC(nome) {
/*
	Funzione che visualizza un messaggio di alert di immagine non ancora caricata.
	Parametri:
		nome = url dell'immagine non ancora caricata
*/

alert("Immagine " + nome + " non ancora caricata. Prego riprovare.")
}		

//---------------------------------------------------------------------------------- 
function avvEC(nome) {
/*
	Funzione che visualizza un messaggio di alert di errore caricamento immagine.
	Parametri:
		nome = url dell'immagine che non si riesce a caricare
*/

alert("Errore caricamento immagine: " + nome)
}		

//---------------------------------------------------------------------------------- 
function avviso(testo) {
/*
	Funzione per l'apertura di una finestra di ampiezza predefinita,
	che visualizza un avviso (simile ad alert, ma senza bottone OK).
	La finestra deve essere chiusa dal programma, se necessario.
	Parametri:
		testo = testo dell'avviso
*/

setup='toolbar=no,location=no,directories=no,status=no,menubar=no,width=400,height=100,';
setup += 'scrollbars=no,resizable=no'
 
pop = window.open ("","pop",setup)
pop.document.write('<head>');
pop.document.write('<Title>');
pop.document.write('Avviso');
pop.document.write('</Title>');
pop.document.write('</head>');
pop.document.write('<body bgcolor=#FFFF80>');
pop.document.write('<center><h3>');
pop.document.write(testo);
pop.document.write('</h3></center>');
pop.document.write('</body>');

}			
//----------------------------------------------------------------------------------
 
function fimm(imm, titolo, w, h) {
/*
	Funzione per l'apertura di una finestra contenente un'immagine con bordo da 10 pixel
	Parametri:
		imm = oggetto immagine caricata
		titolo = titolo dell'immagine (che compare nel titolo della finestra)
		w = larghezza imposta dell'immagine
		h = altezza imposta dell'immagine		
	Se nessuno dei due parametri w e h è fornito, si assumono la larghezza e l'altezza
	intrinseche dell'immagine.
	Se è fornito un solo parametro tra w e h, l'altro viene ricalcolato in modo da
	mantenere le proporzioni dell'immagine.
	Se sono forniti entrambi w e h, sono applicati senza tener conto dell'eventuale
	alterazione delle proporzioni.
*/
	
	var undefined;			// per bug di alcuni browser

	var nomefin;			// nome della finestra
	var wi;				// larghezza intrinseca immagine
	var hi;				// altezza intrinseca immagine
	var wf;				// larghezza finestra
	var hf;				// altezza finestra
	var testo;			// testo dell'avviso
	
	immagine = new Image();
	
	immagine.onload = function() {
	
		wi = immagine.width;
		hi = immagine.height;
		
		if (((w == 0) || (w == undefined))  && ((h == 0) || (h == undefined))) {
			w = wi;
			h = hi;
			}
		else if (((w == 0) || (w == undefined)) && ((h != 0) || (h != undefined))) w = wi * h / hi;
		else if (((w != 0) || (w != undefined)) && ((h == 0) || (h == undefined))) h = hi * w / wi;
	
		wf = w + 20;		// Le dimensioni della finestra sono di 20 pixel in più
		hf = h + 20;		// perché il bordo è di 10.	
	
		nomefin = immagine.src.replace(/\W/g, "F");

		setup='toolbar=no,location=no,directories=no,status=no,menubar=no'
		setup += ',width='+wf;
		setup += ',height='+hf;
		setup += ',scrollbars=no,resizable=yes,top=50,left=50,screenX=50,screenY=50';
	
		imm = window.open ("",nomefin,setup)
		
		if (imm) {
			imm.document.write('<html>');
			imm.document.write('<head>');
			imm.document.write('<title>');
			imm.document.write(titolo);
			imm.document.write('</title>');
			imm.document.write('</head>');
			imm.document.write('<body topmargin="0" leftmargin="0">');
			imm.document.write('<center>');
			imm.document.write('<img border="0" src=');
			imm.document.write(immagine.src);
			imm.document.write(' style="border: 10 solid #FFFFFF" width=');
			imm.document.write(w);
			imm.document.write(' height=');
			imm.document.write(h);
			imm.document.write('> </center>');
			imm.document.write('</body>');
			imm.document.write('</html>');
		
			imm.focus();
			}

	delete immagine;
		}
		
	immagine.src = imm.src; 
	
// eliminato perché non serve e può provocare errori
//	testo = "Immagine " + immagine.src + " in fase di caricamento. Attendere, prego.";
//	avviso(testo);
	

}

//---------------------------------------------------------------------------------- 
