!function(i){"use strict";i.fn.theiaStickySidebar=function(t){var o,e,a,s,d,n;function r(t,o){var e,a;return!0===t.initialized||!(i("body").width()<t.minWidth)&&(e=t,a=o,e.initialized=!0,0===i("#theia-sticky-sidebar-stylesheet-"+e.namespace).length&&i("head").append(i('<style id="theia-sticky-sidebar-stylesheet-'+e.namespace+'">.theiaStickySidebar:after {content: ""; display: table; clear: both;}</style>')),a.each(function(){var t,o={};if(o.sidebar=i(this),o.options=e||{},o.container=i(o.options.containerSelector),0==o.container.length&&(o.container=o.sidebar.parent()),o.sidebar.parents().css("-webkit-transform","none"),o.sidebar.css({position:o.options.defaultPosition,overflow:"visible","-webkit-box-sizing":"border-box","-moz-box-sizing":"border-box","box-sizing":"border-box"}),o.stickySidebar=o.sidebar.find(".theiaStickySidebar"),0==o.stickySidebar.length){var a=/(?:text|application)\/(?:x-)?(?:javascript|ecmascript)/i;o.sidebar.find("script").filter(function(i,t){return 0===t.type.length||t.type.match(a)}).remove(),o.stickySidebar=i("<div>").addClass("theiaStickySidebar").append(o.sidebar.children()),o.sidebar.append(o.stickySidebar)}o.marginBottom=parseInt(o.sidebar.css("margin-bottom")),o.paddingTop=parseInt(o.sidebar.css("padding-top")),o.paddingBottom=parseInt(o.sidebar.css("padding-bottom"));var s,d,n=o.stickySidebar.offset().top,r=o.stickySidebar.outerHeight();function p(){o.fixedScrollTop=0,o.sidebar.css({"min-height":"1px"}),o.stickySidebar.css({position:"static",width:"",transform:"none"})}o.stickySidebar.css("padding-top",1),o.stickySidebar.css("padding-bottom",1),n-=o.stickySidebar.offset().top,r=o.stickySidebar.outerHeight()-r-n,0==n?(o.stickySidebar.css("padding-top",0),o.stickySidebarPaddingTop=0):o.stickySidebarPaddingTop=1,0==r?(o.stickySidebar.css("padding-bottom",0),o.stickySidebarPaddingBottom=0):o.stickySidebarPaddingBottom=1,o.previousScrollTop=null,o.fixedScrollTop=0,p(),o.onScroll=function(t){if(t.stickySidebar.is(":visible")){if(i("body").width()<t.options.minWidth||t.options.disableOnResponsiveLayouts&&t.sidebar.outerWidth("none"==t.sidebar.css("float"))+50>t.container.width()){p();return}var o=i(document).scrollTop(),a="static";if(o>=t.sidebar.offset().top+(t.paddingTop-t.options.additionalMarginTop)){var s,d,n,r=t.paddingTop+e.additionalMarginTop,b=t.paddingBottom+t.marginBottom+e.additionalMarginBottom,l=t.sidebar.offset().top,h=t.sidebar.offset().top+(s=t.container,d=s.height(),s.children().each(function(){d=Math.max(d,i(this).height())}),d),g=0+e.additionalMarginTop;n=t.stickySidebar.outerHeight()+r+b<i(window).height()?g+t.stickySidebar.outerHeight():i(window).height()-t.marginBottom-t.paddingBottom-e.additionalMarginBottom;var f=l-o+t.paddingTop,S=h-o-t.paddingBottom-t.marginBottom,y=t.stickySidebar.offset().top-o,m=t.previousScrollTop-o;"fixed"==t.stickySidebar.css("position")&&"modern"==t.options.sidebarBehavior&&(y+=m),"stick-to-top"==t.options.sidebarBehavior&&(y=e.additionalMarginTop),"stick-to-bottom"==t.options.sidebarBehavior&&(y=n-t.stickySidebar.outerHeight()),y=Math.min(y=Math.max(y=m>0?Math.min(y,g):Math.max(y,n-t.stickySidebar.outerHeight()),f),S-t.stickySidebar.outerHeight());var u=t.container.height()==t.stickySidebar.outerHeight();a=(u||y!=g)&&(u||y!=n-t.stickySidebar.outerHeight())?o+y-t.sidebar.offset().top-t.paddingTop<=e.additionalMarginTop?"static":"absolute":"fixed"}if("fixed"==a){var k=i(document).scrollLeft();t.stickySidebar.css({position:"fixed",width:c(t.stickySidebar)+"px",transform:"translateY("+y+"px)",left:t.sidebar.offset().left+parseInt(t.sidebar.css("padding-left"))-k+"px",top:"0px"})}else if("absolute"==a){var $={};"absolute"!=t.stickySidebar.css("position")&&($.position="absolute",$.transform="translateY("+(o+y-t.sidebar.offset().top-t.stickySidebarPaddingTop-t.stickySidebarPaddingBottom)+"px)",$.top="0px"),$.width=c(t.stickySidebar)+"px",$.left="",t.stickySidebar.css($)}else"static"==a&&p();"static"!=a&&!0==t.options.updateSidebarHeight&&t.sidebar.css({"min-height":t.stickySidebar.outerHeight()+t.stickySidebar.offset().top-t.sidebar.offset().top+t.paddingBottom}),t.previousScrollTop=o}},o.onScroll(o),i(document).on("scroll."+o.options.namespace,(s=o,function(){s.onScroll(s)})),i(window).on("resize."+o.options.namespace,(d=o,function(){d.stickySidebar.css({position:"static"}),d.onScroll(d)})),"undefined"!=typeof ResizeSensor&&new ResizeSensor(o.stickySidebar[0],(t=o,function(){t.onScroll(t)}))}),!0)}function c(i){var t;try{t=i[0].getBoundingClientRect().width}catch(o){}return void 0===t&&(t=i.width()),t}return(t=i.extend({containerSelector:"",additionalMarginTop:0,additionalMarginBottom:0,updateSidebarHeight:!0,minWidth:0,disableOnResponsiveLayouts:!0,sidebarBehavior:"modern",defaultPosition:"relative",namespace:"TSS"},t)).additionalMarginTop=parseInt(t.additionalMarginTop)||0,t.additionalMarginBottom=parseInt(t.additionalMarginBottom)||0,o=t,e=this,!r(o,e)&&(console.log("TSS: Body width smaller than options.minWidth. Init is delayed."),i(document).on("scroll."+o.namespace,(a=o,s=e,function(t){r(a,s)&&i(this).unbind(t)})),i(window).on("resize."+o.namespace,(d=o,n=e,function(t){r(d,n)&&i(this).unbind(t)}))),this}}(jQuery);