function addToCart() { if (validaQuantita()) document.carrello.submit(); } function compraSubito(itemid) { var formname = "item"+itemid; eval('document.'+formname+'.submit()'); } function validaQuantita() { var quantita = document.carrello.quantita; if(quantita.value=="") { alert('Inserisci un valore per la quantità'); return false; } if(isNumeric(quantita.value) && quantita.value.length<=2) return true; alert('Inserisci un valore valido per la quantità'); return false; } function isNumeric(sText) { var ValidChars = "0123456789"; var IsNumber=true; var Char; for (i = 0; i < sText.length && IsNumber == true; i++) { Char = sText.charAt(i); if (ValidChars.indexOf(Char) == -1) { IsNumber = false; } } return IsNumber; } function verifyAndAdd() { if(verifyUser()) document.dati_utente.submit(); } function verifyUser() { var formname = document.dati_utente; if(formname.fatt_nome.value=='') return returnFalse('Geben Sie einen Namen ein'); if(formname.fatt_cognome.value=='') return returnFalse('Geben Sie einen Nachnamen ein'); if(formname.fatt_via.value=='') return returnFalse('Geben Sie eine Straße ein'); if(formname.fatt_cap.value=='') return returnFalse('Geben Sie eine PLZ ein'); if(formname.fatt_citta.value=='') return returnFalse('Geben Sie eine Stadt ein'); if(formname.fatt_paese.value=='') return returnFalse('Geben Sie ein Land ein'); if(formname.fatt_paese.value.toLowerCase()=='italia') { if (formname.fatt_codice_fiscale.value=='' && formname.fatt_partita_iva.value=='') return returnFalse('Steuernummer oder MWSt.-Nr. obbligatorisch'); if (formname.fatt_codice_fiscale.value!='') { err = ControllaCF(formname.fatt_codice_fiscale.value, formname.fatt_cognome.value, formname.fatt_nome.value); if( err > '' ) return returnFalse('Steuernummer nicht gültig'); } if (formname.fatt_partita_iva.value!='') { err = ControllaPIVA(formname.fatt_partita_iva.value); if( err > '' ) return returnFalse('MWSt-Nr. nicht gültig'); } } if(formname.fatt_tel.value=='') return returnFalse('Geben Sie eine Tel. Nr. ein'); if(formname.fatt_email.value=='') return returnFalse('Bitte geben Sie eine gültige E-Mail Adresse ein'); /* if(formname.fatt_paese.value.toLowerCase()=='italia' && formname.fatt_codice_fiscale.value=='' && formname.fatt_partita_iva.value=='') return returnFalse('Steuernummer oder MWSt.-Nr. obbligatorisch'); */ if(!formname.accetto_le.checked) return returnFalse("Bitte bestätigen Sie die Allgemeinen Geschäftsbedingungen um mit der Bestellung fortfahren zu können."); return true; } function returnFalse(msg) { var testoalert = msg.replace(/"'"/g,"/'"); alert(testoalert); return false; } function ControllaCF_old(cf) { var validi, i, s, set1, set2, setpari, setdisp; if( cf == '' ) return ''; cf = cf.toUpperCase(); if( cf.length != 16 ) return "La lunghezza del codice fiscale non è\n" +"corretta: il codice fiscale dovrebbe essere lungo\n" +"esattamente 16 caratteri.\n"; validi = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; for( i = 0; i < 16; i++ ){ if( validi.indexOf( cf.charAt(i) ) == -1 ) return "Il codice fiscale contiene un carattere non valido `" + cf.charAt(i) + "'.\nI caratteri validi sono le lettere e le cifre.\n"; } set1 = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; set2 = "ABCDEFGHIJABCDEFGHIJKLMNOPQRSTUVWXYZ"; setpari = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; setdisp = "BAKPLCQDREVOSFTGUHMINJWZYX"; 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 "Il codice fiscale non è corretto:\n"+ "il codice di controllo non corrisponde.\n"; return ""; } /* * Regola: * - Prendo le prime 3 consonanti del cognome * - Se non ci sono 3 consonanti, aggiungo le vocali per arrivare a 3 caratteri * - Se il cognome ha meno di 3 lettere, aggiungo delle X per integrare fino a 3 caratteri */ function estraiSoloVocaliPerCognomeCF(strElem) { if (strElem=="") return ""; elemNoVocali = ""; vocali = "AEIOU"; //estraggo le consonanti for(k=0; k3) elemNoVocali = elemNoVocali.substring(0,3); return elemNoVocali; } /* * Regola: * - Se ci sono 4 o più consonanti nel nome, prendo le consonanti 1,3 e 4 * - Se ci sono meno di 4 consonanti, prendo le prime 3 * - Se ci sono meno di tre consonanti, accodo le vocali * - Se il nome ha meno di 3 lettere, integro con delle X per arrivare a 3 caratteri */ function estraiSoloVocaliPerNomeCF(strElem) { if (strElem=="") return ""; elemNoVocali = ""; elemNoVocali_1 = ""; elemNoVocali_2 = ""; vocali = "AEIOU"; //estraggo le consonanti for(k=0, c=0; k=4) //se ci sono >=4 consonanti, prendo la 1°,3° e 4° elemNoVocali = elemNoVocali_2; else //altrimenti prendo la 1°,2° e 3° elemNoVocali = elemNoVocali_1; if (elemNoVocali.length<3)//se ci sono meno di 3 consonanti, aggiungo in coda le vocali { for(k=0; k3) elemNoVocali = elemNoVocali.substring(0,3); return elemNoVocali; } function ControllaCF(cf, cf_cognome, cf_nome) { var validi, i, s, set1, set2, setpari, setdisp; var carNome, carCognome, strNome, strCognome; if( cf == '' ) return ''; cf = cf.toUpperCase(); if( cf.length != 16 ) return "La lunghezza del codice fiscale non è\n" +"corretta: il codice fiscale dovrebbe essere lungo\n" +"esattamente 16 caratteri.\n"; validi = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; for( i = 0; i < 16; i++ ){ if( validi.indexOf( cf.charAt(i) ) == -1 ) return "Il codice fiscale contiene un carattere non valido `" + cf.charAt(i) + "'.\nI caratteri validi sono le lettere e le cifre.\n"; } set1 = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; set2 = "ABCDEFGHIJABCDEFGHIJKLMNOPQRSTUVWXYZ"; setpari = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; setdisp = "BAKPLCQDREVOSFTGUHMINJWZYX"; 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 "Il codice fiscale non è corretto:\n"+ "il codice di controllo non corrisponde.\n"; //verifico la correttezza del CF rispetto a nome e cognome carCognome = cf.substring(0,3); carCognome = carCognome.toUpperCase(); carNome = cf.substring(3,6); carNome = carNome.toUpperCase(); cf_cognome = cf_cognome.toUpperCase(); cf_nome = cf_nome.toUpperCase(); var re=/ /g; cf_cognome =cf_cognome .replace(re, ''); cf_nome =cf_nome .replace(re, ''); strCognome = estraiSoloVocaliPerCognomeCF(cf_cognome)+""; strNome = estraiSoloVocaliPerNomeCF(cf_nome)+""; if (strCognome!=carCognome || strNome!=carNome) { return "Non c'è corrispondenza tra codice fiscale e nome-cognome"; } return "";//OK, codice fiscale corretto } function ControllaPIVA(pi) { if( pi == '' ) return ''; if( pi.length != 11 ) return "La lunghezza della partita IVA non è\n" + "corretta: la partita IVA dovrebbe essere lunga\n" + "esattamente 11 caratteri.\n"; validi = "0123456789"; for( i = 0; i < 11; i++ ){ if( validi.indexOf( pi.charAt(i) ) == -1 ) return "La partita IVA contiene un carattere non valido `" + pi.charAt(i) + "'.\nI caratteri validi sono le cifre.\n"; } 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 "La partita IVA non è valida:\n" + "il codice di controllo non corrisponde.\n"; return ''; }