!function(){"use strict";!function($,window,document){var tocClassName="tocify",tocFocusClassName="tocify-focus",tocHoverClassName="tocify-hover",hideTocClassName="tocify-hide",headerClassName="tocify-header",headerClass="."+headerClassName,subheaderClassName="tocify-subheader",subheaderClass="."+subheaderClassName,itemClassName="tocify-item",itemClass="."+itemClassName,extendPageClassName="tocify-extend-page",extendPageClass="."+extendPageClassName;$.widget("toc.tocify",{version:"1.9.0",options:{context:"body",ignoreSelector:null,selectors:"h1, h2, h3",showAndHide:!0,showEffect:"slideDown",showEffectSpeed:"medium",hideEffect:"slideUp",hideEffectSpeed:"medium",smoothScroll:!0,smoothScrollSpeed:"medium",scrollTo:0,showAndHideOnScroll:!0,highlightOnScroll:!0,highlightOffset:40,theme:"bootstrap",extendPage:!0,extendPageOffset:100,history:!0,scrollHistory:!1,hashGenerator:"compact",highlightDefault:!0},_create:function(){var self=this;self.extendPageScroll=!0,self.items=[],self._generateToc(),self._addCSSClasses(),self.webkit=function(){for(var prop in window)if(prop&&-1!==prop.toLowerCase().indexOf("webkit"))return!0;return!1}(),self._setEventHandlers(),$(window).load((function(){self._setActiveElement(!0),$("html, body").promise().done((function(){setTimeout((function(){self.extendPageScroll=!1}),0)}))}))},_generateToc:function(){var firstElem,ul,self=this,ignoreSelector=self.options.ignoreSelector;(firstElem=-1!==this.options.selectors.indexOf(",")?$(this.options.context).find(this.options.selectors.replace(/ /g,"").substr(0,this.options.selectors.indexOf(","))):$(this.options.context).find(this.options.selectors.replace(/ /g,""))).length?(self.element.addClass(tocClassName),firstElem.each((function(index){$(this).is(ignoreSelector)||(ul=$("
",{id:headerClassName+index,class:headerClassName}).append(self._nestElements($(this),index)),self.element.append(ul),$(this).nextUntil(this.nodeName.toLowerCase()).each((function(){0===$(this).find(self.options.selectors).length?$(this).filter(self.options.selectors).each((function(){$(this).is(ignoreSelector)||self._appendSubheaders.call(this,self,ul)})):$(this).find(self.options.selectors).each((function(){$(this).is(ignoreSelector)||self._appendSubheaders.call(this,self,ul)}))})))}))):self.element.addClass(hideTocClassName)},_setActiveElement:function(pageload){var self=this,hash=window.location.hash.substring(1),elem=self.element.find('li[data-unique="'+hash+'"]');return hash.length?(self.element.find("."+self.focusClass).removeClass(self.focusClass),elem.addClass(self.focusClass),self.options.showAndHide&&elem.click()):(self.element.find("."+self.focusClass).removeClass(self.focusClass),!hash.length&&pageload&&self.options.highlightDefault&&self.element.find(itemClass).first().addClass(self.focusClass)),self},_nestElements:function(self,index){var arr,item,hashValue;return arr=$.grep(this.items,(function(item){return item===self.text()})),arr.length?this.items.push(self.text()+index):this.items.push(self.text()),hashValue=this._generateHashValue(arr,self,index),item=$("",{class:itemClassName,"data-unique":hashValue}).append($("",{text:self.text()})),self.before($("",{name:hashValue,"data-unique":hashValue})),item},_generateHashValue:function(arr,self,index){var hashValue="",hashGeneratorOption=this.options.hashGenerator;if("pretty"===hashGeneratorOption){for(hashValue=self.text().toLowerCase().replace(/\s/g,"-");hashValue.indexOf("--")>-1;)hashValue=hashValue.replace(/--/g,"-");for(;hashValue.indexOf(":-")>-1;)hashValue=hashValue.replace(/:-/g,"-")}else hashValue="function"==typeof hashGeneratorOption?hashGeneratorOption(self.text(),self):self.text().replace(/\s/g,"");return arr.length&&(hashValue+=""+index),hashValue},_appendSubheaders:function(self,ul){var index=$(this).index(self.options.selectors),previousHeader=$(self.options.selectors).eq(index-1),currentTagName=+$(this).prop("tagName").charAt(1),previousTagName=+previousHeader.prop("tagName").charAt(1);currentTagName",{class:subheaderClassName,"data-tag":currentTagName})).next(subheaderClass).append(self._nestElements($(this),index))},_setEventHandlers:function(){var self=this;this.element.on("click.tocify","li",(function(event){if(self.options.history&&(window.location.hash=$(this).attr("data-unique")),self.element.find("."+self.focusClass).removeClass(self.focusClass),$(this).addClass(self.focusClass),self.options.showAndHide){var elem=$('li[data-unique="'+$(this).attr("data-unique")+'"]');self._triggerShow(elem)}self._scrollTo($(this))})),this.element.find("li").on({"mouseenter.tocify":function(){$(this).addClass(self.hoverClass),$(this).css("cursor","pointer")},"mouseleave.tocify":function(){"bootstrap"!==self.options.theme&&$(this).removeClass(self.hoverClass)}}),(self.options.extendPage||self.options.highlightOnScroll||self.options.scrollHistory||self.options.showAndHideOnScroll)&&$(window).on("scroll.tocify",(function(){$("html, body").promise().done((function(){var elem,lastElem,lastElemOffset,currentElem,winScrollTop=$(window).scrollTop(),winHeight=$(window).height(),docHeight=$(document).height(),scrollHeight=$("body")[0].scrollHeight;if(self.options.extendPage&&(self.webkit&&winScrollTop>=scrollHeight-winHeight-self.options.extendPageOffset||!self.webkit&&winHeight+winScrollTop>docHeight-self.options.extendPageOffset)&&!$(extendPageClass).length){if(!(lastElem=$('div[data-unique="'+$(itemClass).last().attr("data-unique")+'"]')).length)return;lastElemOffset=lastElem.offset().top,$(self.options.context).append($("",{class:extendPageClassName,height:Math.abs(lastElemOffset-winScrollTop)+"px","data-unique":extendPageClassName})),self.extendPageScroll&&(currentElem=self.element.find("li.active"),self._scrollTo($('div[data-unique="'+currentElem.attr("data-unique")+'"]')))}setTimeout((function(){var anchorText,closestAnchorDistance=null,closestAnchorIdx=null,anchors=$(self.options.context).find("div[data-unique]");anchors.each((function(idx){var distance=Math.abs(($(this).next().length?$(this).next():$(this)).offset().top-winScrollTop-self.options.highlightOffset);if(!(null==closestAnchorDistance||distance