document.addEventListener('DOMContentLoaded', function (){
var elements_to_remove=['#pw-weak', '.pw-weak'];
var elements_to_remove_length=elements_to_remove.length;
for (var i=0; i < elements_to_remove_length; i++){
var nodes=document.querySelectorAll(elements_to_remove[i]);
var nodes_length=nodes.length;
for (var j=0; j < nodes_length; j++){
if(nodes[j].parentNode){
nodes[j].parentNode.removeChild(nodes[j]);
}}
}});
;
(function(){
var ResizeSensor=function(element, callback){
function EventQueue(){
this.q=[];
this.add=function(ev){
this.q.push(ev);
};
var i, j;
this.call=function(){
for (i=0, j=this.q.length; i < j; i++){
this.q[i].call();
}};}
function getComputedStyle(element, prop){
if(element.currentStyle){
return element.currentStyle[prop];
}else if(window.getComputedStyle){
return window.getComputedStyle(element, null).getPropertyValue(prop);
}else{
return element.style[prop];
}}
function attachResizeEvent(element, resized){
if(!element.resizedAttached){
element.resizedAttached=new EventQueue();
element.resizedAttached.add(resized);
}else if(element.resizedAttached){
element.resizedAttached.add(resized);
return;
}
element.resizeSensor=document.createElement('div');
element.resizeSensor.className='resize-sensor';
var style='position: absolute; left: 0; top: 0; right: 0; bottom: 0; overflow: hidden; z-index: -1; visibility: hidden;';
var styleChild='position: absolute; left: 0; top: 0; transition: 0s;';
element.resizeSensor.style.cssText=style;
element.resizeSensor.innerHTML =
'<div class="resize-sensor-expand" style="' + style + '">' +
'<div style="' + styleChild + '"></div>' +
'</div>' +
'<div class="resize-sensor-shrink" style="' + style + '">' +
'<div style="' + styleChild + ' width: 200%; height: 200%"></div>' +
'</div>';
element.appendChild(element.resizeSensor);
if(!{fixed: 1, absolute: 1}[getComputedStyle(element, 'position')]){
element.style.position='relative';
}
var expand=element.resizeSensor.childNodes[0];
var expandChild=expand.childNodes[0];
var shrink=element.resizeSensor.childNodes[1];
var shrinkChild=shrink.childNodes[0];
var lastWidth, lastHeight;
var reset=function(){
expandChild.style.width=expand.offsetWidth + 10 + 'px';
expandChild.style.height=expand.offsetHeight + 10 + 'px';
expand.scrollLeft=expand.scrollWidth;
expand.scrollTop=expand.scrollHeight;
shrink.scrollLeft=shrink.scrollWidth;
shrink.scrollTop=shrink.scrollHeight;
lastWidth=element.offsetWidth;
lastHeight=element.offsetHeight;
};
reset();
var changed=function(){
if(element.resizedAttached){
element.resizedAttached.call();
}};
var addEvent=function(el, name, cb){
if(el.attachEvent){
el.attachEvent('on' + name, cb);
}else{
el.addEventListener(name, cb);
}};
var onScroll=function(){
if(element.offsetWidth!=lastWidth||element.offsetHeight!=lastHeight){
changed();
}
reset();
};
addEvent(expand, 'scroll', onScroll);
addEvent(shrink, 'scroll', onScroll);
}
var elementType=Object.prototype.toString.call(element);
var isCollectionTyped=('[object Array]'===elementType
|| ('[object NodeList]'===elementType)
|| ('[object HTMLCollection]'===elementType)
|| ('undefined'!==typeof jQuery&&element instanceof jQuery)
|| ('undefined'!==typeof Elements&&element instanceof Elements)
);
if(isCollectionTyped){
var i=0, j=element.length;
for (; i < j; i++){
attachResizeEvent(element[i], callback);
}}else{
attachResizeEvent(element, callback);
}
this.detach=function(){
if(isCollectionTyped){
var i=0, j=element.length;
for (; i < j; i++){
ResizeSensor.detach(element[i]);
}}else{
ResizeSensor.detach(element);
}};};
ResizeSensor.detach=function(element){
if(element.resizeSensor){
element.removeChild(element.resizeSensor);
delete element.resizeSensor;
delete element.resizedAttached;
}};
if(typeof module!=='undefined'&&typeof module.exports!=='undefined'){
module.exports=ResizeSensor;
}else{
window.ResizeSensor=ResizeSensor;
}})();
(function ($){
$.fn.theiaStickySidebar=function (options){
var defaults={
'containerSelector': '',
'additionalMarginTop': 0,
'additionalMarginBottom': 0,
'updateSidebarHeight': true,
'minWidth': 0,
'disableOnResponsiveLayouts': true,
'sidebarBehavior': 'modern'
};
options=$.extend(defaults, options);
options.additionalMarginTop=parseInt(options.additionalMarginTop)||0;
options.additionalMarginBottom=parseInt(options.additionalMarginBottom)||0;
tryInitOrHookIntoEvents(options, this);
function tryInitOrHookIntoEvents(options, $that){
var success=tryInit(options, $that);
if(!success){
console.log('TSS: Body width smaller than options.minWidth. Init is delayed.');
$(document).scroll(function (options, $that){
return function (evt){
var success=tryInit(options, $that);
if(success){
$(this).unbind(evt);
}};}(options, $that));
$(window).resize(function (options, $that){
return function (evt){
var success=tryInit(options, $that);
if(success){
$(this).unbind(evt);
}};}(options, $that))
}}
function tryInit(options, $that){
if(options.initialized===true){
return true;
}
if($('body').width() < options.minWidth){
return false;
}
init(options, $that);
return true;
}
function init(options, $that){
options.initialized=true;
$('head').append($('<style>.theiaStickySidebar:after {content: ""; display: table; clear: both;}</style>'));
$that.each(function (){
var o={};
o.sidebar=$(this);
o.options=options||{};
o.container=$(o.options.containerSelector);
if(o.container.length==0){
o.container=o.sidebar.parent();
}
o.sidebar.parents().css('-webkit-transform', 'none'); // Fix for WebKit bug - https://code.google.com/p/chromium/issues/detail?id=20574
o.sidebar.css({
'position': 'relative',
'overflow': 'visible',
'-webkit-box-sizing': 'border-box',
'-moz-box-sizing': 'border-box',
'box-sizing': 'border-box'
});
o.stickySidebar=o.sidebar.find('.theiaStickySidebar');
if(o.stickySidebar.length==0){
var javaScriptMIMETypes=/(?:text|application)\/(?:x-)?(?:javascript|ecmascript)/i;
o.sidebar.find('script').filter(function (index, script){
return script.type.length===0||script.type.match(javaScriptMIMETypes);
}).remove();
o.stickySidebar=$('<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 collapsedTopHeight=o.stickySidebar.offset().top;
var collapsedBottomHeight=o.stickySidebar.outerHeight();
o.stickySidebar.css('padding-top', 1);
o.stickySidebar.css('padding-bottom', 1);
collapsedTopHeight -=o.stickySidebar.offset().top;
collapsedBottomHeight=o.stickySidebar.outerHeight() - collapsedBottomHeight - collapsedTopHeight;
if(collapsedTopHeight==0){
o.stickySidebar.css('padding-top', 0);
o.stickySidebarPaddingTop=0;
}else{
o.stickySidebarPaddingTop=1;
}
if(collapsedBottomHeight==0){
o.stickySidebar.css('padding-bottom', 0);
o.stickySidebarPaddingBottom=0;
}else{
o.stickySidebarPaddingBottom=1;
}
o.previousScrollTop=null;
o.fixedScrollTop=0;
resetSidebar();
o.onScroll=function (o){
if(!o.stickySidebar.is(":visible")){
return;
}
if($('body').width() < o.options.minWidth){
resetSidebar();
return;
}
if(o.options.disableOnResponsiveLayouts){
var sidebarWidth=o.sidebar.outerWidth(o.sidebar.css('float')=='none');
if(sidebarWidth + 50 > o.container.width()){
resetSidebar();
return;
}}
var scrollTop=$(document).scrollTop();
var position='static';
if(scrollTop >=o.sidebar.offset().top + (o.paddingTop - o.options.additionalMarginTop)){
var offsetTop=o.paddingTop + options.additionalMarginTop;
var offsetBottom=o.paddingBottom + o.marginBottom + options.additionalMarginBottom;
var containerTop=o.sidebar.offset().top;
var containerBottom=o.sidebar.offset().top + getClearedHeight(o.container);
var windowOffsetTop=0 + options.additionalMarginTop;
var windowOffsetBottom;
var sidebarSmallerThanWindow=(o.stickySidebar.outerHeight() + offsetTop + offsetBottom) < $(window).height();
if(sidebarSmallerThanWindow){
windowOffsetBottom=windowOffsetTop + o.stickySidebar.outerHeight();
}else{
windowOffsetBottom=$(window).height() - o.marginBottom - o.paddingBottom - options.additionalMarginBottom;
}
var staticLimitTop=containerTop - scrollTop + o.paddingTop;
var staticLimitBottom=containerBottom - scrollTop - o.paddingBottom - o.marginBottom;
var top=o.stickySidebar.offset().top - scrollTop;
var scrollTopDiff=o.previousScrollTop - scrollTop;
if(o.stickySidebar.css('position')=='fixed'){
if(o.options.sidebarBehavior=='modern'){
top +=scrollTopDiff;
}}
if(o.options.sidebarBehavior=='stick-to-top'){
top=options.additionalMarginTop;
}
if(o.options.sidebarBehavior=='stick-to-bottom'){
top=windowOffsetBottom - o.stickySidebar.outerHeight();
}
if(scrollTopDiff > 0){
top=Math.min(top, windowOffsetTop);
}else{
top=Math.max(top, windowOffsetBottom - o.stickySidebar.outerHeight());
}
top=Math.max(top, staticLimitTop);
top=Math.min(top, staticLimitBottom - o.stickySidebar.outerHeight());
var sidebarSameHeightAsContainer=o.container.height()==o.stickySidebar.outerHeight();
if(!sidebarSameHeightAsContainer&&top==windowOffsetTop){
position='fixed';
}
else if(!sidebarSameHeightAsContainer&&top==windowOffsetBottom - o.stickySidebar.outerHeight()){
position='fixed';
}
else if(scrollTop + top - o.sidebar.offset().top - o.paddingTop <=options.additionalMarginTop){
position='static';
}else{
position='absolute';
}}
if(position=='fixed'){
var scrollLeft=$(document).scrollLeft();
o.stickySidebar.css({
'position': 'fixed',
'width': getWidthForObject(o.stickySidebar) + 'px',
'transform': 'translateY(' + top + 'px)',
'left': (o.sidebar.offset().left + parseInt(o.sidebar.css('padding-left')) - scrollLeft) + 'px',
'top': '0px'
});
}
else if(position=='absolute'){
var css={};
if(o.stickySidebar.css('position')!='absolute'){
css.position='absolute';
css.transform='translateY(' + (scrollTop + top - o.sidebar.offset().top - o.stickySidebarPaddingTop - o.stickySidebarPaddingBottom) + 'px)';
css.top='0px';
}
css.width=getWidthForObject(o.stickySidebar) + 'px';
css.left='';
o.stickySidebar.css(css);
}
else if(position=='static'){
resetSidebar();
}
if(position!='static'){
if(o.options.updateSidebarHeight==true){
o.sidebar.css({
'min-height': o.stickySidebar.outerHeight() + o.stickySidebar.offset().top - o.sidebar.offset().top + o.paddingBottom
});
}}
o.previousScrollTop=scrollTop;
};
o.onScroll(o);
$(document).scroll(function (o){
return function (){
o.onScroll(o);
};}(o));
$(window).resize(function (o){
return function (){
o.stickySidebar.css({'position': 'static'});
o.onScroll(o);
};}(o));
if(typeof ResizeSensor!=='undefined'){
new ResizeSensor(o.stickySidebar[0], function (o){
return function (){
o.onScroll(o);
};}(o));
}
function resetSidebar(){
o.fixedScrollTop=0;
o.sidebar.css({
'min-height': '1px'
});
o.stickySidebar.css({
'position': 'static',
'width': '',
'transform': 'none'
});
}
function getClearedHeight(e){
var height=e.height();
e.children().each(function (){
height=Math.max(height, $(this).height());
});
return height;
}});
}
function getWidthForObject(object){
var width;
try {
width=object[0].getBoundingClientRect().width;
}
catch (err){
}
if(typeof width==="undefined"){
width=object.width();
}
return width;
}}
})(jQuery);
jQuery(function ($){
$(document).ready(function (){
$('[data-theiaStickySidebar-sidebarSelector]').each(function (){
var $this=$(this);
var sidebarSelector=JSON.parse($this.attr('data-theiaStickySidebar-sidebarSelector'));
var options=JSON.parse($this.attr('data-theiaStickySidebar-options'));
$(sidebarSelector).theiaStickySidebar(options);
});
});
});