1/* 2Name: View - Contact 3Written by: Okler Themes - (http://www.okler.net) 4Theme Version: 5.7.2 5*/ 6 7(function($) { 8 9 'use strict'; 10 11 /* 12 Contact Form: Basic 13 */ 14 $('#contactForm').validate({ 15 submitHandler: function(form) { 16 17 var $form = $(form), 18 $messageSuccess = $('#contactSuccess'), 19 $messageError = $('#contactError'), 20 $submitButton = $(this.submitButton), 21 $errorMessage = $('#mailErrorMessage'); 22 23 $submitButton.button('loading'); 24 25 // Ajax Submit 26 $.ajax({ 27 type: 'POST', 28 url: $form.attr('action'), 29 data: { 30 name: $form.find('#name').val(), 31 email: $form.find('#email').val(), 32 subject: $form.find('#subject').val(), 33 message: $form.find('#message').val() 34 } 35 }).always(function(data, textStatus, jqXHR) { 36 37 $errorMessage.empty().hide(); 38 39 if (data.response == 'success') { 40 41 $messageSuccess.removeClass('hidden'); 42 $messageError.addClass('hidden'); 43 44 // Reset Form 45 $form.find('.form-control') 46 .val('') 47 .blur() 48 .parent() 49 .removeClass('has-success') 50 .removeClass('has-error') 51 .find('label.error') 52 .remove(); 53 54 if (($messageSuccess.offset().top - 80) < $(window).scrollTop()) { 55 $('html, body').animate({ 56 scrollTop: $messageSuccess.offset().top - 80 57 }, 300); 58 } 59 60 $submitButton.button('reset'); 61 62 return; 63 64 } else if (data.response == 'error' && typeof data.errorMessage !== 'undefined') { 65 $errorMessage.html(data.errorMessage).show(); 66 } else { 67 $errorMessage.html(data.responseText).show(); 68 } 69 70 $messageError.removeClass('hidden'); 71 $messageSuccess.addClass('hidden'); 72 73 if (($messageError.offset().top - 80) < $(window).scrollTop()) { 74 $('html, body').animate({ 75 scrollTop: $messageError.offset().top - 80 76 }, 300); 77 } 78 79 $form.find('.has-success') 80 .removeClass('has-success'); 81 82 $submitButton.button('reset'); 83 84 }); 85 } 86 }); 87 88 /* 89 Contact Form: Advanced 90 */ 91 $('#contactFormAdvanced').validate({ 92 onkeyup: false, 93 onclick: false, 94 onfocusout: false, 95 rules: { 96 'captcha': { 97 captcha: true 98 }, 99 'checkboxes[]': { 100 required: true 101 }, 102 'radios': { 103 required: true 104 } 105 }, 106 errorPlacement: function(error, element) { 107 if (element.attr('type') == 'radio' || element.attr('type') == 'checkbox') { 108 error.appendTo(element.parent().parent()); 109 } else { 110 error.insertAfter(element); 111 } 112 } 113 }); 114 115}).apply(this, [jQuery]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.