/*! jQuery Migrate v3.4.0 | (c) OpenJS Foundation and other contributors | jquery.org/license */ "undefined"==typeof jQuery.migrateMute&&(jQuery.migrateMute=!0),function(t){"use strict";"function"==typeof define&&define.amd?define(["jquery"],function(e){return t(e,window)}):"object"==typeof module&&module.exports?module.exports=t(require("jquery"),window):t(jQuery,window)}(function(s,n){"use strict";function e(e){return 0<=function(e,t){for(var r=/^(\d+)\.(\d+)\.(\d+)/,n=r.exec(e)||[],o=r.exec(t)||[],a=1;a<=3;a++){if(+n[a]>+o[a])return 1;if(+n[a]<+o[a])return-1}return 0}(s.fn.jquery,e)}s.migrateVersion="3.4.0";var t=Object.create(null),o=(s.migrateDisablePatches=function(){for(var e=0;e\x20\t\r\n\f]*)[^>]*)\/>/gi),_=(s.UNSAFE_restoreLegacyHtmlPrefilter=function(){s.migrateEnablePatches("self-closed-tags")},d(s,"htmlPrefilter",function(e){var t,r;return(r=(t=e).replace(O,"<$1>"))!==t&&C(t)!==C(r)&&i("self-closed-tags","HTML tags must be properly nested and closed: "+t),e.replace(O,"<$1>")},"self-closed-tags"),s.migrateDisablePatches("self-closed-tags"),s.fn.offset);return d(s.fn,"offset",function(){var e=this[0];return!e||e.nodeType&&e.getBoundingClientRect?_.apply(this,arguments):(i("offset-valid-elem","jQuery.fn.offset() requires a valid DOM element"),arguments.length?this:void 0)},"offset-valid-elem"),s.ajax&&(H=s.param,d(s,"param",function(e,t){var r=s.ajaxSettings&&s.ajaxSettings.traditional;return void 0===t&&r&&(i("param-ajax-traditional","jQuery.param() no longer uses jQuery.ajaxSettings.traditional"),t=r),H.call(this,e,t)},"param-ajax-traditional")),u(s.fn,"andSelf",s.fn.addBack,"andSelf","jQuery.fn.andSelf() is deprecated and removed, use jQuery.fn.addBack()"),s.Deferred&&(E=s.Deferred,M=[["resolve","done",s.Callbacks("once memory"),s.Callbacks("once memory"),"resolved"],["reject","fail",s.Callbacks("once memory"),s.Callbacks("once memory"),"rejected"],["notify","progress",s.Callbacks("memory"),s.Callbacks("memory")]],d(s,"Deferred",function(e){var a=E(),i=a.promise();function t(){var o=arguments;return s.Deferred(function(n){s.each(M,function(e,t){var r="function"==typeof o[e]&&o[e];a[t[1]](function(){var e=r&&r.apply(this,arguments);e&&"function"==typeof e.promise?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[t[0]+"With"](this===i?n.promise():this,r?[e]:arguments)})}),o=null}).promise()}return u(a,"pipe",t,"deferred-pipe","deferred.pipe() is deprecated"),u(i,"pipe",t,"deferred-pipe","deferred.pipe() is deprecated"),e&&e.call(a,a),a},"deferred-pipe"),s.Deferred.exceptionHook=E.exceptionHook),s}); (function($){'use strict';$(document).ready(function(){var owl=$("#woorelatedproducts");owl.owlCarousel({items:3,itemsDesktop:[1000,3],itemsDesktopSmall:[900,3],itemsTablet:[600,2],autoPlay:3500,itemsMobile:false,});$(".next").click(function(){owl.trigger('owl.next');}) $(".prev").click(function(){owl.trigger('owl.prev');})});})(jQuery); (function(t){function e(e){return u?e.data("events"):t._data(e[0]).events}function n(t,n,r){var i=e(t),a=i[n];if(!u){var s=r?a.splice(a.delegateCount-1,1)[0]:a.pop();return a.splice(r?0:a.delegateCount||0,0,s),void 0}r?i.live.unshift(i.live.pop()):a.unshift(a.pop())}function r(e,r,i){var a=r.split(/\s+/);e.each(function(){for(var e=0;a.length>e;++e){var r=a[e].trim().match(/[^\.]+/i)[0];n(t(this),r,i)}})}function i(e){t.fn[e+"First"]=function(){var n=t.makeArray(arguments),i=n.shift();return i&&(t.fn[e].apply(this,arguments),r(this,i)),this}}var a=t.fn.jquery.split("."),s=parseInt(a[0]),f=parseInt(a[1]),u=1>s||1==s&&7>f;i("bind"),i("one"),t.fn.delegateFirst=function(){var e=t.makeArray(arguments),n=e[1];return n&&(e.splice(0,2),t.fn.delegate.apply(this,arguments),r(this,n,!0)),this},t.fn.liveFirst=function(){var e=t.makeArray(arguments);return e.unshift(this.selector),t.fn.delegateFirst.apply(t(document),e),this},u||(t.fn.onFirst=function(e,n){var i=t(this),a="string"==typeof n;if(t.fn.on.apply(i,arguments),"object"==typeof e)for(type in e)e.hasOwnProperty(type)&&r(i,type,a);else"string"==typeof e&&r(i,e,a);return i})})(jQuery); !function(e){var n=!1;if("function"==typeof define&&define.amd&&(define(e),n=!0),"object"==typeof exports&&(module.exports=e(),n=!0),!n){var o=window.Cookies,t=window.Cookies=e();t.noConflict=function(){return window.Cookies=o,t}}}(function(){function e(){for(var e=0,n={};e1){if(i=e({path:"/"},t.defaults,i),"number"==typeof i.expires){var a=new Date;a.setMilliseconds(a.getMilliseconds()+864e5*i.expires),i.expires=a}try{c=JSON.stringify(r),/^[\{\[]/.test(c)&&(r=c)}catch(e){}return r=o.write?o.write(r,n):encodeURIComponent(String(r)).replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g,decodeURIComponent),n=encodeURIComponent(String(n)),n=n.replace(/%(23|24|26|2B|5E|60|7C)/g,decodeURIComponent),n=n.replace(/[\(\)]/g,escape),document.cookie=[n,"=",r,i.expires?"; expires="+i.expires.toUTCString():"",i.path?"; path="+i.path:"",i.domain?"; domain="+i.domain:"",i.secure?"; secure":""].join("")}n||(c={});for(var p=document.cookie?document.cookie.split("; "):[],s=/(%[0-9A-Z]{2})+/g,d=0;d>>0;if(len===0){return false;} var n=fromIndex|0;var k=Math.max(n>=0?n:len-Math.abs(n),0);function sameValueZero(x,y){return x===y||(typeof x==='number'&&typeof y==='number'&&isNaN(x)&&isNaN(y));} while(k()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;return re.test(email);} function getDomain(url){url=url.replace(/(https?:\/\/)?(www.)?/i,'');if(url.indexOf('/')!==-1){return url.split('/')[0];} return url;} function loadPixels(){if(!options.gdpr.all_disabled_by_api){if(!options.gdpr.facebook_disabled_by_api){Facebook.loadPixel();} if(!options.gdpr.analytics_disabled_by_api){Analytics.loadPixel();} if(!options.gdpr.pinterest_disabled_by_api){Pinterest.loadPixel();} if(!options.gdpr.bing_disabled_by_api){Bing.loadPixel();}} if(options.gdpr.consent_magic_integration_enabled&&typeof CS_Data!=="undefined"){if(typeof CS_Data.cs_google_analytics_consent_mode!=="undefined"&&CS_Data.cs_google_analytics_consent_mode==1){Analytics.loadPixel();}}} function checkSession(){let duration=options.last_visit_duration*60000 if(Cookies.get('pys_start_session')===undefined||Cookies.get('pys_session_limit')===undefined){var now=new Date();now.setTime(now.getTime()+duration);Cookies.set('pys_session_limit',true,{expires:now}) Cookies.set('pys_start_session',true) return true} return false} function getTrafficSource(){try{let referrer=document.referrer.toString(),source;let direct=referrer.length===0;let internal=direct?false:referrer.indexOf(options.siteUrl)===0;let external=!direct&&!internal;if(external===false){source='direct';}else{source=referrer;} if(source!=='direct'){return getDomain(source);}else{return source;}}catch(e){console.error(e);return'direct';}} function getQueryVars(){try{var result={},tmp=[];window.location.search.substr(1).split("&").forEach(function(item){tmp=item.split('=');if(tmp.length>1){result[tmp[0]]=tmp[1];}});return result;}catch(e){console.error(e);return{};}} function getUTMId(useLast=false){try{let cookiePrefix='pys_' let terms=[];if(useLast){cookiePrefix='last_pys_'} $.each(utmId,function(index,name){if(Cookies.get(cookiePrefix+name)){terms[name]=Cookies.get(cookiePrefix+name)}});return terms;}catch(e){console.error(e);return[];}} function getUTMs(useLast=false){try{let cookiePrefix='pys_' if(useLast){cookiePrefix='last_pys_'} let terms=[];$.each(utmTerms,function(index,name){if(Cookies.get(cookiePrefix+name)){let value=Cookies.get(cookiePrefix+name);terms[name]=filterEmails(value);}});return terms;}catch(e){console.error(e);return[];}} function getDateTime(){var dateTime=new Array();var date=new Date(),days=['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday'],months=['January','February','March','April','May','June','July','August','September','October','November','December'],hours=['00-01','01-02','02-03','03-04','04-05','05-06','06-07','07-08','08-09','09-10','10-11','11-12','12-13','13-14','14-15','15-16','16-17','17-18','18-19','19-20','20-21','21-22','22-23','23-24'];dateTime.push(hours[date.getHours()]);dateTime.push(days[date.getDay()]);dateTime.push(months[date.getMonth()]);return dateTime;} function filterEmails(value){return validateEmail(value)?undefined:value;} return{PRODUCT_SIMPLE:0,PRODUCT_VARIABLE:1,PRODUCT_BUNDLE:2,PRODUCT_GROUPED:3,fireEventForAllPixel:function(functionName,events){if(events.hasOwnProperty(Facebook.tag())) Facebook[functionName](events[Facebook.tag()]);if(events.hasOwnProperty(Analytics.tag())) Analytics[functionName](events[Analytics.tag()]);if(events.hasOwnProperty(Pinterest.tag())) Pinterest[functionName](events[Pinterest.tag()]);if(events.hasOwnProperty(Bing.tag())) Bing[functionName](events[Bing.tag()]);},setupPinterestObject:function(){Pinterest=window.pys.Pinterest||Pinterest;return Pinterest;},setupBingObject:function(){Bing=window.pys.Bing||Bing;return Bing;},copyProperties:function(from,to){for(var key in from){if("function"==typeof from[key]){continue;} to[key]=from[key];} return to;},manageCookies:function(){let expires=parseInt(options.cookie_duration);let queryVars=getQueryVars();let landing=window.location.href.split('?')[0];try{if(Cookies.get('pys_first_visit')===undefined){Cookies.set('pys_first_visit',true,{expires:expires});Cookies.set('pysTrafficSource',getTrafficSource(),{expires:expires});Cookies.set('pys_landing_page',landing,{expires:expires});$.each(utmTerms,function(index,name){if(queryVars.hasOwnProperty(name)){Cookies.set('pys_'+name,queryVars[name],{expires:expires});}else{Cookies.remove('pys_'+name)}});$.each(utmId,function(index,name){if(queryVars.hasOwnProperty(name)){Cookies.set('pys_'+name,queryVars[name],{expires:expires});}else{Cookies.remove('pys_'+name)}})} if(isNewSession){Cookies.set('last_pysTrafficSource',getTrafficSource(),{expires:expires});$.each(utmTerms,function(index,name){if(queryVars.hasOwnProperty(name)){Cookies.set('last_pys_'+name,queryVars[name],{expires:expires});}else{Cookies.remove('last_pys_'+name)}});$.each(utmId,function(index,name){if(queryVars.hasOwnProperty(name)){Cookies.set('last_pys_'+name,queryVars[name],{expires:expires});}else{Cookies.remove('last_pys_'+name)}}) Cookies.set('last_pys_landing_page',landing,{expires:expires});}}catch(e){console.error(e);}},clone:function(obj){var copy;if(null==obj||"object"!=typeof obj)return obj;if(obj instanceof Date){copy=new Date();copy.setTime(obj.getTime());return copy;} if(obj instanceof Array){copy=[];for(var i=0,len=obj.length;i0&&link.indexOf('.')!==-1){link=link.substring(link.indexOf(".")+1);return link;}else{return"";}},getLinkFilename:function(link){link=link.substring(0,(link.indexOf("#")===-1)?link.length:link.indexOf("#"));link=link.substring(0,(link.indexOf("?")===-1)?link.length:link.indexOf("?"));link=link.substring(link.lastIndexOf("/")+1,link.length);if(link.length>0&&link.indexOf('.')!==-1){return link;}else{return"";}},isCheckoutPage:function(){return $('body').hasClass('woocommerce-checkout')||document.querySelector('.woocommerce-checkout')||$('body').hasClass('edd-checkout');},addCheckoutFields:function(){var utm="";var utms=getUTMs() $.each(utmTerms,function(index,name){if(index>0){utm+="|";} utm+=name+":"+utms[name];});var utmIdList="";var utmsIds=getUTMId() $.each(utmId,function(index,name){if(index>0){utmIdList+="|";} utmIdList+=name+":"+utmsIds[name];});var utmIdListLast="";var utmsIdsLast=getUTMId(true) $.each(utmId,function(index,name){if(index>0){utmIdListLast+="|";} utmIdListLast+=name+":"+utmsIdsLast[name];});var utmLast="";var utmsLast=getUTMs(true) $.each(utmTerms,function(index,name){if(index>0){utmLast+="|";} utmLast+=name+":"+utmsLast[name];});var dateTime=getDateTime();var landing=Cookies.get('pys_landing_page');var lastLanding=Cookies.get('last_pys_landing_page');var trafic=Cookies.get('pysTrafficSource');var lastTrafic=Cookies.get('last_pysTrafficSource');var $form=null;if($('body').hasClass('woocommerce-checkout')){$form=$("form.woocommerce-checkout");}else{$form=$("#edd_purchase_form");} var inputs={'pys_utm':utm,'pys_utm_id':utmIdList,'pys_browser_time':dateTime.join("|"),'pys_landing':landing,'pys_source':trafic,'pys_order_type':$(".wcf-optin-form").length>0?"wcf-optin":"normal",'last_pys_landing':lastLanding,'last_pys_source':lastTrafic,'last_pys_utm':utmLast,'last_pys_utm_id':utmIdListLast,} Object.keys(inputs).forEach(function(key,index){$form.append(" ");});}};}(options);var Facebook=function(options){var defaultEventTypes=['PageView','ViewContent','Search','AddToCart','AddToWishlist','InitiateCheckout','AddPaymentInfo','Purchase','Lead','Subscribe','CustomizeProduct','FindLocation','StartTrial','SubmitApplication','Schedule','Contact','Donate'];var initialized=false;var isApiDisabled=options.gdpr.all_disabled_by_api||options.gdpr.facebook_disabled_by_api||options.gdpr.cookiebot_integration_enabled||options.gdpr.consent_magic_integration_enabled||options.gdpr.cookie_notice_integration_enabled||options.gdpr.cookie_law_info_integration_enabled;function sendFbServerEvent(allData,name,params){let eventId=null;if(options.facebook.serverApiEnabled){if(allData.e_id==="woo_remove_from_cart"||allData.e_id==="woo_add_to_cart_on_button_click"){let isAddToCartFromJs=options.woo.hasOwnProperty("addToCartCatchMethod")&&options.woo.addToCartCatchMethod==="add_cart_js";if(isAddToCartFromJs||allData.e_id!=="woo_add_to_cart_on_button_click"){Facebook.updateEventId(allData.name);allData.eventID=Facebook.getEventId(allData.name);}else{}}else{if(options.facebook.ajaxForServerEvent||isApiDisabled||allData.delay>0||allData.type!=="static") {allData.eventID=pys_generate_token(36);var json={action:'pys_api_event',pixel:'facebook',event:name,data:params,ids:options.facebook.pixelIds,eventID:allData.eventID,url:window.location.href,ajax_event:options.ajax_event};if(allData.hasOwnProperty('woo_order')){json['woo_order']=allData.woo_order;} if(allData.hasOwnProperty('edd_order')){json['edd_order']=allData.edd_order;} if(name=='PageView'){let expires=parseInt(options.cookie_duration);var currentTimeInSeconds=Date.now();var randomNum=Math.floor(1000000000+Math.random()*9000000000);timeoutDelay=0;if(allData.delay>0) {timeoutDelay=allData.delay;} if(!Cookies.get('_fbp')) {timeoutDelay=100;} if(getUrlParameter('fbclid')&&!Cookies.get('_fbc')) {timeoutDelay=100;} setTimeout(function(){if(!Cookies.get('_fbp')) {Cookies.set('_fbp','fb.1.'+currentTimeInSeconds+'.'+randomNum,{expires:expires})} if(getUrlParameter('fbclid')&&!Cookies.get('_fbc')) {Cookies.set('_fbc','fb.1.'+currentTimeInSeconds+'.'+getUrlParameter('fbclid'),{expires:expires})} jQuery.ajax({type:'POST',url:options.ajaxUrl,data:json,headers:{'Cache-Control':'no-cache'},success:function(){},});},timeoutDelay)} else {jQuery.ajax({type:'POST',url:options.ajaxUrl,data:json,headers:{'Cache-Control':'no-cache'},success:function(){},});}}} eventId=allData.eventID} return eventId;} function fireEvent(name,allData){if(typeof window.pys_event_data_filter==="function"&&window.pys_disable_event_filter(name,'facebook')){return;} var actionType=defaultEventTypes.includes(name)?'track':'trackCustom';var data=allData.params;var params={};var arg={};Utils.copyProperties(data,params);let eventId=sendFbServerEvent(allData,name,params) if("hCR"===name){return;} if(options.debug){console.log('[Facebook] '+name,params,"eventID",eventId);} if(eventId!=null){arg.eventID=eventId;} fbq(actionType,name,params,arg);} return{tag:function(){return"facebook";},isEnabled:function(){return options.hasOwnProperty('facebook');},disable:function(){initialized=false;},loadPixel:function(){if(initialized||!this.isEnabled()||!Utils.consentGiven('facebook')){return;} !function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod?n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';n.agent='dvpixelyoursite';n.queue=[];t=b.createElement(e);t.async=!0;t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window,document,'script','https://connect.facebook.net/en_US/fbevents.js');options.facebook.pixelIds.forEach(function(pixelId){if(options.facebook.removeMetadata){fbq('set','autoConfig',false,pixelId);} if(options.gdpr.consent_magic_integration_enabled&&typeof CS_Data!=="undefined"){if(options.facebook.advancedMatching.length===0){fbq('init',pixelId);}else{var cs_advanced_matching=Cookies.get('cs_enabled_advanced_matching'+test_prefix);if(jQuery('#cs_enabled_advanced_matching'+test_prefix).length>0){if(cs_advanced_matching=='yes'){fbq('init',pixelId,options.facebook.advancedMatching);}else{fbq('init',pixelId);}}else{fbq('init',pixelId,options.facebook.advancedMatching);}}}else{if(options.facebook.advancedMatching.length===0){fbq('init',pixelId);}else{fbq('init',pixelId,options.facebook.advancedMatching);}}});initialized=true;Utils.fireStaticEvents('facebook');},fireEvent:function(name,data){if(!initialized||!this.isEnabled()){return false;} data.delay=data.delay||0;data.params=data.params||{};if(data.delay===0){fireEvent(name,data);}else{setTimeout(function(name,params){fireEvent(name,params);},data.delay*1000,name,data);} return true;},onCommentEvent:function(event){this.fireEvent(event.name,event);},onDownloadEvent:function(event){this.fireEvent(event.name,event);},onFormEvent:function(event){this.fireEvent(event.name,event);},onWooAddToCartOnButtonEvent:function(product_id){if(!options.dynamicEvents.woo_add_to_cart_on_button_click.hasOwnProperty(this.tag())) return;var event=options.dynamicEvents.woo_add_to_cart_on_button_click[this.tag()];if(window.pysWooProductData.hasOwnProperty(product_id)){if(window.pysWooProductData[product_id].hasOwnProperty('facebook')){event=Utils.copyProperties(event,{}) Utils.copyProperties(window.pysWooProductData[product_id]['facebook'].params,event.params) this.fireEvent(event.name,event);}}},onWooAddToCartOnSingleEvent:function(product_id,qty,product_type,$form){window.pysWooProductData=window.pysWooProductData||[];if(!options.dynamicEvents.woo_add_to_cart_on_button_click.hasOwnProperty(this.tag())) return;var event=Utils.clone(options.dynamicEvents.woo_add_to_cart_on_button_click[this.tag()]);if(product_type===Utils.PRODUCT_VARIABLE&&!options.facebook.wooVariableAsSimple){product_id=parseInt($form.find('input[name="variation_id"]').val());} if(window.pysWooProductData.hasOwnProperty(product_id)){if(window.pysWooProductData[product_id].hasOwnProperty('facebook')){Utils.copyProperties(window.pysWooProductData[product_id]['facebook'].params,event.params);var groupValue=0;if(product_type===Utils.PRODUCT_GROUPED){$form.find(".woocommerce-grouped-product-list .qty").each(function(index){var childId=$(this).attr('name').replaceAll("quantity[","").replaceAll("]","");var quantity=parseInt($(this).val());if(isNaN(quantity)){quantity=0;} var childItem=window.pysWooProductData[product_id]['facebook'].grouped[childId];if(quantity==0){event.params.content_ids.forEach(function(el,index,array){if(el==childItem.content_id){array.splice(index,1);}});} if(event.params.hasOwnProperty('contents')){event.params.contents.forEach(function(el,index,array){if(el.id==childItem.content_id){if(quantity>0){el.quantity=quantity;}else{array.splice(index,1);}}});} groupValue+=childItem.price*quantity;});if(groupValue==0)return;} if(options.woo.addToCartOnButtonValueEnabled&&options.woo.addToCartOnButtonValueOption!=='global'){if(product_type===Utils.PRODUCT_GROUPED){event.params.value=groupValue;}else if(product_type===Utils.PRODUCT_BUNDLE){var data=$(".bundle_form .bundle_data").data("bundle_form_data");var items_sum=getBundlePriceOnSingleProduct(data);event.params.value=(parseInt(data.base_price)+items_sum)*qty;}else{event.params.value=event.params.value*qty;}} if(event.params.hasOwnProperty('contents')&&product_type!==Utils.PRODUCT_GROUPED){event.params.contents[0].quantity=qty;} this.fireEvent(event.name,event);}}},onWooRemoveFromCartEvent:function(event){this.fireEvent(event.name,event);},onEddAddToCartOnButtonEvent:function(download_id,price_index,qty){if(!options.dynamicEvents.edd_add_to_cart_on_button_click.hasOwnProperty(this.tag())) return;var event=Utils.clone(options.dynamicEvents.edd_add_to_cart_on_button_click[this.tag()]);if(window.pysEddProductData.hasOwnProperty(download_id)){var index;if(price_index){index=download_id+'_'+price_index;}else{index=download_id;} if(window.pysEddProductData[download_id].hasOwnProperty(index)){if(window.pysEddProductData[download_id][index].hasOwnProperty('facebook')){Utils.copyProperties(window.pysEddProductData[download_id][index]['facebook']["params"],event.params) if(options.edd.addToCartOnButtonValueEnabled&&options.edd.addToCartOnButtonValueOption!=='global'){event.params.value=event.params.value*qty;} var contents=event.params.contents;contents[0].quantity=qty;event.params.contents=contents;this.fireEvent(event.name,event);}}}},onEddRemoveFromCartEvent:function(event){this.fireEvent(event.name,event);},onPageScroll:function(event){this.fireEvent(event.name,event);},onTime:function(event){this.fireEvent(event.name,event);},initEventIdCookies:function(key){var ids={};ids[key]=pys_generate_token(36) Cookies.set('pys_fb_event_id',JSON.stringify(ids));},updateEventId:function(key){var cooData=Cookies.get("pys_fb_event_id") if(cooData===undefined){this.initEventIdCookies(key);}else{var data=JSON.parse(cooData);data[key]=pys_generate_token(36);Cookies.set('pys_fb_event_id',JSON.stringify(data));}},getEventId:function(key){var data=Cookies.get("pys_fb_event_id");if(data===undefined){this.initEventIdCookies(key);data=Cookies.get("pys_fb_event_id");} return JSON.parse(data)[key];},};}(options);var Analytics=function(options){var initialized=false;function fireEvent(name,data){if(typeof window.pys_event_data_filter==="function"&&window.pys_disable_event_filter(name,'ga')){return;} var eventParams=Utils.copyProperties(data,{});var _fireEvent=function(tracking_id,name,params){params['send_to']=tracking_id;if(options.debug){console.log('[Google Analytics #'+tracking_id+'] '+name,params);} gtag('event',name,params);};options.ga.trackingIds.forEach(function(tracking_id){var copyParams=Utils.copyProperties(eventParams,{});var params=mapParamsTov4(tracking_id,name,copyParams) _fireEvent(tracking_id,name,params);});} function mapParamsTov4(tag,name,param){delete param.page_title;delete param.event_url;delete param.landing_page;if(isv4(tag)){delete param.traffic_source;delete param.event_category;delete param.event_label;delete param.ecomm_prodid;delete param.ecomm_pagetype;delete param.ecomm_totalvalue;if(name==='search'){param['search']=param.search_term;delete param.search_term;delete param.non_interaction;delete param.dynx_itemid;delete param.dynx_pagetype;delete param.dynx_totalvalue;}}else{switch(name){case'Comment':case'login':case'sign_up':case'EmailClick':case'TelClick':{let params={event_category:"Key Actions",event_action:name,non_interaction:param.non_interaction,} return params;} case'Form':{let params={event_category:"Key Actions",event_action:name,non_interaction:param.non_interaction,} var formClass=(typeof param.form_class!='undefined')?'class: '+param.form_class:'';if(formClass!=""){params["event_label"]=formClass;} return params;} case'Download':{let params={event_category:"Key Actions",event_action:name,event_label:param.download_name,non_interaction:param.non_interaction,} return params;} case'TimeOnPage':case'PageScroll':{let params={event_category:"Key Actions",event_action:name,event_label:document.title,non_interaction:param.non_interaction,} return params;} case'search':{let params={event_category:"Key Actions",event_action:name,event_label:param.search_term,non_interaction:param.non_interaction,} return params;}} delete param.post_type;delete param.post_id;delete param.plugin;delete param.user_role;delete param.cartlows;delete param.cartflows_flow;delete param.cartflows_step;} return param;} function isv4(tag){return tag.indexOf('G')===0;} return{tag:function(){return"ga";},isEnabled:function(){return options.hasOwnProperty('ga');},disable:function(){initialized=false;},loadPixel:function(){if(initialized||!this.isEnabled()||!Utils.consentGiven('analytics')){return;} Utils.loadGoogleTag(options.ga.trackingIds[0]);var config={'link_attribution':options.ga.enhanceLinkAttr,'anonymize_ip':options.ga.anonimizeIP};if(options.ga.crossDomainEnabled){config.linker={accept_incoming:options.ga.crossDomainAcceptIncoming,domains:options.ga.crossDomainDomains};} options.ga.trackingIds.forEach(function(trackingId,index){config.debug_mode=options.ga.isDebugEnabled.includes("index_"+index);if(isv4(trackingId)){if(options.ga.disableAdvertisingFeatures){config.allow_google_signals=false} if(options.ga.disableAdvertisingPersonalization){config.allow_ad_personalization_signals=false}} if(options.gdpr.cookiebot_integration_enabled&&typeof Cookiebot!=='undefined'){var cookiebot_consent_category=options.gdpr['cookiebot_analytics_consent_category'];if(options.gdpr['analytics_prior_consent_enabled']){if(Cookiebot.consented===true&&Cookiebot.consent[cookiebot_consent_category]){gtag('config',trackingId,config);}}else{if(Cookiebot.consent[cookiebot_consent_category]){gtag('config',trackingId,config);}}} else {gtag('config',trackingId,config);}});initialized=true;Utils.fireStaticEvents('ga');},fireEvent:function(name,data){if(!initialized||!this.isEnabled()){return false;} data.delay=data.delay||0;data.params=data.params||{};if(data.delay===0){fireEvent(name,data.params);}else{setTimeout(function(name,params){fireEvent(name,params);},data.delay*1000,name,data.params);} return true;},onCommentEvent:function(event){this.fireEvent(event.name,event);},onDownloadEvent:function(event){this.fireEvent(event.name,event);},onFormEvent:function(event){this.fireEvent(event.name,event);},onWooAddToCartOnButtonEvent:function(product_id){if(!options.dynamicEvents.woo_add_to_cart_on_button_click.hasOwnProperty(this.tag())) return;var event=Utils.clone(options.dynamicEvents.woo_add_to_cart_on_button_click[this.tag()]);if(window.pysWooProductData.hasOwnProperty(product_id)){if(window.pysWooProductData[product_id].hasOwnProperty('ga')){Utils.copyProperties(window.pysWooProductData[product_id]['ga'].params,event.params) this.fireEvent(event.name,event);}}},onWooAddToCartOnSingleEvent:function(product_id,qty,product_type,$form){window.pysWooProductData=window.pysWooProductData||[];if(!options.dynamicEvents.woo_add_to_cart_on_button_click.hasOwnProperty(this.tag())) return;var event=Utils.clone(options.dynamicEvents.woo_add_to_cart_on_button_click[this.tag()]);if(product_type===Utils.PRODUCT_VARIABLE&&!options.ga.wooVariableAsSimple){product_id=parseInt($form.find('input[name="variation_id"]').val());} if(window.pysWooProductData.hasOwnProperty(product_id)){if(window.pysWooProductData[product_id].hasOwnProperty('ga')){Utils.copyProperties(window.pysWooProductData[product_id]['ga'].params,event.params);if(product_type===Utils.PRODUCT_GROUPED){var groupValue=0;$form.find(".woocommerce-grouped-product-list .qty").each(function(index){var childId=$(this).attr('name').replaceAll("quantity[","").replaceAll("]","");var quantity=parseInt($(this).val());if(isNaN(quantity)){quantity=0;} var childItem=window.pysWooProductData[product_id]['ga'].grouped[childId];event.params.items.forEach(function(el,index,array){if(el.id==childItem.content_id){if(quantity>0){el.quantity=quantity;}else{array.splice(index,1);}}});groupValue+=childItem.price*quantity;});if(options.woo.addToCartOnButtonValueEnabled&&options.woo.addToCartOnButtonValueOption!=='global'&&event.params.hasOwnProperty('ecomm_totalvalue')){event.params.ecomm_totalvalue=groupValue;} if(groupValue==0)return;}else{event.params.items[0].quantity=qty;} if(options.woo.addToCartOnButtonValueEnabled&&options.woo.addToCartOnButtonValueOption!=='global'&&product_type!==Utils.PRODUCT_GROUPED) {if(event.params.hasOwnProperty('ecomm_totalvalue')){event.params.ecomm_totalvalue=event.params.items[0].price*qty;}} this.fireEvent(event.name,event);}}},onWooRemoveFromCartEvent:function(event){this.fireEvent(event.name,event);},onEddAddToCartOnButtonEvent:function(download_id,price_index,qty){if(!options.dynamicEvents.edd_add_to_cart_on_button_click.hasOwnProperty(this.tag())) return;var event=Utils.clone(options.dynamicEvents.edd_add_to_cart_on_button_click[this.tag()]);if(window.pysEddProductData.hasOwnProperty(download_id)){var index;if(price_index){index=download_id+'_'+price_index;}else{index=download_id;} if(window.pysEddProductData[download_id].hasOwnProperty(index)){if(window.pysEddProductData[download_id][index].hasOwnProperty('ga')){Utils.copyProperties(window.pysEddProductData[download_id][index]['ga'].params,event.params);event.params.items[0].quantity=qty;this.fireEvent(event.name,event);}}}},onEddRemoveFromCartEvent:function(event){this.fireEvent(event.name,event);},onPageScroll:function(event){this.fireEvent(event.name,event);},onTime:function(event){this.fireEvent(event.name,event);},};}(options);window.pys=window.pys||{};window.pys.Facebook=Facebook;window.pys.Analytics=Analytics;window.pys.Utils=Utils;$(document).ready(function(){if($("#pys_late_event").length>0){var events=JSON.parse($("#pys_late_event").attr("dir"));for(var key in events){var event={};event[events[key].e_id]=[events[key]];if(options.staticEvents.hasOwnProperty(key)){Object.assign(options.staticEvents[key],event);}else{options.staticEvents[key]=event;}}} var Pinterest=Utils.setupPinterestObject();var Bing=Utils.setupBingObject();if((options.woo.enabled||options.edd.enabled)&&(options.woo.enabled_save_data_to_orders||options.edd.enabled_save_data_to_orders)) {Utils.manageCookies();} else {Cookies.remove('pys_first_visit') Cookies.remove('pysTrafficSource') Cookies.remove('pys_landing_page') Cookies.remove('last_pys_landing_page') Cookies.remove('last_pysTrafficSource') Cookies.remove('pys_start_session') Cookies.remove('pys_session_limit') $.each(Utils.utmTerms,function(index,name){Cookies.remove('pys_'+name)});$.each(Utils.utmId,function(index,name){Cookies.remove('pys_'+name)}) $.each(Utils.utmTerms,function(index,name){Cookies.remove('last_pys_'+name)});$.each(Utils.utmId,function(index,name){Cookies.remove('last_pys_'+name)});} Utils.setupGdprCallbacks();if(options.dynamicEvents.hasOwnProperty("automatic_event_scroll")){var singlePageScroll=function(){var docHeight=$(document).height()-$(window).height();var isFired=false;if(options.dynamicEvents.hasOwnProperty("automatic_event_scroll")){var pixels=Object.keys(options.dynamicEvents.automatic_event_scroll);for(var i=0;i0){if(options.dynamicEvents.hasOwnProperty("automatic_event_download")){var pixels=Object.keys(options.dynamicEvents.automatic_event_download);for(var i=0;i{var form_id=$(event.target).attr('data-formid');sendFormAction($(event.target),form_id);}) $(document).on('frmFormComplete',function(event,form,response){const form_id=$(form).find('input[name="form_id"]').val();sendFormAction($(event.target),form_id);});$(document).onFirst('nfFormSubmitResponse',function(event,data){const form_id=data.response.data.form_id;sendFormAction($(event.target),form_id);});var fluentForms=$('form.frm-fluent-form');fluentForms.each(function(){var $form=$(this);$form.on('fluentform_submission_success',function(event){var $formItem=$(this);var form_id=$formItem.attr('data-form_id');sendFormAction($(event.target),form_id);});});} Utils.loadPixels();if(Utils.isCheckoutPage()){Utils.addCheckoutFields();}});var sendFormAction=function(form_target,formId){var params={form_id:formId,text:form_target.find('[type="submit"]').is('input')?form_target.find('[type="submit"]').val():form_target.find('.forminator-button-submit').text()!=''?form_target.find('.forminator-button-submit').text():form_target.find('[type="submit"]').text()};if(options.dynamicEvents.hasOwnProperty("automatic_event_form")){var pixels=Object.keys(options.dynamicEvents.automatic_event_form);for(var i=0;i{validateMLSub();});} if(first_name_field!==null){first_name_field.addEventListener('blur',(event)=>{if(first_name_field.value.length>0){validateMLSub();}});} if(last_name_field!==null){last_name_field.addEventListener('blur',(event)=>{if(last_name_field.value.length>0){validateMLSub();}});} if(signup!==null){signup.addEventListener('click',(event)=>{validateMLSub();});} function validateMLSub(){if(email!==null&&email.value.length>0){checkoutMLSub();}} function checkoutMLSub(){const accept_marketing=document.querySelector('#woo_ml_subscribe').checked;let first_name='';let last_name='';if(first_name_field!==null){first_name=first_name_field.value;} if(last_name_field!==null){last_name=last_name_field.value;} jQuery.ajax({url:woo_ml_public_post.ajax_url,type:"post",data:{action:"post_woo_ml_email_cookie",email:email.value,signup:accept_marketing,language:woo_ml_public_post.language,first_name:first_name,last_name:last_name,}})}}); jQuery(document).ready(function($){"use strict";function NectarSocial(){this.$body=$('body');this.$window=$(window);this.$wpAdminBar=$('#wpadminbar');this.usingMobileBrowser=(navigator.userAgent.match(/(Android|iPod|iPhone|iPad|BlackBerry|IEMobile|Opera Mini)/))?true:false;this.mouseEvents();this.nectarLove();if($('body').find('.nectar-social.fixed')){this.fixedStyle();}} NectarSocial.prototype.mouseEvents=function(){this.$body.on('click','#single-below-header .nectar-social a',function(){return false;});$('body.single-product .nectar-social').addClass('woo');this.$body.on('click','.facebook-share:not(.inactive)',this.facebookShare);this.$body.on('click','.nectar-social:not(".woo") .twitter-share:not(.inactive)',this.twitterShare);this.$body.on('click','.nectar-social.woo .twitter-share',this.wooTwitterShare);this.$body.on('click','.nectar-social:not(".woo") .linkedin-share:not(.inactive)',this.linkedInShare);this.$body.on('click','.nectar-social.woo .linkedin-share',this.woolinkedInShare);this.$body.on('click','.nectar-social:not(".woo") .pinterest-share:not(.inactive)',this.pinterestShare);this.$body.on('click','.nectar-social.woo .pinterest-share',this.wooPinterestShare);this.$body.on('click','.nectar-social.fixed > a',function(){return false;});if(!this.usingMobileBrowser){var $socialTimeout;this.$body.on('mouseenter','.nectar-social.hover .share-btn',function(){clearTimeout($socialTimeout);if($(this).parents('[id*="-meta"]').length>0){$(this).parents('[id*="-meta"]').addClass('social-hovered');} if($(this).parents('#single-below-header').length>0){$(this).parents('#single-below-header').addClass('social-hovered');} $(this).parent().addClass('visible');});this.$body.on('mouseleave','.nectar-social.hover',function(){var $that=$(this);$socialTimeout=setTimeout(function(){$that.removeClass('visible');if($that.parents('[id*="-meta"]').length>0){$that.parents('[id*="-meta"]').removeClass('social-hovered');} if($that.parents('#single-below-header').length>0){$that.parents('#single-below-header').removeClass('social-hovered');}},200);});} else{this.$body.on('click','.nectar-social.hover .share-btn',function(){if($(this).parents('[id*="-meta"]').length>0){$(this).parents('[id*="-meta"]').addClass('social-hovered');} if($(this).parents('#single-below-header').length>0){$(this).parents('#single-below-header').addClass('social-hovered');} $(this).parent().addClass('visible');return false;});}};NectarSocial.prototype.facebookShare=function(){var windowLocation=window.location.href.replace(window.location.hash,'');window.open('https://www.facebook.com/sharer/sharer.php?u='+windowLocation,"facebookWindow","height=380,width=660,resizable=0,toolbar=0,menubar=0,status=0,location=0,scrollbars=0");return false;};NectarSocial.prototype.facebookShare=function(){var windowLocation=window.location.href.replace(window.location.hash,'');window.open('https://www.facebook.com/sharer/sharer.php?u='+windowLocation,"facebookWindow","height=380,width=660,resizable=0,toolbar=0,menubar=0,status=0,location=0,scrollbars=0");return false;};NectarSocial.prototype.twitterShare=function(){var windowLocation=window.location.href.replace(window.location.hash,'');var $pageTitle;if($(".section-title h1").length>0){$pageTitle=encodeURIComponent($(".section-title h1").text());}else{$pageTitle=encodeURIComponent($(document).find("title").text());} window.open('http://twitter.com/intent/tweet?text='+$pageTitle+' '+windowLocation,"twitterWindow","height=380,width=660,resizable=0,toolbar=0,menubar=0,status=0,location=0,scrollbars=0");return false;};NectarSocial.prototype.wooTwitterShare=function(){var windowLocation=window.location.href.replace(window.location.hash,'');window.open('http://twitter.com/intent/tweet?text='+$("h1.product_title").text()+' '+windowLocation,"twitterWindow","height=380,width=660,resizable=0,toolbar=0,menubar=0,status=0,location=0,scrollbars=0");return false;};NectarSocial.prototype.linkedInShare=function(){var windowLocation=window.location.href.replace(window.location.hash,'');var $pageTitle;if($(".section-title h1").length>0){$pageTitle=encodeURIComponent($(".section-title h1").text());}else{$pageTitle=encodeURIComponent($(document).find("title").text());} window.open('http://www.linkedin.com/shareArticle?mini=true&url='+windowLocation+'&title='+$pageTitle+'',"linkedInWindow","height=480,width=660,resizable=0,toolbar=0,menubar=0,status=0,location=0,scrollbars=0");return false;};NectarSocial.prototype.woolinkedInShare=function(){var windowLocation=window.location.href.replace(window.location.hash,'');window.open('http://www.linkedin.com/shareArticle?mini=true&url='+windowLocation+'&title='+$("h1.product_title").text(),"twitterWindow","height=380,width=660,resizable=0,toolbar=0,menubar=0,status=0,location=0,scrollbars=0");return false;};NectarSocial.prototype.pinterestShare=function(){var windowLocation=window.location.href.replace(window.location.hash,'');var $sharingImg=($('.single-portfolio').length>0&&$('div[data-featured-img]').attr('data-featured-img')!='empty')?$('div[data-featured-img]').attr('data-featured-img'):$('#ajax-content-wrap img').first().attr('src');var $pageTitle;if($(".section-title h1").length>0){$pageTitle=encodeURIComponent($(".section-title h1").text());}else{$pageTitle=encodeURIComponent($(document).find("title").text());} window.open('http://pinterest.com/pin/create/button/?url='+windowLocation+'&media='+$sharingImg+'&description='+$pageTitle,"pinterestWindow","height=640,width=660,resizable=0,toolbar=0,menubar=0,status=0,location=0,scrollbars=0");return false;};NectarSocial.prototype.wooPinterestShare=function(){var $imgToShare=($('img.attachment-shop_single').length>0)?$('img.attachment-shop_single').first().attr('src'):$('.single-product-main-image img').first().attr('src');var windowLocation=window.location.href.replace(window.location.hash,'');window.open('http://pinterest.com/pin/create/button/?url='+windowLocation+'&media='+$imgToShare+'&description='+$('h1.product_title').text(),"pinterestWindow","height=640,width=660,resizable=0,toolbar=0,menubar=0,status=0,location=0,scrollbars=0");return false;};NectarSocial.prototype.nectarLove=function(){this.$body.on('click','.nectar-love',function(){var $loveLink=$(this),$id=$(this).attr('id'),$that=$(this);if($loveLink.hasClass('loved')||$(this).hasClass('inactive')){return false;} var $dataToPass={action:'nectar-love',loves_id:$id,love_nonce:window.nectarLove.loveNonce};$.post(window.nectarLove.ajaxurl,$dataToPass,function(data){$loveLink.find('.nectar-love-count').html(data);$loveLink.addClass('loved').attr('title','You already love this!');$that.find('.icon-salient-heart-2').addClass('loved');});$(this).addClass('inactive');return false;});};NectarSocial.prototype.fixedStyle=function(){$('.wpb_wrapper .nectar-social.fixed').each(function(i){if(i!==0){$(this).remove();}else{var $fixedMarkup=$(this).clone();$('body').append($fixedMarkup);$(this).remove();}});function showFixedSharing(){if($(window).scrollTop()>150){$('.nectar-social.fixed').addClass('visible');$(window).off('scroll',showFixedSharing);$(window).on('scroll',hideFixedSharing);}} function hideFixedSharing(){if($(window).scrollTop()<150){$('.nectar-social.fixed').removeClass('visible');$(window).off('scroll',hideFixedSharing);$(window).on('scroll',showFixedSharing);}} if($(window).width()<1000&&$('.nectar-social.fixed').length>0){if($(window).scrollTop()>150){$(window).on('scroll',hideFixedSharing);}else{$(window).on('scroll',showFixedSharing);}} $(window).on('smartresize',function(){if($(window).width()>1000){$('.nectar-social.fixed').addClass('visible');}else if($(window).scrollTop()<150){$(window).off('scroll',hideFixedSharing);$(window).on('scroll',showFixedSharing);$('.nectar-social.fixed').removeClass('visible');}else{$(window).off('scroll',showFixedSharing);$(window).on('scroll',hideFixedSharing);}});};var nectarSocialInit=new NectarSocial();window.NectarSocial=NectarSocial;}); "function"!==typeof Object.create&&(Object.create=function(f){function g(){}g.prototype=f;return new g}); (function(f,g,k){var l={init:function(a,b){this.$elem=f(b);this.options=f.extend({},f.fn.owlCarousel.options,this.$elem.data(),a);this.userOptions=a;this.loadContent()},loadContent:function(){function a(a){var d,e="";if("function"===typeof b.options.jsonSuccess)b.options.jsonSuccess.apply(this,[a]);else{for(d in a.owl)a.owl.hasOwnProperty(d)&&(e+=a.owl[d].item);b.$elem.html(e)}b.logIn()}var b=this,e;"function"===typeof b.options.beforeInit&&b.options.beforeInit.apply(this,[b.$elem]);"string"===typeof b.options.jsonPath? (e=b.options.jsonPath,f.getJSON(e,a)):b.logIn()},logIn:function(){this.$elem.data("owl-originalStyles",this.$elem.attr("style"));this.$elem.data("owl-originalClasses",this.$elem.attr("class"));this.$elem.css({opacity:0});this.orignalItems=this.options.items;this.checkBrowser();this.wrapperWidth=0;this.checkVisible=null;this.setVars()},setVars:function(){if(0===this.$elem.children().length)return!1;this.baseClass();this.eventTypes();this.$userItems=this.$elem.children();this.itemsAmount=this.$userItems.length; this.wrapItems();this.$owlItems=this.$elem.find(".owl-item");this.$owlWrapper=this.$elem.find(".owl-wrapper");this.playDirection="next";this.prevItem=0;this.prevArr=[0];this.currentItem=0;this.customEvents();this.onStartup()},onStartup:function(){this.updateItems();this.calculateAll();this.buildControls();this.updateControls();this.response();this.moveEvents();this.stopOnHover();this.owlStatus();!1!==this.options.transitionStyle&&this.transitionTypes(this.options.transitionStyle);!0===this.options.autoPlay&& (this.options.autoPlay=5E3);this.play();this.$elem.find(".owl-wrapper").css("display","block");this.$elem.is(":visible")?this.$elem.css("opacity",1):this.watchVisibility();this.onstartup=!1;this.eachMoveUpdate();"function"===typeof this.options.afterInit&&this.options.afterInit.apply(this,[this.$elem])},eachMoveUpdate:function(){!0===this.options.lazyLoad&&this.lazyLoad();!0===this.options.autoHeight&&this.autoHeight();this.onVisibleItems();"function"===typeof this.options.afterAction&&this.options.afterAction.apply(this, [this.$elem])},updateVars:function(){"function"===typeof this.options.beforeUpdate&&this.options.beforeUpdate.apply(this,[this.$elem]);this.watchVisibility();this.updateItems();this.calculateAll();this.updatePosition();this.updateControls();this.eachMoveUpdate();"function"===typeof this.options.afterUpdate&&this.options.afterUpdate.apply(this,[this.$elem])},reload:function(){var a=this;g.setTimeout(function(){a.updateVars()},0)},watchVisibility:function(){var a=this;if(!1===a.$elem.is(":visible"))a.$elem.css({opacity:0}), g.clearInterval(a.autoPlayInterval),g.clearInterval(a.checkVisible);else return!1;a.checkVisible=g.setInterval(function(){a.$elem.is(":visible")&&(a.reload(),a.$elem.animate({opacity:1},200),g.clearInterval(a.checkVisible))},500)},wrapItems:function(){this.$userItems.wrapAll('
').wrap('
');this.$elem.find(".owl-wrapper").wrap('
');this.wrapperOuter=this.$elem.find(".owl-wrapper-outer");this.$elem.css("display","block")}, baseClass:function(){var a=this.$elem.hasClass(this.options.baseClass),b=this.$elem.hasClass(this.options.theme);a||this.$elem.addClass(this.options.baseClass);b||this.$elem.addClass(this.options.theme)},updateItems:function(){var a,b;if(!1===this.options.responsive)return!1;if(!0===this.options.singleItem)return this.options.items=this.orignalItems=1,this.options.itemsCustom=!1,this.options.itemsDesktop=!1,this.options.itemsDesktopSmall=!1,this.options.itemsTablet=!1,this.options.itemsTabletSmall= !1,this.options.itemsMobile=!1;a=f(this.options.responsiveBaseWidth).width();a>(this.options.itemsDesktop[0]||this.orignalItems)&&(this.options.items=this.orignalItems);if(!1!==this.options.itemsCustom)for(this.options.itemsCustom.sort(function(a,b){return a[0]-b[0]}),b=0;bthis.itemsAmount&& !0===this.options.itemsScaleUp&&(this.options.items=this.itemsAmount)},response:function(){var a=this,b,e;if(!0!==a.options.responsive)return!1;e=f(g).width();a.resizer=function(){f(g).width()!==e&&(!1!==a.options.autoPlay&&g.clearInterval(a.autoPlayInterval),g.clearTimeout(b),b=g.setTimeout(function(){e=f(g).width();a.updateVars()},a.options.responsiveRefreshRate))};f(g).resize(a.resizer)},updatePosition:function(){this.jumpTo(this.currentItem);!1!==this.options.autoPlay&&this.checkAp()},appendItemsSizes:function(){var a= this,b=0,e=a.itemsAmount-a.options.items;a.$owlItems.each(function(c){var d=f(this);d.css({width:a.itemWidth}).data("owl-item",Number(c));if(0===c%a.options.items||c===e)c>e||(b+=1);d.data("owl-roundPages",b)})},appendWrapperSizes:function(){this.$owlWrapper.css({width:this.$owlItems.length*this.itemWidth*2,left:0});this.appendItemsSizes()},calculateAll:function(){this.calculateWidth();this.appendWrapperSizes();this.loops();this.max()},calculateWidth:function(){this.itemWidth=Math.round(this.$elem.width()/ this.options.items)},max:function(){var a=-1*(this.itemsAmount*this.itemWidth-this.options.items*this.itemWidth);this.options.items>this.itemsAmount?this.maximumPixels=a=this.maximumItem=0:(this.maximumItem=this.itemsAmount-this.options.items,this.maximumPixels=a);return a},min:function(){return 0},loops:function(){var a=0,b=0,e,c;this.positionsInArray=[0];this.pagesInArray=[];for(e=0;e').toggleClass("clickable",!this.browser.isTouch).appendTo(this.$elem);!0===this.options.pagination&&this.buildPagination();!0===this.options.navigation&&this.buildButtons()},buildButtons:function(){var a=this,b=f('
');a.owlControls.append(b);a.buttonPrev= f("
",{"class":"owl-prev",html:a.options.navigationText[0]||""});a.buttonNext=f("
",{"class":"owl-next",html:a.options.navigationText[1]||""});b.append(a.buttonPrev).append(a.buttonNext);b.on("touchstart.owlControls mousedown.owlControls",'div[class^="owl"]',function(a){a.preventDefault()});b.on("touchend.owlControls mouseup.owlControls",'div[class^="owl"]',function(b){b.preventDefault();f(this).hasClass("owl-next")?a.next():a.prev()})},buildPagination:function(){var a=this;a.paginationWrapper= f('
');a.owlControls.append(a.paginationWrapper);a.paginationWrapper.on("touchend.owlControls mouseup.owlControls",".owl-page",function(b){b.preventDefault();Number(f(this).data("owl-page"))!==a.currentItem&&a.goTo(Number(f(this).data("owl-page")),!0)})},updatePagination:function(){var a,b,e,c,d,g;if(!1===this.options.pagination)return!1;this.paginationWrapper.html("");a=0;b=this.itemsAmount-this.itemsAmount%this.options.items;for(c=0;c",{"class":"owl-page"}),g=f("",{text:!0===this.options.paginationNumbers?a:"","class":!0===this.options.paginationNumbers?"owl-numbers":""}),d.append(g),d.data("owl-page",b===c?e:c),d.data("owl-roundPages",a),this.paginationWrapper.append(d));this.checkPagination()},checkPagination:function(){var a=this;if(!1===a.options.pagination)return!1;a.paginationWrapper.find(".owl-page").each(function(){f(this).data("owl-roundPages")=== f(a.$owlItems[a.currentItem]).data("owl-roundPages")&&(a.paginationWrapper.find(".owl-page").removeClass("active"),f(this).addClass("active"))})},checkNavigation:function(){if(!1===this.options.navigation)return!1;!1===this.options.rewindNav&&(0===this.currentItem&&0===this.maximumItem?(this.buttonPrev.addClass("disabled"),this.buttonNext.addClass("disabled")):0===this.currentItem&&0!==this.maximumItem?(this.buttonPrev.addClass("disabled"),this.buttonNext.removeClass("disabled")):this.currentItem=== this.maximumItem?(this.buttonPrev.removeClass("disabled"),this.buttonNext.addClass("disabled")):0!==this.currentItem&&this.currentItem!==this.maximumItem&&(this.buttonPrev.removeClass("disabled"),this.buttonNext.removeClass("disabled")))},updateControls:function(){this.updatePagination();this.checkNavigation();this.owlControls&&(this.options.items>=this.itemsAmount?this.owlControls.hide():this.owlControls.show())},destroyControls:function(){this.owlControls&&this.owlControls.remove()},next:function(a){if(this.isTransition)return!1; this.currentItem+=!0===this.options.scrollPerPage?this.options.items:1;if(this.currentItem>this.maximumItem+(!0===this.options.scrollPerPage?this.options.items-1:0))if(!0===this.options.rewindNav)this.currentItem=0,a="rewind";else return this.currentItem=this.maximumItem,!1;this.goTo(this.currentItem,a)},prev:function(a){if(this.isTransition)return!1;this.currentItem=!0===this.options.scrollPerPage&&0this.currentItem)if(!0===this.options.rewindNav)this.currentItem=this.maximumItem,a="rewind";else return this.currentItem=0,!1;this.goTo(this.currentItem,a)},goTo:function(a,b,e){var c=this;if(c.isTransition)return!1;"function"===typeof c.options.beforeMove&&c.options.beforeMove.apply(this,[c.$elem]);a>=c.maximumItem?a=c.maximumItem:0>=a&&(a=0);c.currentItem=c.owl.currentItem=a;if(!1!==c.options.transitionStyle&&"drag"!==e&&1===c.options.items&&!0===c.browser.support3d)return c.swapSpeed(0), !0===c.browser.support3d?c.transition3d(c.positionsInArray[a]):c.css2slide(c.positionsInArray[a],1),c.afterGo(),c.singleItemTransition(),!1;a=c.positionsInArray[a];!0===c.browser.support3d?(c.isCss3Finish=!1,!0===b?(c.swapSpeed("paginationSpeed"),g.setTimeout(function(){c.isCss3Finish=!0},c.options.paginationSpeed)):"rewind"===b?(c.swapSpeed(c.options.rewindSpeed),g.setTimeout(function(){c.isCss3Finish=!0},c.options.rewindSpeed)):(c.swapSpeed("slideSpeed"),g.setTimeout(function(){c.isCss3Finish=!0}, c.options.slideSpeed)),c.transition3d(a)):!0===b?c.css2slide(a,c.options.paginationSpeed):"rewind"===b?c.css2slide(a,c.options.rewindSpeed):c.css2slide(a,c.options.slideSpeed);c.afterGo()},jumpTo:function(a){"function"===typeof this.options.beforeMove&&this.options.beforeMove.apply(this,[this.$elem]);a>=this.maximumItem||-1===a?a=this.maximumItem:0>=a&&(a=0);this.swapSpeed(0);!0===this.browser.support3d?this.transition3d(this.positionsInArray[a]):this.css2slide(this.positionsInArray[a],1);this.currentItem= this.owl.currentItem=a;this.afterGo()},afterGo:function(){this.prevArr.push(this.currentItem);this.prevItem=this.owl.prevItem=this.prevArr[this.prevArr.length-2];this.prevArr.shift(0);this.prevItem!==this.currentItem&&(this.checkPagination(),this.checkNavigation(),this.eachMoveUpdate(),!1!==this.options.autoPlay&&this.checkAp());"function"===typeof this.options.afterMove&&this.prevItem!==this.currentItem&&this.options.afterMove.apply(this,[this.$elem])},stop:function(){this.apStatus="stop";g.clearInterval(this.autoPlayInterval)}, checkAp:function(){"stop"!==this.apStatus&&this.play()},play:function(){var a=this;a.apStatus="play";if(!1===a.options.autoPlay)return!1;g.clearInterval(a.autoPlayInterval);a.autoPlayInterval=g.setInterval(function(){a.next(!0)},a.options.autoPlay)},swapSpeed:function(a){"slideSpeed"===a?this.$owlWrapper.css(this.addCssSpeed(this.options.slideSpeed)):"paginationSpeed"===a?this.$owlWrapper.css(this.addCssSpeed(this.options.paginationSpeed)):"string"!==typeof a&&this.$owlWrapper.css(this.addCssSpeed(a))}, addCssSpeed:function(a){return{"-webkit-transition":"all "+a+"ms ease","-moz-transition":"all "+a+"ms ease","-o-transition":"all "+a+"ms ease",transition:"all "+a+"ms ease"}},removeTransition:function(){return{"-webkit-transition":"","-moz-transition":"","-o-transition":"",transition:""}},doTranslate:function(a){return{"-webkit-transform":"translate3d("+a+"px, 0px, 0px)","-moz-transform":"translate3d("+a+"px, 0px, 0px)","-o-transform":"translate3d("+a+"px, 0px, 0px)","-ms-transform":"translate3d("+ a+"px, 0px, 0px)",transform:"translate3d("+a+"px, 0px,0px)"}},transition3d:function(a){this.$owlWrapper.css(this.doTranslate(a))},css2move:function(a){this.$owlWrapper.css({left:a})},css2slide:function(a,b){var e=this;e.isCssFinish=!1;e.$owlWrapper.stop(!0,!0).animate({left:a},{duration:b||e.options.slideSpeed,complete:function(){e.isCssFinish=!0}})},checkBrowser:function(){var a=k.createElement("div");a.style.cssText=" -moz-transform:translate3d(0px, 0px, 0px); -ms-transform:translate3d(0px, 0px, 0px); -o-transform:translate3d(0px, 0px, 0px); -webkit-transform:translate3d(0px, 0px, 0px); transform:translate3d(0px, 0px, 0px)"; a=a.style.cssText.match(/translate3d\(0px, 0px, 0px\)/g);this.browser={support3d:null!==a&&1===a.length,isTouch:"ontouchstart"in g||g.navigator.msMaxTouchPoints}},moveEvents:function(){if(!1!==this.options.mouseDrag||!1!==this.options.touchDrag)this.gestures(),this.disabledEvents()},eventTypes:function(){var a=["s","e","x"];this.ev_types={};!0===this.options.mouseDrag&&!0===this.options.touchDrag?a=["touchstart.owl mousedown.owl","touchmove.owl mousemove.owl","touchend.owl touchcancel.owl mouseup.owl"]: !1===this.options.mouseDrag&&!0===this.options.touchDrag?a=["touchstart.owl","touchmove.owl","touchend.owl touchcancel.owl"]:!0===this.options.mouseDrag&&!1===this.options.touchDrag&&(a=["mousedown.owl","mousemove.owl","mouseup.owl"]);this.ev_types.start=a[0];this.ev_types.move=a[1];this.ev_types.end=a[2]},disabledEvents:function(){this.$elem.on("dragstart.owl",function(a){a.preventDefault()});this.$elem.on("mousedown.disableTextSelect",function(a){return f(a.target).is("input, textarea, select, option")})}, gestures:function(){function a(a){if(void 0!==a.touches)return{x:a.touches[0].pageX,y:a.touches[0].pageY};if(void 0===a.touches){if(void 0!==a.pageX)return{x:a.pageX,y:a.pageY};if(void 0===a.pageX)return{x:a.clientX,y:a.clientY}}}function b(a){"on"===a?(f(k).on(d.ev_types.move,e),f(k).on(d.ev_types.end,c)):"off"===a&&(f(k).off(d.ev_types.move),f(k).off(d.ev_types.end))}function e(b){b=b.originalEvent||b||g.event;d.newPosX=a(b).x-h.offsetX;d.newPosY=a(b).y-h.offsetY;d.newRelativeX=d.newPosX-h.relativePos; "function"===typeof d.options.startDragging&&!0!==h.dragging&&0!==d.newRelativeX&&(h.dragging=!0,d.options.startDragging.apply(d,[d.$elem]));(8d.newRelativeX)&&!0===d.browser.isTouch&&(void 0!==b.preventDefault?b.preventDefault():b.returnValue=!1,h.sliding=!0);(10d.newPosY)&&!1===h.sliding&&f(k).off("touchmove.owl");d.newPosX=Math.max(Math.min(d.newPosX,d.newRelativeX/5),d.maximumPixels+d.newRelativeX/5);!0===d.browser.support3d?d.transition3d(d.newPosX):d.css2move(d.newPosX)} function c(a){a=a.originalEvent||a||g.event;var c;a.target=a.target||a.srcElement;h.dragging=!1;!0!==d.browser.isTouch&&d.$owlWrapper.removeClass("grabbing");d.dragDirection=0>d.newRelativeX?d.owl.dragDirection="left":d.owl.dragDirection="right";0!==d.newRelativeX&&(c=d.getNewPosition(),d.goTo(c,!1,"drag"),h.targetElement===a.target&&!0!==d.browser.isTouch&&(f(a.target).on("click.disable",function(a){a.stopImmediatePropagation();a.stopPropagation();a.preventDefault();f(a.target).off("click.disable")}), a=f._data(a.target,"events").click,c=a.pop(),a.splice(0,0,c)));b("off")}var d=this,h={offsetX:0,offsetY:0,baseElWidth:0,relativePos:0,position:null,minSwipe:null,maxSwipe:null,sliding:null,dargging:null,targetElement:null};d.isCssFinish=!0;d.$elem.on(d.ev_types.start,".owl-wrapper",function(c){c=c.originalEvent||c||g.event;var e;if(3===c.which)return!1;if(!(d.itemsAmount<=d.options.items)){if(!1===d.isCssFinish&&!d.options.dragBeforeAnimFinish||!1===d.isCss3Finish&&!d.options.dragBeforeAnimFinish)return!1; !1!==d.options.autoPlay&&g.clearInterval(d.autoPlayInterval);!0===d.browser.isTouch||d.$owlWrapper.hasClass("grabbing")||d.$owlWrapper.addClass("grabbing");d.newPosX=0;d.newRelativeX=0;f(this).css(d.removeTransition());e=f(this).position();h.relativePos=e.left;h.offsetX=a(c).x-e.left;h.offsetY=a(c).y-e.top;b("on");h.sliding=!1;h.targetElement=c.target||c.srcElement}})},getNewPosition:function(){var a=this.closestItem();a>this.maximumItem?a=this.currentItem=this.maximumItem:0<=this.newPosX&&(this.currentItem= a=0);return a},closestItem:function(){var a=this,b=!0===a.options.scrollPerPage?a.pagesInArray:a.positionsInArray,e=a.newPosX,c=null;f.each(b,function(d,g){e-a.itemWidth/20>b[d+1]&&e-a.itemWidth/20(b[d+1]||b[d]-a.itemWidth)&&"right"===a.moveDirection()&&(!0===a.options.scrollPerPage?(c=b[d+1]||b[b.length-1],a.currentItem=f.inArray(c,a.positionsInArray)): (c=b[d+1],a.currentItem=d+1))});return a.currentItem},moveDirection:function(){var a;0>this.newRelativeX?(a="right",this.playDirection="next"):(a="left",this.playDirection="prev");return a},customEvents:function(){var a=this;a.$elem.on("owl.next",function(){a.next()});a.$elem.on("owl.prev",function(){a.prev()});a.$elem.on("owl.play",function(b,e){a.options.autoPlay=e;a.play();a.hoverStatus="play"});a.$elem.on("owl.stop",function(){a.stop();a.hoverStatus="stop"});a.$elem.on("owl.goTo",function(b,e){a.goTo(e)}); a.$elem.on("owl.jumpTo",function(b,e){a.jumpTo(e)})},stopOnHover:function(){var a=this;!0===a.options.stopOnHover&&!0!==a.browser.isTouch&&!1!==a.options.autoPlay&&(a.$elem.on("mouseover",function(){a.stop()}),a.$elem.on("mouseout",function(){"stop"!==a.hoverStatus&&a.play()}))},lazyLoad:function(){var a,b,e,c,d;if(!1===this.options.lazyLoad)return!1;for(a=0;a=this.currentItem:!0)&&e=f?g.setTimeout(c,100):e()}var d=this,f=0,k;"DIV"===b.prop("tagName")?(b.css("background-image","url("+b.data("src")+")"),k=!0):b[0].src=b.data("src");c()},autoHeight:function(){function a(){var a=f(e.$owlItems[e.currentItem]).height();e.wrapperOuter.css("height",a+"px");e.wrapperOuter.hasClass("autoHeight")||g.setTimeout(function(){e.wrapperOuter.addClass("autoHeight")},0)}function b(){d+=1;e.completeImg(c.get(0))?a():100>=d?g.setTimeout(b, 100):e.wrapperOuter.css("height","")}var e=this,c=f(e.$owlItems[e.currentItem]).find("img"),d;void 0!==c.get(0)?(d=0,b()):a()},completeImg:function(a){return!a.complete||"undefined"!==typeof a.naturalWidth&&0===a.naturalWidth?!1:!0},onVisibleItems:function(){var a;!0===this.options.addClassActive&&this.$owlItems.removeClass("active");this.visibleItems=[];for(a=this.currentItem;a=this.$userItems.length||-1===e?this.$userItems.eq(-1).after(a):this.$userItems.eq(e).before(a);this.setVars()},removeItem:function(a){if(0===this.$elem.children().length)return!1;a=void 0===a||-1===a?-1:a;this.unWrap();this.$userItems.eq(a).remove();this.setVars()}};f.fn.owlCarousel=function(a){return this.each(function(){if(!0=== f(this).data("owl-init"))return!1;f(this).data("owl-init",!0);var b=Object.create(l);b.init(a,this);f.data(this,"owlCarousel",b)})};f.fn.owlCarousel.options={items:5,itemsCustom:!1,itemsDesktop:[1199,4],itemsDesktopSmall:[979,3],itemsTablet:[768,2],itemsTabletSmall:!1,itemsMobile:[479,1],singleItem:!1,itemsScaleUp:!1,slideSpeed:200,paginationSpeed:800,rewindSpeed:1E3,autoPlay:!1,stopOnHover:!1,navigation:!1,navigationText:["prev","next"],rewindNav:!0,scrollPerPage:!1,pagination:!0,paginationNumbers:!1, responsive:!0,responsiveRefreshRate:200,responsiveBaseWidth:g,baseClass:"owl-carousel",theme:"owl-theme",lazyLoad:!1,lazyFollow:!0,lazyEffect:"fade",autoHeight:!1,jsonPath:!1,jsonSuccess:!1,dragBeforeAnimFinish:!0,mouseDrag:!0,touchDrag:!0,addClassActive:!1,transitionStyle:!1,beforeUpdate:!1,afterUpdate:!1,beforeInit:!1,afterInit:!1,beforeMove:!1,afterMove:!1,afterAction:!1,startDragging:!1,afterLazyLoad:!1}})(jQuery,window,document); /*! * jQuery blockUI plugin * Version 2.70.0-2014.11.23 * Requires jQuery v1.7 or later * * Examples at: http://malsup.com/jquery/block/ * Copyright (c) 2007-2013 M. Alsup * Dual licensed under the MIT and GPL licenses: * http://www.opensource.org/licenses/mit-license.php * http://www.gnu.org/licenses/gpl.html * * Thanks to Amir-Hossein Sobhi for some excellent contributions! */ !function(){"use strict";function e(p){p.fn._fadeIn=p.fn.fadeIn;var b=p.noop||function(){},h=/MSIE/.test(navigator.userAgent),k=/MSIE 6.0/.test(navigator.userAgent)&&!/MSIE 8.0/.test(navigator.userAgent),y=(document.documentMode,"function"==typeof document.createElement("div").style.setExpression&&document.createElement("div").style.setExpression),m=(p.blockUI=function(e){o(window,e)},p.unblockUI=function(e){v(window,e)},p.growlUI=function(e,t,o,n){var i=p('
'),s=(e&&i.append("

"+e+"

"),t&&i.append("

"+t+"

"),o===undefined&&(o=3e3),function(e){p.blockUI({message:i,fadeIn:"undefined"!=typeof(e=e||{}).fadeIn?e.fadeIn:700,fadeOut:"undefined"!=typeof e.fadeOut?e.fadeOut:1e3,timeout:"undefined"!=typeof e.timeout?e.timeout:o,centerY:!1,showOverlay:!1,onUnblock:n,css:p.blockUI.defaults.growlCSS})});s(),i.css("opacity");i.on("mouseover",function(){s({fadeIn:0,timeout:3e4});var e=p(".blockMsg");e.stop(),e.fadeTo(300,1)}).on("mouseout",function(){p(".blockMsg").fadeOut(1e3)})},p.fn.block=function(e){if(this[0]===window)return p.blockUI(e),this;var t=p.extend({},p.blockUI.defaults,e||{});return this.each(function(){var e=p(this);t.ignoreIfBlocked&&e.data("blockUI.isBlocked")||e.unblock({fadeOut:0})}),this.each(function(){"static"==p.css(this,"position")&&(this.style.position="relative",p(this).data("blockUI.static",!0)),this.style.zoom=1,o(this,e)})},p.fn.unblock=function(e){return this[0]===window?(p.unblockUI(e),this):this.each(function(){v(this,e)})},p.blockUI.version=2.7,p.blockUI.defaults={message:"

Please wait...

",title:null,draggable:!0,theme:!1,css:{padding:0,margin:0,width:"30%",top:"40%",left:"35%",textAlign:"center",color:"#000",border:"3px solid #aaa",backgroundColor:"#fff",cursor:"wait"},themedCSS:{width:"30%",top:"40%",left:"35%"},overlayCSS:{backgroundColor:"#000",opacity:.6,cursor:"wait"},cursorReset:"default",growlCSS:{width:"350px",top:"10px",left:"",right:"10px",border:"none",padding:"5px",opacity:.6,cursor:"default",color:"#fff",backgroundColor:"#000","-webkit-border-radius":"10px","-moz-border-radius":"10px","border-radius":"10px"},iframeSrc:/^https/i.test(window.location.href||"")?"javascript:false":"about:blank",forceIframe:!1,baseZ:1e3,centerX:!0,centerY:!0,allowBodyStretch:!0,bindEvents:!0,constrainTabKey:!0,fadeIn:200,fadeOut:400,timeout:0,showOverlay:!0,focusInput:!0,focusableElements:":input:enabled:visible",onBlock:null,onUnblock:null,onOverlayClick:null,quirksmodeOffsetHack:4,blockMsgClass:"blockMsg",ignoreIfBlocked:!1},null),g=[];function o(e,o){var n=e==window,t=o&&o.message!==undefined?o.message:undefined;if(!(o=p.extend({},p.blockUI.defaults,o||{})).ignoreIfBlocked||!p(e).data("blockUI.isBlocked")){o.overlayCSS=p.extend({},p.blockUI.defaults.overlayCSS,o.overlayCSS||{}),f=p.extend({},p.blockUI.defaults.css,o.css||{}),o.onOverlayClick&&(o.overlayCSS.cursor="pointer"),u=p.extend({},p.blockUI.defaults.themedCSS,o.themedCSS||{}),t=t===undefined?o.message:t,n&&m&&v(window,{fadeOut:0}),t&&"string"!=typeof t&&(t.parentNode||t.jquery)&&(l=t.jquery?t[0]:t,d={},p(e).data("blockUI.history",d),d.el=l,d.parent=l.parentNode,d.display=l.style.display,d.position=l.style.position,d.parent&&d.parent.removeChild(l)),p(e).data("blockUI.onUnblock",o.onUnblock);var i,s,l=o.baseZ,d=h||o.forceIframe?p(''):p(''),a=o.theme?p(''):p(''),c=(o.theme&&n?(c=''):o.theme?(c=''):c=n?'':'',l=p(c),t&&(o.theme?(l.css(u),l.addClass("ui-widget-content")):l.css(f)),o.theme||a.css(o.overlayCSS),a.css("position",n?"fixed":"absolute"),(h||o.forceIframe)&&d.css("opacity",0),[d,a,l]),r=p(n?"body":e),u=(p.each(c,function(){this.appendTo(r)}),o.theme&&o.draggable&&p.fn.draggable&&l.draggable({handle:".ui-dialog-titlebar",cancel:"li"}),y&&(!p.support.boxModel||0 .blockUI"):s.find(">.blockUI"),t.cursorReset&&(1'),s(".woocommerce form input").filter(":password").parent("span").addClass("password-input"),s(".password-input").append(''),s(".show-password-input").on("click",function(){s(this).hasClass("display-password")?s(this).removeClass("display-password"):s(this).addClass("display-password"),s(this).hasClass("display-password")?s(this).siblings(['input[type="password"]']).prop("type","text"):s(this).siblings('input[type="text"]').prop("type","password")})}); jQuery(function(r){if("undefined"==typeof wc_cart_fragments_params)return!1;var t=!0,o=wc_cart_fragments_params.cart_hash_key;try{t="sessionStorage"in window&&null!==window.sessionStorage,window.sessionStorage.setItem("wc","test"),window.sessionStorage.removeItem("wc"),window.localStorage.setItem("wc","test"),window.localStorage.removeItem("wc")}catch(f){t=!1}function a(){t&&sessionStorage.setItem("wc_cart_created",(new Date).getTime())}function s(e){t&&(localStorage.setItem(o,e),sessionStorage.setItem(o,e))}var e={url:wc_cart_fragments_params.wc_ajax_url.toString().replace("%%endpoint%%","get_refreshed_fragments"),type:"POST",data:{time:(new Date).getTime()},timeout:wc_cart_fragments_params.request_timeout,success:function(e){e&&e.fragments&&(r.each(e.fragments,function(e,t){r(e).replaceWith(t)}),t&&(sessionStorage.setItem(wc_cart_fragments_params.fragment_name,JSON.stringify(e.fragments)),s(e.cart_hash),e.cart_hash&&a()),r(document.body).trigger("wc_fragments_refreshed"))},error:function(){r(document.body).trigger("wc_fragments_ajax_error")}};function n(){r.ajax(e)}if(t){var i=null;r(document.body).on("wc_fragment_refresh updated_wc_div",function(){n()}),r(document.body).on("added_to_cart removed_from_cart",function(e,t,r){var n=sessionStorage.getItem(o);null!==n&&n!==undefined&&""!==n||a(),sessionStorage.setItem(wc_cart_fragments_params.fragment_name,JSON.stringify(t)),s(r)}),r(document.body).on("wc_fragments_refreshed",function(){clearTimeout(i),i=setTimeout(n,864e5)}),r(window).on("storage onstorage",function(e){o===e.originalEvent.key&&localStorage.getItem(o)!==sessionStorage.getItem(o)&&n()}),r(window).on("pageshow",function(e){e.originalEvent.persisted&&(r(".widget_shopping_cart_content").empty(),r(document.body).trigger("wc_fragment_refresh"))});try{var c=JSON.parse(sessionStorage.getItem(wc_cart_fragments_params.fragment_name)),_=sessionStorage.getItem(o),g=Cookies.get("woocommerce_cart_hash"),m=sessionStorage.getItem("wc_cart_created");if(null!==_&&_!==undefined&&""!==_||(_=""),null!==g&&g!==undefined&&""!==g||(g=""),_&&(null===m||m===undefined||""===m))throw"No cart_created";if(m){var d=+m+864e5,w=(new Date).getTime();if(d1?c:d}var f=[],g=[],h={precision:100,elapse:!1,defer:!1};g.push(/^[0-9]*$/.source),g.push(/([0-9]{1,2}\/){2}[0-9]{4}( [0-9]{1,2}(:[0-9]{2}){2})?/.source),g.push(/[0-9]{4}([\/\-][0-9]{1,2}){2}( [0-9]{1,2}(:[0-9]{2}){2})?/.source),g=new RegExp(g.join("|"));var i={Y:"years",m:"months",n:"daysToMonth",d:"daysToWeek",w:"weeks",W:"weeksToMonth",H:"hours",M:"minutes",S:"seconds",D:"totalDays",I:"totalHours",N:"totalMinutes",T:"totalSeconds"},j=function(b,c,d){this.el=b,this.$el=a(b),this.interval=null,this.offset={},this.options=a.extend({},h),this.instanceNumber=f.length,f.push(this),this.$el.data("countdown-instance",this.instanceNumber),d&&("function"==typeof d?(this.$el.on("update.countdown",d),this.$el.on("stoped.countdown",d),this.$el.on("finish.countdown",d)):this.options=a.extend({},h,d)),this.setFinalDate(c),this.options.defer===!1&&this.start()};a.extend(j.prototype,{start:function(){null!==this.interval&&clearInterval(this.interval);var a=this;this.update(),this.interval=setInterval(function(){a.update.call(a)},this.options.precision)},stop:function(){clearInterval(this.interval),this.interval=null,this.dispatchEvent("stoped")},toggle:function(){this.interval?this.stop():this.start()},pause:function(){this.stop()},resume:function(){this.start()},remove:function(){this.stop.call(this),f[this.instanceNumber]=null,delete this.$el.data().countdownInstance},setFinalDate:function(a){this.finalDate=b(a)},update:function(){if(0===this.$el.closest("html").length)return void this.remove();var b,c=void 0!==a._data(this.el,"events"),d=new Date;b=this.finalDate.getTime()-d.getTime(),b=Math.ceil(b/1e3),b=!this.options.elapse&&b<0?0:Math.abs(b),this.totalSecsLeft!==b&&c&&(this.totalSecsLeft=b,this.elapsed=d>=this.finalDate,this.offset={seconds:this.totalSecsLeft%60,minutes:Math.floor(this.totalSecsLeft/60)%60,hours:Math.floor(this.totalSecsLeft/60/60)%24,days:Math.floor(this.totalSecsLeft/60/60/24)%7,daysToWeek:Math.floor(this.totalSecsLeft/60/60/24)%7,daysToMonth:Math.floor(this.totalSecsLeft/60/60/24%30.4368),weeks:Math.floor(this.totalSecsLeft/60/60/24/7),weeksToMonth:Math.floor(this.totalSecsLeft/60/60/24/7)%4,months:Math.floor(this.totalSecsLeft/60/60/24/30.4368),years:Math.abs(this.finalDate.getFullYear()-d.getFullYear()),totalDays:Math.floor(this.totalSecsLeft/60/60/24),totalHours:Math.floor(this.totalSecsLeft/60/60),totalMinutes:Math.floor(this.totalSecsLeft/60),totalSeconds:this.totalSecsLeft},this.options.elapse||0!==this.totalSecsLeft?this.dispatchEvent("update"):(this.stop(),this.dispatchEvent("finish")))},dispatchEvent:function(b){var c=a.Event(b+".countdown");c.finalDate=this.finalDate,c.elapsed=this.elapsed,c.offset=a.extend({},this.offset),c.strftime=d(this.offset),this.$el.trigger(c)}}),a.fn.countdown=function(){var b=Array.prototype.slice.call(arguments,0);return this.each(function(){var c=a(this).data("countdown-instance");if(void 0!==c){var d=f[c],e=b[0];j.prototype.hasOwnProperty(e)?d[e].apply(d,b.slice(1)):null===String(e).match(/^[$A-Z_][0-9A-Z_$]*$/i)?(d.setFinalDate.call(d,e),d.start()):a.error("Method %s does not exist on jQuery.countdown".replace(/\%s/gi,e))}else new j(this,b[0],b[1])})}}); "use strict";(function($){"use strict";var combinators=[" ",">","+","~"];var fraternisers=["+","~"];var complexTypes=["ATTR","PSEUDO","ID","CLASS"];function grok(msobserver){if(!$.find.tokenize){msobserver.isCombinatorial=true;msobserver.isFraternal=true;msobserver.isComplex=true;return;} msobserver.isCombinatorial=false;msobserver.isFraternal=false;msobserver.isComplex=false;var token=$.find.tokenize(msobserver.selector);for(var i=0;i=o.length)return{done:true};return{done:false,value:o[i++]};},e:function e(_e){throw _e;},f:F};}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");}var normalCompletion=true,didErr=false,err;return{s:function s(){it=it.call(o);},n:function n(){var step=it.next();normalCompletion=step.done;return step;},e:function e(_e2){didErr=true;err=_e2;},f:function f(){try{if(!normalCompletion&&it["return"]!=null)it["return"]();}finally{if(didErr)throw err;}}};} function _unsupportedIterableToArray(o,minLen){if(!o)return;if(typeof o==="string")return _arrayLikeToArray(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);if(n==="Object"&&o.constructor)n=o.constructor.name;if(n==="Map"||n==="Set")return Array.from(o);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _arrayLikeToArray(o,minLen);} function _arrayLikeToArray(arr,len){if(len==null||len>arr.length)len=arr.length;for(var i=0,arr2=new Array(len);i").concat(message,"
");this.elementRef.find('.hurrytimer-campaign-message').remove();var stickyBar=this.elementRef.closest('.hurrytimer-sticky');if(stickyBar.length){this.elementRef.addClass('hurryt-loading');stickyBar.find('.hurrytimer-sticky-inner').append(messageHtml);}else{this.elementRef.addClass('hurryt-loading');this.elementRef.after(messageHtml);}}},{key:"expireCoupon",value:function expireCoupon(code,message){jQuery('form.checkout').on('checkout_place_order',function(event){validate_expired_coupon_checkout(event);});document.addEventListener("DOMContentLoaded",function(){validate_expired_coupon_checkout();});function validate_expired_coupon_checkout(event){var appliedCoupons=jQuery('.woocommerce-checkout-review-order-table').find('.cart-discount');var isCouponExpired=false;appliedCoupons.each(function(){var couponCode=jQuery(this).find('.woocommerce-remove-coupon').data('coupon');if(couponCode.toLowerCase()===code.toLowerCase()){isCouponExpired=true;return false;}});if(isCouponExpired){var errorHtml='';var noticeGroup=jQuery('.woocommerce-NoticeGroup-checkout');if(noticeGroup.length){noticeGroup.html(errorHtml);}else{var noticeGroupHtml="
".concat(errorHtml,"
");jQuery('form.checkout').before(noticeGroupHtml);jQuery('html, body').animate({scrollTop:jQuery('.woocommerce-NoticeGroup-checkout').offset().top-100});} var container=jQuery('.woocommerce-checkout-review-order');container.addClass('processing').block({message:null,overlayCSS:{background:'#fff',opacity:0.6}});jQuery.ajax({type:'POST',url:wc_checkout_params.wc_ajax_url.toString().replace('%%endpoint%%','remove_coupon'),data:{security:wc_checkout_params.remove_coupon_nonce,coupon:code},success:function success(response){container.removeClass('processing').unblock();if(response){jQuery(document.body).trigger('removed_coupon_in_checkout',[code]);jQuery(document.body).trigger('update_checkout',{update_shipping_method:false});}},error:function error(jqXHR){if(wc_checkout_params.debug_mode){console.log(jqXHR.responseText);}}});if(event){event.preventDefault();} return false;}} var originalFetch=window.fetch;window.fetch=function(url,options){if(url.indexOf('wc-ajax=apply_coupon')!==-1){var body=options.body;var searchParams=new URLSearchParams(body);var couponCode=searchParams.get('coupon_code');if(typeof couponCode==='string'&&couponCode.toLowerCase()===code.toLowerCase()){jQuery('.woocommerce-error').remove();var $target=jQuery('.woocommerce-notices-wrapper:first')||jQuery('.cart-empty').closest('.woocommerce')||jQuery('.woocommerce-cart-form');$target.prepend("
  • ".concat(message,"
"));jQuery('.checkout_coupon').removeClass('processing').unblock();jQuery('.woocommerce-cart-form').removeClass('processing').unblock();return Promise.reject(new Error(message));}}else if(url.indexOf('/wc/store/v1/batch')!==-1){var body=options.body;var requests=JSON.parse(body).requests||[];var abortController=new AbortController();options.signal=abortController.signal;requests.forEach(function(req){if(req.path==='/wc/store/v1/cart/apply-coupon'){var couponCode=req.body.code;if(typeof couponCode==='string'&&couponCode.toLowerCase()===code.toLowerCase()){abortController.abort();throw new Error(message);}}});} return originalFetch.apply(this,[url,options]);};jQuery.ajaxPrefilter(function(opts,originOpts,jqXHR){if(opts.url.indexOf('wc-ajax=apply_coupon')===-1)return;if(typeof originOpts.data.coupon_code!=='string'||typeof code!=='string'||originOpts.data.coupon_code.toLowerCase()!==code.toLowerCase())return;jqXHR.abort();jQuery('.woocommerce-error').remove();var $target=jQuery('.woocommerce-notices-wrapper:first')||jQuery('.cart-empty').closest('.woocommerce')||jQuery('.woocommerce-cart-form');$target.prepend("
  • ".concat(message,"
"));jQuery('.checkout_coupon').removeClass('processing').unblock();jQuery('.woocommerce-cart-form').removeClass('processing').unblock();});}}],[{key:"redirect",value:function redirect(url){document.body.style.opacity='0';document.body.style.display='none';if(url.trim().length===0){return;} if(hurrytimer_ajax_object.redirect_no_back){window.location.replace(url);}else{window.location.href=url;}}}]);return HurrytimerAction;}();"use strict";function _createForOfIteratorHelper(o,allowArrayLike){var it=typeof Symbol!=="undefined"&&o[Symbol.iterator]||o["@@iterator"];if(!it){if(Array.isArray(o)||(it=_unsupportedIterableToArray(o))||allowArrayLike&&o&&typeof o.length==="number"){if(it)o=it;var i=0;var F=function F(){};return{s:F,n:function n(){if(i>=o.length)return{done:true};return{done:false,value:o[i++]};},e:function e(_e){throw _e;},f:F};}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");}var normalCompletion=true,didErr=false,err;return{s:function s(){it=it.call(o);},n:function n(){var step=it.next();normalCompletion=step.done;return step;},e:function e(_e2){didErr=true;err=_e2;},f:function f(){try{if(!normalCompletion&&it["return"]!=null)it["return"]();}finally{if(didErr)throw err;}}};} function _unsupportedIterableToArray(o,minLen){if(!o)return;if(typeof o==="string")return _arrayLikeToArray(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);if(n==="Object"&&o.constructor)n=o.constructor.name;if(n==="Map"||n==="Set")return Array.from(o);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _arrayLikeToArray(o,minLen);} function _arrayLikeToArray(arr,len){if(len==null||len>arr.length)len=arr.length;for(var i=0,arr2=new Array(len);i=this.config.restart_duration;}},{key:"allowRestartAfterReload",value:function allowRestartAfterReload(){return parseInt(this.config.restart)===parseInt(this.restartOptions.afterReload);}},{key:"allowRestartImmediately",value:function allowRestartImmediately(){return parseInt(this.config.restart)===parseInt(this.restartOptions.immediately);}},{key:"shouldRestartAfterDuration",value:function shouldRestartAfterDuration(){return this.config.restart==this.restartOptions.after_duration;}},{key:"hasAction",value:function hasAction(){return this.config.actions.length;}},{key:"calculateDate",value:function calculateDate(){var date=new Date();date.setSeconds(date.getSeconds()+this.config.duration);return date;}},{key:"executeActions",value:function executeActions(){if(parseInt(hurrytimer_ajax_object.disable_actions)===1){return false;} if(this.hasAction()){var _iterator=_createForOfIteratorHelper(this.config.actions),_step;try{for(_iterator.s();!(_step=_iterator.n()).done;){var action=_step.value;var actionManager=new HurrytimerAction(this.elementRef,this.config);if(this.config.run_in_background){if(action['id']==this.actionsOptions.expire_coupon){actionManager.expireCoupon(action['coupon'],hurrytimer_ajax_object.expire_coupon_message);}}else{switch(action['id']){case this.actionsOptions.redirect:HurrytimerAction.redirect(action['redirectUrl']);break;case this.actionsOptions.displayMessage:actionManager.displayMessage(action['message']);break;case this.actionsOptions.hideAddToCartButton:actionManager.hideAddToCartButton();break;case this.actionsOptions.stockStatus:if(this.config.isRegular){actionManager.changeStockStatus(this.config.id,action['wcStockStatus']);} break;case this.actionsOptions.hide:actionManager.hide();break;}}}}catch(err){_iterator.e(err);}finally{_iterator.f();}}}},{key:"maybeShowCampaign",value:function maybeShowCampaign(){if(this.elementRef.length&&!this.config.run_in_background){var $message=this.elementRef.parent().find(".hurrytimer-campaign-message[data-id=\"".concat(this.config.id,"\"]"));if($message.length){$message.remove();} this.elementRef.removeClass('hurryt-loading');} var stickyBar=this.elementRef.closest('.hurrytimer-sticky');if(stickyBar.length){var _$message=this.elementRef.find('.hurrytimer-campaign-message');if(_$message.length){_$message.remove();} stickyBar.removeClass('hurryt-loading');}}},{key:"waitThenRun",value:function waitThenRun(){var _this=this;this.restartIntervalId=setInterval(function(){if(_this.durationSinceExpiryIsOver()){clearInterval(_this.restartIntervalId);_this.run();}},1000);}},{key:"run",value:function run(){var _this2=this;this.triggerInitEvent();this.elementRef.countdown(this.getEndDate(),function(e){return _this2.onCountdownUpdate(e);});var stickyBar=this.elementRef.closest('.hurrytimer-sticky');this.handleStickyBar(stickyBar);}},{key:"handleStickyBar",value:function handleStickyBar(stickyBar){var _this3=this;if(stickyBar.length===0)return;var dismissCookie=Cookies.get("_ht_CDT-".concat(this.config.id,"_dismissed"));if(dismissCookie==undefined){stickyBar.on('click','.hurrytimer-sticky-close',function(){return _this3.onStickyBarDismiss(stickyBar);});}else{this.hideStickyBar(stickyBar);}}},{key:"hideStickyBar",value:function hideStickyBar(stickyBar){if(stickyBar.length===0)return;var isTopPinned=stickyBar.css('top')==='0px';stickyBar.remove();if(isTopPinned){jQuery('body').css('margin-top',0);}else{jQuery('body').css('margin-bottom',0);}}},{key:"onStickyBarDismiss",value:function onStickyBarDismiss(stickyBar){this.hideStickyBar(stickyBar);Cookies.set("_ht_CDT-".concat(this.config.id,"_dismissed"),'1',{expires:+this.config.sticky_bar_hide_timeout});}},{key:"onCountdownUpdate",value:function onCountdownUpdate(event){this.render(event);this.maybeShowCampaign();if(event.elapsed&&event.type==='finish'){this.executeActions();this.triggerFinishEvent();this.maybeRecur();if(this.allowRestartImmediately()){this.run();} if(this.shouldRestartAfterDuration()){this.waitThenRun();}}}},{key:"triggerFinishEvent",value:function triggerFinishEvent(){var params={id:this.config.id,mode:this.config.mode,endAt:this.config.endDate};this.elementRef.trigger('hurryt:finished',params);}},{key:"triggerInitEvent",value:function triggerInitEvent(){var params={id:this.config.id,mode:this.config.mode,endAt:this.config.endDate};jQuery('.hurrytimer-campaign').trigger('hurryt:init',params);}},{key:"triggerStartEvent",value:function triggerStartEvent(){if(!this.startEventDispatched){var params={id:this.config.id,mode:this.config.mode,endAt:this.config.endDate};this.elementRef.trigger('hurryt:started',params);this.startEventDispatched=true;}}},{key:"render",value:function render(event){if(hurrytimer_ajax_object.run_in_background){this.elementRef.html('');}else{this.elementRef.find('.hurrytimer-timer').html(event.strftime(this.config.template));} this.triggerStartEvent();}},{key:"willRecurNow",value:function willRecurNow(){var now=new Date();var prev_recurrence_time=this.getEndDate().getTime()+this.config.timeToNextRecurrence*1000;return now.getTime()>=prev_recurrence_time;}},{key:"maybeRecur",value:function maybeRecur(){var _this4=this;if(!this.config.recurr)return;if(jQuery.ajax===undefined)return;clearTimeout(this.recurTimeoutId);clearInterval(this.recurIntervalId);this.recurIntervalId=setInterval(function(){if(!_this4.willRecurNow()){return;} clearInterval(_this4.recurIntervalId);jQuery.ajax({url:hurrytimer_ajax_object.ajax_url,data:{action:'next_recurrence',nonce:hurrytimer_ajax_object.ajax_nonce,id:_this4.config.id},error:function error(){if(_this4.retryCount===10)return;_this4.retryCount++;setTimeout(function(){_this4.maybeRecur();},1000);},success:function success(_ref){var data=_ref.data;_this4.retryCount=0;if(!data)return;if(isNaN(data.endTimestamp)){return;} _this4.config.endDate=data.endTimestamp;_this4.run();}});},1000);}}]);return HurrytimerCampaign;}();'use strict';function _typeof(obj){"@babel/helpers - typeof";return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(obj){return typeof obj;}:function(obj){return obj&&"function"==typeof Symbol&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj;},_typeof(obj);} (function($){var state={reseting:[]};var $body=$('body');$.initialize('.hurrytimer-campaign',function(){if($(this).parents('div[data-elementor-type=popup]').length===0){runCampaign($(this));}});$(document).on('elementor/popup/show',function(event,id){$(".elementor-".concat(id," .hurrytimer-campaign")).each(function(){runCampaign($(this));});});function runCampaign($campaign){var config=$campaign.data('config');if(config===undefined)return;if(_typeof(config)!=='object'){config=JSON.parse(config.replace(/\s+/g," "));} $campaign.removeAttr('data-config');$campaign.trigger('hurryt:pre-init',{id:config.id,mode:config.mode,endAt:config.endAt});var $sticky=$campaign.closest('.hurrytimer-sticky');if($sticky.length){$body.append($sticky);$(window).resize(function(){if($sticky.css('top')==='0px'){$body.css('margin-top',$sticky.outerHeight());}else{$body.css('margin-bottom',$sticky.outerHeight());}});setTimeout(function(){$(window).trigger('resize');});} new HurrytimerCampaign($campaign,config,state).run();}})(jQuery); jQuery.easing['jswing']=jQuery.easing['swing'];jQuery.extend(jQuery.easing,{def:'easeOutQuad',swing:function(x,t,b,c,d){return c*(t/=d)*t+b;},easeInQuad:function(x,t,b,c,d){return c*(t/=d)*t+b;},easeOutQuad:function(x,t,b,c,d){return-c*(t/=d)*(t-2)+b;},easeInOutQuad:function(x,t,b,c,d){if((t/=d/2)<1)return c/2*t*t+b;return-c/2*((--t)*(t-2)-1)+b;},easeInCubic:function(x,t,b,c,d){return c*(t/=d)*t*t+b;},easeOutCubic:function(x,t,b,c,d){return c*((t=t/d-1)*t*t+1)+b;},easeInOutCubic:function(x,t,b,c,d){if((t/=d/2)<1)return c/2*t*t*t+b;return c/2*((t-=2)*t*t+2)+b;},easeInQuart:function(x,t,b,c,d){return c*(t/=d)*t*t*t+b;},easeOutQuart:function(x,t,b,c,d){return-c*((t=t/d-1)*t*t*t-1)+b;},easeInOutQuart:function(x,t,b,c,d){if((t/=d/2)<1)return c/2*t*t*t*t+b;return-c/2*((t-=2)*t*t*t-2)+b;},easeInQuint:function(x,t,b,c,d){return c*(t/=d)*t*t*t*t+b;},easeOutQuint:function(x,t,b,c,d){return c*((t=t/d-1)*t*t*t*t+1)+b;},easeInOutQuint:function(x,t,b,c,d){if((t/=d/2)<1)return c/2*t*t*t*t*t+b;return c/2*((t-=2)*t*t*t*t+2)+b;},easeInSine:function(x,t,b,c,d){return-c*Math.cos(t/d*(Math.PI/2))+c+b;},easeOutSine:function(x,t,b,c,d){return c*Math.sin(t/d*(Math.PI/2))+b;},easeInOutSine:function(x,t,b,c,d){return-c/2*(Math.cos(Math.PI*t/d)-1)+b;},easeInExpo:function(x,t,b,c,d){return(t==0)?b:c*Math.pow(2,10*(t/d-1))+b;},easeOutExpo:function(x,t,b,c,d){return(t==d)?b+c:c*(-Math.pow(2,-10*t/d)+1)+b;},easeInOutExpo:function(x,t,b,c,d){if(t==0)return b;if(t==d)return b+c;if((t/=d/2)<1)return c/2*Math.pow(2,10*(t-1))+b;return c/2*(-Math.pow(2,-10*--t)+2)+b;},easeInCirc:function(x,t,b,c,d){return-c*(Math.sqrt(1-(t/=d)*t)-1)+b;},easeOutCirc:function(x,t,b,c,d){return c*Math.sqrt(1-(t=t/d-1)*t)+b;},easeInOutCirc:function(x,t,b,c,d){if((t/=d/2)<1)return-c/2*(Math.sqrt(1-t*t)-1)+b;return c/2*(Math.sqrt(1-(t-=2)*t)+1)+b;},easeInElastic:function(x,t,b,c,d){var s=1.70158;var p=0;var a=c;if(t==0)return b;if((t/=d)==1)return b+c;if(!p)p=d*.3;if(an)&&(f=n,d(g,n)&&(f/=40)),d(g,n)&&(j/=40,l/=40,m/=40),j=Math[j>=1?"floor":"ceil"](j/f),l=Math[l>=1?"floor":"ceil"](l/f),m=Math[m>=1?"floor":"ceil"](m/f),k.settings.normalizeOffset&&this.getBoundingClientRect){var s=this.getBoundingClientRect();o=b.clientX-s.left,p=b.clientY-s.top}return b.deltaX=l,b.deltaY=m,b.deltaFactor=f,b.offsetX=o,b.offsetY=p,b.deltaMode=0,h.unshift(b,j,l,m),e&&clearTimeout(e),e=setTimeout(c,200),(a.event.dispatch||a.event.handle).apply(this,h)}}function c(){f=null}function d(a,b){return k.settings.adjustOldDeltas&&"mousewheel"===a.type&&b%120===0}var e,f,g=["wheel","mousewheel","DOMMouseScroll","MozMousePixelScroll"],h="onwheel"in document||document.documentMode>=9?["wheel"]:["mousewheel","DomMouseScroll","MozMousePixelScroll"],i=Array.prototype.slice;if(a.event.fixHooks)for(var j=g.length;j;)a.event.fixHooks[g[--j]]=a.event.mouseHooks;var k=a.event.special.mousewheel={version:"3.1.12",setup:function(){if(this.addEventListener)for(var c=h.length;c;)this.addEventListener(h[--c],b,!1);else this.onmousewheel=b;a.data(this,"mousewheel-line-height",k.getLineHeight(this)),a.data(this,"mousewheel-page-height",k.getPageHeight(this))},teardown:function(){if(this.removeEventListener)for(var c=h.length;c;)this.removeEventListener(h[--c],b,!1);else this.onmousewheel=null;a.removeData(this,"mousewheel-line-height"),a.removeData(this,"mousewheel-page-height")},getLineHeight:function(b){var c=a(b),d=c["offsetParent"in a.fn?"offsetParent":"parent"]();return d.length||(d=a("body")),parseInt(d.css("fontSize"),10)||parseInt(c.css("fontSize"),10)||16},getPageHeight:function(b){return a(b).height()},settings:{adjustOldDeltas:!0,normalizeOffset:!0}};a.fn.extend({mousewheel:function(a){return a?this.bind("mousewheel",a):this.trigger("mousewheel")},unmousewheel:function(a){return this.unbind("mousewheel",a)}})}); var headerEl=document.getElementById('header-outer');var headerSpaceEl=document.getElementById('header-space');if(typeof(headerEl)!='undefined'&&headerEl!=null&&typeof(headerSpaceEl)!='undefined'&&headerSpaceEl!=null&&headerSpaceEl.hasAttribute('data-secondary-header-display')){headerSpaceEl.style.height=headerEl.clientHeight+'px';} jQuery(function($){"use strict";var using_mobile_browser=false;if(navigator.userAgent.match(/(Android|iPod|iPhone|iPad|BlackBerry|IEMobile|Opera Mini)/)){using_mobile_browser=true;} var nectarPageHeader;function fullscreenHeightCalc(){var pageHeaderOffset=nectarPageHeader.offset().top;nectarPageHeader.css('height',(parseInt(window.innerHeight)-parseInt(pageHeaderOffset))+'px');} if(using_mobile_browser&&$('#page-header-bg.fullscreen-header').length>0){nectarPageHeader=$('#page-header-bg');fullscreenHeightCalc();var $windowDOMWidth=window.innerWidth,$windowDOMHeight=window.innerHeight;$(window).resize(function(){if(($(window).width()!=$windowDOMWidth&&$(window).height!=$windowDOMHeight)){fullscreenHeightCalc();$windowDOMWidth=window.innerWidth;$windowDOMHeight=window.innerHeight;}});} function portfolioFullScreenSliderCalcs(){var $bodyBorderSize=($('.body-border-top').length>0&&$(window).width()>1000)?$('.body-border-top').height():0;$('.nectar_fullscreen_zoom_recent_projects').each(function(){if($(this).parents('.first-section').length>0){$(this).css('height',$(window).height()-$(this).offset().top-$bodyBorderSize);}else{$(this).css('height',$(window).height());}});} if(using_mobile_browser&&$('.nectar_fullscreen_zoom_recent_projects').length>0){portfolioFullScreenSliderCalcs();} function centeredNavBottomBarReposition(){var $headerSpan9=$('#header-outer[data-format="centered-menu-bottom-bar"] header#top .span_9');var $headerSpan3=$('#header-outer[data-format="centered-menu-bottom-bar"] header#top .span_3');var $secondaryHeader=$('#header-secondary-outer');var $logoLinkClone=$headerSpan3.find('#logo').clone();if($logoLinkClone.is('[data-supplied-ml="true"]')){$logoLinkClone.find('img:not(.mobile-only-logo)').remove();} $logoLinkClone.find('img.starting-logo').remove();if($secondaryHeader.length>0){$secondaryHeader.addClass('centered-menu-bottom-bar');} if($('#header-outer[data-condense="true"]').length>0){$headerSpan9.prepend($logoLinkClone);}} if($('#header-outer[data-format="centered-menu-bottom-bar"]').length>0){centeredNavBottomBarReposition();} $('#page-header-bg[data-animate-in-effect="zoom-out"]').addClass('loaded');function sliderFontOverrides(){var $overrideCSS='';$('.nectar-slider-wrap').each(function(){if($(this).find('.swiper-container[data-tho]').length>0){var $tho=$(this).find('.swiper-container').attr('data-tho');var $tco=$(this).find('.swiper-container').attr('data-tco');var $pho=$(this).find('.swiper-container').attr('data-pho');var $pco=$(this).find('.swiper-container').attr('data-pco');if($tho!='auto'||$tco!='auto'){$overrideCSS+='@media only screen and (max-width: 1000px) and (min-width: 690px) {';if($tho!='auto') $overrideCSS+='#'+$(this).attr('id')+'.nectar-slider-wrap[data-full-width="false"] .swiper-slide .content h2, #boxed .nectar-slider-wrap#'+$(this).attr('id')+' .swiper-slide .content h2, body .nectar-slider-wrap#'+$(this).attr('id')+'[data-full-width="true"] .swiper-slide .content h2, body .nectar-slider-wrap#'+$(this).attr('id')+'[data-full-width="boxed-full-width"] .swiper-slide .content h2, body .full-width-content .vc_span12 .nectar-slider-wrap#'+$(this).attr('id')+' .swiper-slide .content h2 { font-size:'+$tho+'px!important; line-height:'+(parseInt($tho)+10)+'px!important; }';if($pho!='auto') $overrideCSS+='#'+$(this).attr('id')+'.nectar-slider-wrap[data-full-width="false"] .swiper-slide .content p, #boxed .nectar-slider-wrap#'+$(this).attr('id')+' .swiper-slide .content p, body .nectar-slider-wrap#'+$(this).attr('id')+'[data-full-width="true"] .swiper-slide .content p, body .nectar-slider-wrap#'+$(this).attr('id')+'[data-full-width="boxed-full-width"] .swiper-slide .content p, body .full-width-content .vc_span12 .nectar-slider-wrap#'+$(this).attr('id')+' .swiper-slide .content p { font-size:'+$tco+'px!important; line-height:'+(parseInt($tco)+10)+'px!important; }';$overrideCSS+='}';} if($pho!='auto'||$pco!='auto'){$overrideCSS+='@media only screen and (max-width: 690px) {';if($pho!='auto') $overrideCSS+='#'+$(this).attr('id')+'.nectar-slider-wrap[data-full-width="false"] .swiper-slide .content h2, #boxed .nectar-slider-wrap#'+$(this).attr('id')+' .swiper-slide .content h2, body .nectar-slider-wrap#'+$(this).attr('id')+'[data-full-width="true"] .swiper-slide .content h2, body .nectar-slider-wrap#'+$(this).attr('id')+'[data-full-width="boxed-full-width"] .swiper-slide .content h2, body .full-width-content .vc_span12 .nectar-slider-wrap#'+$(this).attr('id')+' .swiper-slide .content h2 { font-size:'+$pho+'px!important; line-height:'+(parseInt($pho)+10)+'px!important; }';if($pho!='auto') $overrideCSS+='#'+$(this).attr('id')+'.nectar-slider-wrap[data-full-width="false"] .swiper-slide .content p, #boxed .nectar-slider-wrap#'+$(this).attr('id')+' .swiper-slide .content p, body .nectar-slider-wrap#'+$(this).attr('id')+'[data-full-width="true"] .swiper-slide .content p, body .nectar-slider-wrap#'+$(this).attr('id')+'[data-full-width="boxed-full-width"] .swiper-slide .content p, body .full-width-content .vc_span12 .nectar-slider-wrap#'+$(this).attr('id')+' .swiper-slide .content p { font-size:'+$pco+'px!important; line-height:'+(parseInt($pco)+10)+'px!important; }';$overrideCSS+='}';}}});if($overrideCSS.length>1){var head=document.head||document.getElementsByTagName('head')[0];var style=document.createElement('style');style.type='text/css';if(style.styleSheet){style.styleSheet.cssText=$overrideCSS;}else{style.appendChild(document.createTextNode($overrideCSS));} head.appendChild(style);$('.nectar-slider-wrap .content').css('visibility','visible');}} sliderFontOverrides();}); /*! * jQuery Transit - CSS3 transitions and transformations * (c) 2011-2012 Rico Sta. Cruz * MIT Licensed. */ (function(k){k.transit={version:"0.9.9",propertyMap:{marginLeft:"margin",marginRight:"margin",marginBottom:"margin",marginTop:"margin",paddingLeft:"padding",paddingRight:"padding",paddingBottom:"padding",paddingTop:"padding"},enabled:true,useTransitionEnd:false};var d=document.createElement("div");var q={};function b(v){if(v in d.style){return v}var u=["Moz","Webkit","O","ms"];var r=v.charAt(0).toUpperCase()+v.substr(1);if(v in d.style){return v}for(var t=0;t-1;q.transition=b("transition");q.transitionDelay=b("transitionDelay");q.transform=b("transform");q.transformOrigin=b("transformOrigin");q.transform3d=e();var i={transition:"transitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd",WebkitTransition:"webkitTransitionEnd",msTransition:"MSTransitionEnd"};var f=q.transitionEnd=i[q.transition]||null;for(var p in q){if(q.hasOwnProperty(p)&&typeof k.support[p]==="undefined"){k.support[p]=q[p]}}d=null;k.cssEase={_default:"ease","in":"ease-in",out:"ease-out","in-out":"ease-in-out",snap:"cubic-bezier(0,1,.5,1)",easeOutCubic:"cubic-bezier(.215,.61,.355,1)",easeInOutCubic:"cubic-bezier(.645,.045,.355,1)",easeInCirc:"cubic-bezier(.6,.04,.98,.335)",easeOutCirc:"cubic-bezier(.075,.82,.165,1)",easeInOutCirc:"cubic-bezier(.785,.135,.15,.86)",easeInExpo:"cubic-bezier(.95,.05,.795,.035)",easeOutExpo:"cubic-bezier(.19,1,.22,1)",easeInOutExpo:"cubic-bezier(1,0,0,1)",easeInQuad:"cubic-bezier(.55,.085,.68,.53)",easeOutQuad:"cubic-bezier(.25,.46,.45,.94)",easeInOutQuad:"cubic-bezier(.455,.03,.515,.955)",easeInQuart:"cubic-bezier(.895,.03,.685,.22)",easeOutQuart:"cubic-bezier(.165,.84,.44,1)",easeInOutQuart:"cubic-bezier(.77,0,.175,1)",easeInQuint:"cubic-bezier(.755,.05,.855,.06)",easeOutQuint:"cubic-bezier(.23,1,.32,1)",easeInOutQuint:"cubic-bezier(.86,0,.07,1)",easeInSine:"cubic-bezier(.47,0,.745,.715)",easeOutSine:"cubic-bezier(.39,.575,.565,1)",easeInOutSine:"cubic-bezier(.445,.05,.55,.95)",easeInBack:"cubic-bezier(.6,-.28,.735,.045)",easeOutBack:"cubic-bezier(.175, .885,.32,1.275)",easeInOutBack:"cubic-bezier(.68,-.55,.265,1.55)"};k.cssHooks["transit:transform"]={get:function(r){return k(r).data("transform")||new j()},set:function(s,r){var t=r;if(!(t instanceof j)){t=new j(t)}if(q.transform==="WebkitTransform"&&!a){s.style[q.transform]=t.toString(true)}else{s.style[q.transform]=t.toString()}k(s).data("transform",t)}};k.cssHooks.transform={set:k.cssHooks["transit:transform"].set};if(k.fn.jquery<"1.8"){k.cssHooks.transformOrigin={get:function(r){return r.style[q.transformOrigin]},set:function(r,s){r.style[q.transformOrigin]=s}};k.cssHooks.transition={get:function(r){return r.style[q.transition]},set:function(r,s){r.style[q.transition]=s}}}n("scale");n("translate");n("rotate");n("rotateX");n("rotateY");n("rotate3d");n("perspective");n("skewX");n("skewY");n("x",true);n("y",true);function j(r){if(typeof r==="string"){this.parse(r)}return this}j.prototype={setFromString:function(t,s){var r=(typeof s==="string")?s.split(","):(s.constructor===Array)?s:[s];r.unshift(t);j.prototype.set.apply(this,r)},set:function(s){var r=Array.prototype.slice.apply(arguments,[1]);if(this.setter[s]){this.setter[s].apply(this,r)}else{this[s]=r.join(",")}},get:function(r){if(this.getter[r]){return this.getter[r].apply(this)}else{return this[r]||0}},setter:{rotate:function(r){this.rotate=o(r,"deg")},rotateX:function(r){this.rotateX=o(r,"deg")},rotateY:function(r){this.rotateY=o(r,"deg")},scale:function(r,s){if(s===undefined){s=r}this.scale=r+","+s},skewX:function(r){this.skewX=o(r,"deg")},skewY:function(r){this.skewY=o(r,"deg")},perspective:function(r){this.perspective=o(r,"px")},x:function(r){this.set("translate",r,null)},y:function(r){this.set("translate",null,r)},translate:function(r,s){if(this._translateX===undefined){this._translateX=0}if(this._translateY===undefined){this._translateY=0}if(r!==null&&r!==undefined){this._translateX=o(r,"px")}if(s!==null&&s!==undefined){this._translateY=o(s,"px")}this.translate=this._translateX+","+this._translateY}},getter:{x:function(){return this._translateX||0},y:function(){return this._translateY||0},scale:function(){var r=(this.scale||"1,1").split(",");if(r[0]){r[0]=parseFloat(r[0])}if(r[1]){r[1]=parseFloat(r[1])}return(r[0]===r[1])?r[0]:r},rotate3d:function(){var t=(this.rotate3d||"0,0,0,0deg").split(",");for(var r=0;r<=3;++r){if(t[r]){t[r]=parseFloat(t[r])}}if(t[3]){t[3]=o(t[3],"deg")}return t}},parse:function(s){var r=this;s.replace(/([a-zA-Z0-9]+)\((.*?)\)/g,function(t,v,u){r.setFromString(v,u)})},toString:function(t){var s=[];for(var r in this){if(this.hasOwnProperty(r)){if((!q.transform3d)&&((r==="rotateX")||(r==="rotateY")||(r==="perspective")||(r==="transformOrigin"))){continue}if(r[0]!=="_"){if(t&&(r==="scale")){s.push(r+"3d("+this[r]+",1)")}else{if(t&&(r==="translate")){s.push(r+"3d("+this[r]+",0)")}else{s.push(r+"("+this[r]+")")}}}}}return s.join(" ")}};function m(s,r,t){if(r===true){s.queue(t)}else{if(r){s.queue(r,t)}else{t()}}}function h(s){var r=[];k.each(s,function(t){t=k.camelCase(t);t=k.transit.propertyMap[t]||k.cssProps[t]||t;t=c(t);if(k.inArray(t,r)===-1){r.push(t)}});return r}function g(s,v,x,r){var t=h(s);if(k.cssEase[x]){x=k.cssEase[x]}var w=""+l(v)+" "+x;if(parseInt(r,10)>0){w+=" "+l(r)}var u=[];k.each(t,function(z,y){u.push(y+" "+w)});return u.join(", ")}k.fn.transition=k.fn.transit=function(z,s,y,C){var D=this;var u=0;var w=true;if(typeof s==="function"){C=s;s=undefined}if(typeof y==="function"){C=y;y=undefined}if(typeof z.easing!=="undefined"){y=z.easing;delete z.easing}if(typeof z.duration!=="undefined"){s=z.duration;delete z.duration}if(typeof z.complete!=="undefined"){C=z.complete;delete z.complete}if(typeof z.queue!=="undefined"){w=z.queue;delete z.queue}if(typeof z.delay!=="undefined"){u=z.delay;delete z.delay}if(typeof s==="undefined"){s=k.fx.speeds._default}if(typeof y==="undefined"){y=k.cssEase._default}s=l(s);var E=g(z,s,y,u);var B=k.transit.enabled&&q.transition;var t=B?(parseInt(s,10)+parseInt(u,10)):0;if(t===0){var A=function(F){D.css(z);if(C){C.apply(D)}if(F){F()}};m(D,w,A);return D}var x={};var r=function(H){var G=false;var F=function(){if(G){D.unbind(f,F)}if(t>0){D.each(function(){this.style[q.transition]=(x[this]||null)})}if(typeof C==="function"){C.apply(D)}if(typeof H==="function"){H()}};if((t>0)&&(f)&&(k.transit.useTransitionEnd)){G=true;D.bind(f,F)}else{window.setTimeout(F,t)}D.each(function(){if(t>0){this.style[q.transition]=E}k(this).css(z)})};var v=function(F){this.offsetWidth;r(F)};m(D,w,v);return this};function n(s,r){if(!r){k.cssNumber[s]=true}k.transit.propertyMap[s]=q.transform;k.cssHooks[s]={get:function(v){var u=k(v).css("transit:transform");return u.get(s)},set:function(v,w){var u=k(v).css("transit:transform");u.setFromString(s,w);k(v).css({"transit:transform":u})}}}function c(r){return r.replace(/([A-Z])/g,function(s){return"-"+s.toLowerCase()})}function o(s,r){if((typeof s==="string")&&(!s.match(/^[\-0-9\.]+$/))){return s}else{return""+s+r}}function l(s){var r=s;if(k.fx.speeds[r]){r=k.fx.speeds[r]}return o(r,"ms")}k.transit.getTransitionValue=g})(jQuery); /*! Waypoints - 4.0.1 Copyright © 2011-2016 Caleb Troughton Licensed under the MIT license. https://github.com/imakewebthings/waypoints/blob/master/licenses.txt */ (function(){'use strict' var keyCounter=0 var allWaypoints={} function Waypoint(options){if(!options){throw new Error('No options passed to Waypoint constructor')} if(!options.element){throw new Error('No element option passed to Waypoint constructor')} if(!options.handler){throw new Error('No handler option passed to Waypoint constructor')} this.key='waypoint-'+keyCounter this.options=Waypoint.Adapter.extend({},Waypoint.defaults,options) this.element=this.options.element this.adapter=new Waypoint.Adapter(this.element) this.callback=options.handler this.axis=this.options.horizontal?'horizontal':'vertical' this.enabled=this.options.enabled this.triggerPoint=null this.group=Waypoint.Group.findOrCreate({name:this.options.group,axis:this.axis}) this.context=Waypoint.Context.findOrCreateByElement(this.options.context) if(Waypoint.offsetAliases[this.options.offset]){this.options.offset=Waypoint.offsetAliases[this.options.offset]} this.group.add(this) this.context.add(this) allWaypoints[this.key]=this keyCounter+=1} Waypoint.prototype.queueTrigger=function(direction){this.group.queueTrigger(this,direction)} Waypoint.prototype.trigger=function(args){if(!this.enabled){return} if(this.callback){this.callback.apply(this,args)}} Waypoint.prototype.destroy=function(){this.context.remove(this) this.group.remove(this) delete allWaypoints[this.key]} Waypoint.prototype.disable=function(){this.enabled=false return this} Waypoint.prototype.enable=function(){this.context.refresh() this.enabled=true return this} Waypoint.prototype.next=function(){return this.group.next(this)} Waypoint.prototype.previous=function(){return this.group.previous(this)} Waypoint.invokeAll=function(method){var allWaypointsArray=[] for(var waypointKey in allWaypoints){allWaypointsArray.push(allWaypoints[waypointKey])} for(var i=0,end=allWaypointsArray.length;iaxis.oldScroll var direction=isForward?axis.forward:axis.backward for(var waypointKey in this.waypoints[axisKey]){var waypoint=this.waypoints[axisKey][waypointKey] if(waypoint.triggerPoint===null){continue} var wasBeforeTriggerPoint=axis.oldScroll=waypoint.triggerPoint var crossedForward=wasBeforeTriggerPoint&&nowAfterTriggerPoint var crossedBackward=!wasBeforeTriggerPoint&&!nowAfterTriggerPoint if(crossedForward||crossedBackward){waypoint.queueTrigger(direction) triggeredGroups[waypoint.group.id]=waypoint.group}}} for(var groupKey in triggeredGroups){triggeredGroups[groupKey].flushTriggers()} this.oldScroll={x:axes.horizontal.newScroll,y:axes.vertical.newScroll}} Context.prototype.innerHeight=function(){if(this.element==this.element.window){return Waypoint.viewportHeight()} return this.adapter.innerHeight()} Context.prototype.remove=function(waypoint){delete this.waypoints[waypoint.axis][waypoint.key] this.checkEmpty()} Context.prototype.innerWidth=function(){if(this.element==this.element.window){return Waypoint.viewportWidth()} return this.adapter.innerWidth()} Context.prototype.destroy=function(){var allWaypoints=[] for(var axis in this.waypoints){for(var waypointKey in this.waypoints[axis]){allWaypoints.push(this.waypoints[axis][waypointKey])}} for(var i=0,end=allWaypoints.length;i-1){adjustment=Math.ceil(axis.contextDimension*adjustment/100)}} contextModifier=axis.contextScroll-axis.contextOffset waypoint.triggerPoint=Math.floor(elementOffset+contextModifier-adjustment) wasBeforeScroll=oldTriggerPoint=axis.oldScroll triggeredBackward=wasBeforeScroll&&nowAfterScroll triggeredForward=!wasBeforeScroll&&!nowAfterScroll if(!freshWaypoint&&triggeredBackward){waypoint.queueTrigger(axis.backward) triggeredGroups[waypoint.group.id]=waypoint.group} else if(!freshWaypoint&&triggeredForward){waypoint.queueTrigger(axis.forward) triggeredGroups[waypoint.group.id]=waypoint.group} else if(freshWaypoint&&axis.oldScroll>=waypoint.triggerPoint){waypoint.queueTrigger(axis.forward) triggeredGroups[waypoint.group.id]=waypoint.group}}} Waypoint.requestAnimationFrame(function(){for(var groupKey in triggeredGroups){triggeredGroups[groupKey].flushTriggers()}}) return this} Context.findOrCreateByElement=function(element){return Context.findByElement(element)||new Context(element)} Context.refreshAll=function(){for(var contextId in contexts){contexts[contextId].refresh()}} Context.findByElement=function(element){return contexts[element.waypointContextKey]} window.onload=function(){if(oldWindowLoad){oldWindowLoad()} Context.refreshAll()} Waypoint.requestAnimationFrame=function(callback){var requestFn=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||requestAnimationFrameShim requestFn.call(window,callback)} Waypoint.Context=Context}());(function(){'use strict' function byTriggerPoint(a,b){return a.triggerPoint-b.triggerPoint} function byReverseTriggerPoint(a,b){return b.triggerPoint-a.triggerPoint} var groups={vertical:{},horizontal:{}} var Waypoint=window.Waypoint function Group(options){this.name=options.name this.axis=options.axis this.id=this.name+'-'+this.axis this.waypoints=[] this.clearTriggerQueues() groups[this.axis][this.name]=this} Group.prototype.add=function(waypoint){this.waypoints.push(waypoint)} Group.prototype.clearTriggerQueues=function(){this.triggerQueues={up:[],down:[],left:[],right:[]}} Group.prototype.flushTriggers=function(){for(var direction in this.triggerQueues){var waypoints=this.triggerQueues[direction] var reverse=direction==='up'||direction==='left' waypoints.sort(reverse?byReverseTriggerPoint:byTriggerPoint) for(var i=0,end=waypoints.length;i-1){this.waypoints.splice(index,1)}} Group.prototype.first=function(){return this.waypoints[0]} Group.prototype.last=function(){return this.waypoints[this.waypoints.length-1]} Group.findOrCreate=function(options){return groups[options.axis][options.name]||new Group(options)} Waypoint.Group=Group}());(function(){'use strict' var $=window.jQuery var Waypoint=window.Waypoint function JQueryAdapter(element){this.$element=$(element)} $.each(['innerHeight','innerWidth','off','offset','on','outerHeight','outerWidth','scrollLeft','scrollTop'],function(i,method){JQueryAdapter.prototype[method]=function(){var args=Array.prototype.slice.call(arguments) return this.$element[method].apply(this.$element,args)}}) $.each(['extend','inArray','isEmptyObject'],function(i,method){JQueryAdapter[method]=$[method]}) Waypoint.adapters.push({name:'jquery',Adapter:JQueryAdapter}) Waypoint.Adapter=JQueryAdapter}());(function(){'use strict' var Waypoint=window.Waypoint function createExtension(framework){return function(){var waypoints=[] var overrides=arguments[0] if(framework.isFunction(arguments[0])){overrides=framework.extend({},arguments[1]) overrides.handler=arguments[0]} this.each(function(){var options=framework.extend({},overrides,{element:this}) if(typeof options.context==='string'){options.context=framework(this).closest(options.context)[0]} waypoints.push(new Waypoint(options))}) return waypoints}} if(window.jQuery){window.jQuery.fn.waypoint=createExtension(window.jQuery)} if(window.Zepto){window.Zepto.fn.waypoint=createExtension(window.Zepto)}}()); /*! * imagesLoaded PACKAGED v4.1.4 * JavaScript is all like "You images are done yet or what?" * MIT License */ !function(e,t){"function"==typeof define&&define.amd?define("ev-emitter/ev-emitter",t):"object"==typeof module&&module.exports?module.exports=t():e.EvEmitter=t()}("undefined"!=typeof window?window:this,function(){function e(){}var t=e.prototype;return t.on=function(e,t){if(e&&t){var i=this._events=this._events||{},n=i[e]=i[e]||[];return n.indexOf(t)==-1&&n.push(t),this}},t.once=function(e,t){if(e&&t){this.on(e,t);var i=this._onceEvents=this._onceEvents||{},n=i[e]=i[e]||{};return n[t]=!0,this}},t.off=function(e,t){var i=this._events&&this._events[e];if(i&&i.length){var n=i.indexOf(t);return n!=-1&&i.splice(n,1),this}},t.emitEvent=function(e,t){var i=this._events&&this._events[e];if(i&&i.length){i=i.slice(0),t=t||[];for(var n=this._onceEvents&&this._onceEvents[e],o=0;o(winHeight||_window.height()));},_setFocus:function(){(mfp.st.focus?mfp.content.find(mfp.st.focus).eq(0):mfp.wrap).focus();},_onFocusIn:function(e){if(e.target!==mfp.wrap[0]&&!$.contains(mfp.wrap[0],e.target)){mfp._setFocus();return false;}},_parseMarkup:function(template,values,item){var arr;if(item.data){values=$.extend(item.data,values);} _mfpTrigger(MARKUP_PARSE_EVENT,[template,values,item]);$.each(values,function(key,value){if(value===undefined||value===false){return true;} arr=key.split('_');if(arr.length>1){var el=template.find(EVENT_NS+'-'+arr[0]);if(el.length>0){var attr=arr[1];if(attr==='replaceWith'){if(el[0]!==value[0]){el.replaceWith(value);}}else if(attr==='img'){if(el.is('img')){el.attr('src',value);}else{el.replaceWith('');}}else{el.attr(arr[1],value);}}}else{template.find(EVENT_NS+'-'+key).html(value);}});},_getScrollbarSize:function(){if(mfp.scrollbarSize===undefined){var scrollDiv=document.createElement("div");scrollDiv.style.cssText='width: 99px; height: 99px; overflow: scroll; position: absolute; top: -9999px;';document.body.appendChild(scrollDiv);mfp.scrollbarSize=scrollDiv.offsetWidth-scrollDiv.clientWidth;document.body.removeChild(scrollDiv);} return mfp.scrollbarSize;}};$.magnificPopup={instance:null,proto:MagnificPopup.prototype,modules:[],open:function(options,index){_checkInstance();if(!options){options={};}else{options=$.extend(true,{},options);} options.isObj=true;options.index=index||0;return this.instance.open(options);},close:function(){return $.magnificPopup.instance&&$.magnificPopup.instance.close();},registerModule:function(name,module){if(module.options){$.magnificPopup.defaults[name]=module.options;} $.extend(this.proto,module.proto);this.modules.push(name);},defaults:{disableOn:0,key:null,midClick:false,mainClass:'',preloader:true,focus:'',closeOnContentClick:false,closeOnBgClick:true,closeBtnInside:true,showCloseBtn:true,enableEscapeKey:true,modal:false,alignTop:false,removalDelay:0,prependTo:null,fixedContentPos:'auto',fixedBgPos:'auto',overflowY:'auto',closeMarkup:'',tClose:'Close (Esc)',tLoading:'Loading...'}};$.fn.magnificPopup=function(options){_checkInstance();var jqEl=$(this);if(typeof options==="string"){if(options==='open'){var items,itemOpts=_isJQ?jqEl.data('magnificPopup'):jqEl[0].magnificPopup,index=parseInt(arguments[1],10)||0;if(itemOpts.items){items=itemOpts.items[index];}else{items=jqEl;if(itemOpts.delegate){items=items.find(itemOpts.delegate);} items=items.eq(index);} mfp._openClick({mfpEl:items},jqEl,itemOpts);}else{if(mfp.isOpen) mfp[options].apply(mfp,Array.prototype.slice.call(arguments,1));}}else{options=$.extend(true,{},options);if(_isJQ){jqEl.data('magnificPopup',options);}else{jqEl[0].magnificPopup=options;} mfp.addGroup(jqEl,options);} return jqEl;};var INLINE_NS='inline',_hiddenClass,_inlinePlaceholder,_lastInlineElement,_putInlineElementsBack=function(){if(_lastInlineElement){_inlinePlaceholder.after(_lastInlineElement.addClass(_hiddenClass)).detach();_lastInlineElement=null;}};$.magnificPopup.registerModule(INLINE_NS,{options:{hiddenClass:'hide',markup:'',tNotFound:'Content not found'},proto:{initInline:function(){mfp.types.push(INLINE_NS);_mfpOn(CLOSE_EVENT+'.'+INLINE_NS,function(){_putInlineElementsBack();});},getInline:function(item,template){_putInlineElementsBack();if(item.src){var inlineSt=mfp.st.inline,el=$(item.src);if(el.length){var parent=el[0].parentNode;if(parent&&parent.tagName){if(!_inlinePlaceholder){_hiddenClass=inlineSt.hiddenClass;_inlinePlaceholder=_getEl(_hiddenClass);_hiddenClass='mfp-'+_hiddenClass;} _lastInlineElement=el.after(_inlinePlaceholder).detach().removeClass(_hiddenClass);} mfp.updateStatus('ready');}else{mfp.updateStatus('error',inlineSt.tNotFound);el=$('
');} item.inlineElement=el;return el;} mfp.updateStatus('ready');mfp._parseMarkup(template,{},item);return template;}}});var AJAX_NS='ajax',_ajaxCur,_removeAjaxCursor=function(){if(_ajaxCur){$(document.body).removeClass(_ajaxCur);}},_destroyAjaxRequest=function(){_removeAjaxCursor();if(mfp.req){mfp.req.abort();}};$.magnificPopup.registerModule(AJAX_NS,{options:{settings:null,cursor:'mfp-ajax-cur',tError:'The content could not be loaded.'},proto:{initAjax:function(){mfp.types.push(AJAX_NS);_ajaxCur=mfp.st.ajax.cursor;_mfpOn(CLOSE_EVENT+'.'+AJAX_NS,_destroyAjaxRequest);_mfpOn('BeforeChange.'+AJAX_NS,_destroyAjaxRequest);},getAjax:function(item){if(_ajaxCur){$(document.body).addClass(_ajaxCur);} mfp.updateStatus('loading');var opts=$.extend({url:item.src,success:function(data,textStatus,jqXHR){var temp={data:data,xhr:jqXHR};_mfpTrigger('ParseAjax',temp);mfp.appendContent($(temp.data),AJAX_NS);item.finished=true;_removeAjaxCursor();mfp._setFocus();setTimeout(function(){mfp.wrap.addClass(READY_CLASS);},16);mfp.updateStatus('ready');_mfpTrigger('AjaxContentAdded');},error:function(){_removeAjaxCursor();item.finished=item.loadError=true;mfp.updateStatus('error',mfp.st.ajax.tError.replace('%url%',item.src));}},mfp.st.ajax.settings);mfp.req=$.ajax(opts);return'';}}});var _imgInterval,_getTitle=function(item){if(item.data&&item.data.title!==undefined) return item.data.title;var src=mfp.st.image.titleSrc;if(src){if($.isFunction(src)){return src.call(mfp,item);}else if(item.el){return item.el.attr(src)||'';}} return'';};$.magnificPopup.registerModule('image',{options:{markup:'
'+'
'+'
'+'
'+'
'+'
'+'
'+'
'+'
'+'
'+'
'+'
',cursor:'mfp-zoom-out-cur',titleSrc:'title',verticalFit:true,tError:'The image could not be loaded.'},proto:{initImage:function(){var imgSt=mfp.st.image,ns='.image';mfp.types.push('image');_mfpOn(OPEN_EVENT+ns,function(){if(mfp.currItem.type==='image'&&imgSt.cursor){$(document.body).addClass(imgSt.cursor);}});_mfpOn(CLOSE_EVENT+ns,function(){if(imgSt.cursor){$(document.body).removeClass(imgSt.cursor);} _window.off('resize'+EVENT_NS);});_mfpOn('Resize'+ns,mfp.resizeImage);if(mfp.isLowIE){_mfpOn('AfterChange',mfp.resizeImage);}},resizeImage:function(){var item=mfp.currItem;if(!item||!item.img)return;if(mfp.st.image.verticalFit){var decr=0;if(mfp.isLowIE){decr=parseInt(item.img.css('padding-top'),10)+parseInt(item.img.css('padding-bottom'),10);} item.img.css('max-height',mfp.wH-decr);}},_onImageHasSize:function(item){if(item.img){item.hasSize=true;if(_imgInterval){clearInterval(_imgInterval);} item.isCheckingImgSize=false;_mfpTrigger('ImageHasSize',item);if(item.imgHidden){if(mfp.content) mfp.content.removeClass('mfp-loading');item.imgHidden=false;}}},findImageSize:function(item){var counter=0,img=item.img[0],mfpSetInterval=function(delay){if(_imgInterval){clearInterval(_imgInterval);} _imgInterval=setInterval(function(){if(img.naturalWidth>0){mfp._onImageHasSize(item);return;} if(counter>200){clearInterval(_imgInterval);} counter++;if(counter===3){mfpSetInterval(10);}else if(counter===40){mfpSetInterval(50);}else if(counter===100){mfpSetInterval(500);}},delay);};mfpSetInterval(1);},getImage:function(item,template){var guard=0,onLoadComplete=function(){if(item){if(item.img[0].complete){item.img.off('.mfploader');if(item===mfp.currItem){mfp._onImageHasSize(item);mfp.updateStatus('ready');} item.hasSize=true;item.loaded=true;_mfpTrigger('ImageLoadComplete');} else{guard++;if(guard<200){setTimeout(onLoadComplete,100);}else{onLoadError();}}}},onLoadError=function(){if(item){item.img.off('.mfploader');if(item===mfp.currItem){mfp._onImageHasSize(item);mfp.updateStatus('error',imgSt.tError.replace('%url%',item.src));} item.hasSize=true;item.loaded=true;item.loadError=true;}},imgSt=mfp.st.image;var el=template.find('.mfp-img');if(el.length){var img=document.createElement('img');img.className='mfp-img';if(item.el&&item.el.find('img').length){img.alt=item.el.find('img').attr('alt');} item.img=$(img).on('load.mfploader',onLoadComplete).on('error.mfploader',onLoadError);img.src=item.src;if(el.is('img')){item.img=item.img.clone();} img=item.img[0];if(img.naturalWidth>0){item.hasSize=true;}else if(!img.width){item.hasSize=false;}} mfp._parseMarkup(template,{title:_getTitle(item),img_replaceWith:item.img},item);mfp.resizeImage();if(item.hasSize){if(_imgInterval)clearInterval(_imgInterval);if(item.loadError){template.addClass('mfp-loading');mfp.updateStatus('error',imgSt.tError.replace('%url%',item.src));}else{template.removeClass('mfp-loading');mfp.updateStatus('ready');} return template;} mfp.updateStatus('loading');item.loading=true;if(!item.hasSize){item.imgHidden=true;template.addClass('mfp-loading');mfp.findImageSize(item);} return template;}}});var hasMozTransform,getHasMozTransform=function(){if(hasMozTransform===undefined){hasMozTransform=document.createElement('p').style.MozTransform!==undefined;} return hasMozTransform;};$.magnificPopup.registerModule('zoom',{options:{enabled:false,easing:'ease-in-out',duration:300,opener:function(element){return element.is('img')?element:element.find('img');}},proto:{initZoom:function(){var zoomSt=mfp.st.zoom,ns='.zoom',image;if(!zoomSt.enabled||!mfp.supportsTransition){return;} var duration=zoomSt.duration,getElToAnimate=function(image){var newImg=image.clone().removeAttr('style').removeAttr('class').addClass('mfp-animated-image'),transition='all '+(zoomSt.duration/1000)+'s '+zoomSt.easing,cssObj={position:'fixed',zIndex:9999,left:0,top:0,'-webkit-backface-visibility':'hidden'},t='transition';cssObj['-webkit-'+t]=cssObj['-moz-'+t]=cssObj['-o-'+t]=cssObj[t]=transition;newImg.css(cssObj);return newImg;},showMainContent=function(){mfp.content.css('visibility','visible');},openTimeout,animatedImg;_mfpOn('BuildControls'+ns,function(){if(mfp._allowZoom()){clearTimeout(openTimeout);mfp.content.css('visibility','hidden');image=mfp._getItemToZoom();if(!image){showMainContent();return;} animatedImg=getElToAnimate(image);animatedImg.css(mfp._getOffset());mfp.wrap.append(animatedImg);openTimeout=setTimeout(function(){animatedImg.css(mfp._getOffset(true));openTimeout=setTimeout(function(){showMainContent();setTimeout(function(){animatedImg.remove();image=animatedImg=null;_mfpTrigger('ZoomAnimationEnded');},16);},duration);},16);}});_mfpOn(BEFORE_CLOSE_EVENT+ns,function(){if(mfp._allowZoom()){clearTimeout(openTimeout);mfp.st.removalDelay=duration;if(!image){image=mfp._getItemToZoom();if(!image){return;} animatedImg=getElToAnimate(image);} animatedImg.css(mfp._getOffset(true));mfp.wrap.append(animatedImg);mfp.content.css('visibility','hidden');setTimeout(function(){animatedImg.css(mfp._getOffset());},16);}});_mfpOn(CLOSE_EVENT+ns,function(){if(mfp._allowZoom()){showMainContent();if(animatedImg){animatedImg.remove();} image=null;}});},_allowZoom:function(){return mfp.currItem.type==='image';},_getItemToZoom:function(){if(mfp.currItem.hasSize){return mfp.currItem.img;}else{return false;}},_getOffset:function(isLarge){var el;if(isLarge){el=mfp.currItem.img;}else{el=mfp.st.zoom.opener(mfp.currItem.el||mfp.currItem);} var offset=el.offset();var paddingTop=parseInt(el.css('padding-top'),10);var paddingBottom=parseInt(el.css('padding-bottom'),10);offset.top-=($(window).scrollTop()-paddingTop);var obj={width:el.width(),height:(_isJQ?el.innerHeight():el[0].offsetHeight)-paddingBottom-paddingTop};if(getHasMozTransform()){obj['-moz-transform']=obj['transform']='translate('+offset.left+'px,'+offset.top+'px)';}else{obj.left=offset.left;obj.top=offset.top;} return obj;}}});var IFRAME_NS='iframe',_emptyPage='//about:blank',_fixIframeBugs=function(isShowing){if(mfp.currTemplate[IFRAME_NS]){var el=mfp.currTemplate[IFRAME_NS].find('iframe');if(el.length){if(!isShowing){el[0].src=_emptyPage;} if(mfp.isIE8){el.css('display',isShowing?'block':'none');}}}};$.magnificPopup.registerModule(IFRAME_NS,{options:{markup:'
'+'
'+''+'
',srcAction:'iframe_src',patterns:{youtube:{index:'youtube.com',id:'v=',src:'//www.youtube.com/embed/%id%?autoplay=1'},youtube_compressed_url:{index:'youtu.be/',id:'/',src:'//www.youtube.com/embed/%id%?autoplay=1'},vimeo:{index:'vimeo.com/',id:'/',src:'//player.vimeo.com/video/%id%?autoplay=1'},gmaps:{index:'//maps.google.',src:'%id%&output=embed'}}},proto:{initIframe:function(){mfp.types.push(IFRAME_NS);_mfpOn('BeforeChange',function(e,prevType,newType){if(prevType!==newType){if(prevType===IFRAME_NS){_fixIframeBugs();}else if(newType===IFRAME_NS){_fixIframeBugs(true);}}});_mfpOn(CLOSE_EVENT+'.'+IFRAME_NS,function(){_fixIframeBugs();});},getIframe:function(item,template){var embedSrc=item.src;var iframeSt=mfp.st.iframe;$.each(iframeSt.patterns,function(){if(embedSrc.indexOf(this.index)>-1){if(this.id){if(typeof this.id==='string'){embedSrc=embedSrc.substr(embedSrc.lastIndexOf(this.id)+this.id.length,embedSrc.length);}else{embedSrc=this.id.call(this,embedSrc);}} embedSrc=this.src.replace('%id%',embedSrc);return false;}});var dataObj={};if(iframeSt.srcAction){dataObj[iframeSt.srcAction]=embedSrc;} mfp._parseMarkup(template,dataObj,item);mfp.updateStatus('ready');return template;}}});var _getLoopedId=function(index){var numSlides=mfp.items.length;if(index>numSlides-1){return index-numSlides;}else if(index<0){return numSlides+index;} return index;},_replaceCurrTotal=function(text,curr,total){return text.replace(/%curr%/gi,curr+1).replace(/%total%/gi,total);};$.magnificPopup.registerModule('gallery',{options:{enabled:false,arrowMarkup:'',preload:[0,2],navigateByImgClick:true,arrows:true,tPrev:'Previous (Left arrow key)',tNext:'Next (Right arrow key)',tCounter:'%curr% of %total%'},proto:{initGallery:function(){var gSt=mfp.st.gallery,ns='.mfp-gallery',supportsFastClick=Boolean($.fn.mfpFastClick);mfp.direction=true;if(!gSt||!gSt.enabled)return false;_wrapClasses+=' mfp-gallery';_mfpOn(OPEN_EVENT+ns,function(){if(gSt.navigateByImgClick){mfp.wrap.on('click'+ns,'.mfp-img',function(){if(mfp.items.length>1){mfp.next();return false;}});} _document.on('keydown'+ns,function(e){if(e.keyCode===37){mfp.prev();}else if(e.keyCode===39){mfp.next();}});});_mfpOn('UpdateStatus'+ns,function(e,data){if(data.text){data.text=_replaceCurrTotal(data.text,mfp.currItem.index,mfp.items.length);}});_mfpOn(MARKUP_PARSE_EVENT+ns,function(e,element,values,item){var l=mfp.items.length;values.counter=l>1?_replaceCurrTotal(gSt.tCounter,item.index,l):'';});_mfpOn('BuildControls'+ns,function(){if(mfp.items.length>1&&gSt.arrows&&!mfp.arrowLeft){var markup=gSt.arrowMarkup,arrowLeft=mfp.arrowLeft=$(markup.replace(/%title%/gi,gSt.tPrev).replace(/%dir%/gi,'left')).addClass(PREVENT_CLOSE_CLASS),arrowRight=mfp.arrowRight=$(markup.replace(/%title%/gi,gSt.tNext).replace(/%dir%/gi,'right')).addClass(PREVENT_CLOSE_CLASS);var eName=supportsFastClick?'mfpFastClick':'click';arrowLeft[eName](function(){mfp.prev();});arrowRight[eName](function(){mfp.next();});if(mfp.isIE7){_getEl('b',arrowLeft[0],false,true);_getEl('a',arrowLeft[0],false,true);_getEl('b',arrowRight[0],false,true);_getEl('a',arrowRight[0],false,true);} mfp.container.append(arrowLeft.add(arrowRight));}});_mfpOn(CHANGE_EVENT+ns,function(){if(mfp._preloadTimeout)clearTimeout(mfp._preloadTimeout);mfp._preloadTimeout=setTimeout(function(){mfp.preloadNearbyImages();mfp._preloadTimeout=null;},16);});_mfpOn(CLOSE_EVENT+ns,function(){_document.off(ns);mfp.wrap.off('click'+ns);if(mfp.arrowLeft&&supportsFastClick){mfp.arrowLeft.add(mfp.arrowRight).destroyMfpFastClick();} mfp.arrowRight=mfp.arrowLeft=null;});},next:function(){mfp.direction=true;mfp.index=_getLoopedId(mfp.index+1);mfp.updateItemHTML();},prev:function(){mfp.direction=false;mfp.index=_getLoopedId(mfp.index-1);mfp.updateItemHTML();},goTo:function(newIndex){mfp.direction=(newIndex>=mfp.index);mfp.index=newIndex;mfp.updateItemHTML();},preloadNearbyImages:function(){var p=mfp.st.gallery.preload,preloadBefore=Math.min(p[0],mfp.items.length),preloadAfter=Math.min(p[1],mfp.items.length),i;for(i=1;i<=(mfp.direction?preloadAfter:preloadBefore);i++){mfp._preloadItem(mfp.index+i);} for(i=1;i<=(mfp.direction?preloadBefore:preloadAfter);i++){mfp._preloadItem(mfp.index-i);}},_preloadItem:function(index){index=_getLoopedId(index);if(mfp.items[index].preloaded){return;} var item=mfp.items[index];if(!item.parsed){item=mfp.parseEl(index);} _mfpTrigger('LazyLoad',item);if(item.type==='image'){item.img=$('').on('load.mfploader',function(){item.hasSize=true;}).on('error.mfploader',function(){item.hasSize=true;item.loadError=true;_mfpTrigger('LazyLoadError',item);}).attr('src',item.src);} item.preloaded=true;}}});var RETINA_NS='retina';$.magnificPopup.registerModule(RETINA_NS,{options:{replaceSrc:function(item){return item.src.replace(/\.\w+$/,function(m){return'@2x'+m;});},ratio:1},proto:{initRetina:function(){if(window.devicePixelRatio>1){var st=mfp.st.retina,ratio=st.ratio;ratio=!isNaN(ratio)?ratio:ratio();if(ratio>1){_mfpOn('ImageHasSize'+'.'+RETINA_NS,function(e,item){item.img.css({'max-width':item.img[0].naturalWidth/ratio,'width':'100%'});});_mfpOn('ElementParse'+'.'+RETINA_NS,function(e,item){item.src=st.replaceSrc(item,ratio);});}}}}});(function(){var ghostClickDelay=1000,supportsTouch='ontouchstart'in window,unbindTouchMove=function(){_window.off('touchmove'+ns+' touchend'+ns);},eName='mfpFastClick',ns='.'+eName;$.fn.mfpFastClick=function(callback){return $(this).each(function(){var elem=$(this),lock;if(supportsTouch){var timeout,startX,startY,pointerMoved,point,numPointers;elem.on('touchstart'+ns,function(e){pointerMoved=false;numPointers=1;point=e.originalEvent?e.originalEvent.touches[0]:e.touches[0];startX=point.clientX;startY=point.clientY;_window.on('touchmove'+ns,function(e){point=e.originalEvent?e.originalEvent.touches:e.touches;numPointers=point.length;point=point[0];if(Math.abs(point.clientX-startX)>10||Math.abs(point.clientY-startY)>10){pointerMoved=true;unbindTouchMove();}}).on('touchend'+ns,function(e){unbindTouchMove();if(pointerMoved||numPointers>1){return;} lock=true;e.preventDefault();clearTimeout(timeout);timeout=setTimeout(function(){lock=false;},ghostClickDelay);callback();});});} elem.on('click'+ns,function(){if(!lock){callback();}});});};$.fn.destroyMfpFastClick=function(){$(this).off('touchstart'+ns+' click'+ns);if(supportsTouch)_window.off('touchmove'+ns+' touchend'+ns);};})();_checkInstance();})); (function($){"use strict";function NectarTestimonialSlider(el,type,resizeVideoToCover,fullWidthContentColumns){this.el=el;this.type=type;this.resizeVideoToCover=resizeVideoToCover;this.fullWidthContentColumns=fullWidthContentColumns;this.flickityEl=null;this.createTestimonialControls();} NectarTestimonialSlider.prototype.createTestimonialControls=function(){var $frontEndEditorTestimonialDiv=($('body.vc_editor').length>0)?'> div':'blockquote';var $that,slide_interval,objectStore;if(this.type!='multiple_visible'&&this.type!='multiple_visible_minimal'){this.el.animate({'opacity':'1'},800);if(this.el.find('blockquote').length>1){this.el.find('.controls, .testimonial-next-prev').remove();this.el.append('
    ');var slideNum=this.el.find('blockquote').length;$that=this.el;for(var i=0;i');}else{$that.find('.controls ul').append('
  • '+(i+1)+'
  • ');}} if(this.el.is('[data-style="minimal"]')){this.el.append('
    ');this.el.find('.testimonial-next-prev a').on('click',this.minimalNextPrevSelect);if(this.el.find('.active').length==0){this.el.find('.slides '+$frontEndEditorTestimonialDiv+':first-child').addClass('active').css({'opacity':'1','transform':'translateX(0px)'}).css('z-index','20');if(!this.el.hasClass('disable-height-animation')){this.el.find('.slides').css({'height':this.el.find('.slides '+$frontEndEditorTestimonialDiv+':first-child').height()+40+'px'});}} if(this.el.attr('data-autorotate').length>0){$that=this.el;slide_interval=(parseInt(this.el.attr('data-autorotate'))<100)?4000:parseInt(this.el.attr('data-autorotate'));objectStore=this;var $rotate=setInterval(function(){objectStore.testimonialRotate($that);},slide_interval);} this.el.find('.testimonial-next-prev a').on('click',function(e){if(typeof e.clientX!='undefined'){clearInterval($rotate);}});this.el.find('.controls ul').wrap('
    ');this.el.find('.controls ul').css('width',((this.el.find('.controls ul li').length*20)+1)+'px');this.el.find('.controls').append('/'+this.el.find('blockquote').length+'');this.el.swipe({swipeLeft:function(e){$that.find('.testimonial-next-prev .next').trigger('click');e.stopImmediatePropagation();clearInterval($rotate);return false;},swipeRight:function(e){$that.find('.testimonial-next-prev .prev').trigger('click');e.stopImmediatePropagation();clearInterval($rotate);return false;}});} if(!this.el.is('[data-style="minimal"]')){this.el.find('.controls ul li').on('click',this.defaultPaginationSelect);this.el.find('.controls ul li').first().trigger('click');if(this.el.attr('data-autorotate').length>0){slide_interval=(parseInt(this.el.attr('data-autorotate'))<100)?4000:parseInt(this.el.attr('data-autorotate'));$that=this.el;objectStore=this;var $rotate=setInterval(function(){objectStore.testimonialRotate($that);},slide_interval);} this.el.find('.controls li').on('click',function(e){if(typeof e.clientX!='undefined')clearInterval($rotate);});this.el.swipe({swipeLeft:function(e){$that.find('.controls ul li span.active').parent().next('li').find('span').trigger('click');e.stopImmediatePropagation();clearInterval($rotate);return false;},swipeRight:function(e){$that.find('.controls ul li span.active').parent().prev('li').find('span').trigger('click');e.stopImmediatePropagation();clearInterval($rotate);return false;}});}} else if(this.el.find('.controls').length==0){var currentHeight=this.el.find('.slides blockquote').height();this.el.find('.slides blockquote').css({'opacity':'0','transform':'translateX(-25px)','z-index':'1'});this.el.find('.slides blockquote').css({'opacity':'1','transform':'translateX(0px)'}).css('z-index','20');this.el.find('.slides').stop(true,true).animate({'height':currentHeight+20+'px'},450,'easeOutCubic');}} if(this.type=='multiple_visible'||this.type=='multiple_visible_minimal'){objectStore=this;$that=this.el;var $element=$that;var $autoplay=($that.attr('data-autorotate').length>1&&parseInt($that.attr('data-autorotate'))>100)?parseInt($that.attr('data-autorotate')):false;if($that.find('img').length==0){$element=$('body');} if(this.el.attr('data-style')!='multiple_visible_minimal'){this.el.find('blockquote').each(function(){$(this).find('.image-icon').insertAfter($(this).find('p'));});}else{if(this.el.find('blockquote').length>4){this.el.addClass('has-alf');}} var $testimonialGroupCells=(this.el.attr('data-style')=='multiple_visible_minimal')?true:false;var $frontEndEditorDrag=($('body.vc_editor').length>0)?false:true;var $frontEndEditorPause=($('body.vc_editor').length>0)?true:false;this.flickityEl=$that.find('.slides').flickity({contain:true,draggable:$frontEndEditorDrag,groupCells:$testimonialGroupCells,lazyLoad:false,imagesLoaded:true,percentPosition:true,prevNextButtons:false,pageDots:true,resize:true,setGallerySize:true,wrapAround:true,autoPlay:$autoplay,pauseAutoPlayOnHover:$frontEndEditorPause,accessibility:false});if(this.flickityEl.find('.vc_element.is-selected > blockquote').length>0){this.flickityEl.find('.vc_element.is-selected > blockquote').addClass('is-selected');this.flickityEl.on('select.flickity',function(){objectStore.flickityEl.find('.vc_element > blockquote').removeClass('is-selected');objectStore.flickityEl.find('.vc_element.is-selected > blockquote').addClass('is-selected');});} $that.css('opacity','1');} var testimonialObj=this;$('body').on('click','.testimonial_slider:not([data-style*="multiple_visible"]):not([data-style="minimal"]) .controls li, .testimonial_slider[data-style="minimal"] .testimonial-next-prev a',function(){testimonialObj.resizeVideoToCover();return false;});};NectarTestimonialSlider.prototype.defaultPaginationSelect=function(clicked){var $target=$(clicked.currentTarget);if($target.find('span').hasClass('active')){return false;} var $frontEndEditorTestimonialDiv=($('body.vc_editor').length>0)?'> div':'blockquote';var $index=$target.index();var currentHeight=$target.parents('.testimonial_slider').find('.slides blockquote').eq($index).height();$target.parents('.testimonial_slider').find('li span').removeClass('active');$target.find('span').addClass('active');$target.parents('.testimonial_slider').find('.slides '+$frontEndEditorTestimonialDiv).addClass('no-trans');$target.parents('.testimonial_slider').find('.slides '+$frontEndEditorTestimonialDiv).css({'opacity':'0','transform':'translateX(-25px)','z-index':'1'});$target.parents('.testimonial_slider').find('.slides '+$frontEndEditorTestimonialDiv).eq($index).removeClass('no-trans').css({'opacity':'1','transform':'translateX(0px)'}).css('z-index','20');$target.parents('.testimonial_slider:not(.disable-height-animation)').find('.slides').stop(true,true).animate({'height':currentHeight+40+'px'},450,'easeOutCubic');};NectarTestimonialSlider.prototype.minimalNextPrevSelect=function(clicked){var $target=$(clicked.currentTarget);var $frontEndEditorTestimonialDiv=($('body.vc_editor').length>0)?'> div':'blockquote';var $index=$target.parents('.testimonial_slider').find('.slides '+$frontEndEditorTestimonialDiv+'.active').index();var $actualIndex=$index;var currentHeight;$target.parents('.testimonial_slider').find('.slides '+$frontEndEditorTestimonialDiv).addClass('no-trans');$target.parents('.testimonial_slider').find('.slides '+$frontEndEditorTestimonialDiv).css({'opacity':'0','transform':'translateX(-25px)','z-index':'1'});$target.parents('.testimonial_slider').find('.slides '+$frontEndEditorTestimonialDiv).eq($index).removeClass('active');if($target.hasClass('next')){if($index+1>=$target.parents('.testimonial_slider').find('.slides '+$frontEndEditorTestimonialDiv).length){$actualIndex=0;}else{$actualIndex=$index+1;} currentHeight=$target.parents('.testimonial_slider').find('.slides '+$frontEndEditorTestimonialDiv).eq($actualIndex).height();$target.parents('.testimonial_slider').find('.slides '+$frontEndEditorTestimonialDiv).eq($actualIndex).addClass('active').removeClass('no-trans').css({'opacity':'1','transform':'translateX(0px)'}).css('z-index','20');$target.parents('.testimonial_slider').find('.control-wrap ul').css({'transform':'translateX(-'+(20*$actualIndex)+'px)'});}else{if($index-1==-1){$actualIndex=$target.parents('.testimonial_slider').find('.slides '+$frontEndEditorTestimonialDiv).length-1;}else{$actualIndex=$index-1;} currentHeight=$target.parents('.testimonial_slider').find('.slides '+$frontEndEditorTestimonialDiv).eq($index-1).height();$target.parents('.testimonial_slider').find('.slides '+$frontEndEditorTestimonialDiv).eq($index-1).addClass('active').removeClass('no-trans').css({'opacity':'1','transform':'translateX(0px)'}).css('z-index','20');$target.parents('.testimonial_slider').find('.control-wrap ul').css({'transform':'translateX(-'+(20*$actualIndex)+'px)'});} $target.parents('.testimonial_slider:not(.disable-height-animation)').find('.slides').stop(true,true).animate({'height':currentHeight+40+'px'},450,'easeOutCubic');return false;};NectarTestimonialSlider.prototype.testimonialRotate=function(){var $testimonialLength=this.el.find('li').length;var $currentTestimonial=this.el.find('.pagination-switch.active').parent().index();if(this.el.parents('.toggle').length>0&&this.el.parents('.toggle').hasClass('open')){if(!this.el.is('[data-style="minimal"]')){if($currentTestimonial+1==$testimonialLength){this.el.find('ul li:first-child').trigger('click');}else{this.el.find('.pagination-switch.active').parent().next('li').trigger('click');}}else{this.el.find('.testimonial-next-prev .next').trigger('click');}}else{if(!this.el.is('[data-style="minimal"]')){if($currentTestimonial+1==$testimonialLength){this.el.find('ul li:first-child').trigger('click');}else{this.el.find('.pagination-switch.active').parent().next('li').trigger('click');}}else{this.el.find('.testimonial-next-prev .next').trigger('click');}}};NectarTestimonialSlider.prototype.testimonialHeightResize=function(){if(!this.el.is('.disable-height-animation')&&!this.el.is('[data-style*="multiple_visible"]')){var $frontEndEditorTestimonialDiv=($('body.vc_editor').length>0)?'.slides > div':'.slides blockquote';var $index;if(this.el.is('[data-style="minimal"]')){$index=this.el.find($frontEndEditorTestimonialDiv+'.active').index();}else{$index=this.el.find('.controls ul li span.active').parent().index();} var currentHeight=this.el.find($frontEndEditorTestimonialDiv).eq($index).height();this.el.find('.slides').stop(true,true).css({'height':currentHeight+40+'px'});}};NectarTestimonialSlider.prototype.testimonialSliderHeight=function(){if(this.el.is('.disable-height-animation')&&!this.el.is('[data-style*="multiple_visible"]')){var $tallestQuote=0;this.el.find('blockquote').each(function(){($(this).height()>$tallestQuote)?$tallestQuote=$(this).height():$tallestQuote=$tallestQuote;});if($tallestQuote==0){$tallestQuote=100;} this.el.find('.slides').css('height',$tallestQuote+40+'px');this.el.animate({'opacity':'1'});this.fullWidthContentColumns();}};NectarTestimonialSlider.prototype.testimonialSliderHeightMinimalMult=function(){if(this.type=='multiple_visible_minimal'){var $tallestQuote=0;this.el.find('blockquote > .inner p').css('height','auto');this.el.find('blockquote > .inner p').each(function(){($(this).height()>$tallestQuote)?$tallestQuote=$(this).height():$tallestQuote=$tallestQuote;});if($tallestQuote==0){$tallestQuote=200;} this.el.find('blockquote > .inner p').css('height',$tallestQuote+'px');}};window.NectarTestimonialSlider=NectarTestimonialSlider;}(jQuery)); /*! * Flickity PACKAGED v2.1.2 * Touch, responsive, flickable carousels * * Licensed GPLv3 for open source use * or Flickity Commercial License for commercial use * * https://flickity.metafizzy.co * Copyright 2015-2018 Metafizzy */ /** * Bridget makes jQuery widgets * v2.0.1 * MIT license */ /* jshint browser: true, strict: true, undef: true, unused: true */ ( function( window, factory ) { /*jshint strict: false */ /* globals define, module, require */ if ( typeof define == 'function' && define.amd ) { define( 'jquery-bridget/jquery-bridget',[ 'jquery' ], function( jQuery ) { return factory( window, jQuery ); }); } else if ( typeof module == 'object' && module.exports ) { module.exports = factory( window, require('jquery') ); } else { window.jQueryBridget = factory( window, window.jQuery ); } }( window, function factory( window, jQuery ) { 'use strict'; var arraySlice = Array.prototype.slice; var console = window.console; var logError = typeof console == 'undefined' ? function() {} : function( message ) { console.error( message ); }; function jQueryBridget( namespace, PluginClass, $ ) { $ = $ || jQuery || window.jQuery; if ( !$ ) { return; } if ( !PluginClass.prototype.option ) { PluginClass.prototype.option = function( opts ) { if ( !$.isPlainObject( opts ) ){ return; } this.options = $.extend( true, this.options, opts ); }; } $.fn[ namespace ] = function( arg0 /*, arg1 */ ) { if ( typeof arg0 == 'string' ) { var args = arraySlice.call( arguments, 1 ); return methodCall( this, arg0, args ); } plainCall( this, arg0 ); return this; }; function methodCall( $elems, methodName, args ) { var returnValue; var pluginMethodStr = '$().' + namespace + '("' + methodName + '")'; $elems.each( function( i, elem ) { var instance = $.data( elem, namespace ); if ( !instance ) { logError( namespace + ' not initialized. Cannot call methods, i.e. ' + pluginMethodStr ); return; } var method = instance[ methodName ]; if ( !method || methodName.charAt(0) == '_' ) { logError( pluginMethodStr + ' is not a valid method' ); return; } var value = method.apply( instance, args ); returnValue = returnValue === undefined ? value : returnValue; }); return returnValue !== undefined ? returnValue : $elems; } function plainCall( $elems, options ) { $elems.each( function( i, elem ) { var instance = $.data( elem, namespace ); if ( instance ) { instance.option( options ); instance._init(); } else { instance = new PluginClass( elem, options ); $.data( elem, namespace, instance ); } }); } updateJQuery( $ ); } function updateJQuery( $ ) { if ( !$ || ( $ && $.bridget ) ) { return; } $.bridget = jQueryBridget; } updateJQuery( jQuery || window.jQuery ); return jQueryBridget; })); /** * EvEmitter v1.1.0 * Lil' event emitter * MIT License */ /* jshint unused: true, undef: true, strict: true */ ( function( global, factory ) { /* jshint strict: false */ /* globals define, module, window */ if ( typeof define == 'function' && define.amd ) { define( 'ev-emitter/ev-emitter',factory ); } else if ( typeof module == 'object' && module.exports ) { module.exports = factory(); } else { global.EvEmitter = factory(); } }( typeof window != 'undefined' ? window : this, function() { function EvEmitter() {} var proto = EvEmitter.prototype; proto.on = function( eventName, listener ) { if ( !eventName || !listener ) { return; } var events = this._events = this._events || {}; var listeners = events[ eventName ] = events[ eventName ] || []; if ( listeners.indexOf( listener ) == -1 ) { listeners.push( listener ); } return this; }; proto.once = function( eventName, listener ) { if ( !eventName || !listener ) { return; } this.on( eventName, listener ); var onceEvents = this._onceEvents = this._onceEvents || {}; var onceListeners = onceEvents[ eventName ] = onceEvents[ eventName ] || {}; onceListeners[ listener ] = true; return this; }; proto.off = function( eventName, listener ) { var listeners = this._events && this._events[ eventName ]; if ( !listeners || !listeners.length ) { return; } var index = listeners.indexOf( listener ); if ( index != -1 ) { listeners.splice( index, 1 ); } return this; }; proto.emitEvent = function( eventName, args ) { var listeners = this._events && this._events[ eventName ]; if ( !listeners || !listeners.length ) { return; } listeners = listeners.slice(0); args = args || []; var onceListeners = this._onceEvents && this._onceEvents[ eventName ]; for ( var i=0; i < listeners.length; i++ ) { var listener = listeners[i] var isOnce = onceListeners && onceListeners[ listener ]; if ( isOnce ) { this.off( eventName, listener ); delete onceListeners[ listener ]; } listener.apply( this, args ); } return this; }; proto.allOff = function() { delete this._events; delete this._onceEvents; }; return EvEmitter; })); /*! * getSize v2.0.3 * measure size of elements * MIT license */ /* jshint browser: true, strict: true, undef: true, unused: true */ /* globals console: false */ ( function( window, factory ) { /* jshint strict: false */ /* globals define, module */ if ( typeof define == 'function' && define.amd ) { define( 'get-size/get-size',factory ); } else if ( typeof module == 'object' && module.exports ) { module.exports = factory(); } else { window.getSize = factory(); } })( window, function factory() { 'use strict'; function getStyleSize( value ) { var num = parseFloat( value ); var isValid = value.indexOf('%') == -1 && !isNaN( num ); return isValid && num; } function noop() {} var logError = typeof console == 'undefined' ? noop : function( message ) { console.error( message ); }; var measurements = [ 'paddingLeft', 'paddingRight', 'paddingTop', 'paddingBottom', 'marginLeft', 'marginRight', 'marginTop', 'marginBottom', 'borderLeftWidth', 'borderRightWidth', 'borderTopWidth', 'borderBottomWidth' ]; var measurementsLength = measurements.length; function getZeroSize() { var size = { width: 0, height: 0, innerWidth: 0, innerHeight: 0, outerWidth: 0, outerHeight: 0 }; for ( var i=0; i < measurementsLength; i++ ) { var measurement = measurements[i]; size[ measurement ] = 0; } return size; } /** * getStyle, get style of element, check for Firefox bug * https://bugzilla.mozilla.org/show_bug.cgi?id=548397 */ function getStyle( elem ) { var style = getComputedStyle( elem ); if ( !style ) { logError( 'Style returned ' + style + '. Are you running this code in a hidden iframe on Firefox? ' + 'See https://bit.ly/getsizebug1' ); } return style; } var isSetup = false; var isBoxSizeOuter; /** * setup * check isBoxSizerOuter * do on first getSize() rather than on page load for Firefox bug */ function setup() { if ( isSetup ) { return; } isSetup = true; /** * Chrome & Safari measure the outer-width on style.width on border-box elems * IE11 & Firefox<29 measures the inner-width */ var div = document.createElement('div'); div.style.width = '200px'; div.style.padding = '1px 2px 3px 4px'; div.style.borderStyle = 'solid'; div.style.borderWidth = '1px 2px 3px 4px'; div.style.boxSizing = 'border-box'; var body = document.body || document.documentElement; body.appendChild( div ); var style = getStyle( div ); isBoxSizeOuter = Math.round( getStyleSize( style.width ) ) == 200; getSize.isBoxSizeOuter = isBoxSizeOuter; body.removeChild( div ); } function getSize( elem ) { setup(); if ( typeof elem == 'string' ) { elem = document.querySelector( elem ); } if ( !elem || typeof elem != 'object' || !elem.nodeType ) { return; } var style = getStyle( elem ); if ( style.display == 'none' ) { return getZeroSize(); } var size = {}; size.width = elem.offsetWidth; size.height = elem.offsetHeight; var isBorderBox = size.isBorderBox = style.boxSizing == 'border-box'; for ( var i=0; i < measurementsLength; i++ ) { var measurement = measurements[i]; var value = style[ measurement ]; var num = parseFloat( value ); size[ measurement ] = !isNaN( num ) ? num : 0; } var paddingWidth = size.paddingLeft + size.paddingRight; var paddingHeight = size.paddingTop + size.paddingBottom; var marginWidth = size.marginLeft + size.marginRight; var marginHeight = size.marginTop + size.marginBottom; var borderWidth = size.borderLeftWidth + size.borderRightWidth; var borderHeight = size.borderTopWidth + size.borderBottomWidth; var isBorderBoxSizeOuter = isBorderBox && isBoxSizeOuter; var styleWidth = getStyleSize( style.width ); if ( styleWidth !== false ) { size.width = styleWidth + ( isBorderBoxSizeOuter ? 0 : paddingWidth + borderWidth ); } var styleHeight = getStyleSize( style.height ); if ( styleHeight !== false ) { size.height = styleHeight + ( isBorderBoxSizeOuter ? 0 : paddingHeight + borderHeight ); } size.innerWidth = size.width - ( paddingWidth + borderWidth ); size.innerHeight = size.height - ( paddingHeight + borderHeight ); size.outerWidth = size.width + marginWidth; size.outerHeight = size.height + marginHeight; return size; } return getSize; }); /** * matchesSelector v2.0.2 * matchesSelector( element, '.selector' ) * MIT license */ /*jshint browser: true, strict: true, undef: true, unused: true */ ( function( window, factory ) { /*global define: false, module: false */ 'use strict'; if ( typeof define == 'function' && define.amd ) { define( 'desandro-matches-selector/matches-selector',factory ); } else if ( typeof module == 'object' && module.exports ) { module.exports = factory(); } else { window.matchesSelector = factory(); } }( window, function factory() { 'use strict'; var matchesMethod = ( function() { var ElemProto = window.Element.prototype; if ( ElemProto.matches ) { return 'matches'; } if ( ElemProto.matchesSelector ) { return 'matchesSelector'; } var prefixes = [ 'webkit', 'moz', 'ms', 'o' ]; for ( var i=0; i < prefixes.length; i++ ) { var prefix = prefixes[i]; var method = prefix + 'MatchesSelector'; if ( ElemProto[ method ] ) { return method; } } })(); return function matchesSelector( elem, selector ) { return elem[ matchesMethod ]( selector ); }; })); /** * Fizzy UI utils v2.0.7 * MIT license */ /*jshint browser: true, undef: true, unused: true, strict: true */ ( function( window, factory ) { /*jshint strict: false */ /*globals define, module, require */ if ( typeof define == 'function' && define.amd ) { define( 'fizzy-ui-utils/utils',[ 'desandro-matches-selector/matches-selector' ], function( matchesSelector ) { return factory( window, matchesSelector ); }); } else if ( typeof module == 'object' && module.exports ) { module.exports = factory( window, require('desandro-matches-selector') ); } else { window.fizzyUIUtils = factory( window, window.matchesSelector ); } }( window, function factory( window, matchesSelector ) { var utils = {}; utils.extend = function( a, b ) { for ( var prop in b ) { a[ prop ] = b[ prop ]; } return a; }; utils.modulo = function( num, div ) { return ( ( num % div ) + div ) % div; }; var arraySlice = Array.prototype.slice; utils.makeArray = function( obj ) { if ( Array.isArray( obj ) ) { return obj; } if ( obj === null || obj === undefined ) { return []; } var isArrayLike = typeof obj == 'object' && typeof obj.length == 'number'; if ( isArrayLike ) { return arraySlice.call( obj ); } return [ obj ]; }; utils.removeFrom = function( ary, obj ) { var index = ary.indexOf( obj ); if ( index != -1 ) { ary.splice( index, 1 ); } }; utils.getParent = function( elem, selector ) { while ( elem.parentNode && elem != document.body ) { elem = elem.parentNode; if ( matchesSelector( elem, selector ) ) { return elem; } } }; utils.getQueryElement = function( elem ) { if ( typeof elem == 'string' ) { return document.querySelector( elem ); } return elem; }; utils.handleEvent = function( event ) { var method = 'on' + event.type; if ( this[ method ] ) { this[ method ]( event ); } }; utils.filterFindElements = function( elems, selector ) { elems = utils.makeArray( elems ); var ffElems = []; elems.forEach( function( elem ) { if ( !( elem instanceof HTMLElement ) ) { /*nectar addition*/ if(jQuery('body.compose-mode').length == 0) { return; } /*nectar addition end*/ } if ( !selector ) { ffElems.push( elem ); return; } if ( matchesSelector( elem, selector ) ) { ffElems.push( elem ); } var childElems = elem.querySelectorAll( selector ); for ( var i=0; i < childElems.length; i++ ) { ffElems.push( childElems[i] ); } }); return ffElems; }; utils.debounceMethod = function( _class, methodName, threshold ) { threshold = threshold || 100; var method = _class.prototype[ methodName ]; var timeoutName = methodName + 'Timeout'; _class.prototype[ methodName ] = function() { var timeout = this[ timeoutName ]; clearTimeout( timeout ); var args = arguments; var _this = this; this[ timeoutName ] = setTimeout( function() { method.apply( _this, args ); delete _this[ timeoutName ]; }, threshold ); }; }; utils.docReady = function( callback ) { var readyState = document.readyState; if ( readyState == 'complete' || readyState == 'interactive' ) { setTimeout( callback ); } else { document.addEventListener( 'DOMContentLoaded', callback ); } }; utils.toDashed = function( str ) { return str.replace( /(.)([A-Z])/g, function( match, $1, $2 ) { return $1 + '-' + $2; }).toLowerCase(); }; var console = window.console; /** * allow user to initialize classes via [data-namespace] or .js-namespace class * htmlInit( Widget, 'widgetName' ) * options are parsed from data-namespace-options */ utils.htmlInit = function( WidgetClass, namespace ) { utils.docReady( function() { var dashedNamespace = utils.toDashed( namespace ); var dataAttr = 'data-' + dashedNamespace; var dataAttrElems = document.querySelectorAll( '[' + dataAttr + ']' ); var jsDashElems = document.querySelectorAll( '.js-' + dashedNamespace ); var elems = utils.makeArray( dataAttrElems ) .concat( utils.makeArray( jsDashElems ) ); var dataOptionsAttr = dataAttr + '-options'; var jQuery = window.jQuery; elems.forEach( function( elem ) { var attr = elem.getAttribute( dataAttr ) || elem.getAttribute( dataOptionsAttr ); var options; try { options = attr && JSON.parse( attr ); } catch ( error ) { if ( console ) { console.error( 'Error parsing ' + dataAttr + ' on ' + elem.className + ': ' + error ); } return; } var instance = new WidgetClass( elem, options ); if ( jQuery ) { jQuery.data( elem, namespace, instance ); } }); }); }; return utils; })); ( function( window, factory ) { /* jshint strict: false */ if ( typeof define == 'function' && define.amd ) { define( 'flickity/js/cell',[ 'get-size/get-size' ], function( getSize ) { return factory( window, getSize ); }); } else if ( typeof module == 'object' && module.exports ) { module.exports = factory( window, require('get-size') ); } else { window.Flickity = window.Flickity || {}; window.Flickity.Cell = factory( window, window.getSize ); } }( window, function factory( window, getSize ) { function Cell( elem, parent ) { this.element = elem; this.parent = parent; this.create(); } var proto = Cell.prototype; proto.create = function() { this.element.style.position = 'absolute'; this.element.setAttribute( 'aria-selected', 'false' ); this.x = 0; this.shift = 0; }; proto.destroy = function() { this.element.style.position = ''; var side = this.parent.originSide; this.element.removeAttribute('aria-selected'); this.element.style[ side ] = ''; }; proto.getSize = function() { this.size = getSize( this.element ); }; proto.setPosition = function( x ) { this.x = x; this.updateTarget(); this.renderPosition( x ); }; proto.updateTarget = proto.setDefaultTarget = function() { var marginProperty = this.parent.originSide == 'left' ? 'marginLeft' : 'marginRight'; this.target = this.x + this.size[ marginProperty ] + this.size.width * this.parent.cellAlign; }; proto.renderPosition = function( x ) { var side = this.parent.originSide; this.element.style[ side ] = this.parent.getPositionValue( x ); }; /** * @param {Integer} factor - 0, 1, or -1 **/ proto.wrapShift = function( shift ) { this.shift = shift; this.renderPosition( this.x + this.parent.slideableWidth * shift ); }; proto.remove = function() { this.element.parentNode.removeChild( this.element ); }; return Cell; })); ( function( window, factory ) { /* jshint strict: false */ if ( typeof define == 'function' && define.amd ) { define( 'flickity/js/slide',factory ); } else if ( typeof module == 'object' && module.exports ) { module.exports = factory(); } else { window.Flickity = window.Flickity || {}; window.Flickity.Slide = factory(); } }( window, function factory() { 'use strict'; function Slide( parent ) { this.parent = parent; this.isOriginLeft = parent.originSide == 'left'; this.cells = []; this.outerWidth = 0; this.height = 0; } var proto = Slide.prototype; proto.addCell = function( cell ) { this.cells.push( cell ); this.outerWidth += cell.size.outerWidth; this.height = Math.max( cell.size.outerHeight, this.height ); if ( this.cells.length == 1 ) { this.x = cell.x; // x comes from first cell var beginMargin = this.isOriginLeft ? 'marginLeft' : 'marginRight'; this.firstMargin = cell.size[ beginMargin ]; } }; proto.updateTarget = function() { var endMargin = this.isOriginLeft ? 'marginRight' : 'marginLeft'; var lastCell = this.getLastCell(); var lastMargin = lastCell ? lastCell.size[ endMargin ] : 0; var slideWidth = this.outerWidth - ( this.firstMargin + lastMargin ); this.target = this.x + this.firstMargin + slideWidth * this.parent.cellAlign; }; proto.getLastCell = function() { return this.cells[ this.cells.length - 1 ]; }; proto.select = function() { this.changeSelected( true ); }; proto.unselect = function() { this.changeSelected( false ); }; proto.changeSelected = function( isSelected ) { var classMethod = isSelected ? 'add' : 'remove'; this.cells.forEach( function( cell ) { cell.element.classList[ classMethod ]('is-selected'); cell.element.setAttribute( 'aria-selected', isSelected.toString() ); }); }; proto.getCellElements = function() { return this.cells.map( function( cell ) { return cell.element; }); }; return Slide; })); ( function( window, factory ) { /* jshint strict: false */ if ( typeof define == 'function' && define.amd ) { define( 'flickity/js/animate',[ 'fizzy-ui-utils/utils' ], function( utils ) { return factory( window, utils ); }); } else if ( typeof module == 'object' && module.exports ) { module.exports = factory( window, require('fizzy-ui-utils') ); } else { window.Flickity = window.Flickity || {}; window.Flickity.animatePrototype = factory( window, window.fizzyUIUtils ); } }( window, function factory( window, utils ) { var proto = {}; proto.startAnimation = function() { if ( this.isAnimating ) { return; } this.isAnimating = true; this.restingFrames = 0; this.animate(); }; proto.animate = function() { this.applyDragForce(); this.applySelectedAttraction(); var previousX = this.x; this.integratePhysics(); this.positionSlider(); this.settle( previousX ); if ( this.isAnimating ) { var _this = this; requestAnimationFrame( function animateFrame() { _this.animate(); }); } }; proto.positionSlider = function() { var x = this.x; if ( this.options.wrapAround && this.cells.length > 1 ) { x = utils.modulo( x, this.slideableWidth ); x = x - this.slideableWidth; this.shiftWrapCells( x ); } x = x + this.cursorPosition; x = this.options.rightToLeft ? -x : x; var value = this.getPositionValue( x ); this.slider.style.transform = this.isAnimating ? 'translate3d(' + value + ',0,0)' : 'translateX(' + value + ')'; var firstSlide = this.slides[0]; if ( firstSlide ) { var positionX = -this.x - firstSlide.target; var progress = positionX / this.slidesWidth; this.dispatchEvent( 'scroll', null, [ progress, positionX ] ); } }; proto.positionSliderAtSelected = function() { if ( !this.cells.length ) { return; } this.x = -this.selectedSlide.target; this.velocity = 0; // stop wobble this.positionSlider(); }; proto.getPositionValue = function( position ) { if ( this.options.percentPosition ) { return ( Math.round( ( position / this.size.innerWidth ) * 10000 ) * 0.01 )+ '%'; } else { return Math.round( position ) + 'px'; } }; proto.settle = function( previousX ) { if ( !this.isPointerDown && Math.round( this.x * 100 ) == Math.round( previousX * 100 ) ) { this.restingFrames++; } if ( this.restingFrames > 2 ) { this.isAnimating = false; delete this.isFreeScrolling; this.positionSlider(); this.dispatchEvent( 'settle', null, [ this.selectedIndex ] ); } }; proto.shiftWrapCells = function( x ) { var beforeGap = this.cursorPosition + x; this._shiftCells( this.beforeShiftCells, beforeGap, -1 ); var afterGap = this.size.innerWidth - ( x + this.slideableWidth + this.cursorPosition ); this._shiftCells( this.afterShiftCells, afterGap, 1 ); }; proto._shiftCells = function( cells, gap, shift ) { for ( var i=0; i < cells.length; i++ ) { var cell = cells[i]; var cellShift = gap > 0 ? shift : 0; cell.wrapShift( cellShift ); gap -= cell.size.outerWidth; } }; proto._unshiftCells = function( cells ) { if ( !cells || !cells.length ) { return; } for ( var i=0; i < cells.length; i++ ) { cells[i].wrapShift( 0 ); } }; proto.integratePhysics = function() { this.x += this.velocity; this.velocity *= this.getFrictionFactor(); }; proto.applyForce = function( force ) { this.velocity += force; }; proto.getFrictionFactor = function() { return 1 - this.options[ this.isFreeScrolling ? 'freeScrollFriction' : 'friction' ]; }; proto.getRestingPosition = function() { return this.x + this.velocity / ( 1 - this.getFrictionFactor() ); }; proto.applyDragForce = function() { if ( !this.isDraggable || !this.isPointerDown ) { return; } var dragVelocity = this.dragX - this.x; var dragForce = dragVelocity - this.velocity; this.applyForce( dragForce ); }; proto.applySelectedAttraction = function() { var dragDown = this.isDraggable && this.isPointerDown; if ( dragDown || this.isFreeScrolling || !this.slides.length ) { return; } var distance = this.selectedSlide.target * -1 - this.x; var force = distance * this.options.selectedAttraction; this.applyForce( force ); }; return proto; })); ( function( window, factory ) { /* jshint strict: false */ if ( typeof define == 'function' && define.amd ) { define( 'flickity/js/flickity',[ 'ev-emitter/ev-emitter', 'get-size/get-size', 'fizzy-ui-utils/utils', './cell', './slide', './animate' ], function( EvEmitter, getSize, utils, Cell, Slide, animatePrototype ) { return factory( window, EvEmitter, getSize, utils, Cell, Slide, animatePrototype ); }); } else if ( typeof module == 'object' && module.exports ) { module.exports = factory( window, require('ev-emitter'), require('get-size'), require('fizzy-ui-utils'), require('./cell'), require('./slide'), require('./animate') ); } else { var _Flickity = window.Flickity; window.Flickity = factory( window, window.EvEmitter, window.getSize, window.fizzyUIUtils, _Flickity.Cell, _Flickity.Slide, _Flickity.animatePrototype ); } }( window, function factory( window, EvEmitter, getSize, utils, Cell, Slide, animatePrototype ) { var jQuery = window.jQuery; var getComputedStyle = window.getComputedStyle; var console = window.console; function moveElements( elems, toElem ) { elems = utils.makeArray( elems ); while ( elems.length ) { toElem.appendChild( elems.shift() ); } } var GUID = 0; var instances = {}; function Flickity( element, options ) { var queryElement = utils.getQueryElement( element ); if ( !queryElement ) { if ( console ) { console.error( 'Bad element for Flickity: ' + ( queryElement || element ) ); } return; } this.element = queryElement; if ( this.element.flickityGUID ) { var instance = instances[ this.element.flickityGUID ]; instance.option( options ); return instance; } if ( jQuery ) { this.$element = jQuery( this.element ); } this.options = utils.extend( {}, this.constructor.defaults ); this.option( options ); this._create(); } Flickity.defaults = { accessibility: true, cellAlign: 'center', freeScrollFriction: 0.075, // friction when free-scrolling friction: 0.28, // friction when selecting namespaceJQueryEvents: true, percentPosition: true, resize: true, selectedAttraction: 0.025, setGallerySize: true }; Flickity.createMethods = []; var proto = Flickity.prototype; utils.extend( proto, EvEmitter.prototype ); proto._create = function() { var id = this.guid = ++GUID; this.element.flickityGUID = id; // expando instances[ id ] = this; // associate via id this.selectedIndex = 0; this.restingFrames = 0; this.x = 0; this.velocity = 0; this.originSide = this.options.rightToLeft ? 'right' : 'left'; /*nectar addition*/ if(this.$element.hasClass('generate-markup')) { this.viewport = document.createElement('div'); this.viewport.className = 'flickity-viewport'; } else { this.viewport = this.$element.find('.flickity-viewport')[0]; this.slider = this.$element.find('.flickity-slider')[0]; this.viewport.className = 'flickity-viewport'; } this._createSlider(); /*nectar addition end*/ if ( this.options.resize || this.options.watchCSS ) { window.addEventListener( 'resize', this ); } for ( var eventName in this.options.on ) { var listener = this.options.on[ eventName ]; this.on( eventName, listener ); } Flickity.createMethods.forEach( function( method ) { this[ method ](); }, this ); if ( this.options.watchCSS ) { this.watchCSS(); } else { this.activate(); } }; /** * set options * @param {Object} opts */ proto.option = function( opts ) { utils.extend( this.options, opts ); }; proto.activate = function() { if ( this.isActive ) { return; } this.isActive = true; this.element.classList.add('flickity-enabled'); if ( this.options.rightToLeft ) { this.element.classList.add('flickity-rtl'); } this.getSize(); var cellElems = this._filterFindCellElements( this.element.children ); /* nectar addition */ if(this.$element.hasClass('generate-markup')) { moveElements( cellElems, this.slider ); this.viewport.appendChild( this.slider ); this.element.appendChild( this.viewport ); } else { } /* nectar addition end */ this.reloadCells(); if ( this.options.accessibility ) { this.element.tabIndex = 0; this.element.addEventListener( 'keydown', this ); } this.emitEvent('activate'); var index; var initialIndex = this.options.initialIndex; if ( this.isInitActivated ) { index = this.selectedIndex; } else if ( initialIndex !== undefined ) { index = this.cells[ initialIndex ] ? initialIndex : 0; } else { index = 0; } this.select( index, false, true ); this.isInitActivated = true; this.dispatchEvent('ready'); }; /* nectar addition */ proto._createSlider = function() { if(this.$element.hasClass('generate-markup')) { var slider = document.createElement('div'); slider.className = 'flickity-slider'; slider.style[ this.originSide ] = 0; this.slider = slider; } else { this.slider.style[ this.originSide ] = 0; } }; /* nectar addition end */ proto._filterFindCellElements = function( elems ) { return utils.filterFindElements( elems, this.options.cellSelector ); }; proto.reloadCells = function() { /* nectar addition */ if(jQuery(this.slider).parent().parent().find('.flickity-page-dots').length > 0) { var $that = this; setTimeout(function(){ $that.pageDots.setDots(); },100); } var slidesArr = []; jQuery(this.slider).find('> *').each(function(i){ slidesArr[i] = jQuery(this)[0]; }); this.cells = this._makeCells(slidesArr); /* nectar addition end */ this.positionCells(); this._getWrapShiftCells(); this.setGallerySize(); }; /** * turn elements into Flickity.Cells * @param {Array or NodeList or HTMLElement} elems * @returns {Array} items - collection of new Flickity Cells */ proto._makeCells = function( elems ) { var cellElems = this._filterFindCellElements( elems ); var cells = cellElems.map( function( cellElem ) { return new Cell( cellElem, this ); }, this ); return cells; }; proto.getLastCell = function() { return this.cells[ this.cells.length - 1 ]; }; proto.getLastSlide = function() { return this.slides[ this.slides.length - 1 ]; }; proto.positionCells = function() { this._sizeCells( this.cells ); this._positionCells( 0 ); }; /** * position certain cells * @param {Integer} index - which cell to start with */ proto._positionCells = function( index ) { index = index || 0; this.maxCellHeight = index ? this.maxCellHeight || 0 : 0; var cellX = 0; if ( index > 0 ) { var startCell = this.cells[ index - 1 ]; cellX = startCell.x + startCell.size.outerWidth; } var len = this.cells.length; for ( var i=index; i < len; i++ ) { var cell = this.cells[i]; cell.setPosition( cellX ); cellX += cell.size.outerWidth; this.maxCellHeight = Math.max( cell.size.outerHeight, this.maxCellHeight ); } this.slideableWidth = cellX; this.updateSlides(); this._containSlides(); this.slidesWidth = len ? this.getLastSlide().target - this.slides[0].target : 0; }; /** * cell.getSize() on multiple cells * @param {Array} cells */ proto._sizeCells = function( cells ) { cells.forEach( function( cell ) { cell.getSize(); }); }; proto.updateSlides = function() { this.slides = []; if ( !this.cells.length ) { return; } var slide = new Slide( this ); this.slides.push( slide ); var isOriginLeft = this.originSide == 'left'; var nextMargin = isOriginLeft ? 'marginRight' : 'marginLeft'; var canCellFit = this._getCanCellFit(); this.cells.forEach( function( cell, i ) { if ( !slide.cells.length ) { slide.addCell( cell ); return; } var slideWidth = ( slide.outerWidth - slide.firstMargin ) + ( cell.size.outerWidth - cell.size[ nextMargin ] ); if ( canCellFit.call( this, i, slideWidth ) ) { slide.addCell( cell ); } else { slide.updateTarget(); slide = new Slide( this ); this.slides.push( slide ); slide.addCell( cell ); } }, this ); slide.updateTarget(); this.updateSelectedSlide(); }; proto._getCanCellFit = function() { var groupCells = this.options.groupCells; if ( !groupCells ) { return function() { return false; }; } else if ( typeof groupCells == 'number' ) { var number = parseInt( groupCells, 10 ); return function( i ) { return ( i % number ) !== 0; }; } var percentMatch = typeof groupCells == 'string' && groupCells.match(/^(\d+)%$/); var percent = percentMatch ? parseInt( percentMatch[1], 10 ) / 100 : 1; return function( i, slideWidth ) { return slideWidth <= ( this.size.innerWidth + 1 ) * percent; }; }; proto._init = proto.reposition = function() { this.positionCells(); this.positionSliderAtSelected(); }; proto.getSize = function() { this.size = getSize( this.element ); this.setCellAlign(); this.cursorPosition = this.size.innerWidth * this.cellAlign; }; var cellAlignShorthands = { center: { left: 0.5, right: 0.5 }, left: { left: 0, right: 1 }, right: { right: 0, left: 1 } }; proto.setCellAlign = function() { var shorthand = cellAlignShorthands[ this.options.cellAlign ]; this.cellAlign = shorthand ? shorthand[ this.originSide ] : this.options.cellAlign; }; proto.setGallerySize = function() { if ( this.options.setGallerySize ) { var height = this.options.adaptiveHeight && this.selectedSlide ? this.selectedSlide.height : this.maxCellHeight; this.viewport.style.height = height + 'px'; } }; proto._getWrapShiftCells = function() { if ( !this.options.wrapAround ) { return; } this._unshiftCells( this.beforeShiftCells ); this._unshiftCells( this.afterShiftCells ); var gapX = this.cursorPosition; var cellIndex = this.cells.length - 1; this.beforeShiftCells = this._getGapCells( gapX, cellIndex, -1 ); gapX = this.size.innerWidth - this.cursorPosition; this.afterShiftCells = this._getGapCells( gapX, 0, 1 ); }; proto._getGapCells = function( gapX, cellIndex, increment ) { var cells = []; while ( gapX > 0 ) { var cell = this.cells[ cellIndex ]; if ( !cell ) { break; } cells.push( cell ); cellIndex += increment; gapX -= cell.size.outerWidth; } return cells; }; proto._containSlides = function() { if ( !this.options.contain || this.options.wrapAround || !this.cells.length ) { return; } var isRightToLeft = this.options.rightToLeft; var beginMargin = isRightToLeft ? 'marginRight' : 'marginLeft'; var endMargin = isRightToLeft ? 'marginLeft' : 'marginRight'; var contentWidth = this.slideableWidth - this.getLastCell().size[ endMargin ]; var isContentSmaller = contentWidth < this.size.innerWidth; var beginBound = this.cursorPosition + this.cells[0].size[ beginMargin ]; var endBound = contentWidth - this.size.innerWidth * ( 1 - this.cellAlign ); this.slides.forEach( function( slide ) { if ( isContentSmaller ) { slide.target = contentWidth * this.cellAlign; } else { slide.target = Math.max( slide.target, beginBound ); slide.target = Math.min( slide.target, endBound ); } }, this ); }; /** * emits events via eventEmitter and jQuery events * @param {String} type - name of event * @param {Event} event - original event * @param {Array} args - extra arguments */ proto.dispatchEvent = function( type, event, args ) { var emitArgs = event ? [ event ].concat( args ) : args; this.emitEvent( type, emitArgs ); if ( jQuery && this.$element ) { type += this.options.namespaceJQueryEvents ? '.flickity' : ''; var $event = type; if ( event ) { var jQEvent = jQuery.Event( event ); jQEvent.type = type; $event = jQEvent; } this.$element.trigger( $event, args ); } }; /** * @param {Integer} index - index of the slide * @param {Boolean} isWrap - will wrap-around to last/first if at the end * @param {Boolean} isInstant - will immediately set position at selected cell */ proto.select = function( index, isWrap, isInstant ) { if ( !this.isActive ) { return; } index = parseInt( index, 10 ); this._wrapSelect( index ); if ( this.options.wrapAround || isWrap ) { index = utils.modulo( index, this.slides.length ); } if ( !this.slides[ index ] ) { return; } var prevIndex = this.selectedIndex; this.selectedIndex = index; this.updateSelectedSlide(); if ( isInstant ) { this.positionSliderAtSelected(); } else { this.startAnimation(); } if ( this.options.adaptiveHeight ) { this.setGallerySize(); } this.dispatchEvent( 'select', null, [ index ] ); if ( index != prevIndex ) { this.dispatchEvent( 'change', null, [ index ] ); } this.dispatchEvent('cellSelect'); }; proto._wrapSelect = function( index ) { var len = this.slides.length; var isWrapping = this.options.wrapAround && len > 1; if ( !isWrapping ) { return index; } var wrapIndex = utils.modulo( index, len ); var delta = Math.abs( wrapIndex - this.selectedIndex ); var backWrapDelta = Math.abs( ( wrapIndex + len ) - this.selectedIndex ); var forewardWrapDelta = Math.abs( ( wrapIndex - len ) - this.selectedIndex ); if ( !this.isDragSelect && backWrapDelta < delta ) { index += len; } else if ( !this.isDragSelect && forewardWrapDelta < delta ) { index -= len; } if ( index < 0 ) { this.x -= this.slideableWidth; } else if ( index >= len ) { this.x += this.slideableWidth; } }; proto.previous = function( isWrap, isInstant ) { this.select( this.selectedIndex - 1, isWrap, isInstant ); }; proto.next = function( isWrap, isInstant ) { this.select( this.selectedIndex + 1, isWrap, isInstant ); }; proto.updateSelectedSlide = function() { var slide = this.slides[ this.selectedIndex ]; if ( !slide ) { return; } this.unselectSelectedSlide(); this.selectedSlide = slide; slide.select(); this.selectedCells = slide.cells; this.selectedElements = slide.getCellElements(); this.selectedCell = slide.cells[0]; this.selectedElement = this.selectedElements[0]; }; proto.unselectSelectedSlide = function() { if ( this.selectedSlide ) { this.selectedSlide.unselect(); } }; /** * select slide from number or cell element * @param {Element or Number} elem */ proto.selectCell = function( value, isWrap, isInstant ) { var cell = this.queryCell( value ); if ( !cell ) { return; } var index = this.getCellSlideIndex( cell ); this.select( index, isWrap, isInstant ); }; proto.getCellSlideIndex = function( cell ) { for ( var i=0; i < this.slides.length; i++ ) { var slide = this.slides[i]; var index = slide.cells.indexOf( cell ); if ( index != -1 ) { return i; } } }; /** * get Flickity.Cell, given an Element * @param {Element} elem * @returns {Flickity.Cell} item */ proto.getCell = function( elem ) { for ( var i=0; i < this.cells.length; i++ ) { var cell = this.cells[i]; if ( cell.element == elem ) { return cell; } } }; /** * get collection of Flickity.Cells, given Elements * @param {Element, Array, NodeList} elems * @returns {Array} cells - Flickity.Cells */ proto.getCells = function( elems ) { elems = utils.makeArray( elems ); var cells = []; elems.forEach( function( elem ) { var cell = this.getCell( elem ); if ( cell ) { cells.push( cell ); } }, this ); return cells; }; /** * get cell elements * @returns {Array} cellElems */ proto.getCellElements = function() { return this.cells.map( function( cell ) { return cell.element; }); }; /** * get parent cell from an element * @param {Element} elem * @returns {Flickit.Cell} cell */ proto.getParentCell = function( elem ) { var cell = this.getCell( elem ); if ( cell ) { return cell; } elem = utils.getParent( elem, '.flickity-slider > *' ); return this.getCell( elem ); }; /** * get cells adjacent to a slide * @param {Integer} adjCount - number of adjacent slides * @param {Integer} index - index of slide to start * @returns {Array} cells - array of Flickity.Cells */ proto.getAdjacentCellElements = function( adjCount, index ) { if ( !adjCount ) { return this.selectedSlide.getCellElements(); } index = index === undefined ? this.selectedIndex : index; var len = this.slides.length; if ( 1 + ( adjCount * 2 ) >= len ) { return this.getCellElements(); } var cellElems = []; for ( var i = index - adjCount; i <= index + adjCount ; i++ ) { var slideIndex = this.options.wrapAround ? utils.modulo( i, len ) : i; var slide = this.slides[ slideIndex ]; if ( slide ) { cellElems = cellElems.concat( slide.getCellElements() ); } } return cellElems; }; /** * select slide from number or cell element * @param {Element, Selector String, or Number} selector */ proto.queryCell = function( selector ) { if ( typeof selector == 'number' ) { return this.cells[ selector ]; } if ( typeof selector == 'string' ) { selector = this.element.querySelector( selector ); } return this.getCell( selector ); }; proto.uiChange = function() { this.emitEvent('uiChange'); }; proto.childUIPointerDown = function( event ) { this.emitEvent( 'childUIPointerDown', [ event ] ); }; proto.onresize = function() { this.watchCSS(); this.resize(); }; utils.debounceMethod( Flickity, 'onresize', 150 ); proto.resize = function() { if ( !this.isActive ) { return; } this.getSize(); if ( this.options.wrapAround ) { this.x = utils.modulo( this.x, this.slideableWidth ); } this.positionCells(); this._getWrapShiftCells(); this.setGallerySize(); this.emitEvent('resize'); var selectedElement = this.selectedElements && this.selectedElements[0]; this.selectCell( selectedElement, false, true ); }; proto.watchCSS = function() { var watchOption = this.options.watchCSS; if ( !watchOption ) { return; } var afterContent = getComputedStyle( this.element, ':after' ).content; if ( afterContent.indexOf('flickity') != -1 ) { this.activate(); } else { this.deactivate(); } }; proto.onkeydown = function( event ) { var isNotFocused = document.activeElement && document.activeElement != this.element; if ( !this.options.accessibility ||isNotFocused ) { return; } var handler = Flickity.keyboardHandlers[ event.keyCode ]; if ( handler ) { handler.call( this ); } }; Flickity.keyboardHandlers = { 37: function() { var leftMethod = this.options.rightToLeft ? 'next' : 'previous'; this.uiChange(); this[ leftMethod ](); }, 39: function() { var rightMethod = this.options.rightToLeft ? 'previous' : 'next'; this.uiChange(); this[ rightMethod ](); }, }; proto.focus = function() { var prevScrollY = window.pageYOffset; this.element.focus({ preventScroll: true }); if ( window.pageYOffset != prevScrollY ) { window.scrollTo( window.pageXOffset, prevScrollY ); } }; proto.deactivate = function() { if ( !this.isActive ) { return; } this.element.classList.remove('flickity-enabled'); this.element.classList.remove('flickity-rtl'); this.unselectSelectedSlide(); this.cells.forEach( function( cell ) { cell.destroy(); }); this.element.removeChild( this.viewport ); moveElements( this.slider.children, this.element ); if ( this.options.accessibility ) { this.element.removeAttribute('tabIndex'); this.element.removeEventListener( 'keydown', this ); } this.isActive = false; this.emitEvent('deactivate'); }; proto.destroy = function() { this.deactivate(); window.removeEventListener( 'resize', this ); this.emitEvent('destroy'); if ( jQuery && this.$element ) { jQuery.removeData( this.element, 'flickity' ); } delete this.element.flickityGUID; delete instances[ this.guid ]; }; utils.extend( proto, animatePrototype ); /** * get Flickity instance from element * @param {Element} elem * @returns {Flickity} */ Flickity.data = function( elem ) { elem = utils.getQueryElement( elem ); var id = elem && elem.flickityGUID; return id && instances[ id ]; }; utils.htmlInit( Flickity, 'flickity' ); if ( jQuery && jQuery.bridget ) { jQuery.bridget( 'flickity', Flickity ); } Flickity.setJQuery = function( jq ) { jQuery = jq; }; Flickity.Cell = Cell; return Flickity; })); /*! * Unipointer v2.3.0 * base class for doing one thing with pointer event * MIT license */ /*jshint browser: true, undef: true, unused: true, strict: true */ ( function( window, factory ) { /* jshint strict: false */ /*global define, module, require */ if ( typeof define == 'function' && define.amd ) { define( 'unipointer/unipointer',[ 'ev-emitter/ev-emitter' ], function( EvEmitter ) { return factory( window, EvEmitter ); }); } else if ( typeof module == 'object' && module.exports ) { module.exports = factory( window, require('ev-emitter') ); } else { window.Unipointer = factory( window, window.EvEmitter ); } }( window, function factory( window, EvEmitter ) { function noop() {} function Unipointer() {} var proto = Unipointer.prototype = Object.create( EvEmitter.prototype ); proto.bindStartEvent = function( elem ) { this._bindStartEvent( elem, true ); }; proto.unbindStartEvent = function( elem ) { this._bindStartEvent( elem, false ); }; /** * Add or remove start event * @param {Boolean} isAdd - remove if falsey */ proto._bindStartEvent = function( elem, isAdd ) { isAdd = isAdd === undefined ? true : isAdd; var bindMethod = isAdd ? 'addEventListener' : 'removeEventListener'; var startEvent = 'mousedown'; if ( window.PointerEvent ) { startEvent = 'pointerdown'; } else if ( 'ontouchstart' in window ) { startEvent = 'touchstart'; } elem[ bindMethod ]( startEvent, this ); }; proto.handleEvent = function( event ) { var method = 'on' + event.type; if ( this[ method ] ) { this[ method ]( event ); } }; proto.getTouch = function( touches ) { for ( var i=0; i < touches.length; i++ ) { var touch = touches[i]; if ( touch.identifier == this.pointerIdentifier ) { return touch; } } }; proto.onmousedown = function( event ) { var button = event.button; if ( button && ( button !== 0 && button !== 1 ) ) { return; } this._pointerDown( event, event ); }; proto.ontouchstart = function( event ) { this._pointerDown( event, event.changedTouches[0] ); }; proto.onpointerdown = function( event ) { this._pointerDown( event, event ); }; /** * pointer start * @param {Event} event * @param {Event or Touch} pointer */ proto._pointerDown = function( event, pointer ) { if ( event.button || this.isPointerDown ) { return; } this.isPointerDown = true; this.pointerIdentifier = pointer.pointerId !== undefined ? pointer.pointerId : pointer.identifier; this.pointerDown( event, pointer ); }; proto.pointerDown = function( event, pointer ) { this._bindPostStartEvents( event ); this.emitEvent( 'pointerDown', [ event, pointer ] ); }; var postStartEvents = { mousedown: [ 'mousemove', 'mouseup' ], touchstart: [ 'touchmove', 'touchend', 'touchcancel' ], pointerdown: [ 'pointermove', 'pointerup', 'pointercancel' ], }; proto._bindPostStartEvents = function( event ) { if ( !event ) { return; } var events = postStartEvents[ event.type ]; events.forEach( function( eventName ) { window.addEventListener( eventName, this ); }, this ); this._boundPointerEvents = events; }; proto._unbindPostStartEvents = function() { if ( !this._boundPointerEvents ) { return; } this._boundPointerEvents.forEach( function( eventName ) { window.removeEventListener( eventName, this ); }, this ); delete this._boundPointerEvents; }; proto.onmousemove = function( event ) { this._pointerMove( event, event ); }; proto.onpointermove = function( event ) { if ( event.pointerId == this.pointerIdentifier ) { this._pointerMove( event, event ); } }; proto.ontouchmove = function( event ) { var touch = this.getTouch( event.changedTouches ); if ( touch ) { this._pointerMove( event, touch ); } }; /** * pointer move * @param {Event} event * @param {Event or Touch} pointer * @private */ proto._pointerMove = function( event, pointer ) { this.pointerMove( event, pointer ); }; proto.pointerMove = function( event, pointer ) { this.emitEvent( 'pointerMove', [ event, pointer ] ); }; proto.onmouseup = function( event ) { this._pointerUp( event, event ); }; proto.onpointerup = function( event ) { if ( event.pointerId == this.pointerIdentifier ) { this._pointerUp( event, event ); } }; proto.ontouchend = function( event ) { var touch = this.getTouch( event.changedTouches ); if ( touch ) { this._pointerUp( event, touch ); } }; /** * pointer up * @param {Event} event * @param {Event or Touch} pointer * @private */ proto._pointerUp = function( event, pointer ) { this._pointerDone(); this.pointerUp( event, pointer ); }; proto.pointerUp = function( event, pointer ) { this.emitEvent( 'pointerUp', [ event, pointer ] ); }; proto._pointerDone = function() { this._pointerReset(); this._unbindPostStartEvents(); this.pointerDone(); }; proto._pointerReset = function() { this.isPointerDown = false; delete this.pointerIdentifier; }; proto.pointerDone = noop; proto.onpointercancel = function( event ) { if ( event.pointerId == this.pointerIdentifier ) { this._pointerCancel( event, event ); } }; proto.ontouchcancel = function( event ) { var touch = this.getTouch( event.changedTouches ); if ( touch ) { this._pointerCancel( event, touch ); } }; /** * pointer cancel * @param {Event} event * @param {Event or Touch} pointer * @private */ proto._pointerCancel = function( event, pointer ) { this._pointerDone(); this.pointerCancel( event, pointer ); }; proto.pointerCancel = function( event, pointer ) { this.emitEvent( 'pointerCancel', [ event, pointer ] ); }; Unipointer.getPointerPoint = function( pointer ) { return { x: pointer.pageX, y: pointer.pageY }; }; return Unipointer; })); /*! * Unidragger v2.3.0 * Draggable base class * MIT license */ /*jshint browser: true, unused: true, undef: true, strict: true */ ( function( window, factory ) { /*jshint strict: false */ /*globals define, module, require */ if ( typeof define == 'function' && define.amd ) { define( 'unidragger/unidragger',[ 'unipointer/unipointer' ], function( Unipointer ) { return factory( window, Unipointer ); }); } else if ( typeof module == 'object' && module.exports ) { module.exports = factory( window, require('unipointer') ); } else { window.Unidragger = factory( window, window.Unipointer ); } }( window, function factory( window, Unipointer ) { function Unidragger() {} var proto = Unidragger.prototype = Object.create( Unipointer.prototype ); proto.bindHandles = function() { this._bindHandles( true ); }; proto.unbindHandles = function() { this._bindHandles( false ); }; /** * Add or remove start event * @param {Boolean} isAdd */ proto._bindHandles = function( isAdd ) { isAdd = isAdd === undefined ? true : isAdd; var bindMethod = isAdd ? 'addEventListener' : 'removeEventListener'; var touchAction = isAdd ? this._touchActionValue : ''; for ( var i=0; i < this.handles.length; i++ ) { var handle = this.handles[i]; this._bindStartEvent( handle, isAdd ); handle[ bindMethod ]( 'click', this ); if ( window.PointerEvent ) { handle.style.touchAction = touchAction; } } }; proto._touchActionValue = 'none'; /** * pointer start * @param {Event} event * @param {Event or Touch} pointer */ proto.pointerDown = function( event, pointer ) { var isOkay = this.okayPointerDown( event ); if ( !isOkay ) { return; } this.pointerDownPointer = pointer; event.preventDefault(); this.pointerDownBlur(); this._bindPostStartEvents( event ); this.emitEvent( 'pointerDown', [ event, pointer ] ); }; var cursorNodes = { TEXTAREA: true, INPUT: true, SELECT: true, OPTION: true, }; var clickTypes = { radio: true, checkbox: true, button: true, submit: true, image: true, file: true, }; proto.okayPointerDown = function( event ) { var isCursorNode = cursorNodes[ event.target.nodeName ]; var isClickType = clickTypes[ event.target.type ]; var isOkay = !isCursorNode || isClickType; if ( !isOkay ) { this._pointerReset(); } return isOkay; }; proto.pointerDownBlur = function() { var focused = document.activeElement; var canBlur = focused && focused.blur && focused != document.body; if ( canBlur ) { focused.blur(); } }; /** * drag move * @param {Event} event * @param {Event or Touch} pointer */ proto.pointerMove = function( event, pointer ) { var moveVector = this._dragPointerMove( event, pointer ); this.emitEvent( 'pointerMove', [ event, pointer, moveVector ] ); this._dragMove( event, pointer, moveVector ); }; proto._dragPointerMove = function( event, pointer ) { var moveVector = { x: pointer.pageX - this.pointerDownPointer.pageX, y: pointer.pageY - this.pointerDownPointer.pageY }; if ( !this.isDragging && this.hasDragStarted( moveVector ) ) { this._dragStart( event, pointer ); } return moveVector; }; proto.hasDragStarted = function( moveVector ) { return Math.abs( moveVector.x ) > 3 || Math.abs( moveVector.y ) > 3; }; /** * pointer up * @param {Event} event * @param {Event or Touch} pointer */ proto.pointerUp = function( event, pointer ) { this.emitEvent( 'pointerUp', [ event, pointer ] ); this._dragPointerUp( event, pointer ); }; proto._dragPointerUp = function( event, pointer ) { if ( this.isDragging ) { this._dragEnd( event, pointer ); } else { this._staticClick( event, pointer ); } }; proto._dragStart = function( event, pointer ) { this.isDragging = true; this.isPreventingClicks = true; this.dragStart( event, pointer ); }; proto.dragStart = function( event, pointer ) { this.emitEvent( 'dragStart', [ event, pointer ] ); }; proto._dragMove = function( event, pointer, moveVector ) { if ( !this.isDragging ) { return; } this.dragMove( event, pointer, moveVector ); }; proto.dragMove = function( event, pointer, moveVector ) { event.preventDefault(); this.emitEvent( 'dragMove', [ event, pointer, moveVector ] ); }; proto._dragEnd = function( event, pointer ) { this.isDragging = false; setTimeout( function() { delete this.isPreventingClicks; }.bind( this ) ); this.dragEnd( event, pointer ); }; proto.dragEnd = function( event, pointer ) { this.emitEvent( 'dragEnd', [ event, pointer ] ); }; proto.onclick = function( event ) { if ( this.isPreventingClicks ) { event.preventDefault(); } }; proto._staticClick = function( event, pointer ) { if ( this.isIgnoringMouseUp && event.type == 'mouseup' ) { return; } this.staticClick( event, pointer ); if ( event.type != 'mouseup' ) { this.isIgnoringMouseUp = true; setTimeout( function() { delete this.isIgnoringMouseUp; }.bind( this ), 400 ); } }; proto.staticClick = function( event, pointer ) { this.emitEvent( 'staticClick', [ event, pointer ] ); }; Unidragger.getPointerPoint = Unipointer.getPointerPoint; return Unidragger; })); ( function( window, factory ) { /* jshint strict: false */ if ( typeof define == 'function' && define.amd ) { define( 'flickity/js/drag',[ './flickity', 'unidragger/unidragger', 'fizzy-ui-utils/utils' ], function( Flickity, Unidragger, utils ) { return factory( window, Flickity, Unidragger, utils ); }); } else if ( typeof module == 'object' && module.exports ) { module.exports = factory( window, require('./flickity'), require('unidragger'), require('fizzy-ui-utils') ); } else { window.Flickity = factory( window, window.Flickity, window.Unidragger, window.fizzyUIUtils ); } }( window, function factory( window, Flickity, Unidragger, utils ) { utils.extend( Flickity.defaults, { draggable: '>1', dragThreshold: 3, }); Flickity.createMethods.push('_createDrag'); var proto = Flickity.prototype; utils.extend( proto, Unidragger.prototype ); proto._touchActionValue = 'pan-y'; var isTouch = 'createTouch' in document; var isTouchmoveScrollCanceled = false; proto._createDrag = function() { this.on( 'activate', this.onActivateDrag ); this.on( 'uiChange', this._uiChangeDrag ); this.on( 'childUIPointerDown', this._childUIPointerDownDrag ); this.on( 'deactivate', this.onDeactivateDrag ); this.on( 'cellChange', this.updateDraggable ); if ( isTouch && !isTouchmoveScrollCanceled ) { window.addEventListener( 'touchmove', function() {}); isTouchmoveScrollCanceled = true; } }; proto.onActivateDrag = function() { this.handles = [ this.viewport ]; this.bindHandles(); this.updateDraggable(); }; proto.onDeactivateDrag = function() { this.unbindHandles(); this.element.classList.remove('is-draggable'); }; proto.updateDraggable = function() { if ( this.options.draggable == '>1' ) { this.isDraggable = this.slides.length > 1; } else { this.isDraggable = this.options.draggable; } if ( this.isDraggable ) { this.element.classList.add('is-draggable'); } else { this.element.classList.remove('is-draggable'); } }; proto.bindDrag = function() { this.options.draggable = true; this.updateDraggable(); }; proto.unbindDrag = function() { this.options.draggable = false; this.updateDraggable(); }; proto._uiChangeDrag = function() { delete this.isFreeScrolling; }; proto._childUIPointerDownDrag = function( event ) { event.preventDefault(); this.pointerDownFocus( event ); }; proto.pointerDown = function( event, pointer ) { if ( !this.isDraggable ) { this._pointerDownDefault( event, pointer ); return; } var isOkay = this.okayPointerDown( event ); if ( !isOkay ) { return; } this._pointerDownPreventDefault( event ); this.pointerDownFocus( event ); if ( document.activeElement != this.element ) { this.pointerDownBlur(); } this.dragX = this.x; this.viewport.classList.add('is-pointer-down'); this.pointerDownScroll = getScrollPosition(); window.addEventListener( 'scroll', this ); this._pointerDownDefault( event, pointer ); }; proto._pointerDownDefault = function( event, pointer ) { this.pointerDownPointer = pointer; this._bindPostStartEvents( event ); this.dispatchEvent( 'pointerDown', event, [ pointer ] ); }; var focusNodes = { INPUT: true, TEXTAREA: true, SELECT: true, }; proto.pointerDownFocus = function( event ) { var isFocusNode = focusNodes[ event.target.nodeName ]; if ( !isFocusNode ) { this.focus(); } }; proto._pointerDownPreventDefault = function( event ) { var isTouchStart = event.type == 'touchstart'; var isTouchPointer = event.pointerType == 'touch'; var isFocusNode = focusNodes[ event.target.nodeName ]; if ( !isTouchStart && !isTouchPointer && !isFocusNode ) { event.preventDefault(); } }; proto.hasDragStarted = function( moveVector ) { return Math.abs( moveVector.x ) > this.options.dragThreshold; }; proto.pointerUp = function( event, pointer ) { delete this.isTouchScrolling; this.viewport.classList.remove('is-pointer-down'); this.dispatchEvent( 'pointerUp', event, [ pointer ] ); this._dragPointerUp( event, pointer ); }; proto.pointerDone = function() { window.removeEventListener( 'scroll', this ); delete this.pointerDownScroll; }; proto.dragStart = function( event, pointer ) { if ( !this.isDraggable ) { return; } this.dragStartPosition = this.x; this.startAnimation(); window.removeEventListener( 'scroll', this ); this.dispatchEvent( 'dragStart', event, [ pointer ] ); }; proto.pointerMove = function( event, pointer ) { var moveVector = this._dragPointerMove( event, pointer ); this.dispatchEvent( 'pointerMove', event, [ pointer, moveVector ] ); this._dragMove( event, pointer, moveVector ); }; proto.dragMove = function( event, pointer, moveVector ) { if ( !this.isDraggable ) { return; } event.preventDefault(); var direction = this.options.rightToLeft ? -1 : 1; if ( this.options.wrapAround ) { moveVector.x = moveVector.x % this.slideableWidth; } var dragX = this.dragStartPosition + moveVector.x * direction; if ( !this.options.wrapAround && this.slides.length ) { var originBound = Math.max( -this.slides[0].target, this.dragStartPosition ); dragX = dragX > originBound ? ( dragX + originBound ) * 0.5 : dragX; var endBound = Math.min( -this.getLastSlide().target, this.dragStartPosition ); dragX = dragX < endBound ? ( dragX + endBound ) * 0.5 : dragX; } if ( this.dragX !== dragX ) { this.previousDragX = this.dragX; } this.dragX = dragX; this.dragMoveTime = new Date(); this.dispatchEvent( 'dragMove', event, [ pointer, moveVector ] ); }; proto.dragEnd = function( event, pointer ) { if ( !this.isDraggable ) { return; } if ( this.options.freeScroll ) { this.isFreeScrolling = true; } var index = this.dragEndRestingSelect(); if ( this.options.freeScroll && !this.options.wrapAround ) { var restingX = this.getRestingPosition(); this.isFreeScrolling = -restingX > this.slides[0].target && -restingX < this.getLastSlide().target; } else if ( !this.options.freeScroll && index == this.selectedIndex ) { index += this.dragEndBoostSelect(); } delete this.previousDragX; this.isDragSelect = this.options.wrapAround; this.select( index ); delete this.isDragSelect; this.dispatchEvent( 'dragEnd', event, [ pointer ] ); }; proto.dragEndRestingSelect = function() { var restingX = this.getRestingPosition(); var distance = Math.abs( this.getSlideDistance( -restingX, this.selectedIndex ) ); var positiveResting = this._getClosestResting( restingX, distance, 1 ); var negativeResting = this._getClosestResting( restingX, distance, -1 ); var index = positiveResting.distance < negativeResting.distance ? positiveResting.index : negativeResting.index; return index; }; /** * given resting X and distance to selected cell * get the distance and index of the closest cell * @param {Number} restingX - estimated post-flick resting position * @param {Number} distance - distance to selected cell * @param {Integer} increment - +1 or -1, going up or down * @returns {Object} - { distance: {Number}, index: {Integer} } */ proto._getClosestResting = function( restingX, distance, increment ) { var index = this.selectedIndex; var minDistance = Infinity; var condition = this.options.contain && !this.options.wrapAround ? function( d, md ) { return d <= md; } : function( d, md ) { return d < md; }; while ( condition( distance, minDistance ) ) { index += increment; minDistance = distance; distance = this.getSlideDistance( -restingX, index ); if ( distance === null ) { break; } distance = Math.abs( distance ); } return { distance: minDistance, index: index - increment }; }; /** * measure distance between x and a slide target * @param {Number} x * @param {Integer} index - slide index */ proto.getSlideDistance = function( x, index ) { var len = this.slides.length; var isWrapAround = this.options.wrapAround && len > 1; var slideIndex = isWrapAround ? utils.modulo( index, len ) : index; var slide = this.slides[ slideIndex ]; if ( !slide ) { return null; } var wrap = isWrapAround ? this.slideableWidth * Math.floor( index / len ) : 0; return x - ( slide.target + wrap ); }; proto.dragEndBoostSelect = function() { if ( this.previousDragX === undefined || !this.dragMoveTime || new Date() - this.dragMoveTime > 100 ) { return 0; } var distance = this.getSlideDistance( -this.dragX, this.selectedIndex ); var delta = this.previousDragX - this.dragX; if ( distance > 0 && delta > 0 ) { return 1; } else if ( distance < 0 && delta < 0 ) { return -1; } return 0; }; proto.staticClick = function( event, pointer ) { var clickedCell = this.getParentCell( event.target ); var cellElem = clickedCell && clickedCell.element; var cellIndex = clickedCell && this.cells.indexOf( clickedCell ); this.dispatchEvent( 'staticClick', event, [ pointer, cellElem, cellIndex ] ); }; proto.onscroll = function() { var scroll = getScrollPosition(); var scrollMoveX = this.pointerDownScroll.x - scroll.x; var scrollMoveY = this.pointerDownScroll.y - scroll.y; if ( Math.abs( scrollMoveX ) > 3 || Math.abs( scrollMoveY ) > 3 ) { this._pointerDone(); } }; function getScrollPosition() { return { x: window.pageXOffset, y: window.pageYOffset }; } return Flickity; })); /*! * Tap listener v2.0.0 * listens to taps * MIT license */ /*jshint browser: true, unused: true, undef: true, strict: true */ ( function( window, factory ) { /*jshint strict: false*/ /*globals define, module, require */ if ( typeof define == 'function' && define.amd ) { define( 'tap-listener/tap-listener',[ 'unipointer/unipointer' ], function( Unipointer ) { return factory( window, Unipointer ); }); } else if ( typeof module == 'object' && module.exports ) { module.exports = factory( window, require('unipointer') ); } else { window.TapListener = factory( window, window.Unipointer ); } }( window, function factory( window, Unipointer ) { function TapListener( elem ) { this.bindTap( elem ); } var proto = TapListener.prototype = Object.create( Unipointer.prototype ); /** * bind tap event to element * @param {Element} elem */ proto.bindTap = function( elem ) { if ( !elem ) { return; } this.unbindTap(); this.tapElement = elem; this._bindStartEvent( elem, true ); }; proto.unbindTap = function() { if ( !this.tapElement ) { return; } this._bindStartEvent( this.tapElement, true ); delete this.tapElement; }; /** * pointer up * @param {Event} event * @param {Event or Touch} pointer */ proto.pointerUp = function( event, pointer ) { if ( this.isIgnoringMouseUp && event.type == 'mouseup' ) { return; } var pointerPoint = Unipointer.getPointerPoint( pointer ); var boundingRect = this.tapElement.getBoundingClientRect(); var scrollX = window.pageXOffset; var scrollY = window.pageYOffset; var isInside = pointerPoint.x >= boundingRect.left + scrollX && pointerPoint.x <= boundingRect.right + scrollX && pointerPoint.y >= boundingRect.top + scrollY && pointerPoint.y <= boundingRect.bottom + scrollY; if ( isInside ) { this.emitEvent( 'tap', [ event, pointer ] ); } if ( event.type != 'mouseup' ) { this.isIgnoringMouseUp = true; var _this = this; setTimeout( function() { delete _this.isIgnoringMouseUp; }, 400 ); } }; proto.destroy = function() { this.pointerDone(); this.unbindTap(); }; return TapListener; })); ( function( window, factory ) { /* jshint strict: false */ if ( typeof define == 'function' && define.amd ) { define( 'flickity/js/prev-next-button',[ './flickity', 'tap-listener/tap-listener', 'fizzy-ui-utils/utils' ], function( Flickity, TapListener, utils ) { return factory( window, Flickity, TapListener, utils ); }); } else if ( typeof module == 'object' && module.exports ) { module.exports = factory( window, require('./flickity'), require('tap-listener'), require('fizzy-ui-utils') ); } else { factory( window, window.Flickity, window.TapListener, window.fizzyUIUtils ); } }( window, function factory( window, Flickity, TapListener, utils ) { 'use strict'; var svgURI = 'http://www.w3.org/2000/svg'; function PrevNextButton( direction, parent ) { this.direction = direction; this.parent = parent; this._create(); } PrevNextButton.prototype = Object.create( TapListener.prototype ); PrevNextButton.prototype._create = function() { this.isEnabled = true; this.isPrevious = this.direction == -1; var leftDirection = this.parent.options.rightToLeft ? 1 : -1; this.isLeft = this.direction == leftDirection; var element = this.element = document.createElement('button'); element.className = 'flickity-button flickity-prev-next-button'; element.className += this.isPrevious ? ' previous' : ' next'; element.setAttribute( 'type', 'button' ); this.disable(); element.setAttribute( 'aria-label', this.isPrevious ? 'Previous' : 'Next' ); var svg = this.createSVG(); element.appendChild( svg ); this.on( 'tap', this.onTap ); this.parent.on( 'select', this.update.bind( this ) ); this.on( 'pointerDown', this.parent.childUIPointerDown.bind( this.parent ) ); }; PrevNextButton.prototype.activate = function() { this.bindTap( this.element ); this.element.addEventListener( 'click', this ); this.parent.element.appendChild( this.element ); }; PrevNextButton.prototype.deactivate = function() { this.parent.element.removeChild( this.element ); TapListener.prototype.destroy.call( this ); this.element.removeEventListener( 'click', this ); }; PrevNextButton.prototype.createSVG = function() { var svg = document.createElementNS( svgURI, 'svg'); svg.setAttribute( 'class', 'flickity-button-icon' ); svg.setAttribute( 'viewBox', '0 0 100 100' ); var path = document.createElementNS( svgURI, 'path'); var pathMovements = getArrowMovements( this.parent.options.arrowShape ); path.setAttribute( 'd', pathMovements ); path.setAttribute( 'class', 'arrow' ); if ( !this.isLeft ) { path.setAttribute( 'transform', 'translate(100, 100) rotate(180) ' ); } svg.appendChild( path ); return svg; }; function getArrowMovements( shape ) { if ( typeof shape == 'string' ) { return shape; } return 'M ' + shape.x0 + ',50' + ' L ' + shape.x1 + ',' + ( shape.y1 + 50 ) + ' L ' + shape.x2 + ',' + ( shape.y2 + 50 ) + ' L ' + shape.x3 + ',50 ' + ' L ' + shape.x2 + ',' + ( 50 - shape.y2 ) + ' L ' + shape.x1 + ',' + ( 50 - shape.y1 ) + ' Z'; } PrevNextButton.prototype.onTap = function() { if ( !this.isEnabled ) { return; } this.parent.uiChange(); var method = this.isPrevious ? 'previous' : 'next'; this.parent[ method ](); }; PrevNextButton.prototype.handleEvent = utils.handleEvent; PrevNextButton.prototype.onclick = function( event ) { var focused = document.activeElement; if ( focused && focused == this.element ) { this.onTap( event, event ); } }; PrevNextButton.prototype.enable = function() { if ( this.isEnabled ) { return; } this.element.disabled = false; this.isEnabled = true; }; PrevNextButton.prototype.disable = function() { if ( !this.isEnabled ) { return; } this.element.disabled = true; this.isEnabled = false; }; PrevNextButton.prototype.update = function() { var slides = this.parent.slides; if ( this.parent.options.wrapAround && slides.length > 1 ) { this.enable(); return; } var lastIndex = slides.length ? slides.length - 1 : 0; var boundIndex = this.isPrevious ? 0 : lastIndex; var method = this.parent.selectedIndex == boundIndex ? 'disable' : 'enable'; this[ method ](); }; PrevNextButton.prototype.destroy = function() { this.deactivate(); }; utils.extend( Flickity.defaults, { prevNextButtons: true, arrowShape: { x0: 10, x1: 60, y1: 50, x2: 70, y2: 40, x3: 30 } }); Flickity.createMethods.push('_createPrevNextButtons'); var proto = Flickity.prototype; proto._createPrevNextButtons = function() { if ( !this.options.prevNextButtons ) { return; } this.prevButton = new PrevNextButton( -1, this ); this.nextButton = new PrevNextButton( 1, this ); this.on( 'activate', this.activatePrevNextButtons ); }; proto.activatePrevNextButtons = function() { this.prevButton.activate(); this.nextButton.activate(); this.on( 'deactivate', this.deactivatePrevNextButtons ); }; proto.deactivatePrevNextButtons = function() { this.prevButton.deactivate(); this.nextButton.deactivate(); this.off( 'deactivate', this.deactivatePrevNextButtons ); }; Flickity.PrevNextButton = PrevNextButton; return Flickity; })); ( function( window, factory ) { /* jshint strict: false */ if ( typeof define == 'function' && define.amd ) { define( 'flickity/js/page-dots',[ './flickity', 'tap-listener/tap-listener', 'fizzy-ui-utils/utils' ], function( Flickity, TapListener, utils ) { return factory( window, Flickity, TapListener, utils ); }); } else if ( typeof module == 'object' && module.exports ) { module.exports = factory( window, require('./flickity'), require('tap-listener'), require('fizzy-ui-utils') ); } else { factory( window, window.Flickity, window.TapListener, window.fizzyUIUtils ); } }( window, function factory( window, Flickity, TapListener, utils ) { function PageDots( parent ) { this.parent = parent; this._create(); } PageDots.prototype = new TapListener(); PageDots.prototype._create = function() { this.holder = document.createElement('ol'); this.holder.className = 'flickity-page-dots'; this.dots = []; this.on( 'tap', this.onTap ); this.on( 'pointerDown', this.parent.childUIPointerDown.bind( this.parent ) ); }; PageDots.prototype.activate = function() { this.setDots(); this.bindTap( this.holder ); this.parent.element.appendChild( this.holder ); }; PageDots.prototype.deactivate = function() { this.parent.element.removeChild( this.holder ); TapListener.prototype.destroy.call( this ); }; PageDots.prototype.setDots = function() { var delta = this.parent.slides.length - this.dots.length; if ( delta > 0 ) { this.addDots( delta ); } else if ( delta < 0 ) { this.removeDots( -delta ); } }; PageDots.prototype.addDots = function( count ) { var fragment = document.createDocumentFragment(); var newDots = []; var length = this.dots.length; var max = length + count; for ( var i = length; i < max; i++ ) { var dot = document.createElement('li'); dot.className = 'dot'; dot.setAttribute( 'aria-label', 'Page dot ' + ( i + 1 ) ); fragment.appendChild( dot ); newDots.push( dot ); } this.holder.appendChild( fragment ); this.dots = this.dots.concat( newDots ); }; PageDots.prototype.removeDots = function( count ) { var removeDots = this.dots.splice( this.dots.length - count, count ); removeDots.forEach( function( dot ) { this.holder.removeChild( dot ); }, this ); }; PageDots.prototype.updateSelected = function() { if ( this.selectedDot ) { this.selectedDot.className = 'dot'; this.selectedDot.removeAttribute('aria-current'); } if ( !this.dots.length ) { return; } this.selectedDot = this.dots[ this.parent.selectedIndex ]; this.selectedDot.className = 'dot is-selected'; this.selectedDot.setAttribute( 'aria-current', 'step' ); }; PageDots.prototype.onTap = function( event ) { var target = event.target; if ( target.nodeName != 'LI' ) { return; } this.parent.uiChange(); var index = this.dots.indexOf( target ); this.parent.select( index ); }; PageDots.prototype.destroy = function() { this.deactivate(); }; Flickity.PageDots = PageDots; utils.extend( Flickity.defaults, { pageDots: true }); Flickity.createMethods.push('_createPageDots'); var proto = Flickity.prototype; proto._createPageDots = function() { if ( !this.options.pageDots ) { return; } this.pageDots = new PageDots( this ); this.on( 'activate', this.activatePageDots ); this.on( 'select', this.updateSelectedPageDots ); this.on( 'cellChange', this.updatePageDots ); this.on( 'resize', this.updatePageDots ); this.on( 'deactivate', this.deactivatePageDots ); }; proto.activatePageDots = function() { this.pageDots.activate(); }; proto.updateSelectedPageDots = function() { this.pageDots.updateSelected(); }; proto.updatePageDots = function() { this.pageDots.setDots(); }; proto.deactivatePageDots = function() { this.pageDots.deactivate(); }; Flickity.PageDots = PageDots; return Flickity; })); ( function( window, factory ) { /* jshint strict: false */ if ( typeof define == 'function' && define.amd ) { define( 'flickity/js/player',[ 'ev-emitter/ev-emitter', 'fizzy-ui-utils/utils', './flickity' ], function( EvEmitter, utils, Flickity ) { return factory( EvEmitter, utils, Flickity ); }); } else if ( typeof module == 'object' && module.exports ) { module.exports = factory( require('ev-emitter'), require('fizzy-ui-utils'), require('./flickity') ); } else { factory( window.EvEmitter, window.fizzyUIUtils, window.Flickity ); } }( window, function factory( EvEmitter, utils, Flickity ) { function Player( parent ) { this.parent = parent; this.state = 'stopped'; this.onVisibilityChange = this.visibilityChange.bind( this ); this.onVisibilityPlay = this.visibilityPlay.bind( this ); } Player.prototype = Object.create( EvEmitter.prototype ); Player.prototype.play = function() { if ( this.state == 'playing' ) { return; } var isPageHidden = document.hidden; if ( isPageHidden ) { document.addEventListener( 'visibilitychange', this.onVisibilityPlay ); return; } this.state = 'playing'; document.addEventListener( 'visibilitychange', this.onVisibilityChange ); this.tick(); }; Player.prototype.tick = function() { if ( this.state != 'playing' ) { return; } var time = this.parent.options.autoPlay; time = typeof time == 'number' ? time : 3000; var _this = this; this.clear(); this.timeout = setTimeout( function() { _this.parent.next( true ); _this.tick(); }, time ); }; Player.prototype.stop = function() { this.state = 'stopped'; this.clear(); document.removeEventListener( 'visibilitychange', this.onVisibilityChange ); }; Player.prototype.clear = function() { clearTimeout( this.timeout ); }; Player.prototype.pause = function() { if ( this.state == 'playing' ) { this.state = 'paused'; this.clear(); } }; Player.prototype.unpause = function() { if ( this.state == 'paused' ) { this.play(); } }; Player.prototype.visibilityChange = function() { var isPageHidden = document.hidden; this[ isPageHidden ? 'pause' : 'unpause' ](); }; Player.prototype.visibilityPlay = function() { this.play(); document.removeEventListener( 'visibilitychange', this.onVisibilityPlay ); }; utils.extend( Flickity.defaults, { pauseAutoPlayOnHover: true }); Flickity.createMethods.push('_createPlayer'); var proto = Flickity.prototype; proto._createPlayer = function() { this.player = new Player( this ); this.on( 'activate', this.activatePlayer ); this.on( 'uiChange', this.stopPlayer ); this.on( 'pointerDown', this.stopPlayer ); this.on( 'deactivate', this.deactivatePlayer ); }; proto.activatePlayer = function() { if ( !this.options.autoPlay ) { return; } this.player.play(); this.element.addEventListener( 'mouseenter', this ); }; proto.playPlayer = function() { this.player.play(); }; proto.stopPlayer = function() { this.player.stop(); }; proto.pausePlayer = function() { this.player.pause(); }; proto.unpausePlayer = function() { this.player.unpause(); }; proto.deactivatePlayer = function() { this.player.stop(); this.element.removeEventListener( 'mouseenter', this ); }; proto.onmouseenter = function() { if ( !this.options.pauseAutoPlayOnHover ) { return; } this.player.pause(); this.element.addEventListener( 'mouseleave', this ); }; proto.onmouseleave = function() { this.player.unpause(); this.element.removeEventListener( 'mouseleave', this ); }; Flickity.Player = Player; return Flickity; })); ( function( window, factory ) { /* jshint strict: false */ if ( typeof define == 'function' && define.amd ) { define( 'flickity/js/add-remove-cell',[ './flickity', 'fizzy-ui-utils/utils' ], function( Flickity, utils ) { return factory( window, Flickity, utils ); }); } else if ( typeof module == 'object' && module.exports ) { module.exports = factory( window, require('./flickity'), require('fizzy-ui-utils') ); } else { factory( window, window.Flickity, window.fizzyUIUtils ); } }( window, function factory( window, Flickity, utils ) { function getCellsFragment( cells ) { var fragment = document.createDocumentFragment(); cells.forEach( function( cell ) { fragment.appendChild( cell.element ); }); return fragment; } var proto = Flickity.prototype; /** * Insert, prepend, or append cells * @param {Element, Array, NodeList} elems * @param {Integer} index */ proto.insert = function( elems, index ) { var cells = this._makeCells( elems ); if ( !cells || !cells.length ) { return; } var len = this.cells.length; index = index === undefined ? len : index; var fragment = getCellsFragment( cells ); var isAppend = index == len; if ( isAppend ) { this.slider.appendChild( fragment ); } else { var insertCellElement = this.cells[ index ].element; this.slider.insertBefore( fragment, insertCellElement ); } if ( index === 0 ) { this.cells = cells.concat( this.cells ); } else if ( isAppend ) { this.cells = this.cells.concat( cells ); } else { var endCells = this.cells.splice( index, len - index ); this.cells = this.cells.concat( cells ).concat( endCells ); } this._sizeCells( cells ); this.cellChange( index, true ); }; proto.append = function( elems ) { this.insert( elems, this.cells.length ); }; proto.prepend = function( elems ) { this.insert( elems, 0 ); }; /** * Remove cells * @param {Element, Array, NodeList} elems */ proto.remove = function( elems ) { var cells = this.getCells( elems ); if ( !cells || !cells.length ) { return; } var minCellIndex = this.cells.length - 1; cells.forEach( function( cell ) { cell.remove(); var index = this.cells.indexOf( cell ); minCellIndex = Math.min( index, minCellIndex ); utils.removeFrom( this.cells, cell ); }, this ); this.cellChange( minCellIndex, true ); }; /** * logic to be run after a cell's size changes * @param {Element} elem - cell's element */ proto.cellSizeChange = function( elem ) { var cell = this.getCell( elem ); if ( !cell ) { return; } cell.getSize(); var index = this.cells.indexOf( cell ); this.cellChange( index ); }; /** * logic any time a cell is changed: added, removed, or size changed * @param {Integer} changedCellIndex - index of the changed cell, optional */ proto.cellChange = function( changedCellIndex, isPositioningSlider ) { var prevSelectedElem = this.selectedElement; this._positionCells( changedCellIndex ); this._getWrapShiftCells(); this.setGallerySize(); var cell = this.getCell( prevSelectedElem ); if ( cell ) { this.selectedIndex = this.getCellSlideIndex( cell ); } this.selectedIndex = Math.min( this.slides.length - 1, this.selectedIndex ); this.emitEvent( 'cellChange', [ changedCellIndex ] ); this.select( this.selectedIndex ); if ( isPositioningSlider ) { this.positionSliderAtSelected(); } }; return Flickity; })); ( function( window, factory ) { /* jshint strict: false */ if ( typeof define == 'function' && define.amd ) { define( 'flickity/js/lazyload',[ './flickity', 'fizzy-ui-utils/utils' ], function( Flickity, utils ) { return factory( window, Flickity, utils ); }); } else if ( typeof module == 'object' && module.exports ) { module.exports = factory( window, require('./flickity'), require('fizzy-ui-utils') ); } else { factory( window, window.Flickity, window.fizzyUIUtils ); } }( window, function factory( window, Flickity, utils ) { 'use strict'; Flickity.createMethods.push('_createLazyload'); var proto = Flickity.prototype; proto._createLazyload = function() { this.on( 'select', this.lazyLoad ); }; proto.lazyLoad = function() { var lazyLoad = this.options.lazyLoad; if ( !lazyLoad ) { return; } var adjCount = typeof lazyLoad == 'number' ? lazyLoad : 0; var cellElems = this.getAdjacentCellElements( adjCount ); var lazyImages = []; cellElems.forEach( function( cellElem ) { var lazyCellImages = getCellLazyImages( cellElem ); lazyImages = lazyImages.concat( lazyCellImages ); }); lazyImages.forEach( function( img ) { new LazyLoader( img, this ); }, this ); }; function getCellLazyImages( cellElem ) { if ( cellElem.nodeName == 'IMG' ) { var lazyloadAttr = cellElem.getAttribute('data-flickity-lazyload'); var srcAttr = cellElem.getAttribute('data-flickity-lazyload-src'); var srcsetAttr = cellElem.getAttribute('data-flickity-lazyload-srcset'); if ( lazyloadAttr || srcAttr || srcsetAttr ) { return [ cellElem ]; } } var lazySelector = 'img[data-flickity-lazyload], ' + 'img[data-flickity-lazyload-src], img[data-flickity-lazyload-srcset]'; var imgs = cellElem.querySelectorAll( lazySelector ); return utils.makeArray( imgs ); } /** * class to handle loading images */ function LazyLoader( img, flickity ) { this.img = img; this.flickity = flickity; this.load(); } LazyLoader.prototype.handleEvent = utils.handleEvent; LazyLoader.prototype.load = function() { this.img.addEventListener( 'load', this ); this.img.addEventListener( 'error', this ); var src = this.img.getAttribute('data-flickity-lazyload') || this.img.getAttribute('data-flickity-lazyload-src'); var srcset = this.img.getAttribute('data-flickity-lazyload-srcset'); this.img.src = src; if ( srcset ) { this.img.setAttribute( 'srcset', srcset ); } this.img.removeAttribute('data-flickity-lazyload'); this.img.removeAttribute('data-flickity-lazyload-src'); this.img.removeAttribute('data-flickity-lazyload-srcset'); }; LazyLoader.prototype.onload = function( event ) { this.complete( event, 'flickity-lazyloaded' ); }; LazyLoader.prototype.onerror = function( event ) { this.complete( event, 'flickity-lazyerror' ); }; LazyLoader.prototype.complete = function( event, className ) { this.img.removeEventListener( 'load', this ); this.img.removeEventListener( 'error', this ); var cell = this.flickity.getParentCell( this.img ); var cellElem = cell && cell.element; this.flickity.cellSizeChange( cellElem ); this.img.classList.add( className ); this.flickity.dispatchEvent( 'lazyLoad', event, cellElem ); }; Flickity.LazyLoader = LazyLoader; return Flickity; })); /*! * Flickity v2.1.2 * Touch, responsive, flickable carousels * * Licensed GPLv3 for open source use * or Flickity Commercial License for commercial use * * https://flickity.metafizzy.co * Copyright 2015-2018 Metafizzy */ ( function( window, factory ) { /* jshint strict: false */ if ( typeof define == 'function' && define.amd ) { define( 'flickity/js/index',[ './flickity', './drag', './prev-next-button', './page-dots', './player', './add-remove-cell', './lazyload' ], factory ); } else if ( typeof module == 'object' && module.exports ) { module.exports = factory( require('./flickity'), require('./drag'), require('./prev-next-button'), require('./page-dots'), require('./player'), require('./add-remove-cell'), require('./lazyload') ); } })( window, function factory( Flickity ) { /*jshint strict: false*/ return Flickity; }); /*! * Flickity asNavFor v2.0.1 * enable asNavFor for Flickity */ /*jshint browser: true, undef: true, unused: true, strict: true*/ ( function( window, factory ) { /*jshint strict: false */ /*globals define, module, require */ if ( typeof define == 'function' && define.amd ) { define( 'flickity-as-nav-for/as-nav-for',[ 'flickity/js/index', 'fizzy-ui-utils/utils' ], factory ); } else if ( typeof module == 'object' && module.exports ) { module.exports = factory( require('flickity'), require('fizzy-ui-utils') ); } else { window.Flickity = factory( window.Flickity, window.fizzyUIUtils ); } }( window, function factory( Flickity, utils ) { Flickity.createMethods.push('_createAsNavFor'); var proto = Flickity.prototype; proto._createAsNavFor = function() { this.on( 'activate', this.activateAsNavFor ); this.on( 'deactivate', this.deactivateAsNavFor ); this.on( 'destroy', this.destroyAsNavFor ); var asNavForOption = this.options.asNavFor; if ( !asNavForOption ) { return; } var _this = this; setTimeout( function initNavCompanion() { _this.setNavCompanion( asNavForOption ); }); }; proto.setNavCompanion = function( elem ) { elem = utils.getQueryElement( elem ); var companion = Flickity.data( elem ); if ( !companion || companion == this ) { return; } this.navCompanion = companion; var _this = this; this.onNavCompanionSelect = function() { _this.navCompanionSelect(); }; companion.on( 'select', this.onNavCompanionSelect ); this.on( 'staticClick', this.onNavStaticClick ); this.navCompanionSelect( true ); }; proto.navCompanionSelect = function( isInstant ) { if ( !this.navCompanion ) { return; } var selectedCell = this.navCompanion.selectedCells[0]; var firstIndex = this.navCompanion.cells.indexOf( selectedCell ); var lastIndex = firstIndex + this.navCompanion.selectedCells.length - 1; var selectIndex = Math.floor( lerp( firstIndex, lastIndex, this.navCompanion.cellAlign ) ); this.selectCell( selectIndex, false, isInstant ); this.removeNavSelectedElements(); if ( selectIndex >= this.cells.length ) { return; } var selectedCells = this.cells.slice( firstIndex, lastIndex + 1 ); this.navSelectedElements = selectedCells.map( function( cell ) { return cell.element; }); this.changeNavSelectedClass('add'); }; function lerp( a, b, t ) { return ( b - a ) * t + a; } proto.changeNavSelectedClass = function( method ) { this.navSelectedElements.forEach( function( navElem ) { navElem.classList[ method ]('is-nav-selected'); }); }; proto.activateAsNavFor = function() { this.navCompanionSelect( true ); }; proto.removeNavSelectedElements = function() { if ( !this.navSelectedElements ) { return; } this.changeNavSelectedClass('remove'); delete this.navSelectedElements; }; proto.onNavStaticClick = function( event, pointer, cellElement, cellIndex ) { if ( typeof cellIndex == 'number' ) { this.navCompanion.selectCell( cellIndex ); } }; proto.deactivateAsNavFor = function() { this.removeNavSelectedElements(); }; proto.destroyAsNavFor = function() { if ( !this.navCompanion ) { return; } this.navCompanion.off( 'select', this.onNavCompanionSelect ); this.off( 'staticClick', this.onNavStaticClick ); delete this.navCompanion; }; return Flickity; })); /*! * imagesLoaded v4.1.4 * JavaScript is all like "You images are done yet or what?" * MIT License */ ( function( window, factory ) { 'use strict'; /*global define: false, module: false, require: false */ if ( typeof define == 'function' && define.amd ) { define( 'imagesloaded/imagesloaded',[ 'ev-emitter/ev-emitter' ], function( EvEmitter ) { return factory( window, EvEmitter ); }); } else if ( typeof module == 'object' && module.exports ) { module.exports = factory( window, require('ev-emitter') ); } else { window.imagesLoaded = factory( window, window.EvEmitter ); } })( typeof window !== 'undefined' ? window : this, function factory( window, EvEmitter ) { var $ = window.jQuery; var console = window.console; function extend( a, b ) { for ( var prop in b ) { a[ prop ] = b[ prop ]; } return a; } var arraySlice = Array.prototype.slice; function makeArray( obj ) { if ( Array.isArray( obj ) ) { return obj; } var isArrayLike = typeof obj == 'object' && typeof obj.length == 'number'; if ( isArrayLike ) { return arraySlice.call( obj ); } return [ obj ]; } /** * @param {Array, Element, NodeList, String} elem * @param {Object or Function} options - if function, use as callback * @param {Function} onAlways - callback function */ function ImagesLoaded( elem, options, onAlways ) { if ( !( this instanceof ImagesLoaded ) ) { return new ImagesLoaded( elem, options, onAlways ); } var queryElem = elem; if ( typeof elem == 'string' ) { queryElem = document.querySelectorAll( elem ); } if ( !queryElem ) { console.error( 'Bad element for imagesLoaded ' + ( queryElem || elem ) ); return; } this.elements = makeArray( queryElem ); this.options = extend( {}, this.options ); if ( typeof options == 'function' ) { onAlways = options; } else { extend( this.options, options ); } if ( onAlways ) { this.on( 'always', onAlways ); } this.getImages(); if ( $ ) { this.jqDeferred = new $.Deferred(); } setTimeout( this.check.bind( this ) ); } ImagesLoaded.prototype = Object.create( EvEmitter.prototype ); ImagesLoaded.prototype.options = {}; ImagesLoaded.prototype.getImages = function() { this.images = []; this.elements.forEach( this.addElementImages, this ); }; /** * @param {Node} element */ ImagesLoaded.prototype.addElementImages = function( elem ) { if ( elem.nodeName == 'IMG' ) { this.addImage( elem ); } if ( this.options.background === true ) { this.addElementBackgroundImages( elem ); } var nodeType = elem.nodeType; if ( !nodeType || !elementNodeTypes[ nodeType ] ) { return; } var childImgs = elem.querySelectorAll('img'); for ( var i=0; i < childImgs.length; i++ ) { var img = childImgs[i]; this.addImage( img ); } if ( typeof this.options.background == 'string' ) { var children = elem.querySelectorAll( this.options.background ); for ( i=0; i < children.length; i++ ) { var child = children[i]; this.addElementBackgroundImages( child ); } } }; var elementNodeTypes = { 1: true, 9: true, 11: true }; ImagesLoaded.prototype.addElementBackgroundImages = function( elem ) { var style = getComputedStyle( elem ); if ( !style ) { return; } var reURL = /url\((['"])?(.*?)\1\)/gi; var matches = reURL.exec( style.backgroundImage ); while ( matches !== null ) { var url = matches && matches[2]; if ( url ) { this.addBackground( url, elem ); } matches = reURL.exec( style.backgroundImage ); } }; /** * @param {Image} img */ ImagesLoaded.prototype.addImage = function( img ) { var loadingImage = new LoadingImage( img ); this.images.push( loadingImage ); }; ImagesLoaded.prototype.addBackground = function( url, elem ) { var background = new Background( url, elem ); this.images.push( background ); }; ImagesLoaded.prototype.check = function() { var _this = this; this.progressedCount = 0; this.hasAnyBroken = false; if ( !this.images.length ) { this.complete(); return; } function onProgress( image, elem, message ) { setTimeout( function() { _this.progress( image, elem, message ); }); } this.images.forEach( function( loadingImage ) { loadingImage.once( 'progress', onProgress ); loadingImage.check(); }); }; ImagesLoaded.prototype.progress = function( image, elem, message ) { this.progressedCount++; this.hasAnyBroken = this.hasAnyBroken || !image.isLoaded; this.emitEvent( 'progress', [ this, image, elem ] ); if ( this.jqDeferred && this.jqDeferred.notify ) { this.jqDeferred.notify( this, image ); } if ( this.progressedCount == this.images.length ) { this.complete(); } if ( this.options.debug && console ) { console.log( 'progress: ' + message, image, elem ); } }; ImagesLoaded.prototype.complete = function() { var eventName = this.hasAnyBroken ? 'fail' : 'done'; this.isComplete = true; this.emitEvent( eventName, [ this ] ); this.emitEvent( 'always', [ this ] ); if ( this.jqDeferred ) { var jqMethod = this.hasAnyBroken ? 'reject' : 'resolve'; this.jqDeferred[ jqMethod ]( this ); } }; function LoadingImage( img ) { this.img = img; } LoadingImage.prototype = Object.create( EvEmitter.prototype ); LoadingImage.prototype.check = function() { var isComplete = this.getIsImageComplete(); if ( isComplete ) { this.confirm( this.img.naturalWidth !== 0, 'naturalWidth' ); return; } this.proxyImage = new Image(); this.proxyImage.addEventListener( 'load', this ); this.proxyImage.addEventListener( 'error', this ); this.img.addEventListener( 'load', this ); this.img.addEventListener( 'error', this ); this.proxyImage.src = this.img.src; }; LoadingImage.prototype.getIsImageComplete = function() { return this.img.complete && this.img.naturalWidth; }; LoadingImage.prototype.confirm = function( isLoaded, message ) { this.isLoaded = isLoaded; this.emitEvent( 'progress', [ this, this.img, message ] ); }; LoadingImage.prototype.handleEvent = function( event ) { var method = 'on' + event.type; if ( this[ method ] ) { this[ method ]( event ); } }; LoadingImage.prototype.onload = function() { this.confirm( true, 'onload' ); this.unbindEvents(); }; LoadingImage.prototype.onerror = function() { this.confirm( false, 'onerror' ); this.unbindEvents(); }; LoadingImage.prototype.unbindEvents = function() { this.proxyImage.removeEventListener( 'load', this ); this.proxyImage.removeEventListener( 'error', this ); this.img.removeEventListener( 'load', this ); this.img.removeEventListener( 'error', this ); }; function Background( url, element ) { this.url = url; this.element = element; this.img = new Image(); } Background.prototype = Object.create( LoadingImage.prototype ); Background.prototype.check = function() { this.img.addEventListener( 'load', this ); this.img.addEventListener( 'error', this ); this.img.src = this.url; var isComplete = this.getIsImageComplete(); if ( isComplete ) { this.confirm( this.img.naturalWidth !== 0, 'naturalWidth' ); this.unbindEvents(); } }; Background.prototype.unbindEvents = function() { this.img.removeEventListener( 'load', this ); this.img.removeEventListener( 'error', this ); }; Background.prototype.confirm = function( isLoaded, message ) { this.isLoaded = isLoaded; this.emitEvent( 'progress', [ this, this.element, message ] ); }; ImagesLoaded.makeJQueryPlugin = function( jQuery ) { jQuery = jQuery || window.jQuery; if ( !jQuery ) { return; } $ = jQuery; $.fn.imagesLoaded = function( options, callback ) { var instance = new ImagesLoaded( this, options, callback ); return instance.jqDeferred.promise( $(this) ); }; }; ImagesLoaded.makeJQueryPlugin(); return ImagesLoaded; }); /*! * Flickity imagesLoaded v2.0.0 * enables imagesLoaded option for Flickity */ /*jshint browser: true, strict: true, undef: true, unused: true */ ( function( window, factory ) { /*jshint strict: false */ /*globals define, module, require */ if ( typeof define == 'function' && define.amd ) { define( [ 'flickity/js/index', 'imagesloaded/imagesloaded' ], function( Flickity, imagesLoaded ) { return factory( window, Flickity, imagesLoaded ); }); } else if ( typeof module == 'object' && module.exports ) { module.exports = factory( window, require('flickity'), require('imagesloaded') ); } else { window.Flickity = factory( window, window.Flickity, window.imagesLoaded ); } }( window, function factory( window, Flickity, imagesLoaded ) { 'use strict'; Flickity.createMethods.push('_createImagesLoaded'); var proto = Flickity.prototype; proto._createImagesLoaded = function() { this.on( 'activate', this.imagesLoaded ); }; proto.imagesLoaded = function() { if ( !this.options.imagesLoaded ) { return; } var _this = this; function onImagesLoadedProgress( instance, image ) { var cell = _this.getParentCell( image.img ); _this.cellSizeChange( cell && cell.element ); if ( !_this.options.freeScroll ) { _this.positionSliderAtSelected(); } } imagesLoaded( this.slider ).on( 'progress', onImagesLoadedProgress ); }; return Flickity; })); ;(function($){"use strict";var methods=(function(){var c={bcClass:'sf-breadcrumb',menuClass:'sf-js-enabled',anchorClass:'sf-with-ul',menuArrowClass:'sf-arrows'},ios=(function(){var ios=/iPhone|iPad|iPod/i.test(navigator.userAgent);if(ios){$('html').css('cursor','pointer').on('click',$.noop);} return ios;})(),wp7=(function(){var style=document.documentElement.style;return('behavior'in style&&'fill'in style&&/iemobile/i.test(navigator.userAgent));})(),toggleMenuClasses=function($menu,o){var classes=c.menuClass;if(o.cssArrows){classes+=' '+c.menuArrowClass;} $menu.toggleClass(classes);},setPathToCurrent=function($menu,o){return $menu.find('li.'+o.pathClass).slice(0,o.pathLevels).addClass(o.hoverClass+' '+c.bcClass).filter(function(){return($(this).children(o.popUpSelector).hide().show().length);}).removeClass(o.pathClass);},toggleAnchorClass=function($li){$li.children('a').toggleClass(c.anchorClass);},toggleTouchAction=function($menu){var touchAction=$menu.css('ms-touch-action');touchAction=(touchAction==='pan-y')?'auto':'pan-y';$menu.css('ms-touch-action',touchAction);},applyHandlers=function($menu,o){var targets='li:has('+o.popUpSelector+')';if($.fn.hoverIntent&&!o.disableHI){$menu.hoverIntent(over,out,targets);} else{$menu.on('mouseenter.superfish',targets,over).on('mouseleave.superfish',targets,out);} var touchevent='MSPointerDown.superfish';if(!ios){touchevent+=' touchend.superfish';} if(wp7){touchevent+=' mousedown.superfish';} $menu.on('focusin.superfish','li',over).on('focusout.superfish','li',out).on(touchevent,'a',o,touchHandler);},touchHandler=function(e){var $this=$(this),$ul=$this.siblings(e.data.popUpSelector);if($ul.length>0&&$ul.is(':hidden')){$this.one('click.superfish',false);if(e.type==='MSPointerDown'){$this.trigger('focus');}else{$.proxy(over,$this.parent('li'))();}}},over=function(){var $this=$(this),o=getOptions($this);if($(this).parents('.megamenu').length>0)return;clearTimeout(o.sfTimer);$this.siblings().superfish('hide').end().superfish('show');},out=function(){var $this=$(this),o=getOptions($this);if(ios){$.proxy(close,$this,o)();} else{clearTimeout(o.sfTimer);o.sfTimer=setTimeout($.proxy(close,$this,o),o.delay);}},close=function(o){o.retainPath=($.inArray(this[0],o.$path)>-1);this.superfish('hide');if(!this.parents('.'+o.hoverClass).length){o.onIdle.call(getMenu(this));if(o.$path.length){$.proxy(over,o.$path)();}}},getMenu=function($el){return $el.closest('.'+c.menuClass);},getOptions=function($el){return getMenu($el).data('sf-options');};return{hide:function(instant){if(this.length){var $this=this,o=getOptions($this);if(!o){return this;} if($(this).hasClass('menu-item-over')&&$(this).hasClass('megamenu')){return true;} var not=(o.retainPath===true)?o.$path:'',$ul=$this.find('li.'+o.hoverClass).add(this).not(not).removeClass(o.hoverClass).children(o.popUpSelector),speed=o.speedOut;if(instant){$ul.show();speed=0;} o.retainPath=false;o.onBeforeHide.call($ul);if(o.dropdownStyle=='minimal'){var $this=$(this);o.onHide.call($this);}else{$ul.stop(true,true).animate(o.animationOut,speed,function(){var $this=$(this);o.onHide.call($this);});} if($(this).parents('.megamenu').length>0)return;if($('#header-outer[data-megamenu-rt="1"]').length>0&&$('#header-outer[data-transparent-header="true"]').length>0){if($('#header-outer.scrolled-down').length==0&&$('#header-outer.small-nav').length==0&&$('#header-outer.detached').length==0&&$('#header-outer.fixed-menu').length==0){$('#header-outer').addClass('transparent');} if($('#header-outer[data-permanent-transparent="1"][data-transparent-header="true"]').length>0){$('#header-outer').addClass('transparent');}}} return this;},show:function(){if($(this).parents('.megamenu').length>0)return;var o=getOptions(this);if(!o){return this;} var $this=this.addClass(o.hoverClass),$ul=$this.children(o.popUpSelector);if($('#header-outer[data-megamenu-rt="1"]').length>0&&$(this).hasClass('megamenu')&&$('#header-outer').attr('data-transparent-header')=='true'){$('#header-outer').addClass('no-transition');$('#header-outer').removeClass('transparent');} o.onBeforeShow.call($ul);if(!$($ul).parents('li').hasClass('megamenu')&&!$($ul).parents('ul').hasClass('sub-menu')&&$ul.offset()){$ul.addClass('temp-hidden-display');var docW=$("#top .container").width();var elm=$ul;var off=elm.offset();var l=off.left-($(window).width()-docW)/2;var w=elm.width();var isEntirelyVisible=(l+w<=$(window).width()-100);if(!isEntirelyVisible){$ul.parents('li').addClass('edge');}else{$ul.parents('li').removeClass('edge');} $ul.removeClass('temp-hidden-display');} if(o.dropdownStyle=='minimal'){o.onShow.call($ul);}else{$ul.stop(true,true).animate(o.animation,o.speed,function(){o.onShow.call($ul);});} if($ul.length>0&&$ul.parents('.sub-menu').length>0&&$ul.parents('.sf-menu').length>0){if($ul.offset().left+$ul.outerWidth()>$(window).width()){$ul.addClass('on-left-side');$ul.find('ul').addClass('on-left-side');}} return this;},destroy:function(){return this.each(function(){var $this=$(this),o=$this.data('sf-options'),$hasPopUp;if(!o){return false;} $hasPopUp=$this.find(o.popUpSelector).parent('li');clearTimeout(o.sfTimer);toggleMenuClasses($this,o);toggleAnchorClass($hasPopUp);toggleTouchAction($this);$this.off('.superfish').off('.hoverIntent');$hasPopUp.children(o.popUpSelector).attr('style',function(i,style){return style.replace(/display[^;]+;?/g,'');});o.$path.removeClass(o.hoverClass+' '+c.bcClass).addClass(o.pathClass);$this.find('.'+o.hoverClass).removeClass(o.hoverClass);o.onDestroy.call($this);$this.removeData('sf-options');});},init:function(op){return this.each(function(){var $this=$(this);if($this.data('sf-options')){return false;} var o=$.extend({},$.fn.superfish.defaults,op),$hasPopUp=$this.find(o.popUpSelector).parent('li');o.$path=setPathToCurrent($this,o);$this.data('sf-options',o);toggleMenuClasses($this,o);toggleAnchorClass($hasPopUp);toggleTouchAction($this);applyHandlers($this,o);$hasPopUp.not('.'+c.bcClass).superfish('hide',true);o.onInit.call(this);});}};})();$.fn.superfish=function(method,args){if(methods[method]){return methods[method].apply(this,Array.prototype.slice.call(arguments,1));} else if(typeof method==='object'||!method){return methods.init.apply(this,arguments);} else{return $.error('Method '+method+' does not exist on jQuery.fn.superfish');}};$.fn.superfish.defaults={popUpSelector:'ul,.sf-mega',hoverClass:'sfHover',pathClass:'overrideThisToUse',pathLevels:1,delay:800,animation:{opacity:'show'},animationOut:{opacity:'hide'},speed:'normal',speedOut:'fast',cssArrows:true,disableHI:false,onInit:$.noop,onBeforeShow:$.noop,onShow:$.noop,onBeforeHide:$.noop,onHide:$.noop,onIdle:$.noop,onDestroy:$.noop,dropdownStyle:($('body[data-dropdown-style="minimal"]').length>0)?'minimal':'classic'};$.fn.extend({hideSuperfishUl:methods.hide,showSuperfishUl:methods.show});})(jQuery); (function($,window,document){"use strict";var $window=$(window),$body=$('body'),$offCanvasEl=$('#slide-out-widget-area'),$offCanvasBG=$('#slide-out-widget-area-bg'),$headerOuterEl=$('#header-outer'),$headerSecondaryEl=$('#header-secondary-outer'),$searchButtonEl=$('#header-outer #search-btn a'),$wpAdminBar=$('#wpadminbar'),$loadingScreenEl=$('#ajax-loading-screen'),$bodyBorderTop=$('.body-border-top'),$pageHeaderBG=$('#page-header-bg'),$footerOuterEl=$('#footer-outer'),$bodyBorderWidth=($('.body-border-right').length>0)?$('.body-border-right').width():0,$logoHeight=($headerOuterEl.is('[data-logo-height]'))?parseInt($headerOuterEl.attr('data-logo-height')):30,headerPadding=($headerOuterEl.is('[data-padding]'))?parseInt($headerOuterEl.attr('data-padding')):28,logoShrinkNum=($headerOuterEl.is('[data-shrink-num]'))?$headerOuterEl.attr('data-shrink-num'):6,condenseHeaderLayout=($headerOuterEl.is('[data-condense="true"]'))?true:false,usingLogoImage=($headerOuterEl.is('[data-using-logo="1"]'))?true:false,headerResize=($headerOuterEl.is('[data-header-resize="1"]'))?true:false,headerTransparent=($headerOuterEl.is('[data-transparent-header="true"]'))?true:false,headerLayoutFormat=($body.is('[data-header-format]'))?$body.attr('data-header-format'):'default',headerHideUntilNeeded=($body.is('[data-hhun]'))?$body.attr('data-hhun'):'',$animationEasing=($body.is('[data-cae]')&&$body.attr('data-cae')!=='swing')?$body.attr('data-cae'):'easeOutCubic',$animationDuration=($body.is('[data-cad]'))?$body.attr('data-cad'):'650',bypassAnimations=(!$body.is('[data-m-animate="1"]')&&navigator.userAgent.match(/(Android|iPod|iPhone|iPad|BlackBerry|IEMobile|Opera Mini)/))?true:false,$portfolio_containers=[],$svgIcons=[],$nectarCustomSliderRotate=[],$flickitySliders=[],flickityDragArr=[],viewIndicatorArr=[],iconMouseFollowArr=[],postGridImgMouseFollowArr=[],$fsProjectSliderArr=[],$wooFlickityCarousels=[],$liquidBG_EL=[],$testimonialSliders=[],$mouseParallaxScenes=[],$nectarMasonryBlogs=[],$standAnimatedColTimeout=[],$animatedSVGIconTimeout=[],$projectCarouselSliderArr=[],$nectarPostGridArr=[],$verticalScrollingTabs=[],$tabbedClickCount=0,$fullscreenSelector='',$fullscreenMarkupBool=false,$bodyBorderHeaderColorMatch=false,nectarBoxRoll={animating:'false',perspect:'not-rolled'},$nectarFullPage={$usingFullScreenRows:false},$svgResizeTimeout,$bodyBorderSizeToRemove;if($bodyBorderTop.length>0){if($bodyBorderTop.css('background-color')=='#ffffff'&&$body.attr('data-header-color')=='light'||$bodyBorderTop.css('background-color')=='rgb(255, 255, 255)'&&$body.attr('data-header-color')=='light'||$bodyBorderTop.css('background-color')==$headerOuterEl.attr('data-user-set-bg')){$bodyBorderHeaderColorMatch=true;}} var nectarDOMInfo={usingMobileBrowser:(navigator.userAgent.match(/(Android|iPod|iPhone|iPad|BlackBerry|IEMobile|Opera Mini)/))?true:false,usingFrontEndEditor:(typeof window.vc_iframe==='undefined')?false:true,getWindowSize:function(){nectarDOMInfo.winH=window.innerHeight;nectarDOMInfo.winW=window.innerWidth;nectarDOMInfo.adminBarHeight=($wpAdminBar.length>0)?$wpAdminBar.height():0;nectarDOMInfo.secondaryHeaderHeight=($headerSecondaryEl.length>0&&$headerSecondaryEl.css('display')!='none')?$headerSecondaryEl.outerHeight():0;nectarDOMInfo.footerOuterHeight=($footerOuterEl.length>0)?$footerOuterEl.outerHeight():0;},scrollTop:0,clientX:0,clientY:0,scrollPosMouse:function(){return $window.scrollTop();},scrollPosRAF:function(){nectarDOMInfo.scrollTop=$window.scrollTop();requestAnimationFrame(nectarDOMInfo.scrollPosRAF);},bindEvents:function(){if(!nectarDOMInfo.usingMobileBrowser){$window.on('scroll',function(){nectarDOMInfo.scrollTop=nectarDOMInfo.scrollPosMouse();});}else{requestAnimationFrame(nectarDOMInfo.scrollPosRAF);} document.addEventListener("mousemove",function(e){nectarDOMInfo.clientX=e.clientX;nectarDOMInfo.clientY=e.clientY;});$window.on('resize',nectarDOMInfo.getWindowSize);},init:function(){$wpAdminBar=$('#wpadminbar');this.getWindowSize();this.scrollTop=this.scrollPosMouse();this.bindEvents();this.usingFrontEndEditor=(typeof window.vc_iframe==='undefined')?false:true;}};function smartResizeInit(){fullWidthContentColumns();parallaxRowsBGCals();headerSpace();OCM_overflowState();showOnLeftSubMenu();} function resizeInit(){fullWidthSections();fullWidthContentColumns();addOrRemoveSF();responsiveVideoIframes();if(!nectarDOMInfo.usingMobileBrowser){parallaxRowsBGCals();}} function flexsliderInit(){$('.flex-gallery').each(function(){if(!$().flexslider){return;} var $that=$(this);imagesLoaded($(this),function(){$that.flexslider({animation:'fade',smoothHeight:false,animationSpeed:500,useCSS:false,touch:true});$('.flex-gallery .flex-direction-nav li a.flex-next').html('');$('.flex-gallery .flex-direction-nav li a.flex-prev').html('');});});} function NectarIconMouseFollow($el,iconType){this.lastX=nectarDOMInfo.clientX;this.lastY=nectarDOMInfo.clientY;this.$el=$el;this.iconType=iconType;this.timeout=false;this.overEl=false;this.$dragEl='';this.$viewEl='';this.$closeEl='';this.lerpDamp=0.18;this.createMarkup();this.mouseBind();} NectarIconMouseFollow.prototype.createMarkup=function(){if(this.iconType==='horizontal-movement'){if($('.nectar-drag-indicator').length==0){var $usingBoxedClass=($('body > #boxed').length>0)?' in-boxed':'';$('body').append('
    ');this.$dragEl=$('.nectar-drag-indicator');this.dragRAF();}else{this.$dragEl=$('.nectar-drag-indicator');}} if(this.iconType==='view-indicator'){if($('.nectar-view-indicator').length==0){var $usingBoxedClass=($('body > #boxed').length>0)?' in-boxed':'';$('body').append('
    ');$('.nectar-view-indicator span').text($('.nectar-post-grid').attr('data-indicator-text'));this.$viewEl=$('.nectar-view-indicator');this.viewRAF();}else{this.$viewEl=$('.nectar-view-indicator');}} if(this.iconType==='close-indicator'){if($('.nectar-view-indicator').length==0){var $usingBoxedClass=($('body > #boxed').length>0)?' in-boxed':'';$('body').append('
    ');this.$closeEl=$('.nectar-close-indicator');this.closeRAF();}else{this.$closeEl=$('.nectar-close-indicator');}} if(this.iconType==='post-grid-images'){if(!this.$el.hasClass('mouse-move-bound')){this.$viewEl=this.$el.find('.nectar-post-grid-item-bg-wrap');this.$el.addClass('mouse-move-bound');this.viewRAF();}else{this.$viewEl=this.$el.find('.nectar-post-grid-item-bg-wrap');this.viewRAF();}}} NectarIconMouseFollow.prototype.mouseBind=function(){var that=this;if(this.iconType==='horizontal-movement'){that.$el.find('.flickity-viewport').on('mouseenter',function(){that.$dragEl.addClass('visible');});that.$el.find('.flickity-viewport').on('mouseleave',function(){that.$dragEl.removeClass('visible');});}else if(this.iconType==='close-indicator'){$('body').on('click','.team-member[data-style*="bio_fullscreen"]',function(){if($('.nectar_team_member_overlay:not(.open)').length>0){return;} that.$closeEl.addClass('visible');that.$closeEl.find('.inner').addClass('visible');});$('body').on('click','.nectar_team_member_overlay:not(.animating)',function(){that.$closeEl.removeClass('visible');that.$closeEl.find('.inner').removeClass('visible');});$('body').on('mouseenter','.nectar_team_member_overlay .bottom_meta a',function(){that.$closeEl.removeClass('visible');});$('body').on('mouseleave','.nectar_team_member_overlay .bottom_meta a',function(){that.$closeEl.addClass('visible');});} else if(this.iconType==='view-indicator'){var $color=that.$el.attr('data-indicator-color');var $style=that.$el.attr('data-indicator-style');that.$el.find('.nectar-post-grid-item').off();that.$el.find('.nectar-post-grid-item').on('mouseenter',function(){that.$viewEl.addClass('visible');that.$viewEl.attr('class',function(i,c){return c.replace(/(^|\s)style-\S+/g,'');});that.$viewEl.addClass('style-'+$style);if($style!=='see-through'){that.$viewEl.find('.color-circle').css('background-color',$color);} clearTimeout(that.timeout);});that.$el.find('.nectar-post-grid-item').on('mouseleave',function(){that.timeout=setTimeout(function(){that.$viewEl.removeClass('visible');},100);});that.$el.find('.nectar-post-grid-item .meta-category a').on('mouseenter',function(){that.$viewEl.removeClass('visible');});that.$el.find('.nectar-post-grid-item .meta-category a').on('mouseleave',function(){that.$viewEl.addClass('visible');});} else if(this.iconType==='post-grid-images'){that.$el.on('mouseenter',function(){$(this).addClass('mouse-over');});that.$el.on('mouseleave',function(){$(this).removeClass('mouse-over');});}};NectarIconMouseFollow.prototype.dragRAF=function(){this.lastY=linearInterpolate(this.lastY,nectarDOMInfo.clientY,this.lerpDamp);this.lastX=linearInterpolate(this.lastX,nectarDOMInfo.clientX,this.lerpDamp);this.$dragEl.css({'transform':'translateX('+this.lastX+'px) translateY('+this.lastY+'px)'});requestAnimationFrame(this.dragRAF.bind(this));};NectarIconMouseFollow.prototype.viewRAF=function(){this.lastY=linearInterpolate(this.lastY,nectarDOMInfo.clientY,this.lerpDamp);this.lastX=linearInterpolate(this.lastX,nectarDOMInfo.clientX,this.lerpDamp);this.$viewEl.css({'transform':'translateX('+this.lastX+'px) translateY('+this.lastY+'px)'});requestAnimationFrame(this.viewRAF.bind(this));};NectarIconMouseFollow.prototype.closeRAF=function(){this.lastY=linearInterpolate(this.lastY,nectarDOMInfo.clientY,this.lerpDamp);this.lastX=linearInterpolate(this.lastX,nectarDOMInfo.clientX,this.lerpDamp);this.$closeEl.css({'transform':'translateX('+this.lastX+'px) translateY('+this.lastY+'px)'});requestAnimationFrame(this.closeRAF.bind(this));};function flickityLazyCalcs(){$('.wpb_gallery_slidesflickity_static_height_style .cell[data-lazy="true"]').each(function(){$(this).css({'height':'','width':''});var heightAttr=parseInt($(this).find('img').attr('height'));var widthAttr=parseInt($(this).find('img').attr('width'));var dimensions=calculateAspectRatio(widthAttr,heightAttr,2000,parseInt($(this).find('img').height()));$(this).css({'height':dimensions.height+'px','width':dimensions.width+'px'});});} function flickityLazyInit(){if($('.wpb_gallery_slidesflickity_static_height_style .cell[data-lazy="true"]').length>0){flickityLazyCalcs();$window.on('smartresize',flickityLazyCalcs);}} function flickityInit(){if($('.nectar-flickity:not(.masonry)').length==0){return false;} $flickitySliders=[];flickityDragArr=[];$('.nectar-flickity:not(.masonry)').each(function(i){$(this).removeClass(function(index,className){return(className.match(/(^|\s)instance-\S+/g)||[]).join(' ');});$(this).addClass('instance-'+i);var $freeScrollBool=($(this).is('[data-free-scroll]')&&$(this).attr('data-free-scroll')=='true')?true:false,$groupCellsBool=true,$flickContainBool=true,$flcikAttr=0.025,$paginationBool=false,$nextPrevArrowBool=true,$flickCellAlign='center';if($(this).is('[data-format="fixed_text_content_fullwidth"]')){$flickCellAlign='left';$groupCellsBool=false;$flickContainBool=false;$flcikAttr=0.02;if($(this).parent().is('[data-alignment="right"]')){$flickCellAlign='right';}} if($freeScrollBool==true){$groupCellsBool=false;} if($(this).attr('data-controls').length>0&&$(this).attr('data-controls')=='next_prev_arrows'||$(this).attr('data-controls').length>0&&$(this).attr('data-controls')=='next_prev_arrows_overlaid'){$paginationBool=false;$nextPrevArrowBool=true;}else{$paginationBool=true;$nextPrevArrowBool=false;} if($(this).attr('data-controls').length>0&&$(this).attr('data-controls')=='none'){$paginationBool=false;$nextPrevArrowBool=false;} var $flickity_autoplay=false;if($(this).is('[data-autoplay]')&&$(this).attr('data-autoplay')=='true'){$flickity_autoplay=true;if($(this).is('[data-autoplay-dur]')&&$(this).attr('data-autoplay-dur').length>0){if(parseInt($(this).attr('data-autoplay-dur'))>100&&parseInt($(this).attr('data-autoplay-dur'))<30000){$flickity_autoplay=parseInt($(this).attr('data-autoplay-dur'));}}} var $that=$(this);var $frontEndEditorDrag=($('body.vc_editor').length>0)?false:true;var $frontEndEditorPause=($('body.vc_editor').length>0)?true:false;var $arrowShape='';var $wrapAround=($(this).is('[data-wrap]')&&$(this).attr('data-wrap')=='no-wrap')?false:true;var $flickity_adaptive_height=false;if($(this).is('[data-adaptive-height="true"]')){$flickity_adaptive_height=true;} var $lazyload=($(this).find('img[data-flickity-lazyload]'))?1:false;if($(this).find('img[data-flickity-lazyload]')&&$(this).is('[data-overflow="visible"]')&&$(this).is('[data-wrap="no-wrap"]')){$lazyload=2;} var $flickity_rtl=($body.hasClass('rtl'))?true:false;if($(this).attr('data-controls').length>0&&$(this).attr('data-controls')=='next_prev_arrows_overlaid'||$(this).attr('data-controls').length>0&&$(this).attr('data-controls')=='touch_total'){$arrowShape={x0:10,x1:60,y1:50,x2:70,y2:40,x3:30}}else{$arrowShape={x0:20,x1:70,y1:30,x2:70,y2:25,x3:70}} $flickitySliders[i]=new Flickity('.nectar-flickity.instance-'+i,{contain:$flickContainBool,draggable:$frontEndEditorDrag,lazyLoad:$lazyload,imagesLoaded:true,percentPosition:true,adaptiveHeight:$flickity_adaptive_height,cellAlign:$flickCellAlign,groupCells:$groupCellsBool,prevNextButtons:$nextPrevArrowBool,freeScroll:$freeScrollBool,pageDots:$paginationBool,resize:true,selectedAttraction:$flcikAttr,autoPlay:$flickity_autoplay,rightToLeft:$flickity_rtl,pauseAutoPlayOnHover:$frontEndEditorPause,setGallerySize:true,wrapAround:$wrapAround,accessibility:false,arrowShape:$arrowShape});if($(this).is('[data-controls="touch_total"]')){if($(this).find('.visualized-total').length==0){if($(this).parents('.full-width-content').length>0&&$(this).parents('.vc_col-sm-12').length>0){$(this).append('
    ');}else{$(this).append('
    ');}} if(!nectarDOMInfo.usingMobileBrowser){flickityDragArr[i]=new NectarIconMouseFollow($(this),'horizontal-movement');$flickitySliders[i].on('dragMove',function(event,pointer){nectarDOMInfo.clientY=pointer.clientY;nectarDOMInfo.clientX=pointer.clientX;});$flickitySliders[i].on('pointerDown',function(event,pointer){$('.nectar-drag-indicator').addClass('pointer-down');});$flickitySliders[i].on('pointerUp',function(event,pointer){$('.nectar-drag-indicator').removeClass('pointer-down');});} var $totalImgs=$(this).find('.flickity-page-dots li').length;var $totalIndicator=$(this).find('.visualized-total span');var $totalPosition=1;var $totalWidth=$(this).find('.visualized-total').width();$window.on('smartresize',function(){setTimeout(function(){$totalImgs=$that.find('.flickity-page-dots li').length;$totalWidth=$that.find('.visualized-total').width();$totalPosition=($totalWidth/$totalImgs)*$that.find('.flickity-page-dots .is-selected').index();$totalIndicator.css('width',100/$totalImgs+'%');$totalIndicator.css({'x':$totalPosition+'px'});},200);});setTimeout(function(){$totalImgs=$that.find('.flickity-page-dots li').length;$totalWidth=$that.find('.visualized-total').width();$totalIndicator.css('width',100/$totalImgs+'%');},200);$flickitySliders[i].on('change',function(event,progress){$totalPosition=($totalWidth/$totalImgs)*$that.find('.flickity-page-dots .is-selected').index();$totalIndicator.css({'x':$totalPosition+'px'});});} if($(this).is('[data-format="fixed_text_content_fullwidth"]')&&!nectarDOMInfo.usingFrontEndEditor){var $onMobileBrowser=nectarDOMInfo.usingMobileBrowser;$flickitySliders[i].on('scroll',function(){if($onMobileBrowser){return;} var $flkSlideWidth=$that.find('.cell').outerWidth()+25,$leftHeaderSize=($('body[data-header-format="left-header"]').length>0&&$window.width()>1000)?275:0,$extraWindowSpace=(($window.width()+$leftHeaderSize)-$that.parents('.main-content').width())/2;$extraWindowSpace+=parseInt($that.css('margin-left'))+2;$flickitySliders[i].slides.forEach(function(slide,j){var $scaleAmt=1,$translateXAmt=0,$rotateAmt=0,$slideZIndex=10,$opacityAmt=1,$slideOffset=$(slide.cells[0].element).offset().left,flkInstanceSlide=$('.nectar-flickity.instance-'+i+' .cell:nth-child('+(j+1)+')');if($slideOffset-$extraWindowSpace<0&&$slideOffset-$extraWindowSpace>$flkSlideWidth*-1){$scaleAmt=1+(($slideOffset-$extraWindowSpace)/1500);$opacityAmt=1+(($slideOffset-$extraWindowSpace+70)/550);$translateXAmt=(($slideOffset-$extraWindowSpace))*-1;$rotateAmt=(($slideOffset-$extraWindowSpace)/25)*-1;}else{$scaleAmt=1;$opacityAmt=1;$translateXAmt=0;$rotateAmt=0;} if($slideOffset+5-$extraWindowSpace<0&&$slideOffset-$extraWindowSpace>$flkSlideWidth*-1){$slideZIndex=5;}else{$slideZIndex=10;} flkInstanceSlide.css({'z-index':$slideZIndex});flkInstanceSlide.find('.inner-wrap-outer').css({'transform':'perspective(800px) translateX('+$translateXAmt+'px) rotateY('+$rotateAmt+'deg) translateZ(0)','opacity':$opacityAmt});flkInstanceSlide.find('.inner-wrap').css({'transform':'scale('+$scaleAmt+') translateZ(0)'});});});} var $removeHiddenTimeout;var $removeMovingTimeout;$flickitySliders[i].on('dragStart',function(){clearTimeout($removeHiddenTimeout);clearTimeout($removeMovingTimeout);$that.addClass('is-dragging');$that.addClass('is-moving');$that.find('.flickity-prev-next-button').addClass('hidden');});$flickitySliders[i].on('dragEnd',function(){$that.removeClass('is-dragging');$removeHiddenTimeout=setTimeout(function(){$that.removeClass('is-moving');$that.find('.flickity-prev-next-button').removeClass('hidden');},600);$removeMovingTimeout=setTimeout(function(){$that.removeClass('is-moving');},300);});$('.flickity-prev-next-button').on('click',function(){clearTimeout($removeHiddenTimeout);$(this).parents('.nectar-flickity').find('.flickity-prev-next-button').addClass('hidden');$removeHiddenTimeout=setTimeout(function(){$that.find('.flickity-prev-next-button').removeClass('hidden');},600);});if($that.hasClass('nectar-carousel')){imagesLoaded($that,function(){nectarCarouselFlkEH($that);});}});var $usingNectarCarouselFlk=($('.nectar-carousel.nectar-flickity:not(.masonry)').length>0)?true:false;if($usingNectarCarouselFlk){$window.on('resize',setNectarCarouselFlkEH);}} function setNectarCarouselFlkEH(){$('.nectar-carousel.nectar-flickity:not(.masonry)').each(function(){nectarCarouselFlkEH($(this));});} function nectarCarouselFlkEH($slider_instance){var $tallestSlideCol=0;$slider_instance.find('.flickity-slider > .cell').css('height','auto');$slider_instance.find('.flickity-slider > .cell').each(function(){if($(this).height()>$tallestSlideCol){$tallestSlideCol=$(this).height();}});if($tallestSlideCol<10){$tallestSlideCol='auto';} $slider_instance.find('.flickity-slider > .cell').css('height',$tallestSlideCol+'px');} function twentytwentyInit(){$('.twentytwenty-container').each(function(){var $that=$(this);if($that.find('.twentytwenty-handle').length==0){$(this).imagesLoaded(function(){$that.twentytwenty();});}});} function initSF(){addOrRemoveSF();if($('body[data-header-format="left-header"]').length==0){var $disableHI;if(!($('#header-outer[data-megamenu-rt="1"]').length>0&&$('#header-outer[data-transparent-header="true"]').length>0)){$disableHI=true;}else{$disableHI=false;} $(".sf-menu:not(.buttons)").superfish({delay:650,speed:'fast',disableHI:$disableHI,speedOut:'fast',animation:{opacity:'show'}});$('#header-outer .sf-menu.buttons li.menu-item').on('mouseover',function(){$(this).addClass('sfHover');});$('#header-outer .sf-menu.buttons li.menu-item').on('mouseleave',function(){var $that=$(this);if($that.is('.menu-item-has-children')){setTimeout(function(){if(!$that.is(':hover')){$that.removeClass('sfHover');}},200);}else{$that.removeClass('sfHover');}});$('#header-secondary-outer li.megamenu, .sf-menu.buttons li.megamenu').removeClass('megamenu');$('#header-outer .sf-menu > li:not(.megamenu) > ul > li > ul').each(function(){if($(this).offset().left+$(this).outerWidth()>$window.width()){$(this).addClass('on-left-side');$(this).find('ul').addClass('on-left-side');}});$('body:not([data-header-format="left-header"]) header#top nav > ul > li.megamenu > ul > li > ul > li:has("> ul")').addClass('has-ul');if($('body[data-megamenu-width="full-width"]').length>0&&$('ul.sub-menu').length>0){megamenuFullwidth();$window.on('smartresize',megamenuFullwidth);$('header#top nav > ul > li.megamenu > .sub-menu').css('box-sizing','content-box');} $('header#top nav > ul.sf-menu > li.menu-item').on('mouseenter',function(){$(this).addClass('menu-item-over');});$('header#top nav > ul.sf-menu > li.menu-item').on('mouseleave',function(){$(this).removeClass('menu-item-over');});$('header#top nav .megamenu .sub-menu a.sf-with-ul .sf-sub-indicator, header#top .megamenu .sub-menu a .sf-sub-indicator').remove();$('header#top nav > ul > li.megamenu > ul.sub-menu > li > a').each(function(){if($(this).text()=='-'||$(this).text()=='–'||$(this).parent().hasClass('hide-title')){$(this).remove();}});} if(nectarDOMInfo.usingMobileBrowser&&$('#header-outer[data-remove-fixed="1"]').length==0){$body.attr('data-hhun','0');}} function megamenuFullwidth(){var $windowWidth=$window.width();var $headerContainerWidth=$('header#top > .container').width();$('header#top nav > ul > li.megamenu > .sub-menu').css({'padding-left':($windowWidth-$headerContainerWidth)/2+'px','padding-right':($windowWidth+2-$headerContainerWidth)/2+'px','width':$headerContainerWidth,'left':'-'+($windowWidth-$headerContainerWidth)/2+'px'});} function addOrRemoveSF(){if(nectarDOMInfo.winW<1000&&$body.attr('data-responsive')=='1'){$body.addClass('mobile');$('header#top nav').css('display','none');}else{$body.removeClass('mobile');$('header#top nav').css('display','');$('.slide-out-widget-area-toggle #toggle-nav .lines-button').removeClass('close');}} function showOnLeftSubMenu(){$('#header-outer .sf-menu > li:not(.megamenu) > ul > li > ul').each(function(){$(this).removeClass('on-left-side');if($(this).offset().left+$(this).outerWidth()>$window.width()){$(this).addClass('on-left-side');$(this).find('ul').addClass('on-left-side');}else{$(this).removeClass('on-left-side');$(this).find('ul').removeClass('on-left-side');}});} function standardCarouselInit(){if($('.carousel').length==0){return;} if(typeof SalientRecentProjectsCarousel!=='undefined'){$('ul.carousel.portfolio-items').each(function(i){$projectCarouselSliderArr[i]=new SalientRecentProjectsCarousel($(this));});} $('ul.carousel:not(".clients"):not(.portfolio-items)').each(function(){var $that=$(this),maxCols=($(this).parents('.carousel-wrap').attr('data-full-width')=='true')?'auto':3,scrollNum=($(this).parents('.carousel-wrap').attr('data-full-width')=='true')?'auto':'',colWidth=($(this).parents('.carousel-wrap').attr('data-full-width')=='true')?500:453,$autoplayBool=($(this).attr('data-autorotate')=='true')?true:false,$themeSkin=true,$themeSkin2=true;var scrollSpeed,easing;if($('body.ascend').length>0&&$(this).parents('.carousel-wrap').attr('data-full-width')!='true'||$('body.material').length>0&&$(this).parents('.carousel-wrap').attr('data-full-width')!='true'){if($(this).find('li').length%3===0){$themeSkin=true;$themeSkin2=true;}else{$themeSkin=false;$themeSkin2=true;}}else{$themeSkin=true;$themeSkin2=true;} scrollSpeed=(parseInt($(this).attr('data-scroll-speed')))?parseInt($(this).attr('data-scroll-speed')):700;easing=($(this).is('[data-easing]'))?$(this).attr('data-easing'):'linear';var $element=$that;if($that.find('img').length==0){$element=$body;} imagesLoaded($element,function(){$that.carouFredSel({circular:$themeSkin,infinite:$themeSkin2,height:'auto',responsive:true,items:{width:colWidth,visible:{min:1,max:maxCols}},swipe:{onTouch:true,onMouse:true,options:{excludedElements:"button, input, select, textarea, .noSwipe",tap:function(event,target){if($(target).attr('href')&&!$(target).is('[target="_blank"]')&&!$(target).is('[rel^="prettyPhoto"]')&&!$(target).is('.magnific-popup')&&!$(target).is('.magnific')){window.open($(target).attr('href'),'_self');}}},onBefore:function(){$that.find('.work-item').trigger('mouseleave');$that.find('.work-item .work-info a').trigger('mouseup');}},scroll:{items:scrollNum,easing:easing,duration:scrollSpeed,onBefore:function(){if($('body.ascend').length>0&&$that.parents('.carousel-wrap').attr('data-full-width')!='true'||$('body.material').length>0&&$that.parents('.carousel-wrap').attr('data-full-width')!='true'){$that.parents('.carousel-wrap').find('.item-count .total').html(Math.ceil($that.find('> li').length/$that.triggerHandler("currentVisible").length));}},onAfter:function(){if($('body.ascend').length>0&&$that.parents('.carousel-wrap').attr('data-full-width')!='true'||$('body.material').length>0&&$that.parents('.carousel-wrap').attr('data-full-width')!='true'){$that.parents('.carousel-wrap').find('.item-count .current').html($that.triggerHandler('currentPage')+1);$that.parents('.carousel-wrap').find('.item-count .total').html(Math.ceil($that.find('> li').length/$that.triggerHandler("currentVisible").length));}}},prev:{button:function(){return $that.parents('.carousel-wrap').find('.carousel-prev');}},next:{button:function(){return $that.parents('.carousel-wrap').find('.carousel-next');}},auto:{play:$autoplayBool}},{transition:true}).animate({'opacity':1},1300);$that.parents('.carousel-wrap').wrap('