function codiceFISCALE(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 ControllaPIVA(pi){ 
	if((pi == '') || (pi == '00000000000')) return false; 
	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 isLiteral(s) {
	s = s.toLowerCase();
	for (var i = 0; i < s.length; i++) {
		var c = s.charAt(i);
		if (((c < 'a') || (c > 'z')) && (c != ' ') && (c != ',') && (c != '.') && (c != '\'') && (c != '/') && (c != '\(') && (c != '\)')) return false;
	}
	return true
}

function isNumeric(s) { 
	for (var i = 0; i < s.length; i++) {
		var c = s.charAt(i);
		if ((c < '0') || (c > '9')) {return false;}
	}
	return true
}

function isAlphaNum(s) {
	for (var i = 0; i < s.length; i++) {
		var c = s.charAt(i);
		if ((!isLiteral(c)) && (!isNumeric(c))) return false;
	}
	return true
}

function sizeIs(s,n) {
	if (s.length == n) return true; return false
}


function isEmail(s) {
	if (s != '') {	
		var chiocciola,chiocciola2,punto;
		chiocciola = s.indexOf('@');
		chiocciola2 = s.lastIndexOf('@');
		punto = s.lastIndexOf('.'); 
		s = s.toLowerCase();
		if ((chiocciola < 2) || (chiocciola2 != chiocciola) || (punto < chiocciola+4) || (s.length-punto < 3)) 
			return false;
		for (var i = 0; i < s.length; i++) {
			var c = s.charAt(i);
			if ((!isAlphaNum(c)) && (c != '@') && (c != "_")) return false;
		}
		
	}
	return true;
}

function isGGMMAAAA(s) {
	if (minAge == null) var minAge = 0;
	if (!sizeIs(s,10)) return false;
	var GG = s.substr(0,2);	
	var MM = s.substr(3,2);
	var AAAA = s.substr(6,4);
	var lRitorno=false;
	if (MM=="11" || MM=="04" || MM=="06" || MM=="09") lRitorno=(GG<"31");
	else 
		if (MM=="02") lRitorno = ((GG < "29") || ((GG == "29") && (AAAA % 4 == 0) && (AAAA % 400 == 0)));
		else
			lRitorno = (MM<"13" && GG<"32")
	return lRitorno;
}

function checkMinOrd(id) {
	minimo_ordinabile = parseInt(eval('document.getElementById("carrello'+id+'").minimo_ordinabile.value'));
	quantita_da_controllare = parseInt(eval('document.getElementById("carrello'+id+'").qta.value'))
	
	if (quantita_da_controllare>=minimo_ordinabile) {
		return true;
	} else {
		alert("Attenzione!\nE' necessario ordinare almeno " + minimo_ordinabile + " unita'")
		return false;
	} 
	
	
}

function carrello_aggiorna(id,check_giacenza) {
	if (!isNumeric(eval('document.getElementById("carrello'+id+'").qta.value'))) {
		alert("Attenzione!\rE' necessario inserire un valore numerico.");
		return false;
	}

	if (check_giacenza=='1') {
		if (eval('parseInt(document.getElementById("carrello'+id+'").qta.value)')>eval('parseInt(document.getElementById("carrello'+id+'").giacenza.value)')) {
			alert("Attenzione!\rLa quantita richiesta non e' disponibile.");
			return false;
		}
	}
	
	if (!checkMinOrd(id)) {
		return false;
	}
	
	eval('document.getElementById("carrello'+id+'").submit()');
	return true;
}

function visualizzaOggetto(oggetto) {
	if (document.getElementById(oggetto).style.display!='none') {
		document.getElementById(oggetto).style.display = 'none';
	} else {
		document.getElementById(oggetto).style.display = '';		
	}
}

function verifica_acquisto(mioform) {
	if (mioform.indirizzo_diverso.checked) {
		if (mioform.consegna_nome.value=='') {
			alert("Attenzione!\rE' necessario inserire il nome")
			return false
		}
		
		if (mioform.consegna_cognome.value=='') {
			alert("Attenzione!\rE' necessario inserire il cognome")
			return false
		}

		if (mioform.consegna_indirizzo.value=='') {
			alert("Attenzione!\rE' necessario inserire l'indirizzo")
			return false
		}

		if (mioform.consegna_cap.value=='') {
			alert("Attenzione!\rE' necessario inserire il CAP")
			return false
		}

		if (mioform.consegna_citta.value=='') {
			alert("Attenzione!\rE' necessario inserire la citta'")
			return false
		}

		if (mioform.consegna_provincia.value=='') {
			alert("Attenzione!\rE' necessario inserire la provincia")
			return false
		}

		if (mioform.consegna_telefono.value=='') {
			alert("Attenzione!\rE' necessario inserire il telefono")
			return false
		}

	}
	
	/* QUI CONTROLLO CHE ABBIANO SELEZIONATO UNA DELLE MODALITA DI PAGAMENTO */
	
	//Abilitare se si vuole rendere obbligatorio la scelta di una modalità di pagamento
	numeropag = mioform.numeropag.value;
	una_scelta = false;
	for(i=0; i < numeropag; i++) {
		if(document.getElementById("modalita"+i).checked)
			una_scelta = true;
	}
	if(!una_scelta) {
		alert("Attenzione!\nE' necessario inserire una modalita' di pagamento.");
		return false;
	}
	
	
	return true
}



function vedi_riga(valore) {
	if (valore=='1') {
		document.getElementById("riga_gruppo").style.display='';
	} else {
		document.getElementById("riga_gruppo").style.display='none';
	}
}




function verifica_registrazione(mioform) {
	
	/*
	if (mioform.nome.value=='') {
		alert("Attenzione!\rIl campo nome e\' obbligatorio.");
		return false;
	}

	if (mioform.cognome.value=='') {
		alert("Attenzione!\rIl campo cognome e\' obbligatorio.");
		return false;
	}
	
	if (mioform.indirizzo.value=='') {
		alert("Attenzione!\rIl campo indirizzo e\' obbligatorio.");
		return false;
	}
	
	if (mioform.cap.value=='') {
		alert("Attenzione!\rIl campo cap e\' obbligatorio.");
		return false;
	}
	
	if (!isNumeric(mioform.cap.value)) {
		alert("Attenzione!\rIl campo cap e\' di tipo numerico.");
		return false;
	}
	
	if (mioform.citta.value=='') {
		alert("Attenzione!\rIl campo citta\' e\' obbligatorio.");
		return false;
	}
	
	if (mioform.provincia.value=='') {
		alert("Attenzione!\rIl campo provincia e\' obbligatorio.");
		return false;
	}
	
	if (mioform.data_nascita.value!='') {
	
		if (!(isGGMMAAAA(mioform.data_nascita.value))) {
				alert("Attenzione!\rIl formato del campo data di nascita non e\' valido.");
				mioform.data_nascita.select();
				return false
		}
		
	}	
	
	if (mioform.email.value=='') {
		alert("Attenzione!\rIl campo email e\' obbligatorio.");
		return false;
	}
	
	if (!isEmail(mioform.email.value)) {
		alert("Attenzione!\rFormato e-mail non valido.");
		return false;
	}
	
	if (!isNumeric(mioform.telefono.value)) {
		alert("Attenzione!\rIl campo telefono e\' di tipo numerico.");
		return false;
	}
		
	
	if	(mioform.piva.value=='' && mioform.codice_fiscale.value=='') {
		alert("Attenzione!\rE\' obbligatorio inserire la partita IVA o il Codice fiscale.");
		return false;
	}
	
	if (mioform.codice_fiscale.value!='') {
	if (!codiceFISCALE(mioform.codice_fiscale.value)) {
		alert("Attenzione!\rFormato codice fiscale non valido.");
		return false;
	}
	}
	
	
	if (mioform.piva.value!='') {
		if (!ControllaPIVA(mioform.piva.value)) {
			alert("Attenzione!\rFormato partita iva non valido.");
			return false;
		}
	}
	
	
	if (mioform.nome_utente.value=='') {
		alert("Attenzione!\rIl campo nome utente e\' obbligatorio.");
		return false;
	}
	
	
	if (mioform.autorizzo[0].checked==false){
		alert("Se non si autorizza il trattamento dei dati personali,\rnon e\' possibile completare l\'operazione di registrazione!");
		return false;
	}
	*/
	
	if (mioform.denominazione_azienda.value=='') {
		alert("Attenzione!\rIl campo denominazione e\' obbligatorio.");
		return false;
	}
	
	if (mioform.indirizzo_azienda.value=='') {
		alert("Attenzione!\rIl campo indirizzo e\' obbligatorio.");
		return false;
	}
	
		if (mioform.indirizzo_azienda.value=='') {
		alert("Attenzione!\rIl campo indirizzo e\' obbligatorio.");
		return false;
	}
	
	if (mioform.cap_azienda.value=='') {
		alert("Attenzione!\rIl campo cap e\' obbligatorio.");
		return false;
	}
	
	if (!isNumeric(mioform.cap_azienda.value)) {
		alert("Attenzione!\rIl campo cap e\' di tipo numerico.");
		return false;
	}
	
	if (mioform.citta_azienda.value=='') {
		alert("Attenzione!\rIl campo citta\' e\' obbligatorio.");
		return false;
	}
	
	if (mioform.provincia_azienda.value=='') {
		alert("Attenzione!\rIl campo provincia e\' obbligatorio.");
		return false;
	}

	if (mioform.email_azienda.value=='') {
		alert("Attenzione!\rIl campo email e\' obbligatorio.");
		return false;
	}
	
	if (!isEmail(mioform.email_azienda.value)) {
		alert("Attenzione!\rFormato e-mail non valido.");
		return false;
	}
	
	if (!isNumeric(mioform.telefono_azienda.value)) {
		alert("Attenzione!\rIl campo telefono e\' di tipo numerico.");
		return false;
	}
	
	if (!isNumeric(mioform.fax_azienda.value)) {
		alert("Attenzione!\rIl campo fax e\' di tipo numerico.");
		return false;
	}
	
	if (mioform.piva_azienda.value=='') {
		alert("Attenzione!\rIl campo Partita IVA e\' obbligatorio.");
		return false;
	}
	
	if (!ControllaPIVA(mioform.piva_azienda.value)) {
		alert("Attenzione!\rFormato Partita IVA non valido.");
		return false;
	}
	
	if (mioform.autorizzo[0].checked==false){
		alert("Se non si autorizza il trattamento dei dati personali,\rnon e\' possibile completare l\'operazione di registrazione!");
		return false;
	}
	
	return true;
}


function verifica_tipo_registrazione(checked) {
	if (checked) {
		document.getElementById("row_denominazione").style.display = '';
		document.getElementById("row_nome").style.display = 'none';
		document.getElementById("row_cognome").style.display = 'none';
	} else {
		document.getElementById("row_denominazione").style.display = 'none';
		document.getElementById("denominazione").value = '';		
		document.getElementById("row_nome").style.display = '';
		document.getElementById("row_cognome").style.display = '';
	}
	
}


function verifica_modifica_dati(mioform) {

	if (!mioform.tipo_registrazione.checked) {
		if (mioform.cognome.value=='') {
			alert("Attenzione!\rIl campo cognome e\' obbligatorio.");
			return false;
		}
		
		if (mioform.nome.value=='') {
			alert("Attenzione!\rIl campo nome e\' obbligatorio.");
			return false;
		}
	
	} else {
		if (mioform.denominazione.value=='') {
			alert("Attenzione!\rIl campo denominazione e\' obbligatorio.");
			return false;
		}
	
	}
	
	if (mioform.indirizzo.value=='') {
		alert("Attenzione!\rIl campo indirizzo e\' obbligatorio.");
		return false;
	}
	
	if (mioform.cap.value=='') {
		alert("Attenzione!\rIl campo cap e\' obbligatorio.");
		return false;
	}
	
	if (!isNumeric(mioform.cap.value)) {
		alert("Attenzione!\rIl campo cap e\' di tipo numerico.");
		return false;
	}
	
	if (mioform.citta.value=='') {
		alert("Attenzione!\rIl campo citta\' e\' obbligatorio.");
		return false;
	}
	
	if (mioform.provincia.value=='') {
		alert("Attenzione!\rIl campo provincia e\' obbligatorio.");
		return false;
	}
	
	/*if (mioform.data_nascita.value!='') {
	
		if (!(isGGMMAAAA(mioform.data_nascita.value))) {
				alert("Attenzione!\rIl formato del campo data di nascita non e\' valido.");
				mioform.data_nascita.select();
				return false
		}
		
	}*/	
	
	if (mioform.email.value=='') {
		alert("Attenzione!\rIl campo email e\' obbligatorio.");
		return false;
	}
	
	if (!isEmail(mioform.email.value)) {
		alert("Attenzione!\rFormato e-mail non valido.");
		return false;
	}
	
	if (!isNumeric(mioform.telefono.value)) {
		alert("Attenzione!\rIl campo telefono e\' di tipo numerico.");
		return false;
	}
		
	
	if	(mioform.piva.value=='' && mioform.codice_fiscale.value=='') {
		alert("Attenzione!\rE\' obbligatorio inserire la partita IVA o il Codice fiscale.");
		return false;
	}
	
	
	if (mioform.codice_fiscale.value!='') {
	if (!codiceFISCALE(mioform.codice_fiscale.value)) {
		alert("Attenzione!\rFormato codice fiscale non valido.");
		return false;
	}
	}
	
	
	if (mioform.piva.value!='') {
		if (!ControllaPIVA(mioform.piva.value)) {
			alert("Attenzione!\rFormato partita iva non valido.");
			return false;
		}
	}

	if (mioform.nome_utente.value=='') {
		alert("Il campo nome utente e\' obbligatorio.");
		return false;
	}
	

	return true;
}

function verifica_modifica_dati_utente(mioform) {

	if (mioform.cognome.value=='') {
		alert("Attenzione!\rIl campo cognome e\' obbligatorio.");
		return false;
	}

	if (mioform.nome.value=='') {
		alert("Attenzione!\rIl campo nome e\' obbligatorio.");
		return false;
	}

	if (mioform.indirizzo.value=='') {
		alert("Attenzione!\rIl campo indirizzo e\' obbligatorio.");
		return false;
	}
	
	if (mioform.cap.value=='') {
		alert("Attenzione!\rIl campo cap e\' obbligatorio.");
		return false;
	}
	
	if (!isNumeric(mioform.cap.value)) {
		alert("Attenzione!\rIl campo cap e\' di tipo numerico.");
		return false;
	}
	
	if (mioform.citta.value=='') {
		alert("Attenzione!\rIl campo citta\' e\' obbligatorio.");
		return false;
	}
	
	if (mioform.provincia.value=='') {
		alert("Attenzione!\rIl campo provincia e\' obbligatorio.");
		return false;
	}

	
	if (mioform.email.value=='') {
		alert("Attenzione!\rIl campo email e\' obbligatorio.");
		return false;
	}
	
	if (!isEmail(mioform.email.value)) {
		alert("Attenzione!\rFormato e-mail non valido.");
		return false;
	}
	
	
	if	(mioform.piva.value=='' && mioform.codice_fiscale.value=='') {
		alert("Attenzione!\rE\' obbligatorio inserire la partita IVA o il Codice fiscale.");
		return false;
	}
	
	
	if (mioform.codice_fiscale.value!='') {
	if (!codiceFISCALE(mioform.codice_fiscale.value)) {
		alert("Attenzione!\rFormato codice fiscale non valido.");
		return false;
	}
	}
	
	
	if (mioform.piva.value!='') {
		if (!ControllaPIVA(mioform.piva.value)) {
			alert("Attenzione!\rFormato partita iva non valido.");
			return false;
		}
	}

	return true;
}


function verifica_modifica_dati_azienda(mioform) {

	if (mioform.denominazione_azienda.value=='') {
		alert("Attenzione!\rIl campo denominazione e\' obbligatorio.");
		return false;
	}
	
	if (mioform.indirizzo_azienda.value=='') {
		alert("Attenzione!\rIl campo indirizzo e\' obbligatorio.");
		return false;
	}
	
	if (mioform.cap_azienda.value=='') {
		alert("Attenzione!\rIl campo cap e\' obbligatorio.");
		return false;
	}
	
	if (!isNumeric(mioform.cap_azienda.value)) {
		alert("Attenzione!\rIl campo cap e\' di tipo numerico.");
		return false;
	}
	
	if (mioform.citta_azienda.value=='') {
		alert("Attenzione!\rIl campo citta\' e\' obbligatorio.");
		return false;
	}
	
	if (mioform.provincia_azienda.value=='') {
		alert("Attenzione!\rIl campo provincia e\' obbligatorio.");
		return false;
	}
	
	/*if (mioform.data_nascita.value!='') {
	
		if (!(isGGMMAAAA(mioform.data_nascita.value))) {
				alert("Attenzione!\rIl formato del campo data di nascita non e\' valido.");
				mioform.data_nascita.select();
				return false
		}
		
	}*/	
	
	if (mioform.email_azienda.value=='') {
		alert("Attenzione!\rIl campo email e\' obbligatorio.");
		return false;
	}
	
	if (!isEmail(mioform.email_azienda.value)) {
		alert("Attenzione!\rFormato e-mail non valido.");
		return false;
	}
	
	if (!isNumeric(mioform.telefono_azienda.value)) {
		alert("Attenzione!\rIl campo telefono e\' di tipo numerico.");
		return false;
	}
		
	
	if	(mioform.piva_azienda.value=='' && mioform.codice_fiscale.value=='') {
		alert("Attenzione!\rE\' obbligatorio inserire la partita IVA o il Codice fiscale.");
		return false;
	}
	
	
	if (mioform.codice_fiscale.value!='') {
	if (!codiceFISCALE(mioform.codice_fiscale.value)) {
		alert("Attenzione!\rFormato codice fiscale non valido.");
		return false;
	}
	}
	
	
	if (mioform.piva_azienda.value!='') {
		if (!ControllaPIVA(mioform.piva_azienda.value)) {
			alert("Attenzione!\rFormato partita iva non valido.");
			return false;
		}
	}

	return true;
}


function Ricerca(ricerca){

		if (ricerca.chiave.value==''){
		    alert(' E\' necessario specificare almeno una parola per effettuare la ricerca')			
		    return false;
		}
		
		if (ricerca.chiave.value.length<3){
		    alert(' E\' necessario specificare almeno una parola di tre lettere')			
		    return false;
		}
		
		return true
		
}


function Recupera(recupera){

		if (recupera.email.value==''){
		    alert(' E\' necessario specificare il proprio indirizzo email.')			
		    return false;
		}
		
		if (!isEmail(recupera.email.value)) {
			alert("Attenzione!\rFormato e-mail non valido.");
			return false;
		}	
		
		return true
		
}



function Newsletter(newsletter){

		if (newsletter.email.value==''){
		    alert(' E\' necessario inserire il proprio indirizzo email per effettuare la registrazione')			
		    return false;
		}
		
		if (!isEmail(newsletter.email.value)) {
			alert("Attenzione!\rFormato e-mail non valido.");
			return false;
		}	
		
		return true
		
}

function Mailing(mailing){

		if (mailing.nome.value=='') {
			alert("Attenzione!\rIl campo nome e\' obbligatorio.");
			return false;
		}
	
		if (mailing.cognome.value=='') {
			alert("Attenzione!\rIl campo cognome e\' obbligatorio.");
			return false;
		}

		if (mailing.email.value==''){
		    alert(' E\' necessario inserire il proprio indirizzo email per effettuare la registrazione')			
		    return false;
		}
		
		if (!isEmail(mailing.email.value)) {
			alert("Attenzione!\rFormato e-mail non valido.");
			return false;
		}	
						
		return true
		
}