//******************funzione visualizza div*************************
function ShowDiv(ID){
	document.getElementById(ID).style.display='';
}		
//******************************************************************		
//******************funzione nascondi div***************************
function HideDiv(ID){
	document.getElementById(ID).style.display='none';
}
//******************************************************************		
//***********funzione che fa comparire gli errori nel div***********
function error_div(id, text){
	var DivElement=document.getElementById(id);
	DivElement.innerHTML=text;
	if (text!=""){
		ShowDiv(id);
	}else{
	    HideDiv(id);
	}  	
}
//************************************************************************************************
//******funzione che mi permette di escludere i spazzi laterali di una parola*********************
function trim(stringa) {
	return stringa.replace('/^\\s+|\\s+$/g',"");
}
//************************************************************************************************
/****funzione che fa dei test sul nome in modo da restituire eventuali errori da correggere*******/
function nome(chr){
	if (chr==""){
  		str_err=str_err+"<div>Il campo Nome e' obbligatorio</div>";
	}else{
	//fa il confronto da 1 a 30 lettere o posizioni senza inserire {1,30} lui fa il "match" confronto solo con la prima occorrenze 
   		var re = new RegExp("^[\\sa-zA-Z\xE0\xE1\xE8\xE9\xEC\xED\xF2\xF3\xF9\xFA\']{1,30}$");
   		var input = trim(chr);
   	   	if (!input.match(re)) {
   	 		str_err="<div>Il Campo Nome Puo Contenere Solo Caratteri Alfabetici</div>";	
   	   	} 
	}
}  	   
//*************************************************************************************************
//********************funzione controllo simultaneo nome e cognome*********************************
function nomecognomebkg(id,txt){
	var err="";
	var DivElement=document.getElementById(id);
	if (txt==""){
  		DivElement.style.border = "1px solid #ff0000";			   	
  	}else{
		//fa il confronto da 1 a 30 lettere o posizioni senza inserire {1,30} lui fa il "match" confronto solo con la prima occorrenze 
   		var re = new RegExp("^[\\sa-zA-Z\xE0\xE1\xE8\xE9\xEC\xED\xF2\xF3\xF9\xFA\']{1,30}$");
   		var input = trim(txt);
   	   	if (!input.match(re)) {
  	   		DivElement.style.border = "1px solid #ff0000";	
   	   	}else{
   	   		  		DivElement.style.border = "1px solid #4c4c4c";		
   	   	}
	}
}
//**************************************************************************************************
//*******************funzione che fa il controllo simultaneo sulla pasword***************************
function paswordbkg(id,pw){
	var DivElement=document.getElementById(id);
	if (pw==""){
  		DivElement.style.border = "1px solid #ff0000";
  	}else{
		//fa il confronto da 1 a 16  posizioni senza inserire {1,16} lui fa il "match" confronto solo con la prima occorrenze 
   		var re = new RegExp("^[a-zA-Z0-9]{1,80}$");
   		var input = trim(pw);
   	   	if (!input.match(re)) {
   	 		DivElement.style.border = "1px solid #ff0000";
  	   	}else{
  	   		DivElement.style.border = "1px solid #4c4c4c";	
  	   	}
	}
}
//***************************************************************************************************************
/****funzione che fa il test simultanei sull'indirizzo_mail in modo da restituire eventuali errori da correggere*/
function mailbkg(id,mail){
	var browsername=navigator.appName;
	var DivElement=document.getElementById(id);
	if (mail==""){
  		DivElement.style.border = "1px solid #ff0000";
  	}else{
  		//fa il confronto da 1 a 4 lettere o posizioni senza inserire {1,4} lui fa il "match" confronto solo con la prima occorrenze 
   		var re = new RegExp("^[\\.\\'\\sa-zA-Z0-9\\@\\_-]{1,80}$");
   		var input = trim(mail);
   	   	if (!input.match(re)) {
   	 		DivElement.style.border = "1px solid #ff0000";
  	   	}else{					  
  	   		var ric="@";
  	   		var ric1=".";
  	   		if(browsername.indexOf("Microsoft")!=-1){
  				var mypos=mail.indexOf("@") +1;
  				var mypos1=mail.indexOf(".") +1;
  			}else{
  	   			var mypos=InStr1(mail,ric);
  	   			var mypos1=InStr1(mail,ric1);
  			}
  	   		if(mypos==0){
  	   			DivElement.style.border = "1px solid #ff0000";
  	   		}else{
  	   			if(mypos1==0){
  	   				DivElement.style.border = "1px solid #ff0000";   				
  	   			 }else DivElement.style.border = "1px solid #4c4c4c";
   	   		}
  	   	}
	}
}
//*********************************************************************************************************************
/*******+funzione che fa dei test sul cognome in modo da restituire eventuali errori da correggere*********************/
function cognome(chr){
	if (chr==""){
  		str_err=str_err+"<div>Il campo Cognome e' obbligatorio</div>";
  	}else{
		//fa il confronto da 1 a 30 lettere o posizioni senza inserire {1,30} lui fa il "match" confronto solo con la prima occorrenze 
   		var re = new RegExp("^[\\.\\'\\sa-zA-Z\xE0\xE1\xE8\xE9\xEC\xED\xF2\xF3\xF9\xFA]{1,30}$");
   		var input = trim(chr);
   	   	if (!input.match(re)) {
   	 		str_err=str_err+"<div>Il Campo Cognome Puo Contenere Solo Caratteri Alfabetici</div>";
  	   	} 
	}
}
//**********************************************************************************************************************
/*funzione che fa dei test sul giorno della data in modo da restituire eventuali errori da correggere*/
function dataG(date){	
	if (date=="GG"){
  		str_err=str_err+"<div>Il campo Giorno e' obbligatorio</div>";
  	   	error_div('pippo',str_err);
	} 
}
//***********************************************************************************************************************
/*funzione che fa dei test sul mese della data in modo da restituire eventuali errori da correggere*/
function dataM(date){
	if (date=="MM"){
  		str_err=str_err+"<div>Il campo Mese e' obbligatorio</div>";
  		error_div('pippo',str_err);
  	} 
}
//***********************************************************************************************************************
//****************************************funzione controllo data anno***************************************************
function dataA(date){
	if (date=="AAAA"){
  	   	str_err=str_err+"<div>Il campo Anno e' obbligatorio</div>";
  	   	error_div('pippo',str_err);
	} 
}

//************************************************************************************************************************
//*********************************funzione confronto caratteri stringa Instr*********************************************
function InStr1(str,str1){
	var trovato=0;
	for(i=0;i<=80;i++){
		if(str[i]==str1){
			trovato =1;
		}
	}
	return trovato;
}
//************************************************************************************************************************
/********funzione che fa il test sull'indirizzo_mail in modo da restituire eventuali errori da correggere*****************/
function mail(mail){
	var browsername=navigator.appName;
	if (mail==""){
  		str_err=str_err+"<div>Il campo Indirizzo e-mail e' obbligatorio</div>";
	}else{
  		//fa il confronto da 1 a 4 lettere o posizioni senza inserire {1,4} lui fa il "match" confronto solo con la prima occorrenze 
   		var re = new RegExp("^[\\.\\'\\sa-zA-Z0-9\\@\\_-]{1,80}$");
   		var input = trim(mail);
   		if (!input.match(re)) {
   	 		str_err=str_err+"<div>Il Campo indirizzo e-mail puo' contenere solo caratteri alfanumerici</div>";
  		}else{	
  			var ric="@";
  			var ric1=".";
  			if(browsername.indexOf("Microsoft")!=-1){
  				var mypos=mail.indexOf("@") +1;
  				var mypos1=mail.indexOf(".") +1;
  			}else{
  				var mypos=InStr1(mail,ric);
  				var mypos1=InStr1(mail,ric1);
  			}
  			if(mypos==0){
  				str_err=str_err+"<div>Il Campo mail deve contenere una @ ed un punto</div>";  
  			}else{
  				if(mypos1==0){
  					str_err=str_err+"<div>Il Campo mail deve contenere una @ ed un punto</div>";  	   				
  				}
   	      	}
		}
	}
}
//************************************************************************************************************************
/***************funzione che fa il test sulla pasword in modo da restituire eventuali errori da correggere****************/
function pasword(pw1){
	if (pw1==""){
		str_err=str_err+"<div>Il campo password e' obbligatorio</div>";
  	}else{
		//fa il confronto da 1 a 16  posizioni senza inserire {1,16} lui fa il "match" confronto solo con la prima occorrenze 
	   	var re = new RegExp("^[a-zA-Z0-9]{1,80}$");
	   	var input = trim(pw1);
   	   	if (!input.match(re)) {
   	 		str_err=str_err+"<div>Il Campo password puo' contenere solo caratteri o numeri</div>";
  	   	} 
	}
}
//***********************************************************************************************************************
/*****funzione che fa il test sulla rioetizione della pasword in modo da restituire eventuali errori da correggere*******/
function rip_pasword(pw2){
	if (pw2==""){
		str_err=str_err+"<div>Il campo ripeti password e' obbligatorio</div>";
	} else{
		//fa il confronto da 1 a 16  posizioni senza inserire {1,16} lui fa il "match" confronto solo con la prima occorrenze 
   		var re = new RegExp("^[a-zA-Z0-9]{1,816}$");
   		var input = trim(pw2);
   	   	if (!input.match(re)) {
   	 		str_err=str_err+"<div>Il Campo ripeti password puo' contenere solo caratteri o numeri</div>";
  	   	} 
	}
}
//***********************************************************************************************************************
//***************funzione che controlla che la pasword e la ripetizione siano identiche**********************************
function controllpwd(pw1,pw2){
	if(pw1!=pw2){
		str_err=str_err+"<div>I campi password e ripeti password debbono essere identici</div>";
	}
}
//funzione che fa il test sul campo sesso in modo da restituire errore se eventualmente esiste
function radioS(mod,mod1){
	if (mod == false && mod1 == false ){
        str_err=str_err+"<div>Impostare il campo Sesso</div>";
	} 
}
//***********************************************************************************************************************
//**********************************funzione controllo cap e restituisce **************************************
function cap(chr){
	if (chr==""){
		str_err=str_err+"<div>Il campo Cap e' obbligatorio</div>";
  	}else{
  		if (chr.length<5){
  			str_err=str_err+"<div>Il Campo Cap deve contenere 5 numerici</div>";
  		}else{
			//fa il confronto da 1 a 30 lettere o posizioni senza inserire {1,30} lui fa il "match" confronto solo con la prima occorrenze 
   			var re = new RegExp("^[0-9]{1,5}$");
   			var input = trim(chr);
   	   		if (!input.match(re)) {
   	 	 		str_err=str_err+"<div>Il Campo Cap Puo Contenere Solo Caratteri numerici</div>";
  	   		}	 
		}
	}
}

function capbkg(id,txt){
	var err="";
	var DivElement=document.getElementById(id);
	if (txt==""){
		DivElement.style.border = "1px solid #ff0000";   	
	}else{
  		if(txt.length<5){
  			DivElement.style.border = "1px solid #ff0000";
  		}else {
  			DivElement.style.border = "#4c4c4c";			
			//fa il confronto da 1 a 10 lettere o posizioni senza inserire {1,10} lui fa il "match" confronto solo con la prima occorrenze 
		   	var re = new RegExp("^[0-9]{1,5}$");
	   		var input = trim(txt);
   	   		if (!input.match(re)) {
				DivElement.style.border = "1px solid #ff0000";   
   	   		}else{
   	   			DivElement.style.border = "1px solid #4c4c4c";		
   	   		}
		}
	}
}
function indirizzo(chr){
	if (chr==""){
  	   	str_err=str_err+"<div>Il campo Indirizzo e' obbligatorio</div>";
  	}else{
		//fa il confronto da 1 a 30 lettere o posizioni senza inserire {1,30} lui fa il "match" confronto solo con la prima occorrenze 
   		var re = new RegExp("^[\\.\\'\\,\\s\xE0\xE1\xE8\xE9\xEC\xED\xF2\xF3\xF9\xFAa-zA-Z0-9]{1,30}$");
   		var input = trim(chr);
   	   	if (!input.match(re)) {
   	 		str_err=str_err+"<div>Il Campo Indirizzo Puo Contenere Solo Caratteri Alfanumerci</div>";
  	   	} 
	}
}
function indirizzobkg(id,txt){
	var err="";
	var DivElement=document.getElementById(id);
	if (txt==""){
		DivElement.style.border = "1px solid #ff0000";
	}else{
		//fa il confronto da 1 a 30 lettere o posizioni senza inserire {1,30} lui fa il "match" confronto solo con la prima occorrenze 
	   	var re = new RegExp("^[\\.\\'\\,\\s\xE0\xE1\xE8\xE9\xEC\xED\xF2\xF3\xF9\xFAa-zA-Z0-9]{1,30}$");
   		var input = trim(txt);
   	   	if (!input.match(re)) {
  	   		DivElement.style.border = "1px solid #ff0000";
   	   	}else{
   	   				DivElement.style.border = "1px solid #4c4c4c";		

   	   	}
	}
}
function ncivicoreg(chr){
	if (chr==""){
		str_err=str_err+"<div>Il campo Numero civico e' obbligatorio</div>";
  	}
}
function civicoregbkg(id,txt){
	var DivElement=document.getElementById(id);
	if (txt==""){
		DivElement.style.border = "1px solid #ff0000";
	}
}
function citta(chr){
	if (chr==""){
		str_err=str_err+"<div>Il campo Citt&agrave; e' obbligatorio</div>";
	}else{
		//fa il confronto da 1 a 30 lettere o posizioni senza inserire {1,30} lui fa il "match" confronto solo con la prima occorrenze 
   		var re = new RegExp("^[\\.\\'\\,\\s\xE0\xE1\xE8\xE9\xEC\xED\xF2\xF3\xF9\xFAa-zA-Z0-9]{1,30}$");
   		var input = trim(chr);
   	   	if (!input.match(re)) {
   	 		str_err=str_err+"<div>Il Campo Citt&agrave; Puo Contenere Solo Caratteri Alfabetici</div>";
  	   	} 
	}
}
function cittabkg(id,txt){
	var err="";
	var DivElement=document.getElementById(id);
	if (txt==""){
		DivElement.style.border = "1px solid #ff0000";	  				   	
	}else{
		//fa il confronto da 1 a 30 lettere o posizioni senza inserire {1,30} lui fa il "match" confronto solo con la prima occorrenze 
	   	var re = new RegExp("^[\\.\\'\\,\\s\xE0\xE1\xE8\xE9\xEC\xED\xF2\xF3\xF9\xFAa-zA-Z0-9]{1,30}$");
   		var input = trim(txt);
   	   	if (!input.match(re)) {
  			DivElement.style.border = "1px solid #ff0000";
   	   	}else{
   	   		  		DivElement.style.border = "1px solid #4c4c4c";		

   	   	}
	}
}
function validate(){
	str_err="";
	nome(document.modulo.nome.value);
	cognome(document.modulo.cognome.value);
	shipfisc(document.modulo.codFisc.value);
	dataG(document.modulo.giorno.value);
	dataM(document.modulo.mese.value);
	dataA(document.modulo.anno.value);
	indirizzo(document.modulo.addressreg.value);
	ncivicoreg(document.modulo.civreg.value);
	citta(document.modulo.cittareg.value);
	cap(document.modulo.capreg.value);
	mail(document.modulo.indirizzo_mail.value);
	radioS(document.modulo.selez[1].checked,document.modulo.selez[0].checked);
	pasword(document.modulo.pw1.value);
	rip_pasword(document.modulo.pw2.value);
	controllpwd(document.modulo.pw1.value,document.modulo.pw2.value);
	if(str_err!=""){
		error_div('pippo',str_err);
		window.scroll(0,0);
	}else {
		document.modulo.submit();
	}
}