!function(t){"use strict";var e={id:0,title:"",display:0,status:"",order:"default",orderby:"desc",direction:"left",spacing:20,speed:10,cloneItems:"yes",wrapItems:"yes",hoverPause:0,playPauseButton:0,height:null,minHeight:null,maxHeight:null,heightEase:"easeInOutQuint",heightSpeed:1.5,scrollInit:"empty",scrollDelay:2,maxWidth:"",bgColor:"",padding:{},margin:{},borderColor:"",borderStyle:{},borderWidth:{},borderRadius:{},contentsBgColor:"",contentsPadding:{},contentsBorderColor:"",contentsBorderStyle:{},contentsBorderWidth:{},contentsBorderRadius:{},titleDisplay:"none",titleContentsSize:"stretch",titleContentsPosition:"start",titleElement:"h3",titleElementPosition:"start",titleElementVerticalPosition:"start",titleTypography:{},titleMinWidth:"",titleMaxWidth:"",titleMinHeight:"",titleMaxHeight:"",titleColor:"",titleLinkColor:"",titleBgColor:"",titleMargin:{},titlePadding:{},titleBorderColor:"",titleBorderStyle:{},titleBorderWidth:{},titleBorderRadius:{},itemTypography:{},itemTextColor:"",itemLinkColor:"",itemBgColor:"",itemBorderColor:"",itemBorderStyle:{},itemBorderWidth:{},itemBorderRadius:{},itemPadding:{},itemMaxWidth:"",itemElementsWrap:"wrap",item:0,shuffle:0,showEditor:0,items:[]},i=function(i,s){this.displayType="ticker",this.elmt=i,this.settings=t.extend({},e,t.ditty_ticker.defaults,s),this.nextItem=null,this.total=this.settings.items.length,this.$elmt=t(i),this.$title=null,this.$titleContents=null,this.$contents=null,this.$items=null,this.$playPauseButton=null,this.$currentItem=null,this.$lastItem=null,this.scrollPercent=.13,this.running=!1,this.paused=!1,this.interval=!1,this.firstItem=this.settings.item,this.currentHeight=this.settings.height,this.initItems=[...this.settings.items],this.visibleItems=[],this.finished=!1,this.scrollIncrement=0,this.settings.items=dittyOrderItems(this.initItems,this.settings),this._init()};i.prototype={_init:function(){var e,i,s=this;0===this.total&&this.$elmt.hide(),this.$elmt.removeClass("ditty--pre"),this.$elmt.addClass("ditty ditty-ticker"),this.$elmt.attr("data-id",this.settings.id),this.$elmt.attr("data-type",this.displayType),this.$elmt.attr("data-display",this.settings.display),e=t('
'),this.$contents=e,this.$title=t(''),this.$titleContents=t(''),this.$title.append(this.$titleContents),i=t(''),this.$items=i,this.$items.height(this.currentHeight),e.append(i),this.$elmt.append(e),this._upgrades(),this._styleDisplay(),this._styleTitle(),this.$playPauseButton=t(''),this._renderPlayPauseButton(),this.$elmt.on("mouseenter",{self:this},this._mouseenter),this.$elmt.on("mouseleave",{self:this},this._mouseleave),this.settings.showEditor?dittyEditorInit(this):this.trigger("start_live_updates"),setTimeout((function(){s._initializeItems(),s.trigger("init")}),1)},_upgrades:function(){this.settings.titleFontSize&&(this.settings.titleTypography.fontSize=this.settings.titleFontSize,delete this.settings.titleFontSize),this.settings.titleLineHeight&&(this.settings.titleTypography.lineHeight=this.settings.titleLineHeight,delete this.settings.titleFontSize)},_initializeItems:function(){"filled"===this.settings.scrollInit?this._fillTicker():this.running||this._timerStart()},_preloadItem:function(e,i=!1){var s,n=this,r=e.find("img").length,h=0;e.find("img").each((function(){(s=new Image).src=t(this).attr("src"),s.complete&&0!==s.naturalHeight?(h++,r===h&&i&&n._setCurrentHeight()):s.onload=function(){h++,r===h&&i&&n._setCurrentHeight()}}))},_positionItems:function(e){var i=this;if(0===i.visibleItems.length){var s=i.firstItem;this._isItemEnabled(s)||(s=this._getNextItem(s)),i._initializeItem(s)}t.each(i.visibleItems,(function(t,s){if(s){var n=i.visibleItems[t].$item,r=i._calculateItemPosition(t,e);i.visibleItems[t].posX=r.posX,i.visibleItems[t].posY=r.posY,i._itemSetTransform(n,r),i._newItemShouldStart(n,r)&&i._initializeItem(parseInt(i.nextItem)),i._itemShouldTerminate(n,r)&&i._terminateItem(t)}}))},_timerStart:function(){var t=this;if(t.paused)return!1;this.running=!0,this.trigger("start"),cancelAnimationFrame(this.interval),t.interval=requestAnimationFrame((function e(){t.scrollIncrement=parseFloat(t.settings.speed)*t.scrollPercent,t._positionItems(),t.running&&!t.paused&&(t.interval=requestAnimationFrame(e))}))},_timerStop:function(){cancelAnimationFrame(this.interval),this.running=!1,this.trigger("stop")},_mouseenter:function(t){var e=t.data.self;e.settings.hoverPause&&e._timerStop()},_mouseleave:function(t){var e=t.data.self;e.settings.hoverPause&&e._timerStart()},_newItemShouldStart:function(t,e){if(this.$currentItem[0]!==t[0])return!1;var i=!1;switch(this.settings.direction){case"left":e.posX<=this.$items.outerWidth()-t.outerWidth()&&(i=!0);break;case"right":e.posX>=0&&(i=!0);break;case"down":e.posY>=0&&(i=!0);break;case"up":e.posY<=this.$items.outerHeight()-t.outerHeight()&&(i=!0)}return i},_initializeItem:function(e,i){if(void 0===this.settings.items[e])return!1;var s=this.$items.children(".ditty-item--"+this.settings.items[e].uniq_id);if("yes"!==this.settings.cloneItems&&s.length>0)return!1;if("yes"!==this.settings.cloneItems&&"yes"!==this.settings.wrapItems&&this.firstItem===parseInt(e)&&0!==parseInt(this.visibleItems.length))return!1;var n=t(this.settings.items[e].html);n.css({top:0,left:0}),this.$items.children(".ditty-item--"+this.settings.items[e].id).not(".ditty-item--clone").length>0&&n.addClass("ditty-item--clone"),this._styleItem(n),this.settings.items[e].css&&dittyLayoutCss(this.settings.items[e].css,this.settings.items[e].layout_id,"update"),this._itemSpacing(n),this._itemSetTransform(n,this._itemResetPosition(n)),this.$items.append(n),this._preloadItem(n,!0),n.css({display:"block",top:0,left:0,opacity:1}),n.addClass("ditty-item--current"),null!==this.$currentItem&&this.$currentItem.removeClass("ditty-item--current"),this.$currentItem=n,null===this.$lastItem&&(n.addClass("ditty-item--last"),this.$lastItem=n),this.settings.item=e,this.nextItem=this._getNextItem(e);var r=t(this.settings.items[this.nextItem].html);if(this._preloadItem(r),"custom"!==i){var h=this._itemResetPosition(n);this._itemSetTransform(n,h),this.visibleItems.push({$item:n,parentId:this.settings.items[e].parent_id,itemId:this.settings.items[e].id,itemUniqId:this.settings.items[e].uniq_id,posX:h.posX,posY:h.posY}),this._setCurrentHeight()}return this.trigger("active_items_update"),n},_getNextItem:function(t){var e,i=this,s=!1;if(null!==this.nextItem&&t!==this.nextItem){var n=parseInt(this.nextItem);n=0&&i._isItemEnabled(n)&&(s=parseInt(this.nextItem))}if(!s)for(e=t;ethis.$items.outerWidth()&&(i=!0);break;case"up":e.posY<-t.outerHeight()&&(i=!0);break;case"down":e.posY>this.$items.outerHeight()&&(i=!0)}return i},_terminateItem:function(t){var e=this.visibleItems[t].$item,i=e.next();const s=this.$items.outerHeight(),n=this.visibleItems[t];e.remove(),this.visibleItems.splice(t,1),i.length&&(i.addClass("ditty-item--last"),this.$lastItem=i,this._setCurrentHeight()),0===this.$items.children().length&&this.elmt.dispatchEvent(new CustomEvent("dittyTickerComplete",{detail:{lastItem:n,lastHeight:s}})),this.trigger("active_items_update")},_setCurrentHeight:function(){var e=this.currentHeight;"up"===this.settings.direction||"down"===this.settings.direction?(e=this.$items.outerHeight(),this.$items.css({height:"100%"})):(e=0,t.each(this.visibleItems,(function(t,i){var s=i.$item.outerHeight();s>e&&(e=s)})),e!==this.currentHeight&&this.$items.stop().animate({height:e+"px"},1e3*parseFloat(this.settings.heightSpeed),this.settings.heightEase,(function(){}))),e!==this.currentHeight&&(this.currentHeight=e,this.trigger("height_updated"))},_itemSpacing:function(t){switch(this.settings.direction){case"left":case"right":t.css({paddingLeft:this.settings.spacing/2+"px",paddingRight:this.settings.spacing/2+"px",paddingTop:0,paddingBottom:0});break;case"up":case"down":t.css({paddingLeft:0,paddingRight:0,paddingTop:this.settings.spacing/2+"px",paddingBottom:this.settings.spacing/2+"px"})}},_itemSetTransform:function(t,e){var i=e.posX,s=e.posY;0!==i&&(i+="px"),0!==s&&(s+="px"),t.css({transform:"translate( "+i+", "+s+" )"})},_calculateItemPosition:function(t,e){var i=0,s=0,n=this.scrollIncrement;switch(e&&(n=e),this.settings.direction){case"left":i=parseFloat(this.visibleItems[t].posX)-n;break;case"right":i=parseFloat(this.visibleItems[t].posX)+n;break;case"up":s=parseFloat(this.visibleItems[t].posY)-n;break;case"down":s=parseFloat(this.visibleItems[t].posY)+n}return{posX:i,posY:s}},_itemResetPosition:function(t){var e=0,i=0;switch(this.settings.direction){case"left":e=this.$items.outerWidth();break;case"right":e="-"+t.outerWidth();break;case"up":i=this.$items.outerHeight();break;case"down":i="-"+t.outerHeight()}return{posX:e,posY:i}},_reverseItems:function(){if(this.$currentItem===this.$lastItem)return!1;var t=this.$currentItem,e=this.$lastItem;this.$currentItem=e,this.$lastItem=t,this.$currentItem.removeClass("ditty-item--last").addClass("ditty-item--current"),this.$lastItem.removeClass("ditty-item--current").addClass("ditty-item--last");var i=this.$items.children(".ditty-item");this.$items.append(i.get().reverse())},_resetItems:function(){this.$items.empty(),this.visibleItems=[],this.trigger("active_items_update")},_fillTicker:function(){var t=this,e=parseFloat(this.$items.outerWidth()),i=parseFloat(this.$items.outerHeight()),s=0,n=0,r=!1,h=this.settings.item,o=null;this._isItemEnabled(h)||(h=this._getNextItem(h)),"right"===this.settings.direction?s=e:"down"===this.settings.direction&&(n=i);var a=0;o=setInterval((function(){var l=t._initializeItem(h);if(l){var m=t._filledItemInit(a,l,s,n,e,i);r=m.filled,setTimeout((function(){var h=l.outerWidth(),o=l.outerHeight();switch(t.settings.direction){case"left":(s+=h)>e&&(r=!0);break;case"right":(s-=h)<0&&(r=!0);break;case"up":(n+=o)>i&&(r=!0);break;case"down":(n-=o)<0&&(r=!0)}a++}),10),h=t._getNextItem(h)}else r=!0;r&&(clearInterval(o),t.trigger("active_items_update"),setTimeout((function(){t.running||t._timerStart()}),1e3*parseFloat(t.settings.scrollDelay)))}),100)},_filledItemInit:function(t,e,i,s,n,r){e.data("item_id");var h=parseFloat(e.outerWidth()),o=parseFloat(e.outerHeight()),a=0,l=0,m=!1;switch(e.css({display:"block",opacity:0}),this.settings.direction){case"left":a=i,this._itemSetTransform(e,{posX:a,posY:s}),(i+=h)>n&&(m=!0);break;case"right":a=i-=h,this._itemSetTransform(e,{posX:a,posY:s}),i<0&&(m=!0);break;case"up":l=s,this._itemSetTransform(e,{posX:i,posY:l}),(s+=o)>r&&(m=!0);break;case"down":l=s-=o,this._itemSetTransform(e,{posX:i,posY:l}),s<0&&(m=!0)}return e.stop().animate({opacity:1},1e3,"linear",(function(){})),this.visibleItems[t].posX=a,this.visibleItems[t].posY=l,this._setCurrentHeight(),{posX:i,posY:s,filled:m}},_setDirection:function(e){return!!t.inArray(e,this.settings.directions)&&e!==this.settings.directions&&(this.settings.direction=e,this._timerStop(),this._resetItems(),this.settings.item=0,this._initializeItems(),void this.trigger("direction"))},_styleDisplay:function(){if(this.$elmt.css({maxWidth:this.settings.maxWidth,background:this.settings.bgColor,borderColor:this.settings.borderColor,borderStyle:this.settings.borderStyle}),this.$elmt.css(this.settings.borderRadius),this.$elmt.css(this.settings.borderWidth),this.$elmt.css(this.settings.margin),this.$elmt.css(this.settings.padding),this.$contents.css({background:this.settings.contentsBgColor,borderColor:this.settings.contentsBorderColor,borderStyle:this.settings.contentsBorderStyle}),this.$contents.css(this.settings.contentsPadding),this.$contents.css(this.settings.contentsBorderRadius),this.$contents.css(this.settings.contentsBorderWidth),"up"===this.settings.direction||"down"===this.settings.direction){var t=this.settings.minHeight?this.settings.minHeight:0,e=this.settings.maxHeight?this.settings.maxHeight:"none";this.$items.css({minHeight:t,maxHeight:e})}else this.$items.css({minHeight:"",maxHeight:""});dittyRenderDisplayCss(this.settings,this.settings.display)},_styleTitle:function(){this.$elmt.attr("data-title",this.settings.titleDisplay);const e=this.settings.titleContentsPosition?this.settings.titleContentsPosition:this.settings.titleElementPosition,i=this.settings.titleElementVerticalPosition?this.settings.titleElementVerticalPosition:this.settings.titleElementPosition;if(this.$elmt.attr("data-title_position",e),this.$elmt.attr("data-title_horizontal_position",this.settings.titleElementPosition),this.$elmt.attr("data-title_vertical_position",i),"none"===this.settings.titleDisplay)this.$title.remove();else{const e=["p","h1","h2","h3","h4","h5","h6"].includes(this.settings.titleElement)?this.settings.titleElement:"h1";var s=t("<"+e+' class="ditty__title__element">'+this.settings.title+""+e+">");this.$titleContents.css({background:this.settings.titleBgColor,borderColor:this.settings.titleBorderColor,borderStyle:this.settings.titleBorderStyle,width:"auto"===this.settings.titleContentsSize?"auto":"100%",height:"auto"===this.settings.titleContentsSize?"auto":"100%",minWidth:this.settings.titleMinWidth,maxWidth:this.settings.titleMaxWidth,minHeight:this.settings.titleMinHeight,maxHeight:this.settings.titleMaxHeight}),this.$titleContents.css(this.settings.titleBorderRadius),this.$titleContents.css(this.settings.titleBorderWidth),this.$titleContents.css(this.settings.titlePadding),this.$title.css(this.settings.titleMargin),this.$titleContents.html(s),this.$elmt.prepend(this.$title)}},_styleItem:function(t){t.children(".ditty-item__elements").css({background:this.settings.itemBgColor,borderColor:this.settings.itemBorderColor,borderStyle:this.settings.itemBorderStyle}),t.children(".ditty-item__elements").css(this.settings.itemPadding),t.children(".ditty-item__elements").css(this.settings.itemBorderRadius),t.children(".ditty-item__elements").css(this.settings.itemBorderWidth),""!==this.settings.itemElementsWrap&&t.children(".ditty-item__elements").css({whiteSpace:this.settings.itemElementsWrap}),""!==this.settings.itemMaxWidth&&t.children(".ditty-item__elements").css({maxWidth:this.settings.itemMaxWidth})},_renderPlayPauseButton:function(){this.settings.playPauseButton?(this.$elmt.append(this.$playPauseButton),this.$playPauseButton.on("click",{self:this},this._togglePlayPauseButton)):(this.$playPauseButton.off("click",{self:this},this._togglePlayPauseButton),this.$playPauseButton.remove())},_togglePlayPauseButton:function(e){var i=e?e.data.self:this;i.paused=!i.paused,i.paused?(i._timerStop(),i.$playPauseButton.html(t(''))):(i._timerStart(),i.$playPauseButton.html(t('')))},_getOption:function(t){switch(t){case"ditty":return this;case"type":return this.displayType;case"display":return this.settings.display;case"items":return this.initItems;case"height":return this.currentHeight;default:return this.settings[t]}},_setOption:function(t,e){if(void 0===e)return!1;switch(t){case"items":this.updateItems(e);break;case"orderby":case"order":this.settings[t]=e,this.loadItems(this.initItems);break;case"direction":this.settings[t]=e,this._styleDisplay(),this._setDirection(e);break;case"title":case"titleDisplay":case"titleContentsSize":case"titleContentsPosition":case"titleElement":case"titleElementPosition":case"titleElementVerticalPosition":case"titleMinWidth":case"titleMaxWidth":case"titleMinHeight":case"titleMaxHeight":case"titleBgColor":case"titleMargin":case"titlePadding":case"titleBorderColor":case"titleBorderStyle":case"titleBorderWidth":case"titleBorderRadius":this.settings[t]=e,this._styleTitle();break;case"maxWidth":case"minHeight":case"maxHeight":case"bgColor":case"padding":case"borderColor":case"borderStyle":case"borderWidth":case"borderRadius":case"contentsBgColor":case"contentsPadding":case"contentsBorderRadius":case"titleTypography":case"titleColor":case"titleLinkColor":case"itemTypography":case"itemTextColor":case"itemLinkColor":this.settings[t]=e,this._styleDisplay(),this._setCurrentHeight();break;case"playPauseButton":this.settings[t]=e,1!==e&&this.paused&&this._togglePlayPauseButton(),this._renderPlayPauseButton();break;default:this.settings[t]=e}this.trigger("update")},shuffle:function(){for(var t,e,i=this.total-1;i>0;i--)e=Math.floor(Math.random()*(i+1)),t=this.settings.items[i],this.settings.items[i]=this.settings.items[e],this.settings.items[e]=t},play:function(){this.running||this._timerStart()},pause:function(){this.running&&this._timerStop()},direction:function(t){this._setDirection(t)},toggle:function(){this.running?this.pause():this.play()},running:function(){return this.running},current:function(){return this.$currentItem},_isItemEnabled:function(t){return!(void 0===this.settings.items[parseInt(t)]||void 0!==this.settings.items[parseInt(t)].is_disabled&&this.settings.items[parseInt(t)].is_disabled.length>0)},_disabledItemsStatus:function(){var e=this,i={};return t.each(this.settings.items,(function(t,s){e._isItemEnabled(t)?i[s.id]="enabled":i[s.id]="disabled"})),i},addItemDisabled:function(e,i){var s=this;t.each(this.settings.items,(function(t,n){String(n.id)===String(e)&&(Array.isArray(s.settings.items[t].is_disabled)||(s.settings.items[t].is_disabled=[]),s.settings.items[t].is_disabled.push(i))})),this.trigger("disabled_items_update")},removeItemDisabled:function(e,i){var s=this;t.each(this.settings.items,(function(n,r){String(r.id)===String(e)&&Array.isArray(s.settings.items[n].is_disabled)&&s.settings.items[n].is_disabled.length&&(s.settings.items[n].is_disabled=t.grep(s.settings.items[n].is_disabled,(function(t){return t!==i})))})),this.trigger("disabled_items_update")},showItem:function(e){var i=[];if(t.each(this.settings.items,(function(t,s){String(s.id)===String(e)&&i.push(t)})),0!==i.length)return this.nextItem=i[0],this.nextItem},addItem:function(t,e,i){var s=this.settings.items.slice(),n=!0;(e>=this.total||e<0)&&(n=!1),"replace"===i&&n?s.splice(e,1,t):null===e||""===e?s.splice(this.nextItem,0,t):e>=this.total?s.push(t):e<0?s.splice(0,0,t):s.splice(e,0,t),this.updateItems(s)},deleteItem:function(e){var i=[];t.each(this.settings.items,(function(t,s){String(s.id)!==String(e)&&i.push(s)})),this.updateItems(i)},resetItems:function(){this._resetItems()},loadItems:function(t=[]){if(void 0===t)return!1;this.initItems=t,t=dittyOrderItems(t,this.settings);const{updatedItems:e}=dittyGetUpdatedItemData(this.settings.items,t);this.settings.items=e,this.total=e.length,0===this.total?this.$elmt.hide():this.$elmt.show(),this.nextItem>=this.total&&(this.nextItem=0),this.trigger("update")},updateItems:function(e,i,s,n){if(void 0===e)return!1;var r=[];if(i){var h=this.settings.items.slice(),o=[],a=!1;t.each(h,(function(n,h){String(h.id)===String(i)?"after"===s?(o.push(h),t.each(e,(function(t,e){o.push(e)})),a=!0):"before"===s?(t.each(e,(function(t,e){o.push(e)})),o.push(h),a=!0):a||(t.each(e,(function(t,e){o.push(e),r.push(String(e.uniq_id))})),a=!0):o.push(h)})),a||(t.each(this.settings.items,(function(t,e){o.push(e)})),a=!0),0!==this.total&&(e=o)}this.settings.items=e,this.total=e.length,0===this.total?this.$elmt.hide():this.$elmt.show(),this.nextItem>=this.total&&(this.nextItem=0),this.trigger("update")},getActiveItems:function(){var e=[];return t.each(this.visibleItems,(function(t,i){e.push({id:i.itemId})})),e},hide:function(){this.$elmt.hide(),this.pause()},show:function(){this.$elmt.show(),this.play()},trigger:function(e){var i=[];switch(e){case"active_items_update":i=[this,this.getActiveItems()];break;case"disabled_items_update":i=[this._disabledItemsStatus()];break;case"height_updated":i=[this.currentHeight,this.$elmt];break;case"start_live_updates":i=[this.settings.id];break;default:i=[this.settings,this.$elmt]}this.$elmt.trigger("ditty_"+e,i),"function"==typeof this.settings[e]&&this.settings[e].apply(this.$elmt,i),t("body").trigger("ditty_"+e,i)},options:function(e,i){var s=this;if("object"==typeof e)t.each(e,(function(t,e){s._setOption(t,e)}));else{if("string"!=typeof e)return s.settings;if(void 0===i)return s._getOption(e);s._setOption(e,i)}},destroy:function(){this.$elmt.off("mouseenter",{self:this},this._mouseenter),this.$elmt.off("mouseleave",{self:this},this._mouseleave),this.$playPauseButton.off("click",{self:this},this._togglePlayPauseButton),this._timerStop(),this.$elmt.removeClass("ditty ditty-ticker"),this.$elmt.removeAttr("data-id"),this.$elmt.removeAttr("data-type"),this.$elmt.removeAttr("data-display"),this.$elmt.removeAttr("style"),this.$elmt.empty(),this.elmt._ditty_ticker=null}},t.fn.ditty_ticker=function(t){var e,s=arguments,n=!1;if(void 0===t||"object"==typeof t)return this.each((function(){this._ditty_ticker||(this._ditty_ticker=new i(this,t))}));if("string"==typeof t){if(this.each((function(){var i=this._ditty_ticker;if(!i)throw new Error("No Ditty_Ticker applied to this element.");"function"==typeof i[t]&&"_"!==t[0]?e=i[t].apply(i,[].slice.call(s,1)):n=!0})),n)throw new Error('No method "'+t+'" in Ditty_Ticker.');return void 0!==e?e:this}},t.ditty_ticker={},t.ditty_ticker.defaults=e}(jQuery);