// JavaScript Document



//ESTENSIONI DELLA CLASSE String

/*
        Timma una stinga e aggiunge la funzionalità a String
*/
function trim(){
        tmp=this;
        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;


//CONTROLLI



function controlla_uguali(id1,id2){
        if($(id1).value==$(id2).value){
               return "";
        }
        //Element.addClassName(id1,'errore');
        Element.addClassName(id2,'errore');
        var tmp_messaggio = "Campo \"" + $(id1).title + "\" diverso da \""+ $(id2).title +"\"";         
        return tmp_messaggio;

}
 
function convalida(idForm, dst){
 
        var tmp_messaggio="";
        var error = 0;
        var errori = $$(".errore");
        errori.each(
               function(obj){
                               Element.removeClassName(obj,'errore');
               }
        )

        var msg_form = $$(".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 = $$("." + classe);
               if(uguali.length==2){
                       tmp_messaggio = controlla_uguali(uguali[0].id,uguali[1].id);
                       //$(uguali[0].id + "_msg").innerHTML = tmp_messaggio;
                       $(uguali[1].id + "_msg").innerHTML = tmp_messaggio;
                       error++;
         
               }
        }

        /* Recupero e controllo i campi obbligatori */
        var obbligatori = $$(".obbligatorio");
        obbligatori.each(
               function(obj){
                       if(obj.type=="checkbox"){
                               if(!obj.checked){
                                      Element.addClassName(obj,'errore');                             
                                      	if ($(obj.id + "_msg"))
                                      $(obj.id + "_msg").innerHTML =  "obbligatorio";
                                      error++;
                               } 
                       }else{
                               if(obj.value.trim()=="" || obj.value.trim()=="0"){
                                      Element.addClassName(obj,'errore');
									  	if ($(obj.id + "_msg"))
                                      $(obj.id + "_msg").innerHTML =  "obbligatorio";
                                      error++;
                                       
                               } 
                       }
               }
        )
        

        /* Recupero e controllo i campi numerici */
        var numerici = $$(".numerico");
        numerici.each(
               function(obj){
                       if(!obj.value.isNumeric()){
                               Element.addClassName(obj,'errore');                           
                               
							   if ($(obj.id + "_msg"))
							   	$(obj.id + "_msg").innerHTML = "non valido";
                               error++;
                       }
               }
        )

        /* Recupero e controllo i campi email */
        var email = $$(".email");
        email.each(
               function(obj){
                       if(!obj.value.isMail()){
                               Element.addClassName(obj,'errore');
							   if ($(obj.id + "_msg"))
                               	$(obj.id + "_msg").innerHTML = "non valido";
                               error++;
                       }
               }
        )
  
        if(error==0){
				
			   $(idForm).action = dst;
			   
			   $(idForm).submit();
			   
        }	
}
/******/


