(function($, publicConfig){
'use strict';
let JetReviews={
eventBus: new Vue(),
initedInstance: [],
captchaToken: false,
init: function(){
JetReviews.defineVueComponents();
this.initInstances();
window.addEventListener('jetReviews/editor/templateRenderer/renderSuccess',(event)=> {
this.initBlockInstances();
}, false);
},
initInstances: function(){
let instancesList=$('.jet-reviews-advanced');
if(! instancesList[0]){
return false;
}
instancesList.each(function(){
let $target=$(this),
instanceId=$target.attr('id'),
uniqid=$target.data('uniqid')||false,
options=window['jetReviewsWidget' + uniqid]||false;
if(! options){
let optionsScript=document.getElementById('jetReviewsWidgetOptions' + uniqid);
if(optionsScript){
eval(optionsScript.innerHTML);
options=window['jetReviewsWidget' + uniqid]||false;
}}
if(! $target[0]||! uniqid||! options){
return;
}
window.JetReviews.createJetReviewAdvancedInstance(instanceId, options);
});
},
initBlockInstances: function(){
const targetNode=document.querySelector('.jet-reviews-block-holder');
if(! targetNode) return;
const observer=new MutationObserver(function(mutationsList, observer){
for(const mutation of mutationsList){
if(mutation.type==='childList'){
const event=new Event('jetReviews/editor/block/renderSuccess');
document.dispatchEvent(event);
observer.disconnect();
}}
});
observer.observe(targetNode, { childList: true, subtree: true });
document.addEventListener('jetReviews/editor/block/renderSuccess',(event)=> {
this.initInstances();
});
},
defineVueComponents: function(){
Vue.component('jet-reviews-widget-pagination', {
template: '#jet-reviews-widget-pagination-template',
props: {
current: {
type: Number,
default: 1
},
total: {
type: Number,
default: 0
},
pageSize: {
type: Number,
default: 10
},
prevIcon: {
type: String,
default: '<svg width="7" height="12" viewBox="0 0 7 12" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M5.67089 0L-5.96046e-08 6L5.67089 12L7 10.5938L2.65823 6L7 1.40625L5.67089 0Z"/></svg>'
},
nextIcon: {
type: String,
default: '<svg width="7" height="12" viewBox="0 0 7 12" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M1.32911 0L7 6L1.32911 12L0 10.5938L4.34177 6L0 1.40625L1.32911 0Z"/></svg>'
},
customCss: {
type: String,
default: ''
},
},
data(){
return {
baseClass: 'jet-reviews-widget-pagination',
currentPage: this.current,
currentPageSize: this.pageSize
};},
watch: {
total(val){
let maxPage=Math.ceil(val / this.currentPageSize);
if(maxPage < this.currentPage){
this.currentPage=(maxPage===0 ? 1:maxPage);
}},
current(val){
this.currentPage=val;
},
pageSize(val){
this.currentPageSize=val;
}},
computed: {
classesList(){
let classesList=[
this.baseClass,
];
if(this.customCss){
classesList.push(this.customCss);
}
return classesList;
},
prevClasses (){
return [
`${this.baseClass}__item`,
`${this.baseClass}__item--prev`,
{
[`${this.baseClass}__item--disabled`]: this.currentPage===1||false
}
];
},
nextClasses (){
return [
`${this.baseClass}__item`,
`${this.baseClass}__item--next`,
{
[`${this.baseClass}__item--disabled`]: this.currentPage===this.allPages||false
}
];
},
firstPageClasses (){
return [
`${this.baseClass}__item`,
{
[`${this.baseClass}__item--active`]: this.currentPage===1
}
];
},
lastPageClasses (){
return [
`${this.baseClass}__item`,
{
[`${this.baseClass}__item--active`]: this.currentPage===this.allPages
}
];
},
allPages (){
const allPage=Math.ceil(this.total / this.currentPageSize);
return(allPage===0) ? 1:allPage;
},
},
methods: {
changePage(page){
if(this.currentPage!==page){
this.currentPage=page;
this.$emit('update:current', page);
this.$emit('on-change', page);
}},
prev (){
const current=this.currentPage;
if(current <=1){
return false;
}
this.changePage(current - 1);
},
next (){
const current=this.currentPage;
if(current >=this.allPages){
return false;
}
this.changePage(current + 1);
},
fastPrev (){
const page=this.currentPage - 5;
if(page > 0){
this.changePage(page);
}else{
this.changePage(1);
}},
fastNext (){
const page=this.currentPage + 5;
if(page > this.allPages){
this.changePage(this.allPages);
}else{
this.changePage(page);
}},
},
});
Vue.component('jet-advanced-reviews-form', {
template: '#jet-advanced-reviews-form-template',
props: {
reviewFields: Array
},
data: function(){
return ( {
reviewSubmiting: false,
reviewTitle: '',
reviewContent: '',
reviewAuthorName: '',
reviewAuthorMail: '',
reviewMedia: [],
reviewMediaPreview: [],
messageText: '',
fields: this.reviewFields,
isValidUpload: true,
trySend: false
});
},
mounted: function(){
let self=this;
Vue.nextTick().then(function (){
let reviewContent=self.$refs.reviewContent,
textarea=reviewContent.$refs.textarea;
textarea.focus();
});
if(this.$root.isUserGuest){
this.reviewAuthorName=JetReviews.getLocalStorageData('guestName', '');
this.reviewAuthorMail=JetReviews.getLocalStorageData('guestMail', '');
}},
computed: {
formControlsVisible: function(){
if(this.$root.isUserGuest){
return this.isValidReviewContent &&
this.isValidReviewTitle &&
this.isValidAuthorName &&
this.isValidAuthorEmail;
}
return this.isValidReviewContent&&this.isValidReviewTitle;
},
formMessageVisible: function(){
return ''!==this.messageText;
},
reviewTitleVisible: function(){
return this.$root.options.reviewTitleInputVisible;
},
reviewContentVisible: function(){
return this.$root.options.reviewContentInputVisible;
},
isValidReviewTitle: function(){
if(! this.trySend){
return true
}
return ''!==this.reviewTitle||! this.reviewTitleVisible;
},
isValidReviewContent: function(){
if(! this.trySend){
return true
}
return ''!==this.reviewContent||! this.reviewContentVisible;
},
isValidAuthorName: function(){
if(! this.trySend){
return true
}
return ''!==this.reviewAuthorName;
},
isValidAuthorEmail: function(){
if(! this.trySend){
return true
}
return(''!==this.reviewAuthorMail&&JetReviews.checkValidEmail(this.reviewAuthorMail) );
},
isValidMedia: function(){
return this.isValidUpload;
}},
methods: {
cancelSubmit: function(){
JetReviews.eventBus.$emit('closeNewReviewForm', { uniqId: this.$root.options.uniqId });
},
submitReview: function(){
this.trySend=true;
if(! this.formControlsVisible){
return false;
}
let self=this,
forSendingData={
source: this.$root.sourceData.source,
source_type: this.$root.sourceData.sourceType,
source_id: this.$root.sourceData.sourceId,
title: this.reviewTitle,
content: this.reviewContent,
author_id: this.$root.userData.id,
author_name: this.reviewAuthorName,
author_mail: this.reviewAuthorMail,
rating_data: this.fields,
media: this.reviewMedia,
},
recaptchaConfig=window.jetReviewPublicConfig.recaptchaConfig;
if(recaptchaConfig.enable){
window.grecaptcha.ready(function(){
grecaptcha.execute(recaptchaConfig.site_key,
{
action: 'submit_review'
}
).then(function(token){
JetReviews.captchaToken=token;
let modifyData=Object.assign({}, forSendingData, {
captcha_token: token
});
self.submitReviewHandle(modifyData);
});
});
return false;
}
this.submitReviewHandle(forSendingData);
},
submitReviewHandle: function(sendData=false){
let self=this;
if(! sendData){
console.warn('Empty new review data for sending');
return false;
}
const formData=new FormData();
formData.append('source', sendData.source);
formData.append('source_type', sendData.source_type);
formData.append('source_id', sendData.source_id) ;
formData.append('title', sendData.title);
formData.append('content', sendData.content);
formData.append('author_id', sendData.author_id);
formData.append('author_name', sendData.author_name);
formData.append('author_mail', sendData.author_mail);
formData.append('rating_data', JSON.stringify(sendData.rating_data||{}) );
formData.append('captcha_token', sendData.captcha_token||'');
for(const file of sendData.media){
formData.append('attached_media[]', file);
}
this.reviewSubmiting=true;
this.messageText='';
wp.apiFetch({
method: 'post',
path: window.jetReviewPublicConfig.submitReviewRoute,
body: formData,
}).then(function(response){
response=self.maybeModifyResponce(response);
let responseSuccess=response.success,
responseData=response.data,
responseMessage=response.message;
self.reviewSubmiting=false;
self.messageText=responseMessage;
if(self.$root.isUserGuest){
let guestReviewedItems=JetReviews.getLocalStorageData(self.$root.guestReviewedStorageName, []);
if(responseSuccess&&! guestReviewedItems.includes(self.$root.sourceData.sourceId) ){
self.$root.userData.name=self.reviewAuthorName;
self.$root.userData.mail=self.reviewAuthorMail;
JetReviews.setLocalStorageData('guestName', self.reviewAuthorName);
JetReviews.setLocalStorageData('guestMail', self.reviewAuthorMail);
guestReviewedItems.push(self.$root.sourceData.sourceId);
JetReviews.setLocalStorageData(self.$root.guestReviewedStorageName, guestReviewedItems);
}}
if(responseSuccess){
if('review-created'===response.code){
JetReviews.eventBus.$emit('addReview', {
uniqId: self.$root.options.uniqId,
reviewData: responseData.item,
});
self.$root.reviewsAverageRating=+responseData.rating;
}
self.$root.formVisible=false;
self.$root.userData.canReview.allowed=false;
self.$root.userData.canReview.message=responseMessage;
}});
},
maybeModifyResponce: function(responce=false){
let code=responce.code;
if('need-approve'===code&&''!==this.$root.options.labels.moderatorCheckMessage){
responce.message=this.$root.options.labels.moderatorCheckMessage;
}
if('already-created'===code&&''!==this.$root.options.labels.alreadyReviewedMessage){
responce.message=this.$root.options.labels.alreadyReviewedMessage;
}
return responce;
},
handleFiles(files){
this.reviewMedia=files;
},
handleUploadStatus(payload){
this.isValidUpload=payload;
},
requiredFieldsCheck(){
return true;
}}
});
Vue.component('slider-input', {
template: '#jet-advanced-reviews-slider-input-template',
props: {
value: {
type: [ String, Number ],
default: ''
},
max: {
type: [ Number ],
default: 5
},
step: {
type: [ Number ],
default: 1
},
label: {
type: [ String, Boolean ],
default: false
},
},
data: function(){
return ( {
});
},
computed: {
valueLabel: function(){
return this.value;
}},
methods: {
handleInput(event){
let value=event.target.value;
this.$emit('input', value);
this.$emit('on-change', event);
},
handleChange(event){
this.$emit('on-input-change', event);
}},
});
Vue.component('stars-input', {
template: '#jet-advanced-reviews-stars-input-template',
props: {
value: {
type: [ String, Number ],
default: ''
},
max: {
type: [ Number ],
default: 5
},
step: {
type: [ Number ],
default: 1
},
label: {
type: [ String, Boolean ],
default: false
},
},
data: function(){
return ( {
currentRating: this.value,
});
},
computed: {
valueLabel: function(){
return `${ this.value }/${ this.max }`;
},
rating: function(){
return(this.currentRating / this.max) * 100;
},
preparedRating: function(){
if(10 > this.rating){
return 10;
}
return this.rating;
},
emptyIcon: function(){
return this.$root.refsHtml.emptyStarIcon||'<i class="far fa-star"></i>';
},
emptyIcons: function(){
let icon=`<div class="jet-reviews-star">${ this.$root.refsHtml.emptyStarIcon }</div>`||'<div class="jet-reviews-star"><i class="far fa-star"></i></div>';
return icon.repeat(this.max);
},
filledIcons: function(){
let icon=`<div class="jet-reviews-star">${ this.$root.refsHtml.filledStarIcon }</div>`||`<div class="jet-reviews-star"><i class="fas fa-star"></i></div>`;
return icon.repeat(this.max);
},
ratingClass: function(){
let ratingClass='very-high-rating';
if(this.rating >=80&&this.rating <=100){
ratingClass='very-high-rating';
}
if(this.rating >=60&&this.rating <=79){
ratingClass='high-rating';
}
if(this.rating >=40&&this.rating <=59){
ratingClass='medium-rating';
}
if(this.rating >=22&&this.rating <=39){
ratingClass='low-rating';
}
if(this.rating >=0&&this.rating <=21){
ratingClass='very-low-rating';
}
return ratingClass;
},
},
methods: {
ratingClick(rating){
this.currentRating=rating;
this.$emit('input', rating);
},
ratingMouseOver(rating){
this.currentRating=rating;
},
ratingMouseOut(){
this.currentRating=this.value;
},
},
});
Vue.component('jet-advanced-reviews-item', {
template: '#jet-advanced-reviews-item-template',
props: {
itemData: Object
},
data: function(){
return ( {
commentFormVisible: false,
commentText: '',
commentAuthorName: '',
commentAuthorMail: '',
commentSubmiting: false,
approvalSubmiting: false,
parentComment: 0,
commentsVisible: false,
responseMessage: '',
detailsVisibleState: false
});
},
mounted: function(){
if(this.$root.isUserGuest){
this.commentAuthorName=JetReviews.getLocalStorageData('guestName', '');
this.commentAuthorMail=JetReviews.getLocalStorageData('guestMail', '');
let guestReviewRatedData=JetReviews.getLocalStorageData(this.$root.guestRatedStorageName, {});
if(guestReviewRatedData.hasOwnProperty(this.itemData.id) ){
this.$set(this.itemData, 'approval', guestReviewRatedData[ this.itemData.id ]);
}}
},
computed: {
isDetailsFieldsAvaliable: function(){
return 1 < this.itemData.rating_data.length;
},
detailsVisible: function(){
return this.isDetailsFieldsAvaliable&&this.detailsVisibleState;
},
averageRatingVisible: function(){
return 'average'===this.$root.options.reviewRatingType;
},
detailsRatingVisible: function(){
return 'details'===this.$root.options.reviewRatingType;
},
authorVerificationData: function(){
return 0!==this.itemData.verifications.length ? this.itemData.verifications:false;
},
isCommentsEmpty: function(){
return 0===this.itemData.comments.length;
},
isCommentsVisible: function(){
return !this.isCommentsEmpty&&this.commentsVisible;
},
itemCommentsCount: function(){
let itemCommentsCount=false;
itemCommentsCount=this.getCommentsCount(this.itemData.comments);
return itemCommentsCount;
},
pinnedVisible: function(){
return this.itemData.pinned;
},
commentControlsVisible: function(){
if(this.$root.isUserGuest){
return this.isCommentValid &&
this.isValidAuthorName &&
this.isValidAuthorEmail;
}
return this.isCommentValid;
},
averageRatingData: function(){
let ratingDatalength=this.itemData.rating_data.length,
summaryValue=0,
avarageValue=0,
summaryMax=0,
avarageMax=0;
summaryValue=this.itemData.rating_data.reduce(function(accumulator, currentValue){
return accumulator + +currentValue.field_value;
}, 0);
summaryMax=this.itemData.rating_data.reduce(function(accumulator, currentValue){
return accumulator + +currentValue.field_max;
}, 0);
avarageValue=Math.round(summaryValue / ratingDatalength);
avarageMax=Math.round(summaryMax / ratingDatalength);
return {
rating: Math.round(avarageValue * 100 / avarageMax, 1),
max: Math.round(avarageMax, 1),
value: Math.round(avarageValue, 1)
};},
addCommentIcon: function(){
return this.$root.refsHtml.newCommentButtonIcon||false;
},
showCommentsIcon: function(){
return this.$root.refsHtml.showCommentsButtonIcon||false;
},
pinnedIcon: function(){
return this.$root.refsHtml.pinnedIcon||'<i class="fas fa-thumbtack"></i>';
},
likeIcon: function(){
let emptyLike=this.$root.refsHtml.reviewEmptyLikeIcon||'<i class="far fa-thumbs-up"></i>',
filledLike=this.$root.refsHtml.reviewFilledLikeIcon||'<i class="fas fa-thumbs-up"></i>';
return ! this.itemData.approval.like ? emptyLike:filledLike;
},
dislikeIcon: function(){
let emptyDislike=this.$root.refsHtml.reviewEmptyDislikeIcon||'<i class="far fa-thumbs-down"></i>',
filledDislike=this.$root.refsHtml.reviewFilledDislikeIcon||'<i class="fas fa-thumbs-down"></i>';
return ! this.itemData.approval.dislike ? emptyDislike:filledDislike;
},
userCanComment: function(){
return this.$root.sourceData.commentsAllowed&&this.$root.userData.canComment.allowed;
},
userCanRate: function(){
return this.$root.sourceData.approvalAllowed&&this.$root.userData.canRate;
},
isValidAuthorName: function(){
return ''!==this.commentAuthorName;
},
isValidAuthorEmail: function(){
return JetReviews.checkValidEmail(this.commentAuthorMail);
},
isCommentValid: function(){
return ''!==this.commentText;
},
mediaList: function(){
if(0===this.itemData.media.length){
return false
}
return this.itemData.media;
}},
methods: {
showCommentForm: function(){
let self=this;
this.commentFormVisible = !this.commentFormVisible;
if(this.commentFormVisible){
Vue.nextTick().then(function (){
let commentContent=self.$refs.commentContent,
textarea=commentContent.$refs.textarea;
textarea.focus();
});
}},
cancelNewComment: function(){
this.commentFormVisible=false;
this.responseMessage='';
},
submitNewComment: function(){
let self=this,
forSendingData={
source: this.$root.sourceData.source,
source_type: this.$root.sourceData.sourceType,
source_id: this.$root.sourceData.sourceId,
parent_id: this.parentComment,
review_id: this.itemData.id,
author_id: this.$root.userData.id,
author_name: this.commentAuthorName,
author_mail: this.commentAuthorMail,
content: this.commentText,
},
recaptchaConfig=window.jetReviewPublicConfig.recaptchaConfig;
if(recaptchaConfig.enable){
window.grecaptcha.ready(function(){
grecaptcha.execute(recaptchaConfig.site_key,
{
action: 'submit_review_comment'
}
).then(function(token){
JetReviews.captchaToken=token;
let modifyData=Object.assign({}, forSendingData, {
captcha_token: token
});
self.submitCommentHandler(modifyData);
});
});
return false;
}
this.submitCommentHandler(forSendingData);
},
submitCommentHandler: function(sendData=false){
let self=this;
if(! sendData){
console.warn('Empty new comment data for sending');
return false;
}
this.commentSubmiting=true;
wp.apiFetch({
method: 'post',
path: window.jetReviewPublicConfig.submitReviewCommentRoute,
data: sendData,
}).then(function(response){
self.commentSubmiting=false;
self.$root.userData.name=self.commentAuthorName;
self.$root.userData.mail=self.commentAuthorMail;
JetReviews.setLocalStorageData('guestName', self.commentAuthorName);
JetReviews.setLocalStorageData('guestMail', self.commentAuthorMail);
if(response.success){
self.commentFormVisible=false;
self.commentText='';
self.itemData.comments.unshift(response.data);
self.commentsVisible=true;
}else{
self.responseMessage=response.message;
console.log(response.message);
}});
},
updateApprovalHandler: function(type){
let self=this,
altType='like'===type ? 'dislike':'like';
this.approvalSubmiting=true;
wp.apiFetch({
method: 'post',
path: window.jetReviewPublicConfig.likeReviewRoute,
data: {
review_id: self.itemData.id,
type: type,
inc: ! self.itemData.approval[ type ],
current_state: self.itemData.approval,
},
}).then(function(response){
self.approvalSubmiting=false;
if(response.success){
self.$set(self.itemData, 'approval', response.data.approval);
self.$set(self.itemData, 'like', response.data.like);
self.$set(self.itemData, 'dislike', response.data.dislike);
if(self.$root.isUserGuest){
self.updateGuestApprovalData(self.itemData.id, self.itemData.approval);
}}else{
console.log(response.message);
}});
},
updateGuestApprovalData: function($reviewId=false, rateData=false){
let guestReviewRateData=JetReviews.getLocalStorageData(this.$root.guestRatedStorageName, {});
guestReviewRateData[ $reviewId ]=rateData;
JetReviews.setLocalStorageData(this.$root.guestRatedStorageName, guestReviewRateData);
},
toggleCommentsVisible: function(){
this.commentsVisible = !this.commentsVisible;
},
getCommentsCount: function(comments, initialValue=0){
let total=comments.reduce(( accumulator, commentData)=> {
if(commentData.hasOwnProperty('children')&&0!==commentData.children.length){
let initialValue=accumulator + 1;
return this.getCommentsCount(commentData.children, initialValue);
}else{
return accumulator + 1;
}}, initialValue);
return total;
}}
});
Vue.component('jet-advanced-reviews-comment', {
template: '#jet-advanced-reviews-comment-template',
props: {
commentData: Object,
parentId: Number,
parentComments: Array,
depth: Number,
},
data: function(){
return ( {
commentsList: this.commentData.children||[],
replySubmiting: false,
replyFormVisible: false,
replyText: '',
replyAuthorName: '',
replyAuthorMail: '',
responseMessage: ''
});
},
mounted: function(){
if(this.$root.isUserGuest){
this.replyAuthorName=JetReviews.getLocalStorageData('guestName', '');
this.replyAuthorMail=JetReviews.getLocalStorageData('guestMail', '');
}},
computed: {
commentClass: function(){
return '';
},
formControlsVisible: function(){
return this.$root.sourceData.commentsAllowed;
},
submitVisible: function(){
if(this.$root.isUserGuest){
return this.isReplyTextValid &&
this.isValidAuthorName &&
this.isValidAuthorEmail;
}
return this.isReplyTextValid;
},
replyIcon: function(){
return this.$root.refsHtml.replyButtonIcon||false;
},
isValidAuthorName: function(){
return ''!==this.replyAuthorName;
},
isValidAuthorEmail: function(){
return JetReviews.checkValidEmail(this.replyAuthorMail);
},
isReplyTextValid: function(){
return ''!==this.replyText;
},
authorVerificationData: function(){
if(! this.commentData.verifications){
return false;
}
return 0!==this.commentData.verifications.length ? this.commentData.verifications:false;
},
},
methods: {
showReplyForm: function(){
let self=this;
this.replyFormVisible = !this.replyFormVisible;
if(this.replyFormVisible){
this.replyText='<b>' + this.commentData.author.name + '</b>,&nbsp;';
Vue.nextTick().then(function (){
let commentText=self.$refs.commentText,
textarea=commentText.$refs.textarea;
JetReviews.placeCaretAtEnd(textarea);
});
}},
cancelNewReply: function(){
this.replyFormVisible=false;
this.responseMessage='';
},
submitNewReply: function(){
let self=this,
forSendingData={
source: this.$root.sourceData.source,
source_type: this.$root.sourceData.sourceType,
source_id: this.$root.sourceData.sourceId,
parent_id: 0===this.depth ? this.commentData.id:this.parentId,
review_id: this.commentData.review_id,
author_id: this.$root.userData.id,
author_name: this.replyAuthorName,
author_mail: this.replyAuthorMail,
content: this.replyText,
},
recaptchaConfig=window.jetReviewPublicConfig.recaptchaConfig;
if(recaptchaConfig.enable){
window.grecaptcha.ready(function(){
grecaptcha.execute(recaptchaConfig.site_key,
{
action: 'submit_comment_reply'
}
).then(function(token){
JetReviews.captchaToken=token;
let modifyData=Object.assign({}, forSendingData, {
captcha_token: token
});
self.submitReplyHandler(modifyData);
});
});
return false;
}
this.submitReplyHandler(forSendingData);
},
submitReplyHandler: function(sendData=false){
let self=this;
if(! sendData){
console.warn('Empty review comment data for sending');
return false;
}
this.replySubmiting=true;
wp.apiFetch({
method: 'post',
path: window.jetReviewPublicConfig.submitReviewCommentRoute,
data: sendData,
}).then(function(response){
self.replySubmiting=false;
self.$root.userData.name=self.replyAuthorName;
self.$root.userData.mail=self.replyAuthorMail;
JetReviews.setLocalStorageData('guestName', self.replyAuthorName);
JetReviews.setLocalStorageData('guestMail', self.replyAuthorMail);
if(response.success){
self.replyFormVisible=false;
self.replyText='';
if(0===self.depth){
self.commentData.children.unshift(response.data);
}else{
self.parentComments.push(response.data);
}}else{
self.responseMessage=response.message;
}});
}}
});
Vue.component('points-field', {
template: '#jet-advanced-reviews-point-field-template',
props: {
before: {
type: [ Number, String, Boolean ],
default: false
},
rating: Number,
after: {
type: [ Number, String, Boolean ],
default: false
},
},
data: function(){
return ( {});
},
computed: {
isBeforeEmpty: function(){
return false===this.before||''===this.before;
},
isAfterEmpty: function(){
return false===this.after||''===this.after;
},
preparedRating: function(){
if(10 > this.rating){
return 10;
}
return this.rating;
},
ratingClass: function(){
let ratingClass='very-high-rating';
if(this.rating >=80&&this.rating <=100){
ratingClass='very-high-rating';
}
if(this.rating >=60&&this.rating <=79){
ratingClass='high-rating';
}
if(this.rating >=40&&this.rating <=59){
ratingClass='medium-rating';
}
if(this.rating >=22&&this.rating <=39){
ratingClass='low-rating';
}
if(this.rating >=0&&this.rating <=21){
ratingClass='very-low-rating';
}
return ratingClass;
}}
});
Vue.component('stars-field', {
template: '#jet-advanced-reviews-star-field-template',
props: {
before: {
type: [ Number, String, Boolean ],
default: false
},
rating: Number,
after: {
type: [ Number, String, Boolean ],
default: false
},
},
data: function(){
return ( {});
},
computed: {
isBeforeEmpty: function(){
return ! this.before||''===this.before;
},
isAfterEmpty: function(){
return ! this.after||''===this.after;
},
preparedRating: function(){
if(10 > this.rating){
return 10;
}
return this.rating;
},
emptyIcons: function(){
let icon=`<div class="jet-reviews-star">${ this.$root.refsHtml.emptyStarIcon }</div>`||'<div class="jet-reviews-star"><i class="far fa-star"></i></div>';
return icon.repeat(5);
},
filledIcons: function(){
let icon=`<div class="jet-reviews-star">${ this.$root.refsHtml.filledStarIcon }</div>`||'<div class="jet-reviews-star"><i class="fas fa-star"></i></div>';
return icon.repeat(5);
},
ratingClass: function(){
let ratingClass='very-high-rating';
if(this.rating >=80&&this.rating <=100){
ratingClass='very-high-rating';
}
if(this.rating >=60&&this.rating <=79){
ratingClass='high-rating';
}
if(this.rating >=40&&this.rating <=59){
ratingClass='medium-rating';
}
if(this.rating >=22&&this.rating <=39){
ratingClass='low-rating';
}
if(this.rating >=0&&this.rating <=21){
ratingClass='very-low-rating';
}
return ratingClass;
}},
});
Vue.component('html-textarea', {
template:'<div :class="classes" ref="textarea" contenteditable="true" tabindex="0" :data-placeholder="placeholder" :data-not-valid-label="notValidLabel" @input="updateHTML" @focus="focusHandler" @blur="blurHandler"></div>',
props: {
value: String,
isValid: {
type: Boolean,
default: true,
},
placeholder: {
type: String,
default: 'Input',
},
notValidLabel: {
type: String,
default: 'This field is required or not valid',
},
},
data: function(){
return ( {
isFocus: false,
isEmpty: true,
});
},
computed: {
classes: function(){
let classes=[
'jet-reviews-content-editable',
!this.isValid ? 'jet-reviews-content-editable--not-valid':false,
this.isFocus ? 'jet-reviews-content-editable--focus':false,
this.isPlaceholder ? 'jet-reviews-content-editable--placeholder':false,
];
return classes;
},
isPlaceholder: function(){
if(this.isFocus||! this.isEmpty){
return false;
}
return true;
}},
mounted: function (){
this.$el.innerHTML=this.value;
},
methods: {
updateHTML: function(e){
const html=e.target.innerHTML.trim();
if(html==='<br>'||html===''){
this.isEmpty=true;
this.$emit('input', '');
}else{
this.isEmpty=false;
this.$emit('input', html);
}},
focusHandler: function(e){
this.$emit('focus', e.target);
this.isFocus=true;
},
blurHandler: function(e){
this.$emit('blur', e.target);
this.isFocus=false;
}}
});
Vue.component('file-input', {
template: '#jet-reviews-widget-file-input-template',
props: {
allowedTypes: {
type: [ Array ],
default(){
return [ 'image/jpeg', 'image/png', 'image/gif' ];
}},
maxFileSize: {
type: [ Number ],
default: 5
},
uploadIcon: {
type: [ String ],
default: ''
},
uploadControlLabel: {
type: [ String ],
default: 'Upload your file here'
},
buttonLabel: {
type: [ String ],
default: 'Choose File'
},
maxFileSizeLabel: {
type: [ String ],
default: 'Maximum size'
},
},
data: function(){
return ( {
baseClass: 'jet-reviews-widget-file-input',
reviewMedia: [],
reviewMediaPreview: [],
messageText: '',
isDragOver: false,
});
},
computed: {
classesList(){
let classesList=[
this.baseClass,
this.isDragOver ? 'is-dragover':'',
];
return classesList;
},
maxSizeLabel(){
return `${ this.maxFileSizeLabel }: ${ this.maxFileSize }MB`;
},
isMessageVisible: function(){
return ''!==this.messageText;
},
maxSize: function(){
return this.maxFileSize * 1024 * 1024;
},
},
methods: {
triggerFileInput(){
this.$refs.fileInput.click();
},
handleFiles(event){
const files=Array.from(event.target.files);
this.reviewMedia=[];
this.reviewMediaPreview=[];
this.messageText='';
this.$emit('on-change', event);
this.$emit('on-send-status', true);
files.forEach(file=> {
if(! this.allowedTypes.includes(file.type) ){
this.$emit('on-send-status', false);
this.messageText='Not allowed file type';
return;
}
if(file.size > this.maxSize){
this.$emit('on-send-status', false);
this.messageText='Maximum file size exceeded';
return;
}
this.reviewMedia.push(file);
const reader=new FileReader();
reader.onload=event=> this.reviewMediaPreview.push(event.target.result);
reader.readAsDataURL(file);
});
this.$emit('on-file-change', this.reviewMedia);
},
onDragOver(){
this.isDragOver=true;
},
onDragLeave(){
this.isDragOver=false;
},
onFileDrop(event){
this.isDragOver=false;
const filesList=event?.dataTransfer?.files;
if(! filesList||filesList.length===0) return;
const files=Array.from(filesList);
this.reviewMedia=[];
this.reviewMediaPreview=[];
this.messageText='';
this.$emit('on-send-status', true);
files.forEach(file=> {
if(! this.allowedTypes.includes(file.type) ){
this.$emit('on-send-status', false);
this.messageText='Not allowed file type';
return;
};
if(file.size > this.maxSize){
this.$emit('on-send-status', false);
this.messageText='Maximum file size exceeded';
return;
};
this.reviewMedia.push(file);
const reader=new FileReader();
reader.onload=event=> this.reviewMediaPreview.push(event.target.result);
reader.readAsDataURL(file);
});
this.$emit('on-file-change', this.reviewMedia);
},
},
});
},
createJetReviewAdvancedInstance: function(instanceId, options){
if(JetReviews.initedInstance.includes(instanceId) ){
return;
}
JetReviews.initedInstance.push(instanceId);
let JetReviewAdvancedInstance=new Vue( {
el: '#' + instanceId,
data: {
uniqId: instanceId,
options: options,
reviewsLoaded: false,
getReviewsProcessing: false,
reviewsList: [],
reviewsPage: 1,
reviewsTotal: 0,
reviewsAverageRating: 0,
userData: options.userData,
sourceData: options.sourceData,
reviewTypeFields: options.reviewsFields,
formVisible: false,
isMounted: false,
refsHtml: {},
},
mounted: function(){
let self=this,
refsHtml={};
this.isMounted=true;
for(var ref in this.$refs){
Object.assign(refsHtml, { [ ref ]: this.$refs[ ref ].innerHTML });
}
this.refsHtml=refsHtml;
if(this.isUserGuest){
this.$set(this.userData, 'id', this.guestId);
this.$set(this.userData, 'name', this.guestName);
this.$set(this.userData, 'mail', this.guestMail);
let guestReviewedItems=JetReviews.getLocalStorageData(this.guestReviewedStorageName, []);
if(guestReviewedItems.includes(this.sourceData.sourceId) ){
this.$set(this.userData.canReview, 'allowed', false);
this.$set(this.userData.canReview, 'message', this.options.labels.alreadyReviewedMessage);
}}
if(this.options.reviewsListData){
this.reviewsList=this.options.reviewsListData.list;
this.reviewsTotal=+this.options.reviewsListData.total;
this.reviewsAverageRating=+this.options.reviewsListData.rating;
this.reviewsLoaded=true;
}else{
wp.apiFetch({
method: 'post',
path: window.jetReviewPublicConfig.getPublicReviewsRoute,
data: {
source: self.sourceData.source,
source_id: self.sourceData.sourceId,
page: self.reviewsPage - 1,
page_size: self.options.pageSize
},
}).then(function(response){
self.reviewsLoaded=true;
if(response.success&&response.data){
self.reviewsList=response.data.list;
self.reviewsTotal=+response.data.total;
self.reviewsAverageRating=+response.data.rating;
}else{
console.log('Error');
}});
}
JetReviews.eventBus.$on('addReview', function(payLoad){
if(self.options.uniqId!==payLoad.uniqId){
return;
}
self.formVisible=false;
let reviewData=payLoad.reviewData;
self.reviewsList.unshift(reviewData);
self.reviewsTotal +=1;
});
JetReviews.eventBus.$on('closeNewReviewForm', function(payLoad){
if(self.options.uniqId!==payLoad.uniqId){
return;
}
self.formVisible=false;
});
},
computed: {
instanceClass: function(){
let classes=[
'jet-reviews-advanced__instance',
];
if(this.isMounted){
classes.push('is-mounted');
}
return classes;
},
reviewsLength: function(){
return this.reviewsList.length;
},
reviewsListEmpty: function(){
return 0===this.reviewsList.length ? true:false;
},
preparedFields: function(){
let rawFields=this.reviewTypeFields,
preparedFields=[];
for(let fieldData of rawFields){
preparedFields.push({
field_label: fieldData.label,
field_value: +fieldData.max,
field_step: +fieldData.step,
field_max: +fieldData.max,
});
}
return preparedFields;
},
averageRating: function(){
let totalRating=0;
if(this.reviewsListEmpty){
return 0;
}
totalRating=this.reviewsList.reduce(function(sum, reviewItem){
return +reviewItem.rating + sum;
}, 0);
return Math.round(totalRating / this.reviewsList.length, 1);
},
averageValue: function(){
let summaryValue=0;
if(this.reviewsListEmpty){
return 0;
}
for(let reviewItem of this.reviewsList){
let ratingData=reviewItem.rating_data,
itemSummary=0;
for(let ratingItem of ratingData){
itemSummary +=+ratingItem.field_value
}
summaryValue +=Math.round(itemSummary / ratingData.length, 1)
}
return Math.round(summaryValue / this.reviewsList.length, 1);
},
averageMax: function(){
let totalMax=0,
fields=this.reviewTypeFields;
totalMax=fields.reduce(function(sum, field){
return +field.max + sum;
}, 0);
return Math.round(totalMax / fields.length, 1);
},
addReviewIcon: function(){
return this.refsHtml.newReviewButtonIcon||false;
},
isUserGuest: function(){
return this.userData.roles.includes('guest');
},
guestId: function(){
let guestId=JetReviews.getLocalStorageData('guestId', false);
if(! guestId){
let guestId=`guest_${ JetReviews.getUniqId() }`;
JetReviews.setLocalStorageData('guestId', guestId);
return guestId;
}
return guestId;
},
guestName: function(){
let guestName=JetReviews.getLocalStorageData('guestName', false);
if(! guestName){
JetReviews.setLocalStorageData('guestName', '');
return '';
}
return guestName;
},
guestMail: function(){
let guestMail=JetReviews.getLocalStorageData('guestMail', false);
if(! guestMail){
JetReviews.setLocalStorageData('guestMail', '');
return '';
}
return guestMail;
},
guestReviewedStorageName: function(){
return `reviewed${ JetReviews.capitalizeString(this.sourceData.source) }Items`;
},
guestRatedStorageName: function(){
return `rated${ JetReviews.capitalizeString(this.sourceData.source) }Items`;
},
guestNameFieldVisible: function(){
return this.isUserGuest&&''===this.userData.name;
},
guestMailFieldVisible: function(){
return this.isUserGuest&&''===this.userData.mail;
},
paginationVisible: function(){
return this.reviewsTotal > this.options.pageSize;
},
},
methods: {
formVisibleToggle: function(){
this.formVisible = !this.formVisible;
},
getLabelBySlug: function(slug=false){
if(! slug){
return false;
}
if(! window.jetReviewPublicConfig.labels.hasOwnProperty(slug) ){
return false;
}
return window.jetReviewPublicConfig.labels[ slug ];
},
changePageHandle: function(page){
this.reviewsPage=page;
this.getReviews();
},
getReviews: function(){
let self=this;
self.getReviewsProcessing=true;
wp.apiFetch({
method: 'post',
path: window.jetReviewPublicConfig.getPublicReviewsRoute,
data: {
source: self.sourceData.source,
source_id: self.sourceData.sourceId,
page: self.reviewsPage - 1,
page_size: self.options.pageSize,
},
}).then(function(response){
self.getReviewsProcessing=false;
self.scrollToInstance();
if(response.success&&response.data){
self.reviewsList=response.data.list;
self.reviewsTotal=+response.data.total;
self.reviewsAverageRating=+response.data.rating;
}else{
console.log('Error');
}});
},
scrollToInstance: function(){
let $instance=$(`#${ this.uniqId }`),
offsetTop=$instance.offset().top - 50;
window.scrollTo({
top: offsetTop,
behavior: 'smooth',
});
}}
});
},
getLocalStorageData: function(_key=false, _default=false){
try {
let jetReviewsData=JSON.parse(window.localStorage.getItem('jetReviewsData') );
if(_key){
if(jetReviewsData.hasOwnProperty(_key) ){
return jetReviewsData[ _key ];
}else{
return _default;
}}
return jetReviewsData;
} catch(e){
return _default;
}},
setLocalStorageData: function(key, data){
let jetReviewsData=this.getLocalStorageData()||{};
jetReviewsData[ key ]=data;
window.localStorage.setItem('jetReviewsData', JSON.stringify(jetReviewsData) );
},
getUniqId: function(){
return Math.random().toString(36).substr(2, 9);
},
capitalizeString: function(string=''){
if(typeof string!=='string'){
return ''
}
return string.charAt(0).toUpperCase() + string.slice(1);
},
placeCaretAtEnd: function(el){
el.focus();
if('undefined'!==typeof window.getSelection&&'undefined'!==typeof document.createRange){
let range=document.createRange();
range.selectNodeContents(el);
range.collapse(false);
let selection=window.getSelection();
selection.removeAllRanges();
selection.addRange(range);
}else if('undefined'!==typeof document.body.createTextRange){
let textRange=document.body.createTextRange();
textRange.moveToElementText(el);
textRange.collapse(false);
textRange.select();
}},
checkValidEmail: function(email){
var reg=/^(([^<>()[\]\\.,;:\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,}))$/;
return reg.test(email);
},
};
window.JetReviews=JetReviews;
JetReviews.init();
}(jQuery, window.jetReviewPublicConfig) );
(function($, elementorFrontend, publicConfig){
'use strict';
let JetReviewsElementor={
init: function(){
var widgets={
'jet-reviews.default':JetReviewsElementor.widgetJetReviewsSimple,
'jet-reviews-advanced.default':JetReviewsElementor.widgetJetReviewsAdvanced,
};
$.each(widgets, function(widget, callback){
elementorFrontend.hooks.addAction('frontend/element_ready/' + widget, callback);
});
},
widgetJetReviewsSimple: function($scope){
var $target=$scope.find('.jet-review'),
settings=$target.data('settings'),
$form=$('.jet-review__form', $target),
$submitButton=$('.jet-review__form-submit', $target),
$removeButton=$('.jet-review__item-remove', $target),
$message=$('.jet-review__form-message', $target),
$rangeControl=$('.jet-review__form-field.type-range input', $target),
ajaxRequest=null;
$rangeControl.on('input', function(event){
var $this=$(this),
$parent=$this.closest('.jet-review__form-field'),
$currentValue=$('.current-value', $parent),
value=$this.val();
$currentValue.html(value);
});
$submitButton.on('click.widgetJetReviews', function(){
addReviewHandle();
return false;
});
$removeButton.on('click.widgetJetReviews', function(){
var $this=$(this);
removeReviewHandle($this);
return false;
});
function addReviewHandle(){
var now=new Date(),
reviewTime=now.getTime(),
reviewDate=new Date(reviewTime).toLocaleString(),
sendData={
'post_id': settings['post_id'],
'review_time': reviewTime,
'review_date': reviewDate
},
serializeArray=$form.serializeObject();
sendData=jQuery.extend(sendData, serializeArray);
ajaxRequest=jQuery.ajax({
type: 'POST',
url: window.jetReviewPublicConfig.ajax_url,
data: {
'action': 'jet_reviews_add_meta_review',
'data': sendData
},
beforeSend: function(jqXHR, ajaxSettings){
if(null!==ajaxRequest){
ajaxRequest.abort();
}
$submitButton.addClass('load-state');
},
error: function(jqXHR, ajaxSettings){
},
success: function(data, textStatus, jqXHR){
var responseType=data['type'],
message=data.message||'';
if('error'===responseType){
$submitButton.removeClass('load-state');
$message.addClass('visible-state');
$('span', $message).html(message);
}
if('success'===responseType){
location.reload();
}}
});
};
function removeReviewHandle($removeButton){
var $reviewItem=$removeButton.closest('.jet-review__item'),
reviewUserId=$reviewItem.data('user-id'),
sendData={
'post_id': settings['post_id'],
'user_id': reviewUserId
};
ajaxRequest=jQuery.ajax({
type: 'POST',
url: window.jetReviewPublicConfig.ajax_url,
data: {
'action': 'jet_reviews_remove_review',
'data': sendData
},
beforeSend: function(jqXHR, ajaxSettings){
if(null!==ajaxRequest){
ajaxRequest.abort();
}
$removeButton.addClass('load-state');
},
error: function(jqXHR, ajaxSettings){
},
success: function(data, textStatus, jqXHR){
var successType=data.type,
message=data.message||'';
if('error'==successType){
}
if('success'==successType){
location.reload();
}}
});
};},
widgetJetReviewsAdvanced: function($scope){
let $target=$scope.find('.jet-reviews-advanced'),
instanceId=$target.attr('id'),
uniqid=$target.data('uniqid')||false,
options=window['jetReviewsWidget' + uniqid]||{};
if(! $target[0]||! uniqid){
return;
}
window.JetReviews.createJetReviewAdvancedInstance(instanceId, options);
},
}
$(window).on('elementor/frontend/init', JetReviewsElementor.init);
$.fn.serializeObject=function(){
var self=this,
json={},
push_counters={},
patterns={
"validate": /^[a-zA-Z][a-zA-Z0-9_-]*(?:\[(?:\d*|[a-zA-Z0-9_-]+)\])*$/,
"key":      /[a-zA-Z0-9_-]+|(?=\[\])/g,
"push":     /^$/,
"fixed":    /^\d+$/,
"named":    /^[a-zA-Z0-9_-]+$/
};
this.build=function(base, key, value){
base[key]=value;
return base;
};
this.push_counter=function(key){
if(push_counters[key]===undefined){
push_counters[key]=0;
}
return push_counters[key]++;
};
$.each($(this).serializeArray(), function(){
if(!patterns.validate.test(this.name)){
return;
}
var k,
keys=this.name.match(patterns.key),
merge=this.value,
reverse_key=this.name;
while((k=keys.pop())!==undefined){
reverse_key=reverse_key.replace(new RegExp("\\[" + k + "\\]$"), '');
if(k.match(patterns.push)){
merge=self.build([], self.push_counter(reverse_key), merge);
}
else if(k.match(patterns.fixed)){
merge=self.build([], k, merge);
}
else if(k.match(patterns.named)){
merge=self.build({}, k, merge);
}}
json=$.extend(true, json, merge);
});
return json;
};}(jQuery, window.elementorFrontend, window.jetReviewPublicConfig) );
(function($, elementor){
'use strict';
var JetTricks={
init: function(){
elementor.hooks.addAction('frontend/element_ready/section', JetTricks.elementorSection);
elementor.hooks.addAction('frontend/element_ready/section', JetTricks.elementorColumn);
elementor.hooks.addAction('frontend/element_ready/container', JetTricks.elementorSection);
elementor.hooks.addAction('frontend/element_ready/container', JetTricks.elementorColumn);
elementor.hooks.addAction('frontend/element_ready/column', JetTricks.elementorColumn);
elementor.hooks.addAction('frontend/element_ready/widget', JetTricks.elementorWidget);
var widgets={
'jet-view-more.default':JetTricks.widgetViewMore,
'jet-unfold.default':JetTricks.widgetUnfold,
'jet-hotspots.default':JetTricks.widgetHotspots
};
$.each(widgets, function(widget, callback){
elementor.hooks.addAction('frontend/element_ready/' + widget, callback);
});
window.elementorFrontend.elements.$window.on('elementor/nested-tabs/activate',
(event, content)=> {
const $content=$(content);
var $button=$content.find('.jet-unfold__button');
$button.off('click.jetUnfold');
JetTricks.initWidgetsHandlers($content);
JetTricks.elementorSection($content);
}
);
var loopCarouselTypes=[
'loop-carousel.post',
'loop-carousel.product',
'loop-carousel.post_taxonomy',
'loop-carousel.product_taxonomy'
];
loopCarouselTypes.forEach(function(carouselType){
elementorFrontend.hooks.addAction('frontend/element_ready/' + carouselType, function($scope, $){
$(window).on('load', function(){
var loopCarousel=$scope.find('.swiper'),
swiperInstance=loopCarousel.data('swiper'),
$button=$scope.find('.jet-unfold__button');
if(swiperInstance&&$button){
$button.off('click.jetUnfold');
JetTricks.initLoopCarouselHandlers($scope);
swiperInstance.on('slideChange', function(){
$button.off('click.jetUnfold');
JetTricks.initLoopCarouselHandlers($scope);
});
}});
});
});
},
initLoopCarouselHandlers: function($selector){
$selector.find('.elementor-widget-jet-unfold').each(function(){
var $this=$(this),
elementType=$this.data('element_type');
if(!elementType){
return;
}
if('widget'===elementType){
elementType=$this.data('widget_type');
window.elementorFrontend.hooks.doAction('frontend/element_ready/widget', $this, $);
}
window.elementorFrontend.hooks.doAction('frontend/element_ready/global', $this, $);
window.elementorFrontend.hooks.doAction('frontend/element_ready/' + elementType, $this, $);
});
},
initWidgetsHandlers: function($selector){
$selector.find('[data-element_type]').each(function(){
var excludeWidgets=[
'jet-woo-product-gallery-slider.default',
'accordion.default',
'jet-form-builder-form.default',
'nav-menu.default'
];
var $this=$(this),
elementType=$this.data('element_type');
if(!elementType){
return;
}
if('widget'===elementType){
elementType=$this.data('widget_type');
if(excludeWidgets.includes(elementType) ){
return;
}
window.elementorFrontend.hooks.doAction('frontend/element_ready/widget', $this, $);
}
window.elementorFrontend.hooks.doAction('frontend/element_ready/global', $this, $);
window.elementorFrontend.hooks.doAction('frontend/element_ready/' + elementType, $this, $);
});
},
elementorSection: function($scope){
var $target=$scope,
sectionId=$scope.data('id'),
editMode=Boolean(elementor.isEditMode()),
jetListing=$target.parents('.elementor-widget-jet-listing-grid').data('id'),
settings={};
if(window.JetTricksSettings&&window.JetTricksSettings.elements_data.sections.hasOwnProperty(sectionId) ){
settings=window.JetTricksSettings.elements_data.sections[ sectionId ];
}
if(editMode){
settings=JetTricks.sectionEditorSettings($scope);
}
if(! settings){
return false;
}
if(jQuery.isEmptyObject(settings) ){
return false;
}
if('false'===settings.particles||''===settings.particles_json){
return false;
}
if(jetListing&&$target.parent().data('elementor-type')==='jet-listing-items'){
sectionId +=jetListing + $target.parents('.jet-listing-grid__item').data('post-id');
}
var particlesId='jet-tricks-particles-instance-' + sectionId,
particlesJson=JSON.parse(settings.particles_json);
$scope.prepend('<div id="' + particlesId + '" class="jet-tricks-particles-section__instance"></div>');
if(typeof tsParticles!=='undefined'&&tsParticles.load&&tsParticles.version&&tsParticles.version.startsWith('3.')){
tsParticles.load({
id: particlesId,
options: particlesJson
});
}else if(typeof tsParticles!=='undefined'&&tsParticles.load){
tsParticles.load(particlesId, particlesJson);
}},
elementorColumn: function($scope){
var $target=$scope,
$parentSection=$scope.closest('.elementor-section'),
isLegacyModeActive = !!$target.find('> .elementor-column-wrap').length,
$window=$(window),
columnId=$target.data('id'),
editMode=Boolean(elementor.isEditMode()),
settings={},
stickyInstance=null,
stickyInstanceOptions={
topSpacing: 50,
bottomSpacing: 50,
containerSelector: isLegacyModeActive ? '.elementor-row':'.elementor-container, .e-con-inner',
innerWrapperSelector: isLegacyModeActive ? '.elementor-column-wrap':'.elementor-widget-wrap',
},
$observerTarget=$target.find('.elementor-element');
if(! editMode){
settings=$target.data('jet-settings');
if($target.hasClass('jet-sticky-column') ){
if(-1!==settings['stickyOn'].indexOf(elementorFrontend.getCurrentDeviceMode()) ){
$target.each(function(){
var $this=$(this),
elementType=$this.data('element_type');
if(settings['behavior']==='fixed'){
initFixedSticky($this, settings);
}else if(elementType!=='container'&&elementType!=='section'){
initSidebarSticky($this, settings, stickyInstanceOptions);
}else if(settings['behavior']==='scroll_until_end'){
initScrollUntilEndSticky($this, settings);
}else{
initDefaultSticky($this, settings);
}});
}}
}
function initFixedSticky($element, settings){
var offsetTop=parseInt(settings['topSpacing'])||0;
var bottomSpacing=parseInt(settings['bottomSpacing'])||0;
var $window=$(window);
var elementId=$element.data('id');
var originalOffsetTop=$element.offset().top;
var originalHeight=$element.outerHeight();
var $allStickyElements=$('.jet-sticky-column').filter(function(){
var $this=$(this);
var elementSettings=$this.data('jet-settings');
return elementSettings&&elementSettings.stickyOn.indexOf(elementorFrontend.getCurrentDeviceMode())!==-1;
});
var currentIndex=$allStickyElements.index($element);
var $nextSticky=currentIndex + 1 < $allStickyElements.length ? $allStickyElements.eq(currentIndex + 1):null;
var $stopper=null;
if($nextSticky){
$stopper=$nextSticky.closest('.elementor-top-section, .e-parent');
if(!$stopper.length){
$stopper=$nextSticky;
}}
const $placeholder=$('<div></div>')
.addClass('jet-sticky-placeholder')
.css({
display: 'none',
height: originalHeight,
width: $element.outerWidth(),
visibility: 'hidden'
});
$element.before($placeholder);
function enableSticky(){
$placeholder.show();
$element.addClass('jet-sticky-container--stuck');
var stopperTop=$stopper?.offset()?.top;
var stopPoint=stopperTop ? (stopperTop - $element.outerHeight() - offsetTop - bottomSpacing):null;
var diff=0;
if(stopPoint&&stopPoint < $window.scrollTop()){
diff=(stopPoint - $window.scrollTop());
}
$element.css({
position: 'fixed',
top: diff + 'px',
transform: `translateY(${offsetTop}px)`,
left: $placeholder.offset().left + 'px',
width: $placeholder.outerWidth() + 'px'
});
}
function disableSticky(){
$placeholder.hide();
$element.removeClass('jet-sticky-container--stuck');
$element.css({
position: '',
top: '',
transform: '',
left: '',
width: ''
});
}
function onScroll(){
var scrollTop=$window.scrollTop();
if(scrollTop >=originalOffsetTop){
enableSticky();
}else{
disableSticky();
}}
function onResize(){
originalOffsetTop=$placeholder.offset().top;
originalHeight=$element.outerHeight();
$placeholder.css({
height: originalHeight,
width: $element.outerWidth()
});
onScroll();
}
let ticking=false;
$window.on('scroll.jetStickyHeader-' + elementId, function(){
if(!ticking){
requestAnimationFrame(function(){
onScroll();
ticking=false;
});
ticking=true;
}});
$window.on('resize.jetStickyHeader-' + elementId, JetTricksTools.debounce(100, onResize));
onScroll();
$window.on('resize.jetStickyHeader-' + elementId, JetTricksTools.debounce(100, function(){
if(-1===settings['stickyOn'].indexOf(elementorFrontend.getCurrentDeviceMode())){
cleanupSticky($element, $placeholder, elementId);
}}));
}
function cleanupSticky($element, $placeholder, elementId){
$placeholder.remove();
$element.css({
position: '',
top: '',
transform: '',
left: '',
width: '',
zIndex: '',
transition: '',
willChange: ''
});
$element.removeClass('jet-sticky-container--stuck');
$window.off('scroll.jetStickyHeader-' + elementId);
$window.off('resize.jetStickyHeader-' + elementId);
}
function initSidebarSticky($element, settings, options){
options.topSpacing=settings['topSpacing'];
options.bottomSpacing=settings['bottomSpacing'];
imagesLoaded($parentSection, function(){
$target.data('stickyColumnInit', true);
stickyInstance=new StickySidebar($target[0], options);
});
var targetMutation=$target[0],
config={ attributes: true, childList: true, subtree: true };
var observer=new MutationObserver(function(mutations){
for(var mutation of mutations){
if('attributes'===mutation.type&&mutation.attributeName!=='style'){
$target[0].style.height='auto';
}}
});
observer.observe(targetMutation, config);
$window.on('resize.JetTricksStickyColumn orientationchange.JetTricksStickyColumn',
JetTricksTools.debounce(50, resizeDebounce) );
var observer=new MutationObserver(function(mutations){
if(stickyInstance){
mutations.forEach(function(mutation){
if(mutation.attributeName==='class'){
setTimeout(function(){
stickyInstance.destroy();
stickyInstance=new StickySidebar($target[0], options);
}, 100);
}});
}});
$observerTarget.each(function(){
observer.observe($(this)[0], {
attributes: true
});
});
}
function initScrollUntilEndSticky($element, settings){
const stickyHeight=$element.outerHeight();
const stickyContentBottom=$element.offset().top + stickyHeight;
const stickyViewportOffset=$window.height() - stickyHeight - settings['bottomSpacing'];
$('body').addClass('jet-sticky-container');
$window.on('scroll.jetSticky', function (){
const scrollPosition=$window.scrollTop();
if(scrollPosition + $window.height() >=stickyContentBottom){
$element.css({
position: 'sticky',
top: stickyViewportOffset + 'px',
bottom: 'auto',
left: 'auto',
zIndex: settings['zIndex'],
});
}});
$observerTarget.on('destroy.jetSticky', function (){
$window.off('scroll.jetSticky');
$('body').removeClass('jet-sticky-container');
});
}
function initDefaultSticky($element, settings){
$('body').addClass('jet-sticky-container');
$element.addClass('jet-sticky-container-sticky');
$element.css({
'top': settings['topSpacing'],
'bottom': settings['bottomSpacing']
});
}
function resizeDebounce(){
var currentDeviceMode=elementorFrontend.getCurrentDeviceMode(),
availableDevices=settings['stickyOn']||[],
isInit=$target.data('stickyColumnInit');
if(-1!==availableDevices.indexOf(currentDeviceMode) ){
if(! isInit){
$target.data('stickyColumnInit', true);
stickyInstance=new StickySidebar($target[0], stickyInstanceOptions);
stickyInstance.updateSticky();
}}else{
$target.data('stickyColumnInit', false);
stickyInstance.destroy();
}}
},
elementorWidget: function($scope){
var parallaxInstance=null,
satelliteInstance=null,
tooltipInstance=null;
parallaxInstance=new jetWidgetParallax($scope);
parallaxInstance.init();
satelliteInstance=new jetWidgetSatellite($scope);
satelliteInstance.init();
tooltipInstance=new jetWidgetTooltip($scope);
tooltipInstance.init();
},
getElementorElementSettings: function($scope){
if(window.elementorFrontend&&window.elementorFrontend.isEditMode()&&$scope.hasClass('elementor-element-edit-mode') ){
return JetTricks.getEditorElementSettings($scope);
}
return $scope.data('settings')||{};},
getEditorElementSettings: function($scope){
var modelCID=$scope.data('model-cid'),
elementData;
if(! modelCID){
return {};}
if(! elementor.hasOwnProperty('config') ){
return {};}
if(! elementor.config.hasOwnProperty('elements') ){
return {};}
if(! elementor.config.elements.hasOwnProperty('data') ){
return {};}
elementData=elementor.config.elements.data[ modelCID ];
if(! elementData){
return {};}
return elementData.toJSON();
},
widgetViewMore: function($scope){
var $target=$scope.find('.jet-view-more'),
instance=null,
settings=$target.data('settings');
instance=new jetViewMore($target, settings);
instance.init();
},
widgetUnfold: function($scope){
var $target=$scope.find('.jet-unfold'),
$button=$('.jet-unfold__button', $target),
$mask=$('.jet-unfold__mask', $target),
$content=$('.jet-unfold__content', $target),
$contentInner=$('.jet-unfold__content-inner', $target),
$trigger=$('.jet-unfold__trigger', $target),
$separator=$('.jet-unfold__separator', $target),
settings=$.extend({}, $target.data('settings'), JetTricks.getElementorElementSettings($scope) ),
maskBreakpointsHeights=[],
prevBreakpoint='',
unfoldDuration=settings['unfoldDuration']||settings['unfold_duration'],
foldDuration=settings['foldDuration']||settings['fold_duration'],
unfoldEasing=settings['unfoldEasing']||settings['unfold_easing'],
foldEasing=settings['foldEasing']||settings['fold_easing'],
maskHeightAdv=20,
heightCalc='',
autoHide=settings['autoHide']||false,
autoHideTime=settings['autoHideTime']&&0!=settings['autoHideTime']['size'] ? settings['autoHideTime']['size']:5,
hideOutsideClick=settings['hideOutsideClick']||false,
heightControlType=settings['heightControlType']||'height',
wordCount=settings['wordCount']||20,
autoHideTrigger,
activeBreakpoints=elementor.config.responsive.activeBreakpoints,
initialLoaded=false;
function updateMaskGradientClass(){
if(settings.separatorType==='gradient'){
if($target.hasClass('jet-unfold-state')||$trigger.is(':hidden')){
$mask.removeClass('jet-unfold__mask-gradient');
}else{
$mask.addClass('jet-unfold__mask-gradient');
}}
}
function calculateHeightByWordCount(){
var text=$contentInner.text().trim();
if(!text){
return 0;
}
var words=text.split(/\s+/);
var wordsToShow=Math.min(getDeviceWordCount(), words.length);
var visibleText=words.slice(0, wordsToShow).join(' ');
var $tempElement=$contentInner.clone();
$tempElement
.css({
position: 'absolute',
visibility: 'hidden',
height: 'auto',
overflow: 'visible'
})
.text(visibleText);
$contentInner.after($tempElement);
var height=$tempElement.outerHeight();
$tempElement.remove();
return height;
}
maskBreakpointsHeights['desktop']=[];
maskBreakpointsHeights['widescreen']=[];
maskBreakpointsHeights['desktop']['maskHeight']=(settings['mask_height']&&settings['mask_height']['size']&&''!=settings['mask_height']['size']) ? settings['mask_height']['size']:50;
prevBreakpoint='desktop';
Object.keys(activeBreakpoints).reverse().forEach(function(breakpointName){
if('widescreen'===breakpointName){
maskBreakpointsHeights['widescreen']['maskHeight']=(settings['mask_height_widescreen']&&settings['mask_height_widescreen']['size']&&''!=settings['mask_height_widescreen']['size']) ? settings['mask_height_widescreen']['size']:maskBreakpointsHeights['desktop']['maskHeight'];
}else{
maskBreakpointsHeights[breakpointName]=[];
var breakpointSetting=settings['mask_height_' + breakpointName];
maskBreakpointsHeights[breakpointName]['maskHeight']=(breakpointSetting&&breakpointSetting['size']&&''!=breakpointSetting['size']) ? breakpointSetting['size']:maskBreakpointsHeights[prevBreakpoint]['maskHeight'];
prevBreakpoint=breakpointName;
}});
onLoaded();
if(typeof ResizeObserver!=='undefined'){
new ResizeObserver(function(entries){
if($target.hasClass('jet-unfold-state') ){
$mask.css({
'height': $contentInner.outerHeight()
});
}}).observe($contentInner[0]);
}
if('true'===hideOutsideClick){
$(window).on('mouseup', function(event){
let container=$target;
if(!container.is(event.target)&&0===container.has(event.target).length&&$target.hasClass('jet-unfold-state') ){
$button.trigger('click');
}})
}
$target.one('transitionend webkitTransitionEnd oTransitionEnd', function(){
if(!initialLoaded){
onLoaded();
initialLoaded=true;
}});
function onLoaded(){
initialLoaded=true;
var deviceHeight=getDeviceHeight();
heightCalc=+deviceHeight + maskHeightAdv;
if(heightCalc < $contentInner.height()){
if(! $target.hasClass('jet-unfold-state') ){
$separator.css({
'opacity': '1'
});
}
if(! $target.hasClass('jet-unfold-state') ){
$mask.css({
'height': deviceHeight
});
}else{
$mask.css({
'height': $contentInner.outerHeight()
});
}
$trigger.css('display', 'flex');
updateMaskGradientClass();
}else{
$trigger.hide();
$mask.css({
'height': '100%'
});
$content.css({
'max-height': 'none'
});
$separator.css({
'opacity': '0'
});
updateMaskGradientClass();
}}
$(window).on('resize.jetWidgetUnfold orientationchange.jetWidgetUnfold', JetTricksTools.debounce(50, function(){
initialLoaded=false;
onLoaded();
}) );
$button.keypress(function(e){
if(e.which==13){
$button.click();
return false;
}});
$button.on('click.jetUnfold', function(e){
var $this=$(this),
$buttonText=$('.jet-unfold__button-text', $this),
unfoldText=$this.data('unfold-text'),
foldText=$this.data('fold-text'),
$buttonIcon=$('.jet-unfold__button-icon', $this),
unfoldIcon=$this.data('unfold-icon'),
foldIcon=$this.data('fold-icon'),
contentHeight=$contentInner.outerHeight(),
deviceHeight=getDeviceHeight();
e.preventDefault();
if(! $target.hasClass('jet-unfold-state') ){
$target.addClass('jet-unfold-state');
$separator.css({
'opacity': '0'
});
$buttonIcon.html(foldIcon);
$buttonText.html(foldText);
setTimeout(function(){
contentHeight=$contentInner.outerHeight();
anime( {
targets: $mask[0],
height: contentHeight,
duration: unfoldDuration['size'],
easing: unfoldEasing,
complete: function(anim){
$(document).trigger('jet-engine/listing/recalculate-masonry');
}});
}, 0);
if('true'===autoHide){
autoHideTrigger=setTimeout(function(){
$button.trigger('click');
}, autoHideTime * 1000);
}}else{
clearTimeout(autoHideTrigger);
$target.removeClass('jet-unfold-state');
$separator.css({
'opacity': '1'
});
$buttonIcon.html(unfoldIcon);
$buttonText.html(unfoldText);
anime( {
targets: $mask[0],
height: deviceHeight,
duration: foldDuration['size'],
easing: foldEasing,
complete: function(anim){
if('true'===settings['foldScrolling']){
$('html, body').animate({
scrollTop: $target.offset().top - settings['foldScrollOffset']['size']
}, 'slow');
}
$(document).trigger('jet-engine/listing/recalculate-masonry');
}});
}
updateMaskGradientClass();
});
function getDeviceHeight(){
if(heightControlType==='word_count'){
return calculateHeightByWordCount();
}
let device=elementorFrontend.getCurrentDeviceMode();
let heightSettings;
switch(device){
case 'mobile':
heightSettings=settings.mask_height_mobile;
break;
case 'tablet':
heightSettings=settings.mask_height_tablet;
break;
default:
heightSettings=settings.mask_height;
}
if(! heightSettings||! heightSettings.size||! heightSettings.unit){
heightSettings=settings.mask_height;
}
switch(heightSettings.unit){
case 'vh':
return(window.innerHeight * heightSettings.size) / 100;
case '%':
let parentHeight=$contentInner.parent().height();
return(parentHeight * heightSettings.size) / 100;
default:
return heightSettings.size;
}}
function getDeviceWordCount(){
let device=elementorFrontend.getCurrentDeviceMode();
let value;
switch(device){
case 'mobile':
value=settings.word_count_mobile;
break;
case 'tablet':
value=settings.word_count_tablet;
break;
default:
value=settings.word_count;
}
if(value!==null&&value!==undefined){
return parseInt(value, 10);
}
return 20;
}},
widgetHotspots: function($scope){
var $target=$scope.find('.jet-hotspots'),
$hotspots=$('.jet-hotspots__item', $target),
settings=$target.data('settings'),
editMode=Boolean(elementor.isEditMode()),
itemActiveClass='jet-hotspots__item--active';
$target.imagesLoaded().progress(function(){
$target.addClass('image-loaded');
});
$hotspots.each(function(index){
var $this=$(this),
horizontal=$this.data('horizontal-position'),
vertical=$this.data('vertical-position'),
tooltipWidth=$this.data('tooltip-width')||null,
showOnInit=$this.data('show-on-init'),
itemSelector=$this[0],
options={};
$this.css({
'left': horizontal + '%',
'top': vertical + '%'
});
if(itemSelector._tippy){
itemSelector._tippy.destroy();
}
options={
content: $this.data('tippy-content'),
arrow: settings['tooltipArrow'] ? true:false,
placement: settings['tooltipPlacement'],
trigger: settings['tooltipTrigger'],
appendTo: editMode ? document.body:$target[0],
hideOnClick: 'manual'!==settings['tooltipTrigger'],
maxWidth: 'none',
offset: [0, settings['tooltipDistance']['size']],
allowHTML: true,
interactive: settings['tooltipInteractive'] ? true:false,
onShow(instance){
$(itemSelector).addClass(itemActiveClass);
if(tooltipWidth){
instance.popper.querySelector('.tippy-box').style.width=tooltipWidth;
}},
onHidden(instance){
$(itemSelector).removeClass(itemActiveClass);
}}
if('manual'!=settings['tooltipTrigger']){
options['duration']=[ settings['tooltipShowDuration']['size'], settings['tooltipHideDuration']['size'] ];
options['animation']=settings['tooltipAnimation'];
options['delay']=settings['tooltipDelay'];
}
tippy([ itemSelector ], options);
if('manual'===settings['tooltipTrigger']&&itemSelector._tippy){
itemSelector._tippy.show();
}
if(( showOnInit==='yes'||settings['tooltipShowOnInit'])&&itemSelector._tippy){
itemSelector._tippy.show();
}});
},
columnEditorSettings: function(columnId){
var editorElements=null,
columnData={};
if(! window.elementor.hasOwnProperty('elements') ){
return false;
}
editorElements=window.elementor.elements;
if(! editorElements.models){
return false;
}
$.each(editorElements.models, function(index, obj){
$.each(obj.attributes.elements.models, function(index, obj){
if(columnId==obj.id){
columnData=obj.attributes.settings.attributes;
}});
});
return {
'sticky': columnData['jet_tricks_column_sticky']||false,
'topSpacing': columnData['jet_tricks_top_spacing']||50,
'bottomSpacing': columnData['jet_tricks_bottom_spacing']||50,
'stickyOn': columnData['jet_tricks_column_sticky_on']||[ 'desktop', 'tablet', 'mobile']
}},
sectionEditorSettings: function($scope){
var editorElements=null,
sectionData={};
if(! window.elementor.hasOwnProperty('elements') ){
return false;
}
sectionData=JetTricks.getElementorElementSettings($scope);
return {
'particles': sectionData['section_jet_tricks_particles']||'false',
'particles_json': sectionData['section_jet_tricks_particles_json']||'',
}}
};
$(window).on('elementor/frontend/init', JetTricks.init);
var JetTricksTools={
debounce: function(threshold, callback){
var timeout;
return function debounced($event){
function delayed(){
callback.call(this, $event);
timeout=null;
}
if(timeout){
clearTimeout(timeout);
}
timeout=setTimeout(delayed, threshold);
};},
widgetEditorSettings: function(widgetId){
var editorElements=null,
widgetData={};
if(!window.elementor.hasOwnProperty('elements')||!window.elementor.elements.models){
return false;
}
editorElements=window.elementor.elements;
function findWidgetById(models, widgetId){
let foundData=null;
$.each(models, function(index, obj){
if(obj.id===widgetId){
foundData=obj.attributes.settings.attributes;
return false;
}
if(obj.attributes.elements&&obj.attributes.elements.models){
foundData=findWidgetById(obj.attributes.elements.models, widgetId);
if(foundData){
return false;
}}
});
return foundData;
}
widgetData=findWidgetById(editorElements.models, widgetId)||{};
return {
'speed': widgetData['jet_tricks_widget_parallax_speed']||{ 'size': 50, 'unit': '%'},
'parallax': widgetData['jet_tricks_widget_parallax']||'false',
'invert': widgetData['jet_tricks_widget_parallax_invert']||'false',
'stickyOn': widgetData['jet_tricks_widget_parallax_on']||[ 'desktop', 'tablet', 'mobile'],
'satellite': widgetData['jet_tricks_widget_satellite']||'false',
'satelliteType': widgetData['jet_tricks_widget_satellite_type']||'text',
'satellitePosition': widgetData['jet_tricks_widget_satellite_position']||'top-center',
'satelliteText': widgetData['jet_tricks_widget_satellite_text']||'Lorem Ipsum',
'satelliteIcon': widgetData['selected_jet_tricks_widget_satellite_icon']||'',
'satelliteImage': widgetData['jet_tricks_widget_satellite_image']||'',
'satelliteLink': widgetData['jet_tricks_widget_satellite_link']||'',
'tooltip': widgetData['jet_tricks_widget_tooltip']||'false',
'tooltipDescription': widgetData['jet_tricks_widget_tooltip_description']||'Lorem Ipsum',
'tooltipPlacement': widgetData['jet_tricks_widget_tooltip_placement']||'top',
'tooltipArrow': 'true'===widgetData['jet_tricks_widget_tooltip_arrow'] ? true:false,
'xOffset': widgetData['jet_tricks_widget_tooltip_x_offset']||0,
'yOffset': widgetData['jet_tricks_widget_tooltip_y_offset']||0,
'tooltipAnimation': widgetData['jet_tricks_widget_tooltip_animation']||'shift-toward',
'tooltipTrigger': widgetData['jet_tricks_widget_tooltip_trigger']||'mouseenter',
'customSelector': widgetData['jet_tricks_widget_tooltip_custom_selector']||'',
'zIndex': widgetData['jet_tricks_widget_tooltip_z_index']||'999',
'delay': widgetData['jet_tricks_widget_tooltip_delay']||'0',
'followCursor': widgetData['jet_tricks_widget_tooltip_follow_cursor']||'false'
}}
}
window.jetViewMore=function($selector, settings){
var self=this,
$window=$(window),
$button=$('.jet-view-more__button', $selector),
defaultSettings={
sections: {},
effect: 'move-up',
showall: false
},
settings=$.extend({}, defaultSettings, settings),
sections=settings['sections'],
sectionsData={},
editMode=Boolean(elementor.isEditMode()),
readLess=settings['read_less']||false,
readMoreLabel=settings['read_more_label'],
readLessLabel=settings['read_less_label'],
readMoreIcon=settings['read_more_icon'],
readLessIcon=settings['read_less_icon'],
hideAll=settings['hide_all']||false,
isOpened=false;
self.init=function(){
self.setSectionsData();
if(editMode){
return false;
}
function hideSection($section){
if(settings['hide_effect']&&settings['hide_effect']!=='none'){
$section.addClass('view-more-hiding');
$section.addClass('jet-tricks-' + settings['hide_effect'] + '-hide-effect');
(function($currentSection){
$currentSection.on('animationend', function animationEndHandler(){
$currentSection.off('animationend', animationEndHandler);
$currentSection.removeClass('view-more-hiding');
$currentSection.removeClass('jet-tricks-' + settings['hide_effect'] + '-hide-effect');
$currentSection.css('height', '');
$currentSection.removeClass('view-more-visible');
$currentSection.removeClass('jet-tricks-' + settings['effect'] + '-effect');
});
})($section);
}else{
$section.css('height', '');
$section.removeClass('view-more-visible');
$section.removeClass('jet-tricks-' + settings['effect'] + '-effect');
}}
function showAllSections(){
for(var section in sectionsData){
var $section=sectionsData[ section ]['selector'];
sectionsData[ section ]['visible']=true;
$section.css('height', $section[0].scrollHeight + 'px');
$section.addClass('view-more-visible');
$section.addClass('jet-tricks-' + settings['effect'] + '-effect');
}}
function hideAllSections(){
for(var section in sectionsData){
var $section=sectionsData[ section ]['selector'];
sectionsData[ section ]['visible']=false;
hideSection($section);
}}
function showNextSection(){
for(var section in sectionsData){
var $section=sectionsData[ section ]['selector'];
if(!sectionsData[ section ]['visible']){
sectionsData[ section ]['visible']=true;
$section.css('height', $section[0].scrollHeight + 'px');
$section.addClass('view-more-visible');
$section.addClass('jet-tricks-' + settings['effect'] + '-effect');
break;
}}
}
function hideNextSection(){
var sectionKeys=Object.keys(sectionsData).reverse();
for (var i=0; i < sectionKeys.length; i++){
var sectionKey=sectionKeys[i];
var $section=sectionsData[sectionKey]['selector'];
if(sectionsData[sectionKey]['visible']){
sectionsData[sectionKey]['visible']=false;
hideSection($section);
break;
}}
}
$button.on('click', function(){
if(readLess){
if(!isOpened){
if(!settings.showall){
showNextSection();
var allVisible=true;
for (var section in sectionsData){
if(!sectionsData[section]['visible']){
allVisible=false;
break;
}}
if(allVisible){
$button.find('.jet-view-more__label').text(readLessLabel);
if(readLessIcon&&readLessIcon.value){
$button.find('.jet-view-more__icon').html('<i class="' + readLessIcon.value + '"></i>');
}
$button.addClass('jet-view-more__button--read-less');
isOpened=true;
}}else{
showAllSections();
$button.find('.jet-view-more__label').text(readLessLabel);
if(readLessIcon&&readLessIcon.value){
$button.find('.jet-view-more__icon').html('<i class="' + readLessIcon.value + '"></i>');
}
$button.addClass('jet-view-more__button--read-less');
isOpened=true;
}}else{
if(hideAll){
hideAllSections();
$button.find('.jet-view-more__label').text(readMoreLabel);
if(readMoreIcon&&readMoreIcon.value){
$button.find('.jet-view-more__icon').html('<i class="' + readMoreIcon.value + '"></i>');
}
$button.removeClass('jet-view-more__button--read-less');
isOpened=false;
}else{
hideNextSection();
var allHidden=true;
for (var section in sectionsData){
if(sectionsData[section]['visible']){
allHidden=false;
break;
}}
if(allHidden){
$button.find('.jet-view-more__label').text(readMoreLabel);
if(readMoreIcon&&readMoreIcon.value){
$button.find('.jet-view-more__icon').html('<i class="' + readMoreIcon.value + '"></i>');
}
$button.removeClass('jet-view-more__button--read-less');
isOpened=false;
}}
}}else{
if(!settings.showall){
showNextSection();
}else{
showAllSections();
}
var allVisible=true;
for (var section in sectionsData){
if(!sectionsData[section]['visible']){
allVisible=false;
break;
}}
if(allVisible){
$button.css({ 'display': 'none' });
}}
});
$button.keydown(function(e){
var $which=e.which||e.keyCode;
if($which==13||$which==32){
e.preventDefault();
if(readLess){
$button.trigger('click');
}else{
if(!settings.showall){
showNextSection();
}else{
showAllSections();
}
var allVisible=true;
for (var section in sectionsData){
if(!sectionsData[section]['visible']){
allVisible=false;
break;
}}
if(allVisible){
$button.css({ 'display': 'none' });
}}
}});
};
self.setSectionsData=function(){
for(var section in sections){
var $selector=$('#' + sections[ section ]);
if(! editMode){
$selector.addClass('jet-view-more-section');
}else{
$selector.addClass('jet-view-more-section-edit-mode');
}
sectionsData[ section ]={
'section_id': sections[ section ],
'selector': $selector,
'visible': false,
}}
};};
window.jetWidgetParallax=function($scope){
var self=this,
$target=$scope,
$section=$scope.closest('.elementor-top-section'),
widgetId=$scope.data('id'),
settings={},
editMode=Boolean(elementor.isEditMode()),
$window=$(window),
isSafari     = !!navigator.userAgent.match(/Version\/[\d\.]+.*Safari/),
platform=navigator.platform,
safariClass=isSafari ? 'is-safari':'',
macClass='MacIntel'==platform ? ' is-mac':'';
self.init=function(){
$scope.addClass(macClass);
if(! editMode){
settings=$scope.data('jet-tricks-settings');
}else{
settings=JetTricksTools.widgetEditorSettings(widgetId);
}
if(! settings){
return false;
}
if('undefined'===typeof settings){
return false;
}
if('false'===settings['parallax']||'undefined'===typeof settings['parallax']){
return false;
}
$window.on('scroll.jetWidgetParallax resize.jetWidgetParallax', self.scrollHandler).trigger('resize.jetWidgetParallax');
};
self.scrollHandler=function(event){
var speed=+settings['speed']['size'] * 0.01,
invert='true'==settings['invert'] ? -1:1,
winHeight=$window.height(),
winScrollTop=$window.scrollTop(),
offsetTop=$scope.offset().top,
thisHeight=$scope.outerHeight(),
sectionHeight=$section.outerHeight(),
positionDelta=winScrollTop - offsetTop +(winHeight / 2),
abs=positionDelta > 0 ? 1:-1,
posY=abs * Math.pow(Math.abs(positionDelta), 0.85),
availableDevices=settings['stickyOn']||[],
currentDeviceMode=elementorFrontend.getCurrentDeviceMode();
posY=invert * Math.ceil(speed * posY);
if(-1!==availableDevices.indexOf(currentDeviceMode) ){
$target.css({
'transform': 'translateY(' + posY + 'px)'
});
}else{
$target.css({
'transform': 'translateY(0)'
});
}};};
window.jetWidgetSatellite=function($scope){
var self=this,
widgetId=$scope.data('id'),
settings={},
editMode=Boolean(elementor.isEditMode());
self.init=function(){
if(! editMode){
settings=$scope.data('jet-tricks-settings');
}else{
settings=JetTricksTools.widgetEditorSettings(widgetId);
}
if(! settings||typeof settings!=='object'){
return false;
}
if('false'===settings['satellite']||'undefined'===typeof settings['satellite']){
return false;
}
$scope.addClass('jet-satellite-widget');
$('.jet-tricks-satellite', $scope).addClass('jet-tricks-satellite--' + settings['satellitePosition']);
if(editMode&&$scope.find('.jet-tricks-satellite').length===0){
var html='';
var pos=settings['satellitePosition']||'top-center';
var link=settings['satelliteLink']||{};
var linkStart='', linkEnd='';
if(link.url){
linkStart='<a class="jet-tricks-satellite__link">';
linkEnd='</a>';
}
if(settings['satelliteType']==='text'&&settings['satelliteText']){
html='<div class="jet-tricks-satellite jet-tricks-satellite--' + pos + '"><div class="jet-tricks-satellite__inner"><div class="jet-tricks-satellite__text">' + linkStart + '<span>' + settings['satelliteText'] + '</span>' + linkEnd + '</div></div></div>';
}else if(settings['satelliteType']==='icon'&&settings['satelliteIcon']&&settings['satelliteIcon'].value){
html='<div class="jet-tricks-satellite jet-tricks-satellite--' + pos + '"><div class="jet-tricks-satellite__inner"><div class="jet-tricks-satellite__icon">' + linkStart + '<div class="jet-tricks-satellite__icon-instance jet-tricks-icon"><i class="' + settings['satelliteIcon'].value + '"></i></div>' + linkEnd + '</div></div></div>';
}else if(settings['satelliteType']==='image'&&settings['satelliteImage']&&settings['satelliteImage'].url){
html='<div class="jet-tricks-satellite jet-tricks-satellite--' + pos + '"><div class="jet-tricks-satellite__inner"><div class="jet-tricks-satellite__image">' + linkStart + '<img class="jet-tricks-satellite__image-instance" src="' + settings['satelliteImage'].url + '" alt="">' + linkEnd + '</div></div></div>';
}
if(html){
$scope.prepend(html);
}}
};};
window.jetWidgetTooltip=function($scope){
var self=this,
widgetId=$scope.data('id'),
widgetSelector=$scope[0],
tooltipSelector=widgetSelector,
settings={},
editMode=Boolean(elementor.isEditMode()),
delay,
tooltipEvent=editMode ? 'click':'mouseenter';
self.init=function(){
if(! editMode){
settings=$scope.data('jet-tricks-settings');
}else{
settings=JetTricksTools.widgetEditorSettings(widgetId);
}
if(widgetSelector._tippy){
widgetSelector._tippy.destroy();
}
if(! settings){
return false;
}
if('undefined'===typeof settings){
return false;
}
if('false'===settings['tooltip']||'undefined'===typeof settings['tooltip']||''===settings['tooltipDescription']){
return false;
}
$scope.addClass('jet-tooltip-widget');
if(settings['customSelector']){
tooltipSelector=$('.' + settings['customSelector'], $scope)[0];
}
if(editMode&&! $('#jet-tricks-tooltip-content-' + widgetId)[0]){
var template=$('<div>', {
id: 'jet-tricks-tooltip-content-' + widgetId,
class: 'jet-tooltip-widget__content'
});
template.html(settings['tooltipDescription']);
$scope.append(template);
}
tippy(
[ tooltipSelector ],
{
content: $scope.find('.jet-tooltip-widget__content')[0].innerHTML,
allowHTML: true,
appendTo: editMode ? document.body:widgetSelector,
arrow: settings['tooltipArrow'] ? true:false,
placement: settings['tooltipPlacement'],
offset: [ settings['xOffset'], settings['yOffset'] ],
animation: settings['tooltipAnimation'],
trigger: settings['tooltipTrigger'],
interactive: settings['followCursor']==='false'||settings['followCursor']==='initial',
zIndex: settings['zIndex'],
maxWidth: 'none',
delay: settings['delay']['size'] ? settings['delay']['size']:0,
followCursor: settings['followCursor']==='false' ? false:(settings['followCursor']==='true' ? true:settings['followCursor']),
onCreate: function (instance){
if(editMode){
var dataId=tooltipSelector.getAttribute('data-id');
if(dataId){
instance.popper.classList.add('tippy-' + dataId);
}}
}}
);
if(editMode&&widgetSelector._tippy){
widgetSelector._tippy.show();
}};};
}(jQuery, window.elementorFrontend) );
!function(n,t){var r,e;"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define("underscore",t):(n="undefined"!=typeof globalThis?globalThis:n||self,r=n._,(e=n._=t()).noConflict=function(){return n._=r,e})}(this,function(){var n="1.13.7",t="object"==typeof self&&self.self===self&&self||"object"==typeof global&&global.global===global&&global||Function("return this")()||{},e=Array.prototype,V=Object.prototype,F="undefined"!=typeof Symbol?Symbol.prototype:null,P=e.push,f=e.slice,s=V.toString,q=V.hasOwnProperty,r="undefined"!=typeof ArrayBuffer,u="undefined"!=typeof DataView,U=Array.isArray,W=Object.keys,z=Object.create,L=r&&ArrayBuffer.isView,$=isNaN,C=isFinite,K=!{toString:null}.propertyIsEnumerable("toString"),J=["valueOf","isPrototypeOf","toString","propertyIsEnumerable","hasOwnProperty","toLocaleString"],G=Math.pow(2,53)-1;function l(u,o){return o=null==o?u.length-1:+o,function(){for(var n=Math.max(arguments.length-o,0),t=Array(n),r=0;r<n;r++)t[r]=arguments[r+o];switch(o){case 0:return u.call(this,t);case 1:return u.call(this,arguments[0],t);case 2:return u.call(this,arguments[0],arguments[1],t)}for(var e=Array(o+1),r=0;r<o;r++)e[r]=arguments[r];return e[o]=t,u.apply(this,e)}}function o(n){var t=typeof n;return"function"==t||"object"==t&&!!n}function H(n){return void 0===n}function Q(n){return!0===n||!1===n||"[object Boolean]"===s.call(n)}function i(n){var t="[object "+n+"]";return function(n){return s.call(n)===t}}var X=i("String"),Y=i("Number"),Z=i("Date"),nn=i("RegExp"),tn=i("Error"),rn=i("Symbol"),en=i("ArrayBuffer"),a=i("Function"),t=t.document&&t.document.childNodes,p=a="function"!=typeof/./&&"object"!=typeof Int8Array&&"function"!=typeof t?function(n){return"function"==typeof n||!1}:a,t=i("Object"),un=u&&(!/\[native code\]/.test(String(DataView))||t(new DataView(new ArrayBuffer(8)))),a="undefined"!=typeof Map&&t(new Map),u=i("DataView");var h=un?function(n){return null!=n&&p(n.getInt8)&&en(n.buffer)}:u,v=U||i("Array");function y(n,t){return null!=n&&q.call(n,t)}var on=i("Arguments"),an=(!function(){on(arguments)||(on=function(n){return y(n,"callee")})}(),on);function fn(n){return Y(n)&&$(n)}function cn(n){return function(){return n}}function ln(t){return function(n){n=t(n);return"number"==typeof n&&0<=n&&n<=G}}function sn(t){return function(n){return null==n?void 0:n[t]}}var d=sn("byteLength"),pn=ln(d),hn=/\[object ((I|Ui)nt(8|16|32)|Float(32|64)|Uint8Clamped|Big(I|Ui)nt64)Array\]/;var vn=r?function(n){return L?L(n)&&!h(n):pn(n)&&hn.test(s.call(n))}:cn(!1),g=sn("length");function yn(n,t){t=function(t){for(var r={},n=t.length,e=0;e<n;++e)r[t[e]]=!0;return{contains:function(n){return!0===r[n]},push:function(n){return r[n]=!0,t.push(n)}}}(t);var r=J.length,e=n.constructor,u=p(e)&&e.prototype||V,o="constructor";for(y(n,o)&&!t.contains(o)&&t.push(o);r--;)(o=J[r])in n&&n[o]!==u[o]&&!t.contains(o)&&t.push(o)}function b(n){if(!o(n))return[];if(W)return W(n);var t,r=[];for(t in n)y(n,t)&&r.push(t);return K&&yn(n,r),r}function dn(n,t){var r=b(t),e=r.length;if(null==n)return!e;for(var u=Object(n),o=0;o<e;o++){var i=r[o];if(t[i]!==u[i]||!(i in u))return!1}return!0}function m(n){return n instanceof m?n:this instanceof m?void(this._wrapped=n):new m(n)}function gn(n){return new Uint8Array(n.buffer||n,n.byteOffset||0,d(n))}m.VERSION=n,m.prototype.valueOf=m.prototype.toJSON=m.prototype.value=function(){return this._wrapped},m.prototype.toString=function(){return String(this._wrapped)};var bn="[object DataView]";function mn(n,t,r,e){var u;return n===t?0!==n||1/n==1/t:null!=n&&null!=t&&(n!=n?t!=t:("function"==(u=typeof n)||"object"==u||"object"==typeof t)&&function n(t,r,e,u){t instanceof m&&(t=t._wrapped);r instanceof m&&(r=r._wrapped);var o=s.call(t);if(o!==s.call(r))return!1;if(un&&"[object Object]"==o&&h(t)){if(!h(r))return!1;o=bn}switch(o){case"[object RegExp]":case"[object String]":return""+t==""+r;case"[object Number]":return+t!=+t?+r!=+r:0==+t?1/+t==1/r:+t==+r;case"[object Date]":case"[object Boolean]":return+t==+r;case"[object Symbol]":return F.valueOf.call(t)===F.valueOf.call(r);case"[object ArrayBuffer]":case bn:return n(gn(t),gn(r),e,u)}o="[object Array]"===o;if(!o&&vn(t)){var i=d(t);if(i!==d(r))return!1;if(t.buffer===r.buffer&&t.byteOffset===r.byteOffset)return!0;o=!0}if(!o){if("object"!=typeof t||"object"!=typeof r)return!1;var i=t.constructor,a=r.constructor;if(i!==a&&!(p(i)&&i instanceof i&&p(a)&&a instanceof a)&&"constructor"in t&&"constructor"in r)return!1}e=e||[];u=u||[];var f=e.length;for(;f--;)if(e[f]===t)return u[f]===r;e.push(t);u.push(r);if(o){if((f=t.length)!==r.length)return!1;for(;f--;)if(!mn(t[f],r[f],e,u))return!1}else{var c,l=b(t);if(f=l.length,b(r).length!==f)return!1;for(;f--;)if(c=l[f],!y(r,c)||!mn(t[c],r[c],e,u))return!1}e.pop();u.pop();return!0}(n,t,r,e))}function c(n){if(!o(n))return[];var t,r=[];for(t in n)r.push(t);return K&&yn(n,r),r}function jn(e){var u=g(e);return function(n){if(null==n)return!1;var t=c(n);if(g(t))return!1;for(var r=0;r<u;r++)if(!p(n[e[r]]))return!1;return e!==_n||!p(n[wn])}}var wn="forEach",t=["clear","delete"],u=["get","has","set"],U=t.concat(wn,u),_n=t.concat(u),r=["add"].concat(t,wn,"has"),u=a?jn(U):i("Map"),t=a?jn(_n):i("WeakMap"),U=a?jn(r):i("Set"),a=i("WeakSet");function j(n){for(var t=b(n),r=t.length,e=Array(r),u=0;u<r;u++)e[u]=n[t[u]];return e}function An(n){for(var t={},r=b(n),e=0,u=r.length;e<u;e++)t[n[r[e]]]=r[e];return t}function xn(n){var t,r=[];for(t in n)p(n[t])&&r.push(t);return r.sort()}function Sn(f,c){return function(n){var t=arguments.length;if(c&&(n=Object(n)),!(t<2||null==n))for(var r=1;r<t;r++)for(var e=arguments[r],u=f(e),o=u.length,i=0;i<o;i++){var a=u[i];c&&void 0!==n[a]||(n[a]=e[a])}return n}}var On=Sn(c),w=Sn(b),Mn=Sn(c,!0);function En(n){var t;return o(n)?z?z(n):((t=function(){}).prototype=n,n=new t,t.prototype=null,n):{}}function Bn(n){return v(n)?n:[n]}function _(n){return m.toPath(n)}function Nn(n,t){for(var r=t.length,e=0;e<r;e++){if(null==n)return;n=n[t[e]]}return r?n:void 0}function In(n,t,r){n=Nn(n,_(t));return H(n)?r:n}function Tn(n){return n}function A(t){return t=w({},t),function(n){return dn(n,t)}}function kn(t){return t=_(t),function(n){return Nn(n,t)}}function x(u,o,n){if(void 0===o)return u;switch(null==n?3:n){case 1:return function(n){return u.call(o,n)};case 3:return function(n,t,r){return u.call(o,n,t,r)};case 4:return function(n,t,r,e){return u.call(o,n,t,r,e)}}return function(){return u.apply(o,arguments)}}function Dn(n,t,r){return null==n?Tn:p(n)?x(n,t,r):(o(n)&&!v(n)?A:kn)(n)}function Rn(n,t){return Dn(n,t,1/0)}function S(n,t,r){return m.iteratee!==Rn?m.iteratee(n,t):Dn(n,t,r)}function Vn(){}function Fn(n,t){return null==t&&(t=n,n=0),n+Math.floor(Math.random()*(t-n+1))}m.toPath=Bn,m.iteratee=Rn;var O=Date.now||function(){return(new Date).getTime()};function Pn(t){function r(n){return t[n]}var n="(?:"+b(t).join("|")+")",e=RegExp(n),u=RegExp(n,"g");return function(n){return e.test(n=null==n?"":""+n)?n.replace(u,r):n}}var r={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#x27;","`":"&#x60;"},qn=Pn(r),r=Pn(An(r)),Un=m.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g},Wn=/(.)^/,zn={"'":"'","\\":"\\","\r":"r","\n":"n","\u2028":"u2028","\u2029":"u2029"},Ln=/\\|'|\r|\n|\u2028|\u2029/g;function $n(n){return"\\"+zn[n]}var Cn=/^\s*(\w|\$)+\s*$/;var Kn=0;function Jn(n,t,r,e,u){return e instanceof t?(e=En(n.prototype),o(t=n.apply(e,u))?t:e):n.apply(r,u)}var M=l(function(u,o){function i(){for(var n=0,t=o.length,r=Array(t),e=0;e<t;e++)r[e]=o[e]===a?arguments[n++]:o[e];for(;n<arguments.length;)r.push(arguments[n++]);return Jn(u,i,this,this,r)}var a=M.placeholder;return i}),Gn=(M.placeholder=m,l(function(t,r,e){var u;if(p(t))return u=l(function(n){return Jn(t,u,r,this,e.concat(n))});throw new TypeError("Bind must be called on a function")})),E=ln(g);function B(n,t,r,e){if(e=e||[],t||0===t){if(t<=0)return e.concat(n)}else t=1/0;for(var u=e.length,o=0,i=g(n);o<i;o++){var a=n[o];if(E(a)&&(v(a)||an(a)))if(1<t)B(a,t-1,r,e),u=e.length;else for(var f=0,c=a.length;f<c;)e[u++]=a[f++];else r||(e[u++]=a)}return e}var Hn=l(function(n,t){var r=(t=B(t,!1,!1)).length;if(r<1)throw new Error("bindAll must be passed function names");for(;r--;){var e=t[r];n[e]=Gn(n[e],n)}return n});var Qn=l(function(n,t,r){return setTimeout(function(){return n.apply(null,r)},t)}),Xn=M(Qn,m,1);function Yn(n){return function(){return!n.apply(this,arguments)}}function Zn(n,t){var r;return function(){return 0<--n&&(r=t.apply(this,arguments)),n<=1&&(t=null),r}}var nt=M(Zn,2);function tt(n,t,r){t=S(t,r);for(var e,u=b(n),o=0,i=u.length;o<i;o++)if(t(n[e=u[o]],e,n))return e}function rt(o){return function(n,t,r){t=S(t,r);for(var e=g(n),u=0<o?0:e-1;0<=u&&u<e;u+=o)if(t(n[u],u,n))return u;return-1}}var et=rt(1),ut=rt(-1);function ot(n,t,r,e){for(var u=(r=S(r,e,1))(t),o=0,i=g(n);o<i;){var a=Math.floor((o+i)/2);r(n[a])<u?o=a+1:i=a}return o}function it(o,i,a){return function(n,t,r){var e=0,u=g(n);if("number"==typeof r)0<o?e=0<=r?r:Math.max(r+u,e):u=0<=r?Math.min(r+1,u):r+u+1;else if(a&&r&&u)return n[r=a(n,t)]===t?r:-1;if(t!=t)return 0<=(r=i(f.call(n,e,u),fn))?r+e:-1;for(r=0<o?e:u-1;0<=r&&r<u;r+=o)if(n[r]===t)return r;return-1}}var at=it(1,et,ot),ft=it(-1,ut);function ct(n,t,r){t=(E(n)?et:tt)(n,t,r);if(void 0!==t&&-1!==t)return n[t]}function N(n,t,r){if(t=x(t,r),E(n))for(u=0,o=n.length;u<o;u++)t(n[u],u,n);else for(var e=b(n),u=0,o=e.length;u<o;u++)t(n[e[u]],e[u],n);return n}function I(n,t,r){t=S(t,r);for(var e=!E(n)&&b(n),u=(e||n).length,o=Array(u),i=0;i<u;i++){var a=e?e[i]:i;o[i]=t(n[a],a,n)}return o}function lt(f){return function(n,t,r,e){var u=3<=arguments.length;return function(n,t,r,e){var u=!E(n)&&b(n),o=(u||n).length,i=0<f?0:o-1;for(e||(r=n[u?u[i]:i],i+=f);0<=i&&i<o;i+=f){var a=u?u[i]:i;r=t(r,n[a],a,n)}return r}(n,x(t,e,4),r,u)}}var st=lt(1),pt=lt(-1);function T(n,e,t){var u=[];return e=S(e,t),N(n,function(n,t,r){e(n,t,r)&&u.push(n)}),u}function ht(n,t,r){t=S(t,r);for(var e=!E(n)&&b(n),u=(e||n).length,o=0;o<u;o++){var i=e?e[o]:o;if(!t(n[i],i,n))return!1}return!0}function vt(n,t,r){t=S(t,r);for(var e=!E(n)&&b(n),u=(e||n).length,o=0;o<u;o++){var i=e?e[o]:o;if(t(n[i],i,n))return!0}return!1}function k(n,t,r,e){return E(n)||(n=j(n)),0<=at(n,t,r="number"==typeof r&&!e?r:0)}var yt=l(function(n,r,e){var u,o;return p(r)?o=r:(r=_(r),u=r.slice(0,-1),r=r[r.length-1]),I(n,function(n){var t=o;if(!t){if(null==(n=u&&u.length?Nn(n,u):n))return;t=n[r]}return null==t?t:t.apply(n,e)})});function dt(n,t){return I(n,kn(t))}function gt(n,e,t){var r,u,o=-1/0,i=-1/0;if(null==e||"number"==typeof e&&"object"!=typeof n[0]&&null!=n)for(var a=0,f=(n=E(n)?n:j(n)).length;a<f;a++)null!=(r=n[a])&&o<r&&(o=r);else e=S(e,t),N(n,function(n,t,r){u=e(n,t,r),(i<u||u===-1/0&&o===-1/0)&&(o=n,i=u)});return o}var bt=/[^\ud800-\udfff]|[\ud800-\udbff][\udc00-\udfff]|[\ud800-\udfff]/g;function mt(n){return n?v(n)?f.call(n):X(n)?n.match(bt):E(n)?I(n,Tn):j(n):[]}function jt(n,t,r){if(null==t||r)return(n=E(n)?n:j(n))[Fn(n.length-1)];for(var e=mt(n),r=g(e),u=(t=Math.max(Math.min(t,r),0),r-1),o=0;o<t;o++){var i=Fn(o,u),a=e[o];e[o]=e[i],e[i]=a}return e.slice(0,t)}function D(o,t){return function(r,e,n){var u=t?[[],[]]:{};return e=S(e,n),N(r,function(n,t){t=e(n,t,r);o(u,n,t)}),u}}var wt=D(function(n,t,r){y(n,r)?n[r].push(t):n[r]=[t]}),_t=D(function(n,t,r){n[r]=t}),At=D(function(n,t,r){y(n,r)?n[r]++:n[r]=1}),xt=D(function(n,t,r){n[r?0:1].push(t)},!0);function St(n,t,r){return t in r}var Ot=l(function(n,t){var r={},e=t[0];if(null!=n){p(e)?(1<t.length&&(e=x(e,t[1])),t=c(n)):(e=St,t=B(t,!1,!1),n=Object(n));for(var u=0,o=t.length;u<o;u++){var i=t[u],a=n[i];e(a,i,n)&&(r[i]=a)}}return r}),Mt=l(function(n,r){var t,e=r[0];return p(e)?(e=Yn(e),1<r.length&&(t=r[1])):(r=I(B(r,!1,!1),String),e=function(n,t){return!k(r,t)}),Ot(n,e,t)});function Et(n,t,r){return f.call(n,0,Math.max(0,n.length-(null==t||r?1:t)))}function Bt(n,t,r){return null==n||n.length<1?null==t||r?void 0:[]:null==t||r?n[0]:Et(n,n.length-t)}function R(n,t,r){return f.call(n,null==t||r?1:t)}var Nt=l(function(n,t){return t=B(t,!0,!0),T(n,function(n){return!k(t,n)})}),It=l(function(n,t){return Nt(n,t)});function Tt(n,t,r,e){Q(t)||(e=r,r=t,t=!1),null!=r&&(r=S(r,e));for(var u=[],o=[],i=0,a=g(n);i<a;i++){var f=n[i],c=r?r(f,i,n):f;t&&!r?(i&&o===c||u.push(f),o=c):r?k(o,c)||(o.push(c),u.push(f)):k(u,f)||u.push(f)}return u}var kt=l(function(n){return Tt(B(n,!0,!0))});function Dt(n){for(var t=n&&gt(n,g).length||0,r=Array(t),e=0;e<t;e++)r[e]=dt(n,e);return r}var Rt=l(Dt);function Vt(n,t){return n._chain?m(t).chain():t}function Ft(r){return N(xn(r),function(n){var t=m[n]=r[n];m.prototype[n]=function(){var n=[this._wrapped];return P.apply(n,arguments),Vt(this,t.apply(m,n))}}),m}N(["pop","push","reverse","shift","sort","splice","unshift"],function(t){var r=e[t];m.prototype[t]=function(){var n=this._wrapped;return null!=n&&(r.apply(n,arguments),"shift"!==t&&"splice"!==t||0!==n.length||delete n[0]),Vt(this,n)}}),N(["concat","join","slice"],function(n){var t=e[n];m.prototype[n]=function(){var n=this._wrapped;return Vt(this,n=null!=n?t.apply(n,arguments):n)}});n=Ft({__proto__:null,VERSION:n,restArguments:l,isObject:o,isNull:function(n){return null===n},isUndefined:H,isBoolean:Q,isElement:function(n){return!(!n||1!==n.nodeType)},isString:X,isNumber:Y,isDate:Z,isRegExp:nn,isError:tn,isSymbol:rn,isArrayBuffer:en,isDataView:h,isArray:v,isFunction:p,isArguments:an,isFinite:function(n){return!rn(n)&&C(n)&&!isNaN(parseFloat(n))},isNaN:fn,isTypedArray:vn,isEmpty:function(n){var t;return null==n||("number"==typeof(t=g(n))&&(v(n)||X(n)||an(n))?0===t:0===g(b(n)))},isMatch:dn,isEqual:function(n,t){return mn(n,t)},isMap:u,isWeakMap:t,isSet:U,isWeakSet:a,keys:b,allKeys:c,values:j,pairs:function(n){for(var t=b(n),r=t.length,e=Array(r),u=0;u<r;u++)e[u]=[t[u],n[t[u]]];return e},invert:An,functions:xn,methods:xn,extend:On,extendOwn:w,assign:w,defaults:Mn,create:function(n,t){return n=En(n),t&&w(n,t),n},clone:function(n){return o(n)?v(n)?n.slice():On({},n):n},tap:function(n,t){return t(n),n},get:In,has:function(n,t){for(var r=(t=_(t)).length,e=0;e<r;e++){var u=t[e];if(!y(n,u))return!1;n=n[u]}return!!r},mapObject:function(n,t,r){t=S(t,r);for(var e=b(n),u=e.length,o={},i=0;i<u;i++){var a=e[i];o[a]=t(n[a],a,n)}return o},identity:Tn,constant:cn,noop:Vn,toPath:Bn,property:kn,propertyOf:function(t){return null==t?Vn:function(n){return In(t,n)}},matcher:A,matches:A,times:function(n,t,r){var e=Array(Math.max(0,n));t=x(t,r,1);for(var u=0;u<n;u++)e[u]=t(u);return e},random:Fn,now:O,escape:qn,unescape:r,templateSettings:Un,template:function(o,n,t){n=Mn({},n=!n&&t?t:n,m.templateSettings);var r,t=RegExp([(n.escape||Wn).source,(n.interpolate||Wn).source,(n.evaluate||Wn).source].join("|")+"|$","g"),i=0,a="__p+='";if(o.replace(t,function(n,t,r,e,u){return a+=o.slice(i,u).replace(Ln,$n),i=u+n.length,t?a+="'+\n((__t=("+t+"))==null?'':_.escape(__t))+\n'":r?a+="'+\n((__t=("+r+"))==null?'':__t)+\n'":e&&(a+="';\n"+e+"\n__p+='"),n}),a+="';\n",t=n.variable){if(!Cn.test(t))throw new Error("variable is not a bare identifier: "+t)}else a="with(obj||{}){\n"+a+"}\n",t="obj";a="var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};\n"+a+"return __p;\n";try{r=new Function(t,"_",a)}catch(n){throw n.source=a,n}function e(n){return r.call(this,n,m)}return e.source="function("+t+"){\n"+a+"}",e},result:function(n,t,r){var e=(t=_(t)).length;if(!e)return p(r)?r.call(n):r;for(var u=0;u<e;u++){var o=null==n?void 0:n[t[u]];void 0===o&&(o=r,u=e),n=p(o)?o.call(n):o}return n},uniqueId:function(n){var t=++Kn+"";return n?n+t:t},chain:function(n){return(n=m(n))._chain=!0,n},iteratee:Rn,partial:M,bind:Gn,bindAll:Hn,memoize:function(e,u){function o(n){var t=o.cache,r=""+(u?u.apply(this,arguments):n);return y(t,r)||(t[r]=e.apply(this,arguments)),t[r]}return o.cache={},o},delay:Qn,defer:Xn,throttle:function(r,e,u){function o(){l=!1===u.leading?0:O(),i=null,c=r.apply(a,f),i||(a=f=null)}function n(){var n=O(),t=(l||!1!==u.leading||(l=n),e-(n-l));return a=this,f=arguments,t<=0||e<t?(i&&(clearTimeout(i),i=null),l=n,c=r.apply(a,f),i||(a=f=null)):i||!1===u.trailing||(i=setTimeout(o,t)),c}var i,a,f,c,l=0;return u=u||{},n.cancel=function(){clearTimeout(i),l=0,i=a=f=null},n},debounce:function(t,r,e){function u(){var n=O()-i;n<r?o=setTimeout(u,r-n):(o=null,e||(f=t.apply(c,a)),o||(a=c=null))}var o,i,a,f,c,n=l(function(n){return c=this,a=n,i=O(),o||(o=setTimeout(u,r),e&&(f=t.apply(c,a))),f});return n.cancel=function(){clearTimeout(o),o=a=c=null},n},wrap:function(n,t){return M(t,n)},negate:Yn,compose:function(){var r=arguments,e=r.length-1;return function(){for(var n=e,t=r[e].apply(this,arguments);n--;)t=r[n].call(this,t);return t}},after:function(n,t){return function(){if(--n<1)return t.apply(this,arguments)}},before:Zn,once:nt,findKey:tt,findIndex:et,findLastIndex:ut,sortedIndex:ot,indexOf:at,lastIndexOf:ft,find:ct,detect:ct,findWhere:function(n,t){return ct(n,A(t))},each:N,forEach:N,map:I,collect:I,reduce:st,foldl:st,inject:st,reduceRight:pt,foldr:pt,filter:T,select:T,reject:function(n,t,r){return T(n,Yn(S(t)),r)},every:ht,all:ht,some:vt,any:vt,contains:k,includes:k,include:k,invoke:yt,pluck:dt,where:function(n,t){return T(n,A(t))},max:gt,min:function(n,e,t){var r,u,o=1/0,i=1/0;if(null==e||"number"==typeof e&&"object"!=typeof n[0]&&null!=n)for(var a=0,f=(n=E(n)?n:j(n)).length;a<f;a++)null!=(r=n[a])&&r<o&&(o=r);else e=S(e,t),N(n,function(n,t,r){((u=e(n,t,r))<i||u===1/0&&o===1/0)&&(o=n,i=u)});return o},shuffle:function(n){return jt(n,1/0)},sample:jt,sortBy:function(n,e,t){var u=0;return e=S(e,t),dt(I(n,function(n,t,r){return{value:n,index:u++,criteria:e(n,t,r)}}).sort(function(n,t){var r=n.criteria,e=t.criteria;if(r!==e){if(e<r||void 0===r)return 1;if(r<e||void 0===e)return-1}return n.index-t.index}),"value")},groupBy:wt,indexBy:_t,countBy:At,partition:xt,toArray:mt,size:function(n){return null==n?0:(E(n)?n:b(n)).length},pick:Ot,omit:Mt,first:Bt,head:Bt,take:Bt,initial:Et,last:function(n,t,r){return null==n||n.length<1?null==t||r?void 0:[]:null==t||r?n[n.length-1]:R(n,Math.max(0,n.length-t))},rest:R,tail:R,drop:R,compact:function(n){return T(n,Boolean)},flatten:function(n,t){return B(n,t,!1)},without:It,uniq:Tt,unique:Tt,union:kt,intersection:function(n){for(var t=[],r=arguments.length,e=0,u=g(n);e<u;e++){var o=n[e];if(!k(t,o)){for(var i=1;i<r&&k(arguments[i],o);i++);i===r&&t.push(o)}}return t},difference:Nt,unzip:Dt,transpose:Dt,zip:Rt,object:function(n,t){for(var r={},e=0,u=g(n);e<u;e++)t?r[n[e]]=t[e]:r[n[e][0]]=n[e][1];return r},range:function(n,t,r){null==t&&(t=n||0,n=0),r=r||(t<n?-1:1);for(var e=Math.max(Math.ceil((t-n)/r),0),u=Array(e),o=0;o<e;o++,n+=r)u[o]=n;return u},chunk:function(n,t){if(null==t||t<1)return[];for(var r=[],e=0,u=n.length;e<u;)r.push(f.call(n,e,e+=t));return r},mixin:Ft,default:m});return n._=n});
window.wp=window.wp||{},function(r){var t="undefined"==typeof _wpUtilSettings?{}:_wpUtilSettings;wp.template=_.memoize(function(a){var n,s={evaluate:/<#([\s\S]+?)#>/g,interpolate:/\{\{\{([\s\S]+?)\}\}\}/g,escape:/\{\{([^\}]+?)\}\}(?!\})/g,variable:"data"};return function(t){var e=document.querySelector("script#tmpl-"+a);if(e)return(n=n||_.template(r(e).html(),s))(t);throw new Error("Template not found: #tmpl-"+a)}}),wp.ajax={settings:t.ajax||{},post:function(t,e){return wp.ajax.send({data:_.isObject(t)?t:_.extend(e||{},{action:t})})},send:function(n,t){var e,a;return _.isObject(n)?t=n:(t=t||{}).data=_.extend(t.data||{},{action:n}),t=_.defaults(t||{},{type:"POST",url:wp.ajax.settings.url,context:this}),(e=(a=r.Deferred(function(a){t.success&&a.done(t.success),t.error&&a.fail(t.error),delete t.success,delete t.error,a.jqXHR=r.ajax(t).done(function(t){var e;"1"!==t&&1!==t||(t={success:!0}),_.isObject(t)&&!_.isUndefined(t.success)?(e=this,a.done(function(){n&&n.data&&"query-attachments"===n.data.action&&a.jqXHR.hasOwnProperty("getResponseHeader")&&a.jqXHR.getResponseHeader("X-WP-Total")?e.totalAttachments=parseInt(a.jqXHR.getResponseHeader("X-WP-Total"),10):e.totalAttachments=0}),a[t.success?"resolveWith":"rejectWith"](this,[t.data])):a.rejectWith(this,[t])}).fail(function(){a.rejectWith(this,arguments)})})).promise()).abort=function(){return a.jqXHR.abort(),this},e}}}(jQuery);
var wpforms=window.wpforms||((s,d,p)=>{let a="wpforms-field-readonly";function e(e,t=""){return d?.wpforms_settings?.[e]??t}let m={cache:{},isUpdatingToken:!1,init(){p(m.ready),p(d).on("load",function(){"function"==typeof p.ready.then?p.ready.then(m.load):m.load()}),m.bindUIActions(),m.bindOptinMonster()},ready(){m.clearUrlQuery(),m.setUserIdentifier(),m.loadValidation(),m.loadHoneypot(),m.loadDatePicker(),m.loadTimePicker(),m.loadInputMask(),setTimeout(function(){m.loadPayments()},50),m.loadMailcheck(),m.loadChoicesJS(),m.initTokenUpdater(),m.restoreSubmitButtonOnEventPersisted(),m.bindChoicesJS(),m.readOnlyFieldsInit(),p(".wpforms-randomize").each(function(){for(var e=p(this),t=e.children().not(".wpforms-other-choice").toArray(),r=e.children(".wpforms-other-choice");t.length;)e.append(t.splice(Math.floor(Math.random()*t.length),1)[0]);r.length&&e.append(r)}),p(".wpforms-page-button").prop("disabled",!1),m.initFormsStartTime(),p(s).trigger("wpformsReady")},load(){},clearUrlQuery(){var e=d.location;let t=e.search;-1!==t.indexOf("wpforms_form_id=")&&(t=t.replace(/([&?]wpforms_form_id=[0-9]*$|wpforms_form_id=[0-9]*&|[?&]wpforms_form_id=[0-9]*(?=#))/,""),history.replaceState({},null,e.origin+e.pathname+t))},loadHoneypot(){p(".wpforms-form").each(function(){let e=p(this),t=e.data("formid"),r=[],a=[];var o,i,s,n;void 0!==wpforms_settings.hn_data[t]&&(p(`#wpforms-form-${t} .wpforms-field`).each(function(){var e=p(this);r.push(e.data("field-id")),a.push(e.find(".wpforms-field-label").text())}),o=m.getHoneypotRandomLabel(a.join(" ").split(" ")),i=m.getHoneypotFieldId(r),n=r[Math.floor(Math.random()*r.length)],s=`wpforms-${t}-field_`+i,p(`#wpforms-${t}-field_${n}-container`,e).before(`
<div id="${s}-container" class="wpforms-field wpforms-field-text" data-field-type="text" data-field-id="${i}" style="position: absolute !important; overflow: hidden !important; display: inline !important; height: 1px !important; width: 1px !important; z-index: -1000 !important; padding: 0 !important;">
<label class="wpforms-field-label" for="${s}" aria-hidden="true" style="counter-increment: none;"></label>
<input type="text" id="${s}" class="wpforms-field-medium" name="wpforms[fields][${i}]" aria-hidden="true" style="visibility: hidden;" tabindex="-1">
</div>`),(n=p(`#wpforms-${t}-field_${wpforms_settings.hn_data[t]}-container`,e)).find("input").attr({tabindex:"-1","aria-hidden":"true"}),n.find("label").text(o).attr("aria-hidden","true"))})},getHoneypotRandomLabel(t){let r="";for(let e=0;e<3;e++)r+=t[Math.floor(Math.random()*t.length)]+" ";return r.trim()},getHoneypotFieldId(t){var r=Math.max(...t);let a=0;for(let e=1;e<r;e++)if(!t.includes(e)){a=e;break}return a=a||r+1},loadValidation(){void 0===p.fn.validate?d.location.hash&&"#wpformsdebug"===d.location.hash&&console.log("jQuery Validation library not found."):(p(".wpforms-input-temp-name").each(function(e,t){var r=Math.floor(9999*Math.random())+1;p(this).attr("name","wpf-temp-"+r)}),p(s).on("change",".wpforms-validate input[type=url]",function(){var e=p(this).val();if(!e)return!1;"http://"!==e.substr(0,7)&&"https://"!==e.substr(0,8)&&p(this).val("https://"+e)}),p.validator.messages.required=wpforms_settings.val_required,p.validator.messages.url=wpforms_settings.val_url,p.validator.messages.email=wpforms_settings.val_email,p.validator.messages.number=wpforms_settings.val_number,p.validator.messages.min=e("val_min","Please enter a value greater than or equal to {0}").replace("{value}","{0}"),p.validator.messages.max=e("val_max","Please enter a value less than or equal to {0}").replace("{value}","{0}"),void 0!==p.fn.payment&&p.validator.addMethod("creditcard",function(e,t){e=p.payment.validateCardNumber(e);return this.optional(t)||e},wpforms_settings.val_creditcard),p.validator.addMethod("extension",function(e,t,r){return r="string"==typeof r?r.replace(/,/g,"|"):"png|jpe?g|gif",this.optional(t)||e.match(new RegExp("\\.("+r+")$","i"))},wpforms_settings.val_fileextension),p.validator.addMethod("maxsize",function(e,t,r){var a=r,r=this.optional(t);let o,i;if(r)return r;if(t.files&&t.files.length)for(o=0,i=t.files.length;o<i;o++)if(t.files[o].size>a)return!1;return!0},wpforms_settings.val_filesize),p.validator.addMethod("camera-required",function(e,t){var r=p(t).closest(".wpforms-field-camera");return!r.length||!(t.hasAttribute("required")||r.hasClass("wpforms-field-required"))||t.files&&0<t.files.length||0<r.find(".wpforms-camera-selected-file.wpforms-camera-selected-file-active").length},wpforms_settings.val_required),p.validator.addMethod("step",function(e,t,r){i=r;let a=Math.floor(i)!==i&&i.toString().split(".")[1].length||0;function o(e){return Math.round(e*Math.pow(10,a))}var i=o(p(t).attr("min"));return e=o(e)-i,this.optional(t)||o(e)%o(r)==0}),p.validator.methods.email=function(e,t){return this.optional(t)||(e=>{if("string"!=typeof e)return!1;var t=e.indexOf("@",1);if(e.length<6||254<e.length||-1===t)return!1;if(-1!==e.indexOf("@",t+1))return!1;var[t,e]=e.split("@");if(!t||!e)return!1;if(!/^[a-zA-Z0-9!#$%&'*+/=?^_`{|}~.-]+$/.test(t)||63<t.length)return!1;if(/\.{2,}/.test(e)||e.trim(" \t\n\r\0\v.")!==e)return!1;if((t=e.split(".")).length<2)return!1;var r,a=/^[a-z0-9-]+$/i;for(r of t)if(63<r.length||r.trim(" \t\n\r\0\v-")!==r||!a.test(r))return!1;return!0})(e)},p.validator.addMethod("restricted-email",function(e,t){var r=p(t);return!r.val().length||(r=r.closest(".wpforms-form").data("formid"),Object.prototype.hasOwnProperty.call(m.cache,r)&&Object.prototype.hasOwnProperty.call(m.cache[r],"restrictedEmailValidation")&&Object.prototype.hasOwnProperty.call(m.cache[r].restrictedEmailValidation,e)?m.cache[r].restrictedEmailValidation[e]:(m.restrictedEmailRequest(t,e),"pending"))},wpforms_settings.val_email_restricted),p.validator.addMethod("confirm",function(e,t,r){t=p(t).closest(".wpforms-field");return p(t.find("input")[0]).val()===p(t.find("input")[1]).val()},wpforms_settings.val_confirm),p.validator.addMethod("required-payment",function(e,t){return 0<m.amountSanitize(e)},wpforms_settings.val_requiredpayment),p.validator.addMethod("time12h",function(e,t){return this.optional(t)||/^((0?[1-9]|1[012])(:[0-5]\d){1,2}(\ ?[AP]M))$/i.test(e)},wpforms_settings.val_time12h),p.validator.addMethod("time24h",function(e,t){return this.optional(t)||/^(([0-1]?[0-9])|([2][0-3])):([0-5]?[0-9])(\ ?[AP]M)?$/i.test(e)},wpforms_settings.val_time24h),p.validator.addMethod("turnstile",function(e){return e},wpforms_settings.val_turnstile_fail_msg),p.validator.addMethod("time-limit",function(e,t){var t=p(t),r=t.data("min-time");return void 0===r||!(t.prop("required")||!m.empty(e))||(t=t.data("max-time"),m.compareTimesGreaterThan(t,r)?m.compareTimesGreaterThan(e,r)&&m.compareTimesGreaterThan(t,e):m.compareTimesGreaterThan(e,r)&&m.compareTimesGreaterThan(e,t)||m.compareTimesGreaterThan(r,e)&&m.compareTimesGreaterThan(t,e))},function(e,t){t=p(t);let r=t.data("min-time"),a=t.data("max-time");return r=r.replace(/^00:([0-9]{2})pm$/,"12:$1pm"),a=a.replace(/^00:([0-9]{2})pm$/,"12:$1pm"),r=r.replace(/(am|pm)/g," $1").toUpperCase(),a=a.replace(/(am|pm)/g," $1").toUpperCase(),wpforms_settings.val_time_limit.replace("{minTime}",r).replace("{maxTime}",a)}),p.validator.addMethod("check-limit",function(e,t){var t=p(t).closest("ul"),r=parseInt(t.attr("data-choice-limit")||0,10);return 0===r||t.find('input[type="checkbox"]:checked').length<=r},function(e,t){t=parseInt(p(t).closest("ul").attr("data-choice-limit")||0,10);return wpforms_settings.val_checklimit.replace("{#}",t)}),p.validator.addMethod("inputmask-incomplete",function(e,t){return 0===e.length||void 0===p.fn.inputmask||p(t).inputmask("isComplete")},wpforms_settings.val_inputmask_incomplete),p.validator.addMethod("required-positive-number",function(e,t){return 0<m.amountSanitize(e)},wpforms_settings.val_number_positive),p.validator.addMethod("required-minimum-price",function(e,t,r){t=p(t);return""===e&&!t.hasClass("wpforms-field-required")||Number(m.amountSanitize(m.amountFormat(r)))<=Number(m.amountSanitize(e))},wpforms_settings.val_minimum_price),p.validator.addMethod("password-strength",function(e,t){var r=p(t),t=WPFormsPasswordField.passwordStrength(e,t);return""===e&&!r.hasClass("wpforms-field-required")||t>=Number(r.data("password-strength-level"))},wpforms_settings.val_password_strength),p(".wpforms-validate").each(function(){var e=p(this),t=e.data("formid");let r;r=void 0!==d["wpforms_"+t]&&d["wpforms_"+t].hasOwnProperty("validate")?d["wpforms_"+t].validate:"undefined"!=typeof wpforms_validate?wpforms_validate:{errorElement:m.isModernMarkupEnabled()?"em":"label",errorClass:"wpforms-error",validClass:"wpforms-valid",ignore:":hidden:not(textarea.wp-editor-area):not(.wpforms-field-camera:not(.wpforms-conditional-hide) input), .wpforms-conditional-hide textarea.wp-editor-area",ignoreTitle:!0,errorPlacement(e,t){m.isLikertScaleField(t)?(t.closest("table").hasClass("single-row")?t.closest(".wpforms-field"):t.closest("tr").find("th")).append(e):m.isWrappedField(t)?t.closest(".wpforms-field").append(e):m.isDateTimeField(t)?m.dateTimeErrorPlacement(t,e):m.isFieldInColumn(t)||m.isFieldHasHint(t)?t.parent().append(e):m.isLeadFormsSelect(t)?t.parent().parent().append(e):t.hasClass("wp-editor-area")?t.parent().parent().parent().append(e):m.isClassicFileUploadWithCamera(t)?e.insertAfter(t.parent().find("p.wpforms-file-upload-capture-camera-classic")):e.insertAfter(t),m.isModernMarkupEnabled()&&e.attr({role:"alert","aria-label":wpforms_settings.errorMessagePrefix,for:""})},highlight(e,t,r){var a=p(e),o=a.closest(".wpforms-field"),i=a.attr("name");("radio"===a.attr("type")||"checkbox"===a.attr("type")?o.find('input[name="'+i+'"]'):a).addClass(t).removeClass(r),"password"===a.attr("type")&&""===a.val().trim()&&d.WPFormsPasswordField&&a.data("rule-password-strength")&&a.hasClass("wpforms-field-required")&&WPFormsPasswordField.passwordStrength("",e),o.addClass("wpforms-has-error")},unhighlight(e,t,r){var e=p(e),a=e.closest(".wpforms-field"),o=e.attr("name");("radio"===e.attr("type")||"checkbox"===e.attr("type")?a.find('input[name="'+o+'"]'):e).addClass(r).removeClass(t),a.find(":input.wpforms-error,[data-dz-errormessage]:not(:empty)").length||a.removeClass("wpforms-has-error"),m.isModernMarkupEnabled()&&e.parent().find("em.wpforms-error").remove()},submitHandler(s){function n(e,t){let r="label",a="";m.isModernMarkupEnabled()&&(r="em",a='role="alert"');var o=`<${r} id="wpforms-field_recaptcha-error" class="wpforms-error" ${a}> ${wpforms_settings.val_recaptcha_fail_msg}</${r}>`;e.find(".wpforms-recaptcha-container").append(o),m.restoreSubmitButton(e,t)}function l(e){var t=e.find(".wpforms-submit");t.prop("disabled",!0),WPFormsUtils.triggerEvent(e,"wpformsFormSubmitButtonDisable",[e,t])}function e(){let e=p(s),t=e.closest(".wpforms-container"),r=e.find(".wpforms-submit"),a=r.data("captchaInvalid"),o=r.data("alt-text"),i=r.get(0).recaptchaID;return e.data("token")&&0===p(".wpforms-token",e).length&&p('<input type="hidden" class="wpforms-token" name="wpforms[token]" />').val(e.data("token")).appendTo(e),e.find("#wpforms-field_recaptcha-error").remove(),l(e),o&&r.text(o),a?n(e,t):m.empty(i)&&0!==i?(p(".wpforms-input-temp-name").removeAttr("name"),void m.formSubmit(e)):(grecaptcha.execute(i).then(null,function(){grecaptcha.getResponse()||n(e,t)}),!1)}return"function"==typeof wpformsRecaptchaV3Execute?(l(p(s)),wpformsRecaptchaV3Execute(e)):e()},invalidHandler(e,t){void 0!==t.errorList[0]&&m.scrollToError(p(t.errorList[0].element))},onkeyup:WPFormsUtils.debounce(function(e,t){p(e).hasClass("wpforms-novalidate-onkeyup")||9===t.which&&""===this.elementValue(e)||-1!==p.inArray(t.keyCode,[16,17,18,20,35,36,37,38,39,40,45,144,225])||(e.name in this.submitted||e.name in this.invalid)&&this.element(e)},1e3),onfocusout:function(e){let t=!1;p(e).hasClass("wpforms-novalidate-onkeyup")&&!e.value&&(t=!0),this.checkable(e)||!(e.name in this.submitted)&&this.optional(e)||(t=!0),(t=p(e).data("server-error")?!1:t)&&this.element(e)},onclick(e){let t=!1;var r=(e||{}).type;let a=p(e);-1<["checkbox","radio"].indexOf(r)&&((a=a.hasClass("wpforms-likert-scale-option")?a.closest("tr"):a.closest(".wpforms-field")).find("label.wpforms-error, em.wpforms-error").remove(),t=!0),t&&this.element(e)}},e.validate(r),m.loadValidationGroups(e),e.find('.wpforms-field-camera input[ type="file" ], .wpforms-field-camera .dropzone-input').each(function(){var e=p(this);(e.closest(".wpforms-field-camera").hasClass("wpforms-field-required")||e.attr("required"))&&e.rules("add",{"camera-required":!0})})}))},restrictedEmailRequest(r,a){var e=p(r),t=e.closest("form");let o=t.data("validator"),i=t.data("formid");t=e.closest(".wpforms-field").data("field-id");m.cache[i]=m.cache[i]||{},o.startRequest(r),p.post({url:wpforms_settings.ajaxurl,type:"post",data:{action:"wpforms_restricted_email",form_id:i,field_id:t,email:a},dataType:"json",success(e){var t={},e=e.success&&e.data;e||(t[r.name]=wpforms_settings.val_email_restricted,o.showErrors(t)),m.cache[i].restrictedEmailValidation=m.cache[i].restrictedEmailValidation||[],Object.prototype.hasOwnProperty.call(m.cache[i].restrictedEmailValidation,a)||(m.cache[i].restrictedEmailValidation[a]=e),o.stopRequest(r,e)}})},isFieldInColumn(e){return e.parent().hasClass("wpforms-one-half")||e.parent().hasClass("wpforms-two-fifths")||e.parent().hasClass("wpforms-one-fifth")},isFieldHasHint(e){return 0<e.nextAll(".wpforms-field-sublabel, .wpforms-field-description, .wpforms-field-limit-text, .wpforms-pass-strength-result").length},isDateTimeField(e){return e.hasClass("wpforms-timepicker")||e.hasClass("wpforms-datepicker")||e.is("select")&&e.attr("class").match(/date-month|date-day|date-year/)},isWrappedField(e){return"checkbox"===e.attr("type")||"radio"===e.attr("type")||"range"===e.attr("type")||"select"===e.is("select")||1===e.data("is-wrapped-field")||e.parent().hasClass("iti")||e.hasClass("wpforms-validation-group-member")||e.hasClass("choicesjs-select")||e.hasClass("wpforms-net-promoter-score-option")||e.hasClass("wpforms-field-payment-coupon-input")},isLikertScaleField(e){return e.hasClass("wpforms-likert-scale-option")},isClassicFileUploadWithCamera(e){return 0<e.parent().find("p.wpforms-file-upload-capture-camera-classic").length},isLeadFormsSelect(e){return e.parent().hasClass("wpforms-lead-forms-select")},isCoupon(e){return console.warn('WARNING! Function "wpforms.isCoupon(element)" has been deprecated'),e.closest(".wpforms-field").hasClass("wpforms-field-payment-coupon")},dateTimeErrorPlacement(e,t){var r=e.closest(".wpforms-field-row-block, .wpforms-field-date-time");r.length?r.find("label.wpforms-error, em.wpforms-error").length||r.append(t):e.closest(".wpforms-field").append(t)},loadDatePicker(e){void 0!==p.fn.flatpickr&&(e=e?.length?e:p(s)).find(".wpforms-datepicker-wrap").each(function(){let a=p(this),e=a.find("input"),t=a.closest(".wpforms-form"),r=t.data("formid"),o=a.closest(".wpforms-field").data("field-id"),i;var s;!(i=void 0!==d["wpforms_"+r+"_"+o]&&d["wpforms_"+r+"_"+o].hasOwnProperty("datepicker")?d["wpforms_"+r+"_"+o].datepicker:void 0!==d["wpforms_"+r]&&d["wpforms_"+r].hasOwnProperty("datepicker")?d["wpforms_"+r].datepicker:"undefined"!=typeof wpforms_datepicker?wpforms_datepicker:{disableMobile:!0}).hasOwnProperty("locale")&&"undefined"!=typeof wpforms_settings&&wpforms_settings.hasOwnProperty("locale")&&(i.locale=wpforms_settings.locale),i.wrap=!0,i.dateFormat=e.data("date-format"),1===e.data("disable-past-dates")&&(i.minDate="today",1===e.data("disable-todays-date"))&&(s=new Date,i.minDate=s.setDate(s.getDate()+1));let n=e.data("limit-days"),l=["sun","mon","tue","wed","thu","fri","sat"];n&&""!==n&&(n=n.split(","),i.disable=[function(e){for(var t in n)if(l.indexOf(n[t])===e.getDay())return!1;return!0}]),i.onChange=function(e,t,r){a.find(".wpforms-datepicker-clear").css("display",""===t?"none":"block")},i.onReady=function(e,t,r){a.find(".wpforms-datepicker-clear").on("keydown",function(e){"Enter"!==e.key&&" "!==e.key||(e.preventDefault(),r.clear())}),a.find(".wpforms-datepicker-clear").on("click",function(e){e.preventDefault(),r.clear()})},a.flatpickr(i)})},loadTimePicker(e){void 0!==p.fn.timepicker&&(e=e?.length?e:p(s)).find(".wpforms-timepicker").each(function(){var e=p(this),t=e.closest(".wpforms-form").data("formid"),r=e.closest(".wpforms-field").data("field-id");let a;a=void 0!==d["wpforms_"+t+"_"+r]&&d["wpforms_"+t+"_"+r].hasOwnProperty("timepicker")?d["wpforms_"+t+"_"+r].timepicker:void 0!==d["wpforms_"+t]&&d["wpforms_"+t].hasOwnProperty("timepicker")?d["wpforms_"+t].timepicker:"undefined"!=typeof wpforms_timepicker?wpforms_timepicker:{scrollDefault:"now",forceRoundTime:!0};r=e.val();e.timepicker(a),r&&(e.val(r),e.trigger("changeTime"))})},loadInputMask(e){void 0!==p.fn.inputmask&&(e=e?.length?e:p(s)).find(".wpforms-masked-input").inputmask({rightAlign:!1})},fixPhoneFieldSnippets(t){console.warn("WARNING! Obsolete function called. Function wpforms.fixPhoneFieldSnippets($field) has been deprecated, please use the wpforms.repairSmartPhoneHiddenField($field) function instead!"),t.siblings('input[type="hidden"]').each(function(){var e;p(this).attr("name").includes("function")&&(e=(e=t.data("plugin_intlTelInput")).d||e.options)&&((d.intlTelInput?.getInstance(t[0]))?.destroy(),e.initialCountry=e.initialCountry.toLowerCase(),e.onlyCountries=e.onlyCountries.map(e=>e.toLowerCase()),e.preferredCountries=e.preferredCountries.map(e=>e.toLowerCase()),d.intlTelInput(t[0],e),t.siblings('input[type="hidden"]').each(function(){var e=p(this);e.attr("name",e.attr("name").replace("wpf-temp-",""))}))})},repairSmartPhoneHiddenField(e){console.warn('WARNING! Function "wpforms.repairSmartPhoneHiddenField()" has been deprecated, please use the new "WPFormsPhoneField.repairSmartHiddenField()" function instead!'),WPFormsPhoneField?.repairSmartHiddenField?.(e)},getDefaultSmartPhoneFieldOptions(){return console.warn('WARNING! Function "wpforms.getDefaultSmartPhoneFieldOptions()" has been deprecated, please use the new "WPFormsPhoneField.getDefaultSmartFieldOptions()" function instead!'),WPFormsPhoneField?.getDefaultSmartFieldOptions?.()},loadSmartPhoneField(e){console.warn('WARNING! Function "wpforms.loadSmartPhoneField()" has been deprecated, please use the new "WPFormsPhoneField.loadSmartField()" function instead!'),WPFormsPhoneField?.loadSmartField?.(e)},loadJqueryIntlTelInput(){console.warn('WARNING! Function "wpforms.loadJqueryIntlTelInput()" has been deprecated, please use the new "WPFormsPhoneField.loadJqueryIntlTelInput()" function instead!'),WPFormsPhoneField?.loadJqueryIntlTelInput?.()},initSmartPhoneField(e,t){console.warn('WARNING! Function "wpforms.initSmartPhoneField()" has been deprecated, please use the new "WPFormsPhoneField.initSmartField()" function instead!'),WPFormsPhoneField?.initSmartField?.(e,t)},bindSmartPhoneField(){console.warn('WARNING! Function "wpforms.bindSmartPhoneField()" has been deprecated, please use the new "WPFormsPhoneField.bindSmartField()" function instead!'),WPFormsPhoneField?.bindSmartField?.()},loadPayments(){p("input.wpforms-payment-total").each(function(e,t){m.amountTotal(this)}),void 0!==p.fn.payment&&(p(".wpforms-field-credit-card-cardnumber").payment("formatCardNumber"),p(".wpforms-field-credit-card-cardcvc").payment("formatCardCVC"))},loadMailcheck(){wpforms_settings.mailcheck_enabled&&void 0!==p.fn.mailcheck&&(0<wpforms_settings.mailcheck_domains.length&&(Mailcheck.defaultDomains=Mailcheck.defaultDomains.concat(wpforms_settings.mailcheck_domains)),0<wpforms_settings.mailcheck_toplevel_domains.length&&(Mailcheck.defaultTopLevelDomains=Mailcheck.defaultTopLevelDomains.concat(wpforms_settings.mailcheck_toplevel_domains)),p(s).on("blur",".wpforms-field-email input",function(){var e=p(this);if(1!==e.data("disable-suggestions")){let o=e.attr("id");e.mailcheck({suggested(e,t){t.full=t.full.replace(/%(?![0-9][0-9a-fA-F]+)/g,"%25"),t.address=t.address.replace(/%(?![0-9][0-9a-fA-F]+)/g,"%25"),t.domain=t.domain.replace(/%(?![0-9][0-9a-fA-F]+)/g,"%25"),t.address.match(/^xn--/)&&(t.full=punycode.toUnicode(decodeURI(t.full)),r=t.full.split("@"),t.address=r[0],t.domain=r[1]),t.domain.match(/^xn--/)&&(t.domain=punycode.toUnicode(decodeURI(t.domain)));var r=decodeURI(t.address).replaceAll(/[<>'"()/\\|:;=@%&\s]/gi,"").substr(0,64),a=decodeURI(t.domain).replaceAll(/[<>'"()/\\|:;=@%&+_\s]/gi,"");t='<a href="#" class="mailcheck-suggestion" data-id="'+o+'" title="'+wpforms_settings.val_email_suggestion_title+'">'+r+"@"+a+"</a>",t=wpforms_settings.val_email_suggestion.replace("{suggestion}",t),e.closest(".wpforms-field").find("#"+o+"_suggestion").remove(),e.parent().append('<label class="wpforms-error mailcheck-error" id="'+o+'_suggestion">'+t+"</label>")},empty(){p("#"+o+"_suggestion").remove()}})}}),p(s).on("click",".wpforms-field-email .mailcheck-suggestion",function(e){var t=p(this),r=t.closest(".wpforms-field"),a=t.data("id");e.preventDefault(),r.find("#"+a).val(t.text()),t.parent().remove()}))},loadChoicesJS(i){"function"==typeof d.Choices&&(i=i?.length?i:p(s)).find(".wpforms-field-select-style-modern .choicesjs-select, .wpforms-field-payment-select .choicesjs-select").each(function(e,t){var r,a,o;p(t).data("choicesjs")||WPFormsUtils.triggerEvent(i,"wpformsBeforeLoadElementChoices",[t]).isDefaultPrevented()||(r=d.wpforms_choicesjs_config||{},a=p(t).data("search-enabled"),o=p(t).data("remove-items-enabled"),r.searchEnabled=void 0===a||a,r.removeItems=void 0===o||o,r.removeItemButton=r.removeItems,r.allowHTML=!0,r.callbackOnInit=function(){let t=this,r=p(t.passedElement.element),e=t.input?.element,a=p(e),o=r.data("size-class"),i=r.attr("id"),s=this.dropdown.element.querySelector('[role="listbox"]'),n=this.passedElement.element.multiple;var l;t.containerOuter&&t.containerOuter.element&&i&&n&&(t.containerOuter.element.setAttribute("aria-haspopup","listbox"),t.containerOuter.element.setAttribute("aria-labelledby",i)),e&&s&&(l="choices-listbox-"+this.passedElement.element.id,s.id=l,e.setAttribute("aria-controls",l),e.setAttribute("aria-owns",l)),t.passedElement.element.addEventListener("showDropdown",()=>{e&&n&&e.focus()}),r.removeAttr("hidden").addClass(t.config.classNames.input+"--hidden"),o&&p(t.containerOuter.element).addClass(o),r.prop("multiple")&&(a.data("placeholder",a.attr("placeholder")).css("width","auto"),t.getValue(!0).length&&a.removeAttr("placeholder"),a.css("width","1ch")),r.on("change",function(){r.prop("multiple")&&(t.getValue(!0).length?a.removeAttr("placeholder"):a.attr("placeholder",a.data("placeholder")).css("width","auto"));var e=r.closest("form").data("validator");e&&e.element(r)})},r.callbackOnCreateTemplates=function(){let r=p(this.passedElement.element);return{option(e){var t=Choices.defaults.templates.option.call(this,e);return void 0!==e.placeholder&&!0===e.placeholder&&t.classList.add("placeholder"),r.hasClass("wpforms-payment-price")&&null!=e.customProperties&&(t.dataset.amount=e.customProperties),t}}},p(t).data("choicesjs",new Choices(t,r)))})},bindChoicesJS(){p(s).on("click",".choices",function(e){var t=p(this),r=t.find("select").data("choicesjs");r&&t.hasClass("is-open")&&(e.target.classList.contains("choices__inner")||e.target.classList.contains("choices__arrow"))&&r.hideDropdown()})},bindUIActions(){var e=p(s);e.on("click",".wpforms-page-button",function(e){e.preventDefault(),m.pagebreakNav(this)});let t;e.on("change input",".wpforms-payment-price",function(){clearTimeout(t),t=setTimeout(()=>{m.amountTotal(this,!0)},0)});let r;e.on("change","select.wpforms-payment-quantity",function(){clearTimeout(r),r=setTimeout(()=>{m.amountTotal(this,!0),m.updateOrderSummaryItemQuantity(p(this))},0)}),e.on("input",".wpforms-payment-user-input",function(){var e=p(this),t=e.val();e.val(t.replace(/[^0-9.,]/g,""))}),e.on("focusout",".wpforms-payment-user-input",function(){var e=p(this),t=e.val();if(!t)return t;t=m.amountSanitize(t),t=m.amountFormat(t);e.val(t)});let a;e.on("wpformsProcessConditionals",function(e,t){clearTimeout(a),a=setTimeout(()=>{m.amountTotal(t,!0)},0)}),e.on("mouseenter",".wpforms-field-rating-item",function(){p(this).parent().find(".wpforms-field-rating-item").removeClass("selected hover"),p(this).prevAll().addBack().addClass("hover")}).on("mouseleave",".wpforms-field-rating-item",function(){p(this).parent().find(".wpforms-field-rating-item").removeClass("selected hover"),p(this).parent().find("input:checked").parent().prevAll().addBack().addClass("selected")}),p(s).on("change",".wpforms-field-rating-item input",function(){var e=p(this),t=e.closest(".wpforms-field-rating-items").find(".wpforms-field-rating-item");e.focus(),t.removeClass("hover selected"),e.parent().prevAll().addBack().addClass("selected")}),p(function(){p(".wpforms-field-rating-item input:checked").trigger("change")}),e.on("keydown",".wpforms-image-choices-item label",function(e){var t=p(this);if(t.closest(".wpforms-field").hasClass("wpforms-conditional-hide"))return e.preventDefault(),!1;32===e.keyCode&&(t.find("input").trigger("click"),e.preventDefault())}),m.bindOtherOptionActions(),d.document.documentMode&&e.on("click",".wpforms-image-choices-item img",function(){p(this).closest("label").find("input").trigger("click")}),e.on("change",".wpforms-field-checkbox input, .wpforms-field-radio input, .wpforms-field-payment-multiple input, .wpforms-field-payment-checkbox input, .wpforms-field-gdpr-checkbox input",function(e){var t=p(this);if(t.closest(".wpforms-field").hasClass("wpforms-conditional-hide"))return e.preventDefault(),!1;switch(t.attr("type")){case"radio":t.closest("ul").find("li").removeClass("wpforms-selected").find("input[type=radio]").removeProp("checked"),t.prop("checked",!0).closest("li").addClass("wpforms-selected");break;case"checkbox":t.is(":checked")?(t.closest("li").addClass("wpforms-selected"),t.prop("checked",!0)):(t.closest("li").removeClass("wpforms-selected"),t.prop("checked",!1))}}),e.on("input",".wpforms-field-file-upload",function(){var e=p(this),t=e.closest("form.wpforms-form").find('.wpforms-field-file-upload input:not(".dropzone-input")');let a=0,r=Number(wpforms_settings.post_max_size),o='<div class="wpforms-error-container-post_max_size">'+wpforms_settings.val_post_max_size+"</div>";e=e.closest("form.wpforms-form").find(".wpforms-submit-container");let i=e.find("button.wpforms-submit"),s=e.prev();var n=i.closest("form"),l=n.find(".wpforms-page-next:visible");0!==n.find(".wpforms-page-indicator").length&&0!==l.length&&(i=l),t.each(function(){var e=p(this);let t=0;for(var r=e[0].files.length;t<r;t++)a+=e[0].files[t].size}),a<r?(s.find(".wpforms-error-container-post_max_size").remove(),i.prop("disabled",!1),WPFormsUtils.triggerEvent(n,"wpformsFormSubmitButtonRestore",[n,i]),WPFormsUtils.triggerEvent(n,"wpformsCombinedUploadsSizeOk",[n,s])):(a=Number((a/1048576).toFixed(3)),r=Number((r/1048576).toFixed(3)),o=o.replace(/{totalSize}/,a).replace(/{maxSize}/,r),s.hasClass("wpforms-error-container")?(s.find(".wpforms-error-container-post_max_size").remove(),s.append(o)):(e.before('<div class="wpforms-error-container">{errorMsg}</div>'.replace(/{errorMsg}/,o)),s=e.prev()),i.prop("disabled",!0),WPFormsUtils.triggerEvent(n,"wpformsFormSubmitButtonDisable",[n,i]),WPFormsUtils.triggerEvent(n,"wpformsCombinedUploadsSizeError",[n,s]))}),e.on("change input",".wpforms-field-number-slider input[type=range]",function(e){var t=p(e.target).siblings(".wpforms-field-number-slider-hint");t.html(t.data("hint").replaceAll("{value}","<b>"+e.target.value+"</b>"))}),e.on("keydown",".wpforms-form input",function(e){var t,r;13!==e.keyCode||0===(r=(t=p(this)).closest(".wpforms-page")).length||["text","tel","number","email","url","radio","checkbox"].indexOf(t.attr("type"))<0||(t.hasClass("wpforms-datepicker")&&t.flatpickr("close"),t.hasClass("dropzone-input"))||(e.preventDefault(),(r.hasClass("last")?r.closest(".wpforms-form").find(".wpforms-submit"):r.find(".wpforms-page-next")).trigger("click"))}),e.on("keypress",".wpforms-field-number input",function(e){return/^[-0-9.]+$/.test(String.fromCharCode(e.keyCode||e.which))}),e.one("input",".wpforms-field input, .wpforms-field textarea, .wpforms-field select",m.formChanged).one("change",".wpforms-field-select-style-modern, .wpforms-timepicker",m.formChanged).one("focus",".dropzone-input",m.formChanged).one("click touchstart",".wpforms-signature-canvas",m.formChanged).one("wpformsRichTextContentChange",m.richTextContentChanged),p("form.wpforms-form").on("wpformsBeforePageChange",m.skipEmptyPages)},bindOtherOptionActions(){p(s).on("change",'.wpforms-field-radio input[type="radio"]',function(){var e=p(this),t=e.closest(".wpforms-field"),r=e.closest("li"),t=t.find(".wpforms-other-input");t.addClass("wpforms-hidden").prop("disabled",!0).prop("required",!1),e.is(":checked")&&r.hasClass("wpforms-other-choice")&&t.removeClass("wpforms-hidden").prop("disabled",!1).prop("required",!0)})},skipEmptyPages(e,t,r,a){var o=m.findNonEmptyPage(t,r,a);o!==t&&(e.preventDefault(),1===o&&"prev"===a?(e=r.find(".wpforms-page-2"),a=r.find(".wpforms-page-"+t),t=(e.find(".wpforms-page-prev").length?e:a).find(".wpforms-page-prev"),wpforms.navigateToPage(t,"prev",2,r,e)):(t=r.find(".wpforms-page-"+(a=o-1)),wpforms.navigateToPage(t.find(".wpforms-page-next"),"next",a,r,t)))},findNonEmptyPage(e,t,r){let a=e;for(;m.isEmptyPage(t,a);)"prev"===r?a--:a++;return a},isEmptyPage(e,t){return 1!==t&&!(e=e.find(".wpforms-page-"+t)).hasClass("last")&&(t=e.find(".wpforms-field:not(.wpforms-field-pagebreak):not(.wpforms-field-hidden)"),e.find(".wpforms-conditional-hide").length===t.length)},formChanged(e){var t=p(this).closest(".wpforms-form");m.maybeSetStartTime(t)},richTextContentChanged(e,t,r){r=r.getContainer(),r=p(r).closest(".wpforms-form");m.maybeSetStartTime(r)},initFormsStartTime(){p(".wpforms-form").each(function(){m.maybeSetStartTime(p(this))})},maybeSetStartTime(e){m.getStartTimestampData(e)||e.data("start_timestamp",m.getTimestampSec())},getStartTimestampData(e){return e.hasClass("wpforms-form")&&0<(e=parseInt(e.data("start_timestamp"),10)||0)?e:0},entryPreviewFieldPageChange(e,t,r){console.warn("WARNING! Obsolete function called. Function wpforms.entryPreviewFieldPageChange has been deprecated, please use the WPFormsEntryPreview.pageChange function instead!"),WPFormsEntryPreview.pageChange(e,t,r)},entryPreviewFieldUpdate(e,t){console.warn("WARNING! Obsolete function called. Function wpforms.entryPreviewFieldUpdate has been deprecated, please use the WPFormsEntryPreview.update function instead!"),WPFormsEntryPreview.update(e,t)},scrollToError(e){if(0!==e.length){let t=e.find(".wpforms-field.wpforms-has-error");0!==(t=0===t.length?e.closest(".wpforms-field"):t).length&&void 0!==(e=t.offset())&&m.animateScrollTop(e.top-75,750).done(function(){var e=t.find(".wpforms-error").first();"function"==typeof e.focus&&e.trigger("focus")})}},pagebreakNav(e){let t=p(e),r=t.data("action"),a=t.data("page"),o=t.closest(".wpforms-form"),i=o.find(".wpforms-page-"+a);m.saveTinyMCE(),"next"===r&&void 0!==p.fn.validate?m.checkForInvalidFields(o,i,function(){m.navigateToPage(t,r,a,o,i)}):"prev"!==r&&"next"!==r||m.navigateToPage(t,r,a,o,i)},checkForInvalidFields(e,t,r){var o=e.data("validator");if(o){let a=!0;t.find(":input").each(function(e,t){var r=p(t);!r.attr("name")||r.hasClass("wpforms-field-skip-validation")||p(t).valid()||(a=!1)}),0<o.pendingRequest?setTimeout(function(){m.checkForInvalidFields(e,t,r)},800):a?r():m.scrollToError(t)}},navigateToPage(t,r,a,o,e){if(!t.hasClass("wpforms-disabled")){let e=a;"next"===r?e+=1:"prev"===r&&--e,WPFormsUtils.triggerEvent(t,"wpformsBeforePageChange",[e,o,r]).isDefaultPrevented()||(o.find(".wpforms-page").hide(),(a=o.find(".wpforms-page-"+e)).show(),m.toggleReCaptchaAndSubmitDisplay(o,r,a),m.checkTurnstileVisibility(o),(a=m.getPageScroll(o))&&m.animateScrollTop(o.offset().top-a,750,null),t.trigger("wpformsPageChange",[e,o,r]),m.manipulateIndicator(e,o))}},toggleReCaptchaAndSubmitDisplay(e,t,r){var a=e.find(".wpforms-submit-container"),e=e.find(".wpforms-recaptcha-container");"next"===t&&r.hasClass("last")?(e.show(),a.show()):"prev"===t&&(e.hide(),a.hide())},checkTurnstileVisibility(e){var t,e=e.find(".wpforms-recaptcha-container");e.hasClass("wpforms-is-turnstile")&&(t=e.find(".cf-turnstile").height(),0===parseInt(t,10)?e.addClass("wpforms-is-turnstile-invisible"):e.removeClass("wpforms-is-turnstile-invisible"))},getPageScroll(e){return!1!==d.wpforms_pageScroll&&(m.empty(d.wpform_pageScroll)?0!==e.find(".wpforms-page-indicator").data("scroll")&&75:d.wpform_pageScroll)},manipulateIndicator(e,t){var r,a=t.find(".wpforms-page-indicator");a&&("connector"===(r=a.data("indicator"))||"circles"===r?m.manipulateConnectorAndCirclesIndicator(a,r,e):"progress"===r&&m.manipulateProgressIndicator(a,t,e))},manipulateConnectorAndCirclesIndicator(e,t,r){var a=e.data("indicator-color");e.find(".wpforms-page-indicator-page").removeClass("active"),e.find(".wpforms-page-indicator-page-"+r).addClass("active"),e.find(".wpforms-page-indicator-page-number").removeAttr("style"),e.find(".active .wpforms-page-indicator-page-number").css("background-color",a),"connector"===t&&(e.find(".wpforms-page-indicator-page-triangle").removeAttr("style"),e.find(".active .wpforms-page-indicator-page-triangle").css("border-top-color",a))},manipulateProgressIndicator(e,t,r){var a=e.find(".wpforms-page-indicator-page-title"),o=e.find(".wpforms-page-indicator-page-title-sep"),t=r/t.find(".wpforms-page").length*100;e.find(".wpforms-page-indicator-page-progress").css("width",t+"%"),e.find(".wpforms-page-indicator-steps-current").text(r),a.data("page-"+r+"-title")?(a.css("display","inline").text(a.data("page-"+r+"-title")),o.css("display","inline")):(a.css("display","none"),o.css("display","none"))},bindOptinMonster(){s.addEventListener("om.Campaign.load",function(e){m.ready(),m.optinMonsterRecaptchaReset(e.detail.Campaign.data.id)}),s.addEventListener("om.Campaign.afterShow",function(e){"undefined"!=typeof WPFormsRepeaterField&&WPFormsRepeaterField.ready()}),p(s).on("OptinMonsterOnShow",function(e,t,r){m.ready(),m.optinMonsterRecaptchaReset(t.optin),"undefined"!=typeof WPFormsRepeaterField&&WPFormsRepeaterField.ready()})},optinMonsterRecaptchaReset(e){var e=p("#om-"+e).find(".wpforms-form"),r=e.find(".wpforms-recaptcha-container");let a,o,i;if(i=r.hasClass("wpforms-is-hcaptcha")?(a=e.find(".h-captcha"),o="h-captcha",hcaptcha):r.hasClass("wpforms-is-turnstile")?(a=e.find(".cf-turnstile"),o="cf-turnstile",turnstile):(a=e.find(".g-recaptcha"),o="g-recaptcha",grecaptcha),e.length&&a.length){let e=a.attr("data-sitekey"),t="recaptcha-"+Date.now();a.remove(),r.prepend('<div class="'+o+'" id="'+t+'" data-sitekey="'+e+'"></div>'),i.render(t,{sitekey:e,callback(){wpformsRecaptchaCallback(p("#"+t))}})}},amountTotal(e,t){t=t||!1;let r=p(e),a=r.closest(".wpforms-form"),o=m.amountTotalCalc(a);if(m.allowAmountTotalCalc(a,r,o)){let e=m.amountFormatSymbol(o);a.find(".wpforms-payment-total").each(function(){"hidden"===p(this).attr("type")||"text"===p(this).attr("type")?(p(this).val(e),"text"===p(this).attr("type")&&t&&a.data("validator")&&p(this).valid()):p(this).text(e)}),m.updateOrderSummaryItems(a,r,e)}},allowAmountTotalCalc(e,t,r){var e=e.data("formid");return m.getCache(e,"amountTotal")!==r?(m.updateCache(e,"amountTotal",r),!0):"radio"===(e=t.prop("type"))||"select-one"===e||"checkbox"===e},updateOrderSummaryItems(e,t,r){var a=e.find(".wpforms-order-summary-preview");if(0!==a.length){let o=e.find(".wpforms-payment-price");a.each(function(){let a=p(this),e=(""!==r&&a.find(".wpforms-order-summary-preview-total .wpforms-order-summary-item-price").text(r),t=>{let r=Math.min(t+10,o.length);for(let e=t;e<r;e++)m.updateOrderSummaryItem(p(o[e]),a);r<o.length&&setTimeout(()=>e(r),0)});e(0)})}},updateCache(e,t,r){m.cache[e]=m.cache[e]||{},m.cache[e][t]=r},getCache(e,t){return!(!Object.prototype.hasOwnProperty.call(m.cache,e)||!Object.prototype.hasOwnProperty.call(m.cache[e],t))&&m.cache[e][t]},updateOrderSummaryItem(o,i){if(o.hasClass("wpforms-payment-price")){let t=o.closest(".wpforms-field"),e=t.data("field-id"),r=o.prop("type"),a="block"===t.css("display");var s,n;"checkbox"===r||"radio"===r||"select-one"===r?i.find(`tr[data-field="${e}"]`).each(function(){var e=p(this).data("choice"),e="select-one"===r?e===parseInt(t.find("select").val(),10):t.find(`input[value="${e}"]`).is(":checked");p(this).toggle(a&&e)}):(s=i.find(`tr[data-field="${e}"]`),n=o.val(),s.find(".wpforms-order-summary-item-price").text(m.amountFormatSymbol(m.amountSanitize(n))),s.toggle(a)),t.hasClass("wpforms-payment-quantities-enabled")?m.updateOrderSummaryItemQuantity(o):(m.updateSummaryPriceWidth(i),m.toggleSummaryPlaceholder(i))}},updateOrderSummaryItemQuantity(e){let t=e.closest(".wpforms-field"),a=t.find("input.wpforms-payment-price, select.wpforms-payment-price"),r=e.closest(".wpforms-form"),o=t.data("field-id"),i=m.getPaymentFieldQuantity(a),s=m.getPaymentFieldAmount(a),n=a.prop("type");r.find(".wpforms-order-summary-preview").each(function(){var e,t=p(this);let r;(r="checkbox"===n||"radio"===n||"select-one"===n?(e=a.val(),t.find(`tr[data-field="${o}"][data-choice="${e}"]`)):t.find(`tr[data-field="${o}"]`)).toggle(0<i),r.find(".wpforms-order-summary-item-quantity").text(i),r.find(".wpforms-order-summary-item-price").text(m.amountFormatSymbol(s*i)),m.updateSummaryPriceWidth(t),m.toggleSummaryPlaceholder(t)})},updateSummaryPriceWidth(e){var t=Math.max(e.find(".wpforms-order-summary-preview-coupon-total .wpforms-order-summary-item-price").text().length,e.find(".wpforms-order-summary-preview-total .wpforms-order-summary-item-price").text().length+3);e.find(".wpforms-order-summary-item-price").css("width",t+"ch")},toggleSummaryPlaceholder(e){var t=e.find(".wpforms-order-summary-placeholder");let r=!0;e.find(".wpforms-order-summary-field").each(function(){if("none"!==p(this).css("display"))return r=!1}),t.toggle(r)},amountTotalCalc(e){let r=0;p(".wpforms-payment-price",e).each(function(){var e,t=p(this);t.closest(".wpforms-field-payment-single").hasClass("wpforms-conditional-hide")||(e=m.getPaymentFieldAmount(t))&&(r=Number(r)+e*m.getPaymentFieldQuantity(t))});var t=p(s),a=WPFormsUtils.triggerEvent(t,"wpformsAmountTotalCalculate",[e,r]);return r=void 0!==a.result&&0<=a.result?a.result:r,WPFormsUtils.triggerEvent(t,"wpformsAmountTotalCalculated",[e,r]),r},getPaymentFieldAmount(e){var t=e.attr("type");return"text"===t||"hidden"===t?Number(m.amountSanitize(e.val())):"radio"!==t&&"checkbox"!==t||!e.is(":checked")?e.is("select")&&0<e.find("option:selected").length&&e.find("option:selected").data("amount")?Number(m.amountSanitize(e.find("option:selected").data("amount"))):0:Number(m.amountSanitize(e.data("amount")))},getPaymentFieldQuantity(e){e=e.attr("id"),e=p(`#${e}-quantity`);return e.length?Number(e.val()):1},amountSanitize(e){var t=m.getCurrency();return e=e.toString().replace(t.symbol,"").replace(/[^0-9.,]/g,""),","===t.decimal_sep?("."===t.thousands_sep&&-1!==e.indexOf(t.thousands_sep)?e=e.replace(new RegExp("\\"+t.thousands_sep,"g"),""):""===t.thousands_sep&&-1!==e.indexOf(".")&&(e=e.replace(/\./g,"")),e=e.replace(t.decimal_sep,".")):","===t.thousands_sep&&-1!==e.indexOf(t.thousands_sep)&&(e=e.replace(new RegExp("\\"+t.thousands_sep,"g"),"")),m.numberFormat(e,t.decimals,".","")},amountFormat(e){var t,r=m.getCurrency();return e=String(e),","===r.decimal_sep&&-1!==e.indexOf(r.decimal_sep)&&(t=e.indexOf(r.decimal_sep),e=e.substr(0,t)+"."+e.substr(t+1,e.length-1)),","===r.thousands_sep&&-1!==e.indexOf(r.thousands_sep)&&(e=e.replace(/,/g,"")),m.empty(e)&&(e=0),m.numberFormat(e,r.decimals,r.decimal_sep,r.thousands_sep)},amountFormatSymbol(e){var t=m.getCurrency(),e=m.amountFormat(e);return"left"===t.symbol_pos?t.symbol+e:e+" "+t.symbol},getCurrency(){var e={code:"USD",thousands_sep:",",decimals:2,decimal_sep:".",symbol:"$",symbol_pos:"left"};return void 0!==wpforms_settings.currency_code&&(e.code=wpforms_settings.currency_code),void 0!==wpforms_settings.currency_thousands&&(e.thousands_sep=wpforms_settings.currency_thousands),void 0!==wpforms_settings.currency_decimals&&(e.decimals=wpforms_settings.currency_decimals),void 0!==wpforms_settings.currency_decimal&&(e.decimal_sep=wpforms_settings.currency_decimal),void 0!==wpforms_settings.currency_symbol&&(e.symbol=wpforms_settings.currency_symbol),void 0!==wpforms_settings.currency_symbol_pos&&(e.symbol_pos=wpforms_settings.currency_symbol_pos),e},numberFormat(e,t,r,a){e=(e+"").replace(/[^0-9+\-Ee.]/g,"");var o,i,e=isFinite(+e)?+e:0,t=isFinite(+t)?Math.abs(t):0,a=void 0===a?",":a,r=void 0===r?".":r,s=(t?(s=e,o=t,i=Math.pow(10,o),""+(Math.round(s*i)/i).toFixed(o)):""+Math.round(e)).split(".");return 3<s[0].length&&(s[0]=s[0].replace(/\B(?=(?:\d{3})+(?!\d))/g,a)),(s[1]||"").length<t&&(s[1]=s[1]||"",s[1]+=new Array(t-s[1].length+1).join("0")),s.join(r)},empty(e){var t;let r,a;var o=[void 0,null,!1,0,"","0"];for(a=0,t=o.length;a<t;a++)if(e===o[a])return!0;if("object"!=typeof e)return!1;for(r in e)if(e.hasOwnProperty(r))return!1;return!0},setUserIdentifier(){if((!d.hasRequiredConsent&&"undefined"!=typeof wpforms_settings&&wpforms_settings.uuid_cookie||d.hasRequiredConsent&&d.hasRequiredConsent())&&!m.getCookie("_wpfuuid")){var t=new Array(36),r="0123456789abcdef";for(let e=0;e<36;e++)t[e]=r.substr(Math.floor(16*Math.random()),1);t[14]="4",t[19]=r.substr(3&t[19]|8,1),t[8]=t[13]=t[18]=t[23]="-";var e=t.join("");m.createCookie("_wpfuuid",e,3999)}},createCookie(e,t,r){let a="",o="";var i;wpforms_settings.is_ssl&&(o=";secure"),a=r?-1===r?"":((i=new Date).setTime(i.getTime()+24*r*60*60*1e3),";expires="+i.toGMTString()):";expires=Thu, 01 Jan 1970 00:00:01 GMT",s.cookie=e+"="+t+a+";path=/;samesite=strict"+o},getCookie(e){var r=e+"=",a=s.cookie.split(";");for(let t=0;t<a.length;t++){let e=a[t];for(;" "===e.charAt(0);)e=e.substring(1,e.length);if(0===e.indexOf(r))return e.substring(r.length,e.length)}return null},removeCookie(e){m.createCookie(e,"",-1)},getFirstBrowserLanguage(){return console.warn('WARNING! Function "wpforms.getFirstBrowserLanguage()" has been deprecated, please use the new "WPFormsPhoneField.getFirstBrowserLanguage()" function instead!'),WPFormsPhoneField?.getFirstBrowserLanguage?.()},mapLanguageToIso(e){return console.warn('WARNING! Function "wpforms.mapLanguageToIso()" has been deprecated, please use the new "WPFormsPhoneField.mapLanguageToIso()" function instead!'),WPFormsPhoneField?.mapLanguageToIso?.(e)},currentIpToCountry(e){console.warn('WARNING! Function "wpforms.currentIpToCountry()" has been deprecated, please use the new "WPFormsPhoneField.currentIpToCountry()" function instead!'),WPFormsPhoneField?.currentIpToCountry?.(e)},formSubmit(e){e instanceof jQuery||(e=p(e)),m.saveTinyMCE(),WPFormsUtils.triggerEvent(e,"wpformsBeforeFormSubmit",[e]).isDefaultPrevented()?m.restoreSubmitButton(e,e.closest(".wpforms-container")):e.hasClass("wpforms-ajax-form")&&"undefined"!=typeof FormData?m.formSubmitAjax(e):m.formSubmitNormal(e)},restoreSubmitButton(e,t){var r=e.find(".wpforms-submit"),a=r.data("submit-text");a&&r.text(a),r.prop("disabled",!1),WPFormsUtils.triggerEvent(e,"wpformsFormSubmitButtonRestore",[e,r]),t.css("opacity",""),e.find(".wpforms-submit-spinner").hide()},formSubmitNormal(e){var t,r;e.length&&(r=(t=e.find(".wpforms-submit")).get(0).recaptchaID,m.empty(r)&&0!==r||(t.get(0).recaptchaID=!1),e.append('<input type="hidden" name="start_timestamp" value="'+m.getStartTimestampData(e)+'">'),e.append('<input type="hidden" name="end_timestamp" value="'+m.getTimestampSec()+'">'),e.get(0).submit())},formHasCaptcha(e){return!(!e||!e.length||"undefined"==typeof hcaptcha&&"undefined"==typeof grecaptcha&&"undefined"==typeof turnstile)&&(e=e.find(".wpforms-recaptcha-container"),Boolean(e.length))},resetFormRecaptcha(r){if(m.formHasCaptcha(r)){var a=r.find(".wpforms-recaptcha-container");let e,t;e=a.hasClass("wpforms-is-hcaptcha")?hcaptcha:a.hasClass("wpforms-is-turnstile")?turnstile:grecaptcha,t=r.find(".wpforms-submit").get(0).recaptchaID,m.empty(t)&&0!==t&&(a=r.find(".g-recaptcha, .h-captcha, .cf-turnstile")).length&&(t=a.data("recaptcha-id")),m.empty(t)&&0!==t||e.reset(t)}},consoleLogAjaxError(e){e?console.error("WPForms AJAX submit error:\n%s",e):console.error("WPForms AJAX submit error")},displayFormAjaxErrors(e,t){"string"==typeof t?m.displayFormAjaxGeneralErrors(e,t):(t=t&&"errors"in t?t.errors:null,m.empty(t)||m.empty(t.general)&&m.empty(t.field)?m.consoleLogAjaxError():(m.empty(t.general)||m.displayFormAjaxGeneralErrors(e,t.general),m.empty(t.field)||m.displayFormAjaxFieldErrors(e,t.field)))},displayFormAjaxGeneralErrors(e,t){var r,a;e&&e.length&&(m.empty(t)||(m.isModernMarkupEnabled()&&e.attr({"aria-invalid":"true","aria-errormessage":""}),"string"==typeof t?(a=m.isModernMarkupEnabled()?' role="alert"':"",r=m.isModernMarkupEnabled()?`<span class="wpforms-hidden">${wpforms_settings.formErrorMessagePrefix}</span>`:"",e.find(".wpforms-submit-container").before(`<div class="wpforms-error-container"${a}>${r}${t}</div>`),m.setCurrentPage(e,{})):(a=e.data("formid"),m.printGeneralErrors(e,t,a))))},printGeneralErrors(o,e,i){p.each(e,function(e,t){switch(e){case"header":case"header_styled":o.prepend(t);break;case"footer":case"footer_styled":r=t,0===o.find(".wpforms-page-indicator").length?o.find(".wpforms-submit-container").before(r):o.find(".wpforms-page-1").append(r);break;case"recaptcha":r=t,o.find(".wpforms-recaptcha-container").append(r)}var r,a;m.isModernMarkupEnabled()&&(a=o.attr("aria-errormessage")||"",o.attr("aria-errormessage",a+` wpforms-${i}-${e}-error`))}),o.find(".wpforms-error-container").length&&m.animateScrollTop(o.find(".wpforms-error-container").first().offset().top-100)},clearFormAjaxGeneralErrors(e){e.find(".wpforms-error-container").remove(),e.find("#wpforms-field_recaptcha-error").remove(),m.isModernMarkupEnabled()&&e.attr({"aria-invalid":"false","aria-errormessage":""})},displayFormAjaxFieldErrors(a,o){var e;a&&a.length&&(m.empty(o)||(e=a.data("validator"))&&(o=m.splitFieldErrors(o),p.each(o,function(e,t){var r=p('[name="'+e+'"]',a);r.length?r.attr("data-server-error",t):delete o[e]}),e.showErrors(o),m.formHasCaptcha(a)||e.focusInvalid()))},splitFieldErrors:i=>(p.each(i,function(o,e){"string"!=typeof e&&p.each(e,function(e,t){var r=o.split("[").pop().replace("]",""),a=o.replace("["+r+"]","");r===e?i[o]=t:"string"==typeof e&&isNaN(e)&&(i[a+"["+e+"]"]=t)})}),i),formSubmitAjax:a=>{if(!a.length)return p.Deferred().reject();let r=a.closest(".wpforms-container"),e=a.find(".wpforms-submit-spinner"),o;r.css("opacity",.6),e.show(),m.clearFormAjaxGeneralErrors(a);var t=new FormData(a.get(0)),t=(t.append("action","wpforms_submit"),t.append("start_timestamp",m.getStartTimestampData(a)),t.append("end_timestamp",m.getTimestampSec()),{type:"post",dataType:"json",url:wpforms_settings.ajaxurl,data:t,cache:!1,contentType:!1,processData:!1});return t.success=function(e){var t;if(e)if(e.data&&e.data.action_required)a.trigger("wpformsAjaxSubmitActionRequired",e);else if(e.success){if(a.trigger("wpformsAjaxSubmitSuccess",e),e.data)return e.data.redirect_url?(t=e.data.new_tab||!1,a.trigger("wpformsAjaxSubmitBeforeRedirect",e),t?(d.open(e.data.redirect_url,"_blank"),void location.reload()):void(d.location=e.data.redirect_url)):void(e.data.confirmation&&(r.html(e.data.confirmation),o=r.find("div.wpforms-confirmation-scroll"),r.trigger("wpformsAjaxSubmitSuccessConfirmation",e),o.length)&&m.animateScrollTop(o.offset().top-100))}else m.resetFormRecaptcha(a),m.displayFormAjaxErrors(a,e.data),a.trigger("wpformsAjaxSubmitFailed",e),m.setCurrentPage(a,e.data);else m.consoleLogAjaxError()},t.error=function(e,t,r){m.consoleLogAjaxError(r),a.trigger("wpformsAjaxSubmitError",[e,t,r])},t.complete=function(e,t){e.responseJSON&&e.responseJSON.data&&(e.responseJSON.data.action_required||"success"===t&&e.responseJSON.data.redirect_url)||(m.restoreSubmitButton(a,r),a.trigger("wpformsAjaxSubmitCompleted",[e,t]))},WPFormsUtils.triggerEvent(a,"wpformsAjaxBeforeSubmit",[a]).isDefaultPrevented()?(m.restoreSubmitButton(a,r),p.Deferred().reject()):p.ajax(t)},setCurrentPage(a,o){if(0!==a.find(".wpforms-page-indicator").length){let r=[];if(a.find(".wpforms-page").each(function(e,t){if(1<=p(t).find(".wpforms-has-error").length)return r.push(p(t))}),0!==r.length||void 0===o.errors||void 0===o.errors.general||void 0!==o.errors.general.footer||void 0===o.errors.general.recaptcha){var i=0<r.length?r[0]:a.find(".wpforms-page-1");let e,t="prev";1===i.data("page")||void 0!==o.errors&&void 0!==o.errors.general.footer?e=a.find(".wpforms-page-1").next():(e=0!==i.next().length?i.next():i.prev(),t=0!==i.next().length?"prev":"next");o=e.find(".wpforms-page-next"),i=e.data("page");m.navigateToPage(o,t,i,a,p(".wpforms-page-"+i))}}},animateScrollTop(e,t,r){return t=t||1e3,r="function"==typeof r?r:function(){},p("html, body").animate({scrollTop:parseInt(e,10)},{duration:t,complete:r}).promise()},saveTinyMCE(){"undefined"!=typeof tinyMCE&&tinyMCE.triggerSave()},isFunction(e){return!!(e&&e.constructor&&e.call&&e.apply)},compareTimesGreaterThan(e,t){e=e.replace(/(am|pm)/g," $1").toUpperCase(),t=t.replace(/(am|pm)/g," $1").toUpperCase();e=Date.parse("01 Jan 2021 "+e);return Date.parse("01 Jan 2021 "+t)<=e},isModernMarkupEnabled(){return!!wpforms_settings.isModernMarkupEnabled},initTokenUpdater(){p(".wpforms-form").on("focusin",function(e){var t=p(e.target.closest("form")),r=Date.now();this.needsTokenUpdate(r,t)&&this.updateToken(r,t,e)}.bind(this))},needsTokenUpdate(e,t){return e-1e3*(t.attr("data-token-time")||0)>=1e3*wpforms_settings.token_cache_lifetime&&!this.isUpdatingToken},updateToken(t,r,a){var e=r.data("formid");let o=r.find(".wpforms-submit");this.isUpdatingToken=!0,o.prop("disabled",!0),p.post(wpforms_settings.ajaxurl,{action:"wpforms_get_token",formId:e}).done(function(e){e.success?(r.attr("data-token-time",t),r.attr("data-token",e.data.token),o.prop("disabled",!1),a.target===o[0]&&o.trigger("click")):console.error("Failed to update token: ",e)}).fail(function(e,t,r){console.error("AJAX request failed: ",t,r)}).always(function(){this.isUpdatingToken=!1,o.prop("disabled",!1)}.bind(this))},restoreSubmitButtonOnEventPersisted(){d.onpageshow=function(e){e.persisted&&p(".wpforms-form").each(function(){var e=p(this);m.restoreSubmitButton(e,e.closest(".wpforms-container"))})}},loadValidationGroups(e){var t=e.closest(".wpforms-form").data("validator");t&&p.extend(t.groups,m.getDateTimeValidationGroups(e))},getDateTimeValidationGroups(e){let a={};return e.find(".wpforms-field.wpforms-field-date-time").each(function(){var e=p(this);if(e.find(".wpforms-field-date-dropdown-wrap").length){let r=e.attr("id").replace("-container","");p.each(["month","day","year"],function(e,t){t=p(`#${r}-`+t).attr("name");a[t]=r})}}),a},getTimestampSec(){return Math.floor(Date.now()/1e3)},lockField(e){var t=e.data("field-type");(wpforms_settings.readOnlyDisallowedFields??[]).includes(t)||(e.addClass(a).find("input, textarea, select:not(.wpforms-field-select-style-modern)").prop("readonly",!0).attr("tabindex","-1"),e.hasClass("wpforms-field-select-style-modern")?((t=e.find("select")).data("choicesjs")?.disable(),t.removeAttr("disabled")):e.hasClass("wpforms-field-richtext")&&d.WPFormsRichTextField?.lockField(e))},unlockField(e){e.removeClass(a).find("input, textarea, select:not(.wpforms-field-select-style-modern)").prop("readonly",!1).attr("tabindex",null),e.hasClass("wpforms-field-select-style-modern")?e.find("select").data("choicesjs")?.enable():e.hasClass("wpforms-field-richtext")&&d.WPFormsRichTextField?.unlockField(e)},readOnlyFieldsInit(){p(".wpforms-field."+a).each(function(){m.lockField(p(this))})},field:{lock(e,t){m.lockField(p(`#wpforms-${e}-field_${t}-container`))},unlock(e,t){m.unlockField(p(`#wpforms-${e}-field_${t}-container`))},toggle(e,t,r="auto"){e=p(`#wpforms-${e}-field_${t}-container`),t=e.hasClass(a);("auto"===r?!t:r)?m.lockField(e):m.unlockField(e)},isLocked(e,t){return p(`#wpforms-${e}-field_${t}-container`).hasClass(a)},lockAll(e){p(`#wpforms-${e} .wpforms-field`).each(function(){m.lockField(p(this))})},unlockAll(e){p("#wpforms-"+e).find(".wpforms-field").each(function(){m.unlockField(p(this))})}}};return m})(document,window,jQuery);wpforms.init();
var WPFormsElementorFrontend=window.WPFormsElementorFrontend||((o,e,r)=>{var t={forceLoadChoices:!1,forceSetStripe:!1,init(){t.events()},events(){e.addEventListener("elementor/popup/show",function(e){e=r("#elementor-popup-modal-"+e.detail.id).find(".wpforms-form");e.length&&(t.forceSetStripe=!0,t.initFields(e))}),e.addEventListener("elementor/popup/show",function(){e.WPFormsTextLimit?.initHint(".elementor-popup-modal")}),r(o).on("elementor/popup/show",()=>{t.forceLoadChoices=!0,wpforms.loadChoicesJS()}),r(o).on("wpformsBeforeLoadElementChoices",(e,o)=>{t.isFormInElementorPopup(o)&&!t.forceLoadChoices&&e.preventDefault()}),r(o).on("wpformsBeforeStripePaymentElementSetup",(e,o)=>{t.isFormInElementorPopup(o)&&!t.forceSetStripe&&e.preventDefault()})},isFormInElementorPopup(e){return r(e).parents('div[data-elementor-type="popup"]').length},initFields(e){wpforms.ready(),"undefined"!=typeof wpformsModernFileUpload&&wpformsModernFileUpload.init(),"undefined"!=typeof wpformsRecaptchaLoad&&("recaptcha"===wpformsElementorVars.captcha_provider&&"v3"===wpformsElementorVars.recaptcha_type?"undefined"!=typeof grecaptcha&&grecaptcha.ready(wpformsRecaptchaLoad):wpformsRecaptchaLoad()),"undefined"!=typeof WPFormsRepeaterField&&WPFormsRepeaterField.ready(),"undefined"!=typeof WPFormsStripePaymentElement&&WPFormsStripePaymentElement.setupStripeForm(e),r(o).trigger("wpforms_elementor_form_fields_initialized",[e])}};return t})(document,window,jQuery);WPFormsElementorFrontend.init();
!function(a){"function"==typeof define&&define.amd?define(["jquery"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){a.extend(a.fn,{validate:function(b){if(!this.length)return void(b&&b.debug&&window.console&&console.warn("Nothing selected, can't validate, returning nothing."));var c=a.data(this[0],"validator");return c?c:(this.attr("novalidate","novalidate"),c=new a.validator(b,this[0]),a.data(this[0],"validator",c),c.settings.onsubmit&&(this.on("click.validate",":submit",function(b){c.submitButton=b.currentTarget,a(this).hasClass("cancel")&&(c.cancelSubmit=!0),void 0!==a(this).attr("formnovalidate")&&(c.cancelSubmit=!0)}),this.on("submit.validate",function(b){function d(){var d,e;return c.submitButton&&(c.settings.submitHandler||c.formSubmitted)&&(d=a("<input type='hidden'/>").attr("name",c.submitButton.name).val(a(c.submitButton).val()).appendTo(c.currentForm)),!(c.settings.submitHandler&&!c.settings.debug)||(e=c.settings.submitHandler.call(c,c.currentForm,b),d&&d.remove(),void 0!==e&&e)}return c.settings.debug&&b.preventDefault(),c.cancelSubmit?(c.cancelSubmit=!1,d()):c.form()?c.pendingRequest?(c.formSubmitted=!0,!1):d():(c.focusInvalid(),!1)})),c)},valid:function(){var b,c,d;return a(this[0]).is("form")?b=this.validate().form():(d=[],b=!0,c=a(this[0].form).validate(),this.each(function(){b=c.element(this)&&b,b||(d=d.concat(c.errorList))}),c.errorList=d),b},rules:function(b,c){var d,e,f,g,h,i,j=this[0],k="undefined"!=typeof this.attr("contenteditable")&&"false"!==this.attr("contenteditable");if(null!=j&&(!j.form&&k&&(j.form=this.closest("form")[0],j.name=this.attr("name")),null!=j.form)){if(b)switch(d=a.data(j.form,"validator").settings,e=d.rules,f=a.validator.staticRules(j),b){case"add":a.extend(f,a.validator.normalizeRule(c)),delete f.messages,e[j.name]=f,c.messages&&(d.messages[j.name]=a.extend(d.messages[j.name],c.messages));break;case"remove":return c?(i={},a.each(c.split(/\s/),function(a,b){i[b]=f[b],delete f[b]}),i):(delete e[j.name],f)}return g=a.validator.normalizeRules(a.extend({},a.validator.classRules(j),a.validator.attributeRules(j),a.validator.dataRules(j),a.validator.staticRules(j)),j),g.required&&(h=g.required,delete g.required,g=a.extend({required:h},g)),g.remote&&(h=g.remote,delete g.remote,g=a.extend(g,{remote:h})),g}}});var b=function(a){return a.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"")};a.extend(a.expr.pseudos||a.expr[":"],{blank:function(c){return!b(""+a(c).val())},filled:function(c){var d=a(c).val();return null!==d&&!!b(""+d)},unchecked:function(b){return!a(b).prop("checked")}}),a.validator=function(b,c){this.settings=a.extend(!0,{},a.validator.defaults,b),this.currentForm=c,this.init()},a.validator.format=function(b,c){return 1===arguments.length?function(){var c=a.makeArray(arguments);return c.unshift(b),a.validator.format.apply(this,c)}:void 0===c?b:(arguments.length>2&&c.constructor!==Array&&(c=a.makeArray(arguments).slice(1)),c.constructor!==Array&&(c=[c]),a.each(c,function(a,c){b=b.replace(new RegExp("\\{"+a+"\\}","g"),function(){return c})}),b)},a.extend(a.validator,{defaults:{messages:{},groups:{},rules:{},errorClass:"error",pendingClass:"pending",validClass:"valid",errorElement:"label",focusCleanup:!1,focusInvalid:!0,errorContainer:a([]),errorLabelContainer:a([]),onsubmit:!0,ignore:":hidden",ignoreTitle:!1,customElements:[],onfocusin:function(a){this.lastActive=a,this.settings.focusCleanup&&(this.settings.unhighlight&&this.settings.unhighlight.call(this,a,this.settings.errorClass,this.settings.validClass),this.hideThese(this.errorsFor(a)))},onfocusout:function(a){this.checkable(a)||!(a.name in this.submitted)&&this.optional(a)||this.element(a)},onkeyup:function(b,c){var d=[16,17,18,20,35,36,37,38,39,40,45,144,225];9===c.which&&""===this.elementValue(b)||a.inArray(c.keyCode,d)!==-1||(b.name in this.submitted||b.name in this.invalid)&&this.element(b)},onclick:function(a){a.name in this.submitted?this.element(a):a.parentNode.name in this.submitted&&this.element(a.parentNode)},highlight:function(b,c,d){"radio"===b.type?this.findByName(b.name).addClass(c).removeClass(d):a(b).addClass(c).removeClass(d)},unhighlight:function(b,c,d){"radio"===b.type?this.findByName(b.name).removeClass(c).addClass(d):a(b).removeClass(c).addClass(d)}},setDefaults:function(b){a.extend(a.validator.defaults,b)},messages:{required:"This field is required.",remote:"Please fix this field.",email:"Please enter a valid email address.",url:"Please enter a valid URL.",date:"Please enter a valid date.",dateISO:"Please enter a valid date (ISO).",number:"Please enter a valid number.",digits:"Please enter only digits.",equalTo:"Please enter the same value again.",maxlength:a.validator.format("Please enter no more than {0} characters."),minlength:a.validator.format("Please enter at least {0} characters."),rangelength:a.validator.format("Please enter a value between {0} and {1} characters long."),range:a.validator.format("Please enter a value between {0} and {1}."),max:a.validator.format("Please enter a value less than or equal to {0}."),min:a.validator.format("Please enter a value greater than or equal to {0}."),step:a.validator.format("Please enter a multiple of {0}.")},autoCreateRanges:!1,prototype:{init:function(){function b(b){var c="undefined"!=typeof a(this).attr("contenteditable")&&"false"!==a(this).attr("contenteditable");if(!this.form&&c&&(this.form=a(this).closest("form")[0],this.name=a(this).attr("name")),d===this.form){var e=a.data(this.form,"validator"),f="on"+b.type.replace(/^validate/,""),g=e.settings;g[f]&&!a(this).is(g.ignore)&&g[f].call(e,this,b)}}this.labelContainer=a(this.settings.errorLabelContainer),this.errorContext=this.labelContainer.length&&this.labelContainer||a(this.currentForm),this.containers=a(this.settings.errorContainer).add(this.settings.errorLabelContainer),this.submitted={},this.valueCache={},this.pendingRequest=0,this.pending={},this.invalid={},this.reset();var c,d=this.currentForm,e=this.groups={};a.each(this.settings.groups,function(b,c){"string"==typeof c&&(c=c.split(/\s/)),a.each(c,function(a,c){e[c]=b})}),c=this.settings.rules,a.each(c,function(b,d){c[b]=a.validator.normalizeRule(d)});var f=[":text","[type='password']","[type='file']","select","textarea","[type='number']","[type='search']","[type='tel']","[type='url']","[type='email']","[type='datetime']","[type='date']","[type='month']","[type='week']","[type='time']","[type='datetime-local']","[type='range']","[type='color']","[type='radio']","[type='checkbox']","[contenteditable]","[type='button']"],g=["select","option","[type='radio']","[type='checkbox']"];a(this.currentForm).on("focusin.validate focusout.validate keyup.validate",f.concat(this.settings.customElements).join(", "),b).on("click.validate",g.concat(this.settings.customElements).join(", "),b),this.settings.invalidHandler&&a(this.currentForm).on("invalid-form.validate",this.settings.invalidHandler)},form:function(){return this.checkForm(),a.extend(this.submitted,this.errorMap),this.invalid=a.extend({},this.errorMap),this.valid()||a(this.currentForm).triggerHandler("invalid-form",[this]),this.showErrors(),this.valid()},checkForm:function(){this.prepareForm();for(var a=0,b=this.currentElements=this.elements();b[a];a++)this.check(b[a]);return this.valid()},element:function(b){var c,d,e=this.clean(b),f=this.validationTargetFor(e),g=this,h=!0;return void 0===f?delete this.invalid[e.name]:(this.prepareElement(f),this.currentElements=a(f),d=this.groups[f.name],d&&a.each(this.groups,function(a,b){b===d&&a!==f.name&&(e=g.validationTargetFor(g.clean(g.findByName(a))),e&&e.name in g.invalid&&(g.currentElements.push(e),h=g.check(e)&&h))}),c=this.check(f)!==!1,h=h&&c,c?this.invalid[f.name]=!1:this.invalid[f.name]=!0,this.numberOfInvalids()||(this.toHide=this.toHide.add(this.containers)),this.showErrors(),a(b).attr("aria-invalid",!c)),h},showErrors:function(b){if(b){var c=this;a.extend(this.errorMap,b),this.errorList=a.map(this.errorMap,function(a,b){return{message:a,element:c.findByName(b)[0]}}),this.successList=a.grep(this.successList,function(a){return!(a.name in b)})}this.settings.showErrors?this.settings.showErrors.call(this,this.errorMap,this.errorList):this.defaultShowErrors()},resetForm:function(){a.fn.resetForm&&a(this.currentForm).resetForm(),this.invalid={},this.submitted={},this.prepareForm(),this.hideErrors();var b=this.elements().removeData("previousValue").removeAttr("aria-invalid");this.resetElements(b)},resetElements:function(a){var b;if(this.settings.unhighlight)for(b=0;a[b];b++)this.settings.unhighlight.call(this,a[b],this.settings.errorClass,""),this.findByName(a[b].name).removeClass(this.settings.validClass);else a.removeClass(this.settings.errorClass).removeClass(this.settings.validClass)},numberOfInvalids:function(){return this.objectLength(this.invalid)},objectLength:function(a){var b,c=0;for(b in a)void 0!==a[b]&&null!==a[b]&&a[b]!==!1&&c++;return c},hideErrors:function(){this.hideThese(this.toHide)},hideThese:function(a){a.not(this.containers).text(""),this.addWrapper(a).hide()},valid:function(){return 0===this.size()},size:function(){return this.errorList.length},focusInvalid:function(){if(this.settings.focusInvalid)try{a(this.findLastActive()||this.errorList.length&&this.errorList[0].element||[]).filter(":visible").trigger("focus").trigger("focusin")}catch(b){}},findLastActive:function(){var b=this.lastActive;return b&&1===a.grep(this.errorList,function(a){return a.element.name===b.name}).length&&b},elements:function(){var b=this,c={},d=["input","select","textarea","[contenteditable]"];return a(this.currentForm).find(d.concat(this.settings.customElements).join(", ")).not(":submit, :reset, :image, :disabled").not(this.settings.ignore).filter(function(){var d=this.name||a(this).attr("name"),e="undefined"!=typeof a(this).attr("contenteditable")&&"false"!==a(this).attr("contenteditable");return!d&&b.settings.debug&&window.console&&console.error("%o has no name assigned",this),e&&(this.form=a(this).closest("form")[0],this.name=d),this.form===b.currentForm&&(!(d in c||!b.objectLength(a(this).rules()))&&(c[d]=!0,!0))})},clean:function(b){return a(b)[0]},errors:function(){var b=this.settings.errorClass.split(" ").join(".");return a(this.settings.errorElement+"."+b,this.errorContext)},resetInternals:function(){this.successList=[],this.errorList=[],this.errorMap={},this.toShow=a([]),this.toHide=a([])},reset:function(){this.resetInternals(),this.currentElements=a([])},prepareForm:function(){this.reset(),this.toHide=this.errors().add(this.containers)},prepareElement:function(a){this.reset(),this.toHide=this.errorsFor(a)},elementValue:function(b){var c,d,e=a(b),f=b.type,g="undefined"!=typeof e.attr("contenteditable")&&"false"!==e.attr("contenteditable");return"radio"===f||"checkbox"===f?this.findByName(b.name).filter(":checked").val():"number"===f&&"undefined"!=typeof b.validity?b.validity.badInput?"NaN":e.val():(c=g?e.text():e.val(),"file"===f?"C:\\fakepath\\"===c.substr(0,12)?c.substr(12):(d=c.lastIndexOf("/"),d>=0?c.substr(d+1):(d=c.lastIndexOf("\\"),d>=0?c.substr(d+1):c)):"string"==typeof c?c.replace(/\r/g,""):c)},check:function(b){b=this.validationTargetFor(this.clean(b));var c,d,e,f,g=a(b).rules(),h=a.map(g,function(a,b){return b}).length,i=!1,j=this.elementValue(b);this.abortRequest(b),"function"==typeof g.normalizer?f=g.normalizer:"function"==typeof this.settings.normalizer&&(f=this.settings.normalizer),f&&(j=f.call(b,j),delete g.normalizer);for(d in g){e={method:d,parameters:g[d]};try{if(c=a.validator.methods[d].call(this,j,b,e.parameters),"dependency-mismatch"===c&&1===h){i=!0;continue}if(i=!1,"pending"===c)return void(this.toHide=this.toHide.not(this.errorsFor(b)));if(!c)return this.formatAndAdd(b,e),!1}catch(k){throw this.settings.debug&&window.console&&console.log("Exception occurred when checking element "+b.id+", check the '"+e.method+"' method.",k),k instanceof TypeError&&(k.message+=".  Exception occurred when checking element "+b.id+", check the '"+e.method+"' method."),k}}if(!i)return this.objectLength(g)&&this.successList.push(b),!0},customDataMessage:function(b,c){return a(b).data("msg"+c.charAt(0).toUpperCase()+c.substring(1).toLowerCase())||a(b).data("msg")},customMessage:function(a,b){var c=this.settings.messages[a];return c&&(c.constructor===String?c:c[b])},findDefined:function(){for(var a=0;a<arguments.length;a++)if(void 0!==arguments[a])return arguments[a]},defaultMessage:function(b,c){"string"==typeof c&&(c={method:c});var d=this.findDefined(this.customMessage(b.name,c.method),this.customDataMessage(b,c.method),!this.settings.ignoreTitle&&b.title||void 0,a.validator.messages[c.method],"<strong>Warning: No message defined for "+b.name+"</strong>"),e=/\$?\{(\d+)\}/g;return"function"==typeof d?d=d.call(this,c.parameters,b):e.test(d)&&(d=a.validator.format(d.replace(e,"{$1}"),c.parameters)),d},formatAndAdd:function(a,b){var c=this.defaultMessage(a,b);this.errorList.push({message:c,element:a,method:b.method}),this.errorMap[a.name]=c,this.submitted[a.name]=c},addWrapper:function(a){return this.settings.wrapper&&(a=a.add(a.parent(this.settings.wrapper))),a},defaultShowErrors:function(){var a,b,c;for(a=0;this.errorList[a];a++)c=this.errorList[a],this.settings.highlight&&this.settings.highlight.call(this,c.element,this.settings.errorClass,this.settings.validClass),this.showLabel(c.element,c.message);if(this.errorList.length&&(this.toShow=this.toShow.add(this.containers)),this.settings.success)for(a=0;this.successList[a];a++)this.showLabel(this.successList[a]);if(this.settings.unhighlight)for(a=0,b=this.validElements();b[a];a++)this.settings.unhighlight.call(this,b[a],this.settings.errorClass,this.settings.validClass);this.toHide=this.toHide.not(this.toShow),this.hideErrors(),this.addWrapper(this.toShow).show()},validElements:function(){return this.currentElements.not(this.invalidElements())},invalidElements:function(){return a(this.errorList).map(function(){return this.element})},showLabel:function(b,c){var d,e,f,g,h=this.errorsFor(b),i=this.idOrName(b),j=a(b).attr("aria-describedby");h.length?(h.removeClass(this.settings.validClass).addClass(this.settings.errorClass),this.settings&&this.settings.escapeHtml?h.text(c||""):h.html(c||"")):(h=a("<"+this.settings.errorElement+">").attr("id",i+"-error").addClass(this.settings.errorClass),this.settings&&this.settings.escapeHtml?h.text(c||""):h.html(c||""),d=h,this.settings.wrapper&&(d=h.hide().show().wrap("<"+this.settings.wrapper+"/>").parent()),this.labelContainer.length?this.labelContainer.append(d):this.settings.errorPlacement?this.settings.errorPlacement.call(this,d,a(b)):d.insertAfter(b),h.is("label")?h.attr("for",i):0===h.parents("label[for='"+this.escapeCssMeta(i)+"']").length&&(f=h.attr("id"),j?j.match(new RegExp("\\b"+this.escapeCssMeta(f)+"\\b"))||(j+=" "+f):j=f,a(b).attr("aria-describedby",j),e=this.groups[b.name],e&&(g=this,a.each(g.groups,function(b,c){c===e&&a("[name='"+g.escapeCssMeta(b)+"']",g.currentForm).attr("aria-describedby",h.attr("id"))})))),!c&&this.settings.success&&(h.text(""),"string"==typeof this.settings.success?h.addClass(this.settings.success):this.settings.success(h,b)),this.toShow=this.toShow.add(h)},errorsFor:function(b){var c=this.escapeCssMeta(this.idOrName(b)),d=a(b).attr("aria-describedby"),e="label[for='"+c+"'], label[for='"+c+"'] *";return d&&(e=e+", #"+this.escapeCssMeta(d).replace(/\s+/g,", #")),this.errors().filter(e)},escapeCssMeta:function(a){return void 0===a?"":a.replace(/([\\!"#$%&'()*+,./:;<=>?@\[\]^`{|}~])/g,"\\$1")},idOrName:function(a){return this.groups[a.name]||(this.checkable(a)?a.name:a.id||a.name)},validationTargetFor:function(b){return this.checkable(b)&&(b=this.findByName(b.name)),a(b).not(this.settings.ignore)[0]},checkable:function(a){return/radio|checkbox/i.test(a.type)},findByName:function(b){return a(this.currentForm).find("[name='"+this.escapeCssMeta(b)+"']")},getLength:function(b,c){switch(c.nodeName.toLowerCase()){case"select":return a("option:selected",c).length;case"input":if(this.checkable(c))return this.findByName(c.name).filter(":checked").length}return b.length},depend:function(a,b){return!this.dependTypes[typeof a]||this.dependTypes[typeof a](a,b)},dependTypes:{"boolean":function(a){return a},string:function(b,c){return!!a(b,c.form).length},"function":function(a,b){return a(b)}},optional:function(b){var c=this.elementValue(b);return!a.validator.methods.required.call(this,c,b)&&"dependency-mismatch"},elementAjaxPort:function(a){return"validate"+a.name},startRequest:function(b){this.pending[b.name]||(this.pendingRequest++,a(b).addClass(this.settings.pendingClass),this.pending[b.name]=!0)},stopRequest:function(b,c){this.pendingRequest--,this.pendingRequest<0&&(this.pendingRequest=0),delete this.pending[b.name],a(b).removeClass(this.settings.pendingClass),c&&0===this.pendingRequest&&this.formSubmitted&&this.form()&&0===this.pendingRequest?(a(this.currentForm).trigger("submit"),this.submitButton&&a("input:hidden[name='"+this.submitButton.name+"']",this.currentForm).remove(),this.formSubmitted=!1):!c&&0===this.pendingRequest&&this.formSubmitted&&(a(this.currentForm).triggerHandler("invalid-form",[this]),this.formSubmitted=!1)},abortRequest:function(b){var c;this.pending[b.name]&&(c=this.elementAjaxPort(b),a.ajaxAbort(c),this.pendingRequest--,this.pendingRequest<0&&(this.pendingRequest=0),delete this.pending[b.name],a(b).removeClass(this.settings.pendingClass))},previousValue:function(b,c){return c="string"==typeof c&&c||"remote",a.data(b,"previousValue")||a.data(b,"previousValue",{old:null,valid:!0,message:this.defaultMessage(b,{method:c})})},destroy:function(){this.resetForm(),a(this.currentForm).off(".validate").removeData("validator").find(".validate-equalTo-blur").off(".validate-equalTo").removeClass("validate-equalTo-blur").find(".validate-lessThan-blur").off(".validate-lessThan").removeClass("validate-lessThan-blur").find(".validate-lessThanEqual-blur").off(".validate-lessThanEqual").removeClass("validate-lessThanEqual-blur").find(".validate-greaterThanEqual-blur").off(".validate-greaterThanEqual").removeClass("validate-greaterThanEqual-blur").find(".validate-greaterThan-blur").off(".validate-greaterThan").removeClass("validate-greaterThan-blur")}},classRuleSettings:{required:{required:!0},email:{email:!0},url:{url:!0},date:{date:!0},dateISO:{dateISO:!0},number:{number:!0},digits:{digits:!0},creditcard:{creditcard:!0}},addClassRules:function(b,c){b.constructor===String?this.classRuleSettings[b]=c:a.extend(this.classRuleSettings,b)},classRules:function(b){var c={},d=a(b).attr("class");return d&&a.each(d.split(" "),function(){this in a.validator.classRuleSettings&&a.extend(c,a.validator.classRuleSettings[this])}),c},normalizeAttributeRule:function(a,b,c,d){/min|max|step/.test(c)&&(null===b||/number|range|text/.test(b))&&(d=Number(d),isNaN(d)&&(d=void 0)),d||0===d?a[c]=d:b===c&&"range"!==b&&(a["date"===b?"dateISO":c]=!0)},attributeRules:function(b){var c,d,e={},f=a(b),g=b.getAttribute("type");for(c in a.validator.methods)"required"===c?(d=b.getAttribute(c),""===d&&(d=!0),d=!!d):d=f.attr(c),this.normalizeAttributeRule(e,g,c,d);return e.maxlength&&/-1|2147483647|524288/.test(e.maxlength)&&delete e.maxlength,e},dataRules:function(b){var c,d,e={},f=a(b),g=b.getAttribute("type");for(c in a.validator.methods)d=f.data("rule"+c.charAt(0).toUpperCase()+c.substring(1).toLowerCase()),""===d&&(d=!0),this.normalizeAttributeRule(e,g,c,d);return e},staticRules:function(b){var c={},d=a.data(b.form,"validator");return d.settings.rules&&(c=a.validator.normalizeRule(d.settings.rules[b.name])||{}),c},normalizeRules:function(b,c){return a.each(b,function(d,e){if(e===!1)return void delete b[d];if(e.param||e.depends){var f=!0;switch(typeof e.depends){case"string":f=!!a(e.depends,c.form).length;break;case"function":f=e.depends.call(c,c)}f?b[d]=void 0===e.param||e.param:(a.data(c.form,"validator").resetElements(a(c)),delete b[d])}}),a.each(b,function(a,d){b[a]="function"==typeof d&&"normalizer"!==a?d(c):d}),a.each(["minlength","maxlength"],function(){b[this]&&(b[this]=Number(b[this]))}),a.each(["rangelength","range"],function(){var a;b[this]&&(Array.isArray(b[this])?b[this]=[Number(b[this][0]),Number(b[this][1])]:"string"==typeof b[this]&&(a=b[this].replace(/[\[\]]/g,"").split(/[\s,]+/),b[this]=[Number(a[0]),Number(a[1])]))}),a.validator.autoCreateRanges&&(null!=b.min&&null!=b.max&&(b.range=[b.min,b.max],delete b.min,delete b.max),null!=b.minlength&&null!=b.maxlength&&(b.rangelength=[b.minlength,b.maxlength],delete b.minlength,delete b.maxlength)),b},normalizeRule:function(b){if("string"==typeof b){var c={};a.each(b.split(/\s/),function(){c[this]=!0}),b=c}return b},addMethod:function(b,c,d){a.validator.methods[b]=c,a.validator.messages[b]=void 0!==d?d:a.validator.messages[b],c.length<3&&a.validator.addClassRules(b,a.validator.normalizeRule(b))},methods:{required:function(b,c,d){if(!this.depend(d,c))return"dependency-mismatch";if("select"===c.nodeName.toLowerCase()){var e=a(c).val();return e&&e.length>0}return this.checkable(c)?this.getLength(b,c)>0:void 0!==b&&null!==b&&b.length>0},email:function(a,b){return this.optional(b)||/^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/.test(a)},url:function(a,b){return this.optional(b)||/^(?:(?:(?:https?|ftp):)?\/\/)(?:(?:[^\]\[?\/<~#`!@$^&*()+=}|:";',>{ ]|%[0-9A-Fa-f]{2})+(?::(?:[^\]\[?\/<~#`!@$^&*()+=}|:";',>{ ]|%[0-9A-Fa-f]{2})*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z0-9\u00a1-\uffff][a-z0-9\u00a1-\uffff_-]{0,62})?[a-z0-9\u00a1-\uffff]\.)+(?:[a-z\u00a1-\uffff]{2,}\.?))(?::\d{2,5})?(?:[/?#]\S*)?$/i.test(a)},date:function(){var a=!1;return function(b,c){return a||(a=!0,this.settings.debug&&window.console&&console.warn("The `date` method is deprecated and will be removed in version '2.0.0'.\nPlease don't use it, since it relies on the Date constructor, which\nbehaves very differently across browsers and locales. Use `dateISO`\ninstead or one of the locale specific methods in `localizations/`\nand `additional-methods.js`.")),this.optional(c)||!/Invalid|NaN/.test(new Date(b).toString())}}(),dateISO:function(a,b){return this.optional(b)||/^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$/.test(a)},number:function(a,b){return this.optional(b)||/^(?:-?\d+|-?\d{1,3}(?:,\d{3})+)?(?:-?\.\d+)?$/.test(a)},digits:function(a,b){return this.optional(b)||/^\d+$/.test(a)},minlength:function(a,b,c){var d=Array.isArray(a)?a.length:this.getLength(a,b);return this.optional(b)||d>=c},maxlength:function(a,b,c){var d=Array.isArray(a)?a.length:this.getLength(a,b);return this.optional(b)||d<=c},rangelength:function(a,b,c){var d=Array.isArray(a)?a.length:this.getLength(a,b);return this.optional(b)||d>=c[0]&&d<=c[1]},min:function(a,b,c){return this.optional(b)||a>=c},max:function(a,b,c){return this.optional(b)||a<=c},range:function(a,b,c){return this.optional(b)||a>=c[0]&&a<=c[1]},step:function(b,c,d){var e,f=a(c).attr("type"),g="Step attribute on input type "+f+" is not supported.",h=["text","number","range"],i=new RegExp("\\b"+f+"\\b"),j=f&&!i.test(h.join()),k=function(a){var b=(""+a).match(/(?:\.(\d+))?$/);return b&&b[1]?b[1].length:0},l=function(a){return Math.round(a*Math.pow(10,e))},m=!0;if(j)throw new Error(g);return e=k(d),(k(b)>e||l(b)%l(d)!==0)&&(m=!1),this.optional(c)||m},equalTo:function(b,c,d){var e=a(d);return this.settings.onfocusout&&e.not(".validate-equalTo-blur").length&&e.addClass("validate-equalTo-blur").on("blur.validate-equalTo",function(){a(c).valid()}),b===e.val()},remote:function(b,c,d,e){if(this.optional(c))return"dependency-mismatch";e="string"==typeof e&&e||"remote";var f,g,h,i=this.previousValue(c,e);return this.settings.messages[c.name]||(this.settings.messages[c.name]={}),i.originalMessage=i.originalMessage||this.settings.messages[c.name][e],this.settings.messages[c.name][e]=i.message,d="string"==typeof d&&{url:d}||d,h=a.param(a.extend({data:b},d.data)),null!==i.valid&&i.old===h?i.valid:(i.old=h,i.valid=null,f=this,this.startRequest(c),g={},g[c.name]=b,a.ajax(a.extend(!0,{mode:"abort",port:this.elementAjaxPort(c),dataType:"json",data:g,context:f.currentForm,success:function(a){var d,g,h,j=a===!0||"true"===a;f.settings.messages[c.name][e]=i.originalMessage,j?(h=f.formSubmitted,f.toHide=f.errorsFor(c),f.formSubmitted=h,f.successList.push(c),f.invalid[c.name]=!1,f.showErrors()):(d={},g=a||f.defaultMessage(c,{method:e,parameters:b}),d[c.name]=i.message=g,f.invalid[c.name]=!0,f.showErrors(d)),i.valid=j,f.stopRequest(c,j)}},d)),"pending")}}});var c,d={};return a.ajaxPrefilter?a.ajaxPrefilter(function(b,c,e){var f=b.port;"abort"===b.mode&&(a.ajaxAbort(f),d[f]=e)}):(c=a.ajax,a.ajax=function(b){var e=("mode"in b?b:a.ajaxSettings).mode,f=("port"in b?b:a.ajaxSettings).port;return"abort"===e?(a.ajaxAbort(f),d[f]=c.apply(this,arguments),d[f]):c.apply(this,arguments)}),a.ajaxAbort=function(a){d[a]&&(d[a].abort(),delete d[a])},a});
/*! mailcheck v1.1.2 @licence MIT */var Mailcheck={domainThreshold:2,secondLevelThreshold:2,topLevelThreshold:2,defaultDomains:["msn.com","bellsouth.net","telus.net","comcast.net","optusnet.com.au","earthlink.net","qq.com","sky.com","icloud.com","mac.com","sympatico.ca","googlemail.com","att.net","xtra.co.nz","web.de","cox.net","gmail.com","ymail.com","aim.com","rogers.com","verizon.net","rocketmail.com","google.com","optonline.net","sbcglobal.net","aol.com","me.com","btinternet.com","charter.net","shaw.ca"],defaultSecondLevelDomains:["yahoo","hotmail","mail","live","outlook","gmx"],defaultTopLevelDomains:["com","com.au","com.tw","ca","co.nz","co.uk","de","fr","it","ru","net","org","edu","gov","jp","nl","kr","se","eu","ie","co.il","us","at","be","dk","hk","es","gr","ch","no","cz","in","net","net.au","info","biz","mil","co.jp","sg","hu","uk"],run:function(a){a.domains=a.domains||Mailcheck.defaultDomains,a.secondLevelDomains=a.secondLevelDomains||Mailcheck.defaultSecondLevelDomains,a.topLevelDomains=a.topLevelDomains||Mailcheck.defaultTopLevelDomains,a.distanceFunction=a.distanceFunction||Mailcheck.sift4Distance;var b=function(a){return a},c=a.suggested||b,d=a.empty||b,e=Mailcheck.suggest(Mailcheck.encodeEmail(a.email),a.domains,a.secondLevelDomains,a.topLevelDomains,a.distanceFunction);return e?c(e):d()},suggest:function(a,b,c,d,e){a=a.toLowerCase();var f=this.splitEmail(a);if(c&&d&&-1!==c.indexOf(f.secondLevelDomain)&&-1!==d.indexOf(f.topLevelDomain))return!1;var g=this.findClosestDomain(f.domain,b,e,this.domainThreshold);if(g)return g==f.domain?!1:{address:f.address,domain:g,full:f.address+"@"+g};var h=this.findClosestDomain(f.secondLevelDomain,c,e,this.secondLevelThreshold),i=this.findClosestDomain(f.topLevelDomain,d,e,this.topLevelThreshold);if(f.domain){g=f.domain;var j=!1;if(h&&h!=f.secondLevelDomain&&(g=g.replace(f.secondLevelDomain,h),j=!0),i&&i!=f.topLevelDomain&&""!==f.secondLevelDomain&&(g=g.replace(new RegExp(f.topLevelDomain+"$"),i),j=!0),j)return{address:f.address,domain:g,full:f.address+"@"+g}}return!1},findClosestDomain:function(a,b,c,d){d=d||this.topLevelThreshold;var e,f=1/0,g=null;if(!a||!b)return!1;c||(c=this.sift4Distance);for(var h=0;h<b.length;h++){if(a===b[h])return a;e=c(a,b[h]),f>e&&(f=e,g=b[h])}return d>=f&&null!==g?g:!1},sift4Distance:function(a,b,c){if(void 0===c&&(c=5),!a||!a.length)return b?b.length:0;if(!b||!b.length)return a.length;for(var d=a.length,e=b.length,f=0,g=0,h=0,i=0,j=0,k=[];d>f&&e>g;){if(a.charAt(f)==b.charAt(g)){i++;for(var l=!1,m=0;m<k.length;){var n=k[m];if(f<=n.c1||g<=n.c2){l=Math.abs(g-f)>=Math.abs(n.c2-n.c1),l?j++:n.trans||(n.trans=!0,j++);break}f>n.c2&&g>n.c1?k.splice(m,1):m++}k.push({c1:f,c2:g,trans:l})}else{h+=i,i=0,f!=g&&(f=g=Math.min(f,g));for(var o=0;c>o&&(d>f+o||e>g+o);o++){if(d>f+o&&a.charAt(f+o)==b.charAt(g)){f+=o-1,g--;break}if(e>g+o&&a.charAt(f)==b.charAt(g+o)){f--,g+=o-1;break}}}f++,g++,(f>=d||g>=e)&&(h+=i,i=0,f=g=Math.min(f,g))}return h+=i,Math.round(Math.max(d,e)-h+j)},splitEmail:function(a){a=null!==a?a.replace(/^\s*/,"").replace(/\s*$/,""):null;var b=a.split("@");if(b.length<2)return!1;for(var c=0;c<b.length;c++)if(""===b[c])return!1;var d=b.pop(),e=d.split("."),f="",g="";if(0===e.length)return!1;if(1==e.length)g=e[0];else{f=e[0];for(var h=1;h<e.length;h++)g+=e[h]+".";g=g.substring(0,g.length-1)}return{topLevelDomain:g,secondLevelDomain:f,domain:d,address:b.join("@")}},encodeEmail:function(a){var b=encodeURI(a);return b=b.replace("%20"," ").replace("%25","%").replace("%5E","^").replace("%60","`").replace("%7B","{").replace("%7C","|").replace("%7D","}")}};"undefined"!=typeof module&&module.exports&&(module.exports=Mailcheck),"function"==typeof define&&define.amd&&define("mailcheck",[],function(){return Mailcheck}),"undefined"!=typeof window&&window.jQuery&&!function(a){a.fn.mailcheck=function(a){var b=this;if(a.suggested){var c=a.suggested;a.suggested=function(a){c(b,a)}}if(a.empty){var d=a.empty;a.empty=function(){d.call(null,b)}}a.email=this.val(),Mailcheck.run(a)}}(jQuery);