1$(function(){ 2 3 var $modalForms = $(".webformModal"); 4 5 var sendWebForm = function(event, data){ 6 7 var formData = new FormData(this); 8 var requiredErrorPosition = false; 9 var requiredError = false; 10 11 var $thisForm = $(this).addClass("loading"); 12 var $parentThis = $thisForm.parents(".webFormDwModal"); 13 var $thisFormFields = $thisForm.find(".webFormItemField"); 14 var $thisFormErrors = $thisForm.find(".webFormItemError"); 15 var $submitButton = $thisForm.find('input[type="submit"]').addClass("loading"); 16 var $webFormError = $thisForm.find(".webFormError"); 17 var $webFormCaptchaSid = $thisForm.find(".webFormCaptchaSid"); 18 var $webFormCaptchaImage = $thisForm.find(".webFormCaptchaImage"); 19 20 var formId = $parentThis.data("id"); 21 22 $thisFormFields.each(function(i, nextField){ 23 24 var $nextField = $(nextField); 25 if($nextField.data("required") == "Y"){ 26 var $nextFieldEx = $nextField.find('input[type="text"], input[type="password"], input[type="file"], select, textarea'); 27 if($nextFieldEx.attr("name")){ 28 if(!$nextFieldEx.val() || $nextFieldEx.val().length == 0){ 29 $nextFieldEx.addClass("error"); 30 if(!requiredError){ 31 requiredErrorPosition = $nextFieldEx.offset().top; 32 requiredError = true; 33 } 34 } 35 } 36 37 } 38 }); 39 40 var $personalInfo = $thisForm.find(".personalInfoField"); 41 if(!$personalInfo.prop("checked")){ 42 $personalInfo.addClass("error"); 43 requiredError = true; 44 } 45 46 if(requiredError == false){ 47 $.ajax({
48 url: webFormAjaxDir + "?FORM_ID=" + formId + "&SITE_ID=" + webFormSiteId, 49 data: formData, 50 cache: false, 51 contentType: false, 52 processData: false, 53 enctype: "multipart/form-data", 54 type: "POST" , 55 dataType: "json", 56 success: function(response){ 57 58 //remove error labels 59 $thisFormErrors.empty().removeClass("visible"); 60 $webFormError.empty().removeClass("visible"); 61 62 if(response["SUCCESS"] != "Y"){ 63 64 //set errors 65 $.each(response["ERROR"], function(nextId, nextValue){ 66 var $errorItemContainer = $("#WEB_FORM_ITEM_" + nextId); 67 if(nextId != 0 && $errorItemContainer){ 68 $errorItemContainer.find(".webFormItemError").html(nextValue).addClass("visible"); 69 }else{ 70 $webFormError.append(nextValue).addClass("visible"); 71 } 72 }); 73 74 // reload captcha 75 if(response["CAPTCHA"]){ 76 $webFormCaptchaSid.val(response["CAPTCHA"]["CODE"]); 77 $webFormCaptchaImage.attr("src", response["CAPTCHA"]["PICTURE"]); 78 } 79 80 }else{ 81 $("#webFormMessage_" + formId).css({ 82 display: "block" 83 }); 84 $(".webformModal").removeClass("visible"); 85 $thisForm[0].reset(); 86 } 87 88 //remove loader 89 $thisForm.removeClass("loading"); 90 $submitButton.removeClass("loading"); 91 92 } 93 94 }); 95 }else{ 96 97 // if(requiredErrorPosition){ 98 // $("html, body").animate({ 99 // "scrollTop": requiredErrorPosition - $(window).height() / 2 100 // }, 250); 101 // } 102 103 $thisForm.removeClass("loading"); 104 $submitButton.removeClass("loading"); 105 } 106 107 return event.preventDefault(); 108 109 } 110 111 var removeErrors = function(event){ 112 $(this).removeClass("error"); 113 }; 114 115 var webFormExit = function(event){ 116 $(".webFormMessage").hide(); 117 return event.preventDefault(); 118 } 119 120 var openWebFormModal = function(event){ 121 122 var $thisForm = $("#webFormDwModal_" + $(this).data("id")); 123 var $thisFormCn = $thisForm.find(".webformModalContainer"); 124 125 $thisForm.addClass("visible"); 126 127 if($thisFormCn.height() < $(window).height()){ 128 $thisForm.addClass("small"); 129 } 130 131 return event.preventDefault(); 132 133 } 134 135 var closeWebFormModal = function(event){ 136 $(this).parents(".webformModal").removeClass("visible"); 137 return event.preventDefault(); 138 }; 139 140 var checkFormsHeight = function(event){ 141 142 //get window height now 143 var windowHeightNow = $(this).height(); 144 145 //get web forms 146 $modalForms.each(function(i, nextForm){ 147 148 //vars 149 var $nextForm = $(nextForm); 150 var $nextFormCn = $nextForm.find(".webformModalContainer"); 151 152 //class change 153 if($nextFormCn.height() < windowHeightNow){ 154 $nextForm.addClass("small"); 155 }else{ 156 $nextForm.removeClass("small"); 157 } 158 159 }); 160 } 161 162 $(document).on("focus", ".webFormItemField input, .webFormItemField select, .webFormItemField textarea", removeErrors); 163 $(document).on("click", ".webFormModalHeadingExit", closeWebFormModal); 164 $(document).on("click", ".openWebFormModal", openWebFormModal); 165 $(document).on("click", ".webFormMessageExit", webFormExit); 166 $(document).on("submit", ".webFormDwModal form", sendWebForm); 167 168 if($modalForms.length > 0){ 169 $(window).on("resize", checkFormsHeight); 170 } 171 172});
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.