/* SCRIPT ************************************************************* funzioni_comuni.js | v1.1.0 Obiettivo Fornire un insieme di funzioni comuni alla gestione dei bollettini di versamento e sanzione Revisioni 14.04.2003: Internazionalizzazione (Enrico Sodacci) [v1.1.0] 10.05.2002: Passaggio in staging (Alessio Mazzieri) [v1.1.0] 24.04.2002: Ristrutturazione per integrazione applicazione PagoNET (Alessio Mazzieri) [v1.0.0] **************************************************************************************************/ /* FUNZIONE ******************************************************************* campoVuoto | v1.0.0 Obiettivo Verificare se un campo è vuoto Parametri IN [campoForm] Riferimento al campo da controllare Risultato TRUE se il campo è vuoto, FALSE altrimenti Revisioni 24.04.2002: Ristrutturazione per integrazione applicazione PagoNET (Alessio Mazzieri) [v1.0.0] **************************************************************************************************/ function campoVuoto(campoForm) { var espressioneRegolare=/\s/g; if ((campoForm.value.replace(espressioneRegolare, "")).length==0) { campoForm.value="" return true } return false } /* FUNZIONE ***************************************************************** svuotaComune | v1.0.0 Obiettivo Verificare l'impostazione della cittadinanza straniera dell'utente ed eventualmente svuotare il campo contenente un comune già inserito Parametri IN [formAF] Riferimento all'oggetto FORM contenente i campi del bollettino Risultato Svuotamento del campo DOMICILIO e disabilitazione del pulsante di RICERCA COMUNE se l'utente ha selezionato la cittadinanza straniera Revisioni 24.04.2002: Ristrutturazione per integrazione applicazione PagoNET (Alessio Mazzieri) [v1.0.0] **************************************************************************************************/ function svuotaComune(formAF) { if (!formAF.utenteStraniero.checked) formAF.utenteDomicilio.value = "" formAF.linkCerca.disabled = formAF.utenteStraniero.checked } /* FUNZIONE ************************************************************** comuneAbilitato | v1.0.0 Obiettivo Verificare l'abilitazione all'inserimento manuale di un comune, subordinata all'impostazione dell'impostazione che indica la cittadinanza straniera Parametri IN [formAF] Riferimento all'oggetto FORM contenente i campi del bollettino Risultato TRUE se è possibile digitare manualmente il comune, FALSE (e finestra con messaggio) se non è possibile digitare manualmente il comune Revisioni 24.04.2002: Ristrutturazione per integrazione applicazione PagoNET (Alessio Mazzieri) [v1.0.0] **************************************************************************************************/ function comuneAbilitato(formAF) { if (formAF.utenteStraniero.checked || event.keyCode<=32) { return true } else { if (!formAF.utenteStraniero.checked) { alert("Per cittadini italiani è necessario utilizzare il pulsante\nCERCA per selezionare il domicilio.") } return false } } /* FUNZIONE ***************************************************************** creaImporto | v1.0.0 Obiettivo Creare l'importo formattato in modo IIIIDD (I interi, D decimali) a partire dal contenuto dei campi IIIII e DD. Parametri IN [formAF] Riferimento all'oggetto FORM contenente i campi del bollettino {Oggetto} IN [nomeCampo] Nome del campo sul quale creare l'importo {Stringa} Risultato Varlorizzazione del campo specificato con l'importo calcolato Revisioni 26.04.2002: Ristrutturazione per integrazione applicazione PagoNET (Alessio Mazzieri) [v1.0.0] **************************************************************************************************/ function creaImporto(formAF, nomeCampo) { if (eval("formAF."+nomeCampo+"Intero").value!="") { if (eval("formAF."+nomeCampo+"Decimali").value=="") { eval("formAF."+nomeCampo+"Decimali").value="00" } } else { if (eval("formAF."+nomeCampo+"Decimali").value!="") { eval("formAF."+nomeCampo+"Intero").value="0" } } if (eval("formAF."+nomeCampo+"Decimali").value.length==1) { eval("formAF."+nomeCampo+"Decimali").value += "0" } if (eval("formAF."+nomeCampo+"Decimali").value.length==1) { eval("formAF."+nomeCampo+"Decimali").value += "0" } if (eval("formAF."+nomeCampo).value=="") { eval("formAF."+nomeCampo).value="000" } eval("formAF."+nomeCampo).value = eval("formAF."+nomeCampo+"Intero").value + eval("formAF."+nomeCampo+"Decimali").value } /* FUNZIONE ****************************************************************** spostaFuoco | v1.0.0 Obiettivo Spostare il fuoco al controllo successivo se si è raggiunta il massimo numero di caratteri editabili Parametri IN [campoControllo] Riferimento al campo in analisi {Oggetto} IN [campoSuccessivo] Riferimento al campo su cui spostare {Stringa} Risultato Spostamento sul nuovo fuoco secondo i creteri impostati Revisioni 26.04.2002: Ristrutturazione per integrazione applicazione PagoNET (Alessio Mazzieri) [v1.0.0] **************************************************************************************************/ function spostaFuoco (campoControllo, campoSuccessivo) { if ((event.keyCode!=8) && (event.keyCode!=9) && (event.keyCode!=46) && (event.keyCode!=16)) { if (campoControllo.value.length==campoControllo.maxLength) { campoSuccessivo.focus() campoSuccessivo.select() } } } /* FUNZIONE ******************************************************************* soloNumeri | v1.0.0 Obiettivo Bloccare l'inserimento di cose diverse da numeri in un campo Risultato Negazione all'inserimento se non si tratta di un numero o di un carattere speciale (tabulazione, shift, backspace, canc...) Revisioni 26.04.2002: Ristrutturazione per integrazione applicazione PagoNET (Alessio Mazzieri) [v1.0.0] **************************************************************************************************/ function soloNumeri() { return (((event.keyCode>=48) && (event.keyCode<=57)) || ((event.keyCode>=96) && (event.keyCode<=105)) || (event.keyCode==8) || (event.keyCode==9) || (event.keyCode==35) || (event.keyCode==36) || (event.keyCode==37) || (event.keyCode==39) || (event.keyCode==46) || (event.keyCode==16)) } /* FUNZIONE ************************************************************** validazioneData | v1.0.0 Obiettivo Verificare se il campo contiene una data valida (formato corretto e data anteriore a quella attuale) Parametri IN [campoData] Riferimento al campo contenente la data da controllare Risultato TRUE se il campo contiene una data valida, FALSE altrimenti (e focus spostato sul campo) Revisioni 05.09.2002: Creazione funzione (Alessio Mazzieri) [v1.0.0] **************************************************************************************************/ function validazioneData(campoData) { var valoreData = campoData.value; var posizioneSeparatore1 = valoreData.indexOf("/"); if (valoreData == "") { return true; } if (posizioneSeparatore1==-1) { alert ("Data non valida o nel formato non corretto: GG/MM/AAAA"); campoData.focus(); return false; } var posizioneSeparatore2 = valoreData.indexOf("/", posizioneSeparatore1+1) if (posizioneSeparatore2==-1) { alert ("Data non valida o nel formato non corretto: GG/MM/AAAA"); campoData.focus(); return false; } var dataGiorno = valoreData.split("/")[0] var dataMese = valoreData.split("/")[1] var dataAnno = valoreData.split("/")[2] if ( (dataGiorno.length==0) || (dataGiorno.length>2) ) { alert ("Data non valida o nel formato non corretto: GG/MM/AAAA"); campoData.focus(); return false; } if ( (dataMese.length==0) || (dataMese.length>2) ) { alert ("Data non valida o nel formato non corretto: GG/MM/AAAA"); campoData.focus(); return false; } if (dataAnno.length!=4) { alert ("Data non valida o nel formato non corretto: GG/MM/AAAA"); campoData.focus(); return false; } var dataCalcolata = new Date(dataAnno, dataMese-1, dataGiorno) if ((dataCalcolata.getDate()!=dataGiorno)||((dataCalcolata.getMonth()+1)!=dataMese)||(dataCalcolata.getFullYear()!=dataAnno)) { alert ("Data non valida o nel formato non corretto: GG/MM/AAAA"); campoData.focus(); return false; } if ( dataCalcolata>(new Date()) ) { alert ("La data deve essere precedente a quella odierna."); campoData.focus(); return false; } dataGiorno = String(dataCalcolata.getDate()); if (dataGiorno.length == 1) dataGiorno = "0" + dataGiorno; dataMese = String(dataCalcolata.getMonth()+1); if (dataMese.length == 1) dataMese = "0" + dataMese; dataAnna = dataCalcolata.getFullYear(); campoData.value = dataGiorno + "/" + dataMese + "/" + dataAnno; return true; } /* FUNZIONE ***************************************************************** paddingValue | v1.0.0 Obiettivo Eseguire il padding di un valore numerico con l'inserimento di un carattere di riempimento Parametri IN [campoPad] Riferimento al campo contenente il dato da modificare IN [posizioni] Numero posizioni su cui eseguire il padding IN [carattere] Carattere componente il padding Risultato Padding del valore presente a seconda delle specifiche Revisioni 09.09.2002: Creazione funzione (Alessio Mazzieri) [v1.0.0] **************************************************************************************************/ function paddingValue(campoPad, posizioni, carattere) { var indicePad var totalPadding = "" if (campoPad.value != "") { for (indicePad = 0; indicePad < posizioni; indicePad++) { totalPadding += carattere; } totalPadding += campoPad.value; campoPad.value = totalPadding.substring((totalPadding.length - posizioni)); } } /* FUNZIONE ******************************************************************** dePadding | v1.0.0 Obiettivo Rimuovere il padding di un campo Parametri IN [campoPad] Riferimento al campo contenente il dato da modificare IN [carattere] Carattere componente il padding Risultato Rimozione padding del valore presente a seconda delle specifiche Revisioni 09.09.2002: Creazione funzione (Alessio Mazzieri) [v1.0.0] **************************************************************************************************/ function dePadding(campoPad, carattere) { var indicePad var totalPadding = "" if (campoPad.value != "") { indicePad = 0; while ((indicePad < campoPad.value.length) && (campoPad.value.charAt(indicePad)==carattere)) { indicePad++; } campoPad.value = campoPad.value.substring(indicePad); } campoPad.select(); }