﻿!function(t){function i(i){var r=".smartmenus_mouse";if(h||i)h&&i&&(t(document).unbind(r),h=!1);else{var u=!0,l=null;t(document).bind(o([["mousemove",function(i){var e={x:i.pageX,y:i.pageY,timeStamp:(new Date).getTime()};if(l){var s=Math.abs(l.x-e.x),o=Math.abs(l.y-e.y);if((s>0||o>0)&&2>=s&&2>=o&&e.timeStamp-l.timeStamp<=300&&(n=!0,u)){var r=t(i.target).closest("a");r.is("a")&&t.each(a,function(){return t.contains(this.$root[0],r[0])?(this.itemEnter({currentTarget:r[0]}),!1):void 0}),u=!1}}l=e}],[s()?"touchstart":"pointerover pointermove pointerout MSPointerOver MSPointerMove MSPointerOut",function(t){e(t.originalEvent)&&(n=!1)}]],r)),h=!0}}function e(t){return!/^(4|mouse)$/.test(t.pointerType)}function s(){return"ontouchstart" in window}function o(i,e){e||(e="");var s={};return t.each(i,function(t,i){s[i[0].split(" ").join(e+" ")+e]=i[1]}),s}var a=[],r=!!window.createPopup,n=!1,h=!1;t.SmartMenus=function(i,e){this.$root=t(i),this.opts=e,this.rootId="",this.accessIdPrefix="",this.$subArrow=null,this.activatedItems=[],this.visibleSubMenus=[],this.showTimeout=0,this.hideTimeout=0,this.scrollTimeout=0,this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.idInc=0,this.$firstLink=null,this.$firstSub=null,this.disabled=!1,this.$disableOverlay=null,this.isTouchScrolling=!1,this.wasCollapsible=!1,this.init()},t.extend(t.SmartMenus,{hideAll:function(){t.each(a,function(){this.menuHideAll()})},destroy:function(){for(;a.length;)a[0].destroy();i(!0)},prototype:{init:function(e){var s=this;if(!e){a.push(this),this.rootId=((new Date).getTime()+Math.random()+"").replace(/\D/g,""),this.accessIdPrefix="sm-"+this.rootId+"-",this.$root.hasClass("sm-rtl")&&(this.opts.rightToLeftSubMenus=!0);var r=".smartmenus";this.$root.data("smartmenus",this).attr("data-smartmenus-id",this.rootId).dataSM("level",1).bind(o([["mouseover focusin",t.proxy(this.rootOver,this)],["mouseout focusout",t.proxy(this.rootOut,this)],["keydown",t.proxy(this.rootKeyDown,this)]],r)).delegate("a",o([["mouseenter",t.proxy(this.itemEnter,this)],["mouseleave",t.proxy(this.itemLeave,this)],["mousedown",t.proxy(this.itemDown,this)],["focus",t.proxy(this.itemFocus,this)],["blur",t.proxy(this.itemBlur,this)],["click",t.proxy(this.itemClick,this)],["touchend",t.proxy(this.itemTouchEnd,this)]],r)),r+=this.rootId,this.opts.hideOnClick&&t(document).bind(o([["touchstart",t.proxy(this.docTouchStart,this)],["touchmove",t.proxy(this.docTouchMove,this)],["touchend",t.proxy(this.docTouchEnd,this)],["click",t.proxy(this.docClick,this)]],r)),t(window).bind(o([["resize orientationchange",t.proxy(this.winResize,this)]],r)),this.opts.subIndicators&&(this.$subArrow=t("<span/>").addClass("sub-arrow"),this.opts.subIndicatorsText&&this.$subArrow.html(this.opts.subIndicatorsText)),i()}if(this.$firstSub=this.$root.find("ul").each(function(){s.menuInit(t(this))}).eq(0),this.$firstLink=this.$root.find("a").eq(0),this.opts.markCurrentItem){var n=/(index|default)\.[^#\?\/]*/i,h=/#.*/,u=window.location.href.replace(n,""),l=u.replace(h,"");this.$root.find("a").each(function(){var i=this.href.replace(n,""),e=t(this);(i==u||i==l)&&(e.addClass("current"),s.opts.markCurrentTree&&e.parentsUntil("[data-smartmenus-id]","ul").each(function(){t(this).dataSM("parent-a").addClass("current")}))})}this.wasCollapsible=this.isCollapsible()},destroy:function(i){if(!i){var e=".smartmenus";this.$root.removeData("smartmenus").removeAttr("data-smartmenus-id").removeDataSM("level").unbind(e).undelegate(e),e+=this.rootId,t(document).unbind(e),t(window).unbind(e),this.opts.subIndicators&&(this.$subArrow=null)}this.menuHideAll();var s=this;this.$root.find("ul").each(function(){var i=t(this);i.dataSM("scroll-arrows")&&i.dataSM("scroll-arrows").remove(),i.dataSM("shown-before")&&((s.opts.subMenusMinWidth||s.opts.subMenusMaxWidth)&&i.css({width:"",minWidth:"",maxWidth:""}).removeClass("sm-nowrap"),i.dataSM("scroll-arrows")&&i.dataSM("scroll-arrows").remove(),i.css({zIndex:"",top:"",left:"",marginLeft:"",marginTop:"",display:""})),0==i.attr("id").indexOf(s.accessIdPrefix)&&i.removeAttr("id")}).removeDataSM("in-mega").removeDataSM("shown-before").removeDataSM("ie-shim").removeDataSM("scroll-arrows").removeDataSM("parent-a").removeDataSM("level").removeDataSM("beforefirstshowfired").removeAttr("role").removeAttr("aria-hidden").removeAttr("aria-labelledby").removeAttr("aria-expanded"),this.$root.find("a.has-submenu").each(function(){var i=t(this);0==i.attr("id").indexOf(s.accessIdPrefix)&&i.removeAttr("id")}).removeClass("has-submenu").removeDataSM("sub").removeAttr("aria-haspopup").removeAttr("aria-controls").removeAttr("aria-expanded").closest("li").removeDataSM("sub"),this.opts.subIndicators&&this.$root.find("span.sub-arrow").remove(),this.opts.markCurrentItem&&this.$root.find("a.current").removeClass("current"),i||(this.$root=null,this.$firstLink=null,this.$firstSub=null,this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),a.splice(t.inArray(this,a),1))},disable:function(i){if(!this.disabled){if(this.menuHideAll(),!i&&!this.opts.isPopup&&this.$root.is(":visible")){var e=this.$root.offset();this.$disableOverlay=t('<div class="sm-jquery-disable-overlay"/>').css({position:"absolute",top:e.top,left:e.left,width:this.$root.outerWidth(),height:this.$root.outerHeight(),zIndex:this.getStartZIndex(!0),opacity:0}).appendTo(document.body)}this.disabled=!0}},docClick:function(i){return this.isTouchScrolling?void(this.isTouchScrolling=!1):void((this.visibleSubMenus.length&&!t.contains(this.$root[0],i.target)||t(i.target).is("a"))&&this.menuHideAll())},docTouchEnd:function(){if(this.lastTouch){if(!(!this.visibleSubMenus.length||void 0!==this.lastTouch.x2&&this.lastTouch.x1!=this.lastTouch.x2||void 0!==this.lastTouch.y2&&this.lastTouch.y1!=this.lastTouch.y2||this.lastTouch.target&&t.contains(this.$root[0],this.lastTouch.target))){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var i=this;this.hideTimeout=setTimeout(function(){i.menuHideAll()},350)}this.lastTouch=null}},docTouchMove:function(t){if(this.lastTouch){var i=t.originalEvent.touches[0];this.lastTouch.x2=i.pageX,this.lastTouch.y2=i.pageY}},docTouchStart:function(t){var i=t.originalEvent.touches[0];this.lastTouch={x1:i.pageX,y1:i.pageY,target:i.target}},enable:function(){this.disabled&&(this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),this.disabled=!1)},getClosestMenu:function(i){for(var e=t(i).closest("ul");e.dataSM("in-mega");)e=e.parent().closest("ul");return e[0]||null},getHeight:function(t){return this.getOffset(t,!0)},getOffset:function(t,i){var e;"none"==t.css("display")&&(e={position:t[0].style.position,visibility:t[0].style.visibility},t.css({position:"absolute",visibility:"hidden"}).show());var s=t[0].getBoundingClientRect&&t[0].getBoundingClientRect(),o=s&&(i?s.height||s.bottom-s.top:s.width||s.right-s.left);return o||0===o||(o=i?t[0].offsetHeight:t[0].offsetWidth),e&&t.hide().css(e),o},getStartZIndex:function(t){var i=parseInt(this[t?"$root":"$firstSub"].css("z-index"));return!t&&isNaN(i)&&(i=parseInt(this.$root.css("z-index"))),isNaN(i)?1:i},getTouchPoint:function(t){return t.touches&&t.touches[0]||t.changedTouches&&t.changedTouches[0]||t},getViewport:function(t){var i=t?"Height":"Width",e=document.documentElement["client"+i],s=window["inner"+i];return s&&(e=Math.min(e,s)),e},getViewportHeight:function(){return this.getViewport(!0)},getViewportWidth:function(){return this.getViewport()},getWidth:function(t){return this.getOffset(t)},handleEvents:function(){return!this.disabled&&this.isCSSOn()},handleItemEvents:function(t){return this.handleEvents()&&!this.isLinkInMegaMenu(t)},isCollapsible:function(){return"static"==this.$firstSub.css("position")},isCSSOn:function(){return"block"==this.$firstLink.css("display")},isFixed:function(){var i="fixed"==this.$root.css("position");return i||this.$root.parentsUntil("body").each(function(){return"fixed"==t(this).css("position")?(i=!0,!1):void 0}),i},isLinkInMegaMenu:function(i){return t(this.getClosestMenu(i[0])).hasClass("mega-menu")},isTouchMode:function(){return!n||this.isCollapsible()},itemActivate:function(i,e){var s=i.closest("ul"),o=s.dataSM("level");if(o>1&&(!this.activatedItems[o-2]||this.activatedItems[o-2][0]!=s.dataSM("parent-a")[0])){var a=this;t(s.parentsUntil("[data-smartmenus-id]","ul").get().reverse()).add(s).each(function(){a.itemActivate(t(this).dataSM("parent-a"))})}if((!this.isCollapsible()||e)&&this.menuHideSubMenus(this.activatedItems[o-1]&&this.activatedItems[o-1][0]==i[0]?o:o-1),this.activatedItems[o-1]=i,this.$root.triggerHandler("activate.smapi",i[0])!==!1){var r=i.dataSM("sub");r&&(this.isTouchMode()||!this.opts.showOnClick||this.clickActivated)&&this.menuShow(r)}},itemBlur:function(i){var e=t(i.currentTarget);this.handleItemEvents(e)&&this.$root.triggerHandler("blur.smapi",e[0])},itemClick:function(i){if(this.isTouchScrolling)return this.isTouchScrolling=!1,i.stopPropagation(),!1;var e=t(i.currentTarget);if(this.handleItemEvents(e)){if(this.$root.triggerHandler("click.smapi",e[0])===!1)return!1;e.dataSM("href")&&e.attr("href",e.dataSM("href")).removeDataSM("href");var s=t(i.target).is("span.sub-arrow"),o=e.dataSM("sub");if(o&&!o.is(":visible")){if(this.itemActivate(e),o.is(":visible"))return this.focusActivated=!0,!1}else if(this.isCollapsible()&&s)return this.itemActivate(e),this.menuHide(o),!1;return this.opts.showOnClick&&o&&2==o.dataSM("level")?(this.clickActivated=!0,this.menuShow(o),!1):e.hasClass("disabled")?!1:this.$root.triggerHandler("select.smapi",e[0])===!1?!1:void 0}},itemDown:function(i){var e=t(i.currentTarget);this.handleItemEvents(e)&&e.dataSM("mousedown",!0)},itemEnter:function(i){var e=t(i.currentTarget);if(this.handleItemEvents(e)){if(!this.isTouchMode()){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);var s=this;this.showTimeout=setTimeout(function(){s.itemActivate(e)},this.opts.showOnClick&&1==e.closest("ul").dataSM("level")?1:this.opts.showTimeout)}this.$root.triggerHandler("mouseenter.smapi",e[0])}},itemFocus:function(i){var e=t(i.currentTarget);this.handleItemEvents(e)&&(!this.focusActivated||this.isTouchMode()&&e.dataSM("mousedown")||this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0]==e[0]||this.itemActivate(e,!0),this.$root.triggerHandler("focus.smapi",e[0]))},itemLeave:function(i){var e=t(i.currentTarget);this.handleItemEvents(e)&&(this.isTouchMode()||this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0),e.removeDataSM("mousedown"),this.$root.triggerHandler("mouseleave.smapi",e[0]))},itemTouchEnd:function(i){var e=t(i.currentTarget);if(this.handleItemEvents(e)){var s=e.dataSM("sub");"#"!==e.attr("href").charAt(0)&&s&&!s.is(":visible")&&e.dataSM("href",e.attr("href")).attr("href","#")}},menuHide:function(i){if(this.$root.triggerHandler("beforehide.smapi",i[0])!==!1&&(i.stop(!0,!0),"none"!=i.css("display"))){var e=function(){i.css("z-index","")};this.isCollapsible()?this.opts.collapsibleHideFunction?this.opts.collapsibleHideFunction.call(this,i,e):i.hide(this.opts.collapsibleHideDuration,e):this.opts.hideFunction?this.opts.hideFunction.call(this,i,e):i.hide(this.opts.hideDuration,e),i.dataSM("ie-shim")&&i.dataSM("ie-shim").remove(),i.dataSM("scroll")&&(this.menuScrollStop(i),i.css({"touch-action":"","-ms-touch-action":""}).unbind(".smartmenus_scroll").removeDataSM("scroll").dataSM("scroll-arrows").hide()),i.dataSM("parent-a").removeClass("highlighted").attr("aria-expanded","false"),i.attr({"aria-expanded":"false","aria-hidden":"true"});var s=i.dataSM("level");this.activatedItems.splice(s-1,1),this.visibleSubMenus.splice(t.inArray(i,this.visibleSubMenus),1),this.$root.triggerHandler("hide.smapi",i[0])}},menuHideAll:function(){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);for(var t=this.opts.isPopup?1:0,i=this.visibleSubMenus.length-1;i>=t;i--)this.menuHide(this.visibleSubMenus[i]);this.opts.isPopup&&(this.$root.stop(!0,!0),this.$root.is(":visible")&&(this.opts.hideFunction?this.opts.hideFunction.call(this,this.$root):this.$root.hide(this.opts.hideDuration),this.$root.dataSM("ie-shim")&&this.$root.dataSM("ie-shim").remove())),this.activatedItems=[],this.visibleSubMenus=[],this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0},menuHideSubMenus:function(t){for(var i=this.activatedItems.length-1;i>=t;i--){var e=this.activatedItems[i].dataSM("sub");e&&this.menuHide(e)}},menuIframeShim:function(i){r&&this.opts.overlapControlsInIE&&!i.dataSM("ie-shim")&&i.dataSM("ie-shim",t("<iframe/>").attr({src:"javascript:0",tabindex:-9}).css({position:"absolute",top:"auto",left:"0",opacity:0,border:"0"}))},menuInit:function(t){if(!t.dataSM("in-mega")){t.hasClass("mega-menu")&&t.find("ul").dataSM("in-mega",!0);for(var i=2,e=t[0];(e=e.parentNode.parentNode)!=this.$root[0];)i++;var s=t.prevAll("a").eq(-1);s.length||(s=t.prevAll().find("a").eq(-1)),s.addClass("has-submenu").dataSM("sub",t),t.dataSM("parent-a",s).dataSM("level",i).parent().dataSM("sub",t);var o=s.attr("id")||this.accessIdPrefix+ ++this.idInc,a=t.attr("id")||this.accessIdPrefix+ ++this.idInc;s.attr({id:o,"aria-haspopup":"true","aria-controls":a,"aria-expanded":"false"}),t.attr({id:a,role:"group","aria-hidden":"true","aria-labelledby":o,"aria-expanded":"false"}),this.opts.subIndicators&&s[this.opts.subIndicatorsPos](this.$subArrow.clone())}},menuPosition:function(i){var e,a,r=i.dataSM("parent-a"),n=r.closest("li"),h=n.parent(),u=i.dataSM("level"),l=this.getWidth(i),c=this.getHeight(i),d=r.offset(),m=d.left,p=d.top,f=this.getWidth(r),v=this.getHeight(r),b=t(window),S=b.scrollLeft(),g=b.scrollTop(),M=this.getViewportWidth(),w=this.getViewportHeight(),T=h.hasClass("sm")&&!h.hasClass("sm-vertical"),I=this.opts.rightToLeftSubMenus&&!n.is("[data-sm-reverse]")||!this.opts.rightToLeftSubMenus&&n.is("[data-sm-reverse]"),$=2==u?this.opts.mainMenuSubOffsetX:this.opts.subMenusSubOffsetX,x=2==u?this.opts.mainMenuSubOffsetY:this.opts.subMenusSubOffsetY;if(T?(e=I?f-l-$:$,a=this.opts.bottomToTopSubMenus?-c-x:v+x):(e=I?$-l:f-$,a=this.opts.bottomToTopSubMenus?v-x-c:x),this.opts.keepInViewport){var y=m+e,C=p+a;if(I&&S>y?e=T?S-y+e:f-$:!I&&y+l>S+M&&(e=T?S+M-l-y+e:$-l),T||(w>c&&C+c>g+w?a+=g+w-c-C:(c>=w||g>C)&&(a+=g-C)),T&&(C+c>g+w+.49||g>C)||!T&&c>w+.49){var H=this;i.dataSM("scroll-arrows")||i.dataSM("scroll-arrows",t([t('<span class="scroll-up"><span class="scroll-up-arrow"></span></span>')[0],t('<span class="scroll-down"><span class="scroll-down-arrow"></span></span>')[0]]).bind({mouseenter:function(){i.dataSM("scroll").up=t(this).hasClass("scroll-up"),H.menuScroll(i)},mouseleave:function(t){H.menuScrollStop(i),H.menuScrollOut(i,t)},"mousewheel DOMMouseScroll":function(t){t.preventDefault()}}).insertAfter(i));var A=".smartmenus_scroll";i.dataSM("scroll",{step:1,itemH:v,subH:c,arrowDownH:this.getHeight(i.dataSM("scroll-arrows").eq(1))}).bind(o([["mouseover",function(t){H.menuScrollOver(i,t)}],["mouseout",function(t){H.menuScrollOut(i,t)}],["mousewheel DOMMouseScroll",function(t){H.menuScrollMousewheel(i,t)}]],A)).dataSM("scroll-arrows").css({top:"auto",left:"0",marginLeft:e+(parseInt(i.css("border-left-width"))||0),width:l-(parseInt(i.css("border-left-width"))||0)-(parseInt(i.css("border-right-width"))||0),zIndex:i.css("z-index")}).eq(T&&this.opts.bottomToTopSubMenus?0:1).show(),this.isFixed()&&i.css({"touch-action":"none","-ms-touch-action":"none"}).bind(o([[s()?"touchstart touchmove touchend":"pointerdown pointermove pointerup MSPointerDown MSPointerMove MSPointerUp",function(t){H.menuScrollTouch(i,t)}]],A))}}i.css({top:"auto",left:"0",marginLeft:e,marginTop:a-v}),this.menuIframeShim(i),i.dataSM("ie-shim")&&i.dataSM("ie-shim").css({zIndex:i.css("z-index"),width:l,height:c,marginLeft:e,marginTop:a-v})},menuScroll:function(t,i,e){var s,o=t.dataSM("scroll"),a=t.dataSM("scroll-arrows"),r=parseFloat(t.css("margin-top")),h=o.up?o.upEnd:o.downEnd;if(!i&&o.velocity){if(o.velocity*=.9,s=o.velocity,.5>s)return void this.menuScrollStop(t)}else s=e||(i||!this.opts.scrollAccelerate?this.opts.scrollStep:Math.floor(o.step));var u=t.dataSM("level");this.activatedItems[u-1]&&this.activatedItems[u-1].dataSM("sub")&&this.activatedItems[u-1].dataSM("sub").is(":visible")&&this.menuHideSubMenus(u-1);var l=o.up&&r>=h||!o.up&&h>=r?r:Math.abs(h-r)>s?r+(o.up?s:-s):h;if(t.add(t.dataSM("ie-shim")).css("margin-top",l),n&&(o.up&&l>o.downEnd||!o.up&&l<o.upEnd)&&a.eq(o.up?1:0).show(),l==h)n&&a.eq(o.up?0:1).hide(),this.menuScrollStop(t);else if(!i){this.opts.scrollAccelerate&&o.step<this.opts.scrollStep&&(o.step+=.5);var c=this;this.scrollTimeout=setTimeout(function(){c.menuScroll(t)},this.opts.scrollInterval)}},menuScrollMousewheel:function(t,i){if(this.getClosestMenu(i.target)==t[0]){i=i.originalEvent;var e=(i.wheelDelta||-i.detail)>0;t.dataSM("scroll-arrows").eq(e?0:1).is(":visible")&&(t.dataSM("scroll").up=e,this.menuScroll(t,!0))}i.preventDefault()},menuScrollOut:function(i,e){n&&(/^scroll-(up|down)/.test((e.relatedTarget||"").className)||(i[0]==e.relatedTarget||t.contains(i[0],e.relatedTarget))&&this.getClosestMenu(e.relatedTarget)==i[0]||i.dataSM("scroll-arrows").css("visibility","hidden"))},menuScrollOver:function(t,i){if(n&&!/^scroll-(up|down)/.test(i.target.className)&&this.getClosestMenu(i.target)==t[0]){this.menuScrollRefreshData(t);var e=t.dataSM("scroll");t.dataSM("scroll-arrows").eq(0).css("margin-top",e.upEnd).end().eq(1).css("margin-top",e.downEnd+e.subH-e.arrowDownH).end().css("visibility","visible")}},menuScrollRefreshData:function(i){var e=i.dataSM("scroll"),s=t(window),o=s.scrollTop()-i.dataSM("parent-a").offset().top-e.itemH;t.extend(e,{upEnd:o,downEnd:o+this.getViewportHeight()-e.subH})},menuScrollStop:function(i){return this.scrollTimeout?(clearTimeout(this.scrollTimeout),this.scrollTimeout=0,t.extend(i.dataSM("scroll"),{step:1,velocity:0}),!0):void 0},menuScrollTouch:function(i,s){if(s=s.originalEvent,e(s)){var o=this.getTouchPoint(s);if(this.getClosestMenu(o.target)==i[0]){var a=i.dataSM("scroll");if(/(start|down)$/i.test(s.type))this.menuScrollStop(i)?(s.preventDefault(),this.isTouchScrolling=!0):this.isTouchScrolling=!1,this.menuScrollRefreshData(i),t.extend(a,{touchY:o.pageY,touchTimestamp:s.timeStamp,velocity:0});else if(/move$/i.test(s.type)){var r=a.touchY;void 0!==r&&r!=o.pageY&&(this.isTouchScrolling=!0,t.extend(a,{up:r<o.pageY,touchY:o.pageY,touchTimestamp:s.timeStamp,velocity:a.velocity+.5*Math.abs(o.pageY-r)}),this.menuScroll(i,!0,Math.abs(a.touchY-r))),s.preventDefault()}else void 0!==a.touchY&&(s.timeStamp-a.touchTimestamp<120&&a.velocity>0&&(a.velocity*=.5,this.menuScrollStop(i),this.menuScroll(i),s.preventDefault()),delete a.touchY)}}},menuShow:function(t){if((t.dataSM("beforefirstshowfired")||(t.dataSM("beforefirstshowfired",!0),this.$root.triggerHandler("beforefirstshow.smapi",t[0])!==!1))&&this.$root.triggerHandler("beforeshow.smapi",t[0])!==!1&&(t.dataSM("shown-before",!0).stop(!0,!0),!t.is(":visible"))){var i=t.dataSM("parent-a");if((this.opts.keepHighlighted||this.isCollapsible())&&i.addClass("highlighted"),this.isCollapsible())t.removeClass("sm-nowrap").css({zIndex:"",width:"auto",minWidth:"",maxWidth:"",top:"",left:"",marginLeft:"",marginTop:""});else{if(t.css("z-index",this.zIndexInc=(this.zIndexInc||this.getStartZIndex())+1),(this.opts.subMenusMinWidth||this.opts.subMenusMaxWidth)&&(t.css({width:"auto",minWidth:"",maxWidth:""}).addClass("sm-nowrap"),this.opts.subMenusMinWidth&&t.css("min-width",this.opts.subMenusMinWidth),this.opts.subMenusMaxWidth)){var e=this.getWidth(t);t.css("max-width",this.opts.subMenusMaxWidth),e>this.getWidth(t)&&t.removeClass("sm-nowrap").css("width",this.opts.subMenusMaxWidth)}this.menuPosition(t),t.dataSM("ie-shim")&&t.dataSM("ie-shim").insertBefore(t)}var s=function(){t.css("overflow","")};this.isCollapsible()?this.opts.collapsibleShowFunction?this.opts.collapsibleShowFunction.call(this,t,s):t.show(this.opts.collapsibleShowDuration,s):this.opts.showFunction?this.opts.showFunction.call(this,t,s):t.show(this.opts.showDuration,s),i.attr("aria-expanded","true"),t.attr({"aria-expanded":"true","aria-hidden":"false"}),this.visibleSubMenus.push(t),this.$root.triggerHandler("show.smapi",t[0])}},popupHide:function(t){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var i=this;this.hideTimeout=setTimeout(function(){i.menuHideAll()},t?1:this.opts.hideTimeout)},popupShow:function(t,i){if(!this.opts.isPopup)return void alert('SmartMenus jQuery Error:\n\nIf you want to show this menu via the "popupShow" method, set the isPopup:true option.');if(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),this.$root.dataSM("shown-before",!0).stop(!0,!0),!this.$root.is(":visible")){this.$root.css({left:t,top:i}),this.menuIframeShim(this.$root),this.$root.dataSM("ie-shim")&&this.$root.dataSM("ie-shim").css({zIndex:this.$root.css("z-index"),width:this.getWidth(this.$root),height:this.getHeight(this.$root),left:t,top:i}).insertBefore(this.$root);var e=this,s=function(){e.$root.css("overflow","")};this.opts.showFunction?this.opts.showFunction.call(this,this.$root,s):this.$root.show(this.opts.showDuration,s),this.visibleSubMenus[0]=this.$root}},refresh:function(){this.destroy(!0),this.init(!0)},rootKeyDown:function(i){if(this.handleEvents())switch(i.keyCode){case 27:var e=this.activatedItems[0];if(e){this.menuHideAll(),e[0].focus();var s=e.dataSM("sub");s&&this.menuHide(s)}break;case 32:var o=t(i.target);if(o.is("a")&&this.handleItemEvents(o)){var s=o.dataSM("sub");s&&!s.is(":visible")&&(this.itemClick({currentTarget:i.target}),i.preventDefault())}}},rootOut:function(t){if(this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),!this.opts.showOnClick||!this.opts.hideOnClick)){var i=this;this.hideTimeout=setTimeout(function(){i.menuHideAll()},this.opts.hideTimeout)}},rootOver:function(t){this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0)},winResize:function(t){if(this.handleEvents()){if(!("onorientationchange" in window)||"orientationchange"==t.type){var i=this.isCollapsible();this.wasCollapsible&&i||(this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0].blur(),this.menuHideAll()),this.wasCollapsible=i}}else if(this.$disableOverlay){var e=this.$root.offset();this.$disableOverlay.css({top:e.top,left:e.left,width:this.$root.outerWidth(),height:this.$root.outerHeight()})}}}}),t.fn.dataSM=function(t,i){return i?this.data(t+"_smartmenus",i):this.data(t+"_smartmenus")},t.fn.removeDataSM=function(t){return this.removeData(t+"_smartmenus")},t.fn.smartmenus=function(i){if("string"==typeof i){var e=arguments,s=i;return Array.prototype.shift.call(e),this.each(function(){var i=t(this).data("smartmenus");i&&i[s]&&i[s].apply(i,e)})}var o=t.extend({},t.fn.smartmenus.defaults,i);return this.each(function(){new t.SmartMenus(this,o)})},t.fn.smartmenus.defaults={isPopup:!1,mainMenuSubOffsetX:0,mainMenuSubOffsetY:0,subMenusSubOffsetX:0,subMenusSubOffsetY:0,subMenusMinWidth:"10em",subMenusMaxWidth:"20em",subIndicators:!0,subIndicatorsPos:"prepend",subIndicatorsText:"+",scrollStep:30,scrollInterval:30,scrollAccelerate:!0,showTimeout:250,hideTimeout:500,showDuration:0,showFunction:null,hideDuration:0,hideFunction:function(t,i){t.fadeOut(200,i)},collapsibleShowDuration:0,collapsibleShowFunction:function(t,i){t.slideDown(200,i)},collapsibleHideDuration:0,collapsibleHideFunction:function(t,i){t.slideUp(200,i)},showOnClick:!1,hideOnClick:!0,keepInViewport:!0,keepHighlighted:!0,markCurrentItem:!1,markCurrentTree:!0,rightToLeftSubMenus:!1,bottomToTopSubMenus:!1,overlapControlsInIE:!0}}(jQuery);
;;;!function(a){a(function(){var s=a("ul.navbar-nav:not([data-sm-skip])");s.each(function(){function s(){var a=e.getViewportWidth();a!=o&&(e.isCollapsible()?(i.addClass("sm-collapsible"),i.is("[data-sm-skip-collapsible-behavior]")||n.addClass("navbar-toggle sub-arrow")):(i.removeClass("sm-collapsible"),i.is("[data-sm-skip-collapsible-behavior]")||n.removeClass("navbar-toggle sub-arrow")),o=a)}var i=a(this);i.addClass("sm").smartmenus({subMenusSubOffsetX:2,subMenusSubOffsetY:-6,subIndicators:!1,collapsibleShowFunction:null,collapsibleHideFunction:null,rightToLeftSubMenus:i.hasClass("navbar-right"),bottomToTopSubMenus:i.closest(".navbar").hasClass("navbar-fixed-bottom")}).bind({"show.smapi":function(s,i){var e=a(i),o=e.dataSM("scroll-arrows");o&&o.css("background-color",a(document.body).css("background-color")),e.parent().addClass("open")},"hide.smapi":function(s,i){a(i).parent().removeClass("open")}}).find("a.current").parent().addClass("active");var e=i.data("smartmenus");i.is("[data-sm-skip-collapsible-behavior]")&&i.bind({"click.smapi":function(s,i){if(e.isCollapsible()){var o=a(i),n=o.parent().dataSM("sub");if(n&&n.dataSM("shown-before")&&n.is(":visible"))return e.itemActivate(o),e.menuHide(n),!1}}});var o,n=i.find(".caret");s(),a(window).bind("resize.smartmenus"+e.rootId,s)})}),a.SmartMenus.prototype.isCollapsible=function(){return"left"!=this.$firstLink.parent().css("float")}}(jQuery);
;;;var DNN_COL_DELIMITER=String.fromCharCode(16);var DNN_ROW_DELIMITER=String.fromCharCode(15);var __dnn_m_bPageLoaded=false;if(window.addEventListener){window.addEventListener("load",__dnn_Page_OnLoad,false)}else{window.attachEvent("onload",__dnn_Page_OnLoad)}function __dnn_ClientAPIEnabled(){return typeof(dnn)!="undefined"&&typeof(dnn.dom)!="undefined"}function __dnn_Page_OnLoad(){if(__dnn_ClientAPIEnabled()){dnn.dom.attachEvent(window,"onscroll",__dnn_bodyscroll)}__dnn_m_bPageLoaded=true}function __dnn_KeyDown(iKeyCode,sFunc,e){if(e==null){e=window.event}if(e.keyCode==iKeyCode){eval(unescape(sFunc));return false}}function __dnn_bodyscroll(){var a=document.forms[0];if(__dnn_ClientAPIEnabled()&&__dnn_m_bPageLoaded&&typeof(a.ScrollTop)!="undefined"){a.ScrollTop.value=document.documentElement.scrollTop?document.documentElement.scrollTop:dnn.dom.getByTagName("body")[0].scrollTop}}function __dnn_setScrollTop(c){if(__dnn_ClientAPIEnabled()){if(c==null){c=document.forms[0].ScrollTop.value}var a=dnn.getVar("ScrollToControl");if(a!=null&&a.length>0){var b=dnn.dom.getById(a);if(b!=null){c=dnn.dom.positioning.elementTop(b);dnn.setVar("ScrollToControl","")}}if(document.getElementsByTagName("html")[0].style.overflow!="hidden"){window.scrollTo(0,c)}}}function __dnn_SetInitialFocus(a){var b=dnn.dom.getById(a);if(b!=null&&__dnn_CanReceiveFocus(b)){b.focus()}}function __dnn_CanReceiveFocus(b){if(b.style.display!="none"&&b.tabIndex>-1&&b.disabled==false&&b.style.visible!="hidden"){var a=b.parentElement;while(a!=null&&a.tagName!="BODY"){if(a.style.display=="none"||a.disabled||a.style.visible=="hidden"){return false}a=a.parentElement}return true}else{return false}}function __dnn_ContainerMaxMin_OnClick(i,b){var g=dnn.dom.getById(b);if(g!=null){var e=i.childNodes[0];var l=dnn.getVar("containerid_"+b);var j=dnn.getVar("cookieid_"+b);var d=e.src.toLowerCase().substr(e.src.lastIndexOf("/"));var a;var h;var k;if(dnn.getVar("min_icon_"+l)){k=dnn.getVar("min_icon_"+l)}else{k=dnn.getVar("min_icon")}if(dnn.getVar("max_icon_"+l)){h=dnn.getVar("max_icon_"+l)}else{h=dnn.getVar("max_icon")}a=h.toLowerCase().substr(h.lastIndexOf("/"));var c=5;var f=dnn.getVar("animf_"+b);if(f!=null){c=new Number(f)}if(d==a){e.src=k;dnn.dom.expandElement(g,c);e.title=dnn.getVar("min_text");if(j!=null){if(dnn.getVar("__dnn_"+l+":defminimized")=="true"){dnn.dom.setCookie(j,"true",365)}else{dnn.dom.deleteCookie(j)}}else{dnn.setVar("__dnn_"+l+"_Visible","true")}}else{e.src=h;dnn.dom.collapseElement(g,c);e.title=dnn.getVar("max_text");if(j!=null){if(dnn.getVar("__dnn_"+l+":defminimized")=="true"){dnn.dom.deleteCookie(j)}else{dnn.dom.setCookie(j,"false",365)}}else{dnn.setVar("__dnn_"+l+"_Visible","false")}}return true}return false}function __dnn_Help_OnClick(a){var b=dnn.dom.getById(a);if(b!=null){if(b.style.display=="none"){b.style.display=""}else{b.style.display="none"}return true}return false}function __dnn_SectionMaxMin(f,c){var d=dnn.dom.getById(c);if(d!=null){var g=f.getAttribute("max_icon");var e=f.getAttribute("min_icon");var a=f.getAttribute("userctr")!=null;var b;if(d.style.display=="none"){f.src=e;d.style.display="";if(a){b="True"}else{dnn.setVar(f.id+":exp",1)}}else{f.src=g;d.style.display="none";if(a){b="False"}else{dnn.setVar(f.id+":exp",0)}}if(a){dnncore.setUserProp(f.getAttribute("userctr"),f.getAttribute("userkey"),b,null)}return true}return false}function __dnn_enableDragDrop(){var b=dnn.getVar("__dnn_dragDrop").split(";");var e;for(var c=0;c<b.length;c++){e=b[c].split(" ");if(e[0].length>0){var a=dnn.dom.getById(e[0]);var d=dnn.dom.getById(e[1]);if(a!=null&&d!=null){a.setAttribute("moduleid",e[2]);dnn.dom.positioning.enableDragAndDrop(a,d,"__dnn_dragComplete()","__dnn_dragOver()")}}}}var __dnn_oPrevSelPane;var __dnn_oPrevSelModule;var __dnn_dragEventCount=0;function __dnn_dragOver(){__dnn_dragEventCount++;if(__dnn_dragEventCount%75!=0){return}var c=dnn.dom.getById(dnn.dom.positioning.dragCtr.contID);var a=__dnn_getMostSelectedPane(dnn.dom.positioning.dragCtr);if(__dnn_oPrevSelPane!=null){__dnn_oPrevSelPane.pane.style.border=__dnn_oPrevSelPane.origBorder}if(a!=null){__dnn_oPrevSelPane=a;a.pane.style.border="4px double "+DNN_HIGHLIGHT_COLOR;var e=__dnn_getPaneControlIndex(c,a);var b;var f;for(var d=0;d<a.controls.length;d++){if(e>d&&a.controls[d].id!=c.id){b=a.controls[d]}if(e<=d&&a.controls[d].id!=c.id){f=a.controls[d];break}}if(__dnn_oPrevSelModule!=null){dnn.dom.getNonTextNode(__dnn_oPrevSelModule.control).style.border=__dnn_oPrevSelModule.origBorder}if(f!=null){__dnn_oPrevSelModule=f;dnn.dom.getNonTextNode(f.control).style.borderTop="5px groove "+DNN_HIGHLIGHT_COLOR}else{if(b!=null){__dnn_oPrevSelModule=b;dnn.dom.getNonTextNode(b.control).style.borderBottom="5px groove "+DNN_HIGHLIGHT_COLOR}}}}function __dnn_dragComplete(){var f=dnn.dom.getById(dnn.dom.positioning.dragCtr.contID);var d=f.getAttribute("moduleid");if(__dnn_oPrevSelPane!=null){__dnn_oPrevSelPane.pane.style.border=__dnn_oPrevSelPane.origBorder}if(__dnn_oPrevSelModule!=null){dnn.dom.getNonTextNode(__dnn_oPrevSelModule.control).style.border=__dnn_oPrevSelModule.origBorder}var b=__dnn_getMostSelectedPane(dnn.dom.positioning.dragCtr);var e;if(b==null){var a=__dnn_Panes();for(var c=0;c<a.length;c++){if(a[c].id==f.parentNode.id){b=a[c]}}}if(b!=null){e=__dnn_getPaneControlIndex(f,b);__dnn_MoveToPane(b,f,e);dnn.callPostBack("MoveToPane","moduleid="+d,"pane="+b.paneName,"order="+e*2)}}function __dnn_MoveToPane(a,e,d){if(a!=null){var c=new Array();for(var b=d;b<a.controls.length;b++){if(a.controls[b].control.id!=e.id){c[c.length]=a.controls[b].control}dnn.dom.removeChild(a.controls[b].control)}dnn.dom.appendChild(a.pane,e);e.style.top=0;e.style.left=0;e.style.position="relative";for(var b=0;b<c.length;b++){dnn.dom.appendChild(a.pane,c[b])}__dnn_RefreshPanes()}else{e.style.top=0;e.style.left=0;e.style.position="relative"}}function __dnn_RefreshPanes(){var b=dnn.getVar("__dnn_Panes").split(";");var a=dnn.getVar("__dnn_PaneNames").split(";");__dnn_m_aryPanes=new Array();for(var c=0;c<b.length;c++){if(b[c].length>0){__dnn_m_aryPanes[__dnn_m_aryPanes.length]=new __dnn_Pane(dnn.dom.getById(b[c]),a[c])}}}var __dnn_m_aryPanes;var __dnn_m_aryModules;function __dnn_Panes(){if(__dnn_m_aryPanes==null){__dnn_m_aryPanes=new Array();__dnn_RefreshPanes()}return __dnn_m_aryPanes}function __dnn_Modules(a){if(__dnn_m_aryModules==null){__dnn_RefreshPanes()}return __dnn_m_aryModules[a]}function __dnn_getMostSelectedPane(g){var c=new dnn.dom.positioning.dims(g);var f=0;var a;var h;for(var e=0;e<__dnn_Panes().length;e++){var b=__dnn_Panes()[e];var d=new dnn.dom.positioning.dims(b.pane);a=dnn.dom.positioning.elementOverlapScore(d,c);if(a>f){f=a;h=b}}return h}function __dnn_getPaneControlIndex(f,b){if(b==null){return}var a=new dnn.dom.positioning.dims(f);var e;if(b.controls.length==0){return 0}for(var c=0;c<b.controls.length;c++){e=b.controls[c];var d=new dnn.dom.positioning.dims(e.control);if(a.t<d.t){return e.index}}if(e!=null){return e.index+1}else{return 0}}function __dnn_Pane(a,b){this.pane=a;this.id=a.id;this.controls=new Array();this.origBorder=a.style.border;this.paneName=b;var f=0;var e="";for(var d=0;d<a.childNodes.length;d++){var g=a.childNodes[d];if(dnn.dom.isNonTextNode(g)){if(__dnn_m_aryModules==null){__dnn_m_aryModules=new Array()}var c=g.getAttribute("moduleid");if(c!=null&&c.length>0){e+=c+"~";this.controls[this.controls.length]=new __dnn_PaneControl(g,f);__dnn_m_aryModules[c]=g.id;f+=1}}}this.moduleOrder=e}function __dnn_PaneControl(a,b){this.control=a;this.id=a.id;this.index=b;this.origBorder=a.style.border}function __dnn_ShowModalPage(a){dnnModal.show(a,true,550,950,true,"")}function __dnncore(){this.GetUserVal=0;this.SetUserVal=1}__dnncore.prototype={getUserProp:function(b,c,a){this._doUserCallBack(dnncore.GetUserVal,b,c,null,new dnncore.UserPropArgs(b,c,a))},setUserProp:function(c,d,a,b){this._doUserCallBack(dnncore.SetUserVal,c,d,a,new dnncore.UserPropArgs(c,d,b))},_doUserCallBack:function(c,d,e,a,b){if(dnn&&dnn.xmlhttp){var f=c+COL_DELIMITER+d+COL_DELIMITER+e+COL_DELIMITER+a;dnn.xmlhttp.doCallBack("__Page",f,dnncore._callBackSuccess,b,dnncore._callBackFail,null,true,null,0)}else{alert("Client Personalization not enabled")}},_callBackSuccess:function(a,b,c){if(b.pFunc){b.pFunc(b.namingCtr,b.key,a)}},_callBackFail:function(a,b){window.status=a}};__dnncore.prototype.UserPropArgs=function(b,c,a){this.namingCtr=b;this.key=c;this.pFunc=a};var dnncore=new __dnncore();
;;;(function($){if(typeof dnn=='undefined')window.dnn={};if(typeof dnn.searchSkinObject=='undefined'){dnn.searchSkinObject=function(options){var settings={delayTriggerAutoSearch:100,minCharRequiredTriggerAutoSearch:2,searchType:'S',enableWildSearch:true,cultureCode:'en-US'};this.settings=$.extend({},settings,options);};dnn.searchSkinObject.prototype={_ignoreKeyCodes:[9,13,16,17,18,19,20,27,33,34,35,36,37,38,39,40,45],init:function(){var throttle=null,self=this;var makeUrl=function(val,service){var url=service?service.getServiceRoot('internalservices')+'searchService/preview':null;if(!url)return null;var params={};params['keywords']=val.replace(/^\s+|\s+$/g,'');if(!self.settings.enableWildSearch)params["forceWild"]="0";params['culture']=self.settings.cultureCode;if(self.settings.portalId>=0)
params['portal']=self.settings.portalId;var urlAppend=[];$.each(params,function(index,value){urlAppend.push([index,encodeURIComponent(value)].join('='));});if(urlAppend.length){url+=url.indexOf('?')===-1?'?':'&';url+=urlAppend.join('&');}
return url;};var generatePreviewTemplate=function(data,$wrap){var preview=$('.searchSkinObjectPreview',$wrap);if(preview.length)
preview.remove();var markup='<ul class="searchSkinObjectPreview">';if(data&&data.length){for(var i=0;i<data.length;i++){var group=data[i];if(group.Results&&group.Results.length){var groupTitle=group.DocumentTypeName;markup+='<li class="searchSkinObjectPreview_group">'+groupTitle+'</li>';for(var j=0;j<group.Results.length;j++){var item=group.Results[j];var itemTitle=item.Title;var itemUrl=item.DocumentUrl;var itemDescription=item.Description;var itemSnippet=item.Snippet;markup+='<li data-url="'+itemUrl+'">';if(item.Attributes.Avatar){markup+='<span><img src="'+item.Attributes.Avatar+'" class="userpic" /></span>';}
markup+='<span>'+itemTitle+'</span>';if(itemDescription){markup+='<p>'+itemDescription+'</p>';}
if(itemSnippet){markup+='<p>'+itemSnippet+'</p>';}
markup+='</li>';}}}
var moreResults=$wrap.attr('data-moreresults');markup+='<li><a href="javascript:void(0)" class="searchSkinObjectPreview_more">'+moreResults+'</a></li>';markup+='</ul>';}
else{var noResult=$wrap.attr('data-noresult');markup+='<li>'+noResult+'</li></ul>';}
$wrap.append(markup);preview=$('.searchSkinObjectPreview',$wrap);$('li',preview).on('click',function(){var navigateUrl=$(this).attr('data-url');if(navigateUrl){window.location.href=navigateUrl;}
return false;});$('.searchSkinObjectPreview_more',$wrap).on('click',function(){var $searchButton=$wrap.next();if(!$searchButton.length){$searchButton=$wrap.parent().next();}
$searchButton[0].click();return false;});};$('.searchInputContainer a.dnnSearchBoxClearText').on('click',function(){var $this=$(this);var $wrap=$this.parent();$('.searchInputContainer input').val('').focus();$this.removeClass('dnnShow');$('.searchSkinObjectPreview',$wrap).remove();return false;});$('.searchInputContainer').next().on('click',function(){var $this=$(this);var inputBox=$this.prev().find('input[type="text"]');var val=inputBox.val();if(val.length){return true;}
return false;});$('.searchInputContainer input').on('keyup',function(e){var k=e.keyCode||e.witch;if($.inArray(k,self._ignoreKeyCodes)>-1)return;var $this=$(this);var $wrap=$this.parent();var val=$this.val();var container=$this.parent('.searchInputContainer');if(!val){$('a.dnnSearchBoxClearText',$wrap).removeClass('dnnShow');$('.searchSkinObjectPreview',$wrap).remove();}else{$('a.dnnSearchBoxClearText',$wrap).addClass('dnnShow');if(self.settings.searchType!='S'||val.length<self.settings.minCharRequiredTriggerAutoSearch)return;if(throttle){clearTimeout(throttle);delete throttle;}
throttle=setTimeout(function(){var service=$.dnnSF?$.dnnSF(-1):null;var url=makeUrl(val,service);if(url){$.ajax({url:url,beforeSend:service?service.setModuleHeaders:null,success:function(result){if(result)
generatePreviewTemplate(result,container);},error:function(){},type:'GET',dataType:'json',contentType:"application/json"});}},self.settings.delayTriggerAutoSearch);}}).on('paste',function(){$(this).triggerHandler('keyup');}).on('keypress',function(e){var k=e.keyCode||e.which;if(k==13){var $this=$(this);var $wrap=$this.parent();var val=$this.val();if(val.length){var $searchButton=$wrap.next();if(!$searchButton.length){$searchButton=$wrap.parent().next();}
$searchButton[0].click();e.preventDefault();}else{e.preventDefault();}}});}};}})(jQuery);
;;;(function($){$.fn.rateit=function(p1,p2){var options={};var mode='init';if(this.length==0)return this;var tp1=$.type(p1);if(tp1=='object'||p1===undefined||p1==null){options=$.extend({},$.fn.rateit.defaults,p1);}
else if(tp1=='string'&&p2===undefined){return this.data('rateit-'+p1);}
else if(tp1=='string'){mode='setvalue'}
return this.each(function(){var item=$(this);var itemdata=function(k,v){k='rateit-'+k;if(arguments.length===1)
return item.data(k);item.data(k,v);return v;};if(!item.hasClass('rateit'))item.addClass('rateit');var ltr=item.css('direction')!='rtl';if(mode=='setvalue'){if(!itemdata('init'))throw'Can\'t set value before init';if(p1=='readonly'&&!itemdata('readonly')){item.find('.rateit-range').unbind();itemdata('wired',false);}
if(itemdata('backingfld')){var fld=$(itemdata('backingfld'));if(p1=='value')fld.val(p2);if(p1=='min'&&fld[0].min)fld[0].min=p2;if(p1=='max'&&fld[0].max)fld[0].max=p2;if(p1=='step'&&fld[0].step)fld[0].step=p2;}
itemdata(p1,p2);}
if(!itemdata('init')){itemdata('min',itemdata('min')||options.min);itemdata('max',itemdata('max')||options.max);itemdata('step',itemdata('step')||options.step);itemdata('readonly',itemdata('readonly')!==undefined?itemdata('readonly'):options.readonly);itemdata('resetable',itemdata('resetable')!==undefined?itemdata('resetable'):options.resetable);itemdata('backingfld',itemdata('backingfld')||options.backingfld);itemdata('starwidth',itemdata('starwidth')||options.starwidth);itemdata('starheight',itemdata('starheight')||options.starheight);itemdata('value',itemdata('value')||options.min);if(itemdata('backingfld')){var fld=$(itemdata('backingfld'));itemdata('value',fld.hide().val());if(fld[0].nodeName=='INPUT'){if(fld[0].type=='range'||fld[0].type=='text'){itemdata('min',parseInt(fld.attr('min'))||itemdata('min'));itemdata('max',parseInt(fld.attr('max'))||itemdata('max'));itemdata('step',parseInt(fld.attr('step'))||itemdata('step'));}}
if(fld[0].nodeName=='SELECT'&&fld[0].options.length>1){itemdata('min',Number(fld[0].options[0].value));itemdata('max',Number(fld[0].options[fld[0].length-1].value));itemdata('step',Number(fld[0].options[1].value)-Number(fld[0].options[0].value));}}
item.append('<div class="rateit-reset"></div><div class="rateit-range"><div class="rateit-selected" style="height:'+itemdata('starheight')+'px"></div><div class="rateit-hover" style="height:'+itemdata('starheight')+'px"></div></div>');if(!ltr){item.find('.rateit-reset').css('float','right');item.find('.rateit-selected').addClass('rateit-selected-rtl');item.find('.rateit-hover').addClass('rateit-hover-rtl');}
itemdata('init',true);}
var range=item.find('.rateit-range');range.width(itemdata('starwidth')*(itemdata('max')-itemdata('min'))).height(itemdata('starheight'));if(itemdata('value')){var score=(itemdata('value')-itemdata('min'))*itemdata('starwidth');item.find('.rateit-selected').width(score);}
var resetbtn=item.find('.rateit-reset');var calcRawScore=function(element,event){var pageX=(event.changedTouches)?event.changedTouches[0].pageX:event.pageX;var offsetx=pageX-$(element).offset().left;if(!ltr)offsetx=range.width()-offsetx;if(offsetx>range.width())offsetx=range.width();if(offsetx<0)offsetx=0;return score=Math.ceil(offsetx/itemdata('starwidth')*(1/itemdata('step')));};if(!itemdata('readonly')){if(itemdata('resetable')){resetbtn.click(function(){itemdata('value',itemdata('min'));range.find('.rateit-hover').hide().width(0);range.find('.rateit-selected').width(0).show();if(itemdata('backingfld'))$(itemdata('backingfld')).val(itemdata('min'));item.trigger('reset');});}
else{resetbtn.hide();}
if(!itemdata('wired')){range.bind('touchmove touchend',touchHandler);range.mousemove(function(e){var score=calcRawScore(this,e);var w=score*itemdata('starwidth')*itemdata('step');var h=range.find('.rateit-hover');if(h.data('width')!=w){range.find('.rateit-selected').hide();h.width(w).show().data('width',w);item.trigger('hover',[(score*itemdata('step'))+itemdata('min')]);}});range.mouseleave(function(e){range.find('.rateit-hover').hide().width(0).data('width','');item.trigger('hover',[null]);range.find('.rateit-selected').show();});range.mouseup(function(e){var score=calcRawScore(this,e);var newvalue=(score*itemdata('step'))+itemdata('min');itemdata('value',newvalue);if(itemdata('backingfld')){$(itemdata('backingfld')).val(newvalue);}
range.find('.rateit-hover').hide();range.find('.rateit-selected').width(score*itemdata('starwidth')*itemdata('step')).show();item.trigger('hover',[null]).trigger('rated',[newvalue]);});itemdata('wired',true);}
if(itemdata('resetable')){resetbtn.show();}}
else{resetbtn.hide();}});};function touchHandler(event){var touches=event.originalEvent.changedTouches,first=touches[0],type="";switch(event.type){case"touchmove":type="mousemove";break;case"touchend":type="mouseup";break;default:return;}
var simulatedEvent=document.createEvent("MouseEvent");simulatedEvent.initMouseEvent(type,true,true,window,1,first.screenX,first.screenY,first.clientX,first.clientY,false,false,false,false,0,null);first.target.dispatchEvent(simulatedEvent);event.preventDefault();};$.fn.rateit.defaults={min:0,max:5,step:0.5,starwidth:16,starheight:16,readonly:false,resetable:true};eds3_5_jq(document).ready(function($){$('div.rateit').rateit();});})(eds3_5_jq);
;;;(function($){$.dnnSF=function(moduleId){var base=this;base.getServiceRoot=function(moduleName){var serviceRoot=dnn.getVar("sf_siteRoot","/");serviceRoot+="API/"+moduleName+"/";return serviceRoot;};base.getTabId=function(){return dnn.getVar("sf_tabId",-1);};base.getModuleId=function(){return moduleId;};base.setModuleHeaders=function(xhr){var tabId=base.getTabId();if(tabId>-1){xhr.setRequestHeader("ModuleId",base.getModuleId());xhr.setRequestHeader("TabId",tabId);}var afValue=base.getAntiForgeryValue();if(afValue){xhr.setRequestHeader("RequestVerificationToken",afValue);}};base.getAntiForgeryKey=function(){return"__RequestVerificationToken";};base.getAntiForgeryValue=function(){return $('[name="__RequestVerificationToken"]').val();};return base;};$.ServicesFramework=function(moduleId){return new $.dnnSF(moduleId);};})(jQuery);
;;;(function(document,undefined){var eds_cookie=function($){var pluses=/\+/g;function raw(s){return s;}
function decoded(s){return decodeURIComponent(s.replace(pluses,' '));}
var config=$.cookie=function(key,value,options){if(value!==undefined){options=$.extend({},config.defaults,options);if(value===null){options.expires=-1;}
if(typeof options.expires==='number'){var days=options.expires,t=options.expires=new Date();t.setDate(t.getDate()+days);}
value=config.json?JSON.stringify(value):String(value);return(document.cookie=[encodeURIComponent(key),'=',config.raw?value:encodeURIComponent(value),options.expires?'; expires='+options.expires.toUTCString():'',options.path?'; path='+options.path:'',options.domain?'; domain='+options.domain:'',options.secure?'; secure':''].join(''));}
var decode=config.raw?raw:decoded;var cookies=document.cookie.split('; ');for(var i=0,l=cookies.length;i<l;i++){var parts=cookies[i].split('=');if(decode(parts.shift())===key){var cookie=decode(parts.join('='));return config.json?JSON.parse(cookie):cookie;}}
return null;};config.defaults={};$.removeCookie=function(key,options){if($.cookie(key)!==null){$.cookie(key,null,options);return true;}
return false;};};if(typeof jQuery!=='undefined')
eds_cookie(jQuery);if(typeof eds3_5_jq!=='undefined')
eds_cookie(eds3_5_jq);})(document);
;;;(function(){var eds_mousewheel=function(a){function d(b){var c=b||window.event,d=[].slice.call(arguments,1),e=0,f=!0,g=0,h=0;return b=a.event.fix(c),b.type="mousewheel",c.wheelDelta&&(e=c.wheelDelta/120),c.detail&&(e=-c.detail/3),h=e,c.axis!==undefined&&c.axis===c.HORIZONTAL_AXIS&&(h=0,g=-1*e),c.wheelDeltaY!==undefined&&(h=c.wheelDeltaY/120),c.wheelDeltaX!==undefined&&(g=-1*c.wheelDeltaX/120),d.unshift(b,e,g,h),(a.event.dispatch||a.event.handle).apply(this,d)}var b=["DOMMouseScroll","mousewheel"];if(a.event.fixHooks)for(var c=b.length;c;)a.event.fixHooks[b[--c]]=a.event.mouseHooks;a.event.special.mousewheel={setup:function(){if(this.addEventListener)for(var a=b.length;a;)this.addEventListener(b[--a],d,!1);else this.onmousewheel=d},teardown:function(){if(this.removeEventListener)for(var a=b.length;a;)this.removeEventListener(b[--a],d,!1);else this.onmousewheel=null}},a.fn.extend({mousewheel:function(a){return a?this.bind("mousewheel",a):this.trigger("mousewheel")},unmousewheel:function(a){return this.unbind("mousewheel",a)}})};if(typeof jQuery!=='undefined')
eds_mousewheel(jQuery);if(typeof eds3_5_jq!=='undefined')
eds_mousewheel(eds3_5_jq);})();
;;;(function($){var defaultOptions={instanceGlobal:'EasyDnnSolutions1_1_instance',google:{maps:{api:{key:'',libraries:[]}}}},$window=$(window),getExplicitStyleValue=function($element,styleProperty){var propertyValue='',styleAttribute=$element.attr('style'),zIndexStartPosition,semicolonPosition;if(typeof styleAttribute!='string')
return propertyValue;zIndexStartPosition=styleAttribute.indexOf(' '+styleProperty+':');if(zIndexStartPosition==-1){zIndexStartPosition=styleAttribute.indexOf(';'+styleProperty+':');if(zIndexStartPosition==-1){zIndexStartPosition=styleAttribute.indexOf(styleProperty+':');if(zIndexStartPosition!=0)
return propertyValue;}else
zIndexStartPosition++;}else
zIndexStartPosition++;propertyValue=styleAttribute.substr(zIndexStartPosition+styleProperty.length+1);semicolonPosition=propertyValue.indexOf(';');if(semicolonPosition==-1)
return propertyValue.trim();propertyValue=propertyValue.substr(0,semicolonPosition).trim();return propertyValue;};GoogleHelper=function(parent){var self=this;self.parent=parent;self.maps={api:{loaded:(typeof window.google=='object'&&typeof window.google.maps=='object'),callbacks:[]}}
self.options=parent.options.google;self.public={maps:{api:{callback:function(){var i=0,l=self.maps.api.callbacks.length;self.maps.api.loaded=true;for(;i<l;i++)
self.maps.api.callbacks[i]();},load:function(){var tagId='eds_googleMapsApi',gMapsKey=self.options.maps.api.key,script,src='https://maps.googleapis.com/maps/api/js?v=3.50&callback='+self.parent.options.instanceGlobal+'.google.maps.api.callback';if($('script#'+tagId,self.parent.$head).length==0){if(typeof gMapsKey!='string')
gMapsKey='';if(gMapsKey!='')
gMapsKey='&key='+gMapsKey;script=document.createElement('script');script.type='text/javascript';script.id=tagId;if(self.options.maps.api.libraries)
src+='&libraries='+self.options.maps.api.libraries.join(',');src+=gMapsKey;script.src=src;self.parent.$head[0].appendChild(script);}
return self.parent;},onLoad:function(toExecute){if(self.maps.api.loaded)
toExecute();else{self.maps.api.callbacks.push(toExecute)
self.public.maps.api.load();}
return self.parent;}}}};return self.public;}
window.EasyDnnSolutions1_1=function(instanceOptions){var self=this;self.options=$.extend(true,{},defaultOptions,instanceOptions);self.google=new GoogleHelper(this);self.$head=$('html > head');$(function(){$('body').on('click','.eds_openModal',function(){var $clicked=$(this),$modalTarget=$('.eds_modalWrapper').filter(function(){return $clicked.data('targetId')==this.id||$(this).hasClass($clicked.data('targetClass'));}),$dnnModuleElements=$modalTarget.parents('.DnnModule'),$modalContent,$modalResizeWrapper,$modalContentTitle,initialHeight,resizeContent=function(){var windowHeight=$window.height(),ContentHDiff=Math.round($modalContent.outerHeight(true)-$modalContent.height()),resizeWrapperHDiff=Math.round($modalResizeWrapper.outerHeight(true)-$modalResizeWrapper.height()),titleHeight=$modalContentTitle.outerHeight(true),maxHeight=windowHeight-ContentHDiff-resizeWrapperHDiff-titleHeight;if(maxHeight<initialHeight)
$modalResizeWrapper.height(maxHeight);else
$modalResizeWrapper.css('height','');};$dnnModuleElements.each(function(){var $this=$(this);$this.data('previousZIndex',getExplicitStyleValue($this,'z-index')).css('z-index',99999);});$modalTarget.addClass("eds_modalVisible");$("> .eds_modalContent",$modalTarget).addClass("eds_fadeInDown");if($modalTarget.hasClass('eds_resizable')){$modalContent=$('>',$modalTarget);$modalContentTitle=$('> h3',$modalContent);$modalResizeWrapper=$('> div',$modalContent);initialHeight=$modalResizeWrapper.height();resizeContent()
$window.on('resize.eds_modalWrapper',function(){resizeContent();});}}).on('click','.eds_modalClose',function(){var $clicked=$(this),$modalTarget=$('.eds_modalWrapper'),$dnnModuleElements=$modalTarget.parents('.DnnModule');$dnnModuleElements.each(function(){var $this=$(this);$this.css('z-index',$this.data('previousZIndex'));});$modalTarget.filter(function(){return $clicked.data('targetId')==this.id||$(this).hasClass($clicked.data('targetClass'));}).removeClass("eds_modalVisible").css('z-index','');});});}
var initOptions=null;if($('#eds_js1_1').length>0){initOptions=$('#eds_js1_1').data('initJson')}
if($('meta[name="eds__GmapsInitData"]').length>0){initOptions=JSON.parse($('meta[name="eds__GmapsInitData"]').attr("content"));}
if(window[initOptions.instanceGlobal]==undefined&&initOptions!=null)
window[initOptions.instanceGlobal]=new EasyDnnSolutions1_1(initOptions);})(eds3_5_jq);
;;;/*! fluidvids.js v2.4.1 | (c) 2014 @toddmotto | https://github.com/toddmotto/fluidvids */
!function(e,t){"function"==typeof define&&define.amd?define(t):"object"==typeof exports?module.exports=t:e.edn_fluidvids=t()}(this,function(){"use strict";function e(e){return new RegExp("^(https?:)?//(?:"+d.players.join("|")+").*$","i").test(e)}function t(e,t){return parseInt(e,10)/parseInt(t,10)*100+"%"}function i(i){if((e(i.src)||e(i.data))&&!i.getAttribute("edn_data-fluidvids")){var n=document.createElement("div");i.parentNode.insertBefore(n,i),i.className+=(i.className?" ":"")+"edn_fluidvids-item",i.setAttribute("edn_data-fluidvids","loaded"),n.className+="edn_fluidvids",n.style.paddingTop=t(i.height,i.width),n.appendChild(i)}}function n(){var e=document.createElement("div");e.innerHTML="<p>x</p><style>"+o+"</style>",r.appendChild(e.childNodes[1])}var d={selector:["iframe","object"],players:["www.youtube.com","player.vimeo.com"]},o=[".edn_fluidvids {","width: 100%; max-width: 100%; position: relative;","}",".edn_fluidvids-item {","position: absolute; top: 0px; left: 0px; width: 100%; height: 100%;","}"].join(""),r=document.head||document.getElementsByTagName("head")[0];return d.render=function(){for(var e=document.querySelectorAll(d.selector.join()),t=e.length;t--;)i(e[t])},d.init=function(e){for(var t in e)d[t]=e[t];d.render(),n()},d});
;;;!function(a){"function"==typeof define&&define.amd?define(["jquery"],a):"object"==typeof exports?module.exports=a(require("jquery")):a(eds3_5_jq)}(function(a){"use strict";function b(b,e){function f(){return o.update(),h(),o}function g(){t.css(y,o.thumbPosition),q.css(y,-o.contentPosition),r.css(x,o.trackSize),s.css(x,o.trackSize),t.css(x,o.thumbSize)}function h(){u&&(p[0].ontouchstart=function(a){1===a.touches.length&&(a.stopPropagation(),k(a.touches[0]))}),t.bind("mousedown",function(a){a.stopPropagation(),k(a)}),s.bind("mousedown",function(a){k(a,!0)}),a(window).resize(function(){o.update("relative")}),o.options.wheel&&window.addEventListener?b[0].addEventListener(v,l,!1):o.options.wheel&&(b[0].onmousewheel=l)}function i(){return o.contentPosition>0}function j(){return o.contentPosition<=o.contentSize-o.viewportSize-5}function k(b,d){o.hasContentToSroll&&(a("body").addClass("noSelect"),z=d?t.offset()[y]:w?b.pageX:b.pageY,u&&(document.ontouchmove=function(a){(o.options.touchLock||i()&&j())&&a.preventDefault(),a.touches[0][c+"Touch"]=1,m(a.touches[0])},document.ontouchend=n),a(document).bind("mousemove",m),a(document).bind("mouseup",n),t.bind("mouseup",n),s.bind("mouseup",n),m(b))}function l(c){if(o.hasContentToSroll){var d=c||window.event,e=-(d.deltaY||d.detail||-1/3*d.wheelDelta)/40,f=1===d.deltaMode?o.options.wheelSpeed:1;o.contentPosition-=e*f*o.options.wheelSpeed,o.contentPosition=Math.min(o.contentSize-o.viewportSize,Math.max(0,o.contentPosition)),o.thumbPosition=o.contentPosition/o.trackRatio,b.trigger("move"),t.css(y,o.thumbPosition),q.css(y,-o.contentPosition),(o.options.wheelLock||i()&&j())&&(d=a.event.fix(d),d.preventDefault())}c.stopPropagation()}function m(a){if(o.hasContentToSroll){var d=w?a.pageX:a.pageY,e=a[c+"Touch"]?z-d:d-z,f=Math.min(o.trackSize-o.thumbSize,Math.max(0,o.thumbPosition+e));o.contentPosition=f*o.trackRatio,b.trigger("move"),t.css(y,f),q.css(y,-o.contentPosition)}}function n(){o.thumbPosition=parseInt(t.css(y),10)||0,a("body").removeClass("noSelect"),a(document).unbind("mousemove",m),a(document).unbind("mouseup",n),t.unbind("mouseup",n),s.unbind("mouseup",n),document.ontouchmove=document.ontouchend=null}this.options=a.extend({},d,e),this._defaults=d,this._name=c;var o=this,p=b.find(".viewport"),q=b.find(".overview"),r=b.find(".scrollbar"),s=r.find(".track"),t=r.find(".thumb"),u="ontouchstart" in document.documentElement,v="onwheel" in document.createElement("div")?"wheel":void 0!==document.onmousewheel?"mousewheel":"DOMMouseScroll",w="x"===this.options.axis,x=w?"width":"height",y=w?"left":"top",z=0;return this.contentPosition=0,this.viewportSize=0,this.contentSize=0,this.contentRatio=0,this.trackSize=0,this.trackRatio=0,this.thumbSize=0,this.thumbPosition=0,this.hasContentToSroll=!1,this.update=function(a){var b=x.charAt(0).toUpperCase()+x.slice(1).toLowerCase();switch(this.viewportSize=p[0]["offset"+b],this.contentSize=q[0]["scroll"+b],this.contentRatio=this.viewportSize/this.contentSize,this.trackSize=this.options.trackSize||this.viewportSize,this.thumbSize=Math.min(this.trackSize,Math.max(this.options.thumbSizeMin,this.options.thumbSize||this.trackSize*this.contentRatio)),this.trackRatio=(this.contentSize-this.viewportSize)/(this.trackSize-this.thumbSize),this.hasContentToSroll=this.contentRatio<1,r.toggleClass("disable",!this.hasContentToSroll),a){case"bottom":this.contentPosition=Math.max(this.contentSize-this.viewportSize,0);break;case"relative":this.contentPosition=Math.min(Math.max(this.contentSize-this.viewportSize,0),Math.max(0,this.contentPosition));break;default:this.contentPosition=parseInt(a,10)||0}return this.thumbPosition=this.contentPosition/this.trackRatio,g(),o},f()}var c="eds_tinyscrollbar",d={axis:"y",wheel:!0,wheelSpeed:40,wheelLock:!0,touchLock:!0,trackSize:!1,thumbSize:!1,thumbSizeMin:20};a.fn[c]=function(d){return this.each(function(){a.data(this,"plugin_"+c)||a.data(this,"plugin_"+c,new b(a(this),d))})}});
;;;/*!
 * imagesLoaded PACKAGED v3.1.4
 * JavaScript is all like "You images are done yet or what?"
 * MIT License
 */

(function () { function e() { } function t(e, t) { for (var n = e.length; n--;)if (e[n].listener === t) return n; return -1 } function n(e) { return function () { return this[e].apply(this, arguments) } } var i = e.prototype, r = this, o = r.EventEmitter; i.getListeners = function (e) { var t, n, i = this._getEvents(); if ("object" == typeof e) { t = {}; for (n in i) i.hasOwnProperty(n) && e.test(n) && (t[n] = i[n]) } else t = i[e] || (i[e] = []); return t }, i.flattenListeners = function (e) { var t, n = []; for (t = 0; e.length > t; t += 1)n.push(e[t].listener); return n }, i.getListenersAsObject = function (e) { var t, n = this.getListeners(e); return n instanceof Array && (t = {}, t[e] = n), t || n }, i.addListener = function (e, n) { var i, r = this.getListenersAsObject(e), o = "object" == typeof n; for (i in r) r.hasOwnProperty(i) && -1 === t(r[i], n) && r[i].push(o ? n : { listener: n, once: !1 }); return this }, i.on = n("addListener"), i.addOnceListener = function (e, t) { return this.addListener(e, { listener: t, once: !0 }) }, i.once = n("addOnceListener"), i.defineEvent = function (e) { return this.getListeners(e), this }, i.defineEvents = function (e) { for (var t = 0; e.length > t; t += 1)this.defineEvent(e[t]); return this }, i.removeListener = function (e, n) { var i, r, o = this.getListenersAsObject(e); for (r in o) o.hasOwnProperty(r) && (i = t(o[r], n), -1 !== i && o[r].splice(i, 1)); return this }, i.off = n("removeListener"), i.addListeners = function (e, t) { return this.manipulateListeners(!1, e, t) }, i.removeListeners = function (e, t) { return this.manipulateListeners(!0, e, t) }, i.manipulateListeners = function (e, t, n) { var i, r, o = e ? this.removeListener : this.addListener, s = e ? this.removeListeners : this.addListeners; if ("object" != typeof t || t instanceof RegExp) for (i = n.length; i--;)o.call(this, t, n[i]); else for (i in t) t.hasOwnProperty(i) && (r = t[i]) && ("function" == typeof r ? o.call(this, i, r) : s.call(this, i, r)); return this }, i.removeEvent = function (e) { var t, n = typeof e, i = this._getEvents(); if ("string" === n) delete i[e]; else if ("object" === n) for (t in i) i.hasOwnProperty(t) && e.test(t) && delete i[t]; else delete this._events; return this }, i.removeAllListeners = n("removeEvent"), i.emitEvent = function (e, t) { var n, i, r, o, s = this.getListenersAsObject(e); for (r in s) if (s.hasOwnProperty(r)) for (i = s[r].length; i--;)n = s[r][i], n.once === !0 && this.removeListener(e, n.listener), o = n.listener.apply(this, t || []), o === this._getOnceReturnValue() && this.removeListener(e, n.listener); return this }, i.trigger = n("emitEvent"), i.emit = function (e) { var t = Array.prototype.slice.call(arguments, 1); return this.emitEvent(e, t) }, i.setOnceReturnValue = function (e) { return this._onceReturnValue = e, this }, i._getOnceReturnValue = function () { return this.hasOwnProperty("_onceReturnValue") ? this._onceReturnValue : !0 }, i._getEvents = function () { return this._events || (this._events = {}) }, e.noConflict = function () { return r.EventEmitter = o, e }, "function" == typeof define && define.amd ? define("eventEmitter/EventEmitter", [], function () { return e }) : "object" == typeof module && module.exports ? module.exports = e : this.EventEmitter = e }).call(this), function (e) { function t(t) { var n = e.event; return n.target = n.target || n.srcElement || t, n } var n = document.documentElement, i = function () { }; n.addEventListener ? i = function (e, t, n) { e.addEventListener(t, n, !1) } : n.attachEvent && (i = function (e, n, i) { e[n + i] = i.handleEvent ? function () { var n = t(e); i.handleEvent.call(i, n) } : function () { var n = t(e); i.call(e, n) }, e.attachEvent("on" + n, e[n + i]) }); var r = function () { }; n.removeEventListener ? r = function (e, t, n) { e.removeEventListener(t, n, !1) } : n.detachEvent && (r = function (e, t, n) { e.detachEvent("on" + t, e[t + n]); try { delete e[t + n] } catch (i) { e[t + n] = void 0 } }); var o = { bind: i, unbind: r }; "function" == typeof define && define.amd ? define("eventie/eventie", o) : e.eventie = o }(this), function (e, t) { "function" == typeof define && define.amd ? define(["eventEmitter/EventEmitter", "eventie/eventie"], function (n, i) { return t(e, n, i) }) : "object" == typeof exports ? module.exports = t(e, require("eventEmitter"), require("eventie")) : e.imagesLoaded = t(e, e.EventEmitter, e.eventie) }(this, function (e, t, n) { function i(e, t) { for (var n in t) e[n] = t[n]; return e } function r(e) { return "[object Array]" === d.call(e) } function o(e) { var t = []; if (r(e)) t = e; else if ("number" == typeof e.length) for (var n = 0, i = e.length; i > n; n++)t.push(e[n]); else t.push(e); return t } function s(e, t, n) { if (!(this instanceof s)) return new s(e, t); "string" == typeof e && (e = document.querySelectorAll(e)), this.elements = o(e), this.options = i({}, this.options), "function" == typeof t ? n = t : i(this.options, t), n && this.on("always", n), this.getImages(), a && (this.jqDeferred = new a.Deferred); var r = this; setTimeout(function () { r.check() }) } function c(e) { this.img = e } function f(e) { this.src = e, v[e] = this } var a = e.eds3_5_jq,u=e.console,h=u!==void 0,d=Object.prototype.toString;s.prototype=new t,s.prototype.options={},s.prototype.getImages=function(){this.images=[];for(var e=0,t=this.elements.length;t>e;e++){var n=this.elements[e];"IMG"===n.nodeName&&this.addImage(n);for(var i=n.querySelectorAll("img"),r=0,o=i.length;o>r;r++){var s=i[r];this.addImage(s)}}},s.prototype.addImage=function(e){var t=new c(e);this.images.push(t)},s.prototype.check=function(){function e(e,r){return t.options.debug&&h&&u.log("confirm",e,r),t.progress(e),n++,n===i&&t.complete(),!0}var t=this,n=0,i=this.images.length;if(this.hasAnyBroken=!1,!i)return this.complete(),void 0;for(var r=0;i>r;r++){var o=this.images[r];o.on("confirm",e),o.check()}},s.prototype.progress=function(e){this.hasAnyBroken=this.hasAnyBroken||!e.isLoaded;var t=this;setTimeout(function(){t.emit("progress",t,e),t.jqDeferred&&t.jqDeferred.notify&&t.jqDeferred.notify(t,e)})},s.prototype.complete=function(){var e=this.hasAnyBroken?"fail":"done";this.isComplete=!0;var t=this;setTimeout(function(){if(t.emit(e,t),t.emit("always",t),t.jqDeferred){var n=t.hasAnyBroken?"reject":"resolve";t.jqDeferred[n](t)}})},a&&(a.fn.imagesLoaded=function(e,t){var n=new s(this,e,t);return n.jqDeferred.promise(a(this))}),c.prototype=new t,c.prototype.check=function(){var e=v[this.img.src]||new f(this.img.src);if(e.isConfirmed)return this.confirm(e.isLoaded,"cached was confirmed"),void 0;if(this.img.complete&&void 0!==this.img.naturalWidth)return this.confirm(0!==this.img.naturalWidth,"naturalWidth"),void 0;var t=this;e.on("confirm",function(e,n){return t.confirm(e.isLoaded,n),!0}),e.check()},c.prototype.confirm=function(e,t){this.isLoaded=e,this.emit("confirm",this,t)};var v={};return f.prototype=new t,f.prototype.check=function(){if(!this.isChecked){var e=new Image;n.bind(e,"load",this),n.bind(e,"error",this),e.src=this.src,this.isChecked=!0}},f.prototype.handleEvent=function(e){var t="on"+e.type;this[t]&&this[t](e)},f.prototype.onload=function(e){this.confirm(!0,"onload"),this.unbindProxyEvents(e)},f.prototype.onerror=function(e){this.confirm(!1,"onerror"),this.unbindProxyEvents(e)},f.prototype.confirm=function(e,t){this.isConfirmed=!0,this.isLoaded=e,this.emit("confirm",this,t)},f.prototype.unbindProxyEvents=function(e){n.unbind(e.target,"load",this),n.unbind(e.target,"error",this)},s});
;;;(function ($, window, document) {
	'use strict';

	var pluginName = 'chameleonSlider_2_1',

		stringEndsWith = function (s, e) {
			return s.indexOf(e, s.length - e.length) !== -1;
		};

	$.fn[pluginName] = function (options) {
		var defaults = {
				content_source: '',
				container_dimensions: {
					width: 750,
					height: 400,
					w_as_ratio: false,
					h_as_ratio: false,
					height_references_width: false
				},
				autoplay: {
					enable: true,
					interval: 4000,
					pause_on_hover: true,
					autostart_video_playback: false,
					indicator: {
						display: true,
						position: {
							vertical: 'top',
							horizontal: 'left',
							h_offset: 0,
							v_offset: 0,
							h_as_ratio: false,
							v_as_ratio: false,
							v_center_point: false,
							h_center_point: false
						},
						dimensions: {
							height: 2,
							width: 750,
							h_as_ratio: false,
							w_as_ratio: false
						},
						orientation: 'horizontal',
						flip_direction: false
					}
				},
				arrows: {
					display: true,
					auto_hide: true,
					hide_speed: 250,
					prev: {
						position: {
							vertical: 'top',
							horizontal: 'left',
							h_offset: 0,
							v_offset: 183,
							h_as_ratio: false,
							v_as_ratio: false,
							v_center_point: false,
							h_center_point: false
						}
					},
					next: {
						position: {
							vertical: 'top',
							horizontal: 'right',
							h_offset: 0,
							v_offset: 183,
							h_as_ratio: false,
							v_as_ratio: false,
							v_center_point: false,
							h_center_point: false
						}
					}
				},
				autoplay_toggle: {
					display: true,
					auto_hide: true,
					hide_speed: 250,
					position: {
						vertical: 'top',
						horizontal: 'left',
						h_offset: 347,
						v_offset: 130,
						h_as_ratio: false,
						v_as_ratio: false,
						v_center_point: false,
						h_center_point: false
					}
				},
				scrollable_boxes: {
					item_info: {
						display: true,
						cutThumbWidth: false,
						cutCategoryWidth: false,
						container: {
							dimensions: {
								height: 100,
								width: 750,
								h_as_ratio: false,
								w_as_ratio: false
							},
							resize_to_content: true,
							show_on_hover: false,
							position: {
								vertical: 'top',
								horizontal: 'left',
								h_offset: 0,
								v_offset: 2,
								h_as_ratio: false,
								v_as_ratio: false,
								v_center_point: false,
								h_center_point: false
							}
						}
					},
					gallery_info: {
						display: false,
						container: {
							dimensions: {
								height: 100,
								width: 750,
								h_as_ratio: false,
								w_as_ratio: false
							},
							resize_to_content: true,
							show_on_hover: false,
							position: {
								vertical: 'top',
								horizontal: 'left',
								h_offset: 0,
								v_offset: 2,
								h_as_ratio: false,
								v_as_ratio: false,
								v_center_point: false,
								h_center_point: false
							}
						}
					}
				},
				thumbs: {
					display: true,
					auto_hide: false,
					hide_speed: 250,
					width: 100,
					height: 46,
					captions: true,
					display_item_types: false,
					pagination: {
						direction: 'horizontal',
						duration: 250,
						easing: 'swing'
					},
					tooltips: {
						enabled: false,
						title: true,
						description: false,
						position: {
							my: 'bottom center',
							at: 'top center'
						},
						classes: ''
					},
					container: {
						transparent: true,
						dimensions: {
							height: 20,
							width: 679,
							h_as_ratio: false,
							w_as_ratio: false
						},
						position: {
							vertical: 'bottom',
							horizontal: 'left',
							h_offset: 35,
							v_offset: 0,
							h_as_ratio: false,
							v_as_ratio: false,
							v_center_point: false,
							h_center_point: false
						}
					}
				},
				categories: {
					display: false,
					auto_hide: false,
					hide_speed: 250,
					width: 100,
					height: 46,
					pagination: {
						direction: 'horizontal',
						duration: 250,
						easing: 'swing'
					},
					container: {
						dimensions: {
							height: 20,
							width: 679,
							h_as_ratio: false,
							w_as_ratio: false
						},
						position: {
							vertical: 'bottom',
							horizontal: 'left',
							h_offset: 35,
							v_offset: 0,
							h_as_ratio: false,
							v_as_ratio: false,
							v_center_point: false,
							h_center_point: false
						}
					}
				},
				pagination: {
					display: true,
					pages_at_once: 7,
					direction: 'horizontal',
					position: {
						vertical: 'bottom',
						horizontal: 'right',
						h_offset: 35,
						v_offset: 58,
						h_as_ratio: false,
						v_as_ratio: false,
						v_center_point: false,
						h_center_point: false
					}
				},
				title_boxes: {
					current_item: {
						display: false,
						height: 35,
						position: {
							vertical: 'bottom',
							horizontal: 'left',
							h_offset: 0,
							v_offset: 200,
							h_as_ratio: false,
							v_as_ratio: false,
							v_center_point: false,
							h_center_point: false
						}
					},
					current_gallery: {
						display: false,
						height: 35,
						position: {
							vertical: 'top',
							horizontal: 'left',
							h_offset: 0,
							v_offset: 0,
							h_as_ratio: false,
							v_as_ratio: false,
							v_center_point: false,
							h_center_point: false
						}
					}
				},
				buttons: {
					email: {
						display: false,
						position: {
							vertical: 'top',
							horizontal: 'right',
							h_offset: 35,
							v_offset: 58,
							h_as_ratio: false,
							v_as_ratio: false,
							v_center_point: false,
							h_center_point: false
						},
						email_subject: 'Look at this link'
					},
					download: {
						display: false,
						position: {
							vertical: 'top',
							horizontal: 'left',
							h_offset: 35,
							v_offset: 58,
							h_as_ratio: false,
							v_as_ratio: false,
							v_center_point: false,
							h_center_point: false
						}
					},
					fullscreen: {
						display: false,
						position: {
							vertical: 'top',
							horizontal: 'left',
							h_offset: 35,
							v_offset: 58,
							h_as_ratio: false,
							v_as_ratio: false,
							v_center_point: false,
							h_center_point: false
						}
					},
					exit_fullscreen: {
						display: false,
						position: {
							vertical: 'bottom',
							horizontal: 'right',
							h_offset: 35,
							v_offset: 58,
							h_as_ratio: false,
							v_as_ratio: false,
							v_center_point: false,
							h_center_point: false
						}
					}
				},
				social_buttons: {
					display: false,
					direction: 'horizontal',
					load_after_effect: true,
					position: {
						vertical: 'bottom',
						horizontal: 'right',
						h_offset: 35,
						v_offset: 58,
						h_as_ratio: false,
						v_as_ratio: false,
						v_center_point: false,
						h_center_point: false
					},
					buttons: {
						facebook: {
							display: true,
							html: '<iframe src="//www.facebook.com/plugins/like.php?href={location_href_encoded}&amp;layout=button_count&amp;show_faces=true&amp;action=like&amp;font&amp;colorscheme=light&amp;height=20" scrolling="no" frameborder="0" style="border:none; overflow:hidden; height:20px; width: 100px;" allowTransparency="true"></iframe>'
						},
						twitter: {
							display: true,
							html: '<a href="//twitter.com/share" class="twitter-share-button" data-url="{location_href}" data-count="horizontal">Tweet</a><script type="text/javascript" src="//platform.twitter.com/widgets.js"></' + 'script>'
						}
					},
					hideable: false,
					container: {
						width: 100,
						height: 100
					}
				},
				main_panel: {
					display: true,
					fill_panel: false,
					stretch_small_image: false,
					top_left_align: false,
					drag_navigation: false,
					immediately_preload_all_images: false,
					dimensions: {
						width: 750,
						height: 400,
						h_as_ratio: false,
						w_as_ratio: false
					},
					position: {
						vertical: 'top',
						horizontal: 'left',
						h_offset: 0,
						v_offset: 0,
						h_as_ratio: false,
						v_as_ratio: false,
						v_center_point: false,
						h_center_point: false
					},
					trim: {
						top: 0,
						bottom: 0,
						left: 0,
						right: 0
					},
					transition: {
						duration: 800,
						effects: []
					}
				},
				lightbox_title: false,
				lightbox_description: false,
				key_browse: true,
				redirect_on_click: false,
				redirect_on_click_target: '_self',
				lightbox_on_click: false,
				module_id: 0,
				portal_id: 0,
				article_id: 0,
				filter_values: '',
				filter_types: '',
				locale: '',
				inhouse_player: 'flowplayer',
				flowplayer_src: '',
				fullscreen_provider: 'pp',
				pretty_photo_options: {},
				smb_options: {},
				smbLight_options: {},
				cycle_current_category: true,
				open_at: null,
				modify_browser_history: false,
				videoVolume: 1
			},
			option = $.extend(true, {}, defaults, options),

			location = window.history.location || window.location;

		return this.each(function () {
			var $t = $(this),
				$slider_container,

				slider_resize_interval,

				ajax = {
					trys: 0
				},
				$loading_overlay = $('<div class="loading_slider_overlay" />'),
				$loading_indicator = $('<div class="indicator" />'),
				$loading_msg = $('<p />'),

				slider_content,
				all_items_count = 0,
				selected_categories,
				current = {
					category: {},
					item: {}
				},

				previous_item_index = 0,

				item_panels = {},

				$main_panel,
				$main_panel_items_wrapper,
				$main_panel_media_link = $(),
				$lightbox_links_container,
				$lightbox_links,

				$pagination,
				$pagination_pages_container,
				$pagination_pages,

				$social_buttons,
				$social_buttons_toggle,

				$autoplay_indicator,
				$autoplay_container,
				$autoplay_toggle,

				autoplay = {
					interval: '',
					last_started: 0,
					pause_time: 0,
					start_pause_delta: 0,
					time_remaining: 0,
					pause: false,
					user_paused: false,
					fade_in: false,
					reset: false,
					transition_in_progres: false,
					video_playing: false
				},

				$navigation_prev,
				$navigation_next,

				rendering = {
					container_dimensions: {},
					thumbs: {
						page: {
							vertical_space: 0,
							horizontal_space: 0,
							width: 0,
							height: 0,
							count: 0
						},
						container: {},
						width: 0,
						height: 0,
						per_page: 0,
						per_row: 0,
						row_count: 0,
						window_width: 0,
						window_height: 0
					},
					categories: {
						page: {
							vertical_space: 0,
							horizontal_space: 0,
							width: 0,
							height: 0,
							count: 0
						},
						container: {},
						width: 0,
						height: 0,
						per_page: 0,
						per_row: 0,
						row_count: 0,
						window_width: 0,
						window_height: 0,
						render_categories: true
					},
					autoplay: {
						indicator: {}
					},
					title_boxes: {
						current_item: {},
						current_gallery: {}
					},
					scrollable_boxes: {
						item_info: {},
						gallery_info: {}
					},
					pagination: {
						pages_at_once: 0,
						page: {
							width: 0,
							height: 0
						}
					},
					main_panel: {
						dimensions: {},
						initialized: false,
						disable_clicking: false,
						disable_clicking_interval: ''
					},
					preloaded_images: {},
					preloading_item: false,
					buttons: {
						email: {},
						download: {},
						fullscreen: {},
						exit_fullscreen: {}
					},
					html5: {
						video: false
					},
					youtube_iframe_api: {
						called: false,
						loaded: false
					},
					youtube_player_object: undefined,
					mouse_entered: false,
					item_details_shown: false
				},

				get_item_src = function (item) {
					var item_src = item.src;

					if (item.sizes) {
						var i = 0,
							l = item.sizes.length;

						for (; i < l; i++) {
							var size = item.sizes[i];

							if (size.width < rendering.main_panel.dimensions.width)
								break;

							item_src = size.src;
						}
					}

					return item_src;
				},

				is_image_item = function (item) {
					if (typeof item == 'number')
						item = current.category.items[item];

					return item.type == 'image' || ((item.type == 'video' || item.type == 'audio') && option.lightbox_on_click);
				},

			slider = {
				init: function () {
					if (option.container_dimensions.w_as_ratio || option.container_dimensions.h_as_ratio) {
						$slider_container = $t.parent();

						rendering.container_dimensions = {
							width: option.container_dimensions.w_as_ratio ? Math.round($slider_container.width() * option.container_dimensions.width) : option.container_dimensions.width,
							height: 0
						};
						rendering.container_dimensions.height = option.container_dimensions.h_as_ratio
							? Math.round(
								(option.container_dimensions.height_references_width
									? rendering.container_dimensions.width
									: $slider_container.height()
								) * option.container_dimensions.height
							)
							: option.container_dimensions.height;

						$(window).bind('resize.chameleonSlider', function () {
							clearTimeout(slider_resize_interval);
							slider_resize_interval = setTimeout(function () {
								rendering.container_dimensions = {
									width: option.container_dimensions.w_as_ratio ? Math.round($slider_container.width() * option.container_dimensions.width) : option.container_dimensions.width,
									height: 0
								};
								rendering.container_dimensions.height = option.container_dimensions.h_as_ratio
									? Math.round(
										(option.container_dimensions.height_references_width
											? rendering.container_dimensions.width
											: $slider_container.height()
										) * option.container_dimensions.height
									)
									: option.container_dimensions.height;

								$t.trigger('resize_slider');
							}, 200);
						});
					} else
						rendering.container_dimensions = {
							width: option.container_dimensions.width,
							height: option.container_dimensions.height
						};

					$t
						.width(rendering.container_dimensions.width)
						.height(rendering.container_dimensions.height)
						.append($loading_overlay)
						.bind('destroy', function () {
							clearTimeout(autoplay.interval);
						});

					$loading_overlay
						.width(rendering.container_dimensions.width)
						.height(rendering.container_dimensions.height)
						.append($loading_indicator)
						.show(0);

					try {
						rendering.html5.video = !!document.createElement('video').canPlayType;
					} catch(e) {}

					if (option.modify_browser_history)
						$(window).on('popstate', function(e) {
							slider.parse_slider_url_hash(location.hash);
							slider.show_item(current.item.index, true, undefined, true);
						});

					slider.get_content_source();
				},

				get_content_source: function () {
					if (ajax.trys > 3) {
						if ($loading_msg.is(':visible')) {
							$loading_msg.html('Unable to display the items (requesting the items failed)');
						} else {
							$loading_indicator.fadeOut(250, function () {
								$loading_msg = $('<p>Unable to display the items (requesting the items failed)</p>');
								$loading_msg
									.appendTo($loading_overlay)
									.css({
										display: 'block',
										top: Math.floor((rendering.container_dimensions.height - $loading_msg.outerHeight(true)) / 2)
									});
							});
						}

						return;
					}

					ajax.trys += 1;

					$.ajax({
						dataType: 'json',
						type: 'get',
						url: option.content_source,
						timeout: 300000,
						data: 'mid=' + option.module_id + '&portal_id=' + option.portal_id + '&locale=' + option.locale + '&article_id=' + option.article_id + '&html5_player=' + (rendering.html5.video ? '1' : '0') + (option.filter_values === '' ? '' : '&filter_values=' + option.filter_values + '&filter_types=' + option.filter_types),
						success: slider.load,
						complete: slider.ajax_callback,
						cache: false
					});
				},

				ajax_callback: function (xhr, status) {
					if (status !== 'success') {
						slider.get_content_source();
					}
				},

				parse_slider_url_hash: function (hash) {
					var url_hash = hash.substring(1),
						first_slash_position = url_hash.indexOf('/'),
						categories_to_open,
						item_to_open = undefined;

					categories_to_open = url_hash.substring(first_slash_position + 1);

					first_slash_position = categories_to_open.indexOf('/');

					if (first_slash_position !== -1) {
						item_to_open = categories_to_open.substring(first_slash_position + 1);
						first_slash_position = item_to_open.indexOf('/');

						if (first_slash_position !== -1)
							item_to_open = item_to_open.substring(0, first_slash_position);

						if (!item_to_open) {
							item_to_open = undefined;
						}

						categories_to_open = categories_to_open.substring(0, categories_to_open.indexOf('/'));
					}

					selected_categories = {
						ids: categories_to_open.split('-'),
						indexes: []
					};

					selected_categories.indexes = slider.category_indexes_from_ids($.extend([], selected_categories.ids), slider_content);
					if (selected_categories.indexes.length == 0) {
						selected_categories.indexes = [0];
						selected_categories.ids = [slider_content[0].id];
					}

					current.category = slider.get_category(selected_categories.indexes);
					current.category.item_count = current.category.items.length;

					current.item = {
						id: 0,
						index: slider.item_index_from_id(item_to_open)
					};

					current.item.id = current.category.items[current.item.index].id;
				},

				load: function(data) {
					var url_hash = location.hash.substring(1),
						first_slash_position = url_hash.indexOf('/'),
						hashStart = first_slash_position == -1 ? '' : url_hash.substring(0, first_slash_position);

					if (data.content.length == 0) {
						$loading_indicator.fadeOut(250, function () {
							$loading_msg = $('<p>' + (data.user_friendly_msg ? data.user_friendly_msg : 'There are no items to display.') + '</p>');
							$loading_msg
								.appendTo($loading_overlay)
								.css({
									display: 'block',
									top: Math.floor((rendering.container_dimensions.height - $loading_msg.outerHeight(true)) / 2)
								});
						});

						return;
					}

					slider_content = data.content;

					if (option.open_at != null) {
						selected_categories = {
							ids: option.open_at.categories,
							indexes: []
						};

						selected_categories.indexes = slider.category_indexes_from_ids($.extend([], selected_categories.ids), slider_content);
						if (selected_categories.indexes.length == 0) {
							selected_categories.indexes = [0];
							selected_categories.ids = [slider_content[0].id];
						}

						current.category = slider.get_category(selected_categories.indexes);
						current.category.item_count = current.category.items.length;

						current.item = {
							id: 0,
							index: slider.item_index_from_id(option.open_at.item)
						};

						current.item.id = current.category.items[current.item.index].id;
					} else if (hashStart == 'slider_' + option.module_id || hashStart == 'gallery_' + option.module_id) {
						slider.parse_slider_url_hash('#' + url_hash);

						if (
							option.fullscreen_provider == 'smb'
							&& hashStart == 'gallery_' + option.module_id
							&& current.category.item_count > 0
						) {
							(function () {
								var smb_items = [];

								option.smb_options.openAt = 0;

								$.each(current.category.items, function (i, item) {
									if (item.id === current.item.id) {
										option.smb_options.openAt = i;
									}

									smb_items.push(item.smb_object);
								});

								$('<div />')
									.data('socialMediaBox', smb_items)
									.socialMediaBox(option.smb_options);
							})();
						}
					} else {
						selected_categories = {
							ids: [slider_content[0].id],
							indexes: [0]
						};

						current.category = slider_content[0];
						current.category.item_count = current.category.items.length;

						current.item = {
							id: undefined,
							index: slider.item_index_from_id(undefined)
						};
					}

					if ('YT' in window && 'Player' in window.YT) {
						rendering.youtube_iframe_api.called = true;
						rendering.youtube_iframe_api.loaded = true;
					}

					if (option.buttons.exit_fullscreen.display)
						slider.exit_fullscreen.init();

					if (option.autoplay.enable)
						slider.autoplay.init();

					if (option.pagination.display)
						slider.pagination.init();

					if (option.social_buttons.display)
						slider.social_buttons.init();

					if (option.buttons.email.display)
						slider.email_button.init();

					if (option.buttons.download.display)
						slider.download_button.init();

					if (option.buttons.fullscreen.display)
						slider.fullscreen_button.init();

					if (option.autoplay_toggle.display)
						slider.autoplay_toggle.init();

					if (option.arrows.display)
						slider.arrows.init();

					if (option.categories.display)
						slider.categories.init();

					if (option.thumbs.display)
						slider.thumbnails.init();

					if (option.title_boxes.current_item.display)
						slider.item_title.init();

					if (option.title_boxes.current_gallery.display)
						slider.gallery_title.init();

					if (option.scrollable_boxes.item_info.display)
						slider.item_info.init();

					if (option.scrollable_boxes.gallery_info.display)
						slider.gallery_info.init();

					if (option.main_panel.display)
						slider.main_panel.init();
					else
						slider.triggers();
				},

				show_item: function (index, force, transition, noPushState) {
					index = parseInt(index, 10);

					force = typeof force == 'undefined' ? false : true;

					if (index === current.item.index && !force)
						return;

					if (typeof slider._on_pre_item_change == 'function') {
						slider._on_pre_item_change();
						slider._on_pre_item_change = undefined;
					}

					autoplay.video_playing = false;

					if (index < 0) {
						index = current.category.item_count - 1;
					} else if (index >= current.category.item_count) {
						index = 0;
					}

					slider.autoplay.reset();

					previous_item_index = current.item.index;

					var current_item = current.category.items[index];

					current.item.index = index;
					current.item.id = current_item.id;

					slider.pagination.select(index);
					slider.thumbnails.select(index);

					rendering.item_details_shown = false;

					if (
						option.main_panel.immediately_preload_all_images ||
						(
							is_image_item(current_item) &&
							rendering.preloaded_images[current_item.src] &&
							rendering.preloaded_images[current_item.src].loaded
						)
					) {
						rendering.item_details_shown = true;

						slider.social_buttons.display(index);
						slider.item_title.select(index);
						slider.item_info.display(index);
						slider.download_button.display(index);
						slider.email_button.display(index);
					}

					if (option.modify_browser_history && !noPushState) {
						var hash_location = location.href.indexOf('#'),
							newHref;

						if (hash_location == -1)
							newHref = location.href
						else
							newHref = location.href.substring(0, hash_location);

						newHref += '#slider_' + option.module_id + '/' + selected_categories.ids.join('-') + '/' + current.item.id;

						history.pushState(null, null, newHref);
					}

					if (option.main_panel.display) {
						if (!rendering.preloading_item)
							if (typeof transition == 'undefined')
								slider.main_panel.display(index);
							else
								slider.main_panel.display(index, transition);
					} else
						$t.trigger('slider_transition_finnished');
				},

				next: function () {
					var next_cat_index,
						num_of_categories = slider_content.length;

					if (!option.cycle_current_category && current.item.index == current.category.item_count - 1) {
						next_cat_index = selected_categories.indexes.pop() + 1;

						if (selected_categories.indexes.length != 0)
							num_of_categories = slider.get_category(selected_categories.indexes).children.length;

						if (next_cat_index < num_of_categories)
							selected_categories.indexes.push(next_cat_index);
						else
							selected_categories.indexes.push(0);

						selected_categories.ids = slider.category_ids_from_indexes(selected_categories.indexes);

						current.category = slider.get_category(selected_categories.indexes);
						current.category.item_count = current.category.items.length;

						current.item = {
							id: current.category.items[0].id,
							index: 0
						};

						rendering.categories.render_categories = false;

						slider.change_category();

						return;
					}

					slider.show_item(current.item.index + 1);
				},

				prev: function () {
					var prev_cat_index,
						num_of_categories = slider_content.length;

					if (!option.cycle_current_category && current.item.index == 0) {
						prev_cat_index = selected_categories.indexes.pop() - 1;

						if (selected_categories.indexes.length != 0)
							num_of_categories = slider.get_category(selected_categories.indexes).children.length;

						if (prev_cat_index < 0)
							selected_categories.indexes.push(num_of_categories - 1);
						else
							selected_categories.indexes.push(prev_cat_index);

						selected_categories.ids = slider.category_ids_from_indexes(selected_categories.indexes);

						current.category = slider.get_category(selected_categories.indexes);
						current.category.item_count = current.category.items.length;

						current.item = {
							id: current.category.items[current.category.items.length - 1].id,
							index: current.category.items.length - 1
						};

						rendering.categories.render_categories = false;

						slider.change_category();

						return;
					}

					slider.show_item(current.item.index - 1);
				},

				pagination: {
					init: function () {
						var $page;

						$pagination = $('<div class="pagination" />');
						$pagination_pages_container = $('<ul class="pages_container" />');

						$pagination.append($pagination_pages_container);

						$pagination.css('visibility', 'hidden');

						$t.prepend($pagination);

						slider.position_element($pagination, option.pagination.position);

						$page = $('<li><span></span></li>');
						$pagination_pages_container.append($page);

						rendering.pagination.page.width = $page.outerWidth(true);
						rendering.pagination.page.height = $page.outerHeight(true);

						$pagination.css('visibility', '');

						slider.pagination.display_category();
						slider.pagination.select(current.item.index);

						$pagination_pages_container
							.delegate('li', 'click', function () {
								slider.show_item($(this).index());

								return false;
							});
					},

					display_category: function () {
						if (!option.pagination.display)
							return;

						var i = 0,
							pages_html = '';

						$pagination.css('display', 'none');

						$pagination_pages_container.html('');

						rendering.pagination.pages_at_once = current.category.item_count < option.pagination.pages_at_once ? current.category.item_count : option.pagination.pages_at_once;

						if (option.pagination.direction === 'horizontal') {
							$pagination.addClass('horizontal');

							$pagination.width(rendering.pagination.pages_at_once * rendering.pagination.page.width);
							$pagination.height(rendering.pagination.page.height);

							$pagination_pages_container.width(current.category.item_count * rendering.pagination.page.width);
							$pagination_pages_container.height(rendering.pagination.page.height);
						} else {
							$pagination.addClass('vertical');

							$pagination.width(rendering.pagination.page.width);
							$pagination.height(rendering.pagination.pages_at_once * rendering.pagination.page.height);

							$pagination_pages_container.width(rendering.pagination.page.width);
							$pagination_pages_container.height(current.category.item_count * rendering.pagination.page.height);
						}

						for (; i < current.category.item_count; i++)
							pages_html += '<li><span></span></li>';

						$pagination_pages = $(pages_html);
						$pagination_pages_container.append($pagination_pages);

						$pagination.css('display', '');
					},

					select: function (index) {
						if (!option.pagination.display)
							return;

						var offset_pages = Math.floor(rendering.pagination.pages_at_once / 2),
							align_to_page = index - offset_pages,
							to_animate = {};

						if (align_to_page < 0) {
							align_to_page = 0;
						} else if (index >= current.category.item_count - offset_pages) {
							align_to_page = current.category.item_count - rendering.pagination.pages_at_once;
						}

						if (option.pagination.direction == 'horizontal') {
							to_animate = {
								left: - (align_to_page * rendering.pagination.page.width)
							};
						} else {
							to_animate = {
								top: - (align_to_page * rendering.pagination.page.height)
							};
						}

						$pagination_pages_container.stop().animate(to_animate, 250);

						$pagination_pages.removeClass('current');
						$pagination_pages.eq(index).addClass('current');
					}
				},

				social_buttons: {
					init: function () {
						$social_buttons = $('<div class="social_buttons ' + option.social_buttons.direction + '" />');

						if (option.social_buttons.hideable) {
							$social_buttons_toggle = $('<div class="social_buttons_toggle ' + option.social_buttons.direction + '" />');
							$t.prepend($social_buttons_toggle);
							slider.position_element($social_buttons_toggle, option.social_buttons.position);

							$social_buttons
								.fadeTo(200, 0, function () {
									$social_buttons.hide();
								})
								.data('visible', false);
							$t.prepend($social_buttons);
							slider.position_element($social_buttons, $.extend({}, option.social_buttons.position, {h_offset: option.social_buttons.position.h_offset + $social_buttons_toggle.outerWidth(true) + 5}));

							$social_buttons_toggle.click(function () {
								if ($social_buttons.data('visible')) {
									$social_buttons
										.data('visible', false)
										.stop()
										.fadeTo(200, 0, function () {
											$social_buttons
												.empty()
												.hide();
										});

									$social_buttons_toggle.removeClass('active');
								} else {
									$social_buttons
										.data('visible', true)
										.stop()
										.fadeTo(200, 1);

									slider.social_buttons.display(current.item.index);

									$social_buttons_toggle.addClass('active');
								}
							});
						} else {
							$t.prepend($social_buttons);
							slider.position_element($social_buttons, option.social_buttons.position);
						}

						slider.social_buttons.display(current.item.index);
					},

					display: function (index) {
						if (!option.social_buttons.display || (option.social_buttons.hideable && !$social_buttons.data('visible')))
							return;

						var button_html = '',
							social_button_href = '';

						$social_buttons.html('');

						if (typeof current.category.items[index].social_button_url == 'string') {
							social_button_href = current.category.items[index].social_button_url;
						} else {
							if (location.href.indexOf('#') == -1) {
								social_button_href = location.href;
							} else {
								social_button_href = location.href.substring(0, location.href.indexOf('#'));
							}

							social_button_href = slider.set_url_param(slider.set_url_param(social_button_href, 'edgpid', current.category.items[index].id), 'edgmid', option.module_id) + '#slider_' + option.module_id + '/' + selected_categories.ids.join('-') + '/' + current.category.items[index].id + '/';
						}

						var button;

						for (button in option.social_buttons.buttons) {
							if (option.social_buttons.buttons[button].display) {
								button_html += '<div class="social_button">';

								button_html += option.social_buttons.buttons[button].html
									.replace(/{location_href}/g, social_button_href)
									.replace(/{location_href_encoded}/g, encodeURIComponent(social_button_href));

								button_html += '</div>';
							}
						}

						if (autoplay.transition_in_progres && option.social_buttons.load_after_effect) {
							$t.unbind('slider_transition_finnished.social_buttons');

							$t.bind('slider_transition_finnished.social_buttons', function () {
								$social_buttons
									.html('')
									.append(button_html);
							});
						} else {
							$social_buttons.append(button_html);
						}
					}
				},

				_button: {
					init: function (params) {
						rendering.buttons[params.type] = $('<a class="standalone_button' + (params.custom_class ? ' ' + params.custom_class : '') + '" href="#">' + params.text + '</a>');

						$t.prepend(rendering.buttons[params.type]);
						slider.position_element(rendering.buttons[params.type], option.buttons[params.type].position);
					},

					display: function (params) {
						params.target = typeof params.target == 'string' ? params.target : '_self'

						rendering.buttons[params.type].attr({
							href: params.href,
							target: params.target
						});
					}
				},

				email_button: {
					init: function () {
						slider._button.init({
							type: 'email',
							custom_class: 'email',
							text: 'Email this'
						});

						slider.email_button.display(current.item.index);
					},

					display: function (index) {
						var hash_location = location.href.indexOf('#'),
							href;

						if (!option.buttons.email.display)
							return;

						if (hash_location == -1)
							href = location.href
						else
							href = location.href.substring(0, hash_location);

						href += '#slider_' + option.module_id + '/' + selected_categories.ids.join('-') + '/' + current.category.items[current.item.index].id;

						slider._button.display({
							type: 'email',
							href: 'mailto:?subject=' + escape(option.buttons.email.email_subject) + '&body=' + encodeURIComponent(href)
						});
					}
				},

				download_button: {
					init: function () {
						slider._button.init({
							type: 'download',
							custom_class: 'download',
							text: 'Download'
						});

						slider.download_button.display(current.item.index);
					},

					display: function (index) {
						var url = current.category.items[index].download_url;

						if (!option.buttons.download.display)
							return;

						url = !url ? '#' : url;

						slider._button.display({
							type: 'download',
							href: url,
							target: '_blank'
						});

						if (url == '#')
							rendering.buttons.download.stop().fadeTo(200, 0);
						else
							rendering.buttons.download.stop().fadeTo(200, 1);
					}
				},

				fullscreen_button: {
					init: function () {
						slider._button.init({
							type: 'fullscreen',
							custom_class: 'fullscreen',
							text: 'Fullscreen'
						});

						rendering.buttons.fullscreen.click(function () {
							$(this)[pluginName + '_fullscreen'](option.fullscreen_options);

							return false;
						});
					}
				},

				exit_fullscreen: {
					init: function () {
						slider._button.init({
							type: 'exit_fullscreen',
							custom_class: 'exit_fullscreen',
							text: 'Exit fullscreen'
						});
					}
				},

				main_panel: {
					init: function () {
						var touch_events_present,
							mousedown = 'mousedown',
							mousemove = 'mousemove',
							mouseup = 'mouseup';

						$main_panel = $('<div class="main_panel" />');

						slider.main_panel.size();

						$main_panel_items_wrapper = $('<div class="items_wrapper" />');

						$main_panel.append($main_panel_items_wrapper);

						$t.prepend($main_panel);

						if (option.redirect_on_click || option.lightbox_on_click) {
							$main_panel_media_link = $('<a href="#" class="media_link" />');

							if (option.redirect_on_click)
								$main_panel_media_link.attr('target', option.redirect_on_click_target);

							$main_panel.append($main_panel_media_link);
						}

						$main_panel.append('<div class="preloading_item" />');

						if (!option.redirect_on_click && option.lightbox_on_click) {
							$lightbox_links_container = $('<div class="lightbox_links_container" style="display: none;"></div>');
							$main_panel_items_wrapper.append($lightbox_links_container);
						}

						$t.bind('slider_transition_finnished.main_panel', function () {
							autoplay.transition_in_progres = false;
						});

						slider.main_panel.display_category(true);

						if (!rendering.preloading_item) {
							slider.main_panel.display(current.item.index, '');
							slider.triggers();
						}

						if (option.main_panel.drag_navigation) {
							touch_events_present = 'ontouchstart' in window;

							if (touch_events_present) {
								mousedown = 'touchstart';
								mousemove = 'touchmove';
								mouseup = 'touchend';
							}

							$main_panel
								.delegate('a', 'click', function (e) {
									if (rendering.main_panel.disable_clicking)
										e.preventDefault();
								})
								.bind(mousedown + '.chameleon_' + option.module_id, function (e) {
									if (touch_events_present)
										if (e.originalEvent.touches && e.originalEvent.touches.length)
											e = e.originalEvent.touches[0];
										else if (e.originalEvent.changedTouches && e.originalEvent.changedTouches.length)
											e = e.originalEvent.changedTouches[0];

									$main_panel.data('dragging', {
										start_position: {
											left: e.pageX,
											top: e.pageY
										}
									});

									e.preventDefault();
								});

							$(document)
								.bind(mousemove + '.chameleon_' + option.module_id, function (e) {
									var position_delta,
										start_position;

									if (typeof $main_panel.data('dragging') != 'object')
										return;

									start_position = $main_panel.data('dragging').start_position;

									rendering.main_panel.disable_clicking = true;

									if (touch_events_present)
										if (e.originalEvent.touches && e.originalEvent.touches.length)
											e = e.originalEvent.touches[0];
										else if (e.originalEvent.changedTouches && e.originalEvent.changedTouches.length)
											e = e.originalEvent.changedTouches[0];

									if (Math.abs((start_position.top - e.pageY)/(e.pageX - start_position.left)) >= 1)
										return;

									position_delta = start_position.left - e.pageX;

									if (Math.abs(position_delta) < 50)
										return false;

									$main_panel.data('dragging', false);

									if (position_delta < 0)
										slider.prev();
									else
										slider.next();
								})
								.bind(mouseup + '.chameleon_' + option.module_id, function (e) {
									$main_panel.data('dragging', false);

									rendering.main_panel.disable_clicking_interval = setTimeout(function () {
										rendering.main_panel.disable_clicking = false;
									}, 10);
								});
						}

						rendering.main_panel.initialized = true;
					},

					size: function () {
						if (!option.main_panel.display)
							return;

						rendering.main_panel.dimensions = slider.get_dimensions(option.main_panel.dimensions);

						rendering.main_panel.dimensions.height -= option.main_panel.trim.top + option.main_panel.trim.bottom;
						rendering.main_panel.dimensions.width -= option.main_panel.trim.left + option.main_panel.trim.right;

						slider.position_element($main_panel, option.main_panel.position);

						$main_panel
							.width(rendering.main_panel.dimensions.width)
							.height(rendering.main_panel.dimensions.height);
					},

					display_category: function (first_run) {
						var lightbox_links_html = '',
							i = 0,
							item,
							current_item = current.category.items[current.item.index],
							smb_items = [];

						if (!option.main_panel.display)
							return;

						if (is_image_item(current_item)) {
							rendering.preloading_item = true;

							if (first_run) {
								$('<img />')
									.load(function () {
										rendering.preloading_item = false;

										slider.main_panel.display(current.item.index, '');
										slider.triggers();
									})
									.error(function () {
										rendering.preloading_item = false;

										slider.triggers();
									})
									.attr('src', current_item.src);
							} else {
								$main_panel.addClass('loading_category');
								var loadingCallback = function () {
									rendering.preloading_item = false;

									slider.main_panel.display(current.item.index, '');
									$main_panel.removeClass('loading_category');
								};

								$('<img />')
									.load(loadingCallback)
									.error(loadingCallback)
									.attr('src', current_item.src);
							}
						}

						for (; i < current.category.item_count; i++) {
							item = current.category.items[i];

							if (option.main_panel.immediately_preload_all_images) {
								if (is_image_item(item) && !rendering.preloaded_images[item.src]) {
									rendering.preloaded_images[item.src] = {
										loading: true,
										loaded: false
									};

									$('<img />')
										.load({src: item.src}, function (e) {
											rendering.preloaded_images[e.data.src] = {
												loading: false,
												loaded: true,
												width: this.width,
												height: this.height
											};
										})
										.attr('src', item.src);
								}
							}

							if (!option.redirect_on_click && option.lightbox_on_click) {
								var item_href,
									item_download,
									item_image;

								if (item.type == 'image' || item.type == 'video' || item.type == 'audio') {
									item_href = item.lightbox_url;
									item_download = item.download_url ? item.download_url : '';
									item_image = item.src;
								} else {
									item_href = '';
									item_download = '';
									item_image = '';
								}

								if (option.fullscreen_provider == 'pp') {
									if (item_href)
										lightbox_links_html += '<a href="' + item_href +
											'" rel="prettyPhoto_M' + option.module_id +
											'" edgmid="' + option.module_id +
											'" edgpid="' + item.id +
											'" downhref="' + item_download +
											(option.lightbox_description && item.info ? '" pptitle="' + item.info.replace('"', '&quot;') : '') +
											'"><img src="' + item_image + '" alt="' +
											(option.lightbox_title && item.title ? item.title : '') + '" /></a>';
								} else if (option.fullscreen_provider == 'smb') {
									if ($.isPlainObject(item.smb_object) && !$.isEmptyObject(item.smb_object))
										smb_items.push(item.smb_object);
								} else if (option.fullscreen_provider == 'smbLight') {
									if ($.isPlainObject(item.smbLight_object) && !$.isEmptyObject(item.smbLight_object))
										smb_items.push(item.smbLight_object);
								}
							}
						}

						if (!option.redirect_on_click && option.lightbox_on_click) {
							if (option.fullscreen_provider == 'pp') {
								$lightbox_links_container.html(lightbox_links_html);
								$lightbox_links = $lightbox_links_container.find('> a');

								$lightbox_links.prettyPhoto(option.pretty_photo_options);
							} else if (option.fullscreen_provider == 'smb') {
								$lightbox_links_container.data('socialMediaBox', smb_items);
							} else if (option.fullscreen_provider == 'smbLight') {
								$lightbox_links_container.data('smbLightItems', smb_items);
							}
						}
					},

					display: function (item_index) {
						var transition_effect = '',
							effect_object = '',
							random_effect_index,
							item = current.category.items[item_index];

						if (!option.main_panel.display)
							return;

						autoplay.transition_in_progres = true;

						$main_panel_media_link.unbind('click');

						if (arguments.length == 2) {
							effect_object = transition_effect = arguments[1];
						} else if (option.main_panel.transition.effects.length == 1) {
							effect_object = transition_effect = option.main_panel.transition.effects[0];
						} else if (option.main_panel.transition.effects.length > 1) {
							random_effect_index = Math.floor(Math.random() * option.main_panel.transition.effects.length);

							effect_object = transition_effect = option.main_panel.transition.effects[random_effect_index];
						}

						if (item.type == 'image') {
							$main_panel_media_link.css('display', 'block');

							if (option.redirect_on_click)
								$main_panel_media_link.attr('href', (typeof item.on_click_url == 'string' && item.on_click_url ? item.on_click_url : '#'));
						} else if (item.type == 'video' || item.type == 'audio') {
							transition_effect = '';
							effect_object = '';

							if (option.redirect_on_click || (typeof item.html != 'undefined' && item.html != '')) {
								$main_panel_media_link.css('display', 'none');
							} else {
								$main_panel_media_link.css('display', 'block');
							}
						} else if (item.type == 'html') {
							effect_object = '';

							if (transition_effect != 'fade')
								transition_effect = 'show';
						}

						if (!option.redirect_on_click && option.lightbox_on_click) {
							$main_panel_media_link
								.attr('href', '#')
								.click(function () {
									var smbLightItems;

									if (rendering.main_panel.disable_clicking)
										return false;

									if (option.fullscreen_provider == 'pp')
										$lightbox_links.filter('a[edgpid="' + item.id + '"]').trigger('click');
									else if (option.fullscreen_provider == 'smb') {
										option.smb_options.openAt = 0;
										$.each($lightbox_links_container.data('socialMediaBox'), function (i, smb_item) {
											if (smb_item.id === item.id) {
												option.smb_options.openAt = i;
												return false;
											}
										});
										$lightbox_links_container.socialMediaBox(option.smb_options);
									} else if (option.fullscreen_provider == 'smbLight') {
										smbLightItems = $lightbox_links_container.data('smbLightItems');

										option.smbLight_options.openAt = 0;
										$.each(smbLightItems, function (i, smb_item) {
											if (smb_item.id === item.id) {
												option.smbLight_options.openAt = i;
												return false;
											}
										});

										new SmbLight_1(smbLightItems, option.smbLight_options);
									}

									return false;
								});
						}

						if (typeof effect_object == 'object')
							transition_effect = effect_object.type;
						else if (transition_effect == '')
							transition_effect = 'show';

						if (rendering.youtube_player_object != undefined) {
							rendering.youtube_player_object.getIframe().src = '';
							rendering.youtube_player_object.stopVideo();
							rendering.youtube_player_object = undefined;
						}

						var _display = function (item_src) {
							if (!option.main_panel.immediately_preload_all_images && !rendering.item_details_shown) {
								slider.social_buttons.display(current.item.index);
								slider.item_title.select(current.item.index);
								slider.item_info.display(current.item.index);
								slider.download_button.display(current.item.index);
								slider.email_button.display(current.item.index);
							}

							slider.main_panel._transitions[transition_effect]({
								item_index: item_index,
								effect_settings: effect_object,
								item_src: (item_src ? item_src : item.src)
							});

							if (option.main_panel.fill_panel && is_image_item(item))
								slider.main_panel._fit_image($main_panel_items_wrapper.find('> .item_container').filter(':last').find('> img'));

							if (option.main_panel.immediately_preload_all_images)
								return;

							var nextItem = current.category.items[current.item.index + 1];

							if (!nextItem || !is_image_item(nextItem))
								return;

							var nextItemSrc = get_item_src(nextItem);

							if (rendering.preloaded_images[nextItemSrc])
								return;

							rendering.preloaded_images[nextItemSrc] = {
								loading: true,
								loaded: false
							};

							var current_category_id = current.category.id,
								current_item_index = current.item.index + 1;

							$('<img />')
								.load(function (e) {
									rendering.preloaded_images[nextItemSrc] = {
										loading: false,
										loaded: true,
										width: this.width,
										height: this.height
									};

									if (current_category_id != current.category.id || current_item_index != current.item.index)
										return;

									_display(nextItemSrc);

									slider.main_panel.remove_loading_effect('loading_item');
								})
								.attr('src', nextItemSrc);
						};

						if (is_image_item(item)) {
							if (option.main_panel.immediately_preload_all_images) {
								_display();
							} else {
								var item_src = get_item_src(item);

								if (rendering.preloaded_images[item_src]) {
									if (rendering.preloaded_images[item_src].loaded) {
										_display(item_src);
										slider.main_panel.remove_loading_effect('loading_item');
									}
								} else {
									slider.main_panel.show_loading_effect('loading_item');

									rendering.preloaded_images[item_src] = {
										loading: true,
										loaded: false
									};

									var current_category_id = current.category.id,
										current_item_index = current.item.index;

									$('<img />')
										.load(function (e) {
											rendering.preloaded_images[item_src] = {
												loading: false,
												loaded: true,
												width: this.width,
												height: this.height
											};

											if (current_category_id != current.category.id || current_item_index != current.item.index)
												return;

											_display(item_src);

											slider.main_panel.remove_loading_effect('loading_item');
										})
										.attr('src', item_src);
								}
							}
						} else {
							_display();
						}
					},

					show_loading_effect: function (element_class) {
						clearTimeout($main_panel.data('loading_effect_timeout'));
						$main_panel.addClass(element_class + ' loading_effect show_preload');
					},

					remove_loading_effect: function (element_class) {
						$main_panel.removeClass('show_preload');
						$main_panel.data(
							'loading_effect_timeout',
							setTimeout(
								function () {
									$main_panel.removeClass(element_class + ' loading_effect');
								},
								400
							)
						);
					},

					_fit_image: function ($img) {
						var src = $img.attr('src'),
							img_preload = rendering.preloaded_images[src],
							fit_image = function ($img, img_preload) {
								var mpw = rendering.main_panel.dimensions.width,
									mph = rendering.main_panel.dimensions.height,
									resize_ratio,
									image_height,
									image_width;

								if (img_preload.width == mpw && img_preload.height == mph)
									return;

								$img.css({
									position: 'relative'
								});

								if (img_preload.width > mpw || img_preload.height > mph || option.main_panel.stretch_small_image) {
									$img.css({
										width: '100%',
										height: 'auto'
									});

									resize_ratio = mpw / img_preload.width;
									image_height = Math.floor(img_preload.height * resize_ratio);

									if (image_height < mph) {
										resize_ratio = mph / img_preload.height;
										image_width = Math.floor(img_preload.width * resize_ratio);

										$img.css({
											height: '100%',
											width: 'auto'
										});

										if (!option.main_panel.top_left_align)
											$img.css({
												left: -Math.floor((image_width - mpw) / 2)
											});
									} else if (image_height > mph && !option.main_panel.top_left_align)
										$img.css({
											top: -Math.floor((image_height - mph) / 2)
										});
								} else {
									if (!option.main_panel.top_left_align) {
										if (img_preload.width < mpw)
											$img.css({
												left: Math.floor((mpw - img_preload.width) / 2)
											});

										if (img_preload.height < mph)
											$img.css({
												top: Math.floor((mph - img_preload.height) / 2)
											});
									}
								}
							};

						if (img_preload && img_preload.loaded) {
							fit_image($img, img_preload);
						} else {
							$('<img />')
								.load({'src': src, '$img': $img}, function (e) {
									rendering.preloaded_images[e.data.src] = {
										loading: false,
										loaded: true,
										width: this.width,
										height: this.height
									};

									fit_image(e.data.$img, rendering.preloaded_images[e.data.src]);
								})
								.attr('src', src);
						}
					},

					_transitions: {
						show: function (args) {
							var next_item_html = '<div class="item_container new_item">',
								current_item = current.category.items[args.item_index],
								$next_item,
								$last_item = $main_panel_items_wrapper.find('> .item_container').eq(0),
								item_html = typeof current_item.html == 'undefined' || current_item.html == '' ? '' : current_item.html,
								video_src,
								video_provider = '',
								video_id,
								video_container_id,
								flash_autoplay_manipulation = false,
								image_alt = '';

							if ((current_item.type == 'html' || current_item.type == 'video' || current_item.type == 'audio') && item_html) {
								video_src = typeof current_item.video_src == 'undefined' || current_item.video_src == '' ? '' : current_item.video_src;

								if (video_src == '') {
									if (option.autoplay.enable) {
										video_provider = slider._video.get_provider(item_html);
										video_id = slider._video.get_video_id(video_provider, item_html);
									}
								} else {
									video_provider = option.inhouse_player;
									video_id = video_src;
								}

								if (video_provider === '') {
									next_item_html += item_html;
								} else {
									flash_autoplay_manipulation = true;
									video_container_id = 'chameleon_video_container_' + option.module_id + '_' + selected_categories.indexes.join('-') + '_' + current.item.index + '_' + Math.round(Math.random() * 100000);
									next_item_html += '<div id="' + video_container_id + '"></div>';
								}
							} else {
								image_alt = typeof current_item.thumb == 'object' && current_item.thumb.caption ? current_item.thumb.caption : '';
								next_item_html += '<img alt="' + image_alt + '" src="' + args.item_src + '" />';
							}

							next_item_html += '</div>';

							$next_item = $(next_item_html);

							$main_panel_items_wrapper.find('> .item_container.new_item').removeClass('new_item');

							$next_item
								.css({
									width: rendering.main_panel.dimensions.width,
									height: rendering.main_panel.dimensions.height
								})
								.appendTo($main_panel_items_wrapper);

							if (flash_autoplay_manipulation)
								slider._video.player_setup({
									container: video_container_id,
									provider: video_provider,
									id: video_id,
									dimensions: rendering.main_panel.dimensions
								});

							if (!$last_item.hasClass('new_item'))
								$last_item.remove();

							if (!flash_autoplay_manipulation)
								$t.trigger('slider_transition_finnished');
						},

						fade: function (args) {
							var current_item = current.category.items[args.item_index],
								image_alt = typeof current_item.thumb == 'object' && current_item.thumb.caption ? current_item.thumb.caption : '',
								item_html = typeof current_item.html == 'undefined' || current_item.html == '' ? '' : current_item.html,
								$next_item;

							if (current_item.type == 'image') {
								$next_item = $('<div class="item_container new_item"><img alt="' + image_alt + '" src="' + args.item_src + '" /></div>');
							} else if (item_html) {
								$next_item = $('<div class="item_container new_item">' + item_html + '</div>');
							}

							$main_panel_items_wrapper.find('> .item_container.new_item').removeClass('new_item');

							$next_item
								.css({
									width: rendering.main_panel.dimensions.width,
									height: rendering.main_panel.dimensions.height,
									display: 'none'
								})
								.appendTo($main_panel_items_wrapper)
								.fadeIn(option.main_panel.transition.duration, function () {
									var $last_item = $main_panel_items_wrapper.find('> .item_container').eq(0);

									if (!$last_item.hasClass('new_item')) {
										$last_item.remove();
									}

									$t.trigger('slider_transition_finnished');
								});
						},

						slide: function (args) {
							var current_item = current.category.items[args.item_index],
								image_alt = typeof current_item.thumb == 'object' && current_item.thumb.caption ? current_item.thumb.caption : '',
								$next_item = $('<div class="item_container new_item"><img alt="' + image_alt + '" src="' + args.item_src + '" /></div>'),
								$prev_item = $main_panel_items_wrapper.find('> .item_container').filter(':last'),
								slide_direction = 'left',
								slide_ended = function () {
									var $last_item = $main_panel_items_wrapper.find('> .item_container').eq(0);

									if (!$last_item.hasClass('new_item')) {
										$last_item.remove();
									}

									$t.trigger('slider_transition_finnished');
								};

							if (args.effect_settings.force_horizontal) {
								if (previous_item_index < args.item_index)
									slide_direction = 'left';
								else
									slide_direction = 'right';
							} else if (args.effect_settings.force_vertical) {
								if (previous_item_index < args.item_index)
									slide_direction = 'up';
								else
									slide_direction = 'down';
							} else {
								if (args.effect_settings.directions.length == 1) {
									slide_direction = args.effect_settings.directions[0];
								} else if (args.effect_settings.directions.length > 1) {
									slide_direction = args.effect_settings.directions[Math.floor(Math.random() * args.effect_settings.directions.length)];
								}
							}

							$main_panel_items_wrapper.find('> .item_container.new_item').removeClass('new_item');

							$next_item
								.css({
									width: rendering.main_panel.dimensions.width,
									height: rendering.main_panel.dimensions.height
								});

							switch (slide_direction) {
							case 'down':
								$next_item
									.css('top', - (rendering.main_panel.dimensions.height))
									.appendTo($main_panel_items_wrapper)
									.animate({top: 0}, option.main_panel.transition.duration, 'swing', slide_ended);

								$prev_item
									.animate({top: rendering.main_panel.dimensions.height}, option.main_panel.transition.duration, 'swing');
								break;

							case 'up':
								$next_item
									.css('top', rendering.main_panel.dimensions.height)
									.appendTo($main_panel_items_wrapper)
									.animate({top: 0}, option.main_panel.transition.duration, 'swing', slide_ended);

								$prev_item
									.animate({top: - (rendering.main_panel.dimensions.height)}, option.main_panel.transition.duration, 'swing');
								break;

							case 'right':
								$next_item
									.css('left', - (rendering.main_panel.dimensions.width))
									.appendTo($main_panel_items_wrapper)
									.animate({left: 0}, option.main_panel.transition.duration, 'swing', slide_ended);

								$prev_item
									.animate({left: rendering.main_panel.dimensions.width}, option.main_panel.transition.duration, 'swing');
								break;

							default:
								$next_item
									.css('left', rendering.main_panel.dimensions.width)
									.appendTo($main_panel_items_wrapper)
									.animate({left: 0}, option.main_panel.transition.duration, 'swing', slide_ended);

								$prev_item
									.animate({left: - (rendering.main_panel.dimensions.width)}, option.main_panel.transition.duration, 'swing');
							}
						},

						stripes: function (args) {
							var stripe_width = 0,
								stripe_height = 0,
								last_stripe_width = 0,
								last_stripe_height = 0,
								strip_top = 0,
								strip_left = 0,
								strip_background_top = 0,
								strip_background_left = 0,
								$stripe,

								image_top_offset = 0,
								image_left_offset = 0,

								item_src = args.item_src,

								effect_settings = $.extend(true, {
									orientation: 'vertical',
									num_of_stripes: 12,
									direction: 0, // 0 = bottom/right, 1 = top/left, 2 = alternating
									start_at: 0, // 0 = top/left, 1 = bottom/right, 2 = center, 3 = outer
									randomize: {
										orientation: false,
										direction: false,
										start_at: false
									}
								}, args.effect_settings),

								fx_duration = Math.floor(option.main_panel.transition.duration / effect_settings.num_of_stripes),

								$next_item = $('<div class="item_container new_item"></div>'),
								slide_ended = function () {
									var $last_item = $main_panel_items_wrapper.find('> .item_container').eq(0);

									if (!$last_item.hasClass('new_item')) {
										$last_item.remove();
									}

									$t.trigger('slider_transition_finnished');
								},

								create_stripe = function ($stripe, i) {
									var w = stripe_width,
										h = stripe_height,
										start_animation = function () {
											var props;

											if (effect_settings.orientation == 'horizontal') {
												props = {left: 0, opacity: 1};
											} else {
												props = {top: 0, opacity: 1};
											}

											$stripe.animate(props, {
												duration: option.main_panel.transition.duration,
												easing: 'swing',
												complete: function () {
													if (effect_settings.start_at == 0 || effect_settings.start_at == 2) {
														if (i + 1 == effect_settings.num_of_stripes) {
															slide_ended();
														}
													} else if (effect_settings.start_at == 1) {
														if (i == 0) {
															slide_ended();
														}
													} else {
														if (i == Math.floor(effect_settings.num_of_stripes / 2)) {
															slide_ended();
														}
													}
												}
											});
										};

									if (effect_settings.orientation == 'horizontal') {
										strip_top = i * stripe_height;

										if (effect_settings.direction === 0) {
											strip_left = - (stripe_width);
										} else if (effect_settings.direction === 1) {
											strip_left = stripe_width;
										} else {
											if (i % 2 == 0) {
												strip_left = - (stripe_width);
											} else {
												strip_left = stripe_width;
											}
										}

										strip_background_top = image_top_offset - strip_top;
										strip_background_left = image_left_offset;
									} else {
										strip_left = i * stripe_width;

										if (effect_settings.direction === 0) {
											strip_top = - (stripe_height);
										} else if (effect_settings.direction === 1) {
											strip_top = stripe_height;
										} else {
											if (i % 2 == 0) {
												strip_top = - (stripe_height);
											} else {
												strip_top = stripe_height;
											}
										}

										strip_background_top = image_top_offset;
										strip_background_left = image_left_offset - strip_left;
									}

									if (i + 1 == effect_settings.num_of_stripes) {
										w = last_stripe_width;
										h = last_stripe_height;
									}

									$stripe = $('<div class="fancy_effect_element" />');

									$stripe.css({
											width: w,
											height: h,
											top: strip_top,
											left: strip_left,
											opacity: 0,
											background: 'url(\'' + item_src + '\') no-repeat '+strip_background_left+'px '+strip_background_top+'px ' + $t.css('background-color')
										})
										.appendTo($next_item);

									if (effect_settings.start_at === 0) {
										setTimeout(start_animation, (i * fx_duration + 1));
									} else if (effect_settings.start_at == 1) {
										setTimeout(start_animation, ((effect_settings.num_of_stripes - 1 - i) * fx_duration + 1));
									} else if (effect_settings.start_at == 2 || effect_settings.start_at == 3) {
										var multiplyer = 0,
											middle;

										if (effect_settings.num_of_stripes % 2 == 0) {
											middle = effect_settings.num_of_stripes / 2;
											if (i < middle) {
												if (effect_settings.start_at == 3) {
													multiplyer = i;
												} else {
													multiplyer = Math.abs(i - middle + 1);
												}
											} else {
												multiplyer = i - middle;
												if (effect_settings.start_at == 3) {
													multiplyer = middle - 1 - multiplyer;
												}
											}
										} else {
											middle = Math.floor(effect_settings.num_of_stripes / 2);
											if (i < middle) {
												multiplyer = middle - i;
											} else {
												multiplyer = i - middle;
											}
											if (effect_settings.start_at == 3) {
												multiplyer = middle - multiplyer;
											}
										}

										setTimeout(start_animation, (multiplyer * fx_duration + 1));
									}
								};

							if (effect_settings.randomize.orientation) {
								if (Math.floor(Math.random() * 2) == 0) {
									effect_settings.orientation = 'horizontal';
								} else {
									effect_settings.orientation = 'vertical';
								}
							}

							if (effect_settings.randomize.direction) {
								effect_settings.direction = Math.floor(Math.random() * 3);
							}

							if (effect_settings.randomize.start_at) {
								effect_settings.start_at = Math.floor(Math.random() * 4);
							}

							$main_panel_items_wrapper.find('> .item_container.new_item').removeClass('new_item');

							$next_item
								.css({
									width: rendering.main_panel.dimensions.width,
									height: rendering.main_panel.dimensions.height
								})
								.appendTo($main_panel_items_wrapper);

							if (effect_settings.orientation == 'horizontal') {
								last_stripe_width = stripe_width = rendering.main_panel.dimensions.width;

								stripe_height = Math.ceil(rendering.main_panel.dimensions.height / effect_settings.num_of_stripes);
								last_stripe_height = stripe_height * effect_settings.num_of_stripes - rendering.main_panel.dimensions.height;
								if (last_stripe_height == 0) {
									last_stripe_height = stripe_height;
								} else {
									last_stripe_height = stripe_height - last_stripe_height;
								}
							} else {
								last_stripe_height = stripe_height = rendering.main_panel.dimensions.height;

								stripe_width = Math.ceil(rendering.main_panel.dimensions.width / effect_settings.num_of_stripes);
								last_stripe_width = stripe_width * effect_settings.num_of_stripes - rendering.main_panel.dimensions.width;
								if (last_stripe_width == 0) {
									last_stripe_width = stripe_width;
								} else {
									last_stripe_width = stripe_width - last_stripe_width;
								}
							}

							(function (img) {
								var mpw = rendering.main_panel.dimensions.width,
									mph = rendering.main_panel.dimensions.height;

								if (img.width == mpw && img.height == mph)
									return;

								if (img.width < mpw)
									image_left_offset = Math.floor((mpw - img.width) / 2);
								else if (img.width > mpw)
									image_left_offset = - Math.floor((img.width - mpw) / 2);

								if (img.height < mph)
									image_top_offset = Math.floor((mph - img.height) / 2);
								else if (img.height > mph)
									image_top_offset = - Math.floor((img.height - mph) / 2);
							})(rendering.preloaded_images[item_src]);

							for (var i = 0; i < effect_settings.num_of_stripes; i++) {
								create_stripe($stripe, i);
							}
						}
					}
				},

				_on_pre_item_change: undefined,

				_video: {
					get_provider: function (embed_code) {
						if (embed_code.substring(0, 7) == '<iframe')
							if (embed_code.indexOf('youtube.com/embed/', 7) !== -1)
								return 'youtube';
							else if (embed_code.indexOf('player.vimeo.com/video/', 7) !== -1)
								return 'vimeo';

						return '';
					},

					get_video_id: function (provider, embed_code) {
						var url,
							url_has_params;

						switch (provider) {
						case 'youtube':
						case 'vimeo':
							url = $('<div>' + embed_code + '</div>').find('iframe:first').attr('src');
							url_has_params = url.indexOf('?');

							if (url_has_params !== -1)
								url = url.substring(0, url_has_params);

							if (url[url.length - 1] == '/')
								url = url.substring(0, url.length - 1);

							return url.substring(url.lastIndexOf('/') + 1);

						default:
							return '';
						}
					},

					player_setup: function (param) {
						var $container = $('#' + param.container);

						$container.css(param.dimensions);

						param.container = $container;

						switch (param.provider) {
						case 'youtube':
							slider._video._youtube_player(param);
							break;

						case 'vimeo':
							slider._video._vimeo_player(param);
							break;

						case 'flowplayer':
							slider._video._flow_player(param);
							break;

						default:
						}
					},

					_youtube_player: function (param) {
						var player_id = param.container.attr('id') + '_object',
							player_html = '<iframe allowFullScreen="allowFullScreen" id="' + player_id + '" type="text/html" width="' + param.dimensions.width + '" height="' + param.dimensions.height + '" ' +
								'src="//www.youtube.com/embed/' + param.id + '?enablejsapi=1&amp;wmode=transparent&amp;origin=' + location.protocol + '//' + location.host + '" ' +
								'frameborder="0"></iframe>',

							srcipt_tag,
							first_script_tag,

							yt_player,
							setup_player = function () {
								yt_player = new YT.Player(player_id, {
									events: {
										'onReady': function () {
											rendering.youtube_player_object = yt_player;
											$t.trigger('slider_transition_finnished');

											if (option.autoplay.autostart_video_playback)
												yt_player.playVideo();
										},
										'onStateChange': function (e) {
											switch (e.data) {
											case YT.PlayerState.PLAYING:
												autoplay.video_playing = true;
												slider.autoplay.reset();
												break;

											case YT.PlayerState.ENDED:
												setTimeout(slider.next, 1000);
												break;

											default:
											}
										}
									}
								});
							};

						param.container.append(player_html);

						if (!rendering.youtube_iframe_api.called) {
							rendering.youtube_iframe_api.called = true;

							srcipt_tag = document.createElement('script');
							srcipt_tag.src = "//www.youtube.com/iframe_api";
							first_script_tag = document.getElementsByTagName('script')[0];
							first_script_tag.parentNode.insertBefore(srcipt_tag, first_script_tag);
						}

						if (rendering.youtube_iframe_api.loaded) {
							setup_player();
						} else {
							window.onYouTubeIframeAPIReady = function () {
								rendering.youtube_iframe_api.loaded = true;
								setup_player();
							};
						}
					},

					_vimeo_player: function (param) {
						var playback_initialized = false,

							post = function (action, value) {
								var data = {method: action};

								if (value) {
									data.value = value;
								}

								$player[0].contentWindow.postMessage(JSON.stringify(data), 'https://player.vimeo.com');
							},

							onPlayerEvent = function (e) {
								var data = JSON.parse(e.data);

								switch (data.event) {
								case 'ready':
									$t.trigger('slider_transition_finnished');

									post('addEventListener', 'finish');
									post('addEventListener', 'play');

									if (option.autoplay.autostart_video_playback)
										post('play');
									break;

								case 'play':
									if (playback_initialized)
										break;

									autoplay.video_playing = playback_initialized = true;
									slider.autoplay.reset();
									break;

								case 'finish':
									setTimeout(slider.next, 1000);
									break;
								}
							},

							$player = $(
								'<iframe src="//player.vimeo.com/video/' + param.id +
								'?api=1" width="' + param.dimensions.width + '" height="' + param.dimensions.height +
								'" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe>'
							);

						slider._on_pre_item_change = function () {
							if (window.addEventListener)
								window.removeEventListener('message', onPlayerEvent, false);
							else
								window.detachEvent('onmessage', onPlayerEvent);
						};

						if (window.addEventListener)
							window.addEventListener('message', onPlayerEvent, false);
						else
							window.attachEvent('onmessage', onPlayerEvent);

						param.container.append($player);
					},

					_flow_player: function (param) {
						var started_playing = false,
							videoType = '';

						if (stringEndsWith(param.id, '.mp4')) {
							videoType = 'video/mp4';
						} else if (stringEndsWith(param.id, '.webm')) {
							videoType = 'video/webm';
						} else if (stringEndsWith(param.id, '.ogg')) {
							videoType = 'video/ogg';
						} else if (stringEndsWith(param.id, '.flv')) {
							videoType = 'video/flash';
						}

						flowplayer(param.container[0], {
							swf: option.flowplayer_src,
							volume: option.videoVolume,
							clip: {
								sources: [
									{
										type: videoType,
										src: param.id
									}
								]
							}
						})
							.on('ready', function () {
								$t.trigger('slider_transition_finnished');

								if (option.autoplay.autostart_video_playback)
									flowplayer(param.container).play();
							})
							.on('resume', function () {
								if (!option.autoplay.enable || started_playing)
									return;

								started_playing = true;

								autoplay.video_playing = true;
								slider.autoplay.reset();
							})
							.on('finish', function () {
								if (!option.autoplay.enable)
									return;

								setTimeout(slider.next, 1000);
							});
					}
				},

				key_browse: function () {
					$(document).keyup(function(e) {
						if (e.keyCode === 37){
							slider.prev();
						}
						if (e.keyCode === 39){
							slider.next();
						}

						return false;
					});
				},

				_scrollable_boxes: {
					init: function (props) {
						var box,
							box_options = option.scrollable_boxes[props.box];

						box = rendering.scrollable_boxes[props.box] = {
							jq: {
								container: $('<div class="scrollable_box' + (props.custom_class ? ' ' + props.custom_class : '') + '" />').data('disabled', false),
								viewport: $('<div class="viewport" />'),
								content: $('<div class="overview" />'),
								scrollbar: $()
							}
						};

						box.jq.container.append(box.jq.viewport);
						box.jq.viewport.append(box.jq.content);
						$t.prepend(box.jq.container);

						slider._scrollable_boxes.size(props.box);

						if (!box_options.container.resize_to_content)
							box.jq.container.height(box.dimensions.height);

						slider._scrollable_boxes.display(props);

						if (box_options.container.show_on_hover)
							$t.hover(
								function () {
									rendering.mouse_entered = true;

									if (box.jq.container.data('disabled') == false)
										box.jq.container.stop(true).fadeTo(200, 1, function () {box.jq.container.css('display', 'block');});
								},
								function () {
									rendering.mouse_entered = false;

									if (box.jq.container.data('disabled') == false)
										box.jq.container.stop(true).fadeTo(200, 0, function () {box.jq.container.css('display', 'none');});
								}
							);
					},

					size: function (box) {
						var obj = rendering.scrollable_boxes[box],
							box_options = option.scrollable_boxes[box];

						if (!box_options.display)
							return;

						obj.jq.scrollbar.remove();

						obj.jq.scrollbar = $('<div class="scrollbar"><div class="track"><div class="thumb"><div class="end"></div></div></div></div>');

						obj.dimensions = slider.get_dimensions(box_options.container.dimensions);

						slider.position_element(obj.jq.container, box_options.container.position);

						if (obj.dimensions.height > rendering.container_dimensions.height)
							obj.dimensions.height = rendering.container_dimensions.height;

						if (obj.dimensions.width > rendering.container_dimensions.width)
							obj.dimensions.width = rendering.container_dimensions.width;

						if (option.scrollable_boxes.item_info.cutThumbWidth)
							obj.dimensions.width = obj.dimensions.width - option.thumbs.container.dimensions.width;
						
						if (option.scrollable_boxes.item_info.cutCategoryWidth)
							obj.dimensions.width = obj.dimensions.width - option.categories.container.dimensions.width;
						
						obj.jq.container
							.width(obj.dimensions.width)
							.css({
								maxHeight: obj.dimensions.height
							})
							.append(obj.jq.scrollbar)
							.eds_tinyscrollbar({
								size: obj.dimensions.height - (obj.jq.scrollbar.outerHeight(true) - obj.jq.scrollbar.height())
							})
							.hide(0);

						obj.jq.viewport.css({
							maxHeight: (obj.dimensions.height - obj.jq.viewport.outerHeight(true))
						});

						if (!box_options.container.resize_to_content)
							obj.jq.container.height(obj.dimensions.height);
					},

					display: function (props) {
						var box = rendering.scrollable_boxes[props.box],
							box_options = option.scrollable_boxes[props.box],
							show_content = function () {
								var fade_in = function () {
									box.jq.viewport.stop(true).fadeTo(200, 1, function () {box.jq.scrollbar.css('display', 'block');});

									if (!box.jq.scrollbar.hasClass('disable'))
										box.jq.scrollbar.stop(true).fadeTo(200, 1, function () {box.jq.scrollbar.css('display', 'block');});
								};

								box.jq.viewport.css({ visibility: '', display: 'none' });

								if (box_options.container.show_on_hover)
									if (rendering.mouse_entered) {
										fade_in();
									} else {
										box.jq.viewport.css({display: 'block'});

										if (!box.jq.scrollbar.hasClass('disable'))
											box.jq.scrollbar.css({display: 'block'});
									}
								else
									fade_in();
							};

						if (!box_options.display)
							return;

						if (typeof props.content == 'string' && props.content) {
							box.jq.container.data('disabled', false);

							if (box.jq.container.is(':visible')) {
								box.jq.container.css({ height: box.jq.container.height() });

								box.jq.scrollbar.stop(true).fadeTo(200, 0, function () {box.jq.scrollbar.css('display', 'none');});
								box.jq.viewport.stop(true).fadeTo(200, 0, function () {
									box.jq.content.html(props.content);
									box.jq.viewport
										.css({ visibility: 'hidden', display: 'block' })
										.removeClass('scrollable');
									box.jq.container.data('plugin_eds_tinyscrollbar').update();

									if (!box.jq.scrollbar.hasClass('disable')) {
										box.jq.viewport.addClass('scrollable');
										box.jq.container.data('plugin_eds_tinyscrollbar').update();
									}

									if (box_options.container.resize_to_content && (!box_options.container.show_on_hover || rendering.mouse_entered)) {
										box.jq.container.animate({
												height: box.jq.viewport.outerHeight(true)
											}, 200, show_content);
									} else {
										box.jq.container.height(box.dimensions.height);
										show_content();
									}
								});
							} else {
								box.jq.container.css({ visibility: 'hidden', display: 'block' });

								box.jq.viewport.removeClass('scrollable');

								box.jq.content.html(props.content);
								box.jq.container.data('plugin_eds_tinyscrollbar').update();

								if (box.jq.scrollbar.hasClass('disable')) {
									box.jq.scrollbar.css({ display: 'none' });
								} else {
									box.jq.viewport.addClass('scrollable');
									box.jq.scrollbar.css({ display: 'block', opacity: 1 });
									box.jq.container.data('plugin_eds_tinyscrollbar').update();
								}

								box.jq.container
									.css({
										visibility: '',
										display: 'none',
										height: (box_options.container.resize_to_content ? box.jq.viewport.outerHeight(true) : box.dimensions.height)
									});

								if (!box_options.container.show_on_hover || rendering.mouse_entered)
									box.jq.container.stop(true).fadeTo(200, 1, function () {box.jq.container.css('display', 'block');});
							}
						} else
							box.jq.container
								.data('disabled', true)
								.stop(true)
								.fadeTo(200, 0, function () {box.jq.container.css('display', 'none');});
					}
				},

				item_info: {
					init: function () {
						slider._scrollable_boxes.init({
							box: 'item_info',
							custom_class: 'item_info',
							content: current.category.items[current.item.index].info
						});
					},

					display: function (index) {
						slider._scrollable_boxes.display({
							box: 'item_info',
							content: current.category.items[index].info
						});
					}
				},

				gallery_info: {
					init: function () {
						slider._scrollable_boxes.init({
							box: 'gallery_info',
							custom_class: 'gallery_info',
							content: current.category.info
						});
					},

					display: function () {
						slider._scrollable_boxes.display({
							box: 'gallery_info',
							content: current.category.info
						});
					}
				},

				autoplay_toggle: {
					init: function () {
						$autoplay_toggle = $('<a href="#" class="autoplay_toggle">Play/Pause</a>');

						if (option.autoplay.enable) {
							$autoplay_toggle.addClass('pause');
						} else {
							autoplay.user_paused = true;
						}

						$autoplay_toggle
							.prependTo($t)
							.click(function () {
								if (autoplay.user_paused) {
									autoplay.user_paused = false;
									$autoplay_toggle.addClass('pause');

									if (!option.autoplay.enable) {
										autoplay.fade_in = true;
										option.autoplay.enable = true;
										slider.autoplay.init();
									}

									if (!option.autoplay.pause_on_hover) {
										slider.autoplay.start();
									}
								} else {
									$autoplay_toggle.removeClass('pause');
									autoplay.user_paused = true;
									if (!autoplay.pause) {
										slider.autoplay.pause();
									}
								}

								return false;
							});

						slider.position_element($autoplay_toggle, option.autoplay_toggle.position);

						if (current.category.item_count < 2)
							$autoplay_toggle.css('display', 'none');

						if (option.autoplay_toggle.auto_hide) {
							$autoplay_toggle.css('display', 'none');
							$t.hover(function () {
								if (current.category.item_count < 2)
									return;

								$autoplay_toggle.stop().fadeTo(option.autoplay_toggle.hide_speed, 1);
							}, function () {
								$autoplay_toggle.stop().fadeTo(option.autoplay_toggle.hide_speed, 0);
							});
						}
					},

					display_category: function () {
						var display = '';

						if (!option.autoplay_toggle.display)
							return;

						if (current.category.item_count < 2)
							display = 'none';

						$autoplay_toggle.css('display', display);
					}
				},

				autoplay: {
					init: function () {
						if (option.autoplay.indicator.display) {
							$autoplay_indicator = $('<div class="indicator" />');
							$autoplay_container = $('<div class="autoplay_container" />');

							slider.autoplay.size();

							if (option.autoplay.indicator.orientation == 'vertical' && !option.autoplay.indicator.flip_direction)
								$autoplay_indicator.css({
									top: 'auto',
									bottom: 0
								});
							else if (option.autoplay.indicator.flip_direction)
								$autoplay_indicator.css({
									left: 'auto',
									right: 0
								});

							$autoplay_container
								.append($autoplay_indicator)
								.css('display', 'none');

							if (autoplay.fade_in) {
								$t.append($autoplay_container);
								$autoplay_container.fadeIn(300);
							} else {
								$t.prepend($autoplay_container);
								$autoplay_container.css('display', '');
							}
						}

						$t.bind('slider_transition_finnished', function () {
							if (autoplay.user_paused || autoplay.pause)
								return;

							slider.autoplay.start();
						});
					},

					size: function () {
						if (!option.autoplay.enable || !option.autoplay.indicator.display)
							return;

						rendering.autoplay.indicator = slider.get_dimensions(option.autoplay.indicator.dimensions);

						slider.position_element($autoplay_container, option.autoplay.indicator.position);

						if (option.autoplay.indicator.orientation == 'vertical')
							$autoplay_indicator.width(rendering.autoplay.indicator.width);
						else
							$autoplay_indicator.height(rendering.autoplay.indicator.height);

						$autoplay_container.css(rendering.autoplay.indicator)
					},

					start: function () {
						var interval = option.autoplay.interval,
							reset_indicator = true;

						if (current.category.item_count < 2) {
							if (option.autoplay.indicator.display)
								$autoplay_container.css('display', 'none');

							return;
						}

						if (option.autoplay.enable && autoplay.interval == '') {
							autoplay.last_started = new Date().getTime();

							autoplay.reset = false;

							if (autoplay.time_remaining != 0) {
								reset_indicator = false;
								interval = autoplay.time_remaining;
							}

							if (option.autoplay.indicator.display) {
								$autoplay_container.css('display', '');

								$autoplay_indicator.stop();
								if (option.autoplay.indicator.orientation == 'vertical') {
									if (reset_indicator) {
										$autoplay_indicator.height(0);
									}

									$autoplay_indicator.animate({height: rendering.autoplay.indicator.height}, interval, 'linear');
								} else {
									if (reset_indicator) {
										$autoplay_indicator.width(0);
									}

									$autoplay_indicator.animate({width: rendering.autoplay.indicator.width}, interval, 'linear');
								}
							}

							autoplay.interval = setTimeout(slider.next, interval);
						}
					},

					pause: function () {
						if (!option.autoplay.enable || autoplay.reset)
							return;

						autoplay.pause_time = new Date().getTime();
						autoplay.start_pause_delta = autoplay.pause_time - autoplay.last_started;

						if (option.autoplay.indicator.display)
							$autoplay_indicator.stop();

						autoplay.time_remaining = (autoplay.time_remaining == 0 ? option.autoplay.interval : autoplay.time_remaining) - autoplay.start_pause_delta;

						clearTimeout(autoplay.interval);
						autoplay.interval = '';
					},

					reset: function () {
						if (!option.autoplay.enable)
							return;

						clearTimeout(autoplay.interval);
						autoplay.interval = '';
						autoplay.time_remaining = 0;

						autoplay.reset = true;

						if (option.autoplay.indicator.display) {
							$autoplay_indicator.stop();
							if (option.autoplay.indicator.orientation == 'vertical') {
								$autoplay_indicator.height(0);
							} else {
								$autoplay_indicator.width(0);
							}
						}
					},

					display_category: function () {
						if (!option.autoplay.enable)
							return;

						if (option.autoplay.indicator.display)
							if (current.category.item_count < 2)
								$autoplay_container.css('display', 'none');
							else
								$autoplay_container.css('display', '');
					}
				},

				_items_panel: {
					init: function (params) {
						params.page
							.append(params.item)
							.appendTo(item_panels[params.panel].container);

						rendering[params.panel].width = params.item.outerWidth(true);
						rendering[params.panel].height = params.item.outerHeight(true);

						rendering[params.panel].page.horizontal_space = params.page.outerWidth(true) - params.page.width();
						rendering[params.panel].page.vertical_space = params.page.outerHeight(true) - params.page.height();

						params.page.remove();

						if (!option[params.panel].container.transparent)
							item_panels[params.panel].wrapper.addClass('not_transparent');
					},

					calculate_pages: function (params) {
						var minimum_container_dimension;

						rendering[params.panel].container = slider.get_dimensions(option[params.panel].container.dimensions);

						rendering[params.panel].page.width = rendering[params.panel].width + rendering[params.panel].page.horizontal_space;
						if (rendering[params.panel].page.width > rendering[params.panel].container.width) {
							rendering[params.panel].container.width = rendering[params.panel].page.width;
						} else {
							rendering[params.panel].page.width = rendering[params.panel].container.width - rendering[params.panel].page.horizontal_space;
						}

						rendering[params.panel].page.height = rendering[params.panel].height + rendering[params.panel].page.vertical_space;
						if (rendering[params.panel].page.height > rendering[params.panel].container.height) {
							rendering[params.panel].container.height = rendering[params.panel].page.height;
						} else {
							rendering[params.panel].page.height = rendering[params.panel].container.height - rendering[params.panel].page.vertical_space;
						}

						// Calculate page dimensions
						rendering[params.panel].per_row = Math.floor(rendering[params.panel].page.width / rendering[params.panel].width);
						rendering[params.panel].page.width = rendering[params.panel].per_row * rendering[params.panel].width;

						rendering[params.panel].row_count = Math.floor(rendering[params.panel].page.height / rendering[params.panel].height);
						rendering[params.panel].page.height = rendering[params.panel].row_count * rendering[params.panel].height;

						rendering[params.panel].per_page = rendering[params.panel].per_row * rendering[params.panel].row_count;

						rendering[params.panel].page.count = Math.ceil(params.item_count / rendering[params.panel].per_page);

						// If there are multiple pages, setup the thumbnail navigation and recalculate page and container dimensions
						if (rendering[params.panel].page.count > 1) {
							if (item_panels[params.panel].pagination) {
								item_panels[params.panel].pagination.next.css('display', 'block');
								item_panels[params.panel].pagination.prev.css('display', 'block');
							} else {
								item_panels[params.panel].wrapper.append('<a href="#" class="navigation ' + option[params.panel].pagination.direction + ' prev">Previous</a><a href="#" class="navigation ' + option[params.panel].pagination.direction + ' next">Next</a>');
								item_panels[params.panel].pagination = {
									prev: item_panels[params.panel].wrapper.find('> a.navigation.prev'),
									next: item_panels[params.panel].wrapper.find('> a.navigation.next')
								};

								item_panels[params.panel].pagination.next.click(function () {
									var current_page_index = item_panels[params.panel].pages.filter('.current').index();

									slider._items_panel.move_to_page(params.panel, current_page_index + 1);

									return false;
								});

								item_panels[params.panel].pagination.prev.click(function () {
									var current_page_index = item_panels[params.panel].pages.filter('.current').index();

									slider._items_panel.move_to_page(params.panel, current_page_index - 1);

									return false;
								});
							}

							if (option[params.panel].pagination.direction == 'vertical') {
								minimum_container_dimension = rendering[params.panel].height + rendering[params.panel].page.vertical_space + 2 * item_panels[params.panel].pagination.prev.outerHeight(true);
								if (minimum_container_dimension > rendering[params.panel].container.height)
									rendering[params.panel].container.height = minimum_container_dimension;

								item_panels[params.panel].pagination.next.css({ top: (rendering[params.panel].container.height - item_panels[params.panel].pagination.next.height())});

								rendering[params.panel].row_count = Math.floor((rendering[params.panel].container.height - 2 * item_panels[params.panel].pagination.prev.outerHeight(true) - rendering[params.panel].page.vertical_space) / rendering[params.panel].height);
								rendering[params.panel].page.height = rendering[params.panel].row_count * rendering[params.panel].height;
							} else {
								minimum_container_dimension = rendering[params.panel].width + rendering[params.panel].page.horizontal_space + 2 * item_panels[params.panel].pagination.prev.outerWidth(true);
								if (minimum_container_dimension > rendering[params.panel].container.width)
									rendering[params.panel].container.width = minimum_container_dimension;

								rendering[params.panel].per_row = Math.floor((rendering[params.panel].container.width - 2 * item_panels[params.panel].pagination.prev.outerWidth(true) - rendering[params.panel].page.horizontal_space) / rendering[params.panel].width);
								rendering[params.panel].page.width = rendering[params.panel].per_row * rendering[params.panel].width;
							}

							rendering[params.panel].per_page = rendering[params.panel].per_row * rendering[params.panel].row_count;

							rendering[params.panel].page.count = Math.ceil(params.item_count / rendering[params.panel].per_page);
						} else {
							if (item_panels[params.panel].pagination) {
								item_panels[params.panel].pagination.next.css('display', 'none');
								item_panels[params.panel].pagination.prev.css('display', 'none');
							}
						}

						item_panels[params.panel].wrapper.css(rendering[params.panel].container);

						rendering[params.panel].window_width = rendering[params.panel].page.width + rendering[params.panel].page.horizontal_space;
						rendering[params.panel].window_height = rendering[params.panel].page.height + rendering[params.panel].page.vertical_space;

						item_panels[params.panel].window
							.width(rendering[params.panel].window_width)
							.height(rendering[params.panel].window_height)
							.css({ top: Math.floor((rendering[params.panel].container.height - rendering[params.panel].window_height) / 2) });

						// Set page container dimensions and position it
						if (option[params.panel].pagination.direction == 'vertical') {
							item_panels[params.panel].container
								.width(rendering[params.panel].window_width)
								.height(0);
						} else {
							item_panels[params.panel].container
								.width(0)
								.height(rendering[params.panel].window_height);
						}

						slider.position_element(item_panels[params.panel].wrapper, option[params.panel].container.position);
					},

					move_to_page: function (panel, page_index) {
						var properties,
							max_page_index = item_panels[panel].pages.length - 1,
							move_to_nonexistant_offset = 10;

						if (max_page_index < 0)
							return;

						if (item_panels[panel].pages.eq(page_index).hasClass('current'))
							return;

						if (page_index > max_page_index) {
							if (option[panel].pagination.direction == 'vertical') {
								properties = {
									top: max_page_index * -(rendering[panel].page.height + rendering[panel].page.vertical_space) - move_to_nonexistant_offset
								};
							} else {
								properties = {
									left: max_page_index * -(rendering[panel].page.width + rendering[panel].page.horizontal_space) - move_to_nonexistant_offset
								};
							}

							item_panels[panel].container.animate(properties, 40, 'swing', function () {
								if (option[panel].pagination.direction == 'vertical') {
									properties = {
										top: max_page_index * -(rendering[panel].page.height + rendering[panel].page.vertical_space)
									};
								} else {
									properties = {
										left: max_page_index * -(rendering[panel].page.width + rendering[panel].page.horizontal_space)
									};
								}

								item_panels[panel].container.animate(properties, 50, 'swing');
							});

							return;
						} else if (page_index < 0) {
							if (option[panel].pagination.direction == 'vertical') {
								properties = {
									top: move_to_nonexistant_offset
								};
							} else {
								properties = {
									left: move_to_nonexistant_offset
								};
							}

							item_panels[panel].container.animate(properties, 40, 'swing', function () {
								if (option[panel].pagination.direction == 'vertical') {
									properties = {
										top: 0
									};
								} else {
									properties = {
										left: 0
									};
								}
								item_panels[panel].container.animate(properties, 50, 'swing');
							});

							return;
						}

						item_panels[panel].pages.removeClass('current').eq(page_index).addClass('current');

						if (option[panel].pagination.direction == 'vertical') {
							properties = {
								top: page_index * -(rendering[panel].page.height + rendering[panel].page.vertical_space)
							};
						} else {
							properties = {
								left: page_index * -(rendering[panel].page.width + rendering[panel].page.horizontal_space)
							};
						}

						item_panels[panel].container.stop(true, false).animate(properties, option[panel].pagination.duration, option[panel].pagination.easing);
					}
				},

				thumbnails: {
					init: function () {
						item_panels.thumbs = {
							container: $('<div class="thumb_container" />'),
							window: $('<div class="thumb_window" />'),
							wrapper: $('<div class="thumb_wrapper" />')
						}

						item_panels.thumbs.window.append(item_panels.thumbs.container);
						item_panels.thumbs.wrapper.append(item_panels.thumbs.window);

						$t.prepend(item_panels.thumbs.wrapper);

						slider._items_panel.init({
							panel: 'thumbs',
							page: $('<ul />'),
							item: $('<li><img src="' + slider_content[0].items[0].thumb.src + '" alt="" style="width: ' + option.thumbs.width + 'px !important; height: ' + option.thumbs.height + 'px !important;" /></li>')
						});

						if (option.thumbs.auto_hide) {
							item_panels.thumbs.wrapper.css({
								display: 'none'
							});

							$t.hover(function () {
								item_panels.thumbs.wrapper.stop().fadeTo(option.thumbs.hide_speed, 1);
							}, function () {
								item_panels.thumbs.wrapper.stop().fadeTo(option.thumbs.hide_speed, 0);
							});
						}

						slider.thumbnails.display_category(false);
						slider.thumbnails.select(current.item.index);
					},

					display_category: function () {
						var $page,
							thumb_html,
							thumb_caption,
							thumb_type_html,
							i = 0,
							preload_images = arguments.length > 0 && arguments[0] === false ? false : true,
							tooltip_content,
							empty_tooltip;

						if (!option.thumbs.display)
							return;

						slider._items_panel.calculate_pages({
							panel: 'thumbs',
							item_count: current.category.item_count
						});

						item_panels.thumbs.container.html('');

						for (; i < current.category.item_count; i++) {
							if (i % rendering.thumbs.per_page === 0) {
								if (option.thumbs.pagination.direction == 'vertical')
									item_panels.thumbs.container.height(item_panels.thumbs.container.height() + rendering.thumbs.window_height);
								else
									item_panels.thumbs.container.width(item_panels.thumbs.container.width() + rendering.thumbs.window_width);

								$page = $('<ul />');
								$page
									.width(rendering.thumbs.page.width)
									.height(rendering.thumbs.page.height)
									.appendTo(item_panels.thumbs.container);
							}

							thumb_caption = option.thumbs.captions && typeof current.category.items[i].thumb.caption == 'string' && current.category.items[i].thumb.caption ? '<div class="caption_wrapper"><div class="caption">' + current.category.items[i].thumb.caption + '</div></div>' : '';
							thumb_type_html = option.thumbs.display_item_types ? '<span class="item_type_icon ' + current.category.items[i].type + '"></span>' : '';

							thumb_html = '<li><img style="width: ' + option.thumbs.width + 'px !important; height: ' + option.thumbs.height + 'px !important;" src="' + current.category.items[i].thumb.src + '" alt="" />' + thumb_type_html + thumb_caption;

							if (preload_images) {
								$('<img />')
									.load(
										{
											index: i
										}, function (e) {
											item_panels.thumbs.pages.find('.thumb_preloading').eq(e.data.index).fadeTo(500, 0, function () {
												$(this).remove();
											});
										}
									)
									.attr('src', current.category.items[i].thumb.src);

								thumb_html += '<div class="thumb_preloading"></div>';
							}

							$page.append(thumb_html + '</li>');

							if (option.thumbs.tooltips.enabled && $.fn.qtip) {
								empty_tooltip = true;
								tooltip_content = '';

								if (current.category.items[i].thumb.tooltip) {
									if (option.thumbs.tooltips.title && current.category.items[i].thumb.tooltip.title) {
										tooltip_content = '<p class="title">' + current.category.items[i].thumb.tooltip.title + '</p>';
										empty_tooltip = false;
									}

									if (option.thumbs.tooltips.description && current.category.items[i].thumb.tooltip.description) {
										tooltip_content += '<div class="description">' + current.category.items[i].thumb.tooltip.description + '</div>';
										empty_tooltip = false;
									}

									if (!empty_tooltip)
										$page.find('> li').filter(':last').qtip({
											content: {
												text: tooltip_content
											},
											position: option.thumbs.tooltips.position,
											style: {
												classes: 'chameleon_slider_tooltip ' + option.thumbs.tooltips.classes,
												tip: {
													corner: true
												}
											}
										});
								}
							}
						}

						item_panels.thumbs.pages = item_panels.thumbs.container.find('> ul');
					},

					trigger: function () {
						item_panels.thumbs.container.delegate('ul > li', 'click', function () {
							var $clicked = $(this);

							slider.show_item($clicked.parent().index() * rendering.thumbs.per_page + $clicked.index());

							return false;
						});
					},

					select: function (index) {
						if (!option.thumbs.display)
							return;

						var $new_item = item_panels.thumbs.pages.find('> li').eq(index);

						slider._items_panel.move_to_page('thumbs', $new_item.parent().index());

						item_panels.thumbs.pages.find('> li.on').removeClass('on');
						$new_item.addClass('on');
					}
				},

				categories: {
					init: function () {
						item_panels.categories = {
							container: $('<div class="categories_container" />'),
							window: $('<div class="categories_window" />'),
							wrapper: $('<div class="categories_wrapper ' + option.categories.pagination.direction + '" />')
						}

						item_panels.categories.window.append(item_panels.categories.container);
						item_panels.categories.wrapper.append(item_panels.categories.window);

						$t.prepend(item_panels.categories.wrapper);

						slider._items_panel.init({
							panel: 'categories',
							page: $('<ul />'),
							item: $('<li style="width: ' + option.categories.width + 'px; height: ' + option.categories.height + 'px;" />')
						});

						if (option.categories.auto_hide) {
							item_panels.categories.wrapper.css({
								display: 'none'
							});

							$t.hover(function () {
								item_panels.categories.wrapper.stop().fadeTo(option.categories.hide_speed, 1);
							}, function () {
								item_panels.categories.wrapper.stop().fadeTo(option.categories.hide_speed, 0);
							});
						}

						slider.categories.display_categories();
					},

					display_categories: function () {
						var $page,
							category_html,
							categories = [],
							num_of_categories,
							i = 0,
							category_opened = selected_categories.indexes[selected_categories.indexes.length - 1],
							category_indexes,
							has_children,
							$first_category,
							$category_links,
							category_height;

						if (!option.categories.display)
							return;

						if (rendering.categories.render_categories) {
							if (selected_categories.indexes.length == 1) {
								categories = slider_content;
							} else {
								category_indexes = $.extend([], selected_categories.indexes);
								category_indexes.pop();
								categories = slider.get_category(category_indexes).children;

								categories = [{
									id: -1,
									name: '&lt;Back',
									open_parent: true
								}].concat(categories);

								category_opened++;
							}

							num_of_categories = categories.length;

							slider._items_panel.calculate_pages({
								panel: 'categories',
								item_count: num_of_categories
							});

							item_panels.categories.container.empty();

							for (i = 0; i < num_of_categories; i++) {
								if (i % rendering.categories.per_page === 0) {
									if (option.categories.pagination.direction == 'vertical')
										item_panels.categories.container.height(item_panels.categories.container.height() + rendering.categories.window_height);
									else
										item_panels.categories.container.width(item_panels.categories.container.width() + rendering.categories.window_width);

									$page = $('<ul />');
									$page
										.width(rendering.categories.page.width)
										.height(rendering.categories.page.height)
										.appendTo(item_panels.categories.container);
								}

								has_children = typeof categories[i].children != 'undefined' && categories[i].children.length > 0;

								category_html = '<li' + (categories[i].open_parent ? ' class="open_parent"' : '') + (has_children ? ' class="has_children"' : '') + ' style="width: ' + option.categories.width + 'px; height: ' + option.categories.height + 'px;"><a href="#" class="' + (categories[i].open_parent ? 'back_button' : 'category') + '"><span>' + categories[i].name + '</span></a>';

								if (has_children)
									category_html += '<a href="#" class="open_children"></a>';

								category_html += '</li>';

								$page.append(category_html);
							}

							item_panels.categories.pages = item_panels.categories.container.find('> ul');

							$category_links = item_panels.categories.pages.find('> li > a.category');
							$first_category = $category_links.eq(0);
							category_height = option.categories.height - ($first_category.outerHeight(true) - $first_category.height());

							$category_links.height(category_height);

							$category_links.each(function () {
								var $link = $(this),
									$span = $link.find('span'),
									height = $span.height();

								if (category_height > height)
									$span.css({
										top: Math.floor((category_height - height) / 2)
									});
								else
									$span.css({
										top: 0
									});
							});
						} else {
							if (selected_categories.indexes.length > 1)
								category_opened++;

							rendering.categories.render_categories = true;
						}

						slider.categories.select(category_opened);
					},

					trigger: function () {
						item_panels.categories.container.delegate('li > a', 'click', function () {
							var $clicked = $(this),
								$first_category,
								$parent = $clicked.parent(),
								$page = $parent.parent(),
								index = $page.index() * rendering.categories.per_page + $parent.index();

							$first_category = item_panels.categories.pages.find('> li').eq(0);

							if ($first_category.hasClass('open_parent'))
								index--;

							if ($clicked.hasClass('category')) {
								if ($parent.hasClass('on'))
									return false;

								selected_categories.indexes.pop();
								selected_categories.indexes.push(index);

								selected_categories.ids = slider.category_ids_from_indexes(selected_categories.indexes);

								current.category = slider.get_category(selected_categories.indexes);
								current.category.item_count = current.category.items.length;

								current.item = {
									id: current.category.items[0].id,
									index: 0
								};

								rendering.categories.render_categories = false;

								slider.change_category();
							} else if ($clicked.hasClass('open_children')) {
								selected_categories.indexes.pop();
								selected_categories.indexes.push(index);
								selected_categories.indexes.push(0);

								selected_categories.ids = slider.category_ids_from_indexes(selected_categories.indexes);

								current.category = slider.get_category(selected_categories.indexes);
								current.category.item_count = current.category.items.length;

								current.item = {
									id: current.category.items[0].id,
									index: 0
								};

								slider.change_category();
							} else if ($clicked.hasClass('back_button')) {
								selected_categories.indexes.pop();

								selected_categories.ids = slider.category_ids_from_indexes(selected_categories.indexes);

								current.category = slider.get_category(selected_categories.indexes);
								current.category.item_count = current.category.items.length;

								current.item = {
									id: current.category.items[0].id,
									index: 0
								};

								slider.change_category();
							}

							return false;
						});
					},

					select: function (index) {
						var $new_item = item_panels.categories.pages.find('> li').eq(index);

						slider._items_panel.move_to_page('categories', $new_item.parent().index());

						item_panels.categories.pages.find('> li.on').removeClass('on');
						$new_item.addClass('on');
					}
				},

				change_category: function () {
					slider.main_panel.display_category();
					slider.categories.display_categories();
					slider.thumbnails.display_category();
					slider.pagination.display_category();
					slider.gallery_title.select();
					slider.gallery_info.display();
					slider.arrows.display_category();
					slider.autoplay_toggle.display_category();
					slider.autoplay.display_category();

					slider.show_item(current.item.index, true);
				},

				arrows: {
					init: function () {
						$navigation_prev = $('<a href="#" class="navigation_button prev">Previous</a>');
						$navigation_next = $('<a href="#" class="navigation_button next">Next</a>');

						$t.prepend($navigation_prev, $navigation_next);

						slider.position_element($navigation_prev, option.arrows.prev.position);
						slider.position_element($navigation_next, option.arrows.next.position);

						slider.arrows.display_category();
					},

					trigger: function () {
						$navigation_prev.click(function () {
							slider.prev();

							return false;
						});
						$navigation_next.click(function () {
							slider.next();

							return false;
						});

						if (option.arrows.auto_hide) {
							$navigation_prev.fadeTo(0, 0);
							$navigation_next.fadeTo(0, 0);
							$t.hover(function () {
								if (current.category.item_count == 1)
									return;

								$navigation_prev.stop().fadeTo(option.arrows.hide_speed, 1);
								$navigation_next.stop().fadeTo(option.arrows.hide_speed, 1);
							}, function () {
								$navigation_prev.stop().fadeTo(option.arrows.hide_speed, 0);
								$navigation_next.stop().fadeTo(option.arrows.hide_speed, 0);
							});
						}
					},

					display_category: function () {
						var display = '';

						if (current.category.item_count == 1)
							display = 'none';

						$navigation_prev.css('display', display);
						$navigation_next.css('display', display);
					}
				},

				_title_box: {
					init: function (props) {
						var $text_span,
							text_span_top;

						rendering.title_boxes[props.box] = $('<span class="title_box' + (props.custom_class ? ' ' + props.custom_class : '') + '" style="height: ' + option.title_boxes[props.box].height + 'px;"><span>T</span></span>');

						$text_span = rendering.title_boxes[props.box].find('> span');

						rendering.title_boxes[props.box].css('visibility', 'hidden');

						$t.prepend(rendering.title_boxes[props.box]);

						slider.position_element(rendering.title_boxes[props.box], option.title_boxes[props.box].position);

						text_span_top = Math.floor((option.title_boxes[props.box].height - $text_span.height()) / 2);

						if (text_span_top < 0)
							text_span_top = 0

						$text_span
							.css({
								top: text_span_top
							})
							.empty();

						rendering.title_boxes[props.box].css('visibility', '');
					},

					change_text: function (props) {
						if (!props.text) {
							rendering.title_boxes[props.box]
								.stop()
								.fadeTo(200, 0);
						} else {
							if (rendering.title_boxes[props.box].is(':visible')) {
								rendering.title_boxes[props.box]
									.stop()
									.fadeTo(200, 0, function () {
										rendering.title_boxes[props.box]
											.fadeTo(400, 1)
											.find('> span')
												.html(props.text);
									});
							} else {
								rendering.title_boxes[props.box]
									.stop()
									.fadeTo(400, 1)
									.find('> span')
										.html(props.text);
							}
						}
					}
				},

				item_title: {
					init: function () {
						slider._title_box.init({
							box: 'current_item',
							custom_class: 'current_item'
						});

						slider.item_title.select(current.item.index);
					},

					select: function (index) {
						if (!option.title_boxes.current_item.display)
							return;

						slider._title_box.change_text({
							box: 'current_item',
							text: current.category.items[index].title
						});
					},

					size: function () {
						if (!option.title_boxes.current_item.display)
							return;

						slider.position_element(rendering.title_boxes.current_item, option.title_boxes.current_item.position);
					}
				},

				gallery_title: {
					init: function () {
						slider._title_box.init({
							box: 'current_gallery',
							custom_class: 'current_gallery'
						});

						slider.gallery_title.select();
					},

					select: function () {
						if (!option.title_boxes.current_gallery.display)
							return;

						slider._title_box.change_text({
							box: 'current_gallery',
							text: current.category.name
						});
					},

					size: function () {
						if (!option.title_boxes.current_gallery.display)
							return;

						slider.position_element(rendering.title_boxes.current_gallery, option.title_boxes.current_gallery.position);
					}
				},

				triggers: function () {
					if (option.arrows.display) {
						slider.arrows.trigger();
					}
					if (option.thumbs.display) {
						slider.thumbnails.trigger();
					}
					if (option.categories.display) {
						slider.categories.trigger();
					}
					if (option.key_browse) {
						slider.key_browse();
					}
					if (option.autoplay.enable) {
						slider.autoplay.start();
					}
					if (option.autoplay.pause_on_hover) {
						$t.hover(function () {
							if (current.category.item_count < 2)
								return;

							if (autoplay.user_paused || autoplay.pause)
								return;

							autoplay.pause = true;
							slider.autoplay.pause();
						}, function () {
							if (current.category.item_count < 2)
								return;

							autoplay.pause = false;

							if (autoplay.video_playing || autoplay.user_paused || autoplay.transition_in_progres)
								return;

							slider.autoplay.start();
						});
					}

					$t.bind('resize_slider', function () {
						slider.autoplay.reset();

						$t.css(rendering.container_dimensions);

						slider.main_panel.size();
						slider.autoplay.size();

						slider._scrollable_boxes.size('gallery_info');
						slider._scrollable_boxes.size('item_info');

						slider.gallery_title.size();
						slider.item_title.size();

						slider.thumbnails.display_category(false);
						slider.categories.display_categories();

						if (option.pagination.display)
							slider.position_element($pagination, option.pagination.position);

						if (option.autoplay_toggle.display)
							slider.position_element($autoplay_toggle, option.autoplay_toggle.position);

						if (option.arrows.display) {
							slider.position_element($navigation_prev, option.arrows.prev.position);
							slider.position_element($navigation_next, option.arrows.next.position);
						}

						slider.show_item(current.item.index, true, '');
					});

					$loading_overlay.fadeOut(200, function () {
						$loading_overlay.remove();
					})

					$t.trigger('slider_initialized');
				},

				get_dimensions: function (d) {
					var reference;

					if (arguments.length > 1 && typeof arguments[1] == 'object')
						reference = arguments[1];
					else
						reference = {
							width: rendering.container_dimensions.width,
							height: rendering.container_dimensions.height
						};

					return { width: (d.w_as_ratio ? Math.floor(reference.width * d.width) : d.width), height: (d.h_as_ratio ? Math.floor(reference.height * d.height) : d.height) };
				},

				position_element: function (element, position) {
					var v_offset = position.v_as_ratio ? Math.floor(position.v_offset * rendering.container_dimensions.height) : position.v_offset,
						h_offset = position.h_as_ratio ? Math.floor(position.h_offset * rendering.container_dimensions.width) : position.h_offset;

					if (position.v_center_point)
						v_offset -= Math.floor(element.outerHeight() / 2);

					if (position.h_center_point)
						h_offset -= Math.floor(element.outerWidth() / 2);

					if (position.vertical == 'top') {
						element.css('top', v_offset);
					} else {
						element.css({
							top: 'auto',
							bottom: v_offset
						});
					}

					if (position.horizontal == 'left') {
						element.css('left', h_offset);
					} else {
						element.css({
							left: 'auto',
							right: h_offset
						});
					}
				},

				category_indexes_from_ids: function (ids, categories) {
					var i = 0,
						num_of_cats,
						next_index = [];

					if (ids.length == 0) {
						return [];
					}

					num_of_cats = $.isArray(categories) ? categories.length : 0;
					for (; i < num_of_cats; i++) {
						if (categories[i].id == ids[0]) {
							ids.shift();
							if (ids.length != 0) {
								next_index = slider.category_indexes_from_ids(ids, categories[i].children);
								if (next_index.length == 0) {
									return [];
								}
							}
							return [i].concat(next_index);
						}
					}

					return [];
				},

				category_ids_from_indexes: function (indexes) {
					var m = indexes.length,
						i = 1,
						ids,
						selected = slider_content[indexes[0]];

					ids = [selected.id];

					for (; i < m; i++) {
						selected = selected.children[indexes[i]];
						ids.push(selected.id);
					}

					return ids;
				},

				get_category: function (indexes) {
					var m = indexes.length,
						i = 1,
						selected;

					if (!$.isArray(indexes) || indexes.length == 0)
						return slider_content[0];

					selected = slider_content[indexes[0]];

					for (; i < m; i++)
						selected = selected.children[indexes[i]];

					return selected;
				},

				item_index_from_id: function (id) {
					var items = current.category.items,
						num_of_items = items.length,
						i = 0;

					if (id == undefined)
						return 0;

					for (; i < num_of_items; i++)
						if (items[i].id == id)
							return i;

					return 0;
				},

				set_url_param: function (url, param) {
					var url_hash = '',
						return_url = '',
						param_string = param + (arguments.length > 2 ? '=' + arguments[2] : ''),
						params,
						segment = false,
						found = false,
						i;

					url = url.split('#');

					if (url.length == 1) {
						url_hash = false;
					} else {
						url_hash = url[1];
					}

					url = url[0].split('?');
					if (url.length == 1 || url[1] == '') {
						return_url = url[0] + '?' + param_string;
					} else {
						return_url = url[0] + '?';

						params = url[1].split('&');
						for (i in params) {
							if (typeof params[i] != 'string')
								continue;

							segment = params[i].split('=');

							if (segment[0] == param) {
								found = true;
								return_url += param_string + '&';
							} else {
								if (segment.length == 1) {
									return_url += segment[0] + '&';
								} else {
									return_url += segment[0] + '=' + segment[1] + '&';
								}
							}
						}

						if (found)
							return_url = return_url.substring(0, return_url.length - 1);
						else
							return_url += param_string;
					}

					return return_url + (url_hash === false ? '' : '#' + url_hash);
				}
			};

			slider.init();
		});
	};

	$.fn[pluginName + '_fullscreen'] = function (options) {
		var $fullscreenContainer,
			$theSlider,
			resize_deley_timeout,
			close_fullscreen = function () {
				$fullscreenContainer.fadeTo(500, 0, function () {
					$theSlider.trigger('destroy');
					$fullscreenContainer.remove();
				});

				$(document).unbind('keydown.chameleonslider_fullscreen_' + options.module_id);
			};

		$fullscreenContainer = $('<div id="chameleonSliderFullscreen_' + options.module_id + '" style="z-index: 15000; overflow: hidden; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0, 0, 0, .5);"><div class="chameleon_slider ' + options.theme + '" /></div>');

		$('body').append($fullscreenContainer);

		$theSlider = $fullscreenContainer.find('> .chameleon_slider');

		$.extend(true, options, {
			container_dimensions: {
				width: 1,
				height: 1,
				w_as_ratio: true,
				h_as_ratio: true
			},
			autoplay: {
				pause_on_hover: false
			},
			buttons: {
				exit_fullscreen: {
					display: true
				},
				fullscreen: {
					display: false
				}
			},
			main_panel: {
				stretch_small_image: true
			}
		});

		$theSlider.bind('slider_initialized', function () {
			$theSlider.find('> .exit_fullscreen').click(function () {
				close_fullscreen();
				return false;
			});

			$(document).bind('keydown.chameleonslider_fullscreen_' + options.module_id, function(e) {
				if (e.which == 27)
					close_fullscreen();
			});
		});

		$theSlider[pluginName](options);
	};
}(eds3_5_jq, window, document));

;;;(function($,window){'use strict';var defaultOptions={portalId:0,moduleId:0,tabId:0,autoplayVideo:false,userLoggedIn:false,googleReCaptchaSiteKey:'',websiteRoot:'',portfolioMode:false,openAt:0,wrapperResizeDuration:200,flowplayerSwf:'',flowplayer:{key:'',logo:''},socialButtons:{facebook:false,gplus:false,twitter:false,inshare:false,pinterest:false},cssClass:'',events:{onBeforeClose:function(){}},comments:{requireAuthorInfo:true,useReCaptcha:false,permissions:{show:false,commenting:false}},like:{permissions:{liking:false}},mobile:false,i18n:{}},ajaxState={UNSET:0,SENT:1,DONE:2},activeClass='activeElement',imageNotLoadedClass='imageNotLoaded',smbLightBodyClass='smbLightFixed',audioItemTypeClass='audioItem',videoItemTypeClass='videoItem',imageItemTypeClass='imageItem',positionAnimationClass='positionAnimation',swipeAnimationClass='swipeAnimation',itemDomInitKey='initialized',emailVerification=/^(([^<>()[\]\\.,;:\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,}))$/,preloadImage=function(itemIndex,callback){var self=this,item=self.items[itemIndex];if(!item)
return;if(item.type!='image')
return;var imageMeta=self.images[item.src];if(imageMeta){if(typeof callback=='function'){if(imageMeta.stats.preloadFinished)
callback(imageMeta.stats);else
imageMeta.callbacks.push(callback);}
return;}
imageMeta=self.images[item.src]={callbacks:[],stats:{preloadFinished:false,isLoaded:false,width:0,height:0}};if(typeof callback=='function')
imageMeta.callbacks.push(callback);var $img=$('<img class="smbLightImage_'+item.id+'" />');$img.imagesLoaded().progress(function(instance,imageInfo){if(self.viewClosed)
return;var imageMeta=self.images[item.src];imageMeta.stats.preloadFinished=true;imageMeta.stats.isLoaded=imageInfo.isLoaded;if(!self.smbPlus&&imageInfo.isLoaded)
self.$imagesWrapper.append($img);imageMeta.stats.width=$img.width();imageMeta.stats.height=$img.height();if(self.smbPlus){$img.css(getItemDimensions.call(self,imageMeta.stats.width,imageMeta.stats.height,false));$img.parent().removeClass('loading');}else{var currentItem=self.items[self.currentItemIndex];if(currentItem.type=='image'&&currentItem.src==item.src){self.initialItemLoaded=true;showItem.call(self);}}
$img=null;for(var i=0,l=imageMeta.callbacks.length;i<l;i++){imageMeta.callbacks[i](imageMeta.stats);}});if(self.smbPlus){$img.appendTo($('> div.item_'+itemIndex,self.$contentWrapper));}
$img.attr('src',item.src);},preloadImages=function(){var self=this,i=0,numberOfItems=self.items.length;for(;i<numberOfItems;i++){preloadImage.call(self,i);};},getItemDimensions=function(itemWidth,itemHeight,maximizeDimensions,fixedHeight){var self=this,containerRatio,itemRatio,maxItemWidth=self.overlayWidth-self.main.horizontalSpace,maxItemHeight=self.overlayHeight-self.main.verticalSpace,displayWidth=itemWidth,displayHeight=itemHeight;if(maximizeDimensions||itemWidth>maxItemWidth||itemHeight>maxItemHeight){containerRatio=maxItemWidth/maxItemHeight;itemRatio=itemWidth/itemHeight;displayWidth=maxItemWidth;displayHeight=maxItemHeight;if(itemRatio<containerRatio){displayWidth=Math.round(maxItemHeight/itemHeight*itemWidth);}else if(itemRatio>containerRatio){displayHeight=Math.round(maxItemWidth/itemWidth*itemHeight);}}
if(fixedHeight)
displayHeight=itemHeight;return{width:displayWidth,height:displayHeight,top:Math.floor((maxItemHeight-displayHeight)/2),left:Math.floor((maxItemWidth-displayWidth)/2)};},setItemDimensions=function(itemDimensions){var self=this,resizeFinished=function(){self.$loadingOverlay.stop(true).fadeTo(200,0,function(){self.$loadingOverlay.css('display','none');});setItemInfo.call(self);},doResize=function(properties,complete){if(self.options.wrapperResizeDuration==0){self.$mainWrapper.css(properties);complete();}else{self.$mainWrapper.stop(true).animate(properties,{duration:self.options.wrapperResizeDuration,complete:function(){self.$mainWrapper.css('overflow','');complete();}});}},resizeHeight=function(){if(self.$mainWrapper.height()!=itemDimensions.height)
doResize({height:itemDimensions.height,top:itemDimensions.top},resizeFinished);else
resizeFinished();};self.$loadingOverlay.removeClass('inProgress');if(self.$mainWrapper.width()!=itemDimensions.width)
doResize({width:itemDimensions.width,left:itemDimensions.left},resizeHeight);else
resizeHeight();},showImage=function(currentItem){var self=this,imageInfo=self.images[currentItem.src].stats,width,height;if(!imageInfo.preloadFinished)
return;self.$mainWrapper.addClass(imageItemTypeClass);$('> img',self.$imagesWrapper).removeClass(activeClass).filter('.smbLightImage_'+currentItem.id).addClass(activeClass);if(imageInfo.isLoaded){width=imageInfo.width;height=imageInfo.height;}else{width=400;height=400;self.$imagesWrapper.addClass(imageNotLoadedClass);}
self.$imagesWrapper.addClass(activeClass);setItemDimensions.call(self,getItemDimensions.call(self,width,height));},showVideo=function(currentItemIndex){var self=this,videoHtml='',videoType='',currentItem=self.items[currentItemIndex];if(!self.smbPlus)
self.$mainWrapper.addClass(videoItemTypeClass);switch(currentItem.source){case'youtube':videoHtml='<iframe src="//www.youtube.com/embed/'+
currentItem.videoId+(self.options.autoplayVideo?'?autoplay=1':'')+'" frameborder="0" allowfullscreen></iframe>';break;case'vimeo':videoHtml='<iframe src="//player.vimeo.com/video/'+
currentItem.videoId+(self.options.autoplayVideo?'?autoplay=1':'')+'" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>';break;case'wistia':videoHtml='<iframe name="wistia_embed" src="//fast.wistia.net/embed/iframe/'+
currentItem.videoId+'" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe>';break;case'flowplayer':if(stringEndsWith(currentItem.src,'.mp4')){videoType='video/mp4';}else if(stringEndsWith(currentItem.src,'.webm')){videoType='video/webm';}else if(stringEndsWith(currentItem.src,'.ogg')){videoType='video/ogg';}else if(stringEndsWith(currentItem.src,'.flv')){videoType='video/flash';}
videoHtml='<div class="flowplayerContainer"></div>';}
var $playerContainer=self.$audioVideo;if(self.smbPlus){if(currentItem.source!='flowplayer')
videoHtml='<div>'+videoHtml+'</div>';$playerContainer=$('> div.item_'+self.currentItemIndex,self.$contentWrapper);}else
$playerContainer.addClass(activeClass);$playerContainer.html(videoHtml).removeClass('loading');if(currentItem.source=='flowplayer')
$('> .flowplayerContainer',$playerContainer).flowplayer({swf:self.options.flowplayerSwf,ratio:currentItem.height/currentItem.width,autoplay:self.options.autoplayVideo,tooltip:false,embed:false,clip:{sources:[{type:videoType,src:currentItem.src}]},key:self.options.flowplayer.key,logo:self.options.flowplayer.logo});var playerCss=getItemDimensions.call(self,currentItem.width,currentItem.height,true);if(self.smbPlus)
$('>',$playerContainer).css(playerCss);else
setItemDimensions.call(self,playerCss);self.initialItemLoaded=true;},showAudio=function(currentItem){var self=this;if(!self.smbPlus)
self.$mainWrapper.addClass(audioItemTypeClass);var $playerContainer=self.$audioVideo,audioHtml='<audio src="'+currentItem.src+'" />',selector='> audio';if(self.smbPlus){audioHtml='<div>'+audioHtml+'</div>';selector='> div > audio';$playerContainer=$('> div.item_'+self.currentItemIndex,self.$contentWrapper);}else
$playerContainer.addClass(activeClass);$playerContainer.html(audioHtml).removeClass('loading');audiojs.create($(selector,$playerContainer)[0]);var playerCss=getItemDimensions.call(self,460,36,false,true);if(self.smbPlus)
$('>',$playerContainer).css(playerCss);else
setItemDimensions.call(self,playerCss);self.initialItemLoaded=true;},setItemInfo=function(){var self=this,currentItem=self.items[self.currentItemIndex];if(typeof currentItem.title=='string'&&currentItem.title!='')
self.$itemTitle.html(currentItem.title).stop(true).fadeTo(200,1);if((self.options.socialButtons.facebook||self.options.socialButtons.twitter||self.options.socialButtons.gplus||self.options.socialButtons.inshare||(self.options.socialButtons.pinterest&&currentItem.type=='image'))&&typeof currentItem.socialUrl=='string'&&currentItem.socialUrl!='')
self.$socialButtonsTrigger.css('display','');else
self.$socialButtonsTrigger.css('display','none');},validItemIndex=function(index){var numberOfItems=this.items.length;if(index<0)
index=numberOfItems-1;else if(index>=numberOfItems)
index=0;return index;},showItem=function(){var self=this;self.$itemTitle.text('').stop(true).fadeTo(0,0);self.$socialButtonsTrigger.removeClass('show');self.$socialButtonsWrapper.removeClass('show').html('');self.currentItemIndex=validItemIndex.call(self,self.currentItemIndex);self.$root.removeClass('firstItem lastItem');if(self.currentItemIndex===0)
self.$root.addClass('firstItem');if(self.currentItemIndex===self.items.length-1)
self.$root.addClass('lastItem');if(self.smbPlus){var prevItemIndex=validItemIndex.call(self,self.currentItemIndex-1),nextItemIndex=validItemIndex.call(self,self.currentItemIndex+1);$('> div.videoItem.item_'+prevItemIndex+','+'> div.audioItem.item_'+prevItemIndex+','+'> div.videoItem.item_'+nextItemIndex+','+'> div.audioItem.item_'+nextItemIndex,self.$contentWrapper).html('');setItemInfo.call(self);}
var item=self.items[self.currentItemIndex],itemTypeClass='imageActive';if(item.type=='video')
itemTypeClass='videoActive';else if(item.type=='audio')
itemTypeClass='audioActive';self.$root.removeClass('imageActive videoActive audioActive').addClass(itemTypeClass);self.showItem();},size=function(){var self=this;if(self.smbPlus){var windowHeight=self.$window.height();if(window.innerHeight)
windowHeight=window.innerHeight;windowHeight+=1;self.$root.height(windowHeight);self.overlayWidth=self.$root.width();self.overlayHeight=windowHeight;}else{self.overlayWidth=self.$contentWrapper.width();self.overlayHeight=self.$contentWrapper.height();}
self.center();},swipe=function(indexModifier){var self=this;if(self.skipGestures||indexModifier==-1&&self.currentItemIndex==0||indexModifier==1&&self.currentItemIndex==this.items.length-1)
return;self.skipGestures=true;var newX=-self.currentItemIndex*self.overlayWidth;if(indexModifier==1)
newX-=self.overlayWidth;else
newX+=self.overlayWidth;self.$contentWrapper.removeClass(positionAnimationClass).addClass(swipeAnimationClass).css({transform:'translate3d('+newX+'px, 0, 0)'});setTimeout(function(){self.currentItemIndex+=indexModifier;showItem.call(self);self.skipGestures=false;},250);},showPrevItem=function(){var self=this;if(!self.initialItemLoaded)
return;if(self.smbPlus){swipe.call(self,-1);return;}
self.currentItemIndex-=1;showItem.call(self);},showNextItem=function(){var self=this;if(!self.initialItemLoaded)
return;if(self.smbPlus){swipe.call(self,1);return;}
self.currentItemIndex+=1;showItem.call(self);},close=function(){var self=this;if(typeof self.options.events.onBeforeClose=='function'&&self.options.events.onBeforeClose({activeItem:self.currentItemIndex,displayItems:self.items})===false)
return;self.$document.off('.smbLightEvent');self.$window.off('.smbLightEvent');self.viewClosed=true;self.$root.stop(true).fadeOut(200,function(){self.$root.remove();self.$body.removeClass(smbLightBodyClass);});if(self.smbPlus){if(self.oldViewportMetaContent===undefined)
self.$viewportMeta.remove();else
self.$viewportMeta.attr('content',self.oldViewportMetaContent);if(self.oldIeTapHighlight===undefined)
self.$ieTapHighlight.remove();else
self.$ieTapHighlight.attr('content',self.oldIeTapHighlight);}},inFullscreenMode=function(){if(document.fullscreenElement&&document.fullscreenElement!=null)
return true;else if(document.mozFullScreenElement&&document.mozFullScreenElement!=null)
return true;else if(document.webkitFullscreenElement&&document.webkitFullscreenElement!=null)
return true;return false;},eventListener=function(events,callback){var el=this,registerEvent=function(ev){if(el.addEventListener)
el.addEventListener(ev,callback,false);else if(el.attachEvent)
el.attachEvent(ev,callback);},eventsArray,i,l;if(events.indexOf(' ')==-1){registerEvent(events);return;}
eventsArray=events.split(' ');i=0;l=eventsArray.length;for(;i<l;i++){if(eventsArray[i]=='')
break;registerEvent(eventsArray[i])}},stringEndsWith=function(s,e){return s.indexOf(e,s.length-e.length)!==-1;},updateCommentsUi=function(){var self=this,currentItem=self.items[self.currentItemIndex],itemCommentMeta=self.comments[currentItem.id],commentsHtml='';self.$mainCommentsCount.text(itemCommentMeta.count);self.$internalCommentsCount.text(itemCommentMeta.count);if(itemCommentMeta.cache.comments.length==0){self.$commentList.html('');self.$commentsModal.addClass('noComments');return;}
self.$commentsModal.removeClass('noComments');$.each(itemCommentMeta.cache.comments,function(){var author=itemCommentMeta.cache.authors[this.author],encodedAuthorUrl=encodeURI(author.url),commentHtml='<li>'+'<a class="authorAvatar" href="'+encodedAuthorUrl+'"><img src="'+encodeURI(author.avatar)+'" alt="" /></a>'+'<a class="author" href="'+encodedAuthorUrl+'">'+$('<p />').text(author.name).html()+'</a>'+'<div>'+this.content+'</div>'+'<p class="datetime">'+this.dateHtml+'</p>'+'</li>';if(self.commentSorting=='asc')
commentsHtml+=commentHtml;else
commentsHtml=commentHtml+commentsHtml;});self.$commentList.html(commentsHtml);},initEnviroment=function(items,options){var self=this;self.$body=$('body');if(self.$body.hasClass(smbLightBodyClass)||items.length==0)
return false;self.$body.addClass(smbLightBodyClass);self.$window=$(window);self.$document=$(document);self.initialItemLoaded=false;self.viewClosed=false;self.items=items;self.options=$.extend(true,{},defaultOptions,options);self.currentItemIndex=self.options.openAt;if(self.currentItemIndex<0||self.currentItemIndex>=items.length)
self.currentItemIndex=0;self.images={};return true;},postInit=function(){var self=this;self.$window.on('resize.smbLightEvent',function(){if(self.comments){var currentItem=self.items[self.currentItemIndex],itemCommentMeta=self.comments?self.comments[currentItem.id]:undefined;if(self.desktopVersion&&itemCommentMeta&&itemCommentMeta.state.open)
self.$root.width(self.$window.width()-self.$commentsModal.outerWidth(true));}
size.call(self);});self.$document.on('keyup.smbLightEvent',function(e){switch(e.keyCode){case 37:showPrevItem.call(self);break;case 39:showNextItem.call(self);break;case 27:if(self.commentsOpened){self.closeComments();return false;}
close.call(self);break;default:}
return false;});self.$root.on('click','.navigation',function(){if(self.$root.hasClass('initializing'))
return;if($(this).hasClass('prev'))
showPrevItem.call(self);else
showNextItem.call(self);}).on('click','.close',function(){close.call(self);});self.$socialButtonsTrigger.on('click',function(){if(self.$root.hasClass('initializing'))
return;var currentItem=self.items[self.currentItemIndex];var encodedUri=encodeURIComponent(currentItem.socialUrl);var escapedTitle='';var encodedTitle='';var twitterTitle='';if(typeof currentItem.title=='string'&&currentItem.title!=''){twitterTitle=escapedTitle=currentItem.title.replace(/&/g,'&amp;').replace(/"/g,'&quot;').replace(/'/g,'&#39;').replace(/</g,'&lt;').replace(/>/g,'&gt;');twitterTitle+=' '+currentItem.socialUrl.replace(/&/g,'&amp;').replace(/"/g,'&quot;').replace(/'/g,'&#39;').replace(/</g,'&lt;').replace(/>/g,'&gt;');encodedTitle=encodeURIComponent(currentItem.title);}
var socialButtonsHtml='';if(self.options.socialButtons.facebook)
socialButtonsHtml='<div><iframe src="//www.facebook.com/plugins/like.php?href='+encodedUri+'&amp;width&amp;layout=button_count&amp;action=like&amp;show_faces=false&amp;share=false&amp;height=21" scrolling="no" frameborder="0" style="border:none; overflow:hidden; height:21px; width: 135px;" allowTransparency="true"></iframe></div>';if(self.options.socialButtons.twitter)
socialButtonsHtml+='<div><a href="//twitter.com/share" class="twitter-share-button" data-url="'+encodedUri+'" data-text="'+twitterTitle+'">Tweet</a><script type="text/javascript">twttr.widgets.load();</script></div>';if(self.options.socialButtons.inshare)
socialButtonsHtml+='<div><script type="IN/Share" data-url="'+currentItem.socialUrl+'" data-counter="right"></script><script type="text/javascript">if (IN.parse) IN.parse();</script></div>';if(self.options.socialButtons.pinterest&&currentItem.type=='image')
socialButtonsHtml+='<div><a href="//www.pinterest.com/pin/create/button/?url='+encodedUri+'&media='+encodeURIComponent(currentItem.src)+'&description='+encodedTitle+'" data-pin-do="buttonPin" data-pin-config="beside"><img src="//assets.pinterest.com/images/pidgets/pinit_fg_en_rect_gray_20.png" /></a></div>';if(socialButtonsHtml=='')
return;self.$socialButtonsWrapper.toggleClass('show').html(socialButtonsHtml);if(self.options.socialButtons.pinterest&&currentItem.type=='image')
$.ajax({url:'//assets.pinterest.com/js/pinit.js',dataType:'script',cache:true});$(this).toggleClass('show');});},_=function(s){var self=this,translation=self.options.i18n[s];if(!translation)
return s;return translation;};function Standard(items,options){var self=this,currentItem,controlsHtml='';if(!initEnviroment.call(self,items,options))
return;self.$root=$('<div class="smbLightOverlayWrapper initializing"><div class="contentWrapper"></div></div>');self.$root.addClass(self.options.cssClass);self.$contentWrapper=$('> div.contentWrapper',self.$root);if(items.length>1)
controlsHtml='<span class="navigation prev"><span></span></span>'+'<span class="navigation next"><span></span></span>';controlsHtml+='<span class="close"><span></span></span>'+'<div class="socialButtonsWrapper"></div>'+'<span class="actions socialButtonsTrigger"><span>'+_.call(self,'Share')+'</span></span>';self.$mainWrapper=$('<div class="mainWrapper">'+'<div class="viewWrapper">'+'<div class="images"><p>'+_.call(self,'This image is currently unavailable')+'</p></div>'+'<div class="audioVideo"></div>'+'</div>'+
controlsHtml+'</div>').appendTo(self.$contentWrapper);self.$itemTitle=$('<h2 class="itemTitle" />').appendTo(self.$mainWrapper);self.$loadingOverlay=$('<div class="loadingOverlay inProgress"></div>').appendTo(self.$mainWrapper);self.$imagesWrapper=$('> .viewWrapper > .images',self.$mainWrapper);self.$audioVideo=$('> .viewWrapper > .audioVideo',self.$mainWrapper);self.$socialButtonsWrapper=$('.socialButtonsWrapper',self.$mainWrapper);self.$socialButtonsTrigger=$('.socialButtonsTrigger',self.$mainWrapper);currentItem=self.items[self.currentItemIndex];if(currentItem.type=='image'){preloadImage.call(self,self.currentItemIndex,function(){preloadImages.call(self);});}else{preloadImages.call(self);}
self.$root.appendTo(self.$body);self.main={horizontalSpace:self.$mainWrapper.outerWidth(true)-self.$mainWrapper.width(),verticalSpace:self.$mainWrapper.outerHeight(true)-self.$mainWrapper.height()};size.call(self);self.$root.fadeTo(200,1,function(){if(currentItem.type=='image')
return;showItem.call(self);});postInit.call(self);return self;}
Standard.prototype={center:function(){var self=this,css={},currentItem,imageInfo,dimensionsSet=false,width=0,height=0,maximizeItem=false,fixedHeight=false;if(self.initialItemLoaded){currentItem=self.items[self.currentItemIndex];switch(currentItem.type){case'image':imageInfo=self.images[currentItem.src].stats;if(imageInfo.isLoaded){width=imageInfo.width;height=imageInfo.height;}else{width=400;height=400;}
break;case'video':width=currentItem.width;height=currentItem.height;maximizeItem=true;break;case'audio':width=460;height=36;fixedHeight=true;break;}
css=getItemDimensions.call(self,width,height,maximizeItem,fixedHeight);dimensionsSet=true;}
if(!dimensionsSet){css.width=self.$mainWrapper.width();css.height=self.$mainWrapper.height();css.left=Math.floor((self.overlayWidth-(css.width+self.main.horizontalSpace))/2);css.top=Math.floor((self.overlayHeight-(css.height+self.main.verticalSpace))/2);}
self.$mainWrapper.stop(true).css(css);},showItem:function(){var self=this;self.$imagesWrapper.removeClass(imageNotLoadedClass);self.$loadingOverlay.addClass('inProgress').stop(true).fadeTo(0,1,function(){self.$loadingOverlay.css('display','');});self.$audioVideo.html('');$('> .viewWrapper > div',self.$mainWrapper).removeClass(activeClass);self.$mainWrapper.removeClass(audioItemTypeClass).removeClass(videoItemTypeClass).removeClass(imageItemTypeClass);var currentItem=self.items[self.currentItemIndex];switch(currentItem.type){case'image':showImage.call(self,currentItem);break;case'video':showVideo.call(self,self.currentItemIndex);break;case'audio':showAudio.call(self,currentItem);break;default:self.initialItemLoaded=true;}
if(self.initialItemLoaded)
self.$root.removeClass('initializing');}};function Mobile(items,options){var self=this,currentItem,touch={newTouch:false,startX:0},controlsHtml='';self.smbPlus=true;if(!initEnviroment.call(self,items,options))
return;self.options.wrapperResizeDuration=0;self.$viewportMeta=$('meta[name="viewport"]');self.oldViewportMetaContent=undefined;if(self.$viewportMeta.length>0){self.oldViewportMetaContent=self.$viewportMeta.attr('content');self.$viewportMeta.attr('content','user-scalable=no, width=device-width, initial-scale=1, maximum-scale=1');}else
self.$viewportMeta=$('<meta name="viewport" content="user-scalable=no, width=device-width, initial-scale=1, maximum-scale=1" />').appendTo($('head'));self.$ieTapHighlight=$('meta[name="msapplication-tap-highlight"]');self.oldIeTapHighlight=undefined;if(self.$ieTapHighlight.length>0){self.oldIeTapHighlight=self.$ieTapHighlight.attr('content');self.$ieTapHighlight.attr('content','no');}else
self.$ieTapHighlight=$('<meta name="msapplication-tap-highlight" content="no" />').appendTo($('head'));self.$root=$('<div class="smbLightOverlayWrapper smbPlus initializing">'+'<div class="contentWrapper"></div>'+'</div>').addClass(self.options.cssClass);if(!/android|webos|iphone|ipad|ipod|blackberry|iemobile|opera mini/i.test(navigator.userAgent.toLowerCase())){self.$root.addClass('desktopUserAgent');self.desktopVersion=true;}
self.$contentWrapper=$('> div.contentWrapper',self.$root);controlsHtml='<div class="mobileOverlay"></div><div class="modalOverlay"></div>';if(items.length>1)
controlsHtml+='<span class="navigation prev"><span></span></span>'+'<span class="navigation next"><span></span></span>';controlsHtml+='<span class="close"><span></span></span>'+'<div class="socialButtonsWrapper"></div>'+'<span class="actions socialButtonsTrigger"><span>'+_.call(self,'Share')+'</span></span>';self.$root.append(controlsHtml);self.$itemTitle=$('<h2 class="itemTitle" />').appendTo(self.$root);self.$socialButtonsWrapper=$('.socialButtonsWrapper',self.$root);self.$socialButtonsTrigger=$('.socialButtonsTrigger',self.$root);self.$modalOverlay=$('> .modalOverlay',self.$root);if(self.options.comments.permissions.show){self.comments={};self.$root.append('<span class="actions commentsTrigger"><span>0</span></span>'+'<div class="commentsModalWrapper">'+'<div class="main">'+'<div class="top">'+'<span class="comments">0</span>'+'<span class="likes">0</span>'+'<span class="sort">'+_.call(self,'Sort')+'</span>'+'</div>'+'<ul />'+'<p class="noComments">'+_.call(self,'No comments yet')+'</p>'+'<div class="newCommentWrapper">'+'<textarea placeholder="'+_.call(self,'Write a comment')+'"></textarea>'+'<button>'+_.call(self,'Post')+'</button>'+'</div>'+'</div>'+'<div class="anonymCommentWrapper">'+'<p>'+_.call(self,'Add a comment')+'</p>'+'<div class="authorName"><input type="text" placeholder="'+_.call(self,'Name')+'" /></div>'+'<div class="authorEmail"><input type="text" placeholder="'+_.call(self,'Email')+'" /></div>'+'<div class="authorTextarea"><textarea placeholder="'+_.call(self,'Write a comment')+'"></textarea></div>'+
(self.options.comments.requireAuthorInfo&&self.options.comments.useReCaptcha?'<div class="captchaContainer"><p class="captchaError">'+_.call(self,'Please solve the test correctly.')+'</p><div class="captcha"></div></div>':'')+'<div class="actions"><button class="cancel">'+_.call(self,'Cancel')+'</button><button class="post">'+_.call(self,'Post')+'</button></div>'+'</div>'+'<span class="closeComments">'+_.call(self,'Hide')+'</span>'+'<p class="loading">'+_.call(self,'Loading comments')+'</p>'+'</div>');self.$commentsTrigger=$('> .actions.commentsTrigger',self.$root);self.$mainCommentsCount=$('> span',self.$commentsTrigger);self.$commentsModal=$('> .commentsModalWrapper',self.$root);self.$commentsMainWrapper=$('> .main',self.$commentsModal);self.$newCommentWrapper=$('> .newCommentWrapper',self.$commentsMainWrapper);self.$newCommentInput=$('> textarea',self.$newCommentWrapper);self.$newCommentButton=$('> button',self.$newCommentWrapper);self.$commentsTopBar=$('> .top',self.$commentsMainWrapper);self.$internalCommentsCount=$('> .comments',self.$commentsTopBar);self.$commentsLikes=$('> .likes',self.$commentsTopBar);self.$commentsSorting=$('> .sort',self.$commentsTopBar);self.$commentList=$('> ul',self.$commentsMainWrapper);self.$anonymCommentWrapper=$('> .anonymCommentWrapper',self.$commentsModal);self.$anonymCommenterNameInput=$('> .authorName > input',self.$anonymCommentWrapper);self.$anonymCommenterEmailInput=$('> .authorEmail > input',self.$anonymCommentWrapper);self.$anonymCommentInput=$('> .authorTextarea > textarea',self.$anonymCommentWrapper);self.$anonymCommentCancel=$('> .actions > .cancel',self.$anonymCommentWrapper);self.$anonymCommentPost=$('> .actions > .post',self.$anonymCommentWrapper);self.$newCommentCaptchaContainer=$('> .captchaContainer',self.$anonymCommentWrapper);self.commentSorting='asc';self.addingAjaxRequest=undefined;self.commentsOpened=false;self.commentsAnimationTimeout;var reCaptchaId;self.$commentsTrigger.on('click',function(){if(self.desktopVersion&&self.commentsOpened==true){self.closeComments();return;}
self.updateItemComments();if(self.desktopVersion){self.commentsOpened=true;clearTimeout(self.commentsAnimationTimeout);self.$root.addClass('animateComments moveComments');self.commentsAnimationTimeout=setTimeout(function(){self.$root.removeClass('animateComments moveComments');self.$root.width(self.$root.width()-self.$commentsModal.outerWidth(true));size.call(self);},200);}else{self.$root.addClass('modalActive');self.$modalOverlay.stop(true).animate({opacity:1},{duration:200});}});self.$commentsSorting.on('click',function(){if(self.commentSorting=='asc')
self.commentSorting='desc';else
self.commentSorting='asc';self.$commentsSorting.toggleClass('desc',self.commentSorting=='desc');updateCommentsUi.call(self);});self.$commentsModal.on('click','> span.closeComments',function(){self.closeComments();});self.$newCommentInput.on('change keyup',function(){var val=self.$newCommentInput.val();self.$newCommentWrapper.toggleClass('filledIn',val!=='');}).on('focus',function(){if(!self.options.comments.requireAuthorInfo)
return;self.$anonymCommenterNameInput.trigger('focus').val('').parent().removeClass('error');self.$anonymCommenterEmailInput.val('').parent().removeClass('error');self.$anonymCommentInput.val('').parent().removeClass('error');self.$newCommentCaptchaContainer.removeClass('error');if(self.options.comments.useReCaptcha){if(reCaptchaId)
grecaptcha.reset(reCaptchaId);else
reCaptchaId=grecaptcha.render($('> .captcha',self.$newCommentCaptchaContainer)[0],{sitekey:self.options.googleReCaptchaSiteKey,size:'compact'});}
self.$commentsModal.addClass('showAnonymWindow');});self.$anonymCommentCancel.on('click',function(){self.$commentsModal.removeClass('showAnonymWindow');self.$anonymCommentWrapper.removeClass('addingAnonComment');if(self.addingAjaxRequest){self.addingAjaxRequest.abort();self.addingAjaxRequest=undefined;}});var submitComment=function(e,authorName,authorEmail,comment,captcha,anonComment){var activeItemIndex=self.currentItemIndex,currentItem=self.items[activeItemIndex],itemCommentMeta=self.comments[currentItem.id],newComment=self.options.comments.requireAuthorInfo?comment:self.$newCommentInput.val(),params={action:'add_comment'},error=false;if(newComment===''||self.$newCommentWrapper.hasClass('addingComment'))
return;self.$newCommentCaptchaContainer.removeClass('error');self.$newCommentInput.val('');self.$newCommentWrapper.removeClass('filledIn').addClass('addingComment');params.comment=newComment;if(self.options.comments.requireAuthorInfo){params.name=authorName;params.email=authorEmail;}
if(captcha)
params.captcha=captcha;self.addingAjaxRequest=$.ajax({data:params,dataType:'json',type:'POST',url:currentItem.comments.backend,timeout:30000,cache:false,error:function(){},success:function(response){if(response.status==undefined)
return;if(response.status=='success'){itemCommentMeta.cache.comments.push({author:response.author.id,content:response.comment,raw:newComment,id:response.id,dateHtml:response.dateHtml});itemCommentMeta.count+=1;if(itemCommentMeta.cache.authors[response.author.id]==undefined)
itemCommentMeta.cache.authors[response.author.id]={avatar:response.author.avatar,name:response.author.name,url:response.author.url};}else if(response.status=='captcha_error'){self.$newCommentCaptchaContainer.addClass('error');error=true;}},complete:function(){self.addingAjaxRequest=undefined;if(!itemCommentMeta.state.open||activeItemIndex!=self.currentItemIndex)
return;if(anonComment){self.$anonymCommentWrapper.removeClass('addingAnonComment');self.$anonymCommentPost.text(_.call(self,'Post'));}
self.$newCommentWrapper.removeClass('addingComment');if(error)
return;if(anonComment){self.$commentsModal.removeClass('showAnonymWindow');self.$newCommentCaptchaContainer.removeClass('error');}
updateCommentsUi.call(self);}});};self.$anonymCommentPost.on('click',function(){var authorName=self.$anonymCommenterNameInput.val(),authorEmail=self.$anonymCommenterEmailInput.val(),comment=self.$anonymCommentInput.val(),hasErrors=false,captcha=undefined;self.$anonymCommenterNameInput.attr('placeholder',_.call(self,'Name'));self.$anonymCommenterEmailInput.attr('placeholder',_.call(self,'Email'));self.$anonymCommentInput.attr('placeholder',_.call(self,'Write a comment'));self.$anonymCommenterNameInput.parent().removeClass('error');self.$anonymCommenterEmailInput.parent().removeClass('error');self.$anonymCommentInput.parent().removeClass('error');if(!authorName){self.$anonymCommenterNameInput.attr('placeholder',_.call(self,'Please specify your name')).parent().addClass('error');hasErrors=true;}
if(!authorEmail||!emailVerification.test(authorEmail)){self.$anonymCommenterEmailInput.attr('placeholder',_.call(self,'Please specify your email')).parent().addClass('error');hasErrors=true;}
if(!comment){self.$anonymCommentInput.attr('placeholder',_.call(self,'Please write a comment')).parent().addClass('error');hasErrors=true;}
if(self.options.comments.useReCaptcha){captcha=grecaptcha.getResponse(reCaptchaId);if(captcha.length==0){self.$newCommentCaptchaContainer.addClass('error');hasErrors=true;}}
if(hasErrors){return;}
self.$anonymCommentWrapper.addClass('addingAnonComment');self.$anonymCommentPost.text(_.call(self,'Commenting'));submitComment({},authorName,authorEmail,comment,captcha,true);});self.$newCommentButton.on('click',submitComment);}
if(self.options.like.permissions.liking){self.$root.append('<span class="actions likeTrigger"><span>0</span></span>');self.$likeTrigger=$('> .actions.likeTrigger',self.$root);self.$mainLikeCount=$('> span',self.$likeTrigger);self.$likeTrigger.on('click',function(){if(self.$root.hasClass('initializing'))
return;var activeItemIndex=self.currentItemIndex,currentItem=self.items[activeItemIndex],liked=!currentItem.likes.likedByUser,params={portalId:self.options.portalId,moduleId:self.options.moduleId,mediaId:currentItem.id};currentItem.likes.likedByUser=liked;if(liked)
currentItem.likes.numOfLikes+=1;else
if(currentItem.likes.numOfLikes>0)
currentItem.likes.numOfLikes-=1;self.$mainLikeCount.text(currentItem.likes.numOfLikes);self.$likeTrigger.toggleClass('liked',liked);if(typeof currentItem.journalId=='number'){params.action='like';params.journalid=currentItem.journalId;params.liked=liked;}else{params.action='media_like';params.vote=liked?1:-1;}
$.ajax({data:params,dataType:'json',type:'POST',url:self.options.websiteRoot+'DesktopModules/EasyDNNGallery/Services/SocialMediaBox.ashx',timeout:10000,cache:false,error:function(){},success:function(){},complete:function(){}});});}
self.$root.appendTo(self.$body);self.main={horizontalSpace:0,verticalSpace:0};$.each(self.items,function(itemIndex){var $itemDiv=$('<div></div>');$itemDiv.addClass('loading item_'+itemIndex).data('itemIndex',itemIndex);if(this.type=='image'){$itemDiv.addClass('imageItem');}else if(this.type=='video'){$itemDiv.addClass('videoItem');}else if(this.type=='audio'){$itemDiv.addClass('audioItem');}
$itemDiv.appendTo(self.$contentWrapper)});size.call(self);self.$root.addClass('show');setTimeout(function(){showItem.call(self);},200);var hammerTime=new Hammer($('> .mobileOverlay',self.$root)[0]);self.skipGestures=false;var tapTimeout;hammerTime.on('swipeleft swiperight panleft panright panend tap',function(event){var currentItemOffset=-(self.currentItemIndex*self.overlayWidth),deltaX=event.deltaX;if(event.type=='tap'){clearTimeout(tapTimeout);if(self.$root.hasClass('hideControls')){self.$root.removeClass('hideControls fadeOutControls');}else{self.$root.addClass('fadeOutControls');tapTimeout=setTimeout(function(){self.$root.addClass('hideControls');},500);}
return;}
if(self.skipGestures||!self.initialItemLoaded)
return;if((event.type=='swipeleft'||event.type=='swiperight')&&items.length>1){if(event.type=='swipeleft')
if(self.currentItemIndex<self.items.length-1)
showNextItem.call(self);else
if(self.currentItemIndex==0)
showPrevItem.call(self);return;}
if(event.type=='panend'){if(self.currentItemIndex==0&&deltaX>=0||self.currentItemIndex==self.items.length-1&&deltaX<0||Math.abs(deltaX)<self.overlayWidth/2){self.$contentWrapper.removeClass(swipeAnimationClass).addClass(positionAnimationClass).css({transform:'translate3d('+currentItemOffset+'px, 0, 0)'});return;}
self.skipGestures=true;var newX=-self.overlayWidth;var indexModifier=1;if(deltaX>0){newX=self.overlayWidth;indexModifier=-1;}
newX=currentItemOffset+newX;self.$contentWrapper.addClass(positionAnimationClass).removeClass(swipeAnimationClass).css({transform:'translate3d('+newX+'px, 0, 0)'});setTimeout(function(){self.skipGestures=false;self.currentItemIndex+=indexModifier;showItem.call(self);},550);return;}
if(self.currentItemIndex==0&&deltaX>=0||self.currentItemIndex==self.items.length-1&&deltaX<0){deltaX=1-Math.abs(deltaX)/self.overlayWidth;if(deltaX<.5){deltaX=Math.round(self.overlayWidth/4);if(event.deltaX<1)
deltaX=-deltaX;}else
deltaX=Math.round(deltaX*event.deltaX);}
self.$contentWrapper.removeClass(positionAnimationClass).removeClass(swipeAnimationClass).css({transform:'translate3d('+(currentItemOffset+deltaX)+'px, 0, 0)'});});postInit.call(self);return self;}
Mobile.prototype={center:function(){var self=this,commentListHeight=0;if(self.options.comments.permissions.show){commentListHeight=$('>',self.$commentsModal).height()-self.$commentsTopBar.outerHeight(true)-self.$newCommentWrapper.outerHeight(true);if(commentListHeight<0)
commentListHeight=0;self.$commentList.css('height',commentListHeight);};self.$contentWrapper.removeClass(positionAnimationClass).removeClass(swipeAnimationClass).css({width:self.items.length*self.overlayWidth,transform:'translate3d(-'+self.currentItemIndex*self.overlayWidth+'px, 0, 0)'});$('>',self.$contentWrapper).width(self.overlayWidth).each(function(){var $itemContainer=$(this),itemIndex=$itemContainer.data('itemIndex'),item=self.items[itemIndex];if($itemContainer.hasClass('loading')||(item.type!='image'&&itemIndex!=self.currentItemIndex))
return;if(item.type=='image'){var imageStats=self.images[item.src].stats;$('> img',$itemContainer).css(getItemDimensions.call(self,imageStats.width,imageStats.height,false));}else if(item.type=='video'){$('> div',$itemContainer).css(getItemDimensions.call(self,item.width,item.height,true));}else if(item.type=='audio'){$('> div',$itemContainer).css(getItemDimensions.call(self,460,36,false,true));}});},showItem:function(){var self=this,$currentDomItem=$('> div.item_'+self.currentItemIndex,self.$contentWrapper),thisItemIndex=self.currentItemIndex,currentItem=self.items[thisItemIndex],preloadNeighbours=function(){if(thisItemIndex>0)
preloadImage.call(self,validItemIndex.call(self,thisItemIndex-1));if(thisItemIndex<self.items.length-1)
preloadImage.call(self,validItemIndex.call(self,thisItemIndex+1));};self.$contentWrapper.removeClass(positionAnimationClass).removeClass(swipeAnimationClass).css({transform:'translate3d(-'+thisItemIndex*self.overlayWidth+'px, 0, 0)'});if(self.options.comments.permissions.show){self.$newCommentInput.val('');self.$newCommentWrapper.removeClass('filledIn');if(!self.comments[currentItem.id])
self.comments[currentItem.id]={state:{open:false,commentsRequest:ajaxState.UNSET},count:currentItem.comments.count,cache:{authors:{},comments:[]}};self.$mainCommentsCount.text(self.comments[currentItem.id].count);if(self.desktopVersion){$.each(self.comments,function(){this.state.open=false;});self.updateItemComments();}}
if(self.options.like.permissions.liking){self.$likeTrigger.toggleClass('liked',currentItem.likes.likedByUser);self.$mainLikeCount.text(currentItem.likes.numOfLikes);}
switch(currentItem.type){case'image':if($currentDomItem.data(itemDomInitKey))
return;preloadImage.call(self,thisItemIndex,function(){if(self.currentItemIndex!=thisItemIndex)
return;self.initialItemLoaded=true;preloadNeighbours();});$currentDomItem.data(itemDomInitKey,true);break;case'video':showVideo.call(self,self.currentItemIndex);break;case'audio':showAudio.call(self,currentItem);break;default:self.initialItemLoaded=true;}
if(currentItem.type!='image')
preloadNeighbours();self.$root.removeClass('initializing');},updateItemComments:function(){var self=this,activeItemIndex=self.currentItemIndex,currentItem=self.items[activeItemIndex],itemCommentMeta=self.comments[currentItem.id];if(itemCommentMeta.state.open||self.$root.hasClass('initializing'))
return;itemCommentMeta.state.open=true;if(itemCommentMeta.state.commentsRequest==ajaxState.UNSET){itemCommentMeta.state.commentsRequest=ajaxState.SENT;self.$commentsModal.addClass('loading');$.ajax({data:{action:'list_comments'},dataType:'json',type:'GET',url:currentItem.comments.backend,timeout:15000,cache:false,error:function(){itemCommentMeta.state.commentsRequest=ajaxState.UNSET;},success:function(response){itemCommentMeta.cache=response;itemCommentMeta.count=response.comments.length;itemCommentMeta.state.commentsRequest=ajaxState.DONE;},complete:function(){if(!itemCommentMeta.state.open||activeItemIndex!=self.currentItemIndex)
return;self.$commentsModal.removeClass('loading');updateCommentsUi.call(self);}});}else{updateCommentsUi.call(self);self.$commentsModal.removeClass('loading');}
self.$internalCommentsCount.text(itemCommentMeta.count);self.$commentsLikes.text(currentItem.likes.numOfLikes).toggleClass('liked',currentItem.likes.likedByUser);},closeComments:function(){var self=this,currentItem=self.items[self.currentItemIndex],itemCommentMeta=self.comments[currentItem.id];itemCommentMeta.state.open=false;if(self.desktopVersion){clearTimeout(self.commentsAnimationTimeout);self.$root.addClass('moveComments');self.$root.css('width','');size.call(self);self.$root.addClass('animateComments').removeClass('moveComments');self.commentsAnimationTimeout=setTimeout(function(){self.$root.removeClass('animateComments');},300);}else{self.$root.removeClass('modalActive');self.$modalOverlay.stop(true).animate({opacity:0},{duration:200});}
self.$commentsModal.removeClass('showAnonymWindow');self.$anonymCommentWrapper.removeClass('addingAnonComment');self.commentsOpened=false;}};window.SmbLight_1=function(items,options){if(!(this instanceof SmbLight_1))
return new SmbLight_1(items,options);if(options.mobile)
return new Mobile(items,options);return new Standard(items,options);}})(eds3_5_jq,window);
;;;/*! Hammer.JS - v2.0.4 - 2014-09-28
 * http://hammerjs.github.io/
 *
 * Copyright (c) 2014 Jorik Tangelder;
 * Licensed under the MIT license */
!function(a,b,c,d){"use strict";function e(a,b,c){return setTimeout(k(a,c),b)}function f(a,b,c){return Array.isArray(a)?(g(a,c[b],c),!0):!1}function g(a,b,c){var e;if(a)if(a.forEach)a.forEach(b,c);else if(a.length!==d)for(e=0;e<a.length;)b.call(c,a[e],e,a),e++;else for(e in a)a.hasOwnProperty(e)&&b.call(c,a[e],e,a)}function h(a,b,c){for(var e=Object.keys(b),f=0;f<e.length;)(!c||c&&a[e[f]]===d)&&(a[e[f]]=b[e[f]]),f++;return a}function i(a,b){return h(a,b,!0)}function j(a,b,c){var d,e=b.prototype;d=a.prototype=Object.create(e),d.constructor=a,d._super=e,c&&h(d,c)}function k(a,b){return function(){return a.apply(b,arguments)}}function l(a,b){return typeof a==kb?a.apply(b?b[0]||d:d,b):a}function m(a,b){return a===d?b:a}function n(a,b,c){g(r(b),function(b){a.addEventListener(b,c,!1)})}function o(a,b,c){g(r(b),function(b){a.removeEventListener(b,c,!1)})}function p(a,b){for(;a;){if(a==b)return!0;a=a.parentNode}return!1}function q(a,b){return a.indexOf(b)>-1}function r(a){return a.trim().split(/\s+/g)}function s(a,b,c){if(a.indexOf&&!c)return a.indexOf(b);for(var d=0;d<a.length;){if(c&&a[d][c]==b||!c&&a[d]===b)return d;d++}return-1}function t(a){return Array.prototype.slice.call(a,0)}function u(a,b,c){for(var d=[],e=[],f=0;f<a.length;){var g=b?a[f][b]:a[f];s(e,g)<0&&d.push(a[f]),e[f]=g,f++}return c&&(d=b?d.sort(function(a,c){return a[b]>c[b]}):d.sort()),d}function v(a,b){for(var c,e,f=b[0].toUpperCase()+b.slice(1),g=0;g<ib.length;){if(c=ib[g],e=c?c+f:b,e in a)return e;g++}return d}function w(){return ob++}function x(a){var b=a.ownerDocument;return b.defaultView||b.parentWindow}function y(a,b){var c=this;this.manager=a,this.callback=b,this.element=a.element,this.target=a.options.inputTarget,this.domHandler=function(b){l(a.options.enable,[a])&&c.handler(b)},this.init()}function z(a){var b,c=a.options.inputClass;return new(b=c?c:rb?N:sb?Q:qb?S:M)(a,A)}function A(a,b,c){var d=c.pointers.length,e=c.changedPointers.length,f=b&yb&&d-e===0,g=b&(Ab|Bb)&&d-e===0;c.isFirst=!!f,c.isFinal=!!g,f&&(a.session={}),c.eventType=b,B(a,c),a.emit("hammer.input",c),a.recognize(c),a.session.prevInput=c}function B(a,b){var c=a.session,d=b.pointers,e=d.length;c.firstInput||(c.firstInput=E(b)),e>1&&!c.firstMultiple?c.firstMultiple=E(b):1===e&&(c.firstMultiple=!1);var f=c.firstInput,g=c.firstMultiple,h=g?g.center:f.center,i=b.center=F(d);b.timeStamp=nb(),b.deltaTime=b.timeStamp-f.timeStamp,b.angle=J(h,i),b.distance=I(h,i),C(c,b),b.offsetDirection=H(b.deltaX,b.deltaY),b.scale=g?L(g.pointers,d):1,b.rotation=g?K(g.pointers,d):0,D(c,b);var j=a.element;p(b.srcEvent.target,j)&&(j=b.srcEvent.target),b.target=j}function C(a,b){var c=b.center,d=a.offsetDelta||{},e=a.prevDelta||{},f=a.prevInput||{};(b.eventType===yb||f.eventType===Ab)&&(e=a.prevDelta={x:f.deltaX||0,y:f.deltaY||0},d=a.offsetDelta={x:c.x,y:c.y}),b.deltaX=e.x+(c.x-d.x),b.deltaY=e.y+(c.y-d.y)}function D(a,b){var c,e,f,g,h=a.lastInterval||b,i=b.timeStamp-h.timeStamp;if(b.eventType!=Bb&&(i>xb||h.velocity===d)){var j=h.deltaX-b.deltaX,k=h.deltaY-b.deltaY,l=G(i,j,k);e=l.x,f=l.y,c=mb(l.x)>mb(l.y)?l.x:l.y,g=H(j,k),a.lastInterval=b}else c=h.velocity,e=h.velocityX,f=h.velocityY,g=h.direction;b.velocity=c,b.velocityX=e,b.velocityY=f,b.direction=g}function E(a){for(var b=[],c=0;c<a.pointers.length;)b[c]={clientX:lb(a.pointers[c].clientX),clientY:lb(a.pointers[c].clientY)},c++;return{timeStamp:nb(),pointers:b,center:F(b),deltaX:a.deltaX,deltaY:a.deltaY}}function F(a){var b=a.length;if(1===b)return{x:lb(a[0].clientX),y:lb(a[0].clientY)};for(var c=0,d=0,e=0;b>e;)c+=a[e].clientX,d+=a[e].clientY,e++;return{x:lb(c/b),y:lb(d/b)}}function G(a,b,c){return{x:b/a||0,y:c/a||0}}function H(a,b){return a===b?Cb:mb(a)>=mb(b)?a>0?Db:Eb:b>0?Fb:Gb}function I(a,b,c){c||(c=Kb);var d=b[c[0]]-a[c[0]],e=b[c[1]]-a[c[1]];return Math.sqrt(d*d+e*e)}function J(a,b,c){c||(c=Kb);var d=b[c[0]]-a[c[0]],e=b[c[1]]-a[c[1]];return 180*Math.atan2(e,d)/Math.PI}function K(a,b){return J(b[1],b[0],Lb)-J(a[1],a[0],Lb)}function L(a,b){return I(b[0],b[1],Lb)/I(a[0],a[1],Lb)}function M(){this.evEl=Nb,this.evWin=Ob,this.allow=!0,this.pressed=!1,y.apply(this,arguments)}function N(){this.evEl=Rb,this.evWin=Sb,y.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}function O(){this.evTarget=Ub,this.evWin=Vb,this.started=!1,y.apply(this,arguments)}function P(a,b){var c=t(a.touches),d=t(a.changedTouches);return b&(Ab|Bb)&&(c=u(c.concat(d),"identifier",!0)),[c,d]}function Q(){this.evTarget=Xb,this.targetIds={},y.apply(this,arguments)}function R(a,b){var c=t(a.touches),d=this.targetIds;if(b&(yb|zb)&&1===c.length)return d[c[0].identifier]=!0,[c,c];var e,f,g=t(a.changedTouches),h=[],i=this.target;if(f=c.filter(function(a){return p(a.target,i)}),b===yb)for(e=0;e<f.length;)d[f[e].identifier]=!0,e++;for(e=0;e<g.length;)d[g[e].identifier]&&h.push(g[e]),b&(Ab|Bb)&&delete d[g[e].identifier],e++;return h.length?[u(f.concat(h),"identifier",!0),h]:void 0}function S(){y.apply(this,arguments);var a=k(this.handler,this);this.touch=new Q(this.manager,a),this.mouse=new M(this.manager,a)}function T(a,b){this.manager=a,this.set(b)}function U(a){if(q(a,bc))return bc;var b=q(a,cc),c=q(a,dc);return b&&c?cc+" "+dc:b||c?b?cc:dc:q(a,ac)?ac:_b}function V(a){this.id=w(),this.manager=null,this.options=i(a||{},this.defaults),this.options.enable=m(this.options.enable,!0),this.state=ec,this.simultaneous={},this.requireFail=[]}function W(a){return a&jc?"cancel":a&hc?"end":a&gc?"move":a&fc?"start":""}function X(a){return a==Gb?"down":a==Fb?"up":a==Db?"left":a==Eb?"right":""}function Y(a,b){var c=b.manager;return c?c.get(a):a}function Z(){V.apply(this,arguments)}function $(){Z.apply(this,arguments),this.pX=null,this.pY=null}function _(){Z.apply(this,arguments)}function ab(){V.apply(this,arguments),this._timer=null,this._input=null}function bb(){Z.apply(this,arguments)}function cb(){Z.apply(this,arguments)}function db(){V.apply(this,arguments),this.pTime=!1,this.pCenter=!1,this._timer=null,this._input=null,this.count=0}function eb(a,b){return b=b||{},b.recognizers=m(b.recognizers,eb.defaults.preset),new fb(a,b)}function fb(a,b){b=b||{},this.options=i(b,eb.defaults),this.options.inputTarget=this.options.inputTarget||a,this.handlers={},this.session={},this.recognizers=[],this.element=a,this.input=z(this),this.touchAction=new T(this,this.options.touchAction),gb(this,!0),g(b.recognizers,function(a){var b=this.add(new a[0](a[1]));a[2]&&b.recognizeWith(a[2]),a[3]&&b.requireFailure(a[3])},this)}function gb(a,b){var c=a.element;g(a.options.cssProps,function(a,d){c.style[v(c.style,d)]=b?a:""})}function hb(a,c){var d=b.createEvent("Event");d.initEvent(a,!0,!0),d.gesture=c,c.target.dispatchEvent(d)}var ib=["","webkit","moz","MS","ms","o"],jb=b.createElement("div"),kb="function",lb=Math.round,mb=Math.abs,nb=Date.now,ob=1,pb=/mobile|tablet|ip(ad|hone|od)|android/i,qb="ontouchstart"in a,rb=v(a,"PointerEvent")!==d,sb=qb&&pb.test(navigator.userAgent),tb="touch",ub="pen",vb="mouse",wb="kinect",xb=25,yb=1,zb=2,Ab=4,Bb=8,Cb=1,Db=2,Eb=4,Fb=8,Gb=16,Hb=Db|Eb,Ib=Fb|Gb,Jb=Hb|Ib,Kb=["x","y"],Lb=["clientX","clientY"];y.prototype={handler:function(){},init:function(){this.evEl&&n(this.element,this.evEl,this.domHandler),this.evTarget&&n(this.target,this.evTarget,this.domHandler),this.evWin&&n(x(this.element),this.evWin,this.domHandler)},destroy:function(){this.evEl&&o(this.element,this.evEl,this.domHandler),this.evTarget&&o(this.target,this.evTarget,this.domHandler),this.evWin&&o(x(this.element),this.evWin,this.domHandler)}};var Mb={mousedown:yb,mousemove:zb,mouseup:Ab},Nb="mousedown",Ob="mousemove mouseup";j(M,y,{handler:function(a){var b=Mb[a.type];b&yb&&0===a.button&&(this.pressed=!0),b&zb&&1!==a.which&&(b=Ab),this.pressed&&this.allow&&(b&Ab&&(this.pressed=!1),this.callback(this.manager,b,{pointers:[a],changedPointers:[a],pointerType:vb,srcEvent:a}))}});var Pb={pointerdown:yb,pointermove:zb,pointerup:Ab,pointercancel:Bb,pointerout:Bb},Qb={2:tb,3:ub,4:vb,5:wb},Rb="pointerdown",Sb="pointermove pointerup pointercancel";a.MSPointerEvent&&(Rb="MSPointerDown",Sb="MSPointerMove MSPointerUp MSPointerCancel"),j(N,y,{handler:function(a){var b=this.store,c=!1,d=a.type.toLowerCase().replace("ms",""),e=Pb[d],f=Qb[a.pointerType]||a.pointerType,g=f==tb,h=s(b,a.pointerId,"pointerId");e&yb&&(0===a.button||g)?0>h&&(b.push(a),h=b.length-1):e&(Ab|Bb)&&(c=!0),0>h||(b[h]=a,this.callback(this.manager,e,{pointers:b,changedPointers:[a],pointerType:f,srcEvent:a}),c&&b.splice(h,1))}});var Tb={touchstart:yb,touchmove:zb,touchend:Ab,touchcancel:Bb},Ub="touchstart",Vb="touchstart touchmove touchend touchcancel";j(O,y,{handler:function(a){var b=Tb[a.type];if(b===yb&&(this.started=!0),this.started){var c=P.call(this,a,b);b&(Ab|Bb)&&c[0].length-c[1].length===0&&(this.started=!1),this.callback(this.manager,b,{pointers:c[0],changedPointers:c[1],pointerType:tb,srcEvent:a})}}});var Wb={touchstart:yb,touchmove:zb,touchend:Ab,touchcancel:Bb},Xb="touchstart touchmove touchend touchcancel";j(Q,y,{handler:function(a){var b=Wb[a.type],c=R.call(this,a,b);c&&this.callback(this.manager,b,{pointers:c[0],changedPointers:c[1],pointerType:tb,srcEvent:a})}}),j(S,y,{handler:function(a,b,c){var d=c.pointerType==tb,e=c.pointerType==vb;if(d)this.mouse.allow=!1;else if(e&&!this.mouse.allow)return;b&(Ab|Bb)&&(this.mouse.allow=!0),this.callback(a,b,c)},destroy:function(){this.touch.destroy(),this.mouse.destroy()}});var Yb=v(jb.style,"touchAction"),Zb=Yb!==d,$b="compute",_b="auto",ac="manipulation",bc="none",cc="pan-x",dc="pan-y";T.prototype={set:function(a){a==$b&&(a=this.compute()),Zb&&(this.manager.element.style[Yb]=a),this.actions=a.toLowerCase().trim()},update:function(){this.set(this.manager.options.touchAction)},compute:function(){var a=[];return g(this.manager.recognizers,function(b){l(b.options.enable,[b])&&(a=a.concat(b.getTouchAction()))}),U(a.join(" "))},preventDefaults:function(a){if(!Zb){var b=a.srcEvent,c=a.offsetDirection;if(this.manager.session.prevented)return void b.preventDefault();var d=this.actions,e=q(d,bc),f=q(d,dc),g=q(d,cc);return e||f&&c&Hb||g&&c&Ib?this.preventSrc(b):void 0}},preventSrc:function(a){this.manager.session.prevented=!0,a.preventDefault()}};var ec=1,fc=2,gc=4,hc=8,ic=hc,jc=16,kc=32;V.prototype={defaults:{},set:function(a){return h(this.options,a),this.manager&&this.manager.touchAction.update(),this},recognizeWith:function(a){if(f(a,"recognizeWith",this))return this;var b=this.simultaneous;return a=Y(a,this),b[a.id]||(b[a.id]=a,a.recognizeWith(this)),this},dropRecognizeWith:function(a){return f(a,"dropRecognizeWith",this)?this:(a=Y(a,this),delete this.simultaneous[a.id],this)},requireFailure:function(a){if(f(a,"requireFailure",this))return this;var b=this.requireFail;return a=Y(a,this),-1===s(b,a)&&(b.push(a),a.requireFailure(this)),this},dropRequireFailure:function(a){if(f(a,"dropRequireFailure",this))return this;a=Y(a,this);var b=s(this.requireFail,a);return b>-1&&this.requireFail.splice(b,1),this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(a){return!!this.simultaneous[a.id]},emit:function(a){function b(b){c.manager.emit(c.options.event+(b?W(d):""),a)}var c=this,d=this.state;hc>d&&b(!0),b(),d>=hc&&b(!0)},tryEmit:function(a){return this.canEmit()?this.emit(a):void(this.state=kc)},canEmit:function(){for(var a=0;a<this.requireFail.length;){if(!(this.requireFail[a].state&(kc|ec)))return!1;a++}return!0},recognize:function(a){var b=h({},a);return l(this.options.enable,[this,b])?(this.state&(ic|jc|kc)&&(this.state=ec),this.state=this.process(b),void(this.state&(fc|gc|hc|jc)&&this.tryEmit(b))):(this.reset(),void(this.state=kc))},process:function(){},getTouchAction:function(){},reset:function(){}},j(Z,V,{defaults:{pointers:1},attrTest:function(a){var b=this.options.pointers;return 0===b||a.pointers.length===b},process:function(a){var b=this.state,c=a.eventType,d=b&(fc|gc),e=this.attrTest(a);return d&&(c&Bb||!e)?b|jc:d||e?c&Ab?b|hc:b&fc?b|gc:fc:kc}}),j($,Z,{defaults:{event:"pan",threshold:10,pointers:1,direction:Jb},getTouchAction:function(){var a=this.options.direction,b=[];return a&Hb&&b.push(dc),a&Ib&&b.push(cc),b},directionTest:function(a){var b=this.options,c=!0,d=a.distance,e=a.direction,f=a.deltaX,g=a.deltaY;return e&b.direction||(b.direction&Hb?(e=0===f?Cb:0>f?Db:Eb,c=f!=this.pX,d=Math.abs(a.deltaX)):(e=0===g?Cb:0>g?Fb:Gb,c=g!=this.pY,d=Math.abs(a.deltaY))),a.direction=e,c&&d>b.threshold&&e&b.direction},attrTest:function(a){return Z.prototype.attrTest.call(this,a)&&(this.state&fc||!(this.state&fc)&&this.directionTest(a))},emit:function(a){this.pX=a.deltaX,this.pY=a.deltaY;var b=X(a.direction);b&&this.manager.emit(this.options.event+b,a),this._super.emit.call(this,a)}}),j(_,Z,{defaults:{event:"pinch",threshold:0,pointers:2},getTouchAction:function(){return[bc]},attrTest:function(a){return this._super.attrTest.call(this,a)&&(Math.abs(a.scale-1)>this.options.threshold||this.state&fc)},emit:function(a){if(this._super.emit.call(this,a),1!==a.scale){var b=a.scale<1?"in":"out";this.manager.emit(this.options.event+b,a)}}}),j(ab,V,{defaults:{event:"press",pointers:1,time:500,threshold:5},getTouchAction:function(){return[_b]},process:function(a){var b=this.options,c=a.pointers.length===b.pointers,d=a.distance<b.threshold,f=a.deltaTime>b.time;if(this._input=a,!d||!c||a.eventType&(Ab|Bb)&&!f)this.reset();else if(a.eventType&yb)this.reset(),this._timer=e(function(){this.state=ic,this.tryEmit()},b.time,this);else if(a.eventType&Ab)return ic;return kc},reset:function(){clearTimeout(this._timer)},emit:function(a){this.state===ic&&(a&&a.eventType&Ab?this.manager.emit(this.options.event+"up",a):(this._input.timeStamp=nb(),this.manager.emit(this.options.event,this._input)))}}),j(bb,Z,{defaults:{event:"rotate",threshold:0,pointers:2},getTouchAction:function(){return[bc]},attrTest:function(a){return this._super.attrTest.call(this,a)&&(Math.abs(a.rotation)>this.options.threshold||this.state&fc)}}),j(cb,Z,{defaults:{event:"swipe",threshold:10,velocity:.65,direction:Hb|Ib,pointers:1},getTouchAction:function(){return $.prototype.getTouchAction.call(this)},attrTest:function(a){var b,c=this.options.direction;return c&(Hb|Ib)?b=a.velocity:c&Hb?b=a.velocityX:c&Ib&&(b=a.velocityY),this._super.attrTest.call(this,a)&&c&a.direction&&a.distance>this.options.threshold&&mb(b)>this.options.velocity&&a.eventType&Ab},emit:function(a){var b=X(a.direction);b&&this.manager.emit(this.options.event+b,a),this.manager.emit(this.options.event,a)}}),j(db,V,{defaults:{event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:2,posThreshold:10},getTouchAction:function(){return[ac]},process:function(a){var b=this.options,c=a.pointers.length===b.pointers,d=a.distance<b.threshold,f=a.deltaTime<b.time;if(this.reset(),a.eventType&yb&&0===this.count)return this.failTimeout();if(d&&f&&c){if(a.eventType!=Ab)return this.failTimeout();var g=this.pTime?a.timeStamp-this.pTime<b.interval:!0,h=!this.pCenter||I(this.pCenter,a.center)<b.posThreshold;this.pTime=a.timeStamp,this.pCenter=a.center,h&&g?this.count+=1:this.count=1,this._input=a;var i=this.count%b.taps;if(0===i)return this.hasRequireFailures()?(this._timer=e(function(){this.state=ic,this.tryEmit()},b.interval,this),fc):ic}return kc},failTimeout:function(){return this._timer=e(function(){this.state=kc},this.options.interval,this),kc},reset:function(){clearTimeout(this._timer)},emit:function(){this.state==ic&&(this._input.tapCount=this.count,this.manager.emit(this.options.event,this._input))}}),eb.VERSION="2.0.4",eb.defaults={domEvents:!1,touchAction:$b,enable:!0,inputTarget:null,inputClass:null,preset:[[bb,{enable:!1}],[_,{enable:!1},["rotate"]],[cb,{direction:Hb}],[$,{direction:Hb},["swipe"]],[db],[db,{event:"doubletap",taps:2},["tap"]],[ab]],cssProps:{userSelect:"none",touchSelect:"none",touchCallout:"none",contentZooming:"none",userDrag:"none",tapHighlightColor:"rgba(0,0,0,0)"}};var lc=1,mc=2;fb.prototype={set:function(a){return h(this.options,a),a.touchAction&&this.touchAction.update(),a.inputTarget&&(this.input.destroy(),this.input.target=a.inputTarget,this.input.init()),this},stop:function(a){this.session.stopped=a?mc:lc},recognize:function(a){var b=this.session;if(!b.stopped){this.touchAction.preventDefaults(a);var c,d=this.recognizers,e=b.curRecognizer;(!e||e&&e.state&ic)&&(e=b.curRecognizer=null);for(var f=0;f<d.length;)c=d[f],b.stopped===mc||e&&c!=e&&!c.canRecognizeWith(e)?c.reset():c.recognize(a),!e&&c.state&(fc|gc|hc)&&(e=b.curRecognizer=c),f++}},get:function(a){if(a instanceof V)return a;for(var b=this.recognizers,c=0;c<b.length;c++)if(b[c].options.event==a)return b[c];return null},add:function(a){if(f(a,"add",this))return this;var b=this.get(a.options.event);return b&&this.remove(b),this.recognizers.push(a),a.manager=this,this.touchAction.update(),a},remove:function(a){if(f(a,"remove",this))return this;var b=this.recognizers;return a=this.get(a),b.splice(s(b,a),1),this.touchAction.update(),this},on:function(a,b){var c=this.handlers;return g(r(a),function(a){c[a]=c[a]||[],c[a].push(b)}),this},off:function(a,b){var c=this.handlers;return g(r(a),function(a){b?c[a].splice(s(c[a],b),1):delete c[a]}),this},emit:function(a,b){this.options.domEvents&&hb(a,b);var c=this.handlers[a]&&this.handlers[a].slice();if(c&&c.length){b.type=a,b.preventDefault=function(){b.srcEvent.preventDefault()};for(var d=0;d<c.length;)c[d](b),d++}},destroy:function(){this.element&&gb(this,!1),this.handlers={},this.session={},this.input.destroy(),this.element=null}},h(eb,{INPUT_START:yb,INPUT_MOVE:zb,INPUT_END:Ab,INPUT_CANCEL:Bb,STATE_POSSIBLE:ec,STATE_BEGAN:fc,STATE_CHANGED:gc,STATE_ENDED:hc,STATE_RECOGNIZED:ic,STATE_CANCELLED:jc,STATE_FAILED:kc,DIRECTION_NONE:Cb,DIRECTION_LEFT:Db,DIRECTION_RIGHT:Eb,DIRECTION_UP:Fb,DIRECTION_DOWN:Gb,DIRECTION_HORIZONTAL:Hb,DIRECTION_VERTICAL:Ib,DIRECTION_ALL:Jb,Manager:fb,Input:y,TouchAction:T,TouchInput:Q,MouseInput:M,PointerEventInput:N,TouchMouseInput:S,SingleTouchInput:O,Recognizer:V,AttrRecognizer:Z,Tap:db,Pan:$,Swipe:cb,Pinch:_,Rotate:bb,Press:ab,on:n,off:o,each:g,merge:i,extend:h,inherit:j,bindFn:k,prefixed:v}),typeof define==kb&&define.amd?define(function(){return eb}):"undefined"!=typeof module&&module.exports?module.exports=eb:a[c]=eb}(window,document,"Hammer");
//# sourceMappingURL=hammer.min.map
;;;