/*
-----------------------------------------------------------------------------------
------- location.Key[IdChiave][1] e location.QS("NomeChiave") ------------------------
------- Restituiscono i parametri ricevuti dalla pagina nella QueryString
------- 
------- ValoreParametro = location.key[NumPar][1];
-------       NumPar e' l'ordinale della coppia nella stringa a partire da 0 (zero)
------- 
------- ValoreParametro = location.QS("NomeParametro");
-------       NomeParametro e' il nome del parametro ricevuto nella stringa
-------                                                                         
--- 
*/
var Keys = unescape(location.search.substr(1)).split("&");
for (var _Id in Keys)
	Keys[_Id]=Keys[_Id].split("=");
location.Key = Keys;

function QueryString(_key){
	var _QSvalue;
	for (var _Id in location.Key)
		if (location.Key[_Id][0]==_key)
			return location.Key[_Id][1];
	}
location.QS=QueryString;
/* ----------------------------------------------------------------------------------- */

/* -----------------------------------------------------------------------------------
------- Trim(), LTrim(), RTrim() -----------------------------------------------------
------- 
------- Metodi per l'oggetto String, restituiscono la stringa cui sono applicati
------- senza spazi iniziali e/o finali:
------- 
------- str_a = stringa.Trim();
-------       str_a contiene il valore di stringa senza spazi iniziali ne' finali
------- 
------- str_a = stringa.LTrim();
-------       str_a contiene il valore di stringa senza spazi iniziali
------- 
------- str_a = stringa.RTrim();
-------       str_a contiene il valore di stringa senza spazi finali
------- 
------- N.B.
------- [\s] nelle RegExp contiene sia gli spazi che i ritorni a capo, avanzamento riga
------- tabulatore, tabulatore verticale. Tutti questi caratteri, se presenti, verranno
------- eliminati.
-------                                                                            --- */
function Trim() {
   return this.replace(/\s+$|^\s+/g,"");
   }

function LTrim() {
   return this.replace(/^\s+/,"");
   }

function RTrim() {
   return this.replace(/\s+$/,"");
   }
	
String.prototype.Trim=Trim;	
String.prototype.RTrim=RTrim;	
String.prototype.LTrim=LTrim;	
/* ----------------------------------------------------------------------------------- */


// altre funzioni -----------------------------------------------

// -------- Controlla l'email -------------
function controllaMail(em) {
   EmailAddr = em;
   Filtro = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-]{2,})+\.)+([a-zA-Z0-9]{2,})+$/;
   if (Filtro.test(EmailAddr))
      return true;
   else {
      return false;
      }
}

function avvisa(cosa){
	alert("ATTENZIONE !\nIl seguente campo e\' stato tralasciato o compilato in modo errato:\n " + cosa);
}


function apri(pg, nome, w, h) {
	opt='width=' + w + ',height=' + h + ',menubar=no,resizable=yes,scrollbars=yes'
	window.open (pg, nome, opt);
}
//------------- chiedi -------------
function chiedi(indirizzo,cosa,avviso){
var esito;

esito=confirm("Volete davvero eliminare  "+ cosa +" ? " + avviso);
	if(esito){
	document.location.href=indirizzo;
	
	}

}

function aprifinestra(pag,larg,altez){
	window.open(pag,'Details','scrollbars=yes,resizable=yes,width='+ larg +',height='+altez);
}

function chiediCosa(indirizzo,cosa,conseguenza){
var esito;

var mess="Volete davvero eliminare "+  cosa +" ?";
var cons=conseguenza.Trim();

if(conseguenza.length>0){
	mess=mess +"\n------------\n"+cons;
	}

esito=confirm(mess);
	if(esito){
	document.location.href=indirizzo;
	}
}


function cancTesto(){
	if(document.frmCerca.parola.value=="Cerca nel sito"){
	document.frmCerca.parola.value="";	
	}
}

function ripristinaTesto(){
	if(document.frmCerca.parola.value=="" || document.frmCerca.parola.value==" "){
	document.frmCerca.parola.value="Cerca nel sito";
	}  
}  
  //----------------------------------------------------------------------
  
  
function isDate(gg,mm,aaaa) {
	mm = mm-1;
	var d = new Date(aaaa,mm,gg);
	return (d.getDate()==gg && d.getMonth()==mm && d.getFullYear()==aaaa);
}

//'-- funzione che controlla il corretto formato della data a partire dal 01/01/1900 al 31/12/2099 e restituisce true/false
function controllaData(str){
	var dataA=str;
	   filtro =/^(([0-2]\d|[3][0-1])\/([0]\d|[1][0-2])\/[1-2][0|9]\d{2})$/;
	  // return (y%4==0 && y%100!=0) || y%400==0; 
   if (filtro.test(dataA)){
   	
		var ArrD=str.split("/");
   		var giorno=ArrD[0];
   		var mese=ArrD[1];
   		var anno=ArrD[2];
   		
		giorno=parseInt(giorno);
		mese=parseInt(mese);
		anno=parseInt(anno);
		
		//'-- ------- controllo dell'anno bisestile -----
   		if(mese==2 && giorno>=29 ){
			if(anno % 4 > 0){
			return false;	
			}
		}
   
      return true;
   }
   else {    
   		return false;
    }
	
}

/*
========Controlla due date se la seconda  posteriore alla prima ===========1.1.0
Accetta 3  parametri per la data di partenza
3 parametri per la data di fine e 
parita= true/false per sapere se deve accettare la parita' (true) tra le due date 
nelPassato=true: se le date possono rappresentare un intervallo di tempo nel passato; false: obblica a usarlo solo nel presente o futuro;
esempio:
esito=contrIntervalloDate(giornoDA, meseDa, annoDa, giornoA, meseA, annoA, true, false);
[stiamo controllando l'arco di tempo tra le due date e stiamo chiedendo che possano essere contemporanee ma non  possono esprimere un intervallo di tempo nel passato]
*/
function controllaIntervalloDate(g_DA, m_DA, a_DA, g_a, m_a, a_a, parita, nelPassato){
	// -------- controlliamo se i primi 6 argomenti sono arrivati
	if(g_DA==0 &&  m_DA==0 && a_DA==0 && g_a==0 &&  m_a==0 && a_a==0 ){
alert("...qualche campo e' vuoto !!! "); // ###		
	return true;
	}
	// -------- controlliamo se i primi 6 argomenti sono arrivati
	
		if(isDate(g_DA, m_DA, a_DA) && isDate(g_a, m_a, a_a)){ // se le date sono corrette
		alert("Queste date vanno benen"); // ###
			var oggi=new Date();
			var g_oggi=oggi.getDate();
			var m_oggi=oggi.getMonth()+1;
			var a_oggi=oggi.getFullYear();
			
			var zerog="";
			var zerom="";
			
			if(g_oggi<10){
			zerog="0";
			}
			
			if(m_oggi<10){
			zerom="0";
			}

		
			 oggiy=a_oggi.toString() +  zerom + m_oggi.toString() + zerog +g_oggi.toString();	
			 
			ind_da=dataDa_a.toString() + dataDa_m.toString() + dataDa_g.toString();
			ind_a=dataA_a.toString() + dataA_m.toString() + dataA_g.toString();
				
			var oggix=parseInt(oggiy);				
			var ind_dax=parseInt(ind_da);
			var ind_ax=parseInt(ind_a);
		
		// ------- vediamo subito se supera il test del passato ---------
			if(nelPassato==false){ // se non si possono scegliere periodi nel passato
					if(ind_ax<oggix){ // la scadenza  nel passato
						return false;	
					}
			}

		// ------- /vediamo subito se supera il test del passato ---------
			
		// -------- ora vediamo se le date sono coerenti  --------------
			if(ind_ax<ind_dax){ // se la data a  anteriore a da 
					return false;
			}
			else if(ind_ax==ind_dax){ // caso di parita
						if(parita){ // se la parita'  ammessa
							return true;	
						}
						else{ // parita non ammessa
							return false;
						}
			}// caso di parita						
			else if(ind_ax>ind_dax){ // caso data scadenza posteriore alla data inizio : OK
					return true;
			}// caso data scadenza posteriore alla data inizio : OK
		// -------- ora vediamo se le date sono coerenti  --------------

		
	
	}// se le date sono corrette
	else{ // le date non sono corrette
	alert("Queste date non sono corrette"); // ###
		return false;		
	}// le date non sono corrette
}
  
  //-------------- controll sui campi ------------
function ControllaInt(val) {
	var	value = val.value;
	if (value.length && !/^[0-9]+(,|\.)?([0-9]+)?$/.test(value)) {
		alert("Sono ammessi solo numeri!");
		val.value = value.substr(0, value.length - 1);
	}
}


  //-------------- mostra nasconde tag in base alla classe ------------
function mostraNascondiClasse(nomeElem,nomeClass){

	if(document.getElementById){
		var tagDiv = document.getElementsByTagName(nomeElem);
		for (var i = 0; i < tagDiv.length ; i++){
			var elCorr=tagDiv[i].id;
			
			var nomeClasse=tagDiv[i].className;
			
			if(nomeClasse==nomeClass){
			tagDiv[i].style.display = (tagDiv[i].style.display=="") ? "none" : "";
			}
		}	
		
	}

}

  function cancTesto(){
	if(document.formCerca.parola.value=="Cerca nel sito"){
	document.formCerca.parola.value="";	
	}
}

function ripristinaTesto(){
	if(document.formCerca.parola.value=="" || document.formCerca.parola.value==" "){
	document.formCerca.parola.value="Cerca nel sito";
	}  
}  

function impostaCodice(cd,imgIco){// in interna fa da contenitore a scaricatore.asp
codice=cd.Trim();
	if(codice.length==25){
		aprifinestra('scaricatore.asp?c='+codice);
	}
}
  
// =======apriChiudiSez===================
var chiudiImg = new Image;
chiudiImg.src =  'img/sezChiudi.gif';
                                                                                                                          
var apriImg =  new Image;
apriImg.src = 'img/sezApri.gif';
//'--  divID= id del div da noascondere/mostrare
//'--  id del link su cui cliccare
//'-- immagine


function apriChiudiSez(linkID, divID, imgApriChiudi, oper) {
    if (oper == 'chiudi') {
        document.getElementById(linkID).href = "javascript:apriChiudiSez('" + linkID + "', '" + divID + "', '" + imgApriChiudi + "', 'apri');";
        document.getElementById(divID).style.display = "none";
        document.getElementById(imgApriChiudi).src =  apriImg.src;
    } else {
        document.getElementById(linkID).href = "javascript:apriChiudiSez('" + linkID + "', '" + divID + "', '" + imgApriChiudi + "', 'chiudi');";
        document.getElementById(divID).style.display = "block";
        document.getElementById(imgApriChiudi).src =  chiudiImg.src;
    }
} 

// ===========selTuttiCheck============================
function selTuttiCheck(nomeFrm,nomeCecchi,ceccoTutto){
	var nomeForm=nomeFrm;
	var cecTutto;

	cecTutto=document.getElementById(ceccoTutto);

	for (var i=0;i < document.forms[nomeForm].elements.length;i++){
		var elementoCorrente = document.forms[nomeForm].elements[i];		
		if (elementoCorrente.type == "checkbox" && elementoCorrente.name == nomeCecchi && ! elementoCorrente.disabled){	
			elementoCorrente.checked = cecTutto.checked;
		}
	}	
}

// ==========seSelScelte=============================
function seSelScelte(nomeForm,nomeScelte,tipoScelte,corrScelte,numScelte){
// tipoScelte: puo' essere ceckbox o radio
// corrScelte: "min"=minimo; "max"=massimo; "uguale"=numero preciso richiesto
//numScelte: numero indicante quante scelte minimo/max o uguale devono aver fatto
	var scltFatte=0;
		for (var i=0;i < document.forms[nomeForm].elements.length;i++){
			var elementoCorrente = document.forms[nomeForm].elements[i];		
			if (elementoCorrente.type == tipoScelte && elementoCorrente.name == nomeScelte && ! elementoCorrente.disabled){	
				if(elementoCorrente.checked){
					scltFatte++;
				}
			}
		}	
	switch (corrScelte){
		case "min":
			if(scltFatte>=numScelte){
				return true;
			}
			else{
				return false;
			}
		case "max":
			if(scltFatte<=numScelte){
					return true;
			}
			else{
				return false;
			}	
		case "uguale":
			if(scltFatte==numScelte){
				return true;
			}
			else{
				return false;
			}
	}	
	
}
 
// ==========seTipoFileCorretto=============================
// campo: id del campo di selezione file;
// strEst: stringa con estensioni ammesse divise da virgola
  function seTipoFileCorretto(campo, strEst){
	var strEstens=strEst.toLowerCase();  
	var arrEst=strEstens.split(',');
	var percorso=document.getElementById(campo).value;
	var est=percorso.slice(percorso.length-3);
	est=est.toLowerCase();
	var esito=false;

	for(var i=0; i<arrEst.length;i++){
		if(est==arrEst[i]){
			esito=true;
			break;
		}
		
	}
	if(!esito){
		alert("Il file selezionato non e' corretto. Deve essere di tipo "+ strEst);
		var cmp=document.getElementById(campo);
		cmp.value="";
	}
}


// verifica se in una stringa non ci siano i caratteri presenti in carNonAmmLogin passati in una stringa divisa da virgola
function seCaratteriLogin(strLogin,carNonAmmLogin){
	var stringaCarat=carNonAmmLogin;
	if(stringaCarat.length>0){
		var ArrCarNonLogin=stringaCarat.split(",");
			var i=0;
			while(i<ArrCarNonLogin.length) {
				var unCarattere = ArrCarNonLogin[i];
				//alert("Esamino: " + ArrCarNonLogin[i]);
				if (strLogin.indexOf(unCarattere)>-1){
					//alert("Fetente !!!");
					return false;
				} 
			i++;	
			}
	return true;		
	}
	else{
		return false;	
	}

}

 // verIfica che la stringa immessa sia composta da lettere
 function seSoloLettere(stringozza) {
	var codiceCar; 
	for (var i = 0; i < stringozza.length; i++) {
		codiceCar = stringozza.charCodeAt(i)
		if ( !( (codiceCar >= 65 && codiceCar <=90) || (codiceCar >= 97 && codiceCar <=122) ) ) {
			return false;
		}
	}
	return true;
}

// verifica che la stringa immessa sia un numero. Non tiene conto dei punti per i decimali o del segno -
function seNumero(stringaNum) { 

	for (var i = 0; i < stringaNum.length; i++) {
		var unCarattere = stringaNum.charAt(i);
		if (unCarattere < "0" || unCarattere > "9"){
			return false;
		} 
	}
	return true;
} 

//'-- ======centriFugaNomeFile ===
//'-- prende il nome naturale di un file e lo suddivide nelle sue parti
//'-- es: papera_2_200807201185131_zhpz4y57rdih75d6d6127dpbl.jpg
//'-- restituisce un array con i seguenti valori
//'-- arrNome[0]="papera_2.jpg"
//'-- arrNome[1]="jpg"
//'-- arrNome[2]="200807" data di caricamento
//'-- arrNome[3]="01185131" ora di caricamento
//'-- arrNome[4]="zhpz4y57rdih75d6d6127dpbl"  codice
//'-- arrNome[5]="1" ; tipo di file 1=img; 2=doc, 3=swf
function centriFugaNomeFile(strNm){
	
	var nomeNat=strNm;
	var nomeNat=strNm;
	var arrNome=new Array(7);

	var nomePulito; 
	var est;
	var  dataImm;
	var oraImm;
	var cod;
	var tipoFile;
	
	
	lungNome=nomeNat.length;
	
	//'------ prendiamo l'estensione -----
	posPunto=nomeNat.lastIndexOf(".");
	est=nomeNat.substr(posPunto+1,lungNome-posPunto)
	arrNome[1]=est;
	var lungEst=est.length;
	
	
	
	//'------ prendiamo il codice -----	
	var nomeNatSenzaEst=nomeNat.substr(0,nomeNat.length-4);
	cod=Destra(nomeNatSenzaEst,25);
	arrNome[4]=cod;
	
	//'---- vediamo il tipo di file
	var arrImg=["gif","jpg","jpeg","png"];
	var tipoFile=0
	for(var i=0; i<arrImg.length;i++){
		var elCorr=arrImg[i];
		if(elCorr==est){
			tipoFile=1;
			break;
		}
	}
	if(tipoFile==0){//'-- non ancora identificato
		tipoFile=2;
	}
	arrNome[5]=tipoFile;		
	
	
	//'--- prendiamo data e ora -----
	var nomeNatSenzaCodice=Sinistra(nomeNatSenzaEst,nomeNatSenzaEst.length-26);
	var dataOra=Destra(nomeNatSenzaCodice,15);
	var dataImm=Sinistra(dataOra,8);
	var oraImm=Destra(dataOra,6);
	arrNome[2]=dataImm;
	arrNome[3]=oraImm;
	
	//'--- prendiamo il nome pulito-----
	var nomePulito=Sinistra(nomeNatSenzaCodice,nomeNatSenzaCodice.length-16);
	arrNome[0]=nomePulito;

	return arrNome;
}


//'-- ===Sinistra ===
//'-- prende  
function Sinistra(str, n){
	if (n <= 0)
	    return "";
	else if (n > String(str).length)
	    return str;
	else
	    return String(str).substring(0,n);
}
function Destra(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);
    }
}

//'-- ===rimuoviElemento ===
//'-- rimuove un elemento da un array
function rimuoviElemento(arr, elm){
	var arrozzo=arr;
	var elem=elm;
	var elemStr=elem.toString();
	var nuovoArray=new Array();
	
	for(var i=0; i<arrozzo.length; i++){

		var elemCorr=arrozzo[i].toString();
		if(elemStr!=elemCorr){
			nuovoArray.push(elemCorr);
		}
	}
return 	nuovoArray;
	
}


//'--- nuova versione per aprire e chiudere sezioni in modo da cambiare anche l'icona
function mostraNascondi(idx){
		var idCosa=idx;
		var imgApri="../img/quadrato_1.gif";
		var imgChiudi="../img/quadrato_-1.gif";

		if( !$('#'+idCosa).is(':visible') ) {
			$('#'+idCosa).show();
			$('#ico_'+idCosa).attr('src',imgChiudi);
		}
		else {
			$('#'+idCosa).hide();
			$('#ico_'+idCosa).attr('src',imgApri);
		}
}




