//controllo validità di un form

function form_control(form_name){
var form_control_list=document.getElementById(form_name+'_control_fields');
//alert(form_control_list.innerHTML);
var control_list=new Array();
control_list=form_control_list.innerHTML.split("];[");
var i,j,field_checks,mail_error,error_list;
var error_msg="";
var field,fieldname;
var fef="";
//var x=document.getElementById('meyf_text_nickname'); alert(x);
    for(i=0;i<control_list.length;i++){
    field_checks=control_list[i].split("],[");
    field=null;
       for(j=0;j<field_checks.length;j++) {
       //alert(field_checks[j]);   
          if(field_checks[j]=="req") {
          //error_icon=document.getElementById(field.id+'_error');
            if(field.value=='') { error_msg=error_msg+'-il campo '+field.name+' e\' vuoto\n'; 
            field.style.backgroundColor='orange'; 
            field.style.border='2px solid red';
            //error_icon.style.display='block';
               if(fef=="") { fef=field; }
            }else{ //error_icon.style.display='none'; 
            }  
          
          }else if(field_checks[j]=="email") { 
          mail_error=isValidEmail(field.value);
          //error_icon=document.getElementById(field.id+'_error'); 
            if(mail_error!='') { error_msg=error_msg+mail_error+'\n'; 
            field.style.backgroundColor='orange';
            field.style.border='2px solid red';
            //error_icon.style.display='block'; 
              if(fef=="") { fef=field; }
            }else{ //error_icon.style.display='none'; 
            }              
          
          }else if(field_checks[j]=="min") {
             //error_icon=document.getElementById(field.id+'_error');
             var fieldname=field.name;
             checkgroup=document.forms[form_name][fieldname];
             //alert('['+checkgroup+']');
             var contachecked=0,k;
                for(k=0;k<checkgroup.length;k++) { 
                //alert('['+checkgroup[k].value+']'); 
                    if(checkgroup[k].checked==true) { contachecked++; 
                    }else if(fef==""){ fef=checkgroup[k]; } 
                }

                if(contachecked<field_checks[j+1]) { 
                   fieldname2=fieldname.replace("[",""); fieldname2=fieldname2.replace("]","");
                   error_msg=error_msg+'-Devi selezionare almeno '+field_checks[j+1]+' casella/e in '+fieldname2+'\n'; 
                   //for(k=0;k<checkgroup.length;k++) { checkgroup[k].style.border='2px solid red';  }
                   //error_icon.style.display='block';
                }else{ //error_icon.style.display='none'; 
                }
               //if(fef=="") { fef=eval(checkgroup).[]; }           
          }else if(field_checks[j]=="vcv") {
            var vcv=document.forms[form_name]["verify_vcv"].value;
            //alert(vcv);
            if(field.value=='') { error_msg=error_msg+'-il campo '+field.name+' e\' vuoto\n';
            field.style.backgroundColor='orange'; 
            field.style.border='2px solid red';
               if(fef=="") { fef=field; }
            }else if(field.value!=vcv) {
            error_msg=error_msg+'-il codice di verifica e\' errato!';
            field.style.backgroundColor='orange'; 
            field.style.border='2px solid red';
               if(fef=="") { fef=field; }
            }
          }else{ field=document.getElementById(field_checks[j]);
          //alert('['+field_checks[j]+']'); alert(field); 
          } 
       }
    }
    if(fef!="") { fef.focus(); }
    //eval('document.'+form_name+'.elements[0].focus()');
    if(error_msg!='') { error_msg="Sono stati trovati i seguenti errori:\n"+error_msg; alert(error_msg); return false; }else{ return true; }
}

function isValidEmail(Email){
var content=Email,msg="";   
    if(content.indexOf('@')==-1) { msg=' manca "@"';
    }else{
    var address=content.split('@');
        if(address[0].length==0) { msg=' campo vuoto'; }
        if(address[1].lastIndexOf('.')==-1) { msg+=' manca "."';
        }else{
        var domain=address[1].split('.');
        if( (domain[0].length==0) || (domain[1].length<2) ) { msg+=' dominio non valido'; }
        }
    }

    if(msg!='') {
    return '-Indirizzo E-mail non valido:'+msg;
    }else{
    return '';
    }   
}


