var maxmchars = 1024; var message = "Message exceeds %n characters. Reduce it a little, please."; var error_message = "There has been an error sending the feedback message. Please try again later or not. "; var ftarea_updt_fp = function() { $("#feedback_msg").text($("#feedback_textarea")[0].value.length + " of max. " + maxmchars); if($("#feedback_textarea")[0].value.length > maxmchars) { $("#feedback_msg").css("color", "red"); } else { $("#feedback_msg").css("color", "gray"); } }; $(function(){ // Dialog $("#feedback_dialog").dialog({ autoOpen: false, width: 400, buttons: { "Ok": function() { if($("#feedback_textarea")[0].value.length > maxmchars) { alert(message.replace("%n", maxmchars)); $("#feedback_textarea")[0].focus(); } else if($("#feedback_textarea")[0].value.length == 0) { $("#feedback_textarea")[0].focus(); } else if($("#feedback_email")[0].value.length == 0) { $("#feedback_email")[0].focus(); } else if(!$("#feedback_email")[0].value.match(".+@.+\\..+")) { alert("Please introduce a valid e-mail address!"); $("#feedback_email")[0].focus(); } else { // ajax permite gestionar respuesta erronea HTTP, post no: //$.post('/ajax/sendfbck.php', {message: $("#feedback_textarea")[0].value}, function(ok) {(ok==1)?$(this).dialog("close"):$('feedback_msg').text("There has been an error sending the feedback message. Please try again later or not.");}); $("#feedback_msg").html(""); $.ajax({ type: "POST", url: "/ajax/addcomment.php", data: { from: $("#feedback_email")[0].value, message: $("#feedback_textarea")[0].value, action: "PUT" }, success: function(msg) { if(msg=="ok") { alert("Thanks for submitting your feedback!"); $("#feedback_dialog").dialog("close"); $("#feedback_dialog_link").css("color","gray"); $("#feedback_dialog_link").css("text-decoration","none"); $("#feedback_dialog_link").css("cursor","default"); $("#feedback_dialog_link").unbind("click"); } else { $("#feedback_msg").text(error_message + msg); } }, error: function(xmlobj,errdesc,excpobj) { $("#feedback_msg").text(error_message + "(HTTP " + xmlobj.status + ")"); } }); } return false; }, "Cancel": function() { $(this).dialog("close"); } } }); // Dialog Link $("#feedback_dialog_link").click(function() { $("#feedback_dialog").dialog('open'); $("#feedback_msg").text(""); ftarea_updt_fp(); return false; }); $("#feedback_textarea").keypress(ftarea_updt_fp); $("#feedback_textarea").keydown(ftarea_updt_fp); $("#feedback_textarea").keyup(ftarea_updt_fp); $("#feedback_textarea").change(ftarea_updt_fp); $("#feedback_textarea").click(ftarea_updt_fp); });