// START Funzioni di controllo form
var DOMAIN = "osservatorioacque.it";
var EMAIL_INFO = "info@" + DOMAIN;
var EMAIL_WEBMASTER = "webmaster@" + DOMAIN;



function ctrl_field(nome,id,id2,tipo){
	switch(tipo){
		case "_":       // controlla se il campo e' vuoto
		  if(document.getElementById(id).value == false){
			alert(nome+": campo mancante");
			document.getElementById(id).focus();
			//document.getElementById(id).style.border = "1px solid #ff6600";
			return false;
		  }else{
			return true;
		  }
		break;
		case "__":      // controlla se il campo e' vuoto con ""
		  if(document.getElementById(id).value == ""){
			alert(nome+": campo mancante");
			document.getElementById(id).focus();
			//document.getElementById(id).style.border = "1px solid #ff6600";
			return false;
		  }else{
			return true;
		  }
		break;
		case "@":       // controlla la validità del campo mail
			if(!vm_isEmail(document.getElementById(id).value)){
				alert(nome+": campo non valido");
				//document.getElementById(id).style.border = "1px solid #ff6600";
				document.getElementById(id).focus();
				return false;
			}else{
				return true;
			}
		break;
		case "=":       // confronta due campi
			if(document.getElementById(id).value != document.getElementById(id2).value){
				alert("Le password non coincidono");
				document.getElementById(id).focus();
				//document.getElementById(id).style.border = "1px solid #ff6600";
				document.getElementById(id2).value = "";
				return false;
			}else{
				return true;
			}
		break;
		case "h":       // controlla se il campo e' vuoto
			if(document.getElementById(id2).value == false){
				alert(nome+": campo mancante");
				document.getElementById(id).focus();
				//document.getElementById(id).style.border = "1px solid #ff6600";
				return false;
			}else{
				return true;
			}
			break;
  
		case "name":       // controlla la validita' dei campi tipo nome, cognome
			if(!vm_isName(document.getElementById(id).value) && document.getElementById(id).value!=''){
				alert(nome+": campo non valido");
				//document.getElementById(id).style.border = "1px solid #ff6600";
				document.getElementById(id).focus();
				return false;
			}else{
				//alert('si');
				return true;
			}
		break;

		case "phone":       // controlla la validita' dei campi tipo tel, cell, fax
			if(!vm_isPhone(document.getElementById(id).value) && document.getElementById(id).value!=''){
				alert(nome+": campo non valido");
				//document.getElementById(id).style.border = "1px solid #ff6600";
				document.getElementById(id).focus();
				return false;
			}else{
				//alert('si');
				return true;
			}
		break;

		case "address":       // controlla la validita' dei campi tipo tel, cell, fax
			if(!vm_isAddress(document.getElementById(id).value)){
				alert(nome+": campo non valido");
				//document.getElementById(id).style.border = "1px solid #ff6600";
				document.getElementById(id).focus();
				return false;
			}else{
				//alert('si');
				return true;
			}
		break;
		
		case "cf":       // controlla la validita' del campo codice fiscale
		  if(!vm_isCF(document.getElementById(id).value)){
			alert(nome+": campo non valido");
			//document.getElementById(id).style.border = "1px solid #ff6600";
			document.getElementById(id).focus();
			return false;
		  }else{
			return true;
		  }
		break;
	  
		case "cf2":       // controlla la validita' del campo codice fiscale
			if(!vm_isCF2(document.getElementById(id).value)){
				alert(nome+": i dati anagrafici inseriti non coincidono con il valore digitato.");
				//document.getElementById(id).style.border = "1px solid #ff6600";
				document.getElementById(id).focus();
				return false;
			}else{
				return true;
			}
		break;
  
		case "pi":       // controlla la validita' del campo partita iva
			if(!vm_isPartitaIva(document.getElementById(id).value)){
				alert(nome+": campo non valido");
				//document.getElementById(id).style.border = "1px solid #ff6600";
				document.getElementById(id).focus();
				return false;
			}else{
				return true;
			}
		break;
 
		case "cap":       // controlla la validita' del campo partita iva
			if(!vm_isCap(document.getElementById(id).value)){
				alert(nome+": campo non valido");
				//document.getElementById(id).style.border = "1px solid #ff6600";
				document.getElementById(id).focus();
				return false;
			}else{
				return true;
			}
		break; 

		case "p":       // controlla la validita' del campo USER
			if(!vm_isUser(document.getElementById(id).value)){
				alert(nome+": campo non valido. "+nome+" deve avere un minimo di 6 caratteri e accetta solo lettere, numeri e il simbolo di underscore _");
				//document.getElementById(id).style.border = "1px solid #ff6600";
				document.getElementById(id).focus();
				return false;
			}else{
				return true;
			}
		break;

		case "textarea":
			if(!vm_isTextarea(document.getElementById(id).value)){
				alert(nome+": campo non valido. Il testo può contenere solo caratteri standard: lettere, numeri e i caratteri .,:?+-_");
				//document.getElementById(id).style.border = "1px solid #ff6600";
				document.getElementById(id).focus();
				return false;
			}else{
				return true;
			}
		break;

		default:
		alert("tipo non riconosciuto");
		
		return false;
	}
}


/*****************************************************************
IDENTIFICAZIONE E VALIDAZIONI TIPI DI DATI IN INPUT
******************************************************************/

function vm_isName(parameter) {	
	if (parameter.length<2) {
		return false;
	}
	else{
		//var myRegex = /[:alpha:]+/gi; // Ogni carattere non di parola
		var myRegex = /[^a-z\'\ \Uffffffff\Uffffffff\Uffffffff\Uffffffff\Uffffffff]/i;
		if (myRegex.test(parameter)) {
		    return false;
		} else {
			//alert('si');
			return true;
		}
	}
}

function vm_isPhone(parameter) {	
	var myRegex = /[^0-9\+\-\ ]/;
	if (myRegex.test(parameter)) {
	    return false;
	} else {
	    return true;
	}
}

function vm_isAddress(parameter) {	
	if (parameter.length<2) {
		return false;
	}
	else{
		var myRegex = /[^a-z0-9\'\ \,\.\-\'\Uffffffff\Uffffffff\Uffffffff\Uffffffff\Uffffffff]/i;
		if (myRegex.test(parameter)) {
			return false;
		} else {
			return true;
		}
	}
}

function vm_isTextarea(parameter) {	
	if (parameter.length<2) {
		return false;
	}
	else{
		var myRegex = /[^a-z0-9\'\ \,\.\-\'\?\.\;\:\Uffffffff\Uffffffff\Uffffffff\Uffffffff\Uffffffff]/i;
		if (myRegex.test(parameter)) {
			return false;
		} else {
			return true;
		}
	}
}

function vm_isCF(cf)	{
	var validi, i, s, set1, set2, setpari, setdisp;
	if( cf == "" )  return "";
	cf = cf.toUpperCase();
	if( cf.length != 16 )
		return false;
	validi = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
	for( i = 0; i < 16; i++ ){
		if( validi.indexOf( cf.charAt(i) ) == -1 )
			return false;
	}
	set1 = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
	set2 = "ABCDEFGHIJABCDEFGHIJKLMNOPQRSTUVWXYZ";
	setpari = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
	setdisp = "BAKPLCQDREVOSFTGUHMINJWZYX";
	s = 0;
	for( i = 1; i <= 13; i += 2 )
		s += setpari.indexOf( set2.charAt( set1.indexOf( cf.charAt(i) )));
	for( i = 0; i <= 14; i += 2 )
		s += setdisp.indexOf( set2.charAt( set1.indexOf( cf.charAt(i) )));
	if( s%26 != cf.charCodeAt(15)-"A".charCodeAt(0) )
		return false;
	return true;
}
function vm_isCF2(cf)	{
	if( cf==CalcolaCodiceFiscale() ){
		//alert('si');
		return true;
	}
	else{
		//alert('no');
		//alert('BIS '+CalcolaCodiceFiscale());
		return false;
	}
}

function vm_isPartitaIva(piva) {
	if (piva.length!=11) {
		return false;
	}
	validi = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
	var somma = 0;
	for (i=0;i<5;i++) {
		if (i%2==0) {
			somma += parseInt(piva.charAt(i));
		} else {
			var cifra = parseInt(piva.charAt(i));
			somma += contributo[cifra];
		}
	}
	if (somma%10==0) return true;
	else return false;
}

function vm_isCap(cap) {	
	if (cap.length!=5) {
		return false;
	}
	else{
		var myRegex = /\d{5}/; //5 cifre 
		if (myRegex.test(cap)) {
		    return true;
		} else {
		    return false;
		}		
	}
}

function vm_isUser(cap) {	
	if (cap.length<6) {
		return false;
	}
	else{
		var myRegex = /\W/i; // Ogni carattere non di parola
		if (myRegex.test(cap)) {
		    return false;
		} else {
		    return true;
		}
	}
}

function vm_isEmail(indirizzo) {
  if (window.RegExp) {
    var nonvalido = "(@.*@)|(\\.\\.)|(@\\.)|(\\.@)|(^\\.)";
    var valido = "^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,4}|[0-9]{1,3})(\\]?)$";
    var regnv = new RegExp(nonvalido);
    var regv = new RegExp(valido);
    if (!regnv.test(indirizzo) && regv.test(indirizzo))
		return true;
    return false;
  }else {
    if(indirizzo.indexOf("@") >= 0)
		return true;
    return false;
  }
}

function CalcolaCodiceFiscale() {
	
	//var aa = document.subordinato;
	document.getElementById('nome').value = document.getElementById('nome').value.toUpperCase();
	document.getElementById('cognome').value = document.getElementById('cognome').value.toUpperCase();
	document.getElementById('comuneNascita').value = document.getElementById('comuneNascita').value.toUpperCase();
	//alert(document.getElementById('comuneNascita').value);
	var gs=0;
	var i=0;
	var somma=0;
	
	strCodFis="";
	strcognome="";
	strnome="";
	strgiornosex="";
	chrcontrollo='';
	
	 
	Giorno=parseInt(document.getElementById('giornonascita').value,10); 
	AnnoCento=19;
	AnnoDieci=document.getElementById('annonascitaDec').value;
	AnnoZero=document.getElementById('annonascitaUn').value;
	Mese=document.getElementById('mesenascita').value;
	Comune=document.getElementById('comuneNascita').value.toUpperCase();
	Sesso=parseInt(document.getElementById('sesso').value,10);



	// Processa il cognome
	//---------------------------------------------------------------- //
	for (i=0; i<document.getElementById('cognome').value.length; i++) {
		switch (document.getElementById('cognome').value.charAt(i)) {
	    case 'A':
	    case 'E':
	    case 'I':
	    case 'O':
	    case 'U': break;            
	    default : 
	    if((document.getElementById('cognome').value.charAt(i)<='Z')&& (document.getElementById('cognome').value.charAt(i)>'A'))
	     strcognome = strcognome + document.getElementById('cognome').value.charAt(i);
	  }
	}
	
	if (strcognome.length < 3) {
		for (i=0; i<document.getElementById('cognome').value.length; i++) {
			switch (document.getElementById('cognome').value.charAt(i)) {
				case 'A':
				case 'E':
				case 'I':
				case 'O':
				case 'U': strcognome = strcognome + document.getElementById('cognome').value.charAt(i);
			}
		}
		if (strcognome.length < 3) {
			for (i=strcognome.length; i<=3; i++) { strcognome = strcognome + 'X'; }
		}
	}
	strcognome = strcognome.substring(0,3);
	//------------------------------------------------------------ 



	// processa il nome
	//----------------------------------------------------------------
	for (i=0; i<document.getElementById('nome').value.length; i++) {
		switch (document.getElementById('nome').value.charAt(i)) {
			case 'A':
			case 'E':
			case 'I':
			case 'O':
			case 'U': break;
			default:
				if((document.getElementById('nome').value.charAt(i)<='Z')&& (document.getElementById('nome').value.charAt(i)>'A'))
			  	strnome = strnome + document.getElementById('nome').value.charAt(i);
		}
	}
	if (strnome.length > 3) {
		strnome = strnome.substring(0,1) + strnome.substring(2,4);
	}
	else {
	  if (strnome.length < 3) {
			for (i=0; i<document.getElementById('nome').value.length; i++) {
				switch (document.getElementById('nome').value.charAt(i)) {
					case 'A':
					case 'E':
					case 'I':
					case 'O':
					case 'U': strnome = strnome + document.getElementById('nome').value.charAt(i);
				}
			}
			if (strnome.length < 3) {
				for (i=strnome.length; i<=3; i++) { strnome = strnome + 'X'; }
			}
	  }
  	strnome = strnome.substring(0,3);
	}
 //--------------------------------------- Fine processa nome




 	// processa giorno e sesso
 	//--------------------------------------------
  gs = Giorno + (40 * Sesso);
  if(gs<10) strgiornosex = "0" + gs;
  else strgiornosex =  gs;
 	//--------------------------------------------

 	strCodFis = strcognome + strnome + AnnoDieci + AnnoZero + Mese + strgiornosex + Comune;
 
	// calcola la cifra di controllo     
	//--------------------------------------------
	for (i=0; i<15; i++) {
    if (((i+1) % 2) != 0) {
    	//caratteri dispari
			switch (strCodFis.charAt(i)) {
				case '0':{ somma += 1; break;}
				case 'A':{ somma += 1; break;}
				case '1':{ somma += 0; break;}
				case 'B':{ somma += 0; break;}
				case '2':{ somma += 5; break;}
				case 'C':{ somma += 5; break;}
				case '3':{ somma += 7; break;}
				case 'D':{ somma += 7; break;}
				case '4':{ somma += 9; break;}
				case 'E':{ somma += 9; break;}
				case '5':{ somma += 13; break;}
				case 'F':{ somma += 13; break;}
				case '6':{ somma += 15; break;}
				case 'G':{ somma += 15; break;}
				case '7':{ somma += 17; break;}
				case 'H':{ somma += 17; break;}
				case '8':{ somma += 19; break;}
				case 'I':{ somma += 19; break;}
				case '9':{ somma += 21; break;}
				case 'J':{ somma += 21; break;}
				case 'K':{ somma += 2; break;}
				case 'L':{ somma += 4; break;}
				case 'M':{ somma += 18; break;}
				case 'N':{ somma += 20; break;}
				case 'O':{ somma += 11; break;}
				case 'P':{ somma += 3; break;}
				case 'Q':{ somma += 6; break;}
				case 'R':{ somma += 8; break;}
				case 'S':{ somma += 12; break;}
				case 'T':{ somma += 14; break;}
				case 'U':{ somma += 16; break;}
				case 'V':{ somma += 10; break;}
				case 'W':{ somma += 22; break;}
				case 'X':{ somma += 25; break;}
				case 'Y':{ somma += 24; break;}
				case 'Z':{ somma += 23; break;}
    	}
    } 
		else {
			//caratteri pari
      switch (strCodFis.charAt(i)) {
        case '0':{ somma += 0; break;}
        case 'A':{ somma += 0; break;}
        case '1':{ somma += 1; break;}
        case 'B':{ somma += 1; break;}
        case '2':{ somma += 2; break;}
        case 'C':{ somma += 2; break;}
        case '3':{ somma += 3; break;}
        case 'D':{ somma += 3; break;}
        case '4':{ somma += 4; break;}
        case 'E':{ somma += 4; break;}
        case '5':{ somma += 5; break;}
        case 'F':{ somma += 5; break;}
        case '6':{ somma += 6; break;}
        case 'G':{ somma += 6; break;}
        case '7':{ somma += 7; break;}
        case 'H':{ somma += 7; break;}
        case '8':{ somma += 8; break;}
        case 'I':{ somma += 8; break;}
        case '9':{ somma += 9; break;}
        case 'J':{ somma += 9; break;}
        case 'K':{ somma += 10; break;}
        case 'L':{ somma += 11; break;}
        case 'M':{ somma += 12; break;}
        case 'N':{ somma += 13; break;}
        case 'O':{ somma += 14; break;}
        case 'P':{ somma += 15; break;}
        case 'Q':{ somma += 16; break;}
        case 'R':{ somma += 17; break;}
        case 'S':{ somma += 18; break;}
        case 'T':{ somma += 19; break;}
        case 'U':{ somma += 20; break;}
        case 'V':{ somma += 21; break;}
        case 'W':{ somma += 22; break;}
        case 'X':{ somma += 23; break;}
        case 'Y':{ somma += 24; break;}
        case 'Z':{ somma += 25; break;}
    	}
		}
  }
  somma1=somma;
  somma = somma % 26;
	switch (somma) {
	  case 0: {chrcontrollo='A'; break;}
	  case 1: {chrcontrollo='B'; break;}
	  case 2: {chrcontrollo='C'; break;}
	  case 3: {chrcontrollo='D'; break;}
	  case 4: {chrcontrollo='E'; break;}
	  case 5: {chrcontrollo='F'; break;}
	  case 6: {chrcontrollo='G'; break;}
	  case 7: {chrcontrollo='H'; break;}
	  case 8: {chrcontrollo='I'; break;}
	  case 9: {chrcontrollo='J'; break;}
	  case 10: {chrcontrollo='K'; break;}
	  case 11: {chrcontrollo='L'; break;}
	  case 12: {chrcontrollo='M'; break;}
	  case 13: {chrcontrollo='N'; break;}
	  case 14: {chrcontrollo='O'; break;}
	  case 15: {chrcontrollo='P'; break;}
	  case 16: {chrcontrollo='Q'; break;}
	  case 17: {chrcontrollo='R'; break;}
	  case 18: {chrcontrollo='S'; break;}
	  case 19: {chrcontrollo='T'; break;}
	  case 20: {chrcontrollo='U'; break;}
	  case 21: {chrcontrollo='V'; break;}
	  case 22: {chrcontrollo='W'; break;}
	  case 23: {chrcontrollo='X'; break;}
	  case 24: {chrcontrollo='Y'; break;}
	  case 25: {chrcontrollo='Z'; break;}
	}       
  //--------------------------------------------

	codiceFiscaleCalcolato = strCodFis.toUpperCase() + chrcontrollo;
	//document.getElementById('codiceFiscale').value = codiceFiscaleCalcolato;
	//alert(codiceFiscaleCalcolato);	
	return codiceFiscaleCalcolato;
}

function ctrl_form(obj,type){
  switch(type){
    case "subscription":
      flag = true;

      flag = flag && ctrl_field('NOME','nome','','_');
      flag = flag && ctrl_field('NOME','nome','','name');
      flag = flag && ctrl_field('COGNOME','cognome','','_');
      flag = flag && ctrl_field('COGNOME','cognome','','name');

      /*
      flag = flag && ctrl_field('SESSO','sesso','','_0');
      flag = flag && ctrl_field('PROVINCIA DI NASCITA','provinciaNascita','','_');
      flag = flag && ctrl_field('COMUNE DI NASCITA','comuneNascita','','_');
      flag = flag && ctrl_field('CODICE FISCALE','cod_fisc','','cf2');
      flag = flag && ctrl_field('INDIRIZZO','indirizzo','','_');
      flag = flag && ctrl_field('INDIRIZZO','indirizzo','','address');
      flag = flag && ctrl_field('PROVINCIA','provinciaDomicilio','','_');
      flag = flag && ctrl_field('CITTA\'','comuneDomicilio','','_');
      flag = flag && ctrl_field('CAP','cap','','cap');
      flag = flag && ctrl_field('STATO','stato','','_');
      */

      flag = flag && ctrl_field('TELEFONO CELLULARE','tel_cell','','_');
      flag = flag && ctrl_field('TELEFONO CELLULARE','tel_cell','','phone');

      flag = flag && ctrl_field('EMAIL','email','','_');
      flag = flag && ctrl_field('EMAIL','email','','@');

      /*
      flag = flag && ctrl_field('USER','user','','p');
      flag = flag && ctrl_field('PASSWORD','pass','','_');
      flag = flag && ctrl_field('RISCRIVI PASSWORD','pass2','','_');
      flag = flag && ctrl_field('PASSWORD NON COINCIDE','pass','pass2','=');
      */

      if(flag){
        if(document.getElementById('privacySi').checked==false) alert("Per proseguire è necessario fornire il consenso.");
        flag = document.getElementById('privacySi').checked;
      }
      if(flag){
        valAreaRegistrazione = document.getElementById('areaRegistrazione').value;
        strUri = buildUri(obj);
        myajax.post("?cmd=registraUtente", strUri);
      }
      myajax.echoFunction = function(aa){
        alert(aa);
        if(aa=="emailExists"){
          alert("Email già presente nel database. Se hai già provato a registrarti ma hai \n\
            dimenticato il codice di attivazione richiedi lo sblocco scrivendo a " + EMAIL_INFO + ".");
        }
        else if(aa=="cellExists"){
          alert("Numero di cellulare già presente nel database. \n\
            Se hai già provato a registrarti ma hai dimenticato il codice di attivazione richiedi \n\
            lo sblocco scrivendo a " + EMAIL_INFO);
        }
        else{
          location.href=aa;
        }
      }
    break;
    case "contacts":
      flag = true;
      flag = flag && ctrl_field('NOME','nome','','_');
      flag = flag && ctrl_field('NOME','nome','','name');
      flag = flag && ctrl_field('EMAIL','indirizzoEmail','','_');
      flag = flag && ctrl_field('EMAIL','indirizzoEmail','','@');
      flag = flag && ctrl_field('TELEFONO','telefono','','_');
      flag = flag && ctrl_field('TELEFONO','telefono','','phone');
      flag = flag && ctrl_field('OGGETTO','oggetto','','_');
      flag = flag && ctrl_field('TESTO','messaggio','','_');
      return flag;
    break;
    case "confirmation":
      flag = true;

      flag = flag && ctrl_field('TELEFONO CELLULARE','tel_cell','','_');
      flag = flag && ctrl_field('TELEFONO CELLULARE','tel_cell','','phone');

      flag = flag && ctrl_field('EMAIL','email','','_');
      flag = flag && ctrl_field('EMAIL','email','','@');

      if(flag){
        strUri = buildUri(obj);
        myajax.post("?cmd=verifica", strUri);
      }
      myajax.echoFunction = function(aa){
        location.href=aa;
      }
    break;
    case "richiesta_dati":
      flag = true;

      if (
        !(document.getElementById('pluviometria').checked)
        && !(document.getElementById('termometria').checked)
        ){
        alert('TIPO DI DATI: non selezionato');
        flag = false;
        return flag;
      }

      if (
        (document.getElementById('pluviometria').checked)
        && (!(document.getElementById('pluvio_giornalieri').checked)
           && !(document.getElementById('pluvio_mensili').checked)
           && !(document.getElementById('pluvio_max_int').checked)
           && !(document.getElementById('pluvio_piu_giorni').checked)
           && !(document.getElementById('pluvio_dati_orari').checked)
           )
        ){
        alert('OPZIONI PLUVIOMETRIA: non selezionate');
        flag = false;
        return flag;
      }

      if (
        (document.getElementById('pluvio_mensili').checked)
        || (document.getElementById('pluvio_max_int').checked)
        || (document.getElementById('pluvio_piu_giorni').checked)
        ){

        flag = flag && ctrl_field('PERIODO DI RIFERIMENTO - ANNO INIZIO','pluvio_anno_inizio','','_');
        flag = flag && ctrl_field('PERIODO DI RIFERIMENTO - ANNO FINE','pluvio_anno_fine','','_');
        //return flag;
      }

      if(document.getElementById('pluvio_giornalieri').checked){
        flag = flag && ctrl_field('DATA DI RIFERIMENTO PER DATI ORARI','pluvio_periodo_data_inizio','','_');
        flag = flag && ctrl_field('DATA DI RIFERIMENTO PER DATI ORARI','pluvio_periodo_data_fine','','_');
        if (flag==false) return flag;
      }

      if(document.getElementById('pluvio_dati_orari').checked){
        flag = flag && ctrl_field('DATA DI RIFERIMENTO PER DATI ORARI','pluvio_data','','_');
        if (flag==false) return flag;
      }

      if(document.getElementById('termometria').checked){
        if (
          (document.getElementById('termo_giornalieri').checked)
          || (document.getElementById('termo_mensili').checked)
          ){
          flag = flag && ctrl_field('PERIODO DI RIFERIMENTO - ANNO INIZIO','termo_anno_inizio','','_');
          flag = flag && ctrl_field('PERIODO DI RIFERIMENTO - ANNO FINE','termo_anno_fine','','_');
        }
        else {
          alert('OPZIONI TERMOMETRIA: non selezionate');
          flag = false;
          return flag;
        }
      }

      flag = flag && ctrl_field('NOME','nome','','_');
      flag = flag && ctrl_field('NOME','nome','','name');
      flag = flag && ctrl_field('COGNOME','cognome','','_');
      flag = flag && ctrl_field('COGNOME','cognome','','name');

      flag = flag && ctrl_field('ORGANIZZAZIONE','organizzazione','','name');

      flag = flag && ctrl_field('TELEFONO','telefono','','phone');
      
      flag = flag && ctrl_field('EMAIL','email','','_');
      flag = flag && ctrl_field('EMAIL','email','','@');
      if (flag==false) return flag;
      
      if(
        !(document.getElementById('via_email').checked)
        && !(document.getElementById('via_postaordinaria').checked)
        && !(document.getElementById('via_fax').checked)
      ){
        alert('MODALITA DI TRASMISSIONE: non selezionato');
        flag = false;
        return flag;
      }

      if(document.getElementById('via_fax').checked){
        flag = flag && ctrl_field('FAX','fax','','_');
        flag = flag && ctrl_field('FAX','fax','','phone');
      }

      if(document.getElementById('via_postaordinaria').checked){
        flag = flag && ctrl_field('INDIRIZZO','indirizzo','','_');
        flag = flag && ctrl_field('INDIRIZZO','indirizzo','','address');
        flag = flag && ctrl_field('PROVINCIA','provincia','','_');
        flag = flag && ctrl_field('COMUNE','comune','','_');
        flag = flag && ctrl_field('CAP','cap','','cap');
      }
      return flag;
    break;
  }
}

/*****************************************************************
START Controllo LOGIN utente
******************************************************************/
function login() {
  var loginForm = document.getElementById("loginForm");
  if (loginForm.username.value == "") {
    alert("Please enter your user name.");
    return false;
  }
  if (loginForm.password.value == "") {
    alert("Please enter your password.");
    return false;
  }
  var submitForm = document.getElementById("submitForm");
  submitForm.username.value = loginForm.username.value;
  recode_password=hex_md5(loginForm.password.value);
  submitForm.response.value = hex_md5(loginForm.challenge.value+recode_password);
  submitForm.submit();
}

/*****************************************************************
SEZIONE FUNZIONI BASE DOM
******************************************************************/
function getPosX(obj) {
	var curleft = 0;
	if (obj.offsetParent) {
		while (obj.offsetParent) {
			curleft += obj.offsetLeft
			obj = obj.offsetParent;
		}
	}
	else if (obj.x)
	curleft += obj.x;
	return curleft;
}
function getPosY(obj) {
	var curtop = 0;
	if (obj.offsetParent) {
		while (obj.offsetParent) {
			curtop += obj.offsetTop
			obj = obj.offsetParent;
		}
	}
	else if (obj.y)
	curtop += obj.y;
	return curtop;
}
function viewMex(mex){
	dTop = document.body.scrollTop+200;
	document.getElementById('loader').innerHTML = mex;
	document.getElementById('loader').style.top = dTop+"px";
	document.getElementById('loader').style.display = "block";
}
function hideMex(cont,dbg){
	if(dbg){
		document.getElementById('loader').innerHTML = cont;
	}else{
		document.getElementById('loader').style.display = "none";
		//document.getElementById('loader').innerHTML = "";
	}
}
function checkboxToHidden(id){
  myCheckbox = document.getElementById(id);
  myHiddenId = 'checkboxToHidden-' + id;
  myHidden = document.getElementById(myHiddenId);
  if(myCheckbox.checked)
    myHidden.value='1';
  else
    myHidden.value='';
  
  //alert(myHidden.value);
}


function showBox(id){document.getElementById(id).style.display = 'block';}
function hideBox(id){document.getElementById(id).style.display = 'none';}
function showAndHideBox(id){
  if (document.getElementById(id).style.display == 'block')
    document.getElementById(id).style.display = 'none';
  else if (document.getElementById(id).style.display == 'none')
    document.getElementById(id).style.display = 'block';
}

function addDivBySelectOption(){
  
}

function hideAllTagsButThis(id,tagName){
  elements=document.getElementsByTagName(tagName);
  //count=elements.length;
  for(i=0; i<elements.length; i++){
    if(elements[i].id!=id){
    	//alert(elements[i].id);
			document.getElementById(elements[i].id).style.display='none';
    }
    else{
    	document.getElementById(elements[i].id).style.display='block';
    }
  }
}
function closeDiv(){
	document.body.style.background = "#A88B7D";
  document.getElementById("container").style.opacity = "1";
	document.getElementById("container").style.filter = "alpha(opacity=100)";
	document.getElementById("container").mozOpacity = "1";
	document.getElementById("win").style.display="none";
}

function buildUri(obj){
  var strUri = "";
  for(var n=0; n<obj.elements.length; n++){
    if((obj.elements[n].name!="") && ( (obj.elements[n].type=="text") || (obj.elements[n].type=="textarea")  || (obj.elements[n].type=="hidden") )) {
		strUri += "&"+obj.elements[n].name+"="+escape(obj.elements[n].value);
		//alert(obj.elements[n].id);
    }
  }
  return strUri;
}
function buildUri2(obj){
  var strUri = "";
  for(var n=0; n<obj.elements.length; n++){
    if(obj.elements[n].id!=""){
      myString=obj.elements[n].id;
      //myId=myString.split("_")[0];
      //alert(myId);
			//strUri += "&"+myId+"="+encodeURIComponent(obj.elements[n].value);
      strUri += "&"+myString+"="+encodeURIComponent(obj.elements[n].value);
    }
  }
  return strUri;
}
function buildUri3(obj){
  var strUri = "";
  for(var n=0; n<obj.elements.length; n++){
    if((obj.elements[n].name!="") && (obj.elements[n].value!="") && ( (obj.elements[n].type=="text") || (obj.elements[n].type=="textarea")  || (obj.elements[n].type=="hidden") || (obj.elements[n].tagName=="SELECT") )) {

      if(obj.elements[n].tagName=="SELECT"){
        optionValue = obj.elements[n].options[obj.elements[n].options.selectedIndex].value;
        strUri += "&"+obj.elements[n].name+"="+optionValue;
      }
      else{
        strUri += "&"+obj.elements[n].name+"="+escape(obj.elements[n].value);
      }

    }
  }
  return strUri;
}
/*****************************************************************
GALLERY
******************************************************************/
function openGalleryDiv(w,idOpen,idPhotoset,idFoto,corrX,corrY){
	createPlayer(idPhotoset,idFoto);
	dTop = document.body.scrollTop;
	this.win = document.getElementById('win');
	xx = getPosX(document.getElementById(idOpen))+corrX;
	yy = getPosY(document.getElementById(idOpen))+corrY;
	win.style.width = w+"px";
	win.style.overflow = "visible";
	//alert(dTop);
	win.style.top=yy+"px";
	win.style.left=xx+"px";
	win.style.display="block";
}
function caricaFotoSlideshow(){
	document.getElementById('gallery').style.display='none';
	document.getElementById('slideshow').style.display='block';
}

/*****************************************************************
SPECIFICI AJAX
******************************************************************/

function sendMessage(obj){
	if (controlContats(obj)){
		myUri = buildUri(obj);
		myajax.post('?cmd=sendMessage', myUri);
	}
	myajax.echoFunction = function(aa){
		location.href=aa;
	}
}
function calendar(anno,mese,campo){
	this.win = document.getElementById("select");
	myajax.post('?cmd=calendar&mese='+mese+'&anno='+anno+'&campo='+campo,'');
  myajax.echoFunction=function(aa){
  	xx = getPosX(document.getElementById(campo))-30;
		yy = getPosY(document.getElementById(campo))-130;
		win.style.width = "";
		win.style.height = "";
		win.style.left = xx+"px";
		win.style.top = yy+"px";
		win.innerHTML = aa;
		win.style.display = "block";
  }
}


function getAjaxOutput(obj, urlAj, id_resultBox){
  //alert(buildUri2(obj));
	
  myUri = buildUri2(obj);
  myajax.post(urlAj, myUri);
	
	myajax.echoFunction = function(aa){
		document.getElementById(id_resultBox).innerHTML = aa;
	}
}
function getAjaxOutput2(obj, urlAj){
  myUri = buildUri2(obj);
  myajax.post(urlAj, myUri);

	myajax.echoFunction = function(aa){
    alert(aa);
	}
}

function goPostUrl2(urlAj, obj){
  //alert(buildUri2(obj));

  myUri = buildUri2(obj);
  myajax.post(urlAj, myUri);

	myajax.echoFunction = function(aa){
		location.href=aa;
	}
}

/*****************************************************************
SPECIFICI OSSERVATORIOACQUE.IT
******************************************************************/
function showAndHideBox_oa(parametro){
  switch (parametro){
    case 'pluvio':
      if (
        (document.getElementById('pluvio_mensili').checked)
        || (document.getElementById('pluvio_max_int').checked)
        || (document.getElementById('pluvio_piu_giorni').checked)
        ){
        if(document.getElementById('pluvio_opzioni_periodo').style.display == 'none'){
          document.getElementById('pluvio_opzioni_periodo').style.display = 'block';
        }
      }
      else if (
        !( (document.getElementById('pluvio_mensili').checked)
        && (document.getElementById('pluvio_max_int').checked)
        && (document.getElementById('pluvio_piu_giorni').checked)
        )){
        if(document.getElementById('pluvio_opzioni_periodo').style.display == 'block'){
          document.getElementById('pluvio_opzioni_periodo').style.display = 'none';
        }
      }

      if(document.getElementById('pluvio_giornalieri').checked){
        if(document.getElementById('pluvio_opzioni_periodo_data').style.display == 'none'){
          document.getElementById('pluvio_opzioni_periodo_data').style.display = 'block';
        }
      }
      else{
        if(document.getElementById('pluvio_opzioni_periodo_data').style.display == 'block'){
          document.getElementById('pluvio_opzioni_periodo_data').style.display = 'none';
        }
      }

      if(document.getElementById('pluvio_dati_orari').checked){
        if(document.getElementById('pluvio_opzioni_data').style.display == 'none'){
          document.getElementById('pluvio_opzioni_data').style.display = 'block';
        }
      }
      else{
        if(document.getElementById('pluvio_opzioni_data').style.display == 'block'){
          document.getElementById('pluvio_opzioni_data').style.display = 'none';
        }
      }
    break;
    case 'termo':
      if (
        (document.getElementById('termo_giornalieri').checked)
        || (document.getElementById('termo_mensili').checked)
        ){
        if(document.getElementById('termo_opzioni_periodo').style.display == 'none'){
          document.getElementById('termo_opzioni_periodo').style.display = 'block';
        }
      }
      else if (
        !((document.getElementById('termo_giornalieri').checked)
        && (document.getElementById('termo_mensili').checked)
        )){
        if(document.getElementById('termo_opzioni_periodo').style.display == 'block'){
          document.getElementById('termo_opzioni_periodo').style.display = 'none';
        }
      }
    break;
    case 'comune':
      select1 = document.getElementById("provincia");
      sigla = select1.options[select1.selectedIndex].value;
      //alert(sigla);
      urlAj = '?cmd=showBox';
      myUri = '&obj=comune' + '&sigla=' + sigla;
      myajax.post(urlAj, myUri);

      select2 = document.getElementById("comune");
      select2.options.length = 0;
      myajax.echoFunction = function(aa){
        //document.document.getElementById("provincia").options.length=0
        document.getElementById("div-comune").style.display = 'block';
        elements = aa.split('|');
        for (i=0;i<elements.length;i++){
          element = elements[i];
          select2.options[i]=new Option(element, element, false, false);
        }
      }
    break;
  }

}

var no_of_last_element = 1; // id dell'ultima stazione
var no_of_current_element = 1; // mumero di stazioni attuali
var array_of_elements = new Array();
array_of_elements[no_of_current_element] = no_of_current_element;

function addField(idContainer, newElementIdPrefix, mytext){
  no_of_last_element++;
  newElementId = newElementIdPrefix + no_of_last_element
	mydiv = document.createElement('div');
  mydiv.setAttribute('id', newElementId);
	mydiv.innerHTML = mytext;
	document.getElementById(idContainer).appendChild(mydiv);
}

function addAjaxField(idContainer, newElementIdPrefix){
  buildUri = '&no_of_select=' + no_of_last_element;
  myajax.post('?cmd=addSelectField', buildUri);
  no_of_current_element = no_of_current_element + 1;
	myajax.echoFunction = function(aa){
    addField(idContainer, newElementIdPrefix, aa);
    //no_of_current_element = no_of_current_element + 1;
    array_of_elements[no_of_current_element] = no_of_last_element;
    //alert('Numero di stazioni='+no_of_current_element+' - '+'Ultimo ID stazione inserita='+no_of_last_element+' - dati='+array_of_elements);
    document.getElementById('stazioni_scelte').value = array_of_elements;
	}
}


function deleteField(idContainer, removeElementId){

  function searchAndDelElement(arr, term){
    i = 0;
    for(i=0; i<arr.length; i++) {
      if(arr[i] == term){
        arr.splice(i,1);
        break;
      }
    }
  }

  maindiv = document.getElementById(idContainer);
	mydiv = document.getElementById(removeElementId);
  removeId = removeElementId.replace(/^selectId/, "");
  //alert('dati:' + array_of_elements);

  if( mydiv != ''){    
    //alert('Elemento da rimuovere=' + array_of_elements[removeId] + ' - rimosso l\'elemento ->' + array_of_elements.splice(removeId,1));
    //alert('Elemento da rimuovere=' + array_of_elements[removeId] + ' lunghezza array=' + array_of_elements.length);
    //alert('Numero di stazioni='+no_of_current_element+' - '+'Ultimo ID stazione inserita='+no_of_last_element+' - dati='+array_of_elements);
    maindiv.removeChild(mydiv);
    no_of_current_element = no_of_current_element - 1;
    //array_of_elements.splice(removeId,1);
    searchAndDelElement(array_of_elements, removeId);
    document.getElementById('stazioni_scelte').value = array_of_elements;
     //alert('dati:' + array_of_elements);
  }
  else
     alert('none');
}

function ctrlAndGo(obj, type){
  switch(type){
    case 'richiesta_dati':
      if(ctrl_form(obj, 'richiesta_dati'))
        strUri = buildUri3(obj);
        //alert(strUri);
        
        myajax.post("?cmd=getRichiestaDati",strUri);
        myajax.echoFunction=function(aa){
          location.href=aa;
          //document.getElementById('win').style.display = 'block';
          //document.getElementById('win').innerHTML = aa;
        }
        
    break;
  }
}
