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