var frmFrontForm; function frmFrontFormJS(){var action="";var jsErrors=[];function maybeAddPolyfills(){if(!Element.prototype.matches)Element.prototype.matches=Element.prototype.msMatchesSelector;if(!Element.prototype.closest)Element.prototype.closest=function(s){var el=this;do{if(el.matches(s))return el;el=el.parentElement||el.parentNode}while(el!==null&&el.nodeType===1);return null};if(window.NodeList&&!NodeList.prototype.forEach)NodeList.prototype.forEach=function(callback,thisArg){thisArg=thisArg||window;for(var i= 0;i0)for(key in errors)addFieldError($fieldCont,key,errors)}function checkRequiredField(field,errors){var checkGroup,tempVal,i,placeholder,val="",fieldID="",fileID=field.getAttribute("data-frmfile");if(field.type==="hidden"&&fileID===null&&!isAppointmentField(field)&&!isInlineDatepickerField(field))return errors;if(field.type==="checkbox"||field.type=== "radio"){checkGroup=jQuery('input[name="'+field.name+'"]').closest(".frm_required_field").find("input:checked");jQuery(checkGroup).each(function(){val=this.value})}else if(field.type==="file"||fileID){if(typeof fileID==="undefined"){fileID=getFieldId(field,true);fileID=fileID.replace("file","")}if(typeof errors[fileID]==="undefined")val=getFileVals(fileID);fieldID=fileID}else{if(hasClass(field,"frm_pos_none"))return errors;val=jQuery(field).val();if(val===null)val="";else if(typeof val!=="string"){tempVal= val;val="";for(i=0;i()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/i;if(""!==field.value&&pattern.test(field.value)===false)errors[fieldID]=getFieldValidationMessage(field,"data-invmsg");confirmField(field,errors); return errors}function checkPasswordField(field,errors){confirmField(field,errors);return errors}function confirmField(field,errors){var value,confirmValue,firstField,fieldID=getFieldId(field,true),strippedId=field.id.replace("conf_",""),strippedFieldID=fieldID.replace("conf_",""),confirmField=document.getElementById(strippedId.replace("field_","field_conf_"));if(confirmField===null||typeof errors["conf_"+strippedFieldID]!=="undefined")return;if(fieldID!==strippedFieldID){firstField=document.getElementById(strippedId); value=firstField.value;confirmValue=confirmField.value;if(""!==value&&""!==confirmValue&&value!==confirmValue)errors["conf_"+strippedFieldID]=getFieldValidationMessage(confirmField,"data-confmsg")}else validateField(confirmField)}function checkNumberField(field,errors){var fieldID,number=field.value;if(number!==""&&isNaN(number/1)!==false){fieldID=getFieldId(field,true);if(!(fieldID in errors))errors[fieldID]=getFieldValidationMessage(field,"data-invmsg")}return errors}function checkPatternField(field, errors){var fieldID,text=field.value,format=getFieldValidationMessage(field,"pattern");if(format!==""&&text!==""){fieldID=getFieldId(field,true);if(!(fieldID in errors)){format=new RegExp("^"+format+"$","i");if(format.test(text)===false)errors[fieldID]=getFieldValidationMessage(field,"data-invmsg")}}return errors}function hasInvisibleRecaptcha(object){var recaptcha,recaptchaID,alreadyChecked;if(isGoingToPrevPage(object))return false;recaptcha=jQuery(object).find('.frm-g-recaptcha[data-size="invisible"], .g-recaptcha[data-size="invisible"]'); if(recaptcha.length){recaptchaID=recaptcha.data("rid");alreadyChecked=grecaptcha.getResponse(recaptchaID);if(alreadyChecked.length===0)return recaptcha;else return false}else return false}function executeInvisibleRecaptcha(invisibleRecaptcha){var recaptchaID=invisibleRecaptcha.data("rid");grecaptcha.reset(recaptchaID);grecaptcha.execute(recaptchaID)}function validateRecaptcha(form,errors){var recaptchaID,response,fieldContainer,fieldID,$recaptcha=jQuery(form).find(".frm-g-recaptcha");if($recaptcha.length){recaptchaID= $recaptcha.data("rid");try{response=grecaptcha.getResponse(recaptchaID)}catch(e){if(jQuery(form).find('input[name="recaptcha_checked"]').length)return errors;else response=""}if(response.length===0){fieldContainer=$recaptcha.closest(".frm_form_field");fieldID=fieldContainer.attr("id").replace("frm_field_","").replace("_container","");errors[fieldID]=""}}return errors}function getFieldValidationMessage(field,messageType){var msg,errorHtml;msg=field.getAttribute(messageType);if(null===msg)msg="";if(""!== msg&&shouldWrapErrorHtmlAroundMessageType(messageType)){errorHtml=field.getAttribute("data-error-html");if(null!==errorHtml){errorHtml=errorHtml.replace(/\+/g,"%20");msg=decodeURIComponent(errorHtml).replace("[error]",msg);msg=msg.replace("[key]",getFieldId(field,false))}}return msg}function shouldWrapErrorHtmlAroundMessageType(type){return"pattern"!==type}function shouldJSValidate(object){var validate=jQuery(object).hasClass("frm_js_validate");if(validate&&typeof frmProForm!=="undefined"&&(frmProForm.savingDraft(object)|| frmProForm.goingToPreviousPage(object)))validate=false;return validate}function getFormErrors(object,action){var fieldset,data,success,error;if(typeof action==="undefined")jQuery(object).find('input[name="frm_action"]').val();fieldset=jQuery(object).find(".frm_form_field");fieldset.addClass("frm_doing_ajax");data=jQuery(object).serialize()+"&action=frm_entries_"+action+"&nonce="+frm_js.nonce;success=function(response){var formID,replaceContent,pageOrder,formReturned,contSubmit,delay,$fieldCont,key, inCollapsedSection,frmTrigger,defaultResponse={"content":"","errors":{},"pass":false};if(response===null)response=defaultResponse;response=response.replace(/^\s+|\s+$/g,"");if(response.indexOf("{")===0)response=JSON.parse(response);else response=defaultResponse;if(typeof response.redirect!=="undefined"){jQuery(document).trigger("frmBeforeFormRedirect",[object,response]);window.location=response.redirect}else if(response.content!==""){removeSubmitLoading(jQuery(object));if(frm_js.offset!=-1)frmFrontForm.scrollMsg(jQuery(object), false);formID=jQuery(object).find('input[name="form_id"]').val();response.content=response.content.replace(/ frm_pro_form /g," frm_pro_form frm_no_hide ");replaceContent=jQuery(object).closest(".frm_forms");removeAddedScripts(replaceContent,formID);delay=maybeSlideOut(replaceContent,response.content);setTimeout(function(){var container,input,previousInput;replaceContent.replaceWith(response.content);addUrlParam(response);if(typeof frmThemeOverride_frmAfterSubmit==="function"){pageOrder=jQuery('input[name="frm_page_order_'+ formID+'"]').val();formReturned=jQuery(response.content).find('input[name="form_id"]').val();frmThemeOverride_frmAfterSubmit(formReturned,pageOrder,response.content,object)}if(typeof response.recaptcha!=="undefined"){container=jQuery("#frm_form_"+formID+"_container").find(".frm_fields_container");input='';previousInput=container.find('input[name="recaptcha_checked"]');if(previousInput.length)previousInput.replaceWith(input); else container.append(input)}afterFormSubmitted(object,response)},delay)}else if(Object.keys(response.errors).length){removeSubmitLoading(jQuery(object),"enable");contSubmit=true;removeAllErrors();$fieldCont=null;for(key in response.errors){$fieldCont=jQuery(object).find("#frm_field_"+key+"_container");if($fieldCont.length){if(!$fieldCont.is(":visible")){inCollapsedSection=$fieldCont.closest(".frm_toggle_container");if(inCollapsedSection.length){frmTrigger=inCollapsedSection.prev();if(!frmTrigger.hasClass("frm_trigger"))frmTrigger= frmTrigger.prev(".frm_trigger");frmTrigger.trigger("click")}}if($fieldCont.is(":visible")){addFieldError($fieldCont,key,response.errors);contSubmit=false}}}jQuery(object).find(".frm-g-recaptcha, .g-recaptcha").each(function(){var $recaptcha=jQuery(this),recaptchaID=$recaptcha.data("rid");if(typeof grecaptcha!=="undefined"&&grecaptcha)if(recaptchaID)grecaptcha.reset(recaptchaID);else grecaptcha.reset()});jQuery(document).trigger("frmFormErrors",[object,response]);fieldset.removeClass("frm_doing_ajax"); scrollToFirstField(object);if(contSubmit)object.submit();else{jQuery(object).prepend(response.error_message);checkForErrorsAndMaybeSetFocus()}}else{showFileLoading(object);object.submit()}};error=function(){jQuery(object).find('input[type="submit"], input[type="button"]').prop("disabled",false);object.submit()};postToAjaxUrl(object,data,success,error)}function postToAjaxUrl(form,data,success,error){var ajaxUrl,action,ajaxParams;ajaxUrl=frm_js.ajax_url;action=form.getAttribute("action");if("string"=== typeof action&&-1!==action.indexOf("?action=frm_forms_preview"))ajaxUrl=action.split("?action=frm_forms_preview")[0];ajaxParams={type:"POST",url:ajaxUrl,data:data,success:success};if("function"===typeof error)ajaxParams.error=error;jQuery.ajax(ajaxParams)}function afterFormSubmitted(object,response){var formCompleted=jQuery(response.content).find(".frm_message");if(formCompleted.length)jQuery(document).trigger("frmFormComplete",[object,response]);else jQuery(document).trigger("frmPageChanged",[object, response])}function removeAddedScripts(formContainer,formID){var endReplace=jQuery(".frm_end_ajax_"+formID);if(endReplace.length){formContainer.nextUntil(".frm_end_ajax_"+formID).remove();endReplace.remove()}}function maybeSlideOut(oldContent,newContent){var c,newClass="frm_slideout";if(newContent.indexOf(" frm_slide")!==-1){c=oldContent.children();if(newContent.indexOf(" frm_going_back")!==-1)newClass+=" frm_going_back";c.removeClass("frm_going_back");c.addClass(newClass);return 300}return 0}function addUrlParam(response){var url; if(history.pushState&&typeof response.page!=="undefined"){url=addQueryVar("frm_page",response.page);window.history.pushState({"html":response.html},"","?"+url)}}function addQueryVar(key,value){var kvp,i,x;key=encodeURI(key);value=encodeURI(value);kvp=document.location.search.substr(1).split("&");i=kvp.length;while(i--){x=kvp[i].split("=");if(x[0]==key){x[1]=value;kvp[i]=x.join("=");break}}if(i<0)kvp[kvp.length]=[key,value].join("=");return kvp.join("&")}function addFieldError($fieldCont,key,jsErrors){var input, id,describedBy,roleString;if($fieldCont.length&&$fieldCont.is(":visible")){$fieldCont.addClass("frm_blank_field");input=$fieldCont.find("input, select, textarea");id="frm_error_field_"+key;describedBy=input.attr("aria-describedby");if(typeof frmThemeOverride_frmPlaceError==="function")frmThemeOverride_frmPlaceError(key,jsErrors);else{if(-1!==jsErrors[key].indexOf("'+jsErrors[key]+"")}if(typeof describedBy==="undefined")describedBy=id;else if(describedBy.indexOf(id)===-1&&describedBy.indexOf("frm_error_field_")===-1)if(input.data("error-first")===0)describedBy=describedBy+" "+id;else describedBy=id+" "+describedBy;input.attr("aria-describedby",describedBy)}input.attr("aria-invalid",true);jQuery(document).trigger("frmAddFieldError",[$fieldCont,key,jsErrors])}}function removeFieldError($fieldCont){var errorMessage=$fieldCont.find(".frm_error"), errorId=errorMessage.attr("id"),input=$fieldCont.find("input, select, textarea"),describedBy=input.attr("aria-describedby");$fieldCont.removeClass("frm_blank_field has-error");errorMessage.remove();input.attr("aria-invalid",false);input.removeAttr("aria-describedby");if(typeof describedBy!=="undefined"){describedBy=describedBy.replace(errorId,"");input.attr("aria-describedby",describedBy)}}function removeAllErrors(){jQuery(".form-field").removeClass("frm_blank_field has-error");jQuery(".form-field .frm_error").replaceWith(""); jQuery(".frm_error_style").remove()}function scrollToFirstField(object){var field=jQuery(object).find(".frm_blank_field").first();if(field.length)frmFrontForm.scrollMsg(field,object,true)}function showSubmitLoading($object){showLoadingIndicator($object);disableSubmitButton($object);disableSaveDraft($object)}function showLoadingIndicator($object){if(!$object.hasClass("frm_loading_form")&&!$object.hasClass("frm_loading_prev")){addLoadingClass($object);$object.trigger("frmStartFormLoading")}}function addLoadingClass($object){var loadingClass= isGoingToPrevPage($object)?"frm_loading_prev":"frm_loading_form";$object.addClass(loadingClass)}function isGoingToPrevPage($object){return typeof frmProForm!=="undefined"&&frmProForm.goingToPreviousPage($object)}function removeSubmitLoading($object,enable,processesRunning){var loadingForm;if(processesRunning>0)return;loadingForm=jQuery(".frm_loading_form");loadingForm.removeClass("frm_loading_form");loadingForm.removeClass("frm_loading_prev");loadingForm.trigger("frmEndFormLoading");if(enable==="enable"){enableSubmitButton(loadingForm); enableSaveDraft(loadingForm)}}function showFileLoading(object){var fileval,loading=document.getElementById("frm_loading");if(loading!==null){fileval=jQuery(object).find("input[type=file]").val();if(typeof fileval!=="undefined"&&fileval!=="")setTimeout(function(){jQuery(loading).fadeIn("slow")},2E3)}}function clearDefault(){toggleDefault(jQuery(this),"clear")}function replaceDefault(){toggleDefault(jQuery(this),"replace")}function toggleDefault($thisField,e){var thisVal,v=$thisField.data("frmval").replace(/(\n|\r\n)/g, "\r");if(v===""||typeof v==="undefined")return false;thisVal=$thisField.val().replace(/(\n|\r\n)/g,"\r");if("replace"===e){if(thisVal==="")$thisField.addClass("frm_default").val(v)}else if(thisVal==v)$thisField.removeClass("frm_default").val("")}function resendEmail(){var $link=jQuery(this),entryId=this.getAttribute("data-eid"),formId=this.getAttribute("data-fid"),label=$link.find(".frm_link_label");if(label.length<1)label=$link;label.append('');jQuery.ajax({type:"POST", url:frm_js.ajax_url,data:{action:"frm_entries_send_email",entry_id:entryId,form_id:formId,nonce:frm_js.nonce},success:function(msg){var admin=document.getElementById("wpbody");if(admin===null)label.html(msg);else{label.html("");$link.after(msg)}}});return false}function confirmClick(){var message=jQuery(this).data("frmconfirm");return confirm(message)}function toggleDiv(){var div=jQuery(this).data("frmtoggle");if(jQuery(div).is(":visible"))jQuery(div).slideUp("fast");else jQuery(div).slideDown("fast"); return false}function addIndexOfFallbackForIE8(){var len,from;if(!Array.prototype.indexOf)Array.prototype.indexOf=function(elt){len=this.length>>>0;from=Number(arguments[1])||0;from=from<0?Math.ceil(from):Math.floor(from);if(from<0)from+=len;for(;from>>0;if(typeof fun!=="function")throw new TypeError;res=[];thisp=arguments[1];for(i=0;i-1||navigator.userAgent.indexOf("Trident")>-1}function documentOn(event,selector,handler,options){if("undefined"===typeof options)options=false;document.addEventListener(event,function(e){var target; for(target=e.target;target&&target!=this;target=target.parentNode)if(target.matches(selector)){handler.call(target,e);break}},options)}function initFloatingLabels(){var checkFloatLabel,checkDropdownLabel,checkPlaceholderIE,runOnLoad,selector,floatClass;selector=".frm-show-form .frm_inside_container input, .frm-show-form .frm_inside_container select, .frm-show-form .frm_inside_container textarea";floatClass="frm_label_float_top";checkFloatLabel=function(input){var container,shouldFloatTop,firstOpt; container=input.closest(".frm_inside_container");if(!container)return;shouldFloatTop=input.value||document.activeElement===input;container.classList.toggle(floatClass,shouldFloatTop);if("SELECT"===input.tagName){firstOpt=input.querySelector("option:first-child");if(shouldFloatTop){if(firstOpt.hasAttribute("data-label")){firstOpt.textContent=firstOpt.getAttribute("data-label");firstOpt.removeAttribute("data-label")}}else if(firstOpt.textContent){firstOpt.setAttribute("data-label",firstOpt.textContent); firstOpt.textContent=""}}else if(isIE())checkPlaceholderIE(input)};checkDropdownLabel=function(){document.querySelectorAll(".frm-show-form .frm_inside_container:not(."+floatClass+") select").forEach(function(input){var firstOpt=input.querySelector("option:first-child");if(firstOpt.textContent){firstOpt.setAttribute("data-label",firstOpt.textContent);firstOpt.textContent=""}})};checkPlaceholderIE=function(input){if(input.value)return;if(document.activeElement===input){if(input.hasAttribute("data-placeholder")){input.placeholder= input.getAttribute("data-placeholder");input.removeAttribute("data-placeholder")}}else if(input.placeholder){input.setAttribute("data-placeholder",input.placeholder);input.placeholder=""}};["focus","blur","change"].forEach(function(eventName){documentOn(eventName,selector,function(event){checkFloatLabel(event.target)},true)});jQuery(document).on("change",selector,function(event){checkFloatLabel(event.target)});runOnLoad=function(firstLoad){if(firstLoad&&document.activeElement&&-1!==["INPUT","SELECT", "TEXTAREA"].indexOf(document.activeElement.tagName))checkFloatLabel(document.activeElement);else if(firstLoad)document.querySelectorAll(".frm_inside_container").forEach(function(container){var input=container.querySelector("input, select, textarea");if(input&&""!==input.value)checkFloatLabel(input)});checkDropdownLabel();if(isIE())document.querySelectorAll(selector).forEach(function(input){checkPlaceholderIE(input)})};runOnLoad(true);jQuery(document).on("frmPageChanged",function(event){runOnLoad()}); document.addEventListener("frm_after_start_over",function(event){runOnLoad()})}return{init:function(){maybeAddPolyfills();jQuery(document).off("submit.formidable",".frm-show-form");jQuery(document).on("submit.formidable",".frm-show-form",frmFrontForm.submitForm);jQuery(".frm-show-form input[onblur], .frm-show-form textarea[onblur]").each(function(){if(jQuery(this).val()==="")jQuery(this).trigger("blur")});jQuery(document).on("focus",".frm_toggle_default",clearDefault);jQuery(document).on("blur",".frm_toggle_default", replaceDefault);jQuery(".frm_toggle_default").trigger("blur");jQuery(document.getElementById("frm_resend_email")).on("click",resendEmail);jQuery(document).on("change",'.frm-show-form input[name^="item_meta"], .frm-show-form select[name^="item_meta"], .frm-show-form textarea[name^="item_meta"]',frmFrontForm.fieldValueChanged);jQuery(document).on("change","[id^=frm_email_]",onHoneypotFieldChange);jQuery(document).on("click","a[data-frmconfirm]",confirmClick);jQuery("a[data-frmtoggle]").on("click",toggleDiv); checkForErrorsAndMaybeSetFocus();changeFocusWhenClickComboFieldLabel();addIndexOfFallbackForIE8();addTrimFallbackForIE8();addFilterFallbackForIE8();addKeysFallbackForIE8();initFloatingLabels()},getFieldId:function(field,fullID){return getFieldId(field,fullID)},renderRecaptcha:function(captcha){var formID,recaptchaID,size=captcha.getAttribute("data-size"),rendered=captcha.getAttribute("data-rid")!==null,params={"sitekey":captcha.getAttribute("data-sitekey"),"size":size,"theme":captcha.getAttribute("data-theme")}; if(rendered)return;if(size==="invisible"){formID=jQuery(captcha).closest("form").find('input[name="form_id"]').val();jQuery(captcha).closest(".frm_form_field .frm_primary_label").hide();params.callback=function(token){frmFrontForm.afterRecaptcha(token,formID)}}recaptchaID=grecaptcha.render(captcha.id,params);captcha.setAttribute("data-rid",recaptchaID)},afterSingleRecaptcha:function(){var object=jQuery(".frm-show-form .g-recaptcha").closest("form")[0];frmFrontForm.submitFormNow(object)},afterRecaptcha:function(token, formID){var object=jQuery("#frm_form_"+formID+"_container form")[0];frmFrontForm.submitFormNow(object)},submitForm:function(e){frmFrontForm.submitFormManual(e,this)},submitFormManual:function(e,object){var isPro,errors,invisibleRecaptcha=hasInvisibleRecaptcha(object),classList=object.className.trim().split(/\s+/gi);if(classList&&invisibleRecaptcha.length<1){isPro=classList.indexOf("frm_pro_form")>-1;if(!isPro)return}if(jQuery("body").hasClass("wp-admin")&&jQuery(object).closest(".frmapi-form").length< 1)return;e.preventDefault();if(typeof frmProForm!=="undefined"&&typeof frmProForm.submitAllowed==="function")if(!frmProForm.submitAllowed(object))return;if(invisibleRecaptcha.length){showLoadingIndicator(jQuery(object));executeInvisibleRecaptcha(invisibleRecaptcha)}else{errors=frmFrontForm.validateFormSubmit(object);if(Object.keys(errors).length===0){showSubmitLoading(jQuery(object));frmFrontForm.submitFormNow(object,classList)}}},submitFormNow:function(object){var hasFileFields,antispamInput,classList= object.className.trim().split(/\s+/gi);if(object.hasAttribute("data-token")&&null===object.querySelector('[name="antispam_token"]')){antispamInput=document.createElement("input");antispamInput.type="hidden";antispamInput.name="antispam_token";antispamInput.value=object.getAttribute("data-token");object.appendChild(antispamInput)}if(classList.indexOf("frm_ajax_submit")>-1){hasFileFields=jQuery(object).find('input[type="file"]').filter(function(){return!!this.value}).length;if(hasFileFields<1){action= jQuery(object).find('input[name="frm_action"]').val();frmFrontForm.checkFormErrors(object,action)}else object.submit()}else object.submit()},validateFormSubmit:function(object){if(typeof tinyMCE!=="undefined"&&jQuery(object).find(".wp-editor-wrap").length)tinyMCE.triggerSave();jsErrors=[];if(shouldJSValidate(object)){frmFrontForm.getAjaxFormErrors(object);if(Object.keys(jsErrors).length)frmFrontForm.addAjaxFormErrors(object)}return jsErrors},getAjaxFormErrors:function(object){var customErrors,key; jsErrors=validateForm(object);if(typeof frmThemeOverride_jsErrors==="function"){action=jQuery(object).find('input[name="frm_action"]').val();customErrors=frmThemeOverride_jsErrors(action,object);if(Object.keys(customErrors).length)for(key in customErrors)jsErrors[key]=customErrors[key]}return jsErrors},addAjaxFormErrors:function(object){var key,$fieldCont;removeAllErrors();for(key in jsErrors){$fieldCont=jQuery(object).find("#frm_field_"+key+"_container");if($fieldCont.length)addFieldError($fieldCont, key,jsErrors);else delete jsErrors[key]}scrollToFirstField(object);checkForErrorsAndMaybeSetFocus()},checkFormErrors:function(object,action){getFormErrors(object,action)},checkRequiredField:function(field,errors){return checkRequiredField(field,errors)},showSubmitLoading:function($object){showSubmitLoading($object)},removeSubmitLoading:function($object,enable,processesRunning){removeSubmitLoading($object,enable,processesRunning)},scrollToID:function(id){var object=jQuery(document.getElementById(id)); frmFrontForm.scrollMsg(object,false)},scrollMsg:function(id,object,animate){var newPos,m,b,screenTop,screenBottom,scrollObj="";if(typeof object==="undefined"){scrollObj=jQuery(document.getElementById("frm_form_"+id+"_container"));if(scrollObj.length<1)return}else if(typeof id==="string")scrollObj=jQuery(object).find("#frm_field_"+id+"_container");else scrollObj=id;jQuery(scrollObj).trigger("focus");newPos=scrollObj.offset().top;if(!newPos||frm_js.offset==="-1")return;newPos=newPos-frm_js.offset;m= jQuery("html").css("margin-top");b=jQuery("body").css("margin-top");if(m||b)newPos=newPos-parseInt(m)-parseInt(b);if(newPos&&window.innerHeight){screenTop=document.documentElement.scrollTop||document.body.scrollTop;screenBottom=screenTop+window.innerHeight;if(newPos>screenBottom||newPos/g,">").replace(/"/g,""").replace(/'/g,"'")},invisible:function(classes){jQuery(classes).css("visibility","hidden")},visible:function(classes){jQuery(classes).css("visibility","visible")}}}frmFrontForm=frmFrontFormJS();jQuery(document).ready(function(){frmFrontForm.init()}); function frmRecaptcha(){var c,cl,captchas=jQuery(".frm-g-recaptcha");for(c=0,cl=captchas.length;c');jQuery.ajax({type:"POST",url:frm_js.ajax_url,data:{action:"frm_entries_update_field_ajax",entry_id:entryId,field_id:fieldId,value:value,nonce:frm_js.nonce},success:function(){if(message.replace(/^\s+|\s+$/g,"")==="")jQuery(document.getElementById("frm_update_field_"+entryId+"_"+fieldId+"_"+num)).fadeOut("slow");else jQuery(document.getElementById("frm_update_field_"+ entryId+"_"+fieldId+"_"+num)).replaceWith(message)}})} function frmDeleteEntry(entryId,prefix){console.warn("DEPRECATED: function frmDeleteEntry in v2.0.13 use frmFrontForm.deleteEntry");jQuery(document.getElementById("frm_delete_"+entryId)).replaceWith('');jQuery.ajax({type:"POST",url:frm_js.ajax_url,data:{action:"frm_entries_destroy",entry:entryId,nonce:frm_js.nonce},success:function(html){if(html.replace(/^\s+|\s+$/g,"")==="success")jQuery(document.getElementById(prefix+entryId)).fadeOut("slow"); else jQuery(document.getElementById("frm_delete_"+entryId)).replaceWith(html)}})}function frmOnSubmit(e){console.warn("DEPRECATED: function frmOnSubmit in v2.0 use frmFrontForm.submitForm");frmFrontForm.submitForm(e,this)} function frm_resend_email(entryId,formId){var $link=jQuery(document.getElementById("frm_resend_email"));console.warn("DEPRECATED: function frm_resend_email in v2.0");$link.append('');jQuery.ajax({type:"POST",url:frm_js.ajax_url,data:{action:"frm_entries_send_email",entry_id:entryId,form_id:formId,nonce:frm_js.nonce},success:function(msg){$link.replaceWith(msg)}})}; function frmProFormJS(){var currentlyAddingRow=false;var action="";var processesRunning=0;var lookupQueues={};var hiddenSubmitButtons=[];var pendingDynamicFieldAjax=[];function setNextPage(e){var $thisObj=jQuery(this);var thisType=$thisObj.attr("type");if(thisType!=="submit")e.preventDefault();var f=$thisObj.parents("form").first(),v="",d="",thisName=this.name;if(thisName==="frm_prev_page"||this.className.indexOf("frm_prev_page")!==-1)v=jQuery(f).find(".frm_next_page").attr("id").replace("frm_next_p_", "");else if(thisName==="frm_save_draft"||this.className.indexOf("frm_save_draft")!==-1)d=1;else if(this.className.indexOf("frm_page_skip")!==-1){var goingTo=$thisObj.data("page");var formId=jQuery(f).find('input[name="form_id"]').val();var orderField=jQuery(f).find('input[name="frm_page_order_'+formId+'"]');jQuery(f).append('');if(goingTo==="")orderField.remove();else orderField.val(goingTo)}else if(this.className.indexOf("frm_page_back")!== -1)v=$thisObj.data("page");if(1===d)resetTinyMceOnDraftSave();else resetTinyMceOnPageTurn();jQuery(".frm_next_page").val(v);jQuery(".frm_saving_draft").val(d);if(thisType!=="submit")f.trigger("submit")}function resetTinyMceOnDraftSave(){jQuery(document).one("frmFormComplete",function(){jQuery(".wp-editor-area").each(function(){var isVisible="undefined"!==typeof tinyMCE.editors[this.id]&&!tinyMCE.editors[this.id].isHidden();if(isVisible){removeRichText(this.id);initRichText(this.id)}})})}function resetTinyMceOnPageTurn(){var removeIds= [];jQuery(".frm_form_field .wp-editor-area").each(function(){removeIds.push(this.id)});jQuery(document).one("frmPageChanged",function(){var removeIndex,removeId;for(removeIndex=0;removeIndex0)max=max-uploadedCount}form=field.closest("form");uploadField=uploadFields[i];field.dropzone({url:getAjaxUrl(form.get(0)), headers:{"Frm-Dropzone":1},addRemoveLinks:false,paramName:field.attr("id").replace("_dropzone",""),maxFilesize:uploadField.maxFilesize,maxFiles:max,uploadMultiple:uploadField.uploadMultiple,hiddenInputContainer:field.parent()[0],dictDefaultMessage:uploadField.defaultMessage,dictFallbackMessage:uploadField.fallbackMessage,dictFallbackText:uploadField.fallbackText,dictFileTooBig:uploadField.fileTooBig,dictInvalidFileType:uploadField.invalidFileType,dictResponseError:uploadField.responseError,dictCancelUpload:uploadField.cancel, dictCancelUploadConfirmation:uploadField.cancelConfirm,dictRemoveFile:uploadField.remove,dictMaxFilesExceeded:uploadField.maxFilesExceeded,resizeMethod:"contain",resizeWidth:uploadField.resizeWidth,resizeHeight:uploadField.resizeHeight,thumbnailWidth:60,thumbnailHeight:60,timeout:uploadField.timeout,previewTemplate:filePreviewHTML(uploadField),acceptedFiles:uploadField.acceptedFiles,fallback:function(){jQuery(this.element).closest("form").removeClass("frm_ajax_submit")},init:function(){var hidden, mockFileIndex,mockFileData,mockFile;hidden=field.parent().find(".dz-hidden-input");if(typeof hidden.attr("id")==="undefined")hidden.attr("id",uploadFields[i].label);this.on("sending",function(file,xhr,formData){if(!anyPrecedingRequiredFieldsCompleted(uploadFields[i],selector)){this.removeFile(file);alert(frm_js.empty_fields);return false}else if(isSpam(uploadFields[i].parentFormID,uploadField.checkHoneypot)){this.removeFile(file);alert(frm_js.file_spam);return false}else{formData.append("action", "frm_submit_dropzone");formData.append("field_id",uploadFields[i].fieldID);formData.append("form_id",uploadFields[i].formID);formData.append("nonce",frm_js.nonce);if(form.get(0).hasAttribute("data-token"))formData.append("antispam_token",form.get(0).getAttribute("data-token"))}});this.on("success",function(file,response){var mediaIDs,m,mediaID;mediaIDs=JSON.parse(response);for(m=0;m'+file.name+"";else node.innerHTML=file.name;if(file.ext){img=file.previewElement.querySelector(".dz-image img"); if(null!==img){thumbnail=maybeGetExtensionThumbnail(file.ext);if(false!==thumbnail)img.setAttribute("src",thumbnail)}}}});this.on("addedfile",function(file){var ext,thumbnail;ext=file.name.split(".").pop();thumbnail=maybeGetExtensionThumbnail(ext);processesRunning++;frmFrontForm.showSubmitLoading(form);if(false!==thumbnail)jQuery(file.previewElement).find(".dz-image img").attr("src",thumbnail);clearErrorsOnUpload(file.previewElement)});function clearErrorsOnUpload(fileElement){var container=fileElement.closest(".frm_form_field"); if(!container)return;container.classList.remove("frm_blank_field","has-error");container.querySelectorAll(".form-field .frm_error, .frm_error_style").forEach(function(error){if(error.parentNode)error.parentNode.removeChild(error)})}this.on("removedfile",function(file){var fileCount=this.files.length;if(this.options.uploadMultiple===false&&fileCount<1)this.enable();if(file.accepted!==false&&uploadFields[i].uploadMultiple!==true)jQuery('input[name="'+fieldName+'"]').val("");if(file.accepted!==false&& typeof file.mediaID!=="undefined"){jQuery(file.previewElement).remove();fileCount=this.files.length;this.options.maxFiles=uploadFields[i].maxFiles-fileCount}});if(typeof uploadFields[i].mockFiles!=="undefined")for(mockFileIndex=0;mockFileIndex\n'+'
\n'+'
\n'+'
\n'+'
\n'+ " "+'
\n'+''+"
\n"+'
\n'+'
\n'+"
\n"+""}function getHiddenUploadHTML(field,mediaID,fieldName){return''}function removeFile(){var fieldName=jQuery(this).data("frm-remove");fadeOut(jQuery(this).closest(".dz-preview"));var singleField=jQuery('input[name="'+fieldName+'"]');if(singleField.length)singleField.val("")}function postToAjaxUrl(form,data,success,error,extraParams){var ajaxParams="object"===typeof extraParams?extraParams:{};ajaxParams.type="POST";ajaxParams.url=getAjaxUrl(form);ajaxParams.data=data;ajaxParams.success=success;if("function"===typeof error)ajaxParams.error= error;jQuery.ajax(ajaxParams)}function getAjaxUrl(form){var ajaxUrl,action;ajaxUrl=frm_js.ajax_url;action=form.getAttribute("action");if("string"===typeof action&&-1!==action.indexOf("?action=frm_forms_preview"))ajaxUrl=action.split("?action=frm_forms_preview")[0];return ajaxUrl}function isSpam(formID,checkHoneypot){if(isHeadless())return true;return checkHoneypot&&isHoneypotSpam(formID)}function isHoneypotSpam(formID){var honeypotField=document.getElementById("frm_email_"+formID);if(honeypotField=== null)honeypotField=document.getElementById("frm_verify_"+formID);return honeypotField!==null&&honeypotField.value!==""}function isHeadless(){return window._phantom||window.callPhantom||window.__phantomas||window.Buffer||window.emit||window.spawn}function anyPrecedingRequiredFieldsCompleted(uploadField,fileSelector){var prevPage,requiredFields,fieldsComplete=true,dropzoneDiv=jQuery(fileSelector),form=dropzoneDiv.closest("form");if(form.length<1)return false;prevPage=form.find('input[name="frm_prev_page"]'); if(prevPage.length)return true;requiredFields=jQuery(form).find(".frm_required_field:visible input, .frm_required_field:visible select, .frm_required_field:visible textarea, "+fileSelector);if(requiredFields.length<1)return true;else{for(var r=0,rl=requiredFields.length;r-1||requiredFields[r].getAttribute("data-frmfile")!==null)continue;if(frmFrontForm.checkRequiredField(requiredFields[r], []).length<1){fieldsComplete=true;break}else fieldsComplete=false}return fieldsComplete}}function showOtherText(){var type=this.type,other=false,select=false;if(type==="select-one"){select=true;var curOpt=this.options[this.selectedIndex];if(typeof curOpt!=="undefined"&&curOpt.className==="frm_other_trigger")other=true}else if(type==="select-multiple"){select=true;var allOpts=this.options;other=false;for(var i=0;i-1)originalEvent="value changed";else originalEvent="other";return originalEvent}function checkFieldsWithConditionalLogicDependentOnThis(fieldId,changedInput){if(typeof __FRMRULES==="undefined"||typeof __FRMRULES[fieldId]==="undefined"||__FRMRULES[fieldId].dependents.length<1||changedInput=== null||typeof changedInput==="undefined")return;var triggerFieldArgs=__FRMRULES[fieldId];var repeatArgs=getRepeatArgsFromFieldName(changedInput[0].name);pendingDynamicFieldAjax=[];for(var i=0,l=triggerFieldArgs.dependents.length;id},"<=":function(c,d){return c>=d},">":function(c,d){return c=":function(c,d){return c<=d},"LIKE":function(c,d){if(!d)return false;c=prepareLogicValueForLikeComparison(c);d=prepareEnteredValueForLikeComparison(c,d);return d.indexOf(c)!=-1},"not LIKE":function(c,d){if(!d)return true; c=prepareLogicValueForLikeComparison(c);d=prepareEnteredValueForLikeComparison(c,d);return d.indexOf(c)==-1}};return theOperators[op](a,b)}function prepareLogicValueForComparison(a){if(String(a).search(/^\s*(\+|-)?((\d+(\.\d+)?)|(\.\d+))\s*$/)!==-1)a=parseFloat(a);else if(typeof a==="string")a=a.trim();return a}function prepareEnteredValueForComparison(a,b){if(typeof b==="undefined"||b===null||b===false)b="";if(Array.isArray(b)&&jQuery.inArray(String(a),b)>-1)b=a;if(typeof a==="number"&&typeof b=== "string")b=parseFloat(b);if(typeof b==="string")b=b.trim();return b}function prepareLogicValueForLikeComparison(val){return prepareValueForLikeComparison(val)}function prepareEnteredValueForLikeComparison(logicValue,enteredValue){enteredValue=prepareValueForLikeComparison(enteredValue);var currentValue="";if(Array.isArray(enteredValue))for(var i=0,l=enteredValue.length;i-1){enteredValue=logicValue;break}}return enteredValue} function prepareValueForLikeComparison(val){if(typeof val==="string")val=val.toLowerCase();else if(typeof val==="number")val=val.toString();return val}function routeToHideOrShowField(depFieldArgs,logicOutcomes){var onCurrentPage,action=getHideOrShowAction(depFieldArgs,logicOutcomes);if(depFieldArgs.fieldType==="submit")onCurrentPage=isSubmitButtonOnPage(depFieldArgs.containerId);else onCurrentPage=isFieldDivOnPage(depFieldArgs.containerId);if(action=="show")if(depFieldArgs.fieldType==="data"&&depFieldArgs.hasOwnProperty("dataLogic"))updateDynamicField(depFieldArgs, onCurrentPage);else showFieldAndSetValue(depFieldArgs,onCurrentPage);else hideFieldAndClearValue(depFieldArgs,onCurrentPage)}function isFieldDivOnPage(containerId){var fieldDiv=document.getElementById(containerId);return fieldDiv!==null}function isSubmitButtonOnPage(container){var submitButton=document.querySelector("#"+container);return submitButton!=null}function getHideOrShowAction(depFieldArgs,logicOutcomes){if(depFieldArgs.anyAll==="any")if(logicOutcomes.indexOf(true)>-1)action=depFieldArgs.showHide; else action=reverseAction(depFieldArgs.showHide);else if(logicOutcomes.indexOf(false)>-1)action=reverseAction(depFieldArgs.showHide);else action=depFieldArgs.showHide;return action}function reverseAction(action){if(action==="show")action="hide";else action="show";return action}function showFieldAndSetValue(depFieldArgs,onCurrentPage){if(isFieldCurrentlyShown(depFieldArgs.containerId,depFieldArgs.formId))return;removeFromHideFields(depFieldArgs.containerId,depFieldArgs.formId);if(depFieldArgs.fieldType=== "submit"){if(onCurrentPage)showOrEnableSubmitButton(depFieldArgs);return}if(onCurrentPage){setValuesInsideFieldOnPage(depFieldArgs.containerId,depFieldArgs);showFieldContainer(depFieldArgs.containerId);triggerEvent(document,"frmShowField")}else setValuesInsideFieldAcrossPage(depFieldArgs)}function showOrEnableSubmitButton(depFieldArgs){if(depFieldArgs.hideDisable&&depFieldArgs.hideDisable==="disable")enableButton("#"+depFieldArgs.containerId);else showFieldContainer(depFieldArgs.containerId);removeSubmitButtonFromHiddenList(depFieldArgs)} function removeSubmitButtonFromHiddenList(depFieldArgs){hiddenSubmitButtons=hiddenSubmitButtons.filter(function(button){return button!==depFieldArgs.formKey})}function enableButton(buttonSelector){jQuery(buttonSelector).prop("disabled",false)}function setValuesInsideFieldOnPage(container,depFieldArgs){var inputs=getInputsInFieldOnPage(container),inContainer=depFieldArgs.fieldType==="divider"||depFieldArgs.fieldType==="form";setValueForInputs(inputs,inContainer,depFieldArgs.formId,"required")}function setValuesInsideFieldAcrossPage(depFieldArgs){var inputs= getInputsInFieldAcrossPage(depFieldArgs),inContainer=depFieldArgs.fieldType==="divider"||depFieldArgs.fieldType==="form";setValueForInputs(inputs,inContainer,depFieldArgs.formId)}function getInputsInFieldOnPage(containerId){var container="string"===typeof containerId?document.getElementById(containerId):containerId;return container.querySelectorAll('select[name^="item_meta"], textarea[name^="item_meta"], input[name^="item_meta"]')}function getInputsInFieldAcrossPage(depFieldArgs){var inputs=[];if(depFieldArgs.fieldType=== "divider")inputs=getInputsInHiddenSection(depFieldArgs);else if(depFieldArgs.fieldType==="form")inputs=getInputsInHiddenEmbeddedForm(depFieldArgs);else inputs=getHiddenInputs(depFieldArgs);return inputs}function getHiddenInputs(depFieldArgs){var name="";if(depFieldArgs.isRepeating){var containerFieldId=getContainerFieldId(depFieldArgs);name="item_meta["+containerFieldId+"]["+depFieldArgs.repeatRow+"]["+depFieldArgs.fieldId+"]"}else name="item_meta["+depFieldArgs.fieldId+"]";return document.querySelectorAll('[name^="'+ name+'"]')}function setValueForInputs(inputs,inContainer,formId,setRequired){var input,prevInput,i;if(!inputs.length)return;for(i=0;i-1&&isOptional===-1)input.setAttribute("aria-required",true)}function skipSetValue(i,prevInput,inputs){var typeArray=["checkbox","radio"];if(i<1||typeof prevInput==="undefined")return false;if(null!==inputs[i].getAttribute("data-frmprice"))return false;var isOther=inputs[i].className.indexOf("frm_other_input")!== -1;return isOther||prevInput.name==inputs[i].name&&typeArray.indexOf(prevInput.type)>-1}function isChildInputConditionallyHidden(input,formId){var fieldDivPart=frmFrontForm.getFieldId(input,true),fieldDivId="frm_field_"+fieldDivPart+"_container";return isFieldConditionallyHidden(fieldDivId,formId)}function showFieldContainer(containerId){var $container=jQuery("#"+containerId).show();if($container.hasClass("frm_inside_container")&&null===$container.find("select").val())$container.find("select").val("").trigger("change")} function hideFieldAndClearValue(depFieldArgs,onCurrentPage){if(isFieldConditionallyHidden(depFieldArgs.containerId,depFieldArgs.formId))return;addToHideFields(depFieldArgs.containerId,depFieldArgs.formId);if(depFieldArgs.fieldType==="submit"){if(onCurrentPage)hideOrDisableSubmitButton(depFieldArgs);return}if(onCurrentPage){hideFieldContainer(depFieldArgs.containerId);clearInputsInFieldOnPage(depFieldArgs.containerId)}else clearInputsInFieldAcrossPage(depFieldArgs)}function hideOrDisableSubmitButton(depFieldArgs){if(depFieldArgs.containerId== undefined)depFieldArgs.containerId=getSubmitButtonContainerID(depFieldArgs);addSubmitButtonToHiddenList(depFieldArgs);if(depFieldArgs.hideDisable&&depFieldArgs.hideDisable==="disable")disableButton("#"+depFieldArgs.containerId);else hideFieldContainer(depFieldArgs.containerId)}function addSubmitButtonToHiddenList(depFieldArgs){hiddenSubmitButtons.push(depFieldArgs.formKey)}function isOnPageSubmitButtonHidden(formKey){return hiddenSubmitButtons.indexOf(formKey)!==-1}function hidePreviouslyHiddenSubmitButton(submitContainerID){var formId= submitContainerID.replace("frm_form_","");formId=formId.replace("_container .frm_final_submit","");var depFieldArgs=getRulesForSingleField("submit_"+formId);if(depFieldArgs)hideOrDisableSubmitButton(depFieldArgs)}function getFormKeyFromFormElementID(elementId){return elementId.replace("form_","")}function hideFieldContainer(containerId){jQuery("#"+containerId).hide()}function disableButton(buttonSelector){jQuery(buttonSelector).prop("disabled",true)}function jsonParse(str){try{var obj=JSON.parse(str); return obj}catch(e){return false}}function clearInputsInFieldOnPage(containerId){var inputs=getInputsInFieldOnPage(containerId);clearValueForInputs(inputs,"required")}function clearInputsInFieldAcrossPage(depFieldArgs){var inputs=getInputsInFieldAcrossPage(depFieldArgs);clearValueForInputs(inputs)}function getInputsInHiddenSection(depFieldArgs){var inputs=[];if(depFieldArgs.fieldType==="divider")inputs=document.querySelectorAll('[data-sectionid="'+depFieldArgs.fieldId+'"]');return inputs}function getInputsInHiddenEmbeddedForm(depFieldArgs){return document.querySelectorAll('[id^="field_'+ depFieldArgs.fieldKey+'-"]')}function clearValueForInputs(inputs,required,resetToDefault){var prevInput,blankSelect,valueChanged,l,i,input,defaultVal,reset;if(inputs.length<1)return;valueChanged=true;l=inputs.length;for(i=0;i-1||input.name.indexOf("[row_ids]")>-1){prevInput=input;continue}if(i>0&&prevInput.name!=input.name&&valueChanged===true)triggerChange(jQuery(prevInput)); valueChanged=true;if(input.type==="radio"||input.type==="checkbox"){if(!reset)input.checked=false;else if("radio"===input.type)input.checked=defaultVal===input.value;else resetCheckboxInputToValue(input,defaultVal);maybeClearStarRatingInput(input)}else if(input.tagName==="SELECT"){if(!reset){blankSelect=input.selectedIndex===0&&input.options[0].text.trim()==="";if(blankSelect||input.selectedIndex===-1)valueChanged=false;else input.selectedIndex=-1}else valueChanged=resetSelectInputToValue(input,defaultVal); var chosenId=input.id.replace(/[^\w]/g,"_");var autocomplete=document.getElementById(chosenId+"_chosen");if(autocomplete!==null)jQuery(input).trigger("chosen:updated")}else if(input.type==="range")if(!reset)input.value=0;else input.value=defaultVal;else if(input.getAttribute("data-frmprice")!==null)setHiddenProduct(input);else{if(!reset)input.value="";else input.value=defaultVal;if(null!==input.getAttribute("data-frmfile"))clearDropzoneFiles(input)}if(required==="required"){input.required=false;input.setAttribute("aria-required", false)}prevInput=inputs[i]}if(valueChanged===true)triggerChange(jQuery(prevInput))}function maybeClearStarRatingInput(input){var starGroup,checkedInput;if("radio"!==input.type||!input.matches(".frm-star-group input:last-of-type"))return;starGroup=input.closest(".frm-star-group");checkedInput=starGroup.querySelector("input:checked");if(checkedInput)updateStars(checkedInput);else clearStars(starGroup,true)}function resetCheckboxInputToValue(input,val){var i;val=jsonParse(val);if(!val)return;for(i in val)if(val[i]=== input.value){input.checked=true;return}input.checked=false}function resetSelectInputToValue(input,val){if(input.multiple)return resetMultiSelectInputToValue(input,val);var i,valueChanged=false,options=input.querySelectorAll("option");for(i=0;i