function GetObj(id)
	{
		return document.getElementById(id);
	}


function ChiudiDiv(primo,secondo)
	{
	
		$(primo).style.display = $(secondo).style.display = $('modalBackground').style.display = 'none';
	
		if (document.all)
		{
			
			if($('hideType'))
				{
					var type = $('hideType').value;
					
					if (type == 'iframe')
						$('modalIframe').style.display = 'none';
					if (type == 'replace')
						{
							var selects = document.getElementsByTagName('select');
							for (var i = 0; i < selects.length; i++)
								{
									var select = selects[i];
									if (select.clientWidth == 0 || select.clientHeight == 0 || 
										select.nextSibling == null || select.nextSibling.className != 'selectReplacement')
									{
										continue;
									}	
									select.parentNode.removeChild(select.nextSibling);
									select.style.display = select.cachedDisplay;
								}				
						}				
				}
		}
		return;
	}


function ClearCampiDiv(element) 
	{   
		for (var i = 0; i < element.childNodes.length; i++)  
			{      
				var e = element.childNodes[i];      
				if (e.tagName) 
					switch (e.tagName.toLowerCase()) 
						{         
							case 'input':            
								switch (e.type) 
									{               
										case "radio":               
										case "checkbox": e.checked = false; break;
										case "button":               
										case "submit":               
										case "image": break;               
										default: e.value = ''; break;            
									}            
								break;         
							case 'select': e.selectedIndex = 0; 
								break;         
							case 'textarea': e.innerHTML = ''; 
								break;
							case 'text': e.value='';
								break;        
						    default: ClearCampiDiv(e);     
						 }   
			}
	}

function php_urlencode (str) 
	{
		str = escape(str);
		return str.replace(/[*+\/@]|%20/g,
		function (s) 
			{
				switch (s) 
					{
						case "*": s = "%2A"; break;
						case "+": s = "%2B"; break;
						case "/": s = "%2F"; break;
						case "@": s = "%40"; break;
						case "%20": s = "+"; break;
					}
				return s;
			}
		);
	}

function urldecode(str) {
return unescape(str.replace('+', ' '));
}

     
function removeDuplicateElement(arrayName)
      {
        var newArray=new Array();
        label:for(var i=0; i<arrayName.length;i++ )
        {  
          for(var j=0; j<newArray.length;j++ )
          {
            if(newArray[j]==arrayName[i]) 
            continue label;
          }
          newArray[newArray.length] = arrayName[i];
        }
        return newArray;
      } 


function CheckInvio()
	{
		var keycode;
		if (window.event) keycode = window.event.keyCode;
		else if (e) keycode = e.which;
		else return true;
		if (keycode == 13)
			{        
				return true;
			}
	}

function FocusOnCampo(campo)
	{
		var keycode;
		if (window.event) keycode = window.event.keyCode;
		else if (e) keycode = e.which;
		else return true;
		if (keycode == 13)
		{        
			document.getElementById(campo).focus();
			return false;
		}
	}


function protect(anObject,protection) 
	{
	 	if (anObject == null) 
			{
		  		return true;
		 	} 
		if	(anObject.children!=null)
			{
				var members = anObject.children.length;
	 			var i = 0;
				 for (i=0;i<members;i++) 
				 	{
			 		 	var curObject = anObject.children.item(i);
			 		 	if (curObject != null) {
			   			protect(curObject,protection);}
		
						if(curObject.nodeName=="IMG" && protection==true)
							{
								curObject.src = curObject.src.replace("disable","");
								var lunghezza = curObject.src.length - 4;						
								var NewSrc = curObject.src.substr(0,lunghezza) + "disable" + curObject.src.substr(lunghezza)
								curObject.src = NewSrc;
							}
						else if(curObject.nodeName=="IMG" && protection==false)
							{
								var NewSrc = curObject.src.replace("disable","");
								curObject.src = NewSrc;								
							}				 
					 } 
			}

	 anObject.disabled = protection;
	 return true;
	} 	

function ModalShow(mymodal)
{	
	protect($(mymodal),false);
	$(mymodal).style.display = $('modalBackground').style.display = 'block';
	
	if(mymodal=='modalWindow') document.getElementById("nomedoc").focus();
    if(mymodal=='divlogin') document.getElementById("utente").focus();
	
	// special < IE7 -only processing for windowed elements, like select	
	

	if (window.XMLHttpRequest == null)
	{
		var type = $('hideType').value;
		
		if (type == 'iframe')
			$('modalIframe').style.display = 'block';
		if (type == 'replace')
			ReplaceSelectsWithSpans();
	}
	return;
} 
 
 function ModalCloseDouble(esitomodal)
{
	if (barrastato!="")
		$(esitomodal).style.display = $(barrastato).style.display = $('modalBackground').style.display = 'none';
	else
		$(esitomodal).style.display = $('modalBackground').style.display = 'none';
	// special IE-only processing for windowed elements, like select	
	if (document.all)
	{
		var type = $('hideType').value;
		
		if (type == 'iframe')
			$('modalIframe').style.display = 'none';
		if (type == 'replace')
			RemoveSelectSpans();
	}
}

function SelectClose(mymodal,DivToEnable)
	{
		protect(document.getElementById(DivToEnable),false);
		$(mymodal).style.display = 'none';
		return;
	}

function ModalClose(mymodal)
{
	$(mymodal).style.display = $('modalBackground').style.display = 'none';
	
	// special IE-only processing for windowed elements, like select	
	if (document.all)
		{
			var type = $('hideType');
			if(type)
				{
					if (type.value == 'iframe')
						$('modalIframe').style.display = 'none';
					if (type.value == 'replace')
						RemoveSelectSpans();	
				}
		}	
	return;
}
 
/* These functions deal with IE's retardedness in not allowing divs to 
 * cover select elements by replacing the select elements with spans. */
 
function RemoveSelectSpans()
{
	var selects = document.getElementsByTagName('select');
	
	for (var i = 0; i < selects.length; i++)
	{
		var select = selects[i];
		
		if (select.clientWidth == 0 || select.clientHeight == 0 || 
			select.nextSibling == null || select.nextSibling.className != 'selectReplacement')
		{
			continue;
		}
			
		select.parentNode.removeChild(select.nextSibling);
		select.style.display = select.cachedDisplay;
	}
	
	return;
}
 
function ReplaceSelectsWithSpans()
{
	var selects = document.getElementsByTagName('select');
	
	for (var i = 0; i < selects.length; i++)
	{
		var select = selects[i];
		
		if (select.clientWidth == 0 || select.clientHeight == 0 || 
			select.nextSibling == null || select.nextSibling.className == 'selectReplacement')
		{
			continue;
		}
			
		var span = document.createElement('span');
		
		// this would be "- 3", but for that appears to shift the block that contains the span 
		//   one pixel down; instead we tolerate the span being 1px shorter than the select
		span.style.height = (select.clientHeight - 4) + 'px';
		span.style.width = (select.clientWidth - 6) + 'px';
		span.style.display = 'inline-block';
		span.style.border = '1px solid rgb(200, 210, 230)';
		span.style.padding = '1px 0 0 4px';
		span.style.fontFamily = 'Arial';
		span.style.fontSize = 'smaller';
		span.style.position = 'relative';
		span.style.top = '1px';
		span.className = 'selectReplacement';
		
		span.innerHTML = select.options[select.selectedIndex].innerHTML + 
			'<img src="custom_drop.gif" alt="drop down" style="position: absolute; right: 1px; top: 1px;" />';
		
		select.cachedDisplay = select.style.display;
		select.style.display = 'none';
		select.parentNode.insertBefore(span, select.nextSibling);
	}
}

 
function $(id)
{
	return document.getElementById(id);
}


function goToAllega() { window.location = "upload.php"; }

function popallega()
	{  
		SelPopUp=window.open('upload.php','Selezione','top=200, left=400, width=520, height=200, scrollbars=yes, resizable=no, location=no, status=no, toolbar=no')				
	
	} 

var G_len_value = 0;   // VARIABILE PER LA LETTURA DELLA LUNGHEZZA DI UN VALORE
var G_caratteri_numerici = "48,49,50,51,52,53,54,55,56,57,58,59,95,96,97,98,99,100,101,102,103,104,105"; 


function isNumberKey(evt)
  {
     var charCode = (evt.which) ? evt.which : event.keyCode
     if (charCode > 31 && (charCode < 48 || charCode > 57))
        return false;

     return true;
  }


function IsNumeric(sText)
{
   var ValidChars = "0123456789.";
   var IsNumber=true;
   var Char;

 
   for (i = 0; i < sText.length && IsNumber == true; i++) 
      { 
      Char = sText.charAt(i); 
      if (ValidChars.indexOf(Char) == -1) 
         {
         IsNumber = false;
         }
      }
   return IsNumber;
   
   }


function MaxCaratteri(Object, MaxLen)
{
	  	return (Object.value.length <= MaxLen);
}

function Leggi_len_value(valore){
	G_len_value = valore.length;
}

function IsBisestile(anno){
	if((anno % 4 == 0 && anno%100 != 0) || anno%400 == 0){
		return true;		// ANNO BISESTILE: (divisibile per 4 e non per 100) oppure (divisibile per 400)
	}
	else{
	    return false;		// ANNO NON BISESTILE
	}
}
function Leggi_tasto(ev){
	var tasto;
	if (window.event){	//explorer 6 e netscape 6
        tasto = ev.keyCode;
	}
	else if (ev){  	//netscape 4
		tasto = ev.which;
	}
	return tasto;
}
function Togli_separatore(valore,separatore){
	var nuovovalore = valore;                            // al nuovo valore assegno il valore attuale
	var valori_parziali = valore.split(separatore);      // separo in dati parziali in base al separatore
	if( valori_parziali.length > 1)	                     // ci sono dei separatori quindi li devo andare a togliere
	{
		var i;
		nuovovalore="";
		// tolgo i separatori dal valore
		for (i = 0; i < valori_parziali.length; i++ ){
			nuovovalore +=  valori_parziali[i];   // aggiungo le porzioni di dato fino ad ottenere il numero senza separatori
		}
	}
	return nuovovalore;
}
function Formatta_data_INPUT(objdata,ev,separatore)
{
	var valore = objdata.value;   // valore contenuto nell'oggetto data
	var lun = valore.length;      // lunghezza attuale del valore nell'oggetto data
	// Controllo in base a diversi tipi di browser qual è il codice del tasto premuto e lo 
	// assegno alla variabile "tasto"			
	var tasto = Leggi_tasto(ev);
	//------------------------------------------------------------------------
	// CONTROLLO SE E' STATO AGGIUNTO UN NUOVO CARATTERE
	//------------------------------------------------------------------------
    // Confronta la lunghezza del valore attuale con la lunghezza salvata precedentemente.
 	// Se il tasto premuto non ha aggiunto caratteri (potrebbe anche averli diminuiti se è stato digitato il backspace)...
    // non devo fare tutti i controlli in quanto è stato digitato un tasto "non carattere"->ESCO
	//------------------------------------------------------------------------
	if (G_len_value >= lun)return;							   
	//------------------------------------------------------------------------
	// CONTROLLO SE IL CARATTERE PUO' ESSERE ACCETTATO - i caratteri accettabili sono:
	//------------------------------------------------------------------------
	// tutte le cifre dei tasti numerici
	// tutte le cifre ottenute usando i tasti del tastierino numerico
	//------------------------------------------------------------------------
	if ( G_caratteri_numerici.search(tasto) == -1)
	// il tasto premuto non è una cifra quindi devo rimuovere il carattere digitato dal valore
	{
		objdata.value = valore.substr(0,lun-1); //elimino ultima carattere inserito
		return;
	}
	//------------------------------------------------------------------------
	// CONTROLLO SE HO GIA' MESSO LE BARRE (eventualmente le metto)
	//------------------------------------------------------------------------
	var barra1 = valore.indexOf(separatore);      // controlla presenza del primo separatore
	var valore2 = valore.slice(barra1+1);         // assegno sottostringa a partire dalla posizione del primo separatore
	var barra2 = valore2.indexOf(separatore);     // controlla presenza del secondo separatore
												
	if(barra1 == -1 && barra2 == -1)
	// CASO 1: non ho ancora inserito alcuna barra quindi sto inserendo il giorno
	{
		if(lun==2) // ha digitato 2 caratteri quindi è ora di inserire il primo separatore
		{
			objdata.value = valore + separatore;  						
		}
	}
	else if (barra1 != -1 && barra2 == -1)
	// CASO 2: ho inserito solo la prima barra quindi sto inserendo il meze
	{ 
	    if (lun==5) // in tutto ho 5 caratteri quindi è ora di inserire il secondo separatore
		{
			objdata.value = valore + separatore;
		}
	}
	Leggi_len_value(objdata.value); // salvo lunghezza del valore attuale sulla variabile globale
}
var old_valore_objdata = "";

function Valida_data(objdata){

	var valore = objdata.value;   // valore del campo data
	var lun = valore.length;      // lunghezza del campo data
	// CONTROLLO SE LA LUNGHEZZA DELLA DATA E' ERRATA
	if (lun!= 8 && lun!=10 && lun!=0)
	{
		alert("ATTENZIONE! La data è errata!");
		objdata.focus();
		objdata.select();
    	return;
	}
	// DATA DI LUNGHEZZA 8 QUINDI DEVO RIELABORARE LA DATA PER CONVERTIRE L'ANNO 
	// IN ANNO DA 4 ANZICHE' DA 2 CARATTERI
	if (lun==8)
	{
		var nuovovalore = valore.substring(0,6);  // parte della data fino al mese + separatore
		var anno = valore.substring(6,8);	      // leggo l'anno (ora è da 2)
		if (anno <= 50)
		{										
			nuovovalore = nuovovalore + 20;       // se l'anno è minore< di 50 suppongo che si tratti di anno 2000
		}
		else
		{
		    nuovovalore = nuovovalore + 19;       // se l'anno è maggiore di 50 suppongo che si tratti di anno 1900
		}
		nuovovalore = nuovovalore + anno;         // concateno l'anno alla prima parte della data
		objdata.value = nuovovalore;              // riassegno il valore all'oggetto data
	}
	Leggi_len_value(objdata.value);               // salvo lunghezza attuale della data
	//------------------------------------------------------------------------
	// CONTROLLO SE L'ANNO E' BISESTILE
	//------------------------------------------------------------------------
	var gg = parseInt(""+objdata.value.substr(0,2),10); // giorno
	var mm = parseInt(""+objdata.value.substr(3,2),10); // mese
	var anno = objdata.value.substr(6,4);		  // anno

	var array_giorni = new Array(" ",31,28,31,30,31,30,31,31,30,31,30,31);
	if(IsBisestile(anno))array_giorni[2] = 29;	  // se l'anno è bisestile al secondo mese assegno 29 giorni	
	//------------------------------------------------------------------------
	// CONTROLLO VALIDITA' MESE
	//------------------------------------------------------------------------
	if (mm > 12)
	{
		alert("ATTENZIONE! La data è errata! Controllare il numero corrispondente al mese.");
		objdata.focus();
		objdata.select();
    	return;
	}	
	//------------------------------------------------------------------------
	// CONTROLLO VALIDITA' GIORNO RISPETTO AL MESE
	//------------------------------------------------------------------------
	if (gg > array_giorni[mm])
	{
		alert("ATTENZIONE! La data è errata! Controllare il numero corrispondente al giorno.");
		objdata.focus();
		objdata.select();
    	return;
	}	
	if(old_valore_objdata==objdata.value)return;
	old_valore_objdata = objdata.value;
}


function checkEnter(e)

	{
		var characterCode;
	
		if(e && e.which)
			{ 
				e = e;
				characterCode = e.which;
			}
		else
			{
				e = event;
				characterCode = e.keyCode;
			}
	
	}

function CheckData(Obj,AnnoCifre,OkFocus)
	{	
		if (Obj.value!="")
			{
				var myobj = isdate(Obj.value, AnnoCifre);
				if(myobj.isdate==false)
					{
						alert(myobj.error);
						Obj.value="";
						G_len_value=0;
						Obj.focus();
					}
				else	
					{
						if(OkFocus)
						{
							OkFocus.focus();
							
							if(OkFocus.value)
							{}
							else
							{OkFocus.value="";}	
						}	
					}	
			}	
	}

function isdate(dateStr, year4) 
	{
		if(typeof(year4) == "undefined")
		    var year4 = false;
		
		var ret = new Object();
		ret.isdate = false;
		ret.error = "";
		ret.year = 0;
		ret.month = 0;
		ret.monthname = "";
		ret.dayofweek = "";
		ret.day = 0;
		ret.data = null;
		
		
	    // inizio stringa
	    // 1 o 2 cifre
	    // / o - o .
	    // 1 o 2 cifre
	    // / o - o .
		// 4 cifre
		// fine stringa    
	    //var datePat = /^(\d{1,2})(\/|-|.)(\d{1,2})(\/|-|.)(\d{4})$/;
	    var datePat = null;
	    if(year4)
	        datePat = /^\s*(\d{1,2})(\/|-|\.)(\d{1,2})(\2)(\d{4})\s*$/;
	    else
	        datePat = /^\s*(\d{1,2})(\/|-|\.)(\d{1,2})(\2)(\d{2}|\d{4})\s*$/;
	    
	    //restituisce, allo stesso modo di una matrice, i risultati di una ricerca
	    //di una stringa utilizzando un oggetto Regular Expression
	    var matchArray = dateStr.match(datePat); 
	
	    if (matchArray == null) {
	        ret.error = "Formato data non valido";
	        return ret;
	    }
	
	    day = matchArray[1];
	    month = matchArray[3]; 
	    year = matchArray[5];
	    if(year.length == 2)
			if(parseInt(year,10) < 30)
				year = parseInt(year,10) + 2000;
			else
				year = parseInt(year,10) + 1900;
	
	    if (month < 1 || month > 12) { // il mese deve essere compreso tra 1 e 12
	        ret.error = "Il mese deve essere compreso tra 1 e 12.";
	        return ret;
	    }
	
	    if (day < 1 || day > 31) {//il giorno non puo essere < 1 e > 31
	        ret.error = "Il giorno deve essere compreso tra 1 e 31";
	        return ret;
	    }
	
	    if ((month==4 || month==6 || month==9 || month==11) && day==31) {
	        //i mesi aprile, giugno, settembre, novembre, hanno 30 giorni
	        ret.error = "Il mese " + month + " non ha 31 giorni!";
	        return ret;
	    }
	
	    if (month == 2) { // verifica se l'anno e bisestile: febbraio puo avere 29 giorni
	        var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
	        if (day > 29 || (day==29 && !isleap)) {
				ret.error = "Febbraio " + year + " non ha " + day + " giorni!";
				return ret;
	        }
	    }
	    isDateError = "";
	    // se sono qui, la data e valida!
		ret.isdate = true;
		ret.error = "";
		ret.year = year;
		ret.month = month;
		ret.day = day;
		ret.data = new Date(year, (month - 1), day);
	    switch(parseInt(month,10))
	    {
	        case 1: ret.monthname = "Gennaio"; break;
	        case 2: ret.monthname = "Febbraio"; break;
	        case 3: ret.monthname = "Marzo"; break;
	        case 4: ret.monthname = "Aprile"; break;
	        case 5: ret.monthname = "Maggio"; break;
	        case 6: ret.monthname = "Giugno"; break;
	        case 7: ret.monthname = "Luglio"; break;
	        case 8: ret.monthname = "Agosto"; break;
	        case 9: ret.monthname = "Settembre"; break;
	        case 10: ret.monthname = "Ottobre"; break;
	        case 11: ret.monthname = "Novembre"; break;
	        case 12: ret.monthname = "Dicembre"; break;
	        default: ret.monthname = ""; break;
	    }
	    //ret.dayofweek
	    switch( ret.data.getDay() )
	    {
	        case 0: ret.dayofweek = "Domenica"; break;
	        case 1: ret.dayofweek = "Lunedì"; break;
	        case 2: ret.dayofweek = "Martedì"; break;
	        case 3: ret.dayofweek = "Mercoledì"; break;
	        case 4: ret.dayofweek = "Giovedì"; break;
	        case 5: ret.dayofweek = "Venerdì"; break;
	        case 6: ret.dayofweek = "Sabato"; break;
	        default: ret.dayofweek = ""; break;
	    
	    }
	    
	    return ret;
	}

function confronta_data(data1, data2)
	{	
		if(controllo_data(data1) &&controllo_data(data2))
			{	
				data1str = data1.substr(6)+data1.substr(3, 2)+data1.substr(0, 2);
				data2str = data2.substr(6)+data2.substr(3, 2)+data2.substr(0, 2);
				if (data2str-data1str<0) 
					{            
						alert("La data iniziale deve essere precedente quella finale");
			        }
				else
					{		
						alert("ok");        
					}    
			}
		else
			{        
				alert("Il formato data deve essere gg/mm/aaaa");    
			}
	}

function Left(str, n)
	{
	   if (n <= 0)
	         return "";
	   else if (n > String(str).length)
	         return str;
	   else
	         return String(str).substring(0,n);
	}

function GetIndexNode(str)
	{
		return left(str,str.length-1);
		
	}

function Right(str, n)
	{
	      if (n <= 0)
	          return "";
	      else if (n > String(str).length)
	          return str;
	      else
	   		{
	          var iLen = String(str).length;
	          return String(str).substring(iLen, iLen - n);
	        }
	  
	}

function LeggiData(MyDate)
	{
		mese = MyDate.substring(5,7);
		giorno =  Right(MyDate,2);
		mese.replace("-","0");
		giorno.replace("-","0");
		
		return giorno + "/" + mese + "/" + Left(MyDate,4);		
	}

function MyToday()
	{
		var Data = FormatDat(Date()); 
		return Data;
	}

function FormattaData(MyData) 
	{
		var anno = Right(MyData,4);
		var giorno = Left(MyData,2);
		var mese = MyData.substring(3,5);
		return (anno+"-"+mese+"-"+giorno);
	}

function FormatDat(MyData) 
	{
		var data = dateFormat(MyData, 'dd/mm/yyyy');
		return data;
	}

function ClearCampi()
	{
		document.getElementById("TitoloScadenza").value="";
		document.getElementById("MyDataScadenza").value="";
		document.getElementById("notescadenza").value="";
		return;
	}
	
function lz(numero, cifre) 
	{
		n = String(numero);
		while (n.length<cifre)
			{ 
				n="0"+n 
			}
		return n;
	}
	
function dateFormat(data, formato) 
	{ 
	 
		var giorni = new Array("Domenica","Lunedì","Martedì","Mercoledì","Giovedì","Venerdì","Sabato");
		var mesi = new Array("Gennaio","Febbraio","marzo","Aprile","Maggio","Giugno","Luglio","Agosto","Settembre","Ottobre","Novembre","Dicembre");
	 
	// 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;
		}
	} 
 
	function OpenCalendar(str)
		{
			if (str=='CalScadenza')
				{
					if(mycal.isVisible())
						{
							mycal.hide();
						}
					else
						{
							mycal.show();
						}			
				}
			else if(str=='calAperturaFascicolo')
				{
					if(calAperturaFascicolo.isVisible())
						{
							calAperturaFascicolo.hide();
						}
					else
						{
							calAperturaFascicolo.show();
						}			
				}			
			else if(str=='CalendarioDal')
				{
					if(CalendarioDal.isVisible())
						{
							CalendarioDal.hide();
						}
					else
						{
							CalendarioDal.show();
						}			
				}
			else if(str=='calChiusuraFascicolo')
				{
					if(calChiusuraFascicolo.isVisible())
						{
							calChiusuraFascicolo.hide();
						}
					else
						{
							calChiusuraFascicolo.show();
						}			
				}
			else if(str=='CalendarioAl')
				{
					if(CalendarioAl.isVisible())
						{
							CalendarioAl.hide();
						}
					else
						{
							CalendarioAl.show();
						}			
				}
			else	
				{
					if(CalendarioScadenza.isVisible())
						{
							CalendarioScadenza.hide();
						}
					else
						{
							CalendarioScadenza.show();
						}			
				}
		}	
		
function CheckData2(Obj,AnnoCifre)
	{	
		if (Obj.value!="")
			{
				var myobj = isdate(Obj.value, AnnoCifre);
				if(myobj.isdate==false)
					{
						//alert(myobj.error);
						Obj.value="";
						G_len_value=0;
						Obj.focus();
					}
			}	
	}
function MaxReload(ogt,MaxLen,n_grid,filt)
{
	if(ogt.value.length == MaxLen)
	{
		grid_settaParametroValue(n_grid, filt, ogt.value);
		reloadGrid(n_grid);
	}
		
	return ogt.value.length <= MaxLen;
}	
