!function(){var e={4885:function(e,t,i){"use strict";i.r(t);var n=i(7857);document.addEventListener("lazybeforeunveil",function(e){var t;(0,n.G)(null==e||null===(t=e.detail)||void 0===t?void 0:t.instance)&&function(e){var t=e.getAttribute("data-bg-image")||e.getAttribute("data-bg"),i=e.hasAttribute("data-bg-image")?"background-image":"background";if(t){var n,r=e.getAttribute("style")||"",a="".concat(i,": ").concat(t,";"),o=new RegExp("".concat(i,"\\s*:\\s*[^;]+;?"));n=o.test(r)?r.replace(o,a):r.length>0?r.replace(/;$/g,"")+";"+a:a,e.setAttribute("style",n.trim())}}(e.target)})},5637:function(e,t,i){"use strict";i.r(t),i.d(t,{AutoResizing:function(){return y},LAZY_BEFORE_SIZES:function(){return l},SMUSH_BEFORE_SIZES:function(){return c}});var n=i(7857);function r(e){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r(e)}function a(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var i=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=i){var n,r,a,o,s=[],u=!0,l=!1;try{if(a=(i=i.call(e)).next,0===t){if(Object(i)!==i)return;u=!1}else for(;!(u=(n=a.call(i)).done)&&(s.push(n.value),s.length!==t);u=!0);}catch(e){l=!0,r=e}finally{try{if(!u&&null!=i.return&&(o=i.return(),Object(o)!==o))return}finally{if(l)throw r}}return s}}(e,t)||function(e,t){if(e){if("string"==typeof e)return o(e,t);var i={}.toString.call(e).slice(8,-1);return"Object"===i&&e.constructor&&(i=e.constructor.name),"Map"===i||"Set"===i?Array.from(e):"Arguments"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)?o(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function o(e,t){(null==t||t>e.length)&&(t=e.length);for(var i=0,n=Array(t);i<t;i++)n[i]=e[i];return n}function s(e,t){for(var i=0;i<t.length;i++){var n=t[i];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,u(n.key),n)}}function u(e){var t=function(e,t){if("object"!=r(e)||!e)return e;var i=e[Symbol.toPrimitive];if(void 0!==i){var n=i.call(e,t||"default");if("object"!=r(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==r(t)?t:t+""}var l="lazybeforesizes",c="smush:beforeSizes",d="data-original-sizes",f="data-srcset",v=["gif","jpg","jpeg","png","webp"],h="w",y=function(){return e=function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=t.precision,n=void 0===i?0:i,r=t.skipAutoWidth,a=void 0!==r&&r;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.precision=parseInt(n,10),this.precision=isNaN(this.precision)?0:this.precision,this.skipAutoWidth=a,this.initEventListeners()},t=[{key:"initEventListeners",value:function(){var e=this;document.addEventListener(l,function(t){var i;(0,n.G)(null===(i=t.detail)||void 0===i?void 0:i.instance)&&e.maybeAutoResize(t)})}},{key:"maybeAutoResize",value:function(e){var t,i,n,r=e.target,a=null===(t=e.detail)||void 0===t?void 0:t.width;if("IMG"===(null==r?void 0:r.nodeName)&&a&&(null===(i=e.detail)||void 0===i?void 0:i.dataAttr)&&this.isElementEligibleForResizing(r))if(this.shouldRevertToOriginalSizes(r,a))this.revertToOriginalSizesIfNeeded(r)&&e.preventDefault();else{var o=this.triggerEvent(r,c,{resizeWidth:a});if(o.defaultPrevented)this.revertToOriginalSizesIfNeeded(r)&&e.preventDefault();else{a=(null===(n=o.detail)||void 0===n?void 0:n.resizeWidth)||a;var s=this.getDataSrc(r);this.isFromSmushCDN(s)&&(this.resizeImageWithCDN(r,a),this.isChildOfPicture(r)&&this.resizeSourceElements(r.parentNode.querySelectorAll("source"),a))}}}},{key:"shouldAutoResize",value:function(e,t){var i=e.parentNode;if(i&&this.isInlineElement(i)){var n=i.offsetWidth,r=e.offsetWidth;if(t===n&&n===r)return!1}return!0}},{key:"isInlineElement",value:function(e){if(!e||1!==e.nodeType)return!1;var t=window.getComputedStyle(e).display;return"inline"===t||"inline-block"===t}},{key:"isChildOfPicture",value:function(e){var t;return e&&"PICTURE"===(null==e||null===(t=e.parentNode)||void 0===t?void 0:t.nodeName)}},{key:"resizeSourceElements",value:function(e,t){var i=this;e&&null!=e&&e.length&&e.forEach(function(e){return i.resizeSourceElement(e,t)})}},{key:"resizeSourceElement",value:function(e,t){var i=e.getAttribute(f);if(i){var n=this.parseSrcSet(i);if(n&&n.length){var r=this.getBaseSourceSrcForResize(n,t);this.isFromSmushCDN(r)&&this.updateSrcsetForResize(e,i,r,t,n)}}}},{key:"getBaseSourceSrcForResize",value:function(e,t){var i=e[0];return h!==i.unit?null:!this.isThumbnail(i.src)||i.value>=t?i.src:null}},{key:"isElementEligibleForResizing",value:function(e){var t=this.getOriginalSizesAttr(e),i=this.getDataSrc(e),n=this.getDataSrcSet(e);return Boolean(t&&i&&n)}},{key:"shouldRevertToOriginalSizes",value:function(e,t){if("auto"===this.getElementWidth(e))return this.shouldSkipAutoWidth();var i=this.getOriginalSizesAttr(e),n=this.getMaxWidthFromSizes(i);return!(!(n&&t>n)||this.isChildOfPicture(e))||!this.shouldAutoResize(e,t)}},{key:"triggerEvent",value:function(e,t){var i=new CustomEvent(t,{detail:arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},bubbles:!(arguments.length>3&&void 0!==arguments[3])||arguments[3],cancelable:!(arguments.length>4&&void 0!==arguments[4])||arguments[4]});return e.dispatchEvent(i),i}},{key:"shouldSkipAutoWidth",value:function(){return this.skipAutoWidth}},{key:"resizeImageWithCDN",value:function(e,t){var i=this.getDataSrcSet(e),n=this.getDataSrc(e);if(i&&n){var r=this.parseSrcSet(i),a=this.getBaseImageSrcForResize(n,r,t);this.updateSrcsetForResize(e,i,a,t,r)}}},{key:"updateSrcsetForResize",value:function(e,t,i,n,r){var a=this.updateSrcsetWithTargetWidth(t,i,n,r);a=this.updateSrcsetWithRetinaWidth(a,i,n,r),this.updateElementSrcset(e,t,a)}},{key:"getBaseImageSrcForResize",value:function(e,t,i){if(!this.isThumbnail(e))return e;var n=t.find(function(e){return e.value>=i});return n?n.src:e}},{key:"isThumbnail",value:function(e){return new RegExp("(-\\d+x\\d+)\\.(".concat(v.join("|"),")(?:\\?.+)?$"),"i").test(e)}},{key:"updateSrcsetWithTargetWidth",value:function(e,t,i,n){return this.findSimilarSource(n,i)?e:e+", "+this.getResizedCDNURL(t,i)+" "+i+h}},{key:"updateSrcsetWithRetinaWidth",value:function(e,t,i,n){var r=this.getPixelRatio();if(r<=1)return e;var a=Math.ceil(i*r);return this.findSimilarSource(n,r,"x")||this.findSimilarSource(n,a,h)?e:e+", "+this.getResizedCDNURL(t,a)+" "+a+h}},{key:"updateElementSrcset",value:function(e,t,i){i!==t&&e.setAttribute("data-srcset",i)}},{key:"getPixelRatio",value:function(){return window.devicePixelRatio||1}},{key:"findSimilarSource",value:function(e,t){var i=this,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:h,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:this.precision;return e.find(function(e){return n===e.unit&&e.value>=t&&i.isFuzzyMatch(e.value,t,r)})}},{key:"getResizedCDNURL",value:function(e,t){var i=this.parseURL(e);if(i){var n=new URLSearchParams(i.search);n.set("size","".concat(t,"x0"));var r=i.origin+i.pathname;return"".concat(r,"?").concat(n.toString())}}},{key:"parseURL",value:function(e){try{return new URL(e)}catch(e){return null}}},{key:"parseSrcSet",value:function(e){var t=this.extractSourcesFromSrcSet(e);return this.sortSources(t)}},{key:"extractSourcesFromSrcSet",value:function(e){return e.split(",").map(function(e){var t=a(e.trim().split(/\s+/),2),i=t[0],n=t[1],r=0,o="";return n&&(n.endsWith(h)?(r=parseInt(n,10),o=h):n.endsWith("x")&&(r=parseFloat(n),o="x")),{markup:e,src:i,value:r,unit:o}})}},{key:"sortSources",value:function(e){return e.sort(function(e,t){return e.value===t.value?0:e.value>t.value?-1:1}),e}},{key:"revertToOriginalSizesIfNeeded",value:function(e){var t=this.getOriginalSizesAttr(e);return!!t&&(e.setAttribute("sizes",t),e.removeAttribute(d),!0)}},{key:"getElementWidth",value:function(e){var t,i=null===(t=e.style)||void 0===t?void 0:t.width;if(i&&"auto"===i.trim())return"auto";var n=window.getComputedStyle(e).width,r=parseInt(n,10);return isNaN(r)?n:r}},{key:"getMaxWidthFromSizes",value:function(e){var t=e.match(/\(max-width:\s*(\d+)px\)\s*100vw,\s*\1px/);return t?parseInt(t[1],10):0}},{key:"getOriginalSizesAttr",value:function(e){return e.getAttribute(d)}},{key:"getDataSrcSet",value:function(e){return e.getAttribute(f)}},{key:"getDataSrc",value:function(e){return e.getAttribute("data-src")}},{key:"isFromSmushCDN",value:function(e){return e&&e.includes("smushcdn.com")}},{key:"isFuzzyMatch",value:function(e,t){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;return Math.abs(e-t)<=i}}],t&&s(e.prototype,t),i&&s(e,i),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,i}();!function(e,t){if(null===(e=window.smushLazyLoadOptions)||void 0===e?void 0:e.autoResizingEnabled){var i=(null===(t=window.smushLazyLoadOptions)||void 0===t?void 0:t.autoResizeOptions)||{};i=Object.assign({precision:5,skipAutoWidth:!0},i),new y(i)}}()},5651:function(e,t,i){"use strict";i.r(t);var n,r,a,o,s,u=i(7857);function l(e){return l="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},l(e)}function c(e,t){for(var i=0;i<t.length;i++){var n=t[i];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,d(n.key),n)}}function d(e){var t=function(e,t){if("object"!=l(e)||!e)return e;var i=e[Symbol.toPrimitive];if(void 0!==i){var n=i.call(e,t||"default");if("object"!=l(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==l(t)?t:t+""}r="smush-lazyloaded-video",a="ontouchstart"in window?"touchstart":"pointerdown",o=(null===(n=window)||void 0===n?void 0:n.smush_video_render_delay)||0,s=function(){return e=function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.shouldDelayVideoRenderingForMobile=this.supportsIntersectionObserver(),this.queuedVideoElements=[],this.isMobileOrSafari=null,this.init()},t=[{key:"init",value:function(){var e=this;document.addEventListener("lazybeforeunveil",function(t){return e.handleVideoLazyLoad(t)}),document.addEventListener(a,function(){return e.enableVideoRenderingForMobile()},{once:!0,passive:!0}),document.addEventListener("DOMContentLoaded",function(){!o||o<0||setTimeout(function(){return e.enableVideoRenderingForMobile()},o)})}},{key:"handleVideoLazyLoad",value:function(e){var t,i=e.target;(0,u.G)(null==e||null===(t=e.detail)||void 0===t?void 0:t.instance)&&i.classList.contains("smush-lazyload-video")&&(this.handleButtonPlay(i),this.maybePrepareVideoForPlay(i))}},{key:"handleButtonPlay",value:function(e){var t=this,i=e.querySelector(".".concat("smush-play-btn"));if(i){var n=function(){return t.loadIframeVideoWithAutoPlay(e)};i.addEventListener("click",n),i.addEventListener("keydown",function(e){"Enter"!==e.key&&" "!==e.key||(e.preventDefault(),n())})}else{var r;this.loadIframeVideo(e),null===(r=window.console)||void 0===r||r.warning("Missing play button [.smush-play-btn] for video element:",e)}}},{key:"maybePrepareVideoForPlay",value:function(e){var t=e.classList.contains("smush-lazyload-autoplay");this.shouldPrepareIframeForPlay()?this.maybePrepareVideoForMobileAndSafari(e,t):t&&this.loadIframeVideoWithAutoPlay(e)}},{key:"enableVideoRenderingForMobile",value:function(){this.shouldDelayVideoRenderingForMobile&&(this.shouldDelayVideoRenderingForMobile=!1,this.maybeObserveQueuedVideoElements())}},{key:"supportsIntersectionObserver",value:function(){return"IntersectionObserver"in window}},{key:"maybeObserveQueuedVideoElements",value:function(){this.queuedVideoElements.length&&this.observeQueuedVideoElements()}},{key:"observeQueuedVideoElements",value:function(){var e=this,t=new IntersectionObserver(function(i){i.forEach(function(i){if(i.isIntersecting){var n=i.target;e.loadIframeVideo(n),t.unobserve(n)}})},{rootMargin:"0px 0px 200px 0px",threshold:.1});this.queuedVideoElements.forEach(function(e){t.observe(e)})}},{key:"maybePrepareVideoForMobileAndSafari",value:function(e,t){this.shouldDelayVideoRenderingForMobile?this.queuedVideoElements.push(e):this.loadIframeVideo(e,t)}},{key:"shouldPrepareIframeForPlay",value:function(){return null===this.isMobileOrSafari&&(this.isMobileOrSafari=this.checkIfMobileOrSafari()),this.isMobileOrSafari}},{key:"checkIfMobileOrSafari",value:function(){var e=navigator.userAgent;return e.includes("Mobi")||e.includes("Safari")&&!e.includes("Chrome")}},{key:"loadIframeVideo",value:function(e){var t,i=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(!e.classList.contains(r)){e.classList.add(r,"loading");var n=e.querySelector("iframe");if(n){var a=null===(t=n.dataset)||void 0===t?void 0:t.src;if(a){if(i){var o=new URL(a);o.searchParams.set("autoplay","1"),o.searchParams.set("playsinline","1"),a=o.toString()}var s=n.getAttribute("allow")||"accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture";s.includes("autoplay")||(s+="; autoplay"),n.setAttribute("allow",s),n.setAttribute("allowFullscreen","true"),n.setAttribute("src",a),e.classList.remove("loading")}else{var u;null===(u=window.console)||void 0===u||u.error("Missing data-src attribute for iframe:",n)}}else{var l;null===(l=window.console)||void 0===l||l.error("Missing iframe element in video wrapper:",e)}}}},{key:"loadIframeVideoWithAutoPlay",value:function(e){this.loadIframeVideo(e,!0)}}],t&&c(e.prototype,t),i&&c(e,i),Object.defineProperty(e,"prototype",{writable:!1}),e;var e,t,i}(),new s},6879:function(e){!function(t){var i=function(e,t,i){"use strict";var n,r;if(function(){var t,i={lazyClass:"lazyload",loadedClass:"lazyloaded",loadingClass:"lazyloading",preloadClass:"lazypreload",errorClass:"lazyerror",autosizesClass:"lazyautosizes",fastLoadedClass:"ls-is-cached",iframeLoadMode:0,srcAttr:"data-src",srcsetAttr:"data-srcset",sizesAttr:"data-sizes",minSize:40,customMedia:{},init:!0,expFactor:1.5,hFac:.8,loadMode:2,loadHidden:!0,ricTimeout:0,throttleDelay:125};for(t in r=e.lazySizesConfig||e.lazysizesConfig||{},i)t in r||(r[t]=i[t])}(),!t||!t.getElementsByClassName)return{init:function(){},cfg:r,noSupport:!0};var a=t.documentElement,o=e.HTMLPictureElement,s="addEventListener",u="getAttribute",l=e[s].bind(e),c=e.setTimeout,d=e.requestAnimationFrame||c,f=e.requestIdleCallback,v=/^picture$/i,h=["load","error","lazyincluded","_lazyloaded"],y={},m=Array.prototype.forEach,g=function(e,t){return y[t]||(y[t]=new RegExp("(\\s|^)"+t+"(\\s|$)")),y[t].test(e[u]("class")||"")&&y[t]},p=function(e,t){g(e,t)||e.setAttribute("class",(e[u]("class")||"").trim()+" "+t)},b=function(e,t){var i;(i=g(e,t))&&e.setAttribute("class",(e[u]("class")||"").replace(i," "))},S=function(e,t,i){var n=i?s:"removeEventListener";i&&S(e,t),h.forEach(function(i){e[n](i,t)})},z=function(e,i,r,a,o){var s=t.createEvent("Event");return r||(r={}),r.instance=n,s.initEvent(i,!a,!o),s.detail=r,e.dispatchEvent(s),s},w=function(t,i){var n;!o&&(n=e.picturefill||r.pf)?(i&&i.src&&!t[u]("srcset")&&t.setAttribute("srcset",i.src),n({reevaluate:!0,elements:[t]})):i&&i.src&&(t.src=i.src)},E=function(e,t){return(getComputedStyle(e,null)||{})[t]},A=function(e,t,i){for(i=i||e.offsetWidth;i<r.minSize&&t&&!e._lazysizesWidth;)i=t.offsetWidth,t=t.parentNode;return i},k=(pe=[],be=[],Se=pe,ze=function(){var e=Se;for(Se=pe.length?be:pe,me=!0,ge=!1;e.length;)e.shift()();me=!1},we=function(e,i){me&&!i?e.apply(this,arguments):(Se.push(e),ge||(ge=!0,(t.hidden?c:d)(ze)))},we._lsFlush=ze,we),C=function(e,t){return t?function(){k(e)}:function(){var t=this,i=arguments;k(function(){e.apply(t,i)})}},R=function(e){var t,n=0,a=r.throttleDelay,o=r.ricTimeout,s=function(){t=!1,n=i.now(),e()},u=f&&o>49?function(){f(s,{timeout:o}),o!==r.ricTimeout&&(o=r.ricTimeout)}:C(function(){c(s)},!0);return function(e){var r;(e=!0===e)&&(o=33),t||(t=!0,(r=a-(i.now()-n))<0&&(r=0),e||r<9?u():c(u,r))}},M=function(e){var t,n,r=99,a=function(){t=null,e()},o=function(){var e=i.now()-n;e<r?c(o,r-e):(f||a)(a)};return function(){n=i.now(),t||(t=c(o,r))}},O=(Q=/^img$/i,Z=/^iframe$/i,J="onscroll"in e&&!/(gle|ing)bot/.test(navigator.userAgent),Y=0,K=0,X=0,ee=-1,te=function(e){X--,(!e||X<0||!e.target)&&(X=0)},ie=function(e){return null==G&&(G="hidden"==E(t.body,"visibility")),G||!("hidden"==E(e.parentNode,"visibility")&&"hidden"==E(e,"visibility"))},ne=function(e,i){var n,r=e,o=ie(e);for(U-=i,H+=i,q-=i,$+=i;o&&(r=r.offsetParent)&&r!=t.body&&r!=a;)(o=(E(r,"opacity")||1)>0)&&"visible"!=E(r,"overflow")&&(n=r.getBoundingClientRect(),o=$>n.left&&q<n.right&&H>n.top-1&&U<n.bottom+1);return o},re=function(){var e,i,o,s,l,c,d,f,v,h,y,m,g=n.elements;if((T=r.loadMode)&&X<8&&(e=g.length)){for(i=0,ee++;i<e;i++)if(g[i]&&!g[i]._lazyRace)if(!J||n.prematureUnveil&&n.prematureUnveil(g[i]))fe(g[i]);else if((f=g[i][u]("data-expand"))&&(c=1*f)||(c=K),h||(h=!r.expand||r.expand<1?a.clientHeight>500&&a.clientWidth>500?500:370:r.expand,n._defEx=h,y=h*r.expFactor,m=r.hFac,G=null,K<y&&X<1&&ee>2&&T>2&&!t.hidden?(K=y,ee=0):K=T>1&&ee>1&&X<6?h:Y),v!==c&&(j=innerWidth+c*m,B=innerHeight+c,d=-1*c,v=c),o=g[i].getBoundingClientRect(),(H=o.bottom)>=d&&(U=o.top)<=B&&($=o.right)>=d*m&&(q=o.left)<=j&&(H||$||q||U)&&(r.loadHidden||ie(g[i]))&&(_&&X<3&&!f&&(T<3||ee<4)||ne(g[i],c))){if(fe(g[i]),l=!0,X>9)break}else!l&&_&&!s&&X<4&&ee<4&&T>2&&(x[0]||r.preloadAfterLoad)&&(x[0]||!f&&(H||$||q||U||"auto"!=g[i][u](r.sizesAttr)))&&(s=x[0]||g[i]);s&&!l&&fe(s)}},ae=R(re),oe=function(e){var t=e.target;t._lazyCache?delete t._lazyCache:(te(e),p(t,r.loadedClass),b(t,r.loadingClass),S(t,ue),z(t,"lazyloaded"))},se=C(oe),ue=function(e){se({target:e.target})},le=function(e,t){var i=e.getAttribute("data-load-mode")||r.iframeLoadMode;0==i?e.contentWindow.location.replace(t):1==i&&(e.src=t)},ce=function(e){var t,i=e[u](r.srcsetAttr);(t=r.customMedia[e[u]("data-media")||e[u]("media")])&&e.setAttribute("media",t),i&&e.setAttribute("srcset",i)},de=C(function(e,t,i,n,a){var o,s,l,d,f,h;(f=z(e,"lazybeforeunveil",t)).defaultPrevented||(n&&(i?p(e,r.autosizesClass):e.setAttribute("sizes",n)),s=e[u](r.srcsetAttr),o=e[u](r.srcAttr),a&&(d=(l=e.parentNode)&&v.test(l.nodeName||"")),h=t.firesLoad||"src"in e&&(s||o||d),f={target:e},p(e,r.loadingClass),h&&(clearTimeout(D),D=c(te,2500),S(e,ue,!0)),d&&m.call(l.getElementsByTagName("source"),ce),s?e.setAttribute("srcset",s):o&&!d&&(Z.test(e.nodeName)?le(e,o):e.src=o),a&&(s||d)&&w(e,{src:o})),e._lazyRace&&delete e._lazyRace,b(e,r.lazyClass),k(function(){var t=e.complete&&e.naturalWidth>1;h&&!t||(t&&p(e,r.fastLoadedClass),oe(f),e._lazyCache=!0,c(function(){"_lazyCache"in e&&delete e._lazyCache},9)),"lazy"==e.loading&&X--},!0)}),fe=function(e){if(!e._lazyRace){var t,i=Q.test(e.nodeName),n=i&&(e[u](r.sizesAttr)||e[u]("sizes")),a="auto"==n;(!a&&_||!i||!e[u]("src")&&!e.srcset||e.complete||g(e,r.errorClass)||!g(e,r.lazyClass))&&(t=z(e,"lazyunveilread").detail,a&&L.updateElem(e,!0,e.offsetWidth),e._lazyRace=!0,X++,de(e,t,a,n,i))}},ve=M(function(){r.loadMode=3,ae()}),he=function(){3==r.loadMode&&(r.loadMode=2),ve()},ye=function(){_||(i.now()-V<999?c(ye,999):(_=!0,r.loadMode=3,ae(),l("scroll",he,!0)))},{_:function(){V=i.now(),n.elements=t.getElementsByClassName(r.lazyClass),x=t.getElementsByClassName(r.lazyClass+" "+r.preloadClass),l("scroll",ae,!0),l("resize",ae,!0),l("pageshow",function(e){if(e.persisted){var i=t.querySelectorAll("."+r.loadingClass);i.length&&i.forEach&&d(function(){i.forEach(function(e){e.complete&&fe(e)})})}}),e.MutationObserver?new MutationObserver(ae).observe(a,{childList:!0,subtree:!0,attributes:!0}):(a[s]("DOMNodeInserted",ae,!0),a[s]("DOMAttrModified",ae,!0),setInterval(ae,999)),l("hashchange",ae,!0),["focus","mouseover","click","load","transitionend","animationend"].forEach(function(e){t[s](e,ae,!0)}),/d$|^c/.test(t.readyState)?ye():(l("load",ye),t[s]("DOMContentLoaded",ae),c(ye,2e4)),n.elements.length?(re(),k._lsFlush()):ae()},checkElems:ae,unveil:fe,_aLSL:he}),L=(I=C(function(e,t,i,n){var r,a,o;if(e._lazysizesWidth=n,n+="px",e.setAttribute("sizes",n),v.test(t.nodeName||""))for(a=0,o=(r=t.getElementsByTagName("source")).length;a<o;a++)r[a].setAttribute("sizes",n);i.detail.dataAttr||w(e,i.detail)}),N=function(e,t,i){var n,r=e.parentNode;r&&(i=A(e,r,i),(n=z(e,"lazybeforesizes",{width:i,dataAttr:!!t})).defaultPrevented||(i=n.detail.width)&&i!==e._lazysizesWidth&&I(e,r,n,i))},W=M(function(){var e,t=P.length;if(t)for(e=0;e<t;e++)N(P[e])}),{_:function(){P=t.getElementsByClassName(r.autosizesClass),l("resize",W)},checkElems:W,updateElem:N}),F=function(){!F.i&&t.getElementsByClassName&&(F.i=!0,L._(),O._())};var P,I,N,W;var x,_,D,T,V,j,B,U,q,$,H,G,Q,Z,J,Y,K,X,ee,te,ie,ne,re,ae,oe,se,ue,le,ce,de,fe,ve,he,ye;var me,ge,pe,be,Se,ze,we;return c(function(){r.init&&F()}),n={cfg:r,autoSizer:L,loader:O,init:F,uP:w,aC:p,rC:b,hC:g,fire:z,gW:A,rAF:k}}(t,t.document,Date);t.lazySizes=i,e.exports&&(e.exports=i)}("undefined"!=typeof window?window:{})},7857:function(e,t,i){"use strict";i.d(t,{G:function(){return a}});var n=i(6879),r=i.n(n),a=function(e){return e===r()||JSON.stringify((null==e?void 0:e.cfg)||{})===JSON.stringify((null===r()||void 0===r()?void 0:r().cfg)||{})};t.A=r()}},t={};function i(n){var r=t[n];if(void 0!==r)return r.exports;var a=t[n]={exports:{}};return e[n](a,a.exports,i),a.exports}i.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(t,{a:t}),t},i.d=function(e,t){for(var n in t)i.o(t,n)&&!i.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},i.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},i.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},function(){"use strict";var e=window.lazySizesConfig||null;e&&delete window.lazySizesConfig;var t=i(7857);i(4885),i(5651),i(5637),t.A.init(),e?window.lazySizesConfig=e:"lazySizesConfig"in window&&delete window.lazySizesConfig}()}();
document.documentElement.className+=" js_active ",document.documentElement.className+="ontouchstart"in document.documentElement?" vc_mobile ":" vc_desktop ",(()=>{for(var e=["-webkit-","-moz-","-ms-","-o-",""],t=0;t<e.length;t++)e[t]+"transform"in document.documentElement.style&&(document.documentElement.className+=" vc_transform ")})(),(c=>{"function"!=typeof window.vc_js&&(window.vc_js=function(){vc_toggleBehaviour(),vc_tabsBehaviour(),vc_accordionBehaviour(),vc_teaserGrid(),vc_carouselBehaviour(),vc_slidersBehaviour(),vc_prettyPhoto(),vc_pinterest(),vc_progress_bar(),vc_plugin_flexslider(),vc_gridBehaviour(),vc_rowBehaviour(),vc_prepareHoverBox(),vc_googleMapsPointer(),vc_ttaActivation(),vc_ttaToggleBehaviour(),jQuery(document).trigger("vc_js"),window.setTimeout(vc_waypoints,500)}),"function"!=typeof window.vc_plugin_flexslider&&(window.vc_plugin_flexslider=function(e){(e?e.find(".wpb_flexslider"):jQuery(".wpb_flexslider")).each(function(){var e=jQuery(this),t=1e3*parseInt(e.attr("data-interval"),10),o=e.attr("data-flex_fx"),i=0==t?!1:!0;e.is(":visible")&&setTimeout(function(){e.flexslider({animation:o,slideshow:i,slideshowSpeed:t,sliderSpeed:800,smoothHeight:!0})},1)})}),"function"!=typeof window.vc_googleplus&&(window.vc_googleplus=function(){var e,t;0<jQuery(".wpb_googleplus").length&&((e=document.createElement("script")).type="text/javascript",e.async=!0,e.src="https://apis.google.com/js/plusone.js",(t=document.getElementsByTagName("script")[0]).parentNode.insertBefore(e,t))}),"function"!=typeof window.vc_pinterest&&(window.vc_pinterest=function(){var e,t;0<jQuery(".wpb_pinterest").length&&((e=document.createElement("script")).type="text/javascript",e.async=!0,e.src="https://assets.pinterest.com/js/pinit.js",(t=document.getElementsByTagName("script")[0]).parentNode.insertBefore(e,t))}),"function"!=typeof window.vc_progress_bar&&(window.vc_progress_bar=function(){void 0!==jQuery.fn.vcwaypoint&&jQuery(".vc_progress_bar").each(function(){var e=jQuery(this);e.vcwaypoint(function(){e.find(".vc_single_bar").each(function(e){var t=jQuery(this).find(".vc_bar"),o=t.data("percentage-value");setTimeout(function(){t.css({width:o+"%"})},200*e)})},{offset:"85%"})})}),"function"!=typeof window.vc_waypoints&&(window.vc_waypoints=function(){void 0!==jQuery.fn.vcwaypoint&&jQuery(".wpb_animate_when_almost_visible:not(.wpb_start_animation)").each(function(){var e=jQuery(this);e.vcwaypoint(function(){e.addClass("wpb_start_animation animated")},{offset:"85%"})})}),"function"!=typeof window.vc_toggleBehaviour&&(window.vc_toggleBehaviour=function(e){function t(e){e&&e.preventDefault&&e.preventDefault();var t=jQuery(this).closest(".vc_toggle"),e=t.find(".vc_toggle_content");t.hasClass("vc_toggle_active")?e.slideUp({duration:300,complete:function(){t.removeClass("vc_toggle_active")}}):e.slideDown({duration:300,complete:function(){t.addClass("vc_toggle_active")}})}(e?e.hasClass("vc_toggle_title")?e.unbind("click"):e.find(".vc_toggle_title").off("click"):jQuery(".vc_toggle_title").off("click")).on("click",t)}),"function"!=typeof window.vc_ttaToggleBehaviour&&(window.vc_ttaToggleBehaviour=function(e){function t(){var e=jQuery(this);e.toggleClass("wpb-tta-toggle-active"),e.parent().parent().parent().find(".vc_pagination-item").each(function(){if(!c(this).hasClass("vc_active"))return c(this).find("a").click(),!1})}(e?e.find(".wpb-tta-toggle"):jQuery(".wpb-tta-toggle")).off("click").on("click",t),setTimeout(function(){jQuery(".wpb-tta-toggle").each(function(){var e=jQuery(this);e.parent().parent().parent().find(".vc_tta-panels-container .vc_pagination li:first").hasClass("vc_active")||e.addClass("wpb-tta-toggle-active")})},1e3)}),"function"!=typeof window.vc_tabsBehaviour&&(window.vc_tabsBehaviour=function(e){var t,i;jQuery.ui&&(e=e||jQuery(".wpb_tabs, .wpb_tour"),t=jQuery.ui&&jQuery.ui.version?jQuery.ui.version.split("."):"1.10",i=1===parseInt(t[0],10)&&parseInt(t[1],10)<9,e.each(function(){var e=jQuery(this).attr("data-interval"),t=[],o=jQuery(this).find(".wpb_tour_tabs_wrapper").tabs({show:function(e,t){wpb_prepare_tab_content(e,t)},activate:function(e,t){wpb_prepare_tab_content(e,t)}});if(e&&0<e)try{o.tabs("rotate",1e3*e)}catch(e){window.console&&window.console.warn&&console.warn("tabs behaviours error",e)}jQuery(this).find(".wpb_tab").each(function(){t.push(this.id)}),jQuery(this).find(".wpb_tabs_nav li").on("click",function(e){return e&&e.preventDefault&&e.preventDefault(),i?o.tabs("select",jQuery("a",this).attr("href")):o.tabs("option","active",jQuery(this).index()),!1}),jQuery(this).find(".wpb_prev_slide a, .wpb_next_slide a").on("click",function(e){var t;e&&e.preventDefault&&e.preventDefault(),i?(t=o.tabs("option","selected"),jQuery(this).parent().hasClass("wpb_next_slide")?t++:t--,t<0?t=o.tabs("length")-1:t>=o.tabs("length")&&(t=0),o.tabs("select",t)):(t=o.tabs("option","active"),e=o.find(".wpb_tab").length,t=jQuery(this).parent().hasClass("wpb_next_slide")?e<=t+1?0:t+1:t-1<0?e-1:t-1,o.tabs("option","active",t))})}))}),"function"!=typeof window.vc_accordionBehaviour&&(window.vc_accordionBehaviour=function(){jQuery(".wpb_accordion").each(function(){var e=jQuery(this),t=(e.attr("data-interval"),!isNaN(jQuery(this).data("active-tab"))&&0<parseInt(e.data("active-tab"),10)&&parseInt(e.data("active-tab"),10)-1),o=!1===t||"yes"===e.data("collapsible"),t=e.find(".wpb_accordion_wrapper").accordion({header:"> div > h3",autoHeight:!1,heightStyle:"content",active:t,collapsible:o,navigation:!0,activate:vc_accordionActivate,change:function(e,t){void 0!==jQuery.fn.isotope&&t.newContent.find(".isotope").isotope("layout"),vc_carouselBehaviour(t.newPanel)}});!0===e.data("vcDisableKeydown")&&(t.data("uiAccordion")._keydown=function(){})})}),"function"!=typeof window.vc_teaserGrid&&(window.vc_teaserGrid=function(){var i={fitrows:"fitRows",masonry:"masonry"};jQuery(".wpb_grid .teaser_grid_container:not(.wpb_carousel), .wpb_filtered_grid .teaser_grid_container:not(.wpb_carousel)").each(function(){var e=jQuery(this),t=e.find(".wpb_thumbnails"),o=t.attr("data-layout-mode");t.isotope({itemSelector:".isotope-item",layoutMode:void 0===i[o]?"fitRows":i[o]}),e.find(".categories_filter a").data("isotope",t).on("click",function(e){e&&e.preventDefault&&e.preventDefault();e=jQuery(this).data("isotope");jQuery(this).parent().parent().find(".active").removeClass("active"),jQuery(this).parent().addClass("active"),e.isotope({filter:jQuery(this).attr("data-filter")})}),jQuery(window).on("load resize",function(){t.isotope("layout")})})}),"function"!=typeof window.vc_carouselBehaviour&&(window.vc_carouselBehaviour=function(e){(e?e.find(".wpb_carousel"):jQuery(".wpb_carousel")).each(function(){var e=jQuery(this);!0!==e.data("carousel_enabled")&&e.is(":visible")&&(e.data("carousel_enabled",!0),getColumnsCount(jQuery(this)),jQuery(this).hasClass("columns_count_1"),(e=jQuery(this).find(".wpb_thumbnails-fluid li")).css({"margin-right":e.css("margin-left"),"margin-left":0}),(e=jQuery(this).find("ul.wpb_thumbnails-fluid")).width(e.width()+300))})}),"function"!=typeof window.vc_slidersBehaviour&&(window.vc_slidersBehaviour=function(){jQuery(".wpb_gallery_slides").each(function(){var e,t,o=jQuery(this);o.hasClass("wpb_slider_nivo")?(0===(t=1e3*o.attr("data-interval"))&&(t=9999999999),o.find(".nivoSlider").nivoSlider({effect:"boxRainGrow,boxRain,boxRainReverse,boxRainGrowReverse",slices:15,boxCols:8,boxRows:4,animSpeed:800,pauseTime:t,startSlide:0,directionNav:!0,directionNavHide:!0,controlNav:!0,keyboardNav:!1,pauseOnHover:!0,manualAdvance:!1,prevText:"Prev",nextText:"Next"})):o.hasClass("wpb_image_grid")&&o.find(".wpb_image_grid_ul")&&o.find(".wpb_image_grid_ul").isotope&&(jQuery.fn.imagesLoaded?e=o.find(".wpb_image_grid_ul").imagesLoaded(function(){e.isotope({itemSelector:".isotope-item",layoutMode:"fitRows"})}):o.find(".wpb_image_grid_ul").isotope({itemSelector:".isotope-item",layoutMode:"fitRows"}))})}),"function"!=typeof window.vc_prettyPhoto&&(window.vc_prettyPhoto=function(){try{jQuery&&jQuery.fn&&jQuery.fn.prettyPhoto&&jQuery('a.prettyphoto, .gallery-icon a[href*=".jpg"]').prettyPhoto({animationSpeed:"normal",hook:"data-rel",padding:15,opacity:.7,showTitle:!0,allowresize:!0,counter_separator_label:"/",hideflash:!1,deeplinking:!1,modal:!1,callback:function(){-1<location.href.indexOf("#!prettyPhoto")&&(location.hash="")},social_tools:""})}catch(e){window.console&&window.console.warn&&window.console.warn("vc_prettyPhoto initialize error",e)}}),"function"!=typeof window.vc_google_fonts&&(window.vc_google_fonts=function(){return window.console&&window.console.warn&&window.console.warn("function vc_google_fonts is deprecated, no need to use it"),!1}),window.vcParallaxSkroll=!1,"function"!=typeof window.vc_rowBehaviour&&(window.vc_rowBehaviour=function(){var s=window.jQuery;function e(){var e;void 0!==window.wpb_disable_full_width_row_js&&window.wpb_disable_full_width_row_js||(e=s('[data-vc-full-width="true"]'),s.each(e,function(){var e,t,o,i,n,a,r,c=s(this),d=(c.addClass("vc_hidden"),c.next(".vc_row-full-width"));(d=d.length?d:c.parent().next(".vc_row-full-width")).length&&(e=parseInt(c.css("margin-left"),10),t=parseInt(c.css("margin-right"),10),o=0-d.offset().left-e,i=s(window).width(),n={position:"relative",left:o="rtl"===c.css("direction")?(o=o-d.width()+i)+e+t:o,"box-sizing":"border-box",width:i,"max-width":i},c.css(n),c.data("vcStretchContent")||("rtl"===c.css("direction")?((a=o)<0&&(a=0),(r=o)<0&&(r=0)):(r=i-(a=(a=-1*o)<0?0:a)-d.width()+e+t)<0&&(r=0),c.css({"padding-left":a+"px","padding-right":r+"px"})),c.attr("data-vc-full-width-init","true"),c.removeClass("vc_hidden"),s(document).trigger("vc-full-width-row-single",{el:c,offset:o,marginLeft:e,marginRight:t,elFull:d,width:i,maxWidth:i}))}),s(document).trigger("vc-full-width-row",e))}function t(){var e,t,o=s(".vc_row-o-full-height:first");o.length&&(e=s(window).height(),(t=o.offset().top)<e)&&o.css("min-height",100-t/(e/100)+"vh"),s(document).trigger("vc-full-height-row",o)}s(window).off("resize.vcRowBehaviour").on("resize.vcRowBehaviour",e).on("resize.vcRowBehaviour",t),e(),t(),(0<window.navigator.userAgent.indexOf("MSIE ")||navigator.userAgent.match(/Trident.*rv\:11\./))&&s(".vc_row-o-full-height").each(function(){"flex"===s(this).css("display")&&s(this).wrap('<div class="vc_ie-flexbox-fixer"></div>')}),vc_initVideoBackgrounds();var n=!1;if(window.vcParallaxSkroll&&window.vcParallaxSkroll.destroy(),s(".vc_parallax-inner").remove(),s("[data-5p-top-bottom]").removeAttr("data-5p-top-bottom data-30p-top-bottom"),s("[data-vc-parallax]").each(function(){var e,t,o,i;n=!0,"on"===s(this).data("vcParallaxOFade")&&s(this).children().attr("data-5p-top-bottom","opacity:0;").attr("data-30p-top-bottom","opacity:1;"),e=100*s(this).data("vcParallax"),(t=s("<div />").addClass("vc_parallax-inner").appendTo(s(this))).height(e+"%"),o=s(this).data("vcParallaxImage"),(i=vcExtractYoutubeId(o))?insertYoutubeVideoAsBackground(t,i):void 0!==o&&t.css("background-image","url("+o+")"),t.attr("data-bottom-top","top: "+-(e-100)+"%;").attr("data-top-bottom","top: 0%;")}),n&&window.skrollr)window.vcParallaxSkroll=skrollr.init({forceHeight:!1,smoothScrolling:!1,mobileCheck:function(){return!1}}),window.vcParallaxSkroll}),"function"!=typeof window.vc_gridBehaviour&&(window.vc_gridBehaviour=function(){jQuery.fn.vcGrid&&jQuery("[data-vc-grid]").vcGrid()}),"function"!=typeof window.getColumnsCount&&(window.getColumnsCount=function(e){for(var t=!1,o=1;!1===t;){if(e.hasClass("columns_count_"+o))return t=!0,o;o++}}),"function"!=typeof window.wpb_prepare_tab_content&&(window.wpb_prepare_tab_content=function(e,t){var o=t.panel||t.newPanel,i=o.find(".vc_pie_chart:not(.vc_ready)"),n=o.find(".vc_round-chart"),a=o.find(".vc_line-chart"),r=o.find('[data-ride="vc_carousel"]');vc_carouselBehaviour(),vc_plugin_flexslider(o),t.newPanel.find(".vc_masonry_media_grid, .vc_masonry_grid").length&&t.newPanel.find(".vc_masonry_media_grid, .vc_masonry_grid").each(function(){var e=jQuery(this).data("vcGrid");e&&e.gridBuilder&&e.gridBuilder.setMasonry&&e.gridBuilder.setMasonry()}),o.find(".vc_masonry_media_grid, .vc_masonry_grid").length&&o.find(".vc_masonry_media_grid, .vc_masonry_grid").each(function(){var e=jQuery(this).data("vcGrid");e&&e.gridBuilder&&e.gridBuilder.setMasonry&&e.gridBuilder.setMasonry()}),i.length&&jQuery.fn.vcChat&&i.vcChat(),n.length&&jQuery.fn.vcRoundChart&&n.vcRoundChart({reload:!1}),a.length&&jQuery.fn.vcLineChart&&a.vcLineChart({reload:!1}),r.length&&jQuery.fn.carousel&&r.carousel("resizeAction"),t=o.find(".isotope, .wpb_image_grid_ul"),i=o.find(".wpb_gmaps_widget"),0<t.length&&t.isotope("layout"),i.length&&!i.is(".map_ready")&&((n=i.find("iframe")).attr("src",n.attr("src")),i.addClass("map_ready")),o.parents(".isotope").length&&o.parents(".isotope").each(function(){jQuery(this).isotope("layout")}),c(document).trigger("wpb_prepare_tab_content",o)}),"function"!=typeof window.vc_ttaActivation&&(window.vc_ttaActivation=function(){jQuery("[data-vc-accordion]").on("show.vc.accordion",function(e){var t=window.jQuery,o={};o.newPanel=t(this).data("vc.accordion").getTarget(),window.wpb_prepare_tab_content(e,o)})}),"function"!=typeof window.vc_accordionActivate&&(window.vc_accordionActivate=function(e,t){var o,i,n,a;t.newPanel.length&&t.newHeader.length&&(o=t.newPanel.find(".vc_pie_chart:not(.vc_ready)"),i=t.newPanel.find(".vc_round-chart"),n=t.newPanel.find(".vc_line-chart"),a=t.newPanel.find('[data-ride="vc_carousel"]'),void 0!==jQuery.fn.isotope&&t.newPanel.find(".isotope, .wpb_image_grid_ul").isotope("layout"),t.newPanel.find(".vc_masonry_media_grid, .vc_masonry_grid").length&&t.newPanel.find(".vc_masonry_media_grid, .vc_masonry_grid").each(function(){var e=jQuery(this).data("vcGrid");e&&e.gridBuilder&&e.gridBuilder.setMasonry&&e.gridBuilder.setMasonry()}),vc_carouselBehaviour(t.newPanel),vc_plugin_flexslider(t.newPanel),o.length&&jQuery.fn.vcChat&&o.vcChat(),i.length&&jQuery.fn.vcRoundChart&&i.vcRoundChart({reload:!1}),n.length&&jQuery.fn.vcLineChart&&n.vcLineChart({reload:!1}),a.length&&jQuery.fn.carousel&&a.carousel("resizeAction"),t.newPanel.parents(".isotope").length)&&t.newPanel.parents(".isotope").each(function(){jQuery(this).isotope("layout")})}),"function"!=typeof window.initVideoBackgrounds&&(window.initVideoBackgrounds=function(){return window.console&&window.console.warn&&window.console.warn("this function is deprecated use vc_initVideoBackgrounds"),vc_initVideoBackgrounds()}),"function"!=typeof window.vc_initVideoBackgrounds&&(window.vc_initVideoBackgrounds=function(){c(".vc_video-bg").remove(),c("[data-vc-video-bg]").each(function(){var e,o=jQuery(this);o.data("vcVideoBg")?(e=o.data("vcVideoBg"),(e=vcExtractYoutubeId(e))&&(o.find(".vc_video-bg").remove(),insertYoutubeVideoAsBackground(o,e)),jQuery(window).on("grid:items:added",function(e,t){o.has(t).length&&vcResizeVideoBackground(o)})):o.find(".vc_video-bg").remove()})}),"function"!=typeof window.insertYoutubeVideoAsBackground&&(window.insertYoutubeVideoAsBackground=function(e,t,o){if("undefined"==typeof YT||void 0===YT.Player)return 100<(o=void 0===o?0:o)?void console.warn("Too many attempts to load YouTube api"):void setTimeout(function(){insertYoutubeVideoAsBackground(e,t,o++)},100);var i=e.prepend('<div class="vc_video-bg"><div class="inner"></div></div>').find(".inner");new YT.Player(i[0],{width:"100%",height:"100%",videoId:t,playerVars:{playlist:t,iv_load_policy:3,enablejsapi:1,disablekb:1,autoplay:1,controls:0,showinfo:0,rel:0,loop:1,mute:1,wmode:"transparent"},events:{onReady:function(e){e.target.mute().setLoop(!0)}}}),vcResizeVideoBackground(e),jQuery(window).on("resize",function(){vcResizeVideoBackground(e)})}),"function"!=typeof window.vcResizeVideoBackground&&(window.vcResizeVideoBackground=function(e){var t,o,i,n,a=e.innerWidth(),r=e.innerHeight();a/r<16/9?(t=r*(16/9),o=r,i=-Math.round((t-a)/2)+"px",n=-Math.round((o-r)/2)+"px"):(o=(t=a)*(9/16),n=-Math.round((o-r)/2)+"px",i=-Math.round((t-a)/2)+"px"),t+="px",o+="px",e.find(".vc_video-bg iframe").css({maxWidth:"1000%",marginLeft:i,marginTop:n,width:t,height:o})}),"function"!=typeof window.vcExtractYoutubeId&&(window.vcExtractYoutubeId=function(e){return void 0!==e&&null!==(e=e.match(/(?:https?:\/{2})?(?:w{3}\.)?youtu(?:be)?\.(?:com|be)(?:\/watch\?v=|\/)([^\s&]+)/))&&e[1]}),"function"!=typeof window.vc_googleMapsPointer&&(window.vc_googleMapsPointer=function(){var e=window.jQuery,t=e(".wpb_gmaps_widget");t.on("click",function(){e("iframe",this).css("pointer-events","auto")}),t.on("mouseleave",function(){e("iframe",this).css("pointer-events","none")}),e(".wpb_gmaps_widget iframe").css("pointer-events","none")}),"function"!=typeof window.vc_setHoverBoxPerspective&&(window.vc_setHoverBoxPerspective=function(e){e.each(function(){var e=jQuery(this),t=e.width();e.css("perspective",4*t+"px")})}),"function"!=typeof window.vc_setHoverBoxHeight&&(window.vc_setHoverBoxHeight=function(e){e.each(function(){var e=jQuery(this),t=e.find(".vc-hoverbox-inner"),o=(t.css("min-height",0),e.find(".vc-hoverbox-front-inner").outerHeight()),e=e.find(".vc-hoverbox-back-inner").outerHeight(),o=e<o?o:e;t.css("min-height",(o=o<250?250:o)+"px")})}),"function"!=typeof window.vc_prepareHoverBox&&(window.vc_prepareHoverBox=function(){var e=jQuery(".vc-hoverbox");vc_setHoverBoxHeight(e),vc_setHoverBoxPerspective(e)}),jQuery(document).ready(window.vc_prepareHoverBox),jQuery(window).on("resize",window.vc_prepareHoverBox),jQuery(document).ready(function(){window.vc_js()})})(window.jQuery);
(function($){
"use strict";
var methods={
init: function(options){
var form=this;
if(!form.data('jqv')||form.data('jqv')==null){
options=methods._saveOptions(form, options);
$(document).on("click", ".formError", function(){
$(this).addClass('hide-form-message').fadeOut(250, function(){
$(this).closest('.formError').remove();
});
});
}
return this;
},
attach: function(userOptions){
var form=this;
var options;
if(userOptions)
options=methods._saveOptions(form, userOptions);
else
options=form.data('jqv');
options.validateAttribute=(form.find("[data-validation-engine*=validate]").length) ? "data-validation-engine":"class";
if(options.binded){
form.on(options.validationEventTrigger, "["+options.validateAttribute+"*=validate]:not([type=checkbox]):not([type=radio]):not(.datepicker)", methods._onFieldEvent);
form.on("click", "["+options.validateAttribute+"*=validate][type=checkbox],["+options.validateAttribute+"*=validate][type=radio]", methods._onFieldEvent);
form.on(options.validationEventTrigger,"["+options.validateAttribute+"*=validate][class*=datepicker]", {"delay": 300}, methods._onFieldEvent);
}
if(options.autoPositionUpdate){
$(window).bind("resize", {
"noAnimation": true,
"formElem": form
}, methods.updatePromptsPosition);
}
form.on("click","a[data-validation-engine-skip], a[class*='validate-skip'], button[data-validation-engine-skip], button[class*='validate-skip'], input[data-validation-engine-skip], input[class*='validate-skip']", methods._submitButtonClick);
form.removeData('jqv_submitButton');
form.on("submit", methods._onSubmitEvent);
return this;
},
detach: function(){
var form=this;
var options=form.data('jqv');
form.off(options.validationEventTrigger, "["+options.validateAttribute+"*=validate]:not([type=checkbox]):not([type=radio]):not(.datepicker)", methods._onFieldEvent);
form.off("click", "["+options.validateAttribute+"*=validate][type=checkbox],["+options.validateAttribute+"*=validate][type=radio]", methods._onFieldEvent);
form.off(options.validationEventTrigger,"["+options.validateAttribute+"*=validate][class*=datepicker]", methods._onFieldEvent);
form.off("submit", methods._onSubmitEvent);
form.removeData('jqv');
form.off("click", "a[data-validation-engine-skip], a[class*='validate-skip'], button[data-validation-engine-skip], button[class*='validate-skip'], input[data-validation-engine-skip], input[class*='validate-skip']", methods._submitButtonClick);
form.removeData('jqv_submitButton');
if(options.autoPositionUpdate)
$(window).off("resize", methods.updatePromptsPosition);
return this;
},
validate: function(userOptions){
var element=$(this);
var valid=null;
var options;
if(element.is("form")||element.hasClass("validationEngineContainer")){
if(element.hasClass('validating')){
return false;
}else{
element.addClass('validating');
if(userOptions)
options=methods._saveOptions(element, userOptions);
else
options=element.data('jqv');
var valid=methods._validateFields(this);
setTimeout(function(){
element.removeClass('validating');
}, 100);
if(valid&&options.onSuccess){
options.onSuccess();
}else if(!valid&&options.onFailure){
options.onFailure();
}}
}else if(element.is('form')||element.hasClass('validationEngineContainer')){
element.removeClass('validating');
}else{
var form=element.closest('form, .validationEngineContainer');
options=(form.data('jqv')) ? form.data('jqv'):$.validationEngine.defaults;
valid=methods._validateField(element, options);
if(valid&&options.onFieldSuccess)
options.onFieldSuccess();
else if(options.onFieldFailure&&options.InvalidFields.length > 0){
options.onFieldFailure();
}
return !valid;
}
if(options.onValidationComplete){
return !!options.onValidationComplete(form, valid);
}
return valid;
},
updatePromptsPosition: function(event){
if(event&&this==window){
var form=event.data.formElem;
var noAnimation=event.data.noAnimation;
}
else
var form=$(this.closest('form, .validationEngineContainer'));
var options=form.data('jqv');
if(!options)
options=methods._saveOptions(form, options);
form.find('['+options.validateAttribute+'*=validate]').not(":disabled").each(function(){
var field=$(this);
if(options.prettySelect&&field.is(":hidden"))
field=form.find("#" + options.usePrefix + field.attr('id') + options.useSuffix);
var prompt=methods._getPrompt(field);
var promptText=$(prompt).find(".formErrorContent").html();
if(prompt)
methods._updatePrompt(field, $(prompt), promptText, undefined, false, options, noAnimation);
});
return this;
},
showPrompt: function(promptText, type, promptPosition, showArrow){
var form=this.closest('form, .validationEngineContainer');
var options=form.data('jqv');
if(!options)
options=methods._saveOptions(this, options);
if(promptPosition)
options.promptPosition=promptPosition;
options.showArrow=showArrow==true;
methods._showPrompt(this, promptText, type, false, options);
return this;
},
hide: function(){
var form=$(this).closest('form, .validationEngineContainer');
var options=form.data('jqv');
if(!options)
options=methods._saveOptions(form, options);
var fadeDuration=(options&&options.fadeDuration) ? options.fadeDuration:0.3;
var closingtag;
if(form.is("form")||form.hasClass("validationEngineContainer")){
closingtag="parentForm"+methods._getClassName($(form).attr("id"));
}else{
closingtag=methods._getClassName($(form).attr("id")) +"formError";
}
$('.'+closingtag).fadeTo(fadeDuration, 0, function(){
$(this).closest('.formError').remove();
});
return this;
},
hideAll: function(){
var form=this;
var options=form.data('jqv');
var duration=options ? options.fadeDuration:300;
$('.formError').fadeTo(duration, 0, function(){
$(this).closest('.formError').remove();
});
return this;
},
_onFieldEvent: function(event){
var field=$(this);
var form=field.closest('form, .validationEngineContainer');
var options=form.data('jqv');
if(!options)
options=methods._saveOptions(form, options);
options.eventTrigger="field";
if(options.notEmpty==true){
if(field.val().length > 0){
window.setTimeout(function(){
methods._validateField(field, options);
}, (event.data) ? event.data.delay:0);
}}else{
window.setTimeout(function(){
methods._validateField(field, options);
}, (event.data) ? event.data.delay:0);
}},
_onSubmitEvent: function(){
var form=$(this);
var options=form.data('jqv');
if(form.data("jqv_submitButton")){
var submitButton=$("#" + form.data("jqv_submitButton"));
if(submitButton){
if(submitButton.length > 0){
if(submitButton.hasClass("validate-skip")||submitButton.attr("data-validation-engine-skip")=="true")
return true;
}}
}
options.eventTrigger="submit";
var r=methods._validateFields(form);
if(r&&options.ajaxFormValidation){
methods._validateFormWithAjax(form, options);
return false;
}
if(options.onValidationComplete){
return !!options.onValidationComplete(form, r);
}
return r;
},
_checkAjaxStatus: function(options){
var status=true;
$.each(options.ajaxValidCache, function(key, value){
if(!value){
status=false;
return false;
}});
return status;
},
_checkAjaxFieldStatus: function(fieldid, options){
return options.ajaxValidCache[fieldid]==true;
},
_validateFields: function(form){
var options=form.data('jqv');
var errorFound=false;
form.trigger("jqv.form.validating");
var first_err=null;
form.find('['+options.validateAttribute+'*=validate]').not(":disabled").each(function(){
var field=$(this);
var names=[];
if($.inArray(field.attr('name'), names) < 0){
errorFound |=methods._validateField(field, options);
if(errorFound&&first_err==null)
if(field.is(":hidden")&&options.prettySelect)
first_err=field=form.find("#" + options.usePrefix + methods._jqSelector(field.attr('id')) + options.useSuffix);
else {
if(field.data('jqv-prompt-at') instanceof jQuery){
field=field.data('jqv-prompt-at');
}else if(field.data('jqv-prompt-at')){
field=$(field.data('jqv-prompt-at'));
}
first_err=field;
}
if(options.doNotShowAllErrosOnSubmit)
return false;
names.push(field.attr('name'));
if(options.showOneMessage==true&&errorFound){
return false;
}}
});
form.trigger("jqv.form.result", [errorFound]);
if(errorFound){
if(options.scroll){
var destination=first_err.offset().top;
var fixleft=first_err.offset().left;
var positionType=options.promptPosition;
if(typeof(positionType)=='string'&&positionType.indexOf(":")!=-1)
positionType=positionType.substring(0,positionType.indexOf(":"));
if(positionType!="bottomRight"&&positionType!="bottomLeft"){
var prompt_err=methods._getPrompt(first_err);
if(prompt_err){
destination=prompt_err.offset().top;
}}
if(options.scrollOffset){
destination -=options.scrollOffset;
}
if(options.isOverflown){
var overflowDIV=$(options.overflownDIV);
if(!overflowDIV.length) return false;
var scrollContainerScroll=overflowDIV.scrollTop();
var scrollContainerPos=-parseInt(overflowDIV.offset().top);
destination +=scrollContainerScroll + scrollContainerPos - 5;
var scrollContainer=$(options.overflownDIV).filter(":not(:animated)");
scrollContainer.animate({ scrollTop: destination }, 1100, function(){
if(options.focusFirstField) first_err.focus();
});
}else{
$("html, body").animate({
scrollTop: destination
}, 1100, function(){
if(options.focusFirstField) first_err.focus();
});
$("html, body").animate({scrollLeft: fixleft},1100)
}}else if(options.focusFirstField)
first_err.focus();
return false;
}
return true;
},
_validateFormWithAjax: function(form, options){
var data=form.serialize();
var type=(options.ajaxFormValidationMethod) ? options.ajaxFormValidationMethod:"GET";
var url=(options.ajaxFormValidationURL) ? options.ajaxFormValidationURL:form.attr("action");
var dataType=(options.dataType) ? options.dataType:"json";
$.ajax({
type: type,
url: url,
cache: false,
dataType: dataType,
data: data,
form: form,
methods: methods,
options: options,
beforeSend: function(){
return options.onBeforeAjaxFormValidation(form, options);
},
error: function(data, transport){
if(options.onFailure){
options.onFailure(data, transport);
}else{
methods._ajaxError(data, transport);
}},
success: function(json){
if((dataType=="json")&&(json!==true)){
var errorInForm=false;
for (var i=0; i < json.length; i++){
var value=json[i];
var errorFieldId=value[0];
var errorField=$($("#" + errorFieldId)[0]);
if(errorField.length==1){
var msg=value[2];
if(value[1]==true){
if(msg==""||!msg){
methods._closePrompt(errorField);
}else{
if(options.allrules[msg]){
var txt=options.allrules[msg].alertTextOk;
if(txt)
msg=txt;
}
if(options.showPrompts) methods._showPrompt(errorField, msg, "pass", false, options, true);
}}else{
errorInForm|=true;
if(options.allrules[msg]){
var txt=options.allrules[msg].alertText;
if(txt)
msg=txt;
}
if(options.showPrompts) methods._showPrompt(errorField, msg, "", false, options, true);
}}
}
options.onAjaxFormComplete(!errorInForm, form, json, options);
} else
options.onAjaxFormComplete(true, form, json, options);
}});
},
_validateField: function(field, options, skipAjaxValidation){
if(!field.attr("id")){
field.attr("id", "form-validation-field-" + $.validationEngine.fieldIdCounter);
++$.validationEngine.fieldIdCounter;
}
if(field.hasClass(options.ignoreFieldsWithClass))
return false;
if(!options.validateNonVisibleFields&&(field.is(":hidden")&&!options.prettySelect||field.parent().is(":hidden")))
return false;
var rulesParsing=field.attr(options.validateAttribute);
var getRules=/validate\[(.*)\]/.exec(rulesParsing);
if(!getRules)
return false;
var str=getRules[1];
var rules=str.split(/\[|,|\]/);
var isAjaxValidator=false;
var fieldName=field.attr("name");
var promptText="";
var promptType="";
var required=false;
var limitErrors=false;
options.isError=false;
options.showArrow=options.showArrow==true;
if(options.maxErrorsPerField > 0){
limitErrors=true;
}
var form=$(field.closest("form, .validationEngineContainer"));
for (var i=0; i < rules.length; i++){
rules[i]=rules[i].toString().replace(" ", "");
if(rules[i]===''){
delete rules[i];
}}
for (var i=0, field_errors=0; i < rules.length; i++){
if(limitErrors&&field_errors >=options.maxErrorsPerField){
if(!required){
var have_required=$.inArray('required', rules);
required=(have_required!=-1&&have_required >=i);
}
break;
}
var errorMsg=undefined;
switch (rules[i]){
case "required":
required=true;
errorMsg=methods._getErrorMessage(form, field, rules[i], rules, i, options, methods._required);
break;
case "custom":
errorMsg=methods._getErrorMessage(form, field, rules[i], rules, i, options, methods._custom);
break;
case "groupRequired":
var classGroup="["+options.validateAttribute+"*=" +rules[i + 1] +"]";
var firstOfGroup=form.find(classGroup).eq(0);
if(firstOfGroup[0]!=field[0]){
methods._validateField(firstOfGroup, options, skipAjaxValidation);
options.showArrow=true;
}
errorMsg=methods._getErrorMessage(form, field, rules[i], rules, i, options, methods._groupRequired);
if(errorMsg)  required=true;
options.showArrow=false;
break;
case "ajax":
errorMsg=methods._ajax(field, rules, i, options);
if(errorMsg){
promptType="load";
}
break;
case "minSize":
errorMsg=methods._getErrorMessage(form, field, rules[i], rules, i, options, methods._minSize);
break;
case "maxSize":
errorMsg=methods._getErrorMessage(form, field, rules[i], rules, i, options, methods._maxSize);
break;
case "min":
errorMsg=methods._getErrorMessage(form, field, rules[i], rules, i, options, methods._min);
break;
case "max":
errorMsg=methods._getErrorMessage(form, field, rules[i], rules, i, options, methods._max);
break;
case "past":
errorMsg=methods._getErrorMessage(form, field,rules[i], rules, i, options, methods._past);
break;
case "future":
errorMsg=methods._getErrorMessage(form, field,rules[i], rules, i, options, methods._future);
break;
case "dateRange":
var classGroup="["+options.validateAttribute+"*=" + rules[i + 1] + "]";
options.firstOfGroup=form.find(classGroup).eq(0);
options.secondOfGroup=form.find(classGroup).eq(1);
if(options.firstOfGroup[0].value||options.secondOfGroup[0].value){
errorMsg=methods._getErrorMessage(form, field,rules[i], rules, i, options, methods._dateRange);
}
if(errorMsg) required=true;
options.showArrow=false;
break;
case "dateTimeRange":
var classGroup="["+options.validateAttribute+"*=" + rules[i + 1] + "]";
options.firstOfGroup=form.find(classGroup).eq(0);
options.secondOfGroup=form.find(classGroup).eq(1);
if(options.firstOfGroup[0].value||options.secondOfGroup[0].value){
errorMsg=methods._getErrorMessage(form, field,rules[i], rules, i, options, methods._dateTimeRange);
}
if(errorMsg) required=true;
options.showArrow=false;
break;
case "maxCheckbox":
field=$(form.find("input[name='" + fieldName + "']"));
errorMsg=methods._getErrorMessage(form, field, rules[i], rules, i, options, methods._maxCheckbox);
break;
case "minCheckbox":
field=$(form.find("input[name='" + fieldName + "']"));
errorMsg=methods._getErrorMessage(form, field, rules[i], rules, i, options, methods._minCheckbox);
break;
case "equals":
errorMsg=methods._getErrorMessage(form, field, rules[i], rules, i, options, methods._equals);
break;
case "funcCall":
errorMsg=methods._getErrorMessage(form, field, rules[i], rules, i, options, methods._funcCall);
break;
case "creditCard":
errorMsg=methods._getErrorMessage(form, field, rules[i], rules, i, options, methods._creditCard);
break;
case "condRequired":
errorMsg=methods._getErrorMessage(form, field, rules[i], rules, i, options, methods._condRequired);
if(errorMsg!==undefined){
required=true;
}
break;
case "funcCallRequired":
errorMsg=methods._getErrorMessage(form, field, rules[i], rules, i, options, methods._funcCallRequired);
if(errorMsg!==undefined){
required=true;
}
break;
default:
}
var end_validation=false;
if(typeof errorMsg=="object"){
switch (errorMsg.status){
case "_break":
end_validation=true;
break;
case "_error":
errorMsg=errorMsg.message;
break;
case "_error_no_prompt":
return true;
break;
default:
break;
}}
if(i==0&&str.indexOf('funcCallRequired')==0&&errorMsg!==undefined){
if(promptText!=''){
promptText +="<br/>";
}
promptText +=errorMsg;
options.isError=true;
field_errors++;
end_validation=true;
}
if(end_validation){
break;
}
if(typeof errorMsg=='string'){
if(promptText!=''){
promptText +="<br/>";
}
promptText +=errorMsg;
options.isError=true;
field_errors++;
}}
if(!required&&!(field.val())&&field.val().length < 1&&$.inArray('equals', rules) < 0) options.isError=false;
var fieldType=field.prop("type");
var positionType=field.data("promptPosition")||options.promptPosition;
if((fieldType=="radio"||fieldType=="checkbox")&&form.find("input[name='" + fieldName + "']").length > 1){
if(positionType==='inline'){
field=$(form.find("input[name='" + fieldName + "'][type!=hidden]:last"));
}else{
field=$(form.find("input[name='" + fieldName + "'][type!=hidden]:first"));
}
options.showArrow=options.showArrowOnRadioAndCheckbox;
}
if(field.is(":hidden")&&options.prettySelect){
field=form.find("#" + options.usePrefix + methods._jqSelector(field.attr('id')) + options.useSuffix);
}
if(options.isError&&options.showPrompts){
methods._showPrompt(field, promptText, promptType, false, options);
}else{
if(!isAjaxValidator) methods._closePrompt(field);
}
if(!isAjaxValidator){
field.trigger("jqv.field.result", [field, options.isError, promptText]);
}
var errindex=$.inArray(field[0], options.InvalidFields);
if(errindex==-1){
if(options.isError)
options.InvalidFields.push(field[0]);
}else if(!options.isError){
options.InvalidFields.splice(errindex, 1);
}
methods._handleStatusCssClasses(field, options);
if(options.isError&&options.onFieldFailure)
options.onFieldFailure(field);
if(!options.isError&&options.onFieldSuccess)
options.onFieldSuccess(field);
return options.isError;
},
_handleStatusCssClasses: function(field, options){
if(options.addSuccessCssClassToField)
field.removeClass(options.addSuccessCssClassToField);
if(options.addFailureCssClassToField)
field.removeClass(options.addFailureCssClassToField);
if(options.addSuccessCssClassToField&&!options.isError)
field.addClass(options.addSuccessCssClassToField);
if(options.addFailureCssClassToField&&options.isError)
field.addClass(options.addFailureCssClassToField);
},
_getErrorMessage:function (form, field, rule, rules, i, options, originalValidationMethod){
var rule_index=jQuery.inArray(rule, rules);
if(rule==="custom"||rule==="funcCall"||rule==="funcCallRequired"){
var custom_validation_type=rules[rule_index + 1];
rule=rule + "[" + custom_validation_type + "]";
delete(rules[rule_index]);
}
var alteredRule=rule;
var element_classes=(field.attr("data-validation-engine")) ? field.attr("data-validation-engine"):field.attr("class");
var element_classes_array=element_classes.split(" ");
var errorMsg;
if(rule=="future"||rule=="past"||rule=="maxCheckbox"||rule=="minCheckbox"){
errorMsg=originalValidationMethod(form, field, rules, i, options);
}else{
errorMsg=originalValidationMethod(field, rules, i, options);
}
if(errorMsg!=undefined){
var custom_message=methods._getCustomErrorMessage($(field), element_classes_array, alteredRule, options);
if(custom_message) errorMsg=custom_message;
}
return errorMsg;
},
_getCustomErrorMessage:function (field, classes, rule, options){
var custom_message=false;
var validityProp=/^custom\[.*\]$/.test(rule) ? methods._validityProp["custom"]:methods._validityProp[rule];
if(validityProp!=undefined){
custom_message=field.attr("data-errormessage-"+validityProp);
if(custom_message!=undefined)
return custom_message;
}
custom_message=field.attr("data-errormessage");
if(custom_message!=undefined)
return custom_message;
var id='#' + field.attr("id");
if(typeof options.custom_error_messages[id]!="undefined" &&
typeof options.custom_error_messages[id][rule]!="undefined"){
custom_message=options.custom_error_messages[id][rule]['message'];
}else if(classes.length > 0){
for (var i=0; i < classes.length&&classes.length > 0; i++){
var element_class="." + classes[i];
if(typeof options.custom_error_messages[element_class]!="undefined" &&
typeof options.custom_error_messages[element_class][rule]!="undefined"){
custom_message=options.custom_error_messages[element_class][rule]['message'];
break;
}}
}
if(!custom_message &&
typeof options.custom_error_messages[rule]!="undefined" &&
typeof options.custom_error_messages[rule]['message']!="undefined"){
custom_message=options.custom_error_messages[rule]['message'];
}
return custom_message;
},
_validityProp: {
"required": "value-missing",
"custom": "custom-error",
"groupRequired": "value-missing",
"ajax": "custom-error",
"minSize": "range-underflow",
"maxSize": "range-overflow",
"min": "range-underflow",
"max": "range-overflow",
"past": "type-mismatch",
"future": "type-mismatch",
"dateRange": "type-mismatch",
"dateTimeRange": "type-mismatch",
"maxCheckbox": "range-overflow",
"minCheckbox": "range-underflow",
"equals": "pattern-mismatch",
"funcCall": "custom-error",
"funcCallRequired": "custom-error",
"creditCard": "pattern-mismatch",
"condRequired": "value-missing"
},
_required: function(field, rules, i, options, condRequired){
switch (field.prop("type")){
case "radio":
case "checkbox":
if(condRequired){
if(!field.prop('checked')){
return options.allrules[rules[i]].alertTextCheckboxMultiple;
}
break;
}
var form=field.closest("form, .validationEngineContainer");
var name=field.attr("name");
if(form.find("input[name='" + name + "']:checked").length==0){
if(form.find("input[name='" + name + "']:visible").length==1)
return options.allrules[rules[i]].alertTextCheckboxe;
else
return options.allrules[rules[i]].alertTextCheckboxMultiple;
}
break;
case "text":
case "password":
case "textarea":
case "file":
case "select-one":
case "select-multiple":
default:
var field_val=$.trim(field.val());
var dv_placeholder=$.trim(field.attr("data-validation-placeholder"));
var placeholder=$.trim(field.attr("placeholder"));
if((!field_val)
||(dv_placeholder&&field_val==dv_placeholder)
||(placeholder&&field_val==placeholder)
){
return options.allrules[rules[i]].alertText;
}
break;
}},
_groupRequired: function(field, rules, i, options){
var classGroup="["+options.validateAttribute+"*=" +rules[i + 1] +"]";
var isValid=false;
field.closest("form, .validationEngineContainer").find(classGroup).each(function(){
if(!methods._required($(this), rules, i, options)){
isValid=true;
return false;
}});
if(!isValid){
return options.allrules[rules[i]].alertText;
}},
_custom: function(field, rules, i, options){
var customRule=rules[i + 1];
var rule=options.allrules[customRule];
var fn;
if(!rule){
alert("jqv:custom rule not found - "+customRule);
return;
}
if(rule["regex"]){
var ex=rule.regex;
if(!ex){
alert("jqv:custom regex not found - "+customRule);
return;
}
var pattern=new RegExp(ex);
if(!pattern.test(field.val())) return options.allrules[customRule].alertText;
}else if(rule["func"]){
fn=rule["func"];
if(typeof(fn)!=="function"){
alert("jqv:custom parameter 'function' is no function - "+customRule);
return;
}
if(!fn(field, rules, i, options))
return options.allrules[customRule].alertText;
}else{
alert("jqv:custom type not allowed "+customRule);
return;
}},
_funcCall: function(field, rules, i, options){
var functionName=rules[i + 1];
var fn;
if(functionName.indexOf('.') >-1){
var namespaces=functionName.split('.');
var scope=window;
while(namespaces.length){
scope=scope[namespaces.shift()];
}
fn=scope;
}
else
fn=window[functionName]||options.customFunctions[functionName];
if(typeof(fn)=='function')
return fn(field, rules, i, options);
},
_funcCallRequired: function(field, rules, i, options){
return methods._funcCall(field,rules,i,options);
},
_equals: function(field, rules, i, options){
var equalsField=rules[i + 1];
if(field.val()!=$("#" + equalsField).val())
return options.allrules.equals.alertText;
},
_maxSize: function(field, rules, i, options){
var max=rules[i + 1];
var len=field.val().length;
if(len > max){
var rule=options.allrules.maxSize;
return rule.alertText + max + rule.alertText2;
}},
_minSize: function(field, rules, i, options){
var min=rules[i + 1];
var len=field.val().length;
if(len < min){
var rule=options.allrules.minSize;
return rule.alertText + min + rule.alertText2;
}},
_min: function(field, rules, i, options){
var min=parseFloat(rules[i + 1]);
var len=parseFloat(field.val());
if(len < min){
var rule=options.allrules.min;
if(rule.alertText2) return rule.alertText + min + rule.alertText2;
return rule.alertText + min;
}},
_max: function(field, rules, i, options){
var max=parseFloat(rules[i + 1]);
var len=parseFloat(field.val());
if(len >max){
var rule=options.allrules.max;
if(rule.alertText2) return rule.alertText + max + rule.alertText2;
return rule.alertText + max;
}},
_past: function(form, field, rules, i, options){
var p=rules[i + 1];
var fieldAlt=$(form.find("*[name='" + p.replace(/^#+/, '') + "']"));
var pdate;
if(p.toLowerCase()=="now"){
pdate=new Date();
}else if(undefined!=fieldAlt.val()){
if(fieldAlt.is(":disabled"))
return;
pdate=methods._parseDate(fieldAlt.val());
}else{
pdate=methods._parseDate(p);
}
var vdate=methods._parseDate(field.val());
if(vdate > pdate){
var rule=options.allrules.past;
if(rule.alertText2) return rule.alertText + methods._dateToString(pdate) + rule.alertText2;
return rule.alertText + methods._dateToString(pdate);
}},
_future: function(form, field, rules, i, options){
var p=rules[i + 1];
var fieldAlt=$(form.find("*[name='" + p.replace(/^#+/, '') + "']"));
var pdate;
if(p.toLowerCase()=="now"){
pdate=new Date();
}else if(undefined!=fieldAlt.val()){
if(fieldAlt.is(":disabled"))
return;
pdate=methods._parseDate(fieldAlt.val());
}else{
pdate=methods._parseDate(p);
}
var vdate=methods._parseDate(field.val());
if(vdate < pdate){
var rule=options.allrules.future;
if(rule.alertText2)
return rule.alertText + methods._dateToString(pdate) + rule.alertText2;
return rule.alertText + methods._dateToString(pdate);
}},
_isDate: function (value){
var dateRegEx=new RegExp(/^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$|^(?:(?:(?:0?[13578]|1[02])(\/|-)31)|(?:(?:0?[1,3-9]|1[0-2])(\/|-)(?:29|30)))(\/|-)(?:[1-9]\d\d\d|\d[1-9]\d\d|\d\d[1-9]\d|\d\d\d[1-9])$|^(?:(?:0?[1-9]|1[0-2])(\/|-)(?:0?[1-9]|1\d|2[0-8]))(\/|-)(?:[1-9]\d\d\d|\d[1-9]\d\d|\d\d[1-9]\d|\d\d\d[1-9])$|^(0?2(\/|-)29)(\/|-)(?:(?:0[48]00|[13579][26]00|[2468][048]00)|(?:\d\d)?(?:0[48]|[2468][048]|[13579][26]))$/);
return dateRegEx.test(value);
},
_isDateTime: function (value){
var dateTimeRegEx=new RegExp(/^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])\s+(1[012]|0?[1-9]){1}:(0?[1-5]|[0-6][0-9]){1}:(0?[0-6]|[0-6][0-9]){1}\s+(am|pm|AM|PM){1}$|^(?:(?:(?:0?[13578]|1[02])(\/|-)31)|(?:(?:0?[1,3-9]|1[0-2])(\/|-)(?:29|30)))(\/|-)(?:[1-9]\d\d\d|\d[1-9]\d\d|\d\d[1-9]\d|\d\d\d[1-9])$|^((1[012]|0?[1-9]){1}\/(0?[1-9]|[12][0-9]|3[01]){1}\/\d{2,4}\s+(1[012]|0?[1-9]){1}:(0?[1-5]|[0-6][0-9]){1}:(0?[0-6]|[0-6][0-9]){1}\s+(am|pm|AM|PM){1})$/);
return dateTimeRegEx.test(value);
},
_dateCompare: function (start, end){
return (new Date(start.toString()) < new Date(end.toString()));
},
_dateRange: function (field, rules, i, options){
if((!options.firstOfGroup[0].value&&options.secondOfGroup[0].value)||(options.firstOfGroup[0].value&&!options.secondOfGroup[0].value)){
return options.allrules[rules[i]].alertText + options.allrules[rules[i]].alertText2;
}
if(!methods._isDate(options.firstOfGroup[0].value)||!methods._isDate(options.secondOfGroup[0].value)){
return options.allrules[rules[i]].alertText + options.allrules[rules[i]].alertText2;
}
if(!methods._dateCompare(options.firstOfGroup[0].value, options.secondOfGroup[0].value)){
return options.allrules[rules[i]].alertText + options.allrules[rules[i]].alertText2;
}},
_dateTimeRange: function (field, rules, i, options){
if((!options.firstOfGroup[0].value&&options.secondOfGroup[0].value)||(options.firstOfGroup[0].value&&!options.secondOfGroup[0].value)){
return options.allrules[rules[i]].alertText + options.allrules[rules[i]].alertText2;
}
if(!methods._isDateTime(options.firstOfGroup[0].value)||!methods._isDateTime(options.secondOfGroup[0].value)){
return options.allrules[rules[i]].alertText + options.allrules[rules[i]].alertText2;
}
if(!methods._dateCompare(options.firstOfGroup[0].value, options.secondOfGroup[0].value)){
return options.allrules[rules[i]].alertText + options.allrules[rules[i]].alertText2;
}},
_maxCheckbox: function(form, field, rules, i, options){
var nbCheck=rules[i + 1];
var groupname=field.attr("name");
var groupSize=form.find("input[name='" + groupname + "']:checked").length;
if(groupSize > nbCheck){
options.showArrow=false;
if(options.allrules.maxCheckbox.alertText2)
return options.allrules.maxCheckbox.alertText + " " + nbCheck + " " + options.allrules.maxCheckbox.alertText2;
return options.allrules.maxCheckbox.alertText;
}},
_minCheckbox: function(form, field, rules, i, options){
var nbCheck=rules[i + 1];
var groupname=field.attr("name");
var groupSize=form.find("input[name='" + groupname + "']:checked").length;
if(groupSize < nbCheck){
options.showArrow=false;
return options.allrules.minCheckbox.alertText + " " + nbCheck + " " + options.allrules.minCheckbox.alertText2;
}},
_creditCard: function(field, rules, i, options){
var valid=false, cardNumber=field.val().replace(/ +/g, '').replace(/-+/g, '');
var numDigits=cardNumber.length;
if(numDigits >=14&&numDigits <=16&&parseInt(cardNumber) > 0){
var sum=0, i=numDigits - 1, pos=1, digit, luhn=new String();
do {
digit=parseInt(cardNumber.charAt(i));
luhn +=(pos++ % 2==0) ? digit * 2:digit;
} while (--i >=0)
for (i=0; i < luhn.length; i++){
sum +=parseInt(luhn.charAt(i));
}
valid=sum % 10==0;
}
if(!valid) return options.allrules.creditCard.alertText;
},
_ajax: function(field, rules, i, options){
var errorSelector=rules[i + 1];
var rule=options.allrules[errorSelector];
var extraData=rule.extraData;
var extraDataDynamic=rule.extraDataDynamic;
var data={
"fieldId":field.attr("id"),
"fieldValue":field.val()
};
if(typeof extraData==="object"){
$.extend(data, extraData);
}else if(typeof extraData==="string"){
var tempData=extraData.split("&");
for(var i=0; i < tempData.length; i++){
var values=tempData[i].split("=");
if(values[0]&&values[0]){
data[values[0]]=values[1];
}}
}
if(extraDataDynamic){
var tmpData=[];
var domIds=String(extraDataDynamic).split(",");
for (var i=0; i < domIds.length; i++){
var id=domIds[i];
if($(id).length){
var inputValue=field.closest("form, .validationEngineContainer").find(id).val();
var keyValue=id.replace('#', '') + '=' + escape(inputValue);
data[id.replace('#', '')]=inputValue;
}}
}
if(options.eventTrigger=="field"){
delete(options.ajaxValidCache[field.attr("id")]);
}
if(!options.isError&&!methods._checkAjaxFieldStatus(field.attr("id"), options)){
$.ajax({
type: options.ajaxFormValidationMethod,
url: rule.url,
cache: false,
dataType: "json",
data: data,
field: field,
rule: rule,
methods: methods,
options: options,
beforeSend: function(){},
error: function(data, transport){
if(options.onFailure){
options.onFailure(data, transport);
}else{
methods._ajaxError(data, transport);
}},
success: function(json){
var errorFieldId=json[0];
var errorField=$("#"+ errorFieldId).eq(0);
if(errorField.length==1){
var status=json[1];
var msg=json[2];
if(!status){
options.ajaxValidCache[errorFieldId]=false;
options.isError=true;
if(msg){
if(options.allrules[msg]){
var txt=options.allrules[msg].alertText;
if(txt){
msg=txt;
}}
}
else
msg=rule.alertText;
if(options.showPrompts) methods._showPrompt(errorField, msg, "", true, options);
}else{
options.ajaxValidCache[errorFieldId]=true;
if(msg){
if(options.allrules[msg]){
var txt=options.allrules[msg].alertTextOk;
if(txt){
msg=txt;
}}
}
else
msg=rule.alertTextOk;
if(options.showPrompts){
if(msg)
methods._showPrompt(errorField, msg, "pass", true, options);
else
methods._closePrompt(errorField);
}
if(options.eventTrigger=="submit")
field.closest("form").submit();
}}
errorField.trigger("jqv.field.result", [errorField, options.isError, msg]);
}});
return rule.alertTextLoad;
}},
_ajaxError: function(data, transport){
if(data.status==0&&transport==null)
alert("The page is not served from a server! ajax call failed");
else if(typeof console!="undefined")
console.log("Ajax error: " + data.status + " " + transport);
},
_dateToString: function(date){
return date.getFullYear()+"-"+(date.getMonth()+1)+"-"+date.getDate();
},
_parseDate: function(d){
var dateParts=d.split("-");
if(dateParts==d)
dateParts=d.split("/");
if(dateParts==d){
dateParts=d.split(".");
return new Date(dateParts[2], (dateParts[1] - 1), dateParts[0]);
}
return new Date(dateParts[0], (dateParts[1] - 1) ,dateParts[2]);
},
_showPrompt: function(field, promptText, type, ajaxed, options, ajaxform){
if(field.data('jqv-prompt-at') instanceof jQuery){
field=field.data('jqv-prompt-at');
}else if(field.data('jqv-prompt-at')){
field=$(field.data('jqv-prompt-at'));
}
var prompt=methods._getPrompt(field);
if(ajaxform) prompt=false;
if($.trim(promptText)){
if(prompt)
methods._updatePrompt(field, prompt, promptText, type, ajaxed, options);
else
methods._buildPrompt(field, promptText, type, ajaxed, options);
}},
_buildPrompt: function(field, promptText, type, ajaxed, options){
var prompt=$('<div>');
prompt.addClass(methods._getClassName(field.attr("id")) + "formError");
prompt.addClass("parentForm"+methods._getClassName(field.closest('form, .validationEngineContainer').attr("id")));
prompt.addClass("formError");
switch (type){
case "pass":
prompt.addClass("greenPopup");
break;
case "load":
prompt.addClass("blackPopup");
break;
default:
}
if(ajaxed)
prompt.addClass("ajaxed");
var promptContent=$('<div>').addClass("formErrorContent").html(promptText).appendTo(prompt);
var positionType=field.data("promptPosition")||options.promptPosition;
if(options.showArrow){
var arrow=$('<div>').addClass("formErrorArrow");
if(typeof(positionType)=='string'){
var pos=positionType.indexOf(":");
if(pos!=-1)
positionType=positionType.substring(0,pos);
}
switch (positionType){
case "bottomLeft":
case "bottomRight":
prompt.find(".formErrorContent").before(arrow);
arrow.addClass("formErrorArrowBottom").html('<div class="line1"><!-- --></div><div class="line2"><!-- --></div><div class="line3"><!-- --></div><div class="line4"><!-- --></div><div class="line5"><!-- --></div><div class="line6"><!-- --></div><div class="line7"><!-- --></div><div class="line8"><!-- --></div><div class="line9"><!-- --></div><div class="line10"><!-- --></div>');
break;
case "topLeft":
case "topRight":
arrow.html('<div class="line10"><!-- --></div><div class="line9"><!-- --></div><div class="line8"><!-- --></div><div class="line7"><!-- --></div><div class="line6"><!-- --></div><div class="line5"><!-- --></div><div class="line4"><!-- --></div><div class="line3"><!-- --></div><div class="line2"><!-- --></div><div class="line1"><!-- --></div>');
prompt.append(arrow);
break;
}}
if(options.addPromptClass)
prompt.addClass(options.addPromptClass);
var requiredOverride=field.attr('data-required-class');
if(requiredOverride!==undefined){
prompt.addClass(requiredOverride);
}else{
if(options.prettySelect){
if($('#' + field.attr('id')).next().is('select')){
var prettyOverrideClass=$('#' + field.attr('id').substr(options.usePrefix.length).substring(options.useSuffix.length)).attr('data-required-class');
if(prettyOverrideClass!==undefined){
prompt.addClass(prettyOverrideClass);
}}
}}
prompt.css({
"opacity": 0
});
if(positionType==='inline'){
prompt.addClass("inline");
if(typeof field.attr('data-prompt-target')!=='undefined'&&$('#'+field.attr('data-prompt-target')).length > 0){
prompt.appendTo($('#'+field.attr('data-prompt-target')));
}else{
field.after(prompt);
}}else{
field.before(prompt);
}
var pos=methods._calculatePosition(field, prompt, options);
if($('body').hasClass('rtl')){
prompt.css({
"opacity": 0
}).data("callerField", field);
}else{
prompt.css({
"opacity": 0
}).data("callerField", field);
}
if(options.autoHidePrompt){
setTimeout(function(){
prompt.animate({
"opacity": 0
},function(){
prompt.closest('.formError').remove();
});
}, options.autoHideDelay);
}
return prompt.animate({
"opacity": 1
});
},
_updatePrompt: function(field, prompt, promptText, type, ajaxed, options, noAnimation){
if(prompt){
if(typeof type!=="undefined"){
if(type=="pass")
prompt.addClass("greenPopup");
else
prompt.removeClass("greenPopup");
if(type=="load")
prompt.addClass("blackPopup");
else
prompt.removeClass("blackPopup");
}
if(ajaxed)
prompt.addClass("ajaxed");
else
prompt.removeClass("ajaxed");
prompt.find(".formErrorContent").html(promptText);
$(prompt).removeClass("run-animation");
setTimeout(function(){
$(prompt).addClass("run-animation");
},100)
var pos=methods._calculatePosition(field, prompt, options);
if($('body').hasClass('rtl')){
var css={"top": pos.callerTopPosition,
"left": "initial",
"right": pos.callerleftPosition,
"marginTop": pos.marginTopSize,
"opacity": 1};}else{
var css={"top": pos.callerTopPosition,
"left": pos.callerleftPosition,
"right": "initial",
"marginTop": pos.marginTopSize,
"opacity": 1};}
prompt.css({
"opacity": 0,
});
if(noAnimation)
prompt.css(css);
else
prompt.animate(css);
}},
_closePrompt: function(field){
var prompt=methods._getPrompt(field);
if(prompt)
prompt.fadeTo("fast", 0, function(){
prompt.closest('.formError').remove();
});
},
closePrompt: function(field){
return methods._closePrompt(field);
},
_getPrompt: function(field){
var formId=$(field).closest('form, .validationEngineContainer').attr('id');
var className=methods._getClassName(field.attr("id")) + "formError";
var match=$("." + methods._escapeExpression(className) + '.parentForm' + methods._getClassName(formId))[0];
if(match)
return $(match);
},
_escapeExpression: function (selector){
return selector.replace(/([#;&,\.\+\*\~':"\!\^$\[\]\(\)=>\|])/g, "\\$1");
},
isRTL: function(field){
var $document=$(document);
var $body=$('body');
var rtl =
(field&&field.hasClass('rtl')) ||
(field&&(field.attr('dir')||'').toLowerCase()==='rtl') ||
$document.hasClass('rtl') ||
($document.attr('dir')||'').toLowerCase()==='rtl' ||
$body.hasClass('rtl') ||
($body.attr('dir')||'').toLowerCase()==='rtl';
return Boolean(rtl);
},
_calculatePosition: function (field, promptElmt, options){
var promptTopPosition, promptleftPosition, marginTopSize;
var fieldWidth=field.width();
var fieldLeft=field.position().left;
var fieldTop=field.position().top;
var fieldHeight=field.height();
var promptHeight=promptElmt.height();
promptTopPosition=promptleftPosition=0;
marginTopSize=-promptHeight;
var positionType=field.data("promptPosition")||options.promptPosition;
var shift1="";
var shift2="";
var shiftX=0;
var shiftY=0;
if(typeof(positionType)=='string'){
if(positionType.indexOf(":")!=-1){
shift1=positionType.substring(positionType.indexOf(":")+1);
positionType=positionType.substring(0,positionType.indexOf(":"));
if(shift1.indexOf(",")!=-1){
shift2=shift1.substring(shift1.indexOf(",") +1);
shift1=shift1.substring(0,shift1.indexOf(","));
shiftY=parseInt(shift2);
if(isNaN(shiftY)) shiftY=0;
};
shiftX=parseInt(shift1);
if(isNaN(shift1)) shift1=0;
};};
switch (positionType){
default:
case "topRight":
promptleftPosition +=fieldLeft + fieldWidth - 27;
promptTopPosition +=fieldTop;
break;
case "topLeft":
promptTopPosition +=fieldTop;
promptleftPosition +=fieldLeft;
break;
case "centerRight":
promptTopPosition=fieldTop+4;
marginTopSize=0;
promptleftPosition=fieldLeft + field.outerWidth(true)+5;
break;
case "centerLeft":
promptleftPosition=fieldLeft - (promptElmt.width() + 2);
promptTopPosition=fieldTop+4;
marginTopSize=0;
break;
case "bottomLeft":
promptTopPosition=fieldTop + field.height() + 5;
marginTopSize=0;
promptleftPosition=fieldLeft;
break;
case "bottomRight":
promptleftPosition=fieldLeft + fieldWidth - 27;
promptTopPosition=fieldTop +  field.height() + 5;
marginTopSize=0;
break;
case "inline":
promptleftPosition=0;
promptTopPosition=0;
marginTopSize=0;
};
promptleftPosition +=shiftX;
promptTopPosition  +=shiftY;
return {
"callerTopPosition": promptTopPosition + "px",
"callerleftPosition": promptleftPosition + "px",
"marginTopSize": marginTopSize + "px"
};},
_saveOptions: function(form, options){
if($.validationEngineLanguage)
var allRules=$.validationEngineLanguage.allRules;
else
$.error("jQuery.validationEngine rules are not loaded, plz add localization files to the page");
$.validationEngine.defaults.allrules=allRules;
var userOptions=$.extend(true,{},$.validationEngine.defaults,options);
form.data('jqv', userOptions);
return userOptions;
},
_getClassName: function(className){
if(className)
return className.replace(/:/g, "_").replace(/\./g, "_");
},
_jqSelector: function(str){
return str.replace(/([;&,\.\+\*\~':"\!\^#$%@\[\]\(\)=>\|])/g, '\\$1');
},
_condRequired: function(field, rules, i, options){
var idx, dependingField;
for(idx=(i + 1); idx < rules.length; idx++){
dependingField=jQuery("#" + rules[idx]).first();
if(dependingField.length&&methods._required(dependingField, ["required"], 0, options, true)==undefined){
return methods._required(field, ["required"], 0, options);
}}
},
_submitButtonClick: function(event){
var button=$(this);
var form=button.closest('form, .validationEngineContainer');
form.data("jqv_submitButton", button.attr("id"));
}};
$.fn.validationEngine=function(method){
var form=$(this);
if(!form[0]) return form;
if(typeof(method)=='string'&&method.charAt(0)!='_'&&methods[method]){
if(method!="showPrompt"&&method!="hide"&&method!="hideAll")
methods.init.apply(form);
return methods[method].apply(form, Array.prototype.slice.call(arguments, 1));
}else if(typeof method=='object'||!method){
methods.init.apply(form, arguments);
return methods.attach.apply(form);
}else{
$.error('Method ' + method + ' does not exist in jQuery.validationEngine');
}};
$.validationEngine={fieldIdCounter: 0,defaults:{
validationEventTrigger: "blur",
scroll: true,
focusFirstField:true,
showPrompts: true,
validateNonVisibleFields: false,
ignoreFieldsWithClass: 'ignoreMe',
promptPosition: "topRight",
bindMethod:"bind",
inlineAjax: false,
ajaxFormValidation: false,
ajaxFormValidationURL: false,
ajaxFormValidationMethod: 'get',
onAjaxFormComplete: $.noop,
onBeforeAjaxFormValidation: $.noop,
onValidationComplete: false,
doNotShowAllErrosOnSubmit: false,
custom_error_messages:{},
binded: true,
notEmpty: false,
showArrow: true,
showArrowOnRadioAndCheckbox: false,
isError: false,
maxErrorsPerField: false,
ajaxValidCache: {},
autoPositionUpdate: false,
InvalidFields: [],
onFieldSuccess: false,
onFieldFailure: false,
onSuccess: false,
onFailure: false,
validateAttribute: "class",
addSuccessCssClassToField: "",
addFailureCssClassToField: "",
autoHidePrompt: false,
autoHideDelay: 10000,
fadeDuration: 300,
prettySelect: false,
addPromptClass:"",
usePrefix: "",
useSuffix: "",
showOneMessage: false
}};
$(function(){$.validationEngine.defaults.promptPosition=methods.isRTL()?'topLeft':"topRight"});
})(jQuery);
(function($){
$.fn.validationEngineLanguage=function(){
};
$.validationEngineLanguage={
newLang: function(){
$.validationEngineLanguage.allRules={
"required": {
"regex": "none",
"alertText": "* این فیلد ضروری است",
"alertTextCheckboxMultiple": "* لطفا یک گزینه را انتخاب کنید",
"alertTextCheckboxe": "* این چک باکس ضروری است",
"alertTextDateRange": "* هر دو فیلد‌های بازه‌ی تاریخی ضروری هستند"
},
"requiredInFunction": {
"func": function(field, rules, i, options){
return (field.val()=="test") ? true:false;
},
"alertText": "* Field must equal test"
},
"dateRange": {
"regex": "none",
"alertText": "* بازه‌ی تاریخی ",
"alertText2": "نامعتبر"
},
"dateTimeRange": {
"regex": "none",
"alertText": "* بازه‌ی زمانی",
"alertText2": "نامعتبر"
},
"minSize": {
"regex": "none",
"alertText": "* حداقل ",
"alertText2": " حرف ضروری است"
},
"maxSize": {
"regex": "none",
"alertText": "* حداکثر ",
"alertText2": " حرف وارد کنید"
},
"groupRequired": {
"regex": "none",
"alertText": "* شما باید یکی از فیلد‌های زیر را پر کنید"
},
"min": {
"regex": "none",
"alertText": "* کمترین مقدار معتبر ",
"alertText2": " است"
},
"max": {
"regex": "none",
"alertText": "* بیش‌ترین مقدار معتبر ",
"alertText2": "است"
},
"past": {
"regex": "none",
"alertText": "* تاریخ‌های قبل از "
},
"future": {
"regex": "none",
"alertText": "* تاریخ‌های بعد از "
},
"maxCheckbox": {
"regex": "none",
"alertText": "* بیش‌ترین گزینه‌ی قابل انتخاب ",
"alertText2": " است"
},
"minCheckbox": {
"regex": "none",
"alertText": "* لطفا ",
"alertText2": " مورد انتخاب کنید"
},
"equals": {
"regex": "none",
"alertText": "* فیلد نامعتبر است"
},
"creditCard": {
"regex": "none",
"alertText": "شماره کارت اعتباری اشتباه"
},
"phone": {
"regex": /^([\+][0-9]{1,3}([ \.\-])?)?([\(][0-9]{1,6}[\)])?([0-9 \.\-]{1,32})(([A-Za-z \:]{1,11})?[0-9]{1,4}?)$/,
"alertText": "* شماره تلفن معتبر وارد کنید"
},
"email": {
"regex": /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i,
"alertText": "* نشانی الکترونیکی معتبر وارد کنید"
},
"integer": {
"regex": /^[\-\+]?\d+$/,
"alertText": "* عدد معتبر وارد کنید"
},
"number": {
"regex": /^[\-\+]?((([0-9]{1,3})([,][0-9]{3})*)|([0-9]+))?([\.]([0-9]+))?$/,
"alertText": "* عدد اعشاری معتبر وارد کنید"
},
"date": {
"regex": /^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$/,
"alertText": "* تاریخ باید به شکل سال/ماه/روز"
},
"ipv4": {
"regex": /^((([01]?[0-9]{1,2})|(2[0-4][0-9])|(25[0-5]))[.]){3}(([0-1]?[0-9]{1,2})|(2[0-4][0-9])|(25[0-5]))$/,
"alertText": "* IP معتبر وارد کنید"
},
"url": {
"regex": /^(https?|ftp):\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i,
"alertText": "* نشانی معتبر وارد کنید"
},
"onlyNumberSp": {
"regex": /^[0-9\ ]+$/,
"alertText": "* فقط اعداد"
},
"onlyLetterSp": {
"regex": /^[a-zA-Z\ \']+$/,
"alertText": "* فقط حروف انگلیسی"
},
"onlyLetterNumber": {
"regex": /^[0-9a-zA-Z]+$/,
"alertText": "* فقط اعداد و حروف انگلیسی وارد کنید"
},
"ajaxUserCall": {
"url": "ajaxValidateFieldUser",
"extraData": "name=eric",
"alertText": "* این نام‌کاربری تکراری است",
"alertTextLoad": "* درحال اعتبار سنجی، لطفا صبر کنید"
},
"ajaxUserCallPhp": {
"url": "phpajax/ajaxValidateFieldUser.php",
"extraData": "name=eric",
"alertTextOk": "* این نام کاربری آزاد است",
"alertText": "* این نام‌کاربری تکراری است",
"alertTextLoad": "* درحال اعتبار سنجی، لطفا صبر کنید"
},
"ajaxNameCall": {
"url": "ajaxValidateFieldName",
"alertText": "* این نام پیش‌تر ثبت شده است",
"alertTextOk": "* این نام آزاد است",
"alertTextLoad": "* درحال اعتبار سنجی، لطفا صبر کنید"
},
"ajaxNameCallPhp": {
"url": "phpajax/ajaxValidateFieldName.php",
"alertText": "* این نام تکراری است",
"alertTextLoad": "* درحال اعتبار سنجی، لطفا صبر کنید"
},
"validate2fields": {
"alertText": "* لطفا مقدار HELLO را وارد کنید"
},
"dateFormat":{
"regex": /^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$|^(?:(?:(?:0?[13578]|1[02])(\/|-)31)|(?:(?:0?[1,3-9]|1[0-2])(\/|-)(?:29|30)))(\/|-)(?:[1-9]\d\d\d|\d[1-9]\d\d|\d\d[1-9]\d|\d\d\d[1-9])$|^(?:(?:0?[1-9]|1[0-2])(\/|-)(?:0?[1-9]|1\d|2[0-8]))(\/|-)(?:[1-9]\d\d\d|\d[1-9]\d\d|\d\d[1-9]\d|\d\d\d[1-9])$|^(0?2(\/|-)29)(\/|-)(?:(?:0[48]00|[13579][26]00|[2468][048]00)|(?:\d\d)?(?:0[48]|[2468][048]|[13579][26]))$/,
"alertText": "* تاریخ نامعتبر"
},
"dateTimeFormat": {
"regex": /^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])\s+(1[012]|0?[1-9]){1}:(0?[1-5]|[0-6][0-9]){1}:(0?[0-6]|[0-6][0-9]){1}\s+(am|pm|AM|PM){1}$|^(?:(?:(?:0?[13578]|1[02])(\/|-)31)|(?:(?:0?[1,3-9]|1[0-2])(\/|-)(?:29|30)))(\/|-)(?:[1-9]\d\d\d|\d[1-9]\d\d|\d\d[1-9]\d|\d\d\d[1-9])$|^((1[012]|0?[1-9]){1}\/(0?[1-9]|[12][0-9]|3[01]){1}\/\d{2,4}\s+(1[012]|0?[1-9]){1}:(0?[1-5]|[0-6][0-9]){1}:(0?[0-6]|[0-6][0-9]){1}\s+(am|pm|AM|PM){1})$/,
"alertText": "* تاریخ نامعتبر است یا شکل معتبری ندارد",
"alertText2": "شکل‌های مورد معتبر: ",
"alertText3": "mm/dd/yyyy hh:mm:ss AM|PM or ",
"alertText4": "yyyy-mm-dd hh:mm:ss AM|PM"
}};}};
$.validationEngineLanguage.newLang();
})(jQuery);
jQuery((function(e){var r={render:function(){},getResponse:function(){return!0},reset:function(){}};function t(e,r){this.sitekey=e,this.element=r,this.captchaObj=null}function n(r,t,n){e('input[type="hidden"]',r).last().validationEngine("showPrompt",t,n,"inline")}t.prototype.render=function(){var e=this;grecaptcha.ready((function(){e.captchaObj=grecaptcha.render(e.element,{sitekey:e.sitekey})}))},t.prototype.getResponse=function(){return grecaptcha.getResponse(this.captchaObj)},t.prototype.reset=function(){grecaptcha.reset(this.captchaObj)},e.fn.dtInitContactForm=function(){return this.each((function(){var s=e(this),a="";a=s.hasClass("privacy-form")?'<p class="dt-privacy-message">'+dtLocal.contactMessages.terms+"<p>":"";var o=r;dtLocal.captchaSiteKey&&(o=new t(dtLocal.captchaSiteKey,s.find(".the7-g-captcha")[0])),o.render(),s.validationEngine({binded:!1,promptPosition:"inline",scroll:!1,autoHidePrompt:!1,maxErrorsPerField:1,custom_error_messages:{required:{message:dtLocal.contactMessages.required+a}},fadeDuration:500,addPromptClass:"run-animation",onAjaxFormComplete:function(){},addSuccessCssClassToField:"field-success",onBeforeAjaxFormValidation:function(r,t){var n=e(r);n.find(".formError").removeClass("first"),n.find("input").removeClass("error-field"),n.find("textarea").removeClass("error-field")},onFailure:function(r,t){var n=e(r);n.find(".formError .close-message").length<=0&&n.find(".formError").append('<span class="close-message"><svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 16 16" style="enable-background:new 0 0 16 16;" xml:space="preserve"><path d="M11.2,3.4L8,6.6L4.8,3.4C4.4,3,3.8,3,3.4,3.4s-0.4,1,0,1.4L6.6,8l-3.2,3.2c-0.4,0.4-0.4,1,0,1.4s1,0.4,1.4,0L8,9.4l3.2,3.2c0.4,0.4,1,0.4,1.4,0c0.4-0.4,0.4-1,0-1.4L9.4,8l3.2-3.2c0.4-0.4,0.4-1,0-1.4C12.2,3,11.6,3,11.2,3.4z"/></svg></span>')},onValidationComplete:function(r,t){var s=e(r);if(s.find(".greenPopup").length>0&&s.find(".greenPopup").remove(),s.find(".formError").removeClass("first"),s.find("input").removeClass("error-field"),s.find("textarea").removeClass("error-field"),s.find(".formError").each((function(r,t){e(t).eq(r).addClass("first"),e(t).prev().addClass("error-field")})),e(".formError .close-message").remove(),s.find(".formError .close-message").length<=0&&s.find(".formError").append('<span class="close-message"><svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 16 16" style="enable-background:new 0 0 16 16;" xml:space="preserve"><path d="M11.2,3.4L8,6.6L4.8,3.4C4.4,3,3.8,3,3.4,3.4s-0.4,1,0,1.4L6.6,8l-3.2,3.2c-0.4,0.4-0.4,1,0,1.4s1,0.4,1.4,0L8,9.4l3.2,3.2c0.4,0.4,1,0.4,1.4,0c0.4-0.4,0.4-1,0-1.4L9.4,8l3.2-3.2c0.4-0.4,0.4-1,0-1.4C12.2,3,11.6,3,11.2,3.4z"/></svg></span>'),s.find("input.the7-form-terms").hasClass("field-success")&&s.find(".dt-privacy-message").addClass("hide-privacy-message"),t){var a=o.getResponse();if(!a)return void n(s,dtLocal.contactMessages.fillTheCaptchaError,"error");var i={widget_id:e('input[name="widget_id"]',s).val(),send_message:e('input[name="send_message"]',s).val(),security_token:e('input[name="security_token"]',s).val(),gcaptcha_token:a,fields:{}};s.find('input[type="text"], textarea').each((function(){var r=e(this);i.fields[r.attr("name")]=r.val()})),e.post(dtLocal.REST.baseUrl+dtLocal.REST.endpoints.sendMail,i,(function(t){var a,i=e(r),c=t.success?"pass":"error";n(i,t.errors,c),s.find(".formError").addClass("field-success"),i.validationEngine("showPrompt","","","topRight"),o.reset(),t.success&&(i.find('input[type="text"], textarea').val(""),i.find('input[type="checkbox"]').removeProp("checked"),s.find(".formError .close-message").length<=0&&(s.find(".formError").append('<span class="close-message"></span>'),s.find(".formError .close-message").on("click",(function(){s.find(".greenPopup").remove(),clearTimeout(a)}))),clearTimeout(a),a=setTimeout((function(){s.find(".greenPopup").remove()}),11e3))}))}}}),s.find(".dt-btn.dt-btn-submit").on("click",(function(r){r.preventDefault(),e(this).parents("form").submit()})),s.find(".clear-form").on("click",(function(r){r.preventDefault();var t=e(this).parents("form");t.length>0&&(t.find('input[type="text"], textarea').val(""),t.validationEngine("hide"))}))}))},e("form.dt-contact-form.dt-form").dtInitContactForm()}));