/* GESTIONE COMMENTI AJAX */ var testiErrori = { 'user': { 'lettere' : 'Questo campo può contenere solo caratteri alfanumerici!', 'validita' : 'Non va bene, deve essere compreso tra 3 e 30 caratteri', 'noncombacia' : 'Questo nome non combacia con quello all\'interno del nostro sistema, per l\'indirizzo email da te specificato' }, 'email': { 'validita' : 'Inserisci una email valida! (es. abc@abc.it)', 'noncombacia' : 'Come spiegato sopra, esiste già un utente che ha inserito un commento con questa email, ma il nome che hai specificato sopra non combacia con quello usato in precedenza.' }, 'url': { 'validita': 'L\'url deve essere valida ed esistente, altrimenti lascia vuoto il campo...' }, 'captcha': { 'validita': 'Ricordati di riempire il campo del codice di verifica, altrimenti non avro\' mai la certezza che sei un essere umano!! ;-)', 'noncombacia': 'Sembra che il codice da te inserito non combaci con quello generato dal sistema: ricontrolla...' } }; $(document).ready(function() { var opzioniInvioCommento = { target: '#output1', beforeSubmit: reInitializeErrorDivs, success: parseCommentHandlerXML, dataType: 'xml', clearForm: false }; $('#ctl41_add').ajaxForm(opzioniInvioCommento); }); parseCommentHandlerXML = function(xml) { // Se esiste il div ajax-loader-wrapper, lo mostro con uno scrolldown $('#ajax-loader-wrapper').slideDown(500); // Controllo se è avvenuto un errore o no if ( $(xml).find('status').text() == 'ERROR' ) { //Controllo quali errori ci sono stati var tipoErrore = "", erroreSingolo = "", testoErrore = ""; var divErrore = "", htmlErrore = ""; $(xml).find('errore').each(function() { tipoErrore = $(this).attr('tipo'); // campo errore: user - email - url - captcha divErrore = "#errore_" + tipoErrore; htmlErrore = ""; $(divErrore).html(''); $(this).find('mistake').each(function() { //tipo errore: validita - lettere // Retrieving del messaggio dell'errore erroreSingolo = $(this).text(); testoErrore = testiErrori[tipoErrore][erroreSingolo]; htmlErrore += testoErrore + '
'; }); // Output a video dell'errore, se necessario if (htmlErrore != "") { $(divErrore).html(htmlErrore); $(divErrore).fadeIn(1500); } }); } else if ( $(xml).find('status').text() == 'DBERROR' ) { // Errore di inserimento del commento nel DB. Ci possono essere varie ragioni, ma in ogni caso non funziona. alert('Errore di scrittura sul database'); } else { // In questo caso l'xml ci risponderà con il nuovo commento inserito. Questa parte di codice stampa a video i risultati del nuovo commento inserito. var commentHTML = $(xml).find('commentHTML').text(); $('#commentPlaceHolder').fadeOut(1000); setTimeout(function() { $('#commentPlaceHolder').prepend(commentHTML); }, 1200); $('#commentPlaceHolder').fadeIn(2000); // Reset del form var inputNames = new Array('nome', 'email', 'homepage', 'rememberMe', 'ccode'); var nomeInput = ""; for (var idInput in inputNames) { nomeInput = inputNames[idInput]; $("input[name='" + nomeInput + "']").val(''); } $("textarea[name='commento']").val(''); } // Se esiste il div ajax-loader-wrapper, lo nascondo con uno scrollup $('#ajax-loader-wrapper').slideUp(1000); } reInitializeErrorDivs = function() { for (var errorDiv in testiErrori) { divErrore = "#errore_" + errorDiv; $(divErrore).fadeOut(100); } }