

function checkFRM(frm) {	
	try {		
		var fillField = "Attenzione! I dati contrassegnati da * sono obbligatori.\nCompilare il campo";
		
		if(frm.name.value == "") {
			alert(fillField + " Cognome - Nome");
			frm.name.focus();
			return false;
		}
		var userTypeID = frm.elements["userTypeID"].options[frm.elements["userTypeID"].selectedIndex];		
		if(userTypeID.value.charAt(0) == 0 && !isCodiceFiscale(frm.personCode)) {
			alert(fillField + " Codice Fiscale");
			frm.personCode.focus();
			return false;
		}
		
		
		if(userTypeID.value.charAt(0)==1 && !checkPartitaIva(frm.companyCode.value)) {
			alert(fillField + " P.IVA");
			frm.companyCode.focus();
			return false;
		}
				
		if(frm.country.selectedIndex == 0) {
			alert(fillField + " Nazione");
			frm.country.focus();
			return false;
		}
		if(frm.address.value == "") {
			alert(fillField + " Indirizzo");
			frm.address.focus();
			return false;
		}
		if(frm.postalCode.value == "") {
			alert(fillField + " CAP");
			frm.postalCode.focus();
			return false;
		}
		if(frm.city.value == "") {
			alert(fillField + " Comune");
			frm.city.focus();
			return false;
		}
		if(frm.province.value == "") {
			alert(fillField + " Provincia");
			frm.province.focus();
			return false;
		}
		if(frm.phone.value == "") {
			alert(fillField + " Telefono");
			frm.phone.focus();
			return false;
		}	
		
		if(frm.mail.value == "") {
			alert(fillField + " E-mail");
			frm.mail.focus();			
			return false;
		}
		if(!_mail(frm.mail.value)) {
			alert("Email non valida");
			frm.mail.focus();
			return false;
		}
		if(frm.mail.value != frm.confirmMail.value) {
			alert("ATTENZIONE! Il campo Conferma E-mail non corrisponde all'email inserita");
			frm.userID.focus();
			return false;
		}
		if(frm.pwd.value == "") {
			alert(fillField + " Password");
			frm.pwd.focus();
			return false;
		}
		if(frm.pwdConfirm.value == "") {
			alert(fillField + " Conferma Password");
			frm.pwdConfirm.focus();
			return false;
		}
		if(frm.pwd.value != frm.pwdConfirm.value) {
			alert("ATTENZIONE! Il campo Conferma Password non corrisponde alla password inserita");
			frm.pwdConfirm.focus();
			return false;
		}
		
		if((!frm.privacy1.checked) && (!frm.privacy2.checked)) {
			alert("Per proseguire con gli acquisti è indispensabile dare\nil consenso al trattamento dei dati personali");
			frm.privacy1.focus();
			return false;
		}
		return true;
	}
	catch(err) {
		alert(err.description);
		return false;
	}
}

function checkPartitaIva(pi) {
	
	if( pi == '' )  return '';
	if( pi.length != 11 )
		return false;
	validi = "0123456789";
	for( i = 0; i < 11; i++ ){
		if( validi.indexOf( pi.charAt(i) ) == -1 )
			return false;;
	}
	s = 0;
	for( i = 0; i <= 9; i += 2 )
		s += pi.charCodeAt(i) - '0'.charCodeAt(0);
	for( i = 1; i <= 9; i += 2 ){
		c = 2*( pi.charCodeAt(i) - '0'.charCodeAt(0) );
		if( c > 9 )  c = c - 9;
		s += c;
	}
	if( ( 10 - s%10 )%10 != pi.charCodeAt(10) - '0'.charCodeAt(0) )
		return false;
	return true;
}

function isCodiceFiscale(obj) {

 var nTempNum;
 var nAppoNum;
 var i;
 var szTempCodFisc;
 var szLastChar;
 var szValued;
 var szInValued;
 
 szCodFisc = obj.value;
 
 if (szCodFisc.length<16) return false
 if (szCodFisc == "") return false;
 else {
  szCodFisc =szCodFisc.toUpperCase();
  szLastChar = szCodFisc.substr(szCodFisc.length - 1,1);
  szTempCodFisc =szCodFisc.substr(0,szCodFisc.length - 1);
  nTempNum = 0;
  i = 0;
 
  while (true) {
   szValued="B1A0KKPPLLC2QQD3RRE4VVOOSSF5TTG6UUH7MMI8NNJ9WWZZYYXX";
   // I DISPARI
   szInValued=szTempCodFisc.substr(i,1);
   nAppoNum = szValued.search(szInValued);
   nTempNum = nTempNum + (nAppoNum &  0x7FFE) / 2;
   i = i + 1;
   if (i>15)
    break;
   szValued="A0B1C2D3E4F5G6H7I8J9KKLLMMNNOOPPQQRRSSTTUUVVWWXXYYZZ";
   // I PARI
   szInValued=szTempCodFisc.substr(i,1);
   nAppoNum = szValued.search(szInValued);
   nTempNum =  nTempNum + (nAppoNum &  0x7FFE) / 2;
   i = i + 1;
  }
  nTempNum = nTempNum % 26; //mod
  szValued="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
  szValued= szValued.substr(nTempNum, 1);
  if (szValued==szLastChar) return true;
  else return false;
 }
}


function changeUserType(pValue, pCheckPrivato) {
	document.getElementById("li_companyCode").style.display = pValue == pCheckPrivato ? "none" : "";
	document.getElementById("lbl_name").innerHTML = pValue == pCheckPrivato ? "Cognome e nome*" : "Ragione sociale*";

}