function isEmpty(str){return (str.replace(/\s/g,"").length==0)}
function _mail(str){return str.search(/^([\w\.\-])+@(([\w\-]{2,})+\.)+([a-z0-9]{2,})+$/i)!=-1}
function _chkPIva(str, naz){
  var ivaNCharacter = 11;
  switch(naz){
  	case "I": case "IT": case "ITA":
  		ivaNCharacter = 11;
  	break;
  	case "SM": case "RSM": case "ITA":
  		ivaNCharacter = 5;
  	break;
  	default: 
      return true;
    break;
  }
	var re = eval("/^\\d{"+ivaNCharacter+"}$/");
  return str.search(re)!=-1
}
function _chkPersonCode(str, naz){
  switch(naz){
  	case "I": case "IT": case "ITA": case "SM": case "RSM":
  		return VerifyCF_ITA(str)
  	break;
  	default: 
      return true;
    break;
  }
}
function VerifyCF_ITA(cfins) {
   var cf = cfins.toUpperCase();
   var cfReg = /^[A-Z]{6}\d{2}[A-Z]\d{2}[A-Z]\d{3}[A-Z]$/;
   if (!cfReg.test(cf))
      return false;
   var set1 = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
   var set2 = "ABCDEFGHIJABCDEFGHIJKLMNOPQRSTUVWXYZ";
   var setpari = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
   var setdisp = "BAKPLCQDREVOSFTGUHMINJWZYX";
   var s = 0;
   for( i = 1; i <= 13; i += 2 )
      s += setpari.indexOf( set2.charAt( set1.indexOf( cf.charAt(i) )));
   for( i = 0; i <= 14; i += 2 )
      s += setdisp.indexOf( set2.charAt( set1.indexOf( cf.charAt(i) )));
   if ( s%26 != cf.charCodeAt(15)-'A'.charCodeAt(0) )
      return false;
   return true;
}

function checkFRM(frm) {	
	try {		
		var fillField = "Attenzione! I dati contrassegnati da * sono obbligatori.\nCompilare il campo";
		var errorValue = 'Attenzione\nValore non valido';
		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.userID.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.name.value == "") {
			alert(fillField + " Cognome - Nome");
			frm.name.focus();
			return false;
		}
		if(frm.referent.value == "") {
			alert(fillField + " Referente");
			frm.referent.focus();
			return false;
		}
		if(frm.country.selectedIndex == 0) {
			alert(fillField + " Nazione");
			frm.country.focus();
			return false;
		}

		var userTypeID = frm.elements["userTypeID"].options[frm.elements["userTypeID"].selectedIndex];
		if(userTypeID.value.charAt(0)==1 && frm.companyCode.value == "") {
			alert(fillField + " P.IVA");
			frm.companyCode.disabled = false;
			frm.companyCode.focus();
			return false;
		}
		if(userTypeID.value.charAt(0)==1 && !(_chkPIva(frm.companyCode.value, frm.country.value ))) {
			alert(errorValue + " P.IVA");
			frm.companyCode.disabled = false;
			frm.companyCode.focus();
			return false;
		}
		if(frm.personCode.value == "") {
			alert(fillField + " Codice Fiscale");
			frm.personCode.focus();
			return false;
		}
		if((userTypeID.value.charAt(0)==1 && !(_chkPIva(frm.personCode.value, frm.country.value )) && !(_chkPersonCode(frm.personCode.value, frm.country.value))) || (userTypeID.value.charAt(0) !=1 && !(_chkPersonCode(frm.personCode.value, frm.country.value)))) {
			alert(errorValue + " Codice Fiscale");
			frm.personCode.disabled = false;
			frm.personCode.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.privacy1.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("Errore nel form di registrazione:" + err.description);
		return false;
	}
}



function OLD_checkFRM(frm){
	var idDitta = frm.elements["userTypeID"].options[frm.elements["userTypeID"].selectedIndex];
	var chkIVA = idDitta.value.charAt(0)==1;
	var naz = frm.elements["country"].options[frm.elements["country"].selectedIndex].value;
	for(var i=0,fldName='';i<frm.elements.length;i++){
		if(frm.elements[i].disabled || !frm.elements[i].name) continue;
		fldName = frm.elements[i].name.substr(frm.elements[i].name.lastIndexOf("_")>0?frm.elements[i].name.lastIndexOf("_")+1:0);
		if((fldName=="companyCode")&&!chkIVA) continue;
		if((frm.elements[i].type=="text"||frm.elements[i].type=="password")&&frm.elements[i].name.search(/otherDest_(\d+)_postalCode/)==-1&&fldName!="fax"&&fldName!="deliveryNotes"&&(fldName!="personCode" || chkIVA)&&isEmpty(frm.elements[i].value))
			{alert(window.fillField+": "+window[fldName]);frm.elements[i].focus();return false;}
		if(frm.elements[i].name=="country"&&frm.elements[i].selectedIndex==0)
			{alert(window.fillField+": "+window[fldName]);frm.elements[i].focus();return false;}
	}
	if(!frm.companyCode.disabled&&chkIVA&&(naz.search(/^(RSM|I)$/)==0)){
		var re=eval("/^\\d{"+(naz=="RSM"?"5":"11")+"}$/");
		if(frm.companyCode.value.search(re)==-1)
			{alert(window.erratedValue+": "+window.companyCode);frm.companyCode.focus();frm.companyCode.select();return false;}
	}
	
	if(!frm.postalCode.disabled&&frm.postalCode.value.search(/^\d{5}$/)==-1&&naz.search(/^(RSM|I)$/)==0)
		{alert(window.erratedValue+": "+window.postalCode);frm.postalCode.focus();frm.postalCode.select();return false;}
	if(!_mail(frm.mail.value))
		{alert(window.erratedValue+": "+window.mail);frm.mail.focus();frm.mail.select();return false;}
	//idDitta.value = idDitta.value.substr(1);
	return true;
}
