$(document).ready(function() { var captchaAnswer = 0; function newCaptcha() { var a = Math.floor(Math.random() * 8) + 2; var b = Math.floor(Math.random() * 8) + 2; captchaAnswer = a + b; $("#captcha_label").text("What is " + a + " + " + b + "?"); $("#captcha").val("").removeClass("error_input"); } newCaptcha(); $("#captcha_refresh").on("click", newCaptcha); $("#name,#email,#phone,#subject,#message,#captcha").on("input", function() { $(this).removeClass("error_input"); $("#form_error").hide(); }); $("#send_message").click(function(e) { e.preventDefault(); var invalid = false; var name = $.trim($("#name").val()); var email = $.trim($("#email").val()); var phone = $.trim($("#phone").val()); var message = $.trim($("#message").val()); var captcha = $.trim($("#captcha").val()); var emailOk = /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(email); var phoneOk = /^[6-9]\d{9}$/.test(phone.replace(/\s+/g, "")); var $btn = $("#send_message"); var isButton = $btn.is("button"); function mark(id, bad) { $(id).toggleClass("error_input", bad); if (bad) invalid = true; } mark("#name", name.length < 2); mark("#email", !emailOk); mark("#phone", !phoneOk); if ($("#subject").length) mark("#subject", $.trim($("#subject").val()).length < 2); mark("#message", message.length < 10); mark("#captcha", captcha !== String(captchaAnswer)); if (invalid) { $("#form_error").text("Please fill every field correctly and answer the captcha.").fadeIn(200); return; } $("#form_error").hide(); $btn.prop("disabled", true); if (isButton) $btn.text("Sending..."); else $btn.attr("value", "Sending..."); $.post("email.php", $("#contact_form").serialize(), function(response) { if (response === "sent") { $("#submit").hide(); $("#send_message").hide(); $("#mail_success").fadeIn(500); } else { $("#mail_fail").fadeIn(500); $btn.prop("disabled", false); if (isButton) $btn.text("Send Message >"); else $btn.attr("value", "Submit Form"); newCaptcha(); } }).fail(function() { $("#mail_fail").fadeIn(500); $btn.prop("disabled", false); if (isButton) $btn.text("Send Message >"); else $btn.attr("value", "Submit Form"); newCaptcha(); }); }); });