jQuery(document).ready(function(a){a.fn.exists=function(){return a(this).length>0},a.fn.loaded=function(b,c,d){var e=this.length;return e>0?this.each(function(){var d=this,f=a(d);f.on("load.dt",function(d){a(this).off("load.dt"),"function"==typeof b&&b.call(this),--e<=0&&"function"==typeof c&&c.call(this)}),d.complete&&void 0!==d.complete?f.trigger("load.dt"):d.src=d.src}):d?("function"==typeof c&&c.call(this),this):void 0};var b=a("body"),c=(a(window),a("#main-slideshow"));a("#wpadminbar").height(),a(".masthead:not(.side-header):not(.side-header-v-stroke)").height(),b.hasClass("transparent"),a(".floating-navigation-below-slider").exists(),a(".masthead");if(b.hasClass("transparent"));else if(b.hasClass("overlap")){a(".masthead:not(.side-header):not(.side-header-v-stroke)").height()+(parseInt(c.css("marginTop"))+parseInt(c.css("marginBottom")))}else{a(".masthead:not(.side-header):not(.side-header-v-stroke)").height()}a.HoverDir=function(b,c){this.$el=a(c),this._init(b)},a.HoverDir.defaults={speed:300,easing:"ease",hoverDelay:0,inverse:!1},a.HoverDir.prototype={_init:function(b){this.options=a.extend(!0,{},a.HoverDir.defaults,b),this.transitionProp="all "+this.options.speed+"ms "+this.options.easing,this.support=Modernizr.csstransitions,this._loadEvents()},_loadEvents:function(){var b=this;this.$el.on("mouseenter.hoverdir, mouseleave.hoverdir",function(c){var d=a(this),e=d.find(".rollover-content, .post-entry-content, .gallery-rollover"),f=b._getDir(d,{x:c.pageX,y:c.pageY}),g=b._getStyle(f);"mouseenter"===c.type?(e.hide().css(g.from),clearTimeout(b.tmhover),b.tmhover=setTimeout(function(){e.show(0,function(){var c=a(this);b.support&&c.css("transition",b.transitionProp),b._applyAnimation(c,g.to,b.options.speed)})},b.options.hoverDelay)):(b.support&&e.css("transition",b.transitionProp),clearTimeout(b.tmhover),b._applyAnimation(e,g.from,b.options.speed))})},_getDir:function(a,b){var c=a.width(),d=a.height(),e=(b.x-a.offset().left-c/2)*(c>d?d/c:1),f=(b.y-a.offset().top-d/2)*(d>c?c/d:1),g=Math.round((Math.atan2(f,e)*(180/Math.PI)+180)/90+3)%4;return g},_getStyle:function(a){var b,c,d={left:"0px",top:"-100%"},e={left:"0px",top:"100%"},f={left:"-100%",top:"0px"},g={left:"100%",top:"0px"},h={top:"0px"},i={left:"0px"};switch(a){case 0:b=this.options.inverse?e:d,c=h;break;case 1:b=this.options.inverse?f:g,c=i;break;case 2:b=this.options.inverse?d:e,c=h;break;case 3:b=this.options.inverse?g:f,c=i}return{from:b,to:c}},_applyAnimation:function(b,c,d){a.fn.applyStyle=this.support?a.fn.css:a.fn.animate,b.stop().applyStyle(c,a.extend(!0,[],{duration:d+"ms"}))}};var d=function(a){window.console&&window.console.error(a)};a.fn.hoverdir=function(b){var c=a.data(this,"hoverdir");if("string"==typeof b){var e=Array.prototype.slice.call(arguments,1);this.each(function(){return c?a.isFunction(c[b])&&"_"!==b.charAt(0)?void c[b].apply(c,e):void d("no such method '"+b+"' for hoverdir instance"):void d("cannot call methods on hoverdir prior to initialization; attempted to call method '"+b+"'")})}else this.each(function(){c?c._init():c=a.data(this,"hoverdir",new a.HoverDir(b,this))});return c},a(".mobile-false .hover-grid .rollover-project, .mobile-false .hover-grid.portfolio-shortcode .post, .mobile-false .hover-grid.album-gallery-shortcode .post, .mobile-false .hover-grid.albums-shortcode .post").each(function(){a(this).hoverdir()}),a(".mobile-false .hover-grid-reverse .rollover-project, .mobile-false .hover-grid-reverse.portfolio-shortcode .post, .mobile-false .hover-grid-reverse.album-gallery-shortcode .post, .mobile-false .hover-grid-reverse.albums-shortcode .post ").each(function(){a(this).hoverdir({inverse:!0})}),a.fn.addIconToLinks=function(){return this.each(function(){var b=a(this);b.hasClass("icon-ready")||(a("").appendTo(a(this)),b.addClass("icon-ready"))})},a(".links-container a").addIconToLinks(),a.fn.forwardToPost=function(){return this.each(function(){var b=a(this);b.hasClass("this-ready")||(b.on("click",function(){if(!b.parents(".ts-wrap").hasClass("ts-interceptClicks"))return window.location.href=b.find("a").first().attr("href"),!1}),b.addClass("this-ready"))})},a(".mobile-false .rollover-project.forward-post").forwardToPost(),a.fn.touchforwardToPost=function(){return this.each(function(){var c=a(this);if(!c.hasClass("touch-hover-ready")){b.on("touchend",function(b){a(".mobile-true .rollover-content").removeClass("is-clicked"),a(".mobile-true .rollover-project").removeClass("is-clicked")});var c=a(this).find(".rollover-content");c.on("touchstart",function(a){origY=a.originalEvent.touches[0].pageY,origX=a.originalEvent.touches[0].pageX}),c.on("touchend",function(b){var d=b.originalEvent.changedTouches[0].pageX,e=b.originalEvent.changedTouches[0].pageY;if(origY==e||origX==d){if(!c.hasClass("is-clicked"))return b.preventDefault(),a(".mobile-ture .rollover-content").removeClass("is-clicked"),a(".mobile-true .rollover-project").removeClass("is-clicked"),c.addClass("is-clicked"),c.parent(".rollover-project").addClass("is-clicked"),!1;window.location.href=c.prev("a").first().attr("href")}}),c.addClass("touch-hover-ready")}})},a(".mobile-true .rollover-project.forward-post").touchforwardToPost(),a.fn.followCurentLink=function(){return this.each(function(){if(a(this).parents(".content-rollover-layout-list").length>0||a(this).parents(".gradient-overlay-layout-list").length>0)var b=a(this).parent("article");else var b=a(this);if(!b.hasClass("this-ready")){var c=b.parent().find(".links-container > a, .project-links-container > a"),d=b.find(".portfolio-categories a"),e=b.find(".post-details"),f=!1;b.on("click",function(){if(!b.parents(".ts-wrap").hasClass("ts-interceptClicks"))return c.each(function(){g=a(this).attr("target")?a(this).attr("target"):"_self"}),c.hasClass("project-details")||c.hasClass("link")||c.hasClass("project-link")?(window.open(c.attr("href"),g),!1):(f||(f=!0,c.trigger("click"),f=!1),!1)}),b.find(d).click(function(a){a.stopPropagation(),window.location.href=d.attr("href")});var g="undefined"!=typeof e.attr("target")&&e.attr("target").length>0?e.attr("target"):"_self";b.find(e).click(function(a){a.stopPropagation(),a.preventDefault(),window.open(e.attr("href"),g)}),b.addClass("this-ready")}})},a(".mobile-false .rollover-project.rollover-active, .mobile-false .rollover-active, .mobile-false .buttons-on-img.rollover-active").followCurentLink(),a.fn.touchFollowCurentLink=function(){return this.each(function(){if(a(this).parents(".content-rollover-layout-list").length>0||a(this).parents(".gradient-overlay-layout-list").length>0)var c=a(this).parent("article");else var c=a(this);if(!c.hasClass("this-ready")){var d=c.parent().find(".links-container > a, .project-links-container > a"),e=c.find(".portfolio-categories a"),f=!1;b.on("touchend",function(b){a(".mobile-true .rollover-content").removeClass("is-clicked"),a(".mobile-true .rollover-active").removeClass("is-clicked"),a(".mobile-true .rollover-active").parent("article").removeClass("is-clicked")}),c.on("touchstart",function(a){origY=a.originalEvent.touches[0].pageY,origX=a.originalEvent.touches[0].pageX}),c.on("touchend",function(b){var e=b.originalEvent.changedTouches[0].pageX,g=b.originalEvent.changedTouches[0].pageY;if(origY==g||origX==e){if(c.hasClass("is-clicked")){if(c.parents(".ts-wrap").hasClass("ts-interceptClicks"))return;return d.each(function(){$thisTarget=a(this).attr("target")?a(this).attr("target"):"_self"}),d.hasClass("project-details")||d.hasClass("link")||d.hasClass("project-link")?(window.open(d.attr("href"),$thisTarget),!1):(f||(f=!0,d.trigger("click"),f=!1),!1)}return b.preventDefault(),c.addClass("is-clicked"),!1}}),c.find(e).click(function(a){a.stopPropagation(),window.location.href=e.attr("href")}),c.addClass("this-ready")}})},a(".mobile-true .rollover-project.rollover-active, .mobile-true .rollover-active, .mobile-true .buttons-on-img.rollover-active").touchFollowCurentLink(),a.fn.touchRolloverPostClick=function(){return this.each(function(){var c=a(this);c.find(".post-thumbnail-rollover").first(),c.find(".entry-meta a, .fancy-date a, .fancy-categories a"),c.find(".entry-excerpt").height()+c.find(".post-details").height();b.on("touchend",function(b){a(".mobile-true .post").removeClass("is-clicked")}),c.on("touchstart",function(a){origY=a.originalEvent.touches[0].pageY,origX=a.originalEvent.touches[0].pageX}),c.on("touchend",function(b){var d=b.originalEvent.changedTouches[0].pageX,e=b.originalEvent.changedTouches[0].pageY;if(origY==e||origX==d){if(!c.hasClass("is-clicked"))return b.preventDefault(),"a"===b.target.tagName.toLowerCase(),a(".mobile-ture .post").removeClass("is-clicked"),c.addClass("is-clicked"),c.parent().siblings().find(".post").removeClass("is-clicked"),!1;c.parents().hasClass("disable-layout-hover")&&"a"===b.target.tagName.toLowerCase()&&a(b.target).trigger("click")}})})},a(".mobile-true .content-rollover-layout-list.portfolio-shortcode .post, .mobile-true .gradient-overlay-layout-list.portfolio-shortcode .post").touchRolloverPostClick(),a.fn.touchHoverImage=function(){return this.each(function(){var c=a(this);if(!c.hasClass("hover-ready")){b.on("touchend",function(b){a(".mobile-true .rollover-content").removeClass("is-clicked")});var d=a(this).find(".rollover-content");d.parents(".wf-cell");d.on("touchstart",function(a){origY=a.originalEvent.touches[0].pageY,origX=a.originalEvent.touches[0].pageX}),d.on("touchend",function(b){var c=b.originalEvent.changedTouches[0].pageX,e=b.originalEvent.changedTouches[0].pageY;if((origY==e||origX==c)&&!d.hasClass("is-clicked"))return a(".links-container > a",d).on("touchend",function(a){a.stopPropagation(),d.addClass("is-clicked")}),b.preventDefault(),a(".mobile-true .buttons-on-img .rollover-content").removeClass("is-clicked"),d.addClass("is-clicked"),!1}),c.addClass("hover-ready")}})},a(".mobile-true .buttons-on-img").touchHoverImage(),a.fn.touchScrollerImage=function(){return this.each(function(){var c=a(this);if(!c.hasClass("hover-ready")){b.on("touchend",function(b){a(".mobile-true .project-list-media").removeClass("is-clicked")});var d=a(this),e=d.find("a.rollover-click-target").first(),f=d.find(".links-container");d.on("touchstart",function(a){origY=a.originalEvent.touches[0].pageY,origX=a.originalEvent.touches[0].pageX}),d.on("touchend",function(b){var c=b.originalEvent.changedTouches[0].pageX,g=b.originalEvent.changedTouches[0].pageY;if(!d.parents(".ts-wrap").hasClass("ts-interceptClicks"))return origY!=g&&origX!=c||d.hasClass("is-clicked")?void 0:(e.length>0&&(e.on("click",function(b){b.stopPropagation(),a(this).hasClass("go-to")&&(window.location.href=a(this).attr("href"))}),e.trigger("click")),f.length>0&&f.find(" > a ").each(function(){a(this).on("touchend",function(b){b.stopPropagation(),a(this).trigger("click")})}),b.preventDefault(),a(".mobile-true .dt-owl-item").removeClass("is-clicked"),d.addClass("is-clicked"),!1)}),c.addClass("hover-ready")}})},a(".mobile-true .project-list-media").touchScrollerImage(),a.fn.touchHoverLinks=function(){return this.each(function(){var b=a(this);if(!b.hasClass("hover-ready")){var c=a(this);c.on("touchend",function(b){if(!c.parents(".ts-wrap").hasClass("ts-interceptClicks"))return c.hasClass("is-clicked")?void 0:c.hasClass("project-zoom")?(c.trigger("click"),a(".mobile-true .links-container > a").removeClass("is-clicked"),c.addClass("is-clicked"),!1):(window.location.href=c.attr("href"),!1)}),b.addClass("hover-ready")}})},a(".mobile-true .dt-owl-item .links-container > a").touchHoverLinks(),a.fn.triggerAlbumsClick=function(){return this.each(function(){var b=a(this);if(!b.hasClass("this-ready")){var c=b.find("a.rollover-click-target, a.dt-pswp-item").first(),d=b.find(".portfolio-categories a");if(c.length>0){c.on("click",function(b){b.preventDefault(),c.parents(".ts-wrap").hasClass("ts-interceptClicks")||a(this).hasClass("go-to")&&(window.location.href=a(this).attr("href"))});var e=!1;b.on("click",function(){if(!b.parents(".ts-wrap").hasClass("ts-interceptClicks"))return e||(e=!0,c.trigger("click"),e=!1),!1}),b.find(d).click(function(a){a.stopPropagation(),window.location.href=d.attr("href")})}b.addClass("this-ready")}})},a(".mobile-false .dt-albums-template .rollover-project, .mobile-false .dt-albums-shortcode .rollover-project, .mobile-false .dt-albums-template .buttons-on-img, .mobile-false .dt-albums-shortcode .buttons-on-img, .mobile-false .archive .type-dt_gallery .buttons-on-img, .mobile-false .albums-shortcode:not(.content-rollover-layout-list):not(.gradient-overlay-layout-list) .post-thumbnail").triggerAlbumsClick(),a.fn.triggerOverlayAlbumsClick=function(){return this.each(function(){var b=a(this);if(!b.hasClass("this-overlay-ready")){var c=b.parents(".post").first().find("a.rollover-click-target, a.dt-pswp-item").first(),d=b.find(".portfolio-categories a");if(c.length>0){c.on("click",function(b){b.preventDefault(),c.parents(".ts-wrap").hasClass("ts-interceptClicks")||a(this).hasClass("go-to")&&(window.location.href=a(this).attr("href"))});var e=!1;b.on("click",function(){if(!b.parents(".ts-wrap").hasClass("ts-interceptClicks"))return e||(e=!0,c.trigger("click"),e=!1),!1}),b.find(d).click(function(a){a.stopPropagation(),window.location.href=d.attr("href")})}b.addClass("this-overlay-ready")}})},a(" .mobile-false .albums-shortcode.content-rollover-layout-list .post-entry-content, .mobile-false .albums-shortcode.gradient-overlay-layout-list .post-entry-content").triggerOverlayAlbumsClick(),a.fn.triggerOverlayAlbumsTouch=function(){return this.each(function(){var c=a(this),d=c.find("a.rollover-click-target, a.dt-pswp-item").first(),e=c.find(".portfolio-categories a");b.on("touchend",function(b){a(".mobile-true .post").removeClass("is-clicked")}),c.on("touchstart",function(a){origY=a.originalEvent.touches[0].pageY,origX=a.originalEvent.touches[0].pageX}),c.on("touchend",function(b){var f=b.originalEvent.changedTouches[0].pageX,g=b.originalEvent.changedTouches[0].pageY;if(origY<=g+5&&origY>=g-5||origX<=f+5&&origX==f-5){if(!c.hasClass("is-clicked"))return b.preventDefault(),a(".mobile-ture .post").removeClass("is-clicked"),c.parent().siblings().find(".post").removeClass("is-clicked"),c.addClass("is-clicked"),!1;d.hasClass("go-to")&&(window.location.href=d.attr("href")),d.trigger("click"),c.find(e).click(function(a){a.stopPropagation(),window.location.href=e.attr("href")})}})})},a(" .mobile-true .albums-shortcode.content-rollover-layout-list .post, .mobile-true .albums-shortcode.gradient-overlay-layout-list .post").triggerOverlayAlbumsTouch(),a.fn.triggerAlbumsTouch=function(){return this.each(function(){var c=a(this);if(!c.hasClass("this-touch-ready")){var d=c.find("a.rollover-click-target, a.dt-pswp-item").first(),e=c.find(".portfolio-categories a");if(b.on("touchend",function(b){a(".mobile-true .rollover-content").removeClass("is-clicked")}),d.length>0){d.on("click",function(b){b.preventDefault(),d.parents(".ts-wrap").hasClass("ts-interceptClicks")||a(this).hasClass("go-to")&&(window.location.href=a(this).attr("href"))});var f=!1;c.on("touchstart",function(a){origY=a.originalEvent.touches[0].pageY,origX=a.originalEvent.touches[0].pageX}),c.on("touchend",function(a){var b=a.originalEvent.changedTouches[0].pageX,e=a.originalEvent.changedTouches[0].pageY;if(origY<=e+5&&origY>=e-5||origX<=b+5&&origX==b-5){if(c.parents(".ts-wrap").hasClass("ts-interceptClicks"))return;return f||(f=!0,d.trigger("click"),f=!1),!1}}),c.find(e).click(function(a){a.stopPropagation(),window.location.href=e.attr("href")})}c.addClass("this-touch-ready")}})},a(".mobile-true .dt-albums-template .rollover-project, .mobile-true .dt-albums-shortcode .rollover-project, .mobile-true .dt-albums-template .buttons-on-img, .mobile-true .dt-albums-shortcode .buttons-on-img, .mobile-true .archive .type-dt_gallery .buttons-on-img, .mobile-true .albums-shortcode:not(.content-rollover-layout-list):not(.gradient-overlay-layout-list) .post-thumbnail").triggerAlbumsTouch(),a.fn.triggerHoverClick=function(){return this.each(function(){var b=a(this);if(!b.hasClass("click-ready")){var c,d=b.prev("a:not(.dt-single-pswp):not(.dt-pswp-item)").first(),e=b.find(".portfolio-categories a"),f=b.find(".project-link"),g=f.attr("target")?f.attr("target"):"_self";if(d.length>0){var h=!1;b.on("click",function(e){if(!b.parents(".ts-wrap").hasClass("ts-interceptClicks")&&!b.parents(".owl-carousel").hasClass("ts-interceptClicks"))return c=a(e.target),c.hasClass("project-zoom")||c.parent("a").hasClass("project-zoom")?console.log(c):h||(h=!0,d.trigger("click"),window.location.href=d.attr("href"),h=!1),!1}),b.find(f).click(function(a){a.stopPropagation(),a.preventDefault(),window.open(f.attr("href"),g)}),b.find(e).click(function(a){a.stopPropagation(),window.location.href=e.attr("href")})}b.addClass("click-ready")}})},a(".mobile-false .rollover-project:not(.rollover-active) .rollover-content, .mobile-false .buttons-on-img:not(.rollover-active) .rollover-content").triggerHoverClick()}),function(a){a.fn.collagePlus=function(b){function c(b,c,e,f){for(var g=e.padding*b.length+b.length*b[0][3],h=e.albumWidth-g,i=h/(c-g),j=g,k=cg.albumWidth&&0!=d.length&&(c(d,b,g,f),delete b,delete d,b=0,d=[],f+=1),g.images.length-1==h&&0!=d.length&&(c(d,b,g,f),delete b,delete d,b=0,d=[],f+=1)}),a(this).trigger("jgDone")})};var b=0;a(".jg-container").each(function(){b++;var c=a(this),d=c.attr("data-padding");c.find(".wf-cell");c.attr("id","jg-container-"+b),a("").insertAfter(c);var e;c.on("jgDone",function(){new Layzr({selector:".jgrid-lazy-load",attr:"data-src",attrSrcSet:"data-srcset",retinaAttr:"data-src-retina",threshold:0,before:function(){this.setAttribute("sizes",this.width+"px"),this.style.willChange="opacity"},callback:function(){this.classList.add("jgrid-layzr-loaded");var b=a(this);b.one("webkitTransitionEnd otransitionend oTransitionEnd msTransitionEnd transitionend",function(a){clearTimeout(e),e=setTimeout(function(){b.parent().removeClass("layzr-bg"),b.css("will-change","auto")},200)})}})})}),a.fn.collage=function(b){return this.each(function(){var c=(a(this),a(this)),d=c.attr("data-padding"),e=c.find(".wf-cell"),f=parseFloat(e.first().css("padding-left"))+parseFloat(e.first().css("padding-right")),g=parseInt(c.attr("data-target-height")),h=!0;if("false"==c.attr("data-part-row")&&(h=!1),c.parent(".full-width-wrap").length)var i=c.parents(".full-width-wrap").width()-2*parseInt(d);else var i=c.parent().width()+2*parseInt(d);var j={albumWidth:i,targetHeight:g,padding:f,allowPartialLastRow:h,fadeSpeed:2e3,effect:"effect-1",direction:"vertical"};a.extend(j,b),dtGlobals.jGrid=j,c.collagePlus(j),c.css({width:i})})},a(window).on("debouncedresize",function(){a(".jg-container").not(".jgrid-shortcode").collage(),a(".jgrid-shortcode").each(function(){var b=a(this),c=b.data("visibleItems");c?b.collage({images:c}):b.collage()})}).trigger("debouncedresize")}(jQuery);
!function(a,b){"use strict";function c(){if(!e){e=!0;var a,c,d,f,g=-1!==navigator.appVersion.indexOf("MSIE 10"),h=!!navigator.userAgent.match(/Trident.*rv:11\./),i=b.querySelectorAll("iframe.wp-embedded-content");for(c=0;c1e3)g=1e3;else if(~~g<200)g=200;f.height=g}if("link"===d.message)if(h=b.createElement("a"),i=b.createElement("a"),h.href=f.getAttribute("src"),i.href=d.value,i.host===h.host)if(b.activeElement===f)a.top.location.href=d.value}else;}},d)a.addEventListener("message",a.wp.receiveEmbedMessage,!1),b.addEventListener("DOMContentLoaded",c,!1),a.addEventListener("load",c,!1)}(window,document);
document.documentElement.className+=" js_active ",document.documentElement.className+="ontouchstart"in document.documentElement?" vc_mobile ":" vc_desktop ",function(){for(var prefix=["-webkit-","-moz-","-ms-","-o-",""],i=0;i=$tabs.tabs("length")&&(index=0),$tabs.tabs("select",index)):(index=$tabs.tabs("option","active"),length=$tabs.find(".wpb_tab").length,index=jQuery(this).parent().hasClass("wpb_next_slide")?length<=index+1?0:index+1:index-1<0?length-1:index-1,$tabs.tabs("option","active",index))})})}}),"function"!=typeof window.vc_accordionBehaviour&&(window.vc_accordionBehaviour=function(){jQuery(".wpb_accordion").each(function(index){var $tabs,active_tab,collapsible,$this=jQuery(this);$this.attr("data-interval"),collapsible=!1===(active_tab=!isNaN(jQuery(this).data("active-tab"))&&0 div > h3",autoHeight:!1,heightStyle:"content",active:active_tab,collapsible:collapsible,navigation:!0,activate:vc_accordionActivate,change:function(event,ui){void 0!==jQuery.fn.isotope&&ui.newContent.find(".isotope").isotope("layout"),vc_carouselBehaviour(ui.newPanel)}}),!0===$this.data("vcDisableKeydown")&&($tabs.data("uiAccordion")._keydown=function(){})})}),"function"!=typeof window.vc_teaserGrid&&(window.vc_teaserGrid=function(){var layout_modes={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 $container=jQuery(this),$thumbs=$container.find(".wpb_thumbnails"),layout_mode=$thumbs.attr("data-layout-mode");$thumbs.isotope({itemSelector:".isotope-item",layoutMode:void 0===layout_modes[layout_mode]?"fitRows":layout_modes[layout_mode]}),$container.find(".categories_filter a").data("isotope",$thumbs).click(function(e){e&&e.preventDefault&&e.preventDefault();var $thumbs=jQuery(this).data("isotope");jQuery(this).parent().parent().find(".active").removeClass("active"),jQuery(this).parent().addClass("active"),$thumbs.isotope({filter:jQuery(this).attr("data-filter")})}),jQuery(window).bind("load resize",function(){$thumbs.isotope("layout")})})}),"function"!=typeof window.vc_carouselBehaviour&&(window.vc_carouselBehaviour=function($parent){($parent?$parent.find(".wpb_carousel"):jQuery(".wpb_carousel")).each(function(){var $this=jQuery(this);if(!0!==$this.data("carousel_enabled")&&$this.is(":visible")){$this.data("carousel_enabled",!0);getColumnsCount(jQuery(this));jQuery(this).hasClass("columns_count_1")&&900;var carousel_li=jQuery(this).find(".wpb_thumbnails-fluid li");carousel_li.css({"margin-right":carousel_li.css("margin-left"),"margin-left":0});var fluid_ul=jQuery(this).find("ul.wpb_thumbnails-fluid");fluid_ul.width(fluid_ul.width()+300),jQuery(window).resize(function(){screen_size!=(screen_size=getSizeName())&&window.setTimeout(function(){location.reload()},20)})}})}),"function"!=typeof window.vc_slidersBehaviour&&(window.vc_slidersBehaviour=function(){jQuery(".wpb_gallery_slides").each(function(index){var $imagesGrid,this_element=jQuery(this);if(this_element.hasClass("wpb_slider_nivo")){var sliderTimeout=1e3*this_element.attr("data-interval");0===sliderTimeout&&(sliderTimeout=9999999999),this_element.find(".nivoSlider").nivoSlider({effect:"boxRainGrow,boxRain,boxRainReverse,boxRainGrowReverse",slices:15,boxCols:8,boxRows:4,animSpeed:800,pauseTime:sliderTimeout,startSlide:0,directionNav:!0,directionNavHide:!0,controlNav:!0,keyboardNav:!1,pauseOnHover:!0,manualAdvance:!1,prevText:"Prev",nextText:"Next"})}else this_element.hasClass("wpb_image_grid")&&(jQuery.fn.imagesLoaded?$imagesGrid=this_element.find(".wpb_image_grid_ul").imagesLoaded(function(){$imagesGrid.isotope({itemSelector:".isotope-item",layoutMode:"fitRows"})}):this_element.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')}),vc_initVideoBackgrounds(),callSkrollInit=!1,window.vcParallaxSkroll&&window.vcParallaxSkroll.destroy(),$(".vc_parallax-inner").remove(),$("[data-5p-top-bottom]").removeAttr("data-5p-top-bottom data-30p-top-bottom"),$("[data-vc-parallax]").each(function(){var skrollrSize,skrollrStart,$parallaxElement,parallaxImage,youtubeId;callSkrollInit=!0,"on"===$(this).data("vcParallaxOFade")&&$(this).children().attr("data-5p-top-bottom","opacity:0;").attr("data-30p-top-bottom","opacity:1;"),skrollrSize=100*$(this).data("vcParallax"),($parallaxElement=$("").addClass("vc_parallax-inner").appendTo($(this))).height(skrollrSize+"%"),parallaxImage=$(this).data("vcParallaxImage"),(youtubeId=vcExtractYoutubeId(parallaxImage))?insertYoutubeVideoAsBackground($parallaxElement,youtubeId):void 0!==parallaxImage&&$parallaxElement.css("background-image","url("+parallaxImage+")"),skrollrStart=-(skrollrSize-100),$parallaxElement.attr("data-bottom-top","top: "+skrollrStart+"%;").attr("data-top-bottom","top: 0%;")}),callSkrollInit&&window.skrollr&&(vcSkrollrOptions={forceHeight:!1,smoothScrolling:!1,mobileCheck:function(){return!1}},window.vcParallaxSkroll=skrollr.init(vcSkrollrOptions),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(el){for(var find=!1,i=1;!1===find;){if(el.hasClass("columns_count_"+i))return find=!0,i;i++}});var screen_size=getSizeName();function getSizeName(){var screen_w=jQuery(window).width();return 1170').find(".inner");new YT.Player($container[0],{width:"100%",height:"100%",videoId:youtubeId,playerVars:{playlist:youtubeId,iv_load_policy:3,enablejsapi:1,disablekb:1,autoplay:1,controls:0,showinfo:0,rel:0,loop:1,wmode:"transparent"},events:{onReady:function(event){event.target.mute().setLoop(!0)}}}),vcResizeVideoBackground($element),jQuery(window).bind("resize",function(){vcResizeVideoBackground($element)})}),"function"!=typeof window.vcResizeVideoBackground&&(window.vcResizeVideoBackground=function($element){var iframeW,iframeH,marginLeft,marginTop,containerW=$element.innerWidth(),containerH=$element.innerHeight();containerW/containerH<16/9?(iframeW=containerH*(16/9),iframeH=containerH,marginLeft=-Math.round((iframeW-containerW)/2)+"px",marginTop=-Math.round((iframeH-containerH)/2)+"px"):(iframeH=(iframeW=containerW)*(9/16),marginTop=-Math.round((iframeH-containerH)/2)+"px",marginLeft=-Math.round((iframeW-containerW)/2)+"px"),iframeW+="px",iframeH+="px",$element.find(".vc_video-bg iframe").css({maxWidth:"1000%",marginLeft:marginLeft,marginTop:marginTop,width:iframeW,height:iframeH})}),"function"!=typeof window.vcExtractYoutubeId&&(window.vcExtractYoutubeId=function(url){if(void 0===url)return!1;var id=url.match(/(?:https?:\/{2})?(?:w{3}\.)?youtu(?:be)?\.(?:com|be)(?:\/watch\?v=|\/)([^\s&]+)/);return null!==id&&id[1]}),"function"!=typeof window.vc_googleMapsPointer&&(window.vc_googleMapsPointer=function(){var $=window.jQuery,$wpbGmapsWidget=$(".wpb_gmaps_widget");$wpbGmapsWidget.click(function(){$("iframe",this).css("pointer-events","auto")}),$wpbGmapsWidget.mouseleave(function(){$("iframe",this).css("pointer-events","none")}),$(".wpb_gmaps_widget iframe").css("pointer-events","none")}),"function"!=typeof window.vc_setHoverBoxPerspective&&(window.vc_setHoverBoxPerspective=function(hoverBox){hoverBox.each(function(){var $this=jQuery(this),perspective=4*$this.width()+"px";$this.css("perspective",perspective)})}),"function"!=typeof window.vc_setHoverBoxHeight&&(window.vc_setHoverBoxHeight=function(hoverBox){hoverBox.each(function(){var $this=jQuery(this),hoverBoxInner=$this.find(".vc-hoverbox-inner");hoverBoxInner.css("min-height",0);var frontHeight=$this.find(".vc-hoverbox-front-inner").outerHeight(),backHeight=$this.find(".vc-hoverbox-back-inner").outerHeight(),hoverBoxHeight=backHeight 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 +=" ";
}
promptText +=errorMsg;
options.isError=true;
field_errors++;
end_validation=true;
}
if(end_validation){
break;
}
if(typeof errorMsg=='string'){
if(promptText!=''){
promptText +=" ";
}
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=$('
');
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=$('
').addClass("formErrorContent").html(promptText).appendTo(prompt);
var positionType=field.data("promptPosition")||options.promptPosition;
if(options.showArrow){
var arrow=$('
').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('');
break;
case "topLeft":
case "topRight":
arrow.html('');
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": "* Dieses Feld ist ein Pflichtfeld",
"alertTextCheckboxMultiple": "* Bitte wählen Sie eine Option",
"alertTextCheckboxe": "* Dieses Feld ist ein Pflichtfeld"
},
"requiredInFunction": {
"func": function(field, rules, i, options){
return (field.val()=="test") ? true:false;
},
"alertText": "* Field must equal test"
},
"minSize": {
"regex": "none",
"alertText": "* Mindestens ",
"alertText2": " Zeichen benötigt"
},
"maxSize": {
"regex": "none",
"alertText": "* Maximal ",
"alertText2": " Zeichen erlaubt"
},
"groupRequired": {
"regex": "none",
"alertText": "* Sie müssen mindestens eines dieser Felder ausfüllen"
},
"min": {
"regex": "none",
"alertText": "* Mindestwert ist "
},
"max": {
"regex": "none",
"alertText": "* Maximalwert ist "
},
"past": {
"regex": "none",
"alertText": "* Datum vor "
},
"future": {
"regex": "none",
"alertText": "* Datum nach "
},
"maxCheckbox": {
"regex": "none",
"alertText": "* Maximale Anzahl Markierungen überschritten"
},
"minCheckbox": {
"regex": "none",
"alertText": "* Bitte wählen Sie ",
"alertText2": " Optionen"
},
"equals": {
"regex": "none",
"alertText": "* Felder stimmen nicht überein"
},
"creditCard": {
"regex": "none",
"alertText": "* Ungültige Kreditkartennummer"
},
"phone": {
"regex": /^([\+][0-9]{1,3}([ \.\-])?)?([\(][0-9]{1,6}[\)])?([0-9 \.\-]{1,32})(([A-Za-z \:]{1,11})?[0-9]{1,4}?)$/,
"alertText": "* Ungültige Telefonnummer"
},
"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": "* Ungültige E-Mail-Adresse"
},
"integer": {
"regex": /^[\-\+]?\d+$/,
"alertText": "* Keine gültige Ganzzahl"
},
"number": {
"regex": /^[\-\+]?((([0-9]{1,3})([,][0-9]{3})*)|([0-9]+))?([\.]([0-9]+))?$/,
"alertText": "* Keine gültige Fließkommazahl"
},
"date": {
"regex": /^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$/,
"alertText": "* Ungültiges Datumsformat, erwartet wird das Format JJJJ-MM-TT"
},
"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": "* Ungültige IP-Adresse"
},
"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": "* Ungültige URL"
},
"onlyLetterSp": {
"regex": /^[a-zA-ZäüöÄÜÖßs\ \\\']+$/,
"alertText": "* Nur Buchstaben erlaubt"
},
"onlyLetterNumber": {
"regex": /^[0-9a-zA-ZäüöÄÜÖßs-]+$/,
"alertText": "* Keine Sonderzeichen erlaubt"
},
"ajaxUserCall": {
"url": "ajaxValidateFieldUser",
"extraData": "name=eric",
"alertText": "* Dieser Benutzer ist bereits vergeben",
"alertTextLoad": "* Überprüfe Angaben, bitte warten"
},
"ajaxNameCall": {
"url": "ajaxValidateFieldName",
"alertText": "* Dieser Name ist bereits vergeben",
"alertTextOk": "* Dieser Name ist verfügbar",
"alertTextLoad": "* Überprüfe Angaben, bitte warten"
},
"validate2fields": {
"alertText": "* Bitte HELLO eingeben"
}};}};
$.validationEngineLanguage.newLang();
})(jQuery);
jQuery(function(a){a.fn.dtInitContactForm=function(){return this.each(function(){var b=a(this),c="";c=b.hasClass("privacy-form")?'
")}))}))},wo=function(){if(I.crossDomainCookie.length)for(var e in I.crossDomainCookie){var t=I.crossDomainCookie[e];o("body").append('')}},Bo=function(){o(O+" [name^='borlabsCookie']").each((function(){ao(this.value)?this.checked=!0:this.checked=!1,o(this).change()})),o(document).on("change",O+" [name^='borlabsCookie']",(function(){this.checked?no(this.dataset.cookieGroup,this.value):io(this.dataset.cookieGroup,this.value)}))},Lo,_o=function(){if(Object.keys(j).length)for(var o in j)if(Object.keys(j[o]).length)for(var e in j[o])if(void 0!==j[o][e].settings&&void 0!==j[o][e].settings.blockCookiesBeforeConsent&&"1"===j[o][e].settings.blockCookiesBeforeConsent&&void 0!==j[o][e].cookieNameList&&!1===ao(e))for(var t in j[o][e].cookieNameList)oo(t,null,-1!==t.indexOf("*"))};return{addConsent:no,allocateScriptBlockerToContentBlocker:function(o,e,t){"scriptBlockerId"!==t&&"jsHandle"!==t||(void 0===D[o]&&(D[o]={scriptBlockerId:[],jsHandle:[]}),-1===D[o][t].indexOf(e)&&D[o][t].push(e))},checkCookieConsent:ao,checkCookieGroupConsent:function(o){var e=!1;return void 0!==H.consents[o]&&(e=!0),e},deleteCookie:oo,getCookie:Y,hideCookieBox:J,init:R,initConsentHistoryTable:yo,initSwitchConsentButtonStatus:Bo,openCookiePreference:z,removeConsent:io,showCookieBox:G,unblockContentId:function(e){o("["+x+"='content-blocker']["+C+"='"+e+"']").each((function(){ko(o(this).parents(".BorlabsCookie"))}))},unblockScriptBlockerId:fo,unblockScriptBlockerJSHandle:vo}}()}(jQuery);