// Funzione per la data e l'ora
	function lz(numero, cifre) {
		n = String(numero);
		while (n.length<cifre) { 
			n="0"+n 
		}
		return n;
	}
	function dateFormat(data, formato) { 
	// (c) br1 - 2002 
	
		var giorni = new Array("Domenica","Luned&iacute;","Marted&iacute;","Mercoled&iacute;","Gioved&iacute;","Venerd&iacute;","Sabato");
		var mesi = new Array("01","02","03","04","05","06","07","08","09","10","11","12");
	
	// preparo la data...  verificare di passarla corretta!
		var adesso = new Date(data); 
		var anno = adesso.getFullYear();
		var mese = adesso.getMonth()+1;
		var giorno = adesso.getDate();
		var settim = adesso.getDay()
		var ore = adesso.getHours()
		var minuti = adesso.getMinutes()
		var secondi = adesso.getSeconds()
	
	// preparo la stringa di risposta
		var rVal = '';
	
		if (formato.length==0) { 
	// assenza del secondo parametro
			return String(adesso); 
		} else {
	
		// inizio loop
			while (formato.length>0) {
	
		// verifico se c'e' qualche separatore e lo aggiungo
				while (formato.length>0 && String("ymdphnst").indexOf(formato.charAt(0).toLowerCase())<0) {
					rVal += formato.charAt(0);
					formato = formato.substr(1);
				}
	
	
		// Separo il gruppo
				if (formato.length>0) {
					ff = formato.charAt(0);
					formato = formato.substr(1);
					while (formato.length>0 && formato.charAt(0).toLowerCase()==ff.charAt(0).toLowerCase()) {
						ff += formato.charAt(0);
						formato = formato.substr(1);
					}
	
		// espando il formato nella stringa corrispondente
					ff = ff.toLowerCase();	 // operazione preliminare... tutto in minuscolo
					switch (ff) 	{ 
						case "yy" : 
							rVal += String(anno).substr(2); 
							break; 
						case "yyyy" : 
							rVal += String(anno); 
							break; 
						case "m" : 
							rVal += String(mese); 
							break; 
						case "mm" : 
							rVal += lz(mese,2);
							break; 
						case "mmm" : 
							rVal += mesi[mese-1].substr(0,3);
							break; 

						case "mmmm" : 
							rVal += mesi[mese-1];
							break; 
						case "d" : 
							rVal += String(giorno); 
							break; 
						case "dd" : 
							rVal += lz(giorno,2); 
							break; 
						case "ddd" : 
							rVal += giorni[settim].substr(0,3);
							break; 
						case "dddd" : 
							rVal += giorni[settim];
							break; 
						case "p" : 
							var inizio = new Date(anno, 0, 0); 
							rVal += Math.floor((adesso - inizio) / 86400000);
							break; 
						case "ppp" : 
							var inizio = new Date(anno, 0, 0); 
							rVal += lz(Math.floor((adesso - inizio) / 86400000),3);
							break; 
						case "h" : 
							rVal += String(ore); 
							break; 
						case "hh" : 
							rVal += lz(ore,2); 
							break; 
						case "n" : 
							rVal += String(minuti); 
							break; 
						case "nn" : 
							rVal += lz(minuti,2); 
							break; 
						case "s" : 
							rVal += String(secondi); 
							break; 
						case "ss" : 
							rVal += lz(secondi,2); 
							break; 
						case "t" : 
							rVal += lz(ore,2)+":"+lz(minuti,2)+":"+lz(secondi,2); 
							break; 
						default :  // il numero dei caratteri del formato non e' permesso
							rVal += ff.replace(/./gi,"?");
					} 
	
				}
	
			} // fine loop principale
	
			return rVal;
		}
	}