/**
* Contiene una serie di funzioni generali per testare i campi obbligatori 
*/

function controlla_uguali(id1,id2,lingua){
        if($(id1).value==$(id2).value){
               return "";
        }
        Element.addClassName(id2,'errore');

		switch (lingua) {
        		case "1":
					var tmp_messaggio = "Campo \"" + $(id1).title + "\" diverso da \""+ $(id2).title +"\""; 
					break;
				case "2":
					var tmp_messaggio = "The box \"" + $(id1).title + "\" is not equal \""+ $(id2).title +"\""; 
					break;
					
		}
		
        return tmp_messaggio;

}
 
function convalida(idForm,action, lingua){
	
		var tmp_messaggio="";
        var error = 0;
        var errori = $$("#" + idForm + " .errore");
        errori.each(
			function(obj){
				Element.removeClassName(obj,'errore');
			}
        )

        var msg_form = $$("#" + idForm + " .msg_form");
        msg_form.each(
			function(obj){
				obj.innerHTML="";
			}
        )
        
        // sempre 2 alla volta
        for(i=1;i<5;i++){
			var classe="uguale_"+ i;
			var uguali = $$("#" + idForm + " ." + classe);
			if(uguali.length==2){
				tmp_messaggio = controlla_uguali(uguali[0].id,uguali[1].id, lingua);

				if(!$(uguali[1].id + "_msg")){
					var s = document.createElement("span");
					s.setAttribute("id",uguali[1].id + "_msg");
					$(s).addClassName("msg_form");
					var p = uguali[1].parentNode;
					$(p).insert(s);
				}		
 
				$(uguali[1].id + "_msg").innerHTML = tmp_messaggio;
				if(tmp_messaggio != "")
					error++;
         	}
        }

        /* Recupero e controllo i campi obbligatori */
        var obbligatori = $$("#" + idForm + " .obbligatorio");
        obbligatori.each(
			function(obj){
				if(obj.type=="checkbox"){
					if(!obj.checked){
						Element.addClassName(obj,'errore');       
						if(!$(obj.id + "_msg")){
							var s = document.createElement("span");
							s.setAttribute("id",obj.id + "_msg");
							$(s).addClassName("msg_form");
							var p = obj.parentNode;
							$(p).insert(s);
						}		
						switch (lingua) {
							case "1":
								$(obj.id + "_msg").innerHTML =  "<span style='color:red'>obbligatorio</span>";
							break;
							case "2":
								$(obj.id + "_msg").innerHTML =  "<span style='color:red'>compulsory</span>";
							break;
						}
						error++;
					} 
				}else{
					if(obj.value.trim()=="" || obj.value.trim()=="0"){
						
						Element.addClassName(obj,'errore');
						if(!$(obj.id + "_msg")){
							var s = document.createElement("span");
							s.setAttribute("id",obj.id + "_msg");
							$(s).addClassName("msg_form");
							var p = obj.parentNode;
							$(p).insert(s);
						}		
						
						switch (lingua) {
							case "1":
								$(obj.id + "_msg").innerHTML =  "obbligatorio";
							break;
							case "2":
								$(obj.id + "_msg").innerHTML =  "compulsory";
							break;
						}
						error++;
					} 
				}
			}
        )
        

        /* Recupero e controllo i campi numerici */
        var numerici = $$("#" + idForm + " .numerico");
        numerici.each(
			function(obj){
				if(!obj.value.isNumeric()){
					
					Element.addClassName(obj,'errore');
						if(!$(obj.id + "_msg")){
							var s = document.createElement("span");
							s.setAttribute("id",obj.id + "_msg");
							$(s).addClassName("msg_form");
							var p = obj.parentNode;
							$(p).insert(s);
						}		

					switch (lingua) {
						case "1":
							$(obj.id + "_msg").innerHTML = "non valido";
						break;
						case "2":
							$(obj.id + "_msg").innerHTML = "is not valid";
						break;
					}
					error++;
				}
			}
        )

        /* Recupero e controllo i campi email */
        var email = $$("#" + idForm + " .email");
        email.each(
			function(obj){
				if(!obj.value.isMail()){
					
					Element.addClassName(obj,'errore');
						if(!$(obj.id + "_msg")){
							var s = document.createElement("span");
							s.setAttribute("id",obj.id + "_msg");
							$(s).addClassName("msg_form");
							var p = obj.parentNode;
							$(p).insert(s);
						}		
			
					switch (lingua) {
						case "1":
							$(obj.id + "_msg").innerHTML = "non valido";
						break;
						case "2":
							$(obj.id + "_msg").innerHTML = "is not valid,";
						break;
					}
					error++;
				}
			}
		)
  
        
  		if(error==0){
			$(idForm).action=action;
			$(idForm).submit();
        }
		
		
}
/******/




function convalidaLightbox (idForm){
 
 		var lingua = "1";
		var tmp_messaggio="";
        var error = 0;
        var errori = $$("#" + idForm + " .errore");
        errori.each(
			function(obj){
				Element.removeClassName(obj,'errore');
			}
        )

        var msg_form = $$("#" + idForm + " .msg_form");
        msg_form.each(
			function(obj){
				obj.innerHTML="";
			}
        )
        
        // sempre 2 alla volta
        for(i=1;i<5;i++){
			var classe="uguale_"+ i;
			var uguali = $$("#" + idForm + " ." + classe);
			if(uguali.length==2){
				tmp_messaggio = controlla_uguali(uguali[0].id,uguali[1].id, lingua);

				if(!$(uguali[1].id + "_msg")){
					var s = document.createElement("span");
					s.setAttribute("id",uguali[1].id + "_msg");
					$(s).addClassName("msg_form");
					var p = uguali[1].parentNode;
					$(p).insert(s);
				}		
 
				$(uguali[1].id + "_msg").innerHTML = tmp_messaggio;
				if(tmp_messaggio != "")
					error++;
         	}
        }

        /* Recupero e controllo i campi obbligatori */
        var obbligatori = $$("#" + idForm + " .obbligatorio");
        obbligatori.each(
			function(obj){
				if(obj.type=="checkbox"){
					if(!obj.checked){
						Element.addClassName(obj,'errore');       
						if(!$(obj.id + "_msg")){
							var s = document.createElement("span");
							s.setAttribute("id",obj.id + "_msg");
							$(s).addClassName("msg_form");
							var p = obj.parentNode;
							$(p).insert(s);
						}		
						switch (lingua) {
							case "1":
								$(obj.id + "_msg").innerHTML =  "<span style='color:red'>obbligatorio</span>";
							break;
							case "2":
								$(obj.id + "_msg").innerHTML =  "<span style='color:red'>compulsory</span>";
							break;
						}
						error++;
					} 
				}else{
					if(obj.value.trim()=="" || obj.value.trim()=="0"){
						
						Element.addClassName(obj,'errore');
						if(!$(obj.id + "_msg")){
							var s = document.createElement("span");
							s.setAttribute("id",obj.id + "_msg");
							$(s).addClassName("msg_form");
							var p = obj.parentNode;
							$(p).insert(s);
						}		
						
						switch (lingua) {
							case "1":
								$(obj.id + "_msg").innerHTML =  "obbligatorio";
							break;
							case "2":
								$(obj.id + "_msg").innerHTML =  "compulsory";
							break;
						}
						error++;
					} 
				}
			}
        )
        

        /* Recupero e controllo i campi numerici */
        var numerici = $$("#" + idForm + " .numerico");
        numerici.each(
			function(obj){
				if(!obj.value.isNumeric()){
					
					Element.addClassName(obj,'errore');
						if(!$(obj.id + "_msg")){
							var s = document.createElement("span");
							s.setAttribute("id",obj.id + "_msg");
							$(s).addClassName("msg_form");
							var p = obj.parentNode;
							$(p).insert(s);
						}		

					switch (lingua) {
						case "1":
							$(obj.id + "_msg").innerHTML = "non valido";
						break;
						case "2":
							$(obj.id + "_msg").innerHTML = "is not valid";
						break;
					}
					error++;
				}
			}
        )

        /* Recupero e controllo i campi email */
        var email = $$("#" + idForm + " .email");
        email.each(
			function(obj){
				if(!obj.value.isMail()){
					
					Element.addClassName(obj,'errore');
						if(!$(obj.id + "_msg")){
							var s = document.createElement("span");
							s.setAttribute("id",obj.id + "_msg");
							$(s).addClassName("msg_form");
							var p = obj.parentNode;
							$(p).insert(s);
						}		
			
					switch (lingua) {
						case "1":
							$(obj.id + "_msg").innerHTML = "non valido";
						break;
						case "2":
							$(obj.id + "_msg").innerHTML = "is not valid,";
						break;
					}
					error++;
				}
			}
		)
  
        
		/*
  		if(error==0){
			$(idForm).action=action;
			$(idForm).submit();
        }
		*/
		
		return error;
}




















/*
        Timma una stinga e aggiunge la funzionalità a String
*/
function trim(){
    
    tmp=this;

    if (tmp != null) {
        while (tmp.substring(0,1) == ' '){
            tmp = tmp.substring(1, tmp.length);
        }
        while (tmp.substring(tmp.length-1, tmp.length) == ' ')
        {
            tmp = tmp.substring(0,tmp.length-1);
        }
    }
    return tmp;
}

/*
        Controlla se una stringa è numerica
*/
function isNumeric(){
        var tmp=this;
        var ValidChars = "0123456789.";
        var IsNumber=true;
        var Char;
        for (i = 0; i < tmp.length && IsNumber == true; i++){
        Char = tmp.charAt(i);
               if (ValidChars.indexOf(Char) == -1){
                       IsNumber = false;
        }
    }
        return IsNumber;
}

/*
* Controlla se una stringa è mail valida
*/
function isMail(){
        var tmp=this;
        var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
        if(tmp.trim()=="")
               return true;

        if (filter.test(tmp))
               return true;
        else
               return false;
}

function replaceAll(findStr,repStr) {
        oldStr=this;
  var srchNdx = 0;  
  var newStr = "";  
  while (oldStr.indexOf(findStr,srchNdx) != -1)  {
    newStr += oldStr.substring(srchNdx,oldStr.indexOf(findStr,srchNdx));
    newStr += repStr;
    srchNdx = (oldStr.indexOf(findStr,srchNdx) + findStr.length);
  }
  newStr += oldStr.substring(srchNdx,oldStr.length);
  return newStr;
}

String.prototype.trim=trim;
String.prototype.isNumeric=isNumeric;
String.prototype.isMail=isMail;
String.prototype.replaceAll=replaceAll;
