{"version":3,"sources":["../bower_components/bxslider-4/dist/jquery.bxslider.js","../bower_components/bootstrap-sass-official/assets/javascripts/bootstrap/transition.js","../bower_components/bootstrap-sass-official/assets/javascripts/bootstrap/alert.js","../bower_components/bootstrap-sass-official/assets/javascripts/bootstrap/button.js","../bower_components/bootstrap-sass-official/assets/javascripts/bootstrap/carousel.js","../bower_components/bootstrap-sass-official/assets/javascripts/bootstrap/collapse.js","../bower_components/bootstrap-sass-official/assets/javascripts/bootstrap/dropdown.js","../bower_components/bootstrap-sass-official/assets/javascripts/bootstrap/modal.js","../bower_components/bootstrap-sass-official/assets/javascripts/bootstrap/tooltip.js","../bower_components/bootstrap-sass-official/assets/javascripts/bootstrap/popover.js","../bower_components/bootstrap-sass-official/assets/javascripts/bootstrap/scrollspy.js","../bower_components/bootstrap-sass-official/assets/javascripts/bootstrap/tab.js","../bower_components/bootstrap-sass-official/assets/javascripts/bootstrap/affix.js","../assets/scripts/main.js"],"names":["$","defaults","mode","slideSelector","infiniteLoop","hideControlOnEnd","speed","easing","slideMargin","startSlide","randomStart","captions","ticker","tickerHover","adaptiveHeight","adaptiveHeightSpeed","video","useCSS","preloadImages","responsive","slideZIndex","wrapperClass","touchEnabled","swipeThreshold","oneToOneTouch","preventDefaultSwipeX","preventDefaultSwipeY","ariaLive","ariaHidden","keyboardEnabled","pager","pagerType","pagerShortSeparator","pagerSelector","buildPager","pagerCustom","controls","nextText","prevText","nextSelector","prevSelector","autoControls","startText","stopText","autoControlsCombine","autoControlsSelector","auto","pause","autoStart","autoDirection","stopAutoOnClick","autoHover","autoDelay","autoSlideForOnePage","minSlides","maxSlides","moveSlides","slideWidth","shrinkItems","onSliderLoad","onSlideBefore","onSlideAfter","onSlideNext","onSlidePrev","onSliderResize","fn","bxSlider","options","this","length","each","slider","el","windowWidth","window","width","windowHeight","height","data","init","settings","extend","parseInt","children","Math","floor","random","active","index","carousel","minThreshold","maxThreshold","working","interval","animProp","usingCSS","div","document","createElement","props","i","undefined","style","cssPrefix","replace","toLowerCase","attr","setup","preloadSelector","eq","wrap","viewport","parent","loader","prepend","css","position","overflow","maxWidth","getViewportMaxWidth","margin","float","listStyle","getSlideWidth","zIndex","display","appendCaptions","last","getPagerQty","fitVids","appendControls","appendControlsAuto","appendPager","after","loadElements","start","selector","callback","total","find","count","one","complete","load","slice","sliceAppend","clone","addClass","slicePrepend","append","remove","setSlidePosition","getViewportHeight","redrawSlider","call","initialized","bind","resizeWindow","initAuto","initTicker","updatePagerActive","updateDirectionControls","initTouch","keydown","keyPress","currentIndex","getMoveBy","add","outerHeight","max","apply","map","get","parseFloat","newElWidth","wrapWidth","ceil","getNumberSlidesShowing","slidesShowing","childWidth","first","pagerQty","breakPoint","counter","lastChild","lastShowingIndex","setPositionProperty","left","outerWidth","top","value","type","duration","params","animateObj","propValue","e","target","is","unbind","updateAfterSlideTransition","resetValue","tickerLoop","animate","populatePager","pagerHtml","linkContent","isFunction","pagerEl","html","on","clickPagerBind","next","prev","clickNextBind","clickPrevBind","directionEl","stop","autoEl","clickStartBind","clickStopBind","updateAutoControls","title","preventDefault","hasClass","stopAuto","goToNextSlide","goToPrevSlide","startAuto","pagerLink","pagerIndex","currentTarget","goToSlide","slideIndex","len","removeClass","oldIndex","state","setTimeout","focus","blur","hover","autoPaused","transform","idx","ratio","property","newSpeed","totalDimens","startPosition","split","abs","resumeSpeed","animateProperty","reset","isOnScreen","win","scrollTop","scrollLeft","bounds","offset","right","bottom","activeElementTag","activeElement","tagName","tagFilters","p","RegExp","result","exec","keyCode","touch","x","y","end","onTouchStart","originalPos","orig","originalEvent","touchPoints","changedTouches","pageX","pageY","setPointerCapture","pointerId","onTouchMove","onTouchEnd","onPointerCancel","releasePointerCapture","xMovement","yMovement","change","distance","windowWidthNew","windowHeightNew","applyAriaHiddenAttributes","startVisibleIndex","numberOfSlidesShowing","setSlideIndex","direction","requestEl","performTransition","moveBy","filter","fadeOut","fadeIn","preventControlUpdate","setInterval","clearInterval","getCurrentSlide","getCurrentSlideElement","getSlideElement","getSlideCount","isWorking","destroySlider","removeAttr","unwrap","removeData","reloadSlider","jQuery","transitionEnd","transEndEventNames","WebkitTransition","MozTransition","OTransition","transition","name","emulateTransitionEnd","called","$el","trigger","support","event","special","bsTransitionEnd","bindType","delegateType","handle","handleObj","handler","arguments","Plugin","option","$this","Alert","dismiss","close","VERSION","TRANSITION_DURATION","prototype","removeElement","$parent","detach","closest","Event","isDefaultPrevented","old","alert","Constructor","noConflict","Button","toggle","setState","element","$element","DEFAULTS","isLoading","loadingText","d","val","resetText","proxy","changed","$input","prop","toggleClass","button","$btn","test","Carousel","action","slide","to","cycle","$indicators","paused","sliding","$active","$items","keyboard","documentElement","which","getItemIndex","item","getItemForDirection","activeIndex","willWrap","delta","itemIndex","pos","that","$next","isCycling","relatedTarget","slideEvent","$nextIndicator","slidEvent","offsetWidth","join","clickHandler","href","$target","$carousel","getTargetFromTrigger","$trigger","Collapse","id","transitioning","getParent","addAriaAndCollapsedClass","dimension","hasWidth","show","activesData","actives","startEvent","scrollSize","camelCase","hide","offsetHeight","isOpen","collapse","clearMenus","backdrop","contains","Dropdown","isActive","insertAfter","stopPropagation","desc","dropdown","_relatedTarget","Modal","$body","body","$dialog","$backdrop","isShown","originalBodyPad","scrollbarWidth","ignoreBackdropClick","remote","BACKDROP_TRANSITION_DURATION","checkScrollbar","setScrollbar","escape","resize","appendTo","adjustDialog","enforceFocus","off","hideModal","has","handleUpdate","resetAdjustments","resetScrollbar","removeBackdrop","doAnimate","callbackRemove","modalIsOverflowing","scrollHeight","clientHeight","paddingLeft","bodyIsOverflowing","paddingRight","fullWindowWidth","innerWidth","documentElementRect","getBoundingClientRect","clientWidth","measureScrollbar","bodyPad","scrollDiv","className","removeChild","modal","showEvent","Tooltip","enabled","timeout","hoverState","inState","animation","placement","template","delay","container","padding","getOptions","$viewport","click","constructor","Error","triggers","eventIn","eventOut","enter","leave","_options","fixTitle","getDefaults","getDelegateOptions","key","obj","self","tip","clearTimeout","isInStateTrue","hasContent","inDom","ownerDocument","$tip","tipId","getUID","setContent","autoToken","autoPlace","getPosition","actualWidth","actualHeight","orgPlacement","viewportDim","calculatedOffset","getCalculatedOffset","applyPlacement","prevHoverState","marginTop","marginLeft","isNaN","setOffset","using","round","getViewportAdjustedDelta","isVertical","arrowDelta","arrowOffsetPosition","replaceArrow","arrow","getTitle","$e","isBody","elRect","elOffset","scroll","outerDims","viewportPadding","viewportDimensions","topEdgeOffset","bottomEdgeOffset","leftEdgeOffset","rightEdgeOffset","o","prefix","getElementById","$arrow","enable","disable","toggleEnabled","destroy","tooltip","Popover","content","getContent","popover","ScrollSpy","$scrollElement","offsets","targets","activeTarget","process","refresh","getScrollHeight","offsetMethod","offsetBase","isWindow","$href","sort","a","b","push","maxScroll","activate","clear","parents","parentsUntil","scrollspy","$spy","Tab","$ul","$previous","hideEvent","tab","Affix","checkPosition","checkPositionWithEventLoop","affixed","unpin","pinnedOffset","RESET","getState","offsetTop","offsetBottom","targetHeight","initializing","colliderTop","colliderHeight","getPinnedOffset","affix","affixType","Sage","common","$slideElement","newIndex","ready","finalize","home","kontakt","initialize","myLatLng","google","maps","LatLng","mapCanvas","mapOptions","center","zoom","mapTypeId","MapTypeId","ROADMAP","Map","marker","Marker","url","setMap","addListener","open","addDomListener","batar_till_salu","filterProducts","ajaxfilter","ajaxurl","selectedtyp","selectedTyp","empty","changeFilter","selectedCat","thisSlug","console","log","UTIL","fire","func","funcname","args","namespace","loadEvents","classnm"],"mappings":"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","file":"main.js","sourcesContent":["/**\n * bxSlider v4.2.5\n * Copyright 2013-2015 Steven Wanderski\n * Written while drinking Belgian ales and listening to jazz\n\n * Licensed under MIT (http://opensource.org/licenses/MIT)\n */\n\n;(function($) {\n\n var defaults = {\n\n // GENERAL\n mode: 'horizontal',\n slideSelector: '',\n infiniteLoop: true,\n hideControlOnEnd: false,\n speed: 500,\n easing: null,\n slideMargin: 0,\n startSlide: 0,\n randomStart: false,\n captions: false,\n ticker: false,\n tickerHover: false,\n adaptiveHeight: false,\n adaptiveHeightSpeed: 500,\n video: false,\n useCSS: true,\n preloadImages: 'visible',\n responsive: true,\n slideZIndex: 50,\n wrapperClass: 'bx-wrapper',\n\n // TOUCH\n touchEnabled: true,\n swipeThreshold: 50,\n oneToOneTouch: true,\n preventDefaultSwipeX: true,\n preventDefaultSwipeY: false,\n\n // ACCESSIBILITY\n ariaLive: true,\n ariaHidden: true,\n\n // KEYBOARD\n keyboardEnabled: false,\n\n // PAGER\n pager: true,\n pagerType: 'full',\n pagerShortSeparator: ' / ',\n pagerSelector: null,\n buildPager: null,\n pagerCustom: null,\n\n // CONTROLS\n controls: true,\n nextText: 'Next',\n prevText: 'Prev',\n nextSelector: null,\n prevSelector: null,\n autoControls: false,\n startText: 'Start',\n stopText: 'Stop',\n autoControlsCombine: false,\n autoControlsSelector: null,\n\n // AUTO\n auto: false,\n pause: 4000,\n autoStart: true,\n autoDirection: 'next',\n stopAutoOnClick: false,\n autoHover: false,\n autoDelay: 0,\n autoSlideForOnePage: false,\n\n // CAROUSEL\n minSlides: 1,\n maxSlides: 1,\n moveSlides: 0,\n slideWidth: 0,\n shrinkItems: false,\n\n // CALLBACKS\n onSliderLoad: function() { return true; },\n onSlideBefore: function() { return true; },\n onSlideAfter: function() { return true; },\n onSlideNext: function() { return true; },\n onSlidePrev: function() { return true; },\n onSliderResize: function() { return true; }\n };\n\n $.fn.bxSlider = function(options) {\n\n if (this.length === 0) {\n return this;\n }\n\n // support multiple elements\n if (this.length > 1) {\n this.each(function() {\n $(this).bxSlider(options);\n });\n return this;\n }\n\n // create a namespace to be used throughout the plugin\n var slider = {},\n // set a reference to our slider element\n el = this,\n // get the original window dimens (thanks a lot IE)\n windowWidth = $(window).width(),\n windowHeight = $(window).height();\n\n // Return if slider is already initialized\n if ($(el).data('bxSlider')) { return; }\n\n /**\n * ===================================================================================\n * = PRIVATE FUNCTIONS\n * ===================================================================================\n */\n\n /**\n * Initializes namespace settings to be used throughout plugin\n */\n var init = function() {\n // Return if slider is already initialized\n if ($(el).data('bxSlider')) { return; }\n // merge user-supplied options with the defaults\n slider.settings = $.extend({}, defaults, options);\n // parse slideWidth setting\n slider.settings.slideWidth = parseInt(slider.settings.slideWidth);\n // store the original children\n slider.children = el.children(slider.settings.slideSelector);\n // check if actual number of slides is less than minSlides / maxSlides\n if (slider.children.length < slider.settings.minSlides) { slider.settings.minSlides = slider.children.length; }\n if (slider.children.length < slider.settings.maxSlides) { slider.settings.maxSlides = slider.children.length; }\n // if random start, set the startSlide setting to random number\n if (slider.settings.randomStart) { slider.settings.startSlide = Math.floor(Math.random() * slider.children.length); }\n // store active slide information\n slider.active = { index: slider.settings.startSlide };\n // store if the slider is in carousel mode (displaying / moving multiple slides)\n slider.carousel = slider.settings.minSlides > 1 || slider.settings.maxSlides > 1 ? true : false;\n // if carousel, force preloadImages = 'all'\n if (slider.carousel) { slider.settings.preloadImages = 'all'; }\n // calculate the min / max width thresholds based on min / max number of slides\n // used to setup and update carousel slides dimensions\n slider.minThreshold = (slider.settings.minSlides * slider.settings.slideWidth) + ((slider.settings.minSlides - 1) * slider.settings.slideMargin);\n slider.maxThreshold = (slider.settings.maxSlides * slider.settings.slideWidth) + ((slider.settings.maxSlides - 1) * slider.settings.slideMargin);\n // store the current state of the slider (if currently animating, working is true)\n slider.working = false;\n // initialize the controls object\n slider.controls = {};\n // initialize an auto interval\n slider.interval = null;\n // determine which property to use for transitions\n slider.animProp = slider.settings.mode === 'vertical' ? 'top' : 'left';\n // determine if hardware acceleration can be used\n slider.usingCSS = slider.settings.useCSS && slider.settings.mode !== 'fade' && (function() {\n // create our test div element\n var div = document.createElement('div'),\n // css transition properties\n props = ['WebkitPerspective', 'MozPerspective', 'OPerspective', 'msPerspective'];\n // test for each property\n for (var i = 0; i < props.length; i++) {\n if (div.style[props[i]] !== undefined) {\n slider.cssPrefix = props[i].replace('Perspective', '').toLowerCase();\n slider.animProp = '-' + slider.cssPrefix + '-transform';\n return true;\n }\n }\n return false;\n }());\n // if vertical mode always make maxSlides and minSlides equal\n if (slider.settings.mode === 'vertical') { slider.settings.maxSlides = slider.settings.minSlides; }\n // save original style data\n el.data('origStyle', el.attr('style'));\n el.children(slider.settings.slideSelector).each(function() {\n $(this).data('origStyle', $(this).attr('style'));\n });\n\n // perform all DOM / CSS modifications\n setup();\n };\n\n /**\n * Performs all DOM and CSS modifications\n */\n var setup = function() {\n var preloadSelector = slider.children.eq(slider.settings.startSlide); // set the default preload selector (visible)\n\n // wrap el in a wrapper\n el.wrap('
');\n // store a namespace reference to .bx-viewport\n slider.viewport = el.parent();\n\n // add aria-live if the setting is enabled and ticker mode is disabled\n if (slider.settings.ariaLive && !slider.settings.ticker) {\n slider.viewport.attr('aria-live', 'polite');\n }\n // add a loading div to display while images are loading\n slider.loader = $('
');\n slider.viewport.prepend(slider.loader);\n // set el to a massive width, to hold any needed slides\n // also strip any margin and padding from el\n el.css({\n width: slider.settings.mode === 'horizontal' ? (slider.children.length * 1000 + 215) + '%' : 'auto',\n position: 'relative'\n });\n // if using CSS, add the easing property\n if (slider.usingCSS && slider.settings.easing) {\n el.css('-' + slider.cssPrefix + '-transition-timing-function', slider.settings.easing);\n // if not using CSS and no easing value was supplied, use the default JS animation easing (swing)\n } else if (!slider.settings.easing) {\n slider.settings.easing = 'swing';\n }\n // make modifications to the viewport (.bx-viewport)\n slider.viewport.css({\n width: '100%',\n overflow: 'hidden',\n position: 'relative'\n });\n slider.viewport.parent().css({\n maxWidth: getViewportMaxWidth()\n });\n // make modification to the wrapper (.bx-wrapper)\n if (!slider.settings.pager && !slider.settings.controls) {\n slider.viewport.parent().css({\n margin: '0 auto 0px'\n });\n }\n // apply css to all slider children\n slider.children.css({\n float: slider.settings.mode === 'horizontal' ? 'left' : 'none',\n listStyle: 'none',\n position: 'relative'\n });\n // apply the calculated width after the float is applied to prevent scrollbar interference\n slider.children.css('width', getSlideWidth());\n // if slideMargin is supplied, add the css\n if (slider.settings.mode === 'horizontal' && slider.settings.slideMargin > 0) { slider.children.css('marginRight', slider.settings.slideMargin); }\n if (slider.settings.mode === 'vertical' && slider.settings.slideMargin > 0) { slider.children.css('marginBottom', slider.settings.slideMargin); }\n // if \"fade\" mode, add positioning and z-index CSS\n if (slider.settings.mode === 'fade') {\n slider.children.css({\n position: 'absolute',\n zIndex: 0,\n display: 'none'\n });\n // prepare the z-index on the showing element\n slider.children.eq(slider.settings.startSlide).css({zIndex: slider.settings.slideZIndex, display: 'block'});\n }\n // create an element to contain all slider controls (pager, start / stop, etc)\n slider.controls.el = $('
');\n // if captions are requested, add them\n if (slider.settings.captions) { appendCaptions(); }\n // check if startSlide is last slide\n slider.active.last = slider.settings.startSlide === getPagerQty() - 1;\n // if video is true, set up the fitVids plugin\n if (slider.settings.video) { el.fitVids(); }\n if (slider.settings.preloadImages === 'all' || slider.settings.ticker) { preloadSelector = slider.children; }\n // only check for control addition if not in \"ticker\" mode\n if (!slider.settings.ticker) {\n // if controls are requested, add them\n if (slider.settings.controls) { appendControls(); }\n // if auto is true, and auto controls are requested, add them\n if (slider.settings.auto && slider.settings.autoControls) { appendControlsAuto(); }\n // if pager is requested, add it\n if (slider.settings.pager) { appendPager(); }\n // if any control option is requested, add the controls wrapper\n if (slider.settings.controls || slider.settings.autoControls || slider.settings.pager) { slider.viewport.after(slider.controls.el); }\n // if ticker mode, do not allow a pager\n } else {\n slider.settings.pager = false;\n }\n loadElements(preloadSelector, start);\n };\n\n var loadElements = function(selector, callback) {\n var total = selector.find('img:not([src=\"\"]), iframe').length,\n count = 0;\n if (total === 0) {\n callback();\n return;\n }\n selector.find('img:not([src=\"\"]), iframe').each(function() {\n $(this).one('load error', function() {\n if (++count === total) { callback(); }\n }).each(function() {\n if (this.complete) { $(this).load(); }\n });\n });\n };\n\n /**\n * Start the slider\n */\n var start = function() {\n // if infinite loop, prepare additional slides\n if (slider.settings.infiniteLoop && slider.settings.mode !== 'fade' && !slider.settings.ticker) {\n var slice = slider.settings.mode === 'vertical' ? slider.settings.minSlides : slider.settings.maxSlides,\n sliceAppend = slider.children.slice(0, slice).clone(true).addClass('bx-clone'),\n slicePrepend = slider.children.slice(-slice).clone(true).addClass('bx-clone');\n if (slider.settings.ariaHidden) {\n sliceAppend.attr('aria-hidden', true);\n slicePrepend.attr('aria-hidden', true);\n }\n el.append(sliceAppend).prepend(slicePrepend);\n }\n // remove the loading DOM element\n slider.loader.remove();\n // set the left / top position of \"el\"\n setSlidePosition();\n // if \"vertical\" mode, always use adaptiveHeight to prevent odd behavior\n if (slider.settings.mode === 'vertical') { slider.settings.adaptiveHeight = true; }\n // set the viewport height\n slider.viewport.height(getViewportHeight());\n // make sure everything is positioned just right (same as a window resize)\n el.redrawSlider();\n // onSliderLoad callback\n slider.settings.onSliderLoad.call(el, slider.active.index);\n // slider has been fully initialized\n slider.initialized = true;\n // bind the resize call to the window\n if (slider.settings.responsive) { $(window).bind('resize', resizeWindow); }\n // if auto is true and has more than 1 page, start the show\n if (slider.settings.auto && slider.settings.autoStart && (getPagerQty() > 1 || slider.settings.autoSlideForOnePage)) { initAuto(); }\n // if ticker is true, start the ticker\n if (slider.settings.ticker) { initTicker(); }\n // if pager is requested, make the appropriate pager link active\n if (slider.settings.pager) { updatePagerActive(slider.settings.startSlide); }\n // check for any updates to the controls (like hideControlOnEnd updates)\n if (slider.settings.controls) { updateDirectionControls(); }\n // if touchEnabled is true, setup the touch events\n if (slider.settings.touchEnabled && !slider.settings.ticker) { initTouch(); }\n // if keyboardEnabled is true, setup the keyboard events\n if (slider.settings.keyboardEnabled && !slider.settings.ticker) {\n $(document).keydown(keyPress);\n }\n };\n\n /**\n * Returns the calculated height of the viewport, used to determine either adaptiveHeight or the maxHeight value\n */\n var getViewportHeight = function() {\n var height = 0;\n // first determine which children (slides) should be used in our height calculation\n var children = $();\n // if mode is not \"vertical\" and adaptiveHeight is false, include all children\n if (slider.settings.mode !== 'vertical' && !slider.settings.adaptiveHeight) {\n children = slider.children;\n } else {\n // if not carousel, return the single active child\n if (!slider.carousel) {\n children = slider.children.eq(slider.active.index);\n // if carousel, return a slice of children\n } else {\n // get the individual slide index\n var currentIndex = slider.settings.moveSlides === 1 ? slider.active.index : slider.active.index * getMoveBy();\n // add the current slide to the children\n children = slider.children.eq(currentIndex);\n // cycle through the remaining \"showing\" slides\n for (i = 1; i <= slider.settings.maxSlides - 1; i++) {\n // if looped back to the start\n if (currentIndex + i >= slider.children.length) {\n children = children.add(slider.children.eq(i - 1));\n } else {\n children = children.add(slider.children.eq(currentIndex + i));\n }\n }\n }\n }\n // if \"vertical\" mode, calculate the sum of the heights of the children\n if (slider.settings.mode === 'vertical') {\n children.each(function(index) {\n height += $(this).outerHeight();\n });\n // add user-supplied margins\n if (slider.settings.slideMargin > 0) {\n height += slider.settings.slideMargin * (slider.settings.minSlides - 1);\n }\n // if not \"vertical\" mode, calculate the max height of the children\n } else {\n height = Math.max.apply(Math, children.map(function() {\n return $(this).outerHeight(false);\n }).get());\n }\n\n if (slider.viewport.css('box-sizing') === 'border-box') {\n height += parseFloat(slider.viewport.css('padding-top')) + parseFloat(slider.viewport.css('padding-bottom')) +\n parseFloat(slider.viewport.css('border-top-width')) + parseFloat(slider.viewport.css('border-bottom-width'));\n } else if (slider.viewport.css('box-sizing') === 'padding-box') {\n height += parseFloat(slider.viewport.css('padding-top')) + parseFloat(slider.viewport.css('padding-bottom'));\n }\n\n return height;\n };\n\n /**\n * Returns the calculated width to be used for the outer wrapper / viewport\n */\n var getViewportMaxWidth = function() {\n var width = '100%';\n if (slider.settings.slideWidth > 0) {\n if (slider.settings.mode === 'horizontal') {\n width = (slider.settings.maxSlides * slider.settings.slideWidth) + ((slider.settings.maxSlides - 1) * slider.settings.slideMargin);\n } else {\n width = slider.settings.slideWidth;\n }\n }\n return width;\n };\n\n /**\n * Returns the calculated width to be applied to each slide\n */\n var getSlideWidth = function() {\n var newElWidth = slider.settings.slideWidth, // start with any user-supplied slide width\n wrapWidth = slider.viewport.width(); // get the current viewport width\n // if slide width was not supplied, or is larger than the viewport use the viewport width\n if (slider.settings.slideWidth === 0 ||\n (slider.settings.slideWidth > wrapWidth && !slider.carousel) ||\n slider.settings.mode === 'vertical') {\n newElWidth = wrapWidth;\n // if carousel, use the thresholds to determine the width\n } else if (slider.settings.maxSlides > 1 && slider.settings.mode === 'horizontal') {\n if (wrapWidth > slider.maxThreshold) {\n return newElWidth;\n } else if (wrapWidth < slider.minThreshold) {\n newElWidth = (wrapWidth - (slider.settings.slideMargin * (slider.settings.minSlides - 1))) / slider.settings.minSlides;\n } else if (slider.settings.shrinkItems) {\n newElWidth = Math.floor((wrapWidth + slider.settings.slideMargin) / (Math.ceil((wrapWidth + slider.settings.slideMargin) / (newElWidth + slider.settings.slideMargin))) - slider.settings.slideMargin);\n }\n }\n return newElWidth;\n };\n\n /**\n * Returns the number of slides currently visible in the viewport (includes partially visible slides)\n */\n var getNumberSlidesShowing = function() {\n var slidesShowing = 1,\n childWidth = null;\n if (slider.settings.mode === 'horizontal' && slider.settings.slideWidth > 0) {\n // if viewport is smaller than minThreshold, return minSlides\n if (slider.viewport.width() < slider.minThreshold) {\n slidesShowing = slider.settings.minSlides;\n // if viewport is larger than maxThreshold, return maxSlides\n } else if (slider.viewport.width() > slider.maxThreshold) {\n slidesShowing = slider.settings.maxSlides;\n // if viewport is between min / max thresholds, divide viewport width by first child width\n } else {\n childWidth = slider.children.first().width() + slider.settings.slideMargin;\n slidesShowing = Math.floor((slider.viewport.width() +\n slider.settings.slideMargin) / childWidth);\n }\n // if \"vertical\" mode, slides showing will always be minSlides\n } else if (slider.settings.mode === 'vertical') {\n slidesShowing = slider.settings.minSlides;\n }\n return slidesShowing;\n };\n\n /**\n * Returns the number of pages (one full viewport of slides is one \"page\")\n */\n var getPagerQty = function() {\n var pagerQty = 0,\n breakPoint = 0,\n counter = 0;\n // if moveSlides is specified by the user\n if (slider.settings.moveSlides > 0) {\n if (slider.settings.infiniteLoop) {\n pagerQty = Math.ceil(slider.children.length / getMoveBy());\n } else {\n // when breakpoint goes above children length, counter is the number of pages\n while (breakPoint < slider.children.length) {\n ++pagerQty;\n breakPoint = counter + getNumberSlidesShowing();\n counter += slider.settings.moveSlides <= getNumberSlidesShowing() ? slider.settings.moveSlides : getNumberSlidesShowing();\n }\n }\n // if moveSlides is 0 (auto) divide children length by sides showing, then round up\n } else {\n pagerQty = Math.ceil(slider.children.length / getNumberSlidesShowing());\n }\n return pagerQty;\n };\n\n /**\n * Returns the number of individual slides by which to shift the slider\n */\n var getMoveBy = function() {\n // if moveSlides was set by the user and moveSlides is less than number of slides showing\n if (slider.settings.moveSlides > 0 && slider.settings.moveSlides <= getNumberSlidesShowing()) {\n return slider.settings.moveSlides;\n }\n // if moveSlides is 0 (auto)\n return getNumberSlidesShowing();\n };\n\n /**\n * Sets the slider's (el) left or top position\n */\n var setSlidePosition = function() {\n var position, lastChild, lastShowingIndex;\n // if last slide, not infinite loop, and number of children is larger than specified maxSlides\n if (slider.children.length > slider.settings.maxSlides && slider.active.last && !slider.settings.infiniteLoop) {\n if (slider.settings.mode === 'horizontal') {\n // get the last child's position\n lastChild = slider.children.last();\n position = lastChild.position();\n // set the left position\n setPositionProperty(-(position.left - (slider.viewport.width() - lastChild.outerWidth())), 'reset', 0);\n } else if (slider.settings.mode === 'vertical') {\n // get the last showing index's position\n lastShowingIndex = slider.children.length - slider.settings.minSlides;\n position = slider.children.eq(lastShowingIndex).position();\n // set the top position\n setPositionProperty(-position.top, 'reset', 0);\n }\n // if not last slide\n } else {\n // get the position of the first showing slide\n position = slider.children.eq(slider.active.index * getMoveBy()).position();\n // check for last slide\n if (slider.active.index === getPagerQty() - 1) { slider.active.last = true; }\n // set the respective position\n if (position !== undefined) {\n if (slider.settings.mode === 'horizontal') { setPositionProperty(-position.left, 'reset', 0); }\n else if (slider.settings.mode === 'vertical') { setPositionProperty(-position.top, 'reset', 0); }\n }\n }\n };\n\n /**\n * Sets the el's animating property position (which in turn will sometimes animate el).\n * If using CSS, sets the transform property. If not using CSS, sets the top / left property.\n *\n * @param value (int)\n * - the animating property's value\n *\n * @param type (string) 'slide', 'reset', 'ticker'\n * - the type of instance for which the function is being\n *\n * @param duration (int)\n * - the amount of time (in ms) the transition should occupy\n *\n * @param params (array) optional\n * - an optional parameter containing any variables that need to be passed in\n */\n var setPositionProperty = function(value, type, duration, params) {\n var animateObj, propValue;\n // use CSS transform\n if (slider.usingCSS) {\n // determine the translate3d value\n propValue = slider.settings.mode === 'vertical' ? 'translate3d(0, ' + value + 'px, 0)' : 'translate3d(' + value + 'px, 0, 0)';\n // add the CSS transition-duration\n el.css('-' + slider.cssPrefix + '-transition-duration', duration / 1000 + 's');\n if (type === 'slide') {\n // set the property value\n el.css(slider.animProp, propValue);\n if (duration !== 0) {\n // bind a callback method - executes when CSS transition completes\n el.bind('transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd', function(e) {\n //make sure it's the correct one\n if (!$(e.target).is(el)) { return; }\n // unbind the callback\n el.unbind('transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd');\n updateAfterSlideTransition();\n });\n } else { //duration = 0\n updateAfterSlideTransition();\n }\n } else if (type === 'reset') {\n el.css(slider.animProp, propValue);\n } else if (type === 'ticker') {\n // make the transition use 'linear'\n el.css('-' + slider.cssPrefix + '-transition-timing-function', 'linear');\n el.css(slider.animProp, propValue);\n if (duration !== 0) {\n el.bind('transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd', function(e) {\n //make sure it's the correct one\n if (!$(e.target).is(el)) { return; }\n // unbind the callback\n el.unbind('transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd');\n // reset the position\n setPositionProperty(params.resetValue, 'reset', 0);\n // start the loop again\n tickerLoop();\n });\n } else { //duration = 0\n setPositionProperty(params.resetValue, 'reset', 0);\n tickerLoop();\n }\n }\n // use JS animate\n } else {\n animateObj = {};\n animateObj[slider.animProp] = value;\n if (type === 'slide') {\n el.animate(animateObj, duration, slider.settings.easing, function() {\n updateAfterSlideTransition();\n });\n } else if (type === 'reset') {\n el.css(slider.animProp, value);\n } else if (type === 'ticker') {\n el.animate(animateObj, duration, 'linear', function() {\n setPositionProperty(params.resetValue, 'reset', 0);\n // run the recursive loop after animation\n tickerLoop();\n });\n }\n }\n };\n\n /**\n * Populates the pager with proper amount of pages\n */\n var populatePager = function() {\n var pagerHtml = '',\n linkContent = '',\n pagerQty = getPagerQty();\n // loop through each pager item\n for (var i = 0; i < pagerQty; i++) {\n linkContent = '';\n // if a buildPager function is supplied, use it to get pager link value, else use index + 1\n if (slider.settings.buildPager && $.isFunction(slider.settings.buildPager) || slider.settings.pagerCustom) {\n linkContent = slider.settings.buildPager(i);\n slider.pagerEl.addClass('bx-custom-pager');\n } else {\n linkContent = i + 1;\n slider.pagerEl.addClass('bx-default-pager');\n }\n // var linkContent = slider.settings.buildPager && $.isFunction(slider.settings.buildPager) ? slider.settings.buildPager(i) : i + 1;\n // add the markup to the string\n pagerHtml += '';\n }\n // populate the pager element with pager links\n slider.pagerEl.html(pagerHtml);\n };\n\n /**\n * Appends the pager to the controls element\n */\n var appendPager = function() {\n if (!slider.settings.pagerCustom) {\n // create the pager DOM element\n slider.pagerEl = $('
');\n // if a pager selector was supplied, populate it with the pager\n if (slider.settings.pagerSelector) {\n $(slider.settings.pagerSelector).html(slider.pagerEl);\n // if no pager selector was supplied, add it after the wrapper\n } else {\n slider.controls.el.addClass('bx-has-pager').append(slider.pagerEl);\n }\n // populate the pager\n populatePager();\n } else {\n slider.pagerEl = $(slider.settings.pagerCustom);\n }\n // assign the pager click binding\n slider.pagerEl.on('click touchend', 'a', clickPagerBind);\n };\n\n /**\n * Appends prev / next controls to the controls element\n */\n var appendControls = function() {\n slider.controls.next = $('' + slider.settings.nextText + '');\n slider.controls.prev = $('' + slider.settings.prevText + '');\n // bind click actions to the controls\n slider.controls.next.bind('click touchend', clickNextBind);\n slider.controls.prev.bind('click touchend', clickPrevBind);\n // if nextSelector was supplied, populate it\n if (slider.settings.nextSelector) {\n $(slider.settings.nextSelector).append(slider.controls.next);\n }\n // if prevSelector was supplied, populate it\n if (slider.settings.prevSelector) {\n $(slider.settings.prevSelector).append(slider.controls.prev);\n }\n // if no custom selectors were supplied\n if (!slider.settings.nextSelector && !slider.settings.prevSelector) {\n // add the controls to the DOM\n slider.controls.directionEl = $('
');\n // add the control elements to the directionEl\n slider.controls.directionEl.append(slider.controls.prev).append(slider.controls.next);\n // slider.viewport.append(slider.controls.directionEl);\n slider.controls.el.addClass('bx-has-controls-direction').append(slider.controls.directionEl);\n }\n };\n\n /**\n * Appends start / stop auto controls to the controls element\n */\n var appendControlsAuto = function() {\n slider.controls.start = $('');\n slider.controls.stop = $('');\n // add the controls to the DOM\n slider.controls.autoEl = $('
');\n // bind click actions to the controls\n slider.controls.autoEl.on('click', '.bx-start', clickStartBind);\n slider.controls.autoEl.on('click', '.bx-stop', clickStopBind);\n // if autoControlsCombine, insert only the \"start\" control\n if (slider.settings.autoControlsCombine) {\n slider.controls.autoEl.append(slider.controls.start);\n // if autoControlsCombine is false, insert both controls\n } else {\n slider.controls.autoEl.append(slider.controls.start).append(slider.controls.stop);\n }\n // if auto controls selector was supplied, populate it with the controls\n if (slider.settings.autoControlsSelector) {\n $(slider.settings.autoControlsSelector).html(slider.controls.autoEl);\n // if auto controls selector was not supplied, add it after the wrapper\n } else {\n slider.controls.el.addClass('bx-has-controls-auto').append(slider.controls.autoEl);\n }\n // update the auto controls\n updateAutoControls(slider.settings.autoStart ? 'stop' : 'start');\n };\n\n /**\n * Appends image captions to the DOM\n */\n var appendCaptions = function() {\n // cycle through each child\n slider.children.each(function(index) {\n // get the image title attribute\n var title = $(this).find('img:first').attr('title');\n // append the caption\n if (title !== undefined && ('' + title).length) {\n $(this).append('
' + title + '
');\n }\n });\n };\n\n /**\n * Click next binding\n *\n * @param e (event)\n * - DOM event object\n */\n var clickNextBind = function(e) {\n e.preventDefault();\n if (slider.controls.el.hasClass('disabled')) { return; }\n // if auto show is running, stop it\n if (slider.settings.auto && slider.settings.stopAutoOnClick) { el.stopAuto(); }\n el.goToNextSlide();\n };\n\n /**\n * Click prev binding\n *\n * @param e (event)\n * - DOM event object\n */\n var clickPrevBind = function(e) {\n e.preventDefault();\n if (slider.controls.el.hasClass('disabled')) { return; }\n // if auto show is running, stop it\n if (slider.settings.auto && slider.settings.stopAutoOnClick) { el.stopAuto(); }\n el.goToPrevSlide();\n };\n\n /**\n * Click start binding\n *\n * @param e (event)\n * - DOM event object\n */\n var clickStartBind = function(e) {\n el.startAuto();\n e.preventDefault();\n };\n\n /**\n * Click stop binding\n *\n * @param e (event)\n * - DOM event object\n */\n var clickStopBind = function(e) {\n el.stopAuto();\n e.preventDefault();\n };\n\n /**\n * Click pager binding\n *\n * @param e (event)\n * - DOM event object\n */\n var clickPagerBind = function(e) {\n var pagerLink, pagerIndex;\n e.preventDefault();\n if (slider.controls.el.hasClass('disabled')) {\n return;\n }\n // if auto show is running, stop it\n if (slider.settings.auto && slider.settings.stopAutoOnClick) { el.stopAuto(); }\n pagerLink = $(e.currentTarget);\n if (pagerLink.attr('data-slide-index') !== undefined) {\n pagerIndex = parseInt(pagerLink.attr('data-slide-index'));\n // if clicked pager link is not active, continue with the goToSlide call\n if (pagerIndex !== slider.active.index) { el.goToSlide(pagerIndex); }\n }\n };\n\n /**\n * Updates the pager links with an active class\n *\n * @param slideIndex (int)\n * - index of slide to make active\n */\n var updatePagerActive = function(slideIndex) {\n // if \"short\" pager type\n var len = slider.children.length; // nb of children\n if (slider.settings.pagerType === 'short') {\n if (slider.settings.maxSlides > 1) {\n len = Math.ceil(slider.children.length / slider.settings.maxSlides);\n }\n slider.pagerEl.html((slideIndex + 1) + slider.settings.pagerShortSeparator + len);\n return;\n }\n // remove all pager active classes\n slider.pagerEl.find('a').removeClass('active');\n // apply the active class for all pagers\n slider.pagerEl.each(function(i, el) { $(el).find('a').eq(slideIndex).addClass('active'); });\n };\n\n /**\n * Performs needed actions after a slide transition\n */\n var updateAfterSlideTransition = function() {\n // if infinite loop is true\n if (slider.settings.infiniteLoop) {\n var position = '';\n // first slide\n if (slider.active.index === 0) {\n // set the new position\n position = slider.children.eq(0).position();\n // carousel, last slide\n } else if (slider.active.index === getPagerQty() - 1 && slider.carousel) {\n position = slider.children.eq((getPagerQty() - 1) * getMoveBy()).position();\n // last slide\n } else if (slider.active.index === slider.children.length - 1) {\n position = slider.children.eq(slider.children.length - 1).position();\n }\n if (position) {\n if (slider.settings.mode === 'horizontal') { setPositionProperty(-position.left, 'reset', 0); }\n else if (slider.settings.mode === 'vertical') { setPositionProperty(-position.top, 'reset', 0); }\n }\n }\n // declare that the transition is complete\n slider.working = false;\n // onSlideAfter callback\n slider.settings.onSlideAfter.call(el, slider.children.eq(slider.active.index), slider.oldIndex, slider.active.index);\n };\n\n /**\n * Updates the auto controls state (either active, or combined switch)\n *\n * @param state (string) \"start\", \"stop\"\n * - the new state of the auto show\n */\n var updateAutoControls = function(state) {\n // if autoControlsCombine is true, replace the current control with the new state\n if (slider.settings.autoControlsCombine) {\n slider.controls.autoEl.html(slider.controls[state]);\n // if autoControlsCombine is false, apply the \"active\" class to the appropriate control\n } else {\n slider.controls.autoEl.find('a').removeClass('active');\n slider.controls.autoEl.find('a:not(.bx-' + state + ')').addClass('active');\n }\n };\n\n /**\n * Updates the direction controls (checks if either should be hidden)\n */\n var updateDirectionControls = function() {\n if (getPagerQty() === 1) {\n slider.controls.prev.addClass('disabled');\n slider.controls.next.addClass('disabled');\n } else if (!slider.settings.infiniteLoop && slider.settings.hideControlOnEnd) {\n // if first slide\n if (slider.active.index === 0) {\n slider.controls.prev.addClass('disabled');\n slider.controls.next.removeClass('disabled');\n // if last slide\n } else if (slider.active.index === getPagerQty() - 1) {\n slider.controls.next.addClass('disabled');\n slider.controls.prev.removeClass('disabled');\n // if any slide in the middle\n } else {\n slider.controls.prev.removeClass('disabled');\n slider.controls.next.removeClass('disabled');\n }\n }\n };\n\n /**\n * Initializes the auto process\n */\n var initAuto = function() {\n // if autoDelay was supplied, launch the auto show using a setTimeout() call\n if (slider.settings.autoDelay > 0) {\n var timeout = setTimeout(el.startAuto, slider.settings.autoDelay);\n // if autoDelay was not supplied, start the auto show normally\n } else {\n el.startAuto();\n\n //add focus and blur events to ensure its running if timeout gets paused\n $(window).focus(function() {\n el.startAuto();\n }).blur(function() {\n el.stopAuto();\n });\n }\n // if autoHover is requested\n if (slider.settings.autoHover) {\n // on el hover\n el.hover(function() {\n // if the auto show is currently playing (has an active interval)\n if (slider.interval) {\n // stop the auto show and pass true argument which will prevent control update\n el.stopAuto(true);\n // create a new autoPaused value which will be used by the relative \"mouseout\" event\n slider.autoPaused = true;\n }\n }, function() {\n // if the autoPaused value was created be the prior \"mouseover\" event\n if (slider.autoPaused) {\n // start the auto show and pass true argument which will prevent control update\n el.startAuto(true);\n // reset the autoPaused value\n slider.autoPaused = null;\n }\n });\n }\n };\n\n /**\n * Initializes the ticker process\n */\n var initTicker = function() {\n var startPosition = 0,\n position, transform, value, idx, ratio, property, newSpeed, totalDimens;\n // if autoDirection is \"next\", append a clone of the entire slider\n if (slider.settings.autoDirection === 'next') {\n el.append(slider.children.clone().addClass('bx-clone'));\n // if autoDirection is \"prev\", prepend a clone of the entire slider, and set the left position\n } else {\n el.prepend(slider.children.clone().addClass('bx-clone'));\n position = slider.children.first().position();\n startPosition = slider.settings.mode === 'horizontal' ? -position.left : -position.top;\n }\n setPositionProperty(startPosition, 'reset', 0);\n // do not allow controls in ticker mode\n slider.settings.pager = false;\n slider.settings.controls = false;\n slider.settings.autoControls = false;\n // if autoHover is requested\n if (slider.settings.tickerHover) {\n if (slider.usingCSS) {\n idx = slider.settings.mode === 'horizontal' ? 4 : 5;\n slider.viewport.hover(function() {\n transform = el.css('-' + slider.cssPrefix + '-transform');\n value = parseFloat(transform.split(',')[idx]);\n setPositionProperty(value, 'reset', 0);\n }, function() {\n totalDimens = 0;\n slider.children.each(function(index) {\n totalDimens += slider.settings.mode === 'horizontal' ? $(this).outerWidth(true) : $(this).outerHeight(true);\n });\n // calculate the speed ratio (used to determine the new speed to finish the paused animation)\n ratio = slider.settings.speed / totalDimens;\n // determine which property to use\n property = slider.settings.mode === 'horizontal' ? 'left' : 'top';\n // calculate the new speed\n newSpeed = ratio * (totalDimens - (Math.abs(parseInt(value))));\n tickerLoop(newSpeed);\n });\n } else {\n // on el hover\n slider.viewport.hover(function() {\n el.stop();\n }, function() {\n // calculate the total width of children (used to calculate the speed ratio)\n totalDimens = 0;\n slider.children.each(function(index) {\n totalDimens += slider.settings.mode === 'horizontal' ? $(this).outerWidth(true) : $(this).outerHeight(true);\n });\n // calculate the speed ratio (used to determine the new speed to finish the paused animation)\n ratio = slider.settings.speed / totalDimens;\n // determine which property to use\n property = slider.settings.mode === 'horizontal' ? 'left' : 'top';\n // calculate the new speed\n newSpeed = ratio * (totalDimens - (Math.abs(parseInt(el.css(property)))));\n tickerLoop(newSpeed);\n });\n }\n }\n // start the ticker loop\n tickerLoop();\n };\n\n /**\n * Runs a continuous loop, news ticker-style\n */\n var tickerLoop = function(resumeSpeed) {\n var speed = resumeSpeed ? resumeSpeed : slider.settings.speed,\n position = {left: 0, top: 0},\n reset = {left: 0, top: 0},\n animateProperty, resetValue, params;\n\n // if \"next\" animate left position to last child, then reset left to 0\n if (slider.settings.autoDirection === 'next') {\n position = el.find('.bx-clone').first().position();\n // if \"prev\" animate left position to 0, then reset left to first non-clone child\n } else {\n reset = slider.children.first().position();\n }\n animateProperty = slider.settings.mode === 'horizontal' ? -position.left : -position.top;\n resetValue = slider.settings.mode === 'horizontal' ? -reset.left : -reset.top;\n params = {resetValue: resetValue};\n setPositionProperty(animateProperty, 'ticker', speed, params);\n };\n\n /**\n * Check if el is on screen\n */\n var isOnScreen = function(el) {\n var win = $(window),\n viewport = {\n top: win.scrollTop(),\n left: win.scrollLeft()\n },\n bounds = el.offset();\n\n viewport.right = viewport.left + win.width();\n viewport.bottom = viewport.top + win.height();\n bounds.right = bounds.left + el.outerWidth();\n bounds.bottom = bounds.top + el.outerHeight();\n\n return (!(viewport.right < bounds.left || viewport.left > bounds.right || viewport.bottom < bounds.top || viewport.top > bounds.bottom));\n };\n\n /**\n * Initializes keyboard events\n */\n var keyPress = function(e) {\n var activeElementTag = document.activeElement.tagName.toLowerCase(),\n tagFilters = 'input|textarea',\n p = new RegExp(activeElementTag,['i']),\n result = p.exec(tagFilters);\n\n if (result == null && isOnScreen(el)) {\n if (e.keyCode === 39) {\n clickNextBind(e);\n return false;\n } else if (e.keyCode === 37) {\n clickPrevBind(e);\n return false;\n }\n }\n };\n\n /**\n * Initializes touch events\n */\n var initTouch = function() {\n // initialize object to contain all touch values\n slider.touch = {\n start: {x: 0, y: 0},\n end: {x: 0, y: 0}\n };\n slider.viewport.bind('touchstart MSPointerDown pointerdown', onTouchStart);\n\n //for browsers that have implemented pointer events and fire a click after\n //every pointerup regardless of whether pointerup is on same screen location as pointerdown or not\n slider.viewport.on('click', '.bxslider a', function(e) {\n if (slider.viewport.hasClass('click-disabled')) {\n e.preventDefault();\n slider.viewport.removeClass('click-disabled');\n }\n });\n };\n\n /**\n * Event handler for \"touchstart\"\n *\n * @param e (event)\n * - DOM event object\n */\n var onTouchStart = function(e) {\n //disable slider controls while user is interacting with slides to avoid slider freeze that happens on touch devices when a slide swipe happens immediately after interacting with slider controls\n slider.controls.el.addClass('disabled');\n\n if (slider.working) {\n e.preventDefault();\n slider.controls.el.removeClass('disabled');\n } else {\n // record the original position when touch starts\n slider.touch.originalPos = el.position();\n var orig = e.originalEvent,\n touchPoints = (typeof orig.changedTouches !== 'undefined') ? orig.changedTouches : [orig];\n // record the starting touch x, y coordinates\n slider.touch.start.x = touchPoints[0].pageX;\n slider.touch.start.y = touchPoints[0].pageY;\n\n if (slider.viewport.get(0).setPointerCapture) {\n slider.pointerId = orig.pointerId;\n slider.viewport.get(0).setPointerCapture(slider.pointerId);\n }\n // bind a \"touchmove\" event to the viewport\n slider.viewport.bind('touchmove MSPointerMove pointermove', onTouchMove);\n // bind a \"touchend\" event to the viewport\n slider.viewport.bind('touchend MSPointerUp pointerup', onTouchEnd);\n slider.viewport.bind('MSPointerCancel pointercancel', onPointerCancel);\n }\n };\n\n /**\n * Cancel Pointer for Windows Phone\n *\n * @param e (event)\n * - DOM event object\n */\n var onPointerCancel = function(e) {\n /* onPointerCancel handler is needed to deal with situations when a touchend\n doesn't fire after a touchstart (this happens on windows phones only) */\n setPositionProperty(slider.touch.originalPos.left, 'reset', 0);\n\n //remove handlers\n slider.controls.el.removeClass('disabled');\n slider.viewport.unbind('MSPointerCancel pointercancel', onPointerCancel);\n slider.viewport.unbind('touchmove MSPointerMove pointermove', onTouchMove);\n slider.viewport.unbind('touchend MSPointerUp pointerup', onTouchEnd);\n if (slider.viewport.get(0).releasePointerCapture) {\n slider.viewport.get(0).releasePointerCapture(slider.pointerId);\n }\n };\n\n /**\n * Event handler for \"touchmove\"\n *\n * @param e (event)\n * - DOM event object\n */\n var onTouchMove = function(e) {\n var orig = e.originalEvent,\n touchPoints = (typeof orig.changedTouches !== 'undefined') ? orig.changedTouches : [orig],\n // if scrolling on y axis, do not prevent default\n xMovement = Math.abs(touchPoints[0].pageX - slider.touch.start.x),\n yMovement = Math.abs(touchPoints[0].pageY - slider.touch.start.y),\n value = 0,\n change = 0;\n\n // x axis swipe\n if ((xMovement * 3) > yMovement && slider.settings.preventDefaultSwipeX) {\n e.preventDefault();\n // y axis swipe\n } else if ((yMovement * 3) > xMovement && slider.settings.preventDefaultSwipeY) {\n e.preventDefault();\n }\n if (slider.settings.mode !== 'fade' && slider.settings.oneToOneTouch) {\n // if horizontal, drag along x axis\n if (slider.settings.mode === 'horizontal') {\n change = touchPoints[0].pageX - slider.touch.start.x;\n value = slider.touch.originalPos.left + change;\n // if vertical, drag along y axis\n } else {\n change = touchPoints[0].pageY - slider.touch.start.y;\n value = slider.touch.originalPos.top + change;\n }\n setPositionProperty(value, 'reset', 0);\n }\n };\n\n /**\n * Event handler for \"touchend\"\n *\n * @param e (event)\n * - DOM event object\n */\n var onTouchEnd = function(e) {\n slider.viewport.unbind('touchmove MSPointerMove pointermove', onTouchMove);\n //enable slider controls as soon as user stops interacing with slides\n slider.controls.el.removeClass('disabled');\n var orig = e.originalEvent,\n touchPoints = (typeof orig.changedTouches !== 'undefined') ? orig.changedTouches : [orig],\n value = 0,\n distance = 0;\n // record end x, y positions\n slider.touch.end.x = touchPoints[0].pageX;\n slider.touch.end.y = touchPoints[0].pageY;\n // if fade mode, check if absolute x distance clears the threshold\n if (slider.settings.mode === 'fade') {\n distance = Math.abs(slider.touch.start.x - slider.touch.end.x);\n if (distance >= slider.settings.swipeThreshold) {\n if (slider.touch.start.x > slider.touch.end.x) {\n el.goToNextSlide();\n } else {\n el.goToPrevSlide();\n }\n el.stopAuto();\n }\n // not fade mode\n } else {\n // calculate distance and el's animate property\n if (slider.settings.mode === 'horizontal') {\n distance = slider.touch.end.x - slider.touch.start.x;\n value = slider.touch.originalPos.left;\n } else {\n distance = slider.touch.end.y - slider.touch.start.y;\n value = slider.touch.originalPos.top;\n }\n // if not infinite loop and first / last slide, do not attempt a slide transition\n if (!slider.settings.infiniteLoop && ((slider.active.index === 0 && distance > 0) || (slider.active.last && distance < 0))) {\n setPositionProperty(value, 'reset', 200);\n } else {\n // check if distance clears threshold\n if (Math.abs(distance) >= slider.settings.swipeThreshold) {\n if (distance < 0) {\n el.goToNextSlide();\n } else {\n el.goToPrevSlide();\n }\n el.stopAuto();\n } else {\n // el.animate(property, 200);\n setPositionProperty(value, 'reset', 200);\n }\n }\n }\n slider.viewport.unbind('touchend MSPointerUp pointerup', onTouchEnd);\n if (slider.viewport.get(0).releasePointerCapture) {\n slider.viewport.get(0).releasePointerCapture(slider.pointerId);\n }\n };\n\n /**\n * Window resize event callback\n */\n var resizeWindow = function(e) {\n // don't do anything if slider isn't initialized.\n if (!slider.initialized) { return; }\n // Delay if slider working.\n if (slider.working) {\n window.setTimeout(resizeWindow, 10);\n } else {\n // get the new window dimens (again, thank you IE)\n var windowWidthNew = $(window).width(),\n windowHeightNew = $(window).height();\n // make sure that it is a true window resize\n // *we must check this because our dinosaur friend IE fires a window resize event when certain DOM elements\n // are resized. Can you just die already?*\n if (windowWidth !== windowWidthNew || windowHeight !== windowHeightNew) {\n // set the new window dimens\n windowWidth = windowWidthNew;\n windowHeight = windowHeightNew;\n // update all dynamic elements\n el.redrawSlider();\n // Call user resize handler\n slider.settings.onSliderResize.call(el, slider.active.index);\n }\n }\n };\n\n /**\n * Adds an aria-hidden=true attribute to each element\n *\n * @param startVisibleIndex (int)\n * - the first visible element's index\n */\n var applyAriaHiddenAttributes = function(startVisibleIndex) {\n var numberOfSlidesShowing = getNumberSlidesShowing();\n // only apply attributes if the setting is enabled and not in ticker mode\n if (slider.settings.ariaHidden && !slider.settings.ticker) {\n // add aria-hidden=true to all elements\n slider.children.attr('aria-hidden', 'true');\n // get the visible elements and change to aria-hidden=false\n slider.children.slice(startVisibleIndex, startVisibleIndex + numberOfSlidesShowing).attr('aria-hidden', 'false');\n }\n };\n\n /**\n * Returns index according to present page range\n *\n * @param slideOndex (int)\n * - the desired slide index\n */\n var setSlideIndex = function(slideIndex) {\n if (slideIndex < 0) {\n if (slider.settings.infiniteLoop) {\n return getPagerQty() - 1;\n }else {\n //we don't go to undefined slides\n return slider.active.index;\n }\n // if slideIndex is greater than children length, set active index to 0 (this happens during infinite loop)\n } else if (slideIndex >= getPagerQty()) {\n if (slider.settings.infiniteLoop) {\n return 0;\n } else {\n //we don't move to undefined pages\n return slider.active.index;\n }\n // set active index to requested slide\n } else {\n return slideIndex;\n }\n };\n\n /**\n * ===================================================================================\n * = PUBLIC FUNCTIONS\n * ===================================================================================\n */\n\n /**\n * Performs slide transition to the specified slide\n *\n * @param slideIndex (int)\n * - the destination slide's index (zero-based)\n *\n * @param direction (string)\n * - INTERNAL USE ONLY - the direction of travel (\"prev\" / \"next\")\n */\n el.goToSlide = function(slideIndex, direction) {\n // onSlideBefore, onSlideNext, onSlidePrev callbacks\n // Allow transition canceling based on returned value\n var performTransition = true,\n moveBy = 0,\n position = {left: 0, top: 0},\n lastChild = null,\n lastShowingIndex, eq, value, requestEl;\n // store the old index\n slider.oldIndex = slider.active.index;\n //set new index\n slider.active.index = setSlideIndex(slideIndex);\n\n // if plugin is currently in motion, ignore request\n if (slider.working || slider.active.index === slider.oldIndex) { return; }\n // declare that plugin is in motion\n slider.working = true;\n\n performTransition = slider.settings.onSlideBefore.call(el, slider.children.eq(slider.active.index), slider.oldIndex, slider.active.index);\n\n // If transitions canceled, reset and return\n if (typeof (performTransition) !== 'undefined' && !performTransition) {\n slider.active.index = slider.oldIndex; // restore old index\n slider.working = false; // is not in motion\n return;\n }\n\n if (direction === 'next') {\n // Prevent canceling in future functions or lack there-of from negating previous commands to cancel\n if (!slider.settings.onSlideNext.call(el, slider.children.eq(slider.active.index), slider.oldIndex, slider.active.index)) {\n performTransition = false;\n }\n } else if (direction === 'prev') {\n // Prevent canceling in future functions or lack there-of from negating previous commands to cancel\n if (!slider.settings.onSlidePrev.call(el, slider.children.eq(slider.active.index), slider.oldIndex, slider.active.index)) {\n performTransition = false;\n }\n }\n\n // check if last slide\n slider.active.last = slider.active.index >= getPagerQty() - 1;\n // update the pager with active class\n if (slider.settings.pager || slider.settings.pagerCustom) { updatePagerActive(slider.active.index); }\n // // check for direction control update\n if (slider.settings.controls) { updateDirectionControls(); }\n // if slider is set to mode: \"fade\"\n if (slider.settings.mode === 'fade') {\n // if adaptiveHeight is true and next height is different from current height, animate to the new height\n if (slider.settings.adaptiveHeight && slider.viewport.height() !== getViewportHeight()) {\n slider.viewport.animate({height: getViewportHeight()}, slider.settings.adaptiveHeightSpeed);\n }\n // fade out the visible child and reset its z-index value\n slider.children.filter(':visible').fadeOut(slider.settings.speed).css({zIndex: 0});\n // fade in the newly requested slide\n slider.children.eq(slider.active.index).css('zIndex', slider.settings.slideZIndex + 1).fadeIn(slider.settings.speed, function() {\n $(this).css('zIndex', slider.settings.slideZIndex);\n updateAfterSlideTransition();\n });\n // slider mode is not \"fade\"\n } else {\n // if adaptiveHeight is true and next height is different from current height, animate to the new height\n if (slider.settings.adaptiveHeight && slider.viewport.height() !== getViewportHeight()) {\n slider.viewport.animate({height: getViewportHeight()}, slider.settings.adaptiveHeightSpeed);\n }\n // if carousel and not infinite loop\n if (!slider.settings.infiniteLoop && slider.carousel && slider.active.last) {\n if (slider.settings.mode === 'horizontal') {\n // get the last child position\n lastChild = slider.children.eq(slider.children.length - 1);\n position = lastChild.position();\n // calculate the position of the last slide\n moveBy = slider.viewport.width() - lastChild.outerWidth();\n } else {\n // get last showing index position\n lastShowingIndex = slider.children.length - slider.settings.minSlides;\n position = slider.children.eq(lastShowingIndex).position();\n }\n // horizontal carousel, going previous while on first slide (infiniteLoop mode)\n } else if (slider.carousel && slider.active.last && direction === 'prev') {\n // get the last child position\n eq = slider.settings.moveSlides === 1 ? slider.settings.maxSlides - getMoveBy() : ((getPagerQty() - 1) * getMoveBy()) - (slider.children.length - slider.settings.maxSlides);\n lastChild = el.children('.bx-clone').eq(eq);\n position = lastChild.position();\n // if infinite loop and \"Next\" is clicked on the last slide\n } else if (direction === 'next' && slider.active.index === 0) {\n // get the last clone position\n position = el.find('> .bx-clone').eq(slider.settings.maxSlides).position();\n slider.active.last = false;\n // normal non-zero requests\n } else if (slideIndex >= 0) {\n //parseInt is applied to allow floats for slides/page\n requestEl = slideIndex * parseInt(getMoveBy());\n position = slider.children.eq(requestEl).position();\n }\n\n /* If the position doesn't exist\n * (e.g. if you destroy the slider on a next click),\n * it doesn't throw an error.\n */\n if (typeof (position) !== 'undefined') {\n value = slider.settings.mode === 'horizontal' ? -(position.left - moveBy) : -position.top;\n // plugin values to be animated\n setPositionProperty(value, 'slide', slider.settings.speed);\n } else {\n slider.working = false;\n }\n }\n if (slider.settings.ariaHidden) { applyAriaHiddenAttributes(slider.active.index * getMoveBy()); }\n };\n\n /**\n * Transitions to the next slide in the show\n */\n el.goToNextSlide = function() {\n // if infiniteLoop is false and last page is showing, disregard call\n if (!slider.settings.infiniteLoop && slider.active.last) { return; }\n var pagerIndex = parseInt(slider.active.index) + 1;\n el.goToSlide(pagerIndex, 'next');\n };\n\n /**\n * Transitions to the prev slide in the show\n */\n el.goToPrevSlide = function() {\n // if infiniteLoop is false and last page is showing, disregard call\n if (!slider.settings.infiniteLoop && slider.active.index === 0) { return; }\n var pagerIndex = parseInt(slider.active.index) - 1;\n el.goToSlide(pagerIndex, 'prev');\n };\n\n /**\n * Starts the auto show\n *\n * @param preventControlUpdate (boolean)\n * - if true, auto controls state will not be updated\n */\n el.startAuto = function(preventControlUpdate) {\n // if an interval already exists, disregard call\n if (slider.interval) { return; }\n // create an interval\n slider.interval = setInterval(function() {\n if (slider.settings.autoDirection === 'next') {\n el.goToNextSlide();\n } else {\n el.goToPrevSlide();\n }\n }, slider.settings.pause);\n // if auto controls are displayed and preventControlUpdate is not true\n if (slider.settings.autoControls && preventControlUpdate !== true) { updateAutoControls('stop'); }\n };\n\n /**\n * Stops the auto show\n *\n * @param preventControlUpdate (boolean)\n * - if true, auto controls state will not be updated\n */\n el.stopAuto = function(preventControlUpdate) {\n // if no interval exists, disregard call\n if (!slider.interval) { return; }\n // clear the interval\n clearInterval(slider.interval);\n slider.interval = null;\n // if auto controls are displayed and preventControlUpdate is not true\n if (slider.settings.autoControls && preventControlUpdate !== true) { updateAutoControls('start'); }\n };\n\n /**\n * Returns current slide index (zero-based)\n */\n el.getCurrentSlide = function() {\n return slider.active.index;\n };\n\n /**\n * Returns current slide element\n */\n el.getCurrentSlideElement = function() {\n return slider.children.eq(slider.active.index);\n };\n\n /**\n * Returns a slide element\n * @param index (int)\n * - The index (zero-based) of the element you want returned.\n */\n el.getSlideElement = function(index) {\n return slider.children.eq(index);\n };\n\n /**\n * Returns number of slides in show\n */\n el.getSlideCount = function() {\n return slider.children.length;\n };\n\n /**\n * Return slider.working variable\n */\n el.isWorking = function() {\n return slider.working;\n };\n\n /**\n * Update all dynamic slider elements\n */\n el.redrawSlider = function() {\n // resize all children in ratio to new screen size\n slider.children.add(el.find('.bx-clone')).outerWidth(getSlideWidth());\n // adjust the height\n slider.viewport.css('height', getViewportHeight());\n // update the slide position\n if (!slider.settings.ticker) { setSlidePosition(); }\n // if active.last was true before the screen resize, we want\n // to keep it last no matter what screen size we end on\n if (slider.active.last) { slider.active.index = getPagerQty() - 1; }\n // if the active index (page) no longer exists due to the resize, simply set the index as last\n if (slider.active.index >= getPagerQty()) { slider.active.last = true; }\n // if a pager is being displayed and a custom pager is not being used, update it\n if (slider.settings.pager && !slider.settings.pagerCustom) {\n populatePager();\n updatePagerActive(slider.active.index);\n }\n if (slider.settings.ariaHidden) { applyAriaHiddenAttributes(slider.active.index * getMoveBy()); }\n };\n\n /**\n * Destroy the current instance of the slider (revert everything back to original state)\n */\n el.destroySlider = function() {\n // don't do anything if slider has already been destroyed\n if (!slider.initialized) { return; }\n slider.initialized = false;\n $('.bx-clone', this).remove();\n slider.children.each(function() {\n if ($(this).data('origStyle') !== undefined) {\n $(this).attr('style', $(this).data('origStyle'));\n } else {\n $(this).removeAttr('style');\n }\n });\n if ($(this).data('origStyle') !== undefined) {\n this.attr('style', $(this).data('origStyle'));\n } else {\n $(this).removeAttr('style');\n }\n $(this).unwrap().unwrap();\n if (slider.controls.el) { slider.controls.el.remove(); }\n if (slider.controls.next) { slider.controls.next.remove(); }\n if (slider.controls.prev) { slider.controls.prev.remove(); }\n if (slider.pagerEl && slider.settings.controls && !slider.settings.pagerCustom) { slider.pagerEl.remove(); }\n $('.bx-caption', this).remove();\n if (slider.controls.autoEl) { slider.controls.autoEl.remove(); }\n clearInterval(slider.interval);\n if (slider.settings.responsive) { $(window).unbind('resize', resizeWindow); }\n if (slider.settings.keyboardEnabled) { $(document).unbind('keydown', keyPress); }\n //remove self reference in data\n $(this).removeData('bxSlider');\n };\n\n /**\n * Reload the slider (revert all DOM changes, and re-initialize)\n */\n el.reloadSlider = function(settings) {\n if (settings !== undefined) { options = settings; }\n el.destroySlider();\n init();\n //store reference to self in order to access public functions later\n $(el).data('bxSlider', this);\n };\n\n init();\n\n $(el).data('bxSlider', this);\n\n // returns the current jQuery object\n return this;\n };\n\n})(jQuery);\n","/* ========================================================================\n * Bootstrap: transition.js v3.3.5\n * http://getbootstrap.com/javascript/#transitions\n * ========================================================================\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // CSS TRANSITION SUPPORT (Shoutout: http://www.modernizr.com/)\n // ============================================================\n\n function transitionEnd() {\n var el = document.createElement('bootstrap')\n\n var transEndEventNames = {\n WebkitTransition : 'webkitTransitionEnd',\n MozTransition : 'transitionend',\n OTransition : 'oTransitionEnd otransitionend',\n transition : 'transitionend'\n }\n\n for (var name in transEndEventNames) {\n if (el.style[name] !== undefined) {\n return { end: transEndEventNames[name] }\n }\n }\n\n return false // explicit for ie8 ( ._.)\n }\n\n // http://blog.alexmaccaw.com/css-transitions\n $.fn.emulateTransitionEnd = function (duration) {\n var called = false\n var $el = this\n $(this).one('bsTransitionEnd', function () { called = true })\n var callback = function () { if (!called) $($el).trigger($.support.transition.end) }\n setTimeout(callback, duration)\n return this\n }\n\n $(function () {\n $.support.transition = transitionEnd()\n\n if (!$.support.transition) return\n\n $.event.special.bsTransitionEnd = {\n bindType: $.support.transition.end,\n delegateType: $.support.transition.end,\n handle: function (e) {\n if ($(e.target).is(this)) return e.handleObj.handler.apply(this, arguments)\n }\n }\n })\n\n}(jQuery);\n","/* ========================================================================\n * Bootstrap: alert.js v3.3.5\n * http://getbootstrap.com/javascript/#alerts\n * ========================================================================\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // ALERT CLASS DEFINITION\n // ======================\n\n var dismiss = '[data-dismiss=\"alert\"]'\n var Alert = function (el) {\n $(el).on('click', dismiss, this.close)\n }\n\n Alert.VERSION = '3.3.5'\n\n Alert.TRANSITION_DURATION = 150\n\n Alert.prototype.close = function (e) {\n var $this = $(this)\n var selector = $this.attr('data-target')\n\n if (!selector) {\n selector = $this.attr('href')\n selector = selector && selector.replace(/.*(?=#[^\\s]*$)/, '') // strip for ie7\n }\n\n var $parent = $(selector)\n\n if (e) e.preventDefault()\n\n if (!$parent.length) {\n $parent = $this.closest('.alert')\n }\n\n $parent.trigger(e = $.Event('close.bs.alert'))\n\n if (e.isDefaultPrevented()) return\n\n $parent.removeClass('in')\n\n function removeElement() {\n // detach from parent, fire event then clean up data\n $parent.detach().trigger('closed.bs.alert').remove()\n }\n\n $.support.transition && $parent.hasClass('fade') ?\n $parent\n .one('bsTransitionEnd', removeElement)\n .emulateTransitionEnd(Alert.TRANSITION_DURATION) :\n removeElement()\n }\n\n\n // ALERT PLUGIN DEFINITION\n // =======================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.alert')\n\n if (!data) $this.data('bs.alert', (data = new Alert(this)))\n if (typeof option == 'string') data[option].call($this)\n })\n }\n\n var old = $.fn.alert\n\n $.fn.alert = Plugin\n $.fn.alert.Constructor = Alert\n\n\n // ALERT NO CONFLICT\n // =================\n\n $.fn.alert.noConflict = function () {\n $.fn.alert = old\n return this\n }\n\n\n // ALERT DATA-API\n // ==============\n\n $(document).on('click.bs.alert.data-api', dismiss, Alert.prototype.close)\n\n}(jQuery);\n","/* ========================================================================\n * Bootstrap: button.js v3.3.5\n * http://getbootstrap.com/javascript/#buttons\n * ========================================================================\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // BUTTON PUBLIC CLASS DEFINITION\n // ==============================\n\n var Button = function (element, options) {\n this.$element = $(element)\n this.options = $.extend({}, Button.DEFAULTS, options)\n this.isLoading = false\n }\n\n Button.VERSION = '3.3.5'\n\n Button.DEFAULTS = {\n loadingText: 'loading...'\n }\n\n Button.prototype.setState = function (state) {\n var d = 'disabled'\n var $el = this.$element\n var val = $el.is('input') ? 'val' : 'html'\n var data = $el.data()\n\n state += 'Text'\n\n if (data.resetText == null) $el.data('resetText', $el[val]())\n\n // push to event loop to allow forms to submit\n setTimeout($.proxy(function () {\n $el[val](data[state] == null ? this.options[state] : data[state])\n\n if (state == 'loadingText') {\n this.isLoading = true\n $el.addClass(d).attr(d, d)\n } else if (this.isLoading) {\n this.isLoading = false\n $el.removeClass(d).removeAttr(d)\n }\n }, this), 0)\n }\n\n Button.prototype.toggle = function () {\n var changed = true\n var $parent = this.$element.closest('[data-toggle=\"buttons\"]')\n\n if ($parent.length) {\n var $input = this.$element.find('input')\n if ($input.prop('type') == 'radio') {\n if ($input.prop('checked')) changed = false\n $parent.find('.active').removeClass('active')\n this.$element.addClass('active')\n } else if ($input.prop('type') == 'checkbox') {\n if (($input.prop('checked')) !== this.$element.hasClass('active')) changed = false\n this.$element.toggleClass('active')\n }\n $input.prop('checked', this.$element.hasClass('active'))\n if (changed) $input.trigger('change')\n } else {\n this.$element.attr('aria-pressed', !this.$element.hasClass('active'))\n this.$element.toggleClass('active')\n }\n }\n\n\n // BUTTON PLUGIN DEFINITION\n // ========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.button')\n var options = typeof option == 'object' && option\n\n if (!data) $this.data('bs.button', (data = new Button(this, options)))\n\n if (option == 'toggle') data.toggle()\n else if (option) data.setState(option)\n })\n }\n\n var old = $.fn.button\n\n $.fn.button = Plugin\n $.fn.button.Constructor = Button\n\n\n // BUTTON NO CONFLICT\n // ==================\n\n $.fn.button.noConflict = function () {\n $.fn.button = old\n return this\n }\n\n\n // BUTTON DATA-API\n // ===============\n\n $(document)\n .on('click.bs.button.data-api', '[data-toggle^=\"button\"]', function (e) {\n var $btn = $(e.target)\n if (!$btn.hasClass('btn')) $btn = $btn.closest('.btn')\n Plugin.call($btn, 'toggle')\n if (!($(e.target).is('input[type=\"radio\"]') || $(e.target).is('input[type=\"checkbox\"]'))) e.preventDefault()\n })\n .on('focus.bs.button.data-api blur.bs.button.data-api', '[data-toggle^=\"button\"]', function (e) {\n $(e.target).closest('.btn').toggleClass('focus', /^focus(in)?$/.test(e.type))\n })\n\n}(jQuery);\n","/* ========================================================================\n * Bootstrap: carousel.js v3.3.5\n * http://getbootstrap.com/javascript/#carousel\n * ========================================================================\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // CAROUSEL CLASS DEFINITION\n // =========================\n\n var Carousel = function (element, options) {\n this.$element = $(element)\n this.$indicators = this.$element.find('.carousel-indicators')\n this.options = options\n this.paused = null\n this.sliding = null\n this.interval = null\n this.$active = null\n this.$items = null\n\n this.options.keyboard && this.$element.on('keydown.bs.carousel', $.proxy(this.keydown, this))\n\n this.options.pause == 'hover' && !('ontouchstart' in document.documentElement) && this.$element\n .on('mouseenter.bs.carousel', $.proxy(this.pause, this))\n .on('mouseleave.bs.carousel', $.proxy(this.cycle, this))\n }\n\n Carousel.VERSION = '3.3.5'\n\n Carousel.TRANSITION_DURATION = 600\n\n Carousel.DEFAULTS = {\n interval: 5000,\n pause: 'hover',\n wrap: true,\n keyboard: true\n }\n\n Carousel.prototype.keydown = function (e) {\n if (/input|textarea/i.test(e.target.tagName)) return\n switch (e.which) {\n case 37: this.prev(); break\n case 39: this.next(); break\n default: return\n }\n\n e.preventDefault()\n }\n\n Carousel.prototype.cycle = function (e) {\n e || (this.paused = false)\n\n this.interval && clearInterval(this.interval)\n\n this.options.interval\n && !this.paused\n && (this.interval = setInterval($.proxy(this.next, this), this.options.interval))\n\n return this\n }\n\n Carousel.prototype.getItemIndex = function (item) {\n this.$items = item.parent().children('.item')\n return this.$items.index(item || this.$active)\n }\n\n Carousel.prototype.getItemForDirection = function (direction, active) {\n var activeIndex = this.getItemIndex(active)\n var willWrap = (direction == 'prev' && activeIndex === 0)\n || (direction == 'next' && activeIndex == (this.$items.length - 1))\n if (willWrap && !this.options.wrap) return active\n var delta = direction == 'prev' ? -1 : 1\n var itemIndex = (activeIndex + delta) % this.$items.length\n return this.$items.eq(itemIndex)\n }\n\n Carousel.prototype.to = function (pos) {\n var that = this\n var activeIndex = this.getItemIndex(this.$active = this.$element.find('.item.active'))\n\n if (pos > (this.$items.length - 1) || pos < 0) return\n\n if (this.sliding) return this.$element.one('slid.bs.carousel', function () { that.to(pos) }) // yes, \"slid\"\n if (activeIndex == pos) return this.pause().cycle()\n\n return this.slide(pos > activeIndex ? 'next' : 'prev', this.$items.eq(pos))\n }\n\n Carousel.prototype.pause = function (e) {\n e || (this.paused = true)\n\n if (this.$element.find('.next, .prev').length && $.support.transition) {\n this.$element.trigger($.support.transition.end)\n this.cycle(true)\n }\n\n this.interval = clearInterval(this.interval)\n\n return this\n }\n\n Carousel.prototype.next = function () {\n if (this.sliding) return\n return this.slide('next')\n }\n\n Carousel.prototype.prev = function () {\n if (this.sliding) return\n return this.slide('prev')\n }\n\n Carousel.prototype.slide = function (type, next) {\n var $active = this.$element.find('.item.active')\n var $next = next || this.getItemForDirection(type, $active)\n var isCycling = this.interval\n var direction = type == 'next' ? 'left' : 'right'\n var that = this\n\n if ($next.hasClass('active')) return (this.sliding = false)\n\n var relatedTarget = $next[0]\n var slideEvent = $.Event('slide.bs.carousel', {\n relatedTarget: relatedTarget,\n direction: direction\n })\n this.$element.trigger(slideEvent)\n if (slideEvent.isDefaultPrevented()) return\n\n this.sliding = true\n\n isCycling && this.pause()\n\n if (this.$indicators.length) {\n this.$indicators.find('.active').removeClass('active')\n var $nextIndicator = $(this.$indicators.children()[this.getItemIndex($next)])\n $nextIndicator && $nextIndicator.addClass('active')\n }\n\n var slidEvent = $.Event('slid.bs.carousel', { relatedTarget: relatedTarget, direction: direction }) // yes, \"slid\"\n if ($.support.transition && this.$element.hasClass('slide')) {\n $next.addClass(type)\n $next[0].offsetWidth // force reflow\n $active.addClass(direction)\n $next.addClass(direction)\n $active\n .one('bsTransitionEnd', function () {\n $next.removeClass([type, direction].join(' ')).addClass('active')\n $active.removeClass(['active', direction].join(' '))\n that.sliding = false\n setTimeout(function () {\n that.$element.trigger(slidEvent)\n }, 0)\n })\n .emulateTransitionEnd(Carousel.TRANSITION_DURATION)\n } else {\n $active.removeClass('active')\n $next.addClass('active')\n this.sliding = false\n this.$element.trigger(slidEvent)\n }\n\n isCycling && this.cycle()\n\n return this\n }\n\n\n // CAROUSEL PLUGIN DEFINITION\n // ==========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.carousel')\n var options = $.extend({}, Carousel.DEFAULTS, $this.data(), typeof option == 'object' && option)\n var action = typeof option == 'string' ? option : options.slide\n\n if (!data) $this.data('bs.carousel', (data = new Carousel(this, options)))\n if (typeof option == 'number') data.to(option)\n else if (action) data[action]()\n else if (options.interval) data.pause().cycle()\n })\n }\n\n var old = $.fn.carousel\n\n $.fn.carousel = Plugin\n $.fn.carousel.Constructor = Carousel\n\n\n // CAROUSEL NO CONFLICT\n // ====================\n\n $.fn.carousel.noConflict = function () {\n $.fn.carousel = old\n return this\n }\n\n\n // CAROUSEL DATA-API\n // =================\n\n var clickHandler = function (e) {\n var href\n var $this = $(this)\n var $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\\s]+$)/, '')) // strip for ie7\n if (!$target.hasClass('carousel')) return\n var options = $.extend({}, $target.data(), $this.data())\n var slideIndex = $this.attr('data-slide-to')\n if (slideIndex) options.interval = false\n\n Plugin.call($target, options)\n\n if (slideIndex) {\n $target.data('bs.carousel').to(slideIndex)\n }\n\n e.preventDefault()\n }\n\n $(document)\n .on('click.bs.carousel.data-api', '[data-slide]', clickHandler)\n .on('click.bs.carousel.data-api', '[data-slide-to]', clickHandler)\n\n $(window).on('load', function () {\n $('[data-ride=\"carousel\"]').each(function () {\n var $carousel = $(this)\n Plugin.call($carousel, $carousel.data())\n })\n })\n\n}(jQuery);\n","/* ========================================================================\n * Bootstrap: collapse.js v3.3.5\n * http://getbootstrap.com/javascript/#collapse\n * ========================================================================\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // COLLAPSE PUBLIC CLASS DEFINITION\n // ================================\n\n var Collapse = function (element, options) {\n this.$element = $(element)\n this.options = $.extend({}, Collapse.DEFAULTS, options)\n this.$trigger = $('[data-toggle=\"collapse\"][href=\"#' + element.id + '\"],' +\n '[data-toggle=\"collapse\"][data-target=\"#' + element.id + '\"]')\n this.transitioning = null\n\n if (this.options.parent) {\n this.$parent = this.getParent()\n } else {\n this.addAriaAndCollapsedClass(this.$element, this.$trigger)\n }\n\n if (this.options.toggle) this.toggle()\n }\n\n Collapse.VERSION = '3.3.5'\n\n Collapse.TRANSITION_DURATION = 350\n\n Collapse.DEFAULTS = {\n toggle: true\n }\n\n Collapse.prototype.dimension = function () {\n var hasWidth = this.$element.hasClass('width')\n return hasWidth ? 'width' : 'height'\n }\n\n Collapse.prototype.show = function () {\n if (this.transitioning || this.$element.hasClass('in')) return\n\n var activesData\n var actives = this.$parent && this.$parent.children('.panel').children('.in, .collapsing')\n\n if (actives && actives.length) {\n activesData = actives.data('bs.collapse')\n if (activesData && activesData.transitioning) return\n }\n\n var startEvent = $.Event('show.bs.collapse')\n this.$element.trigger(startEvent)\n if (startEvent.isDefaultPrevented()) return\n\n if (actives && actives.length) {\n Plugin.call(actives, 'hide')\n activesData || actives.data('bs.collapse', null)\n }\n\n var dimension = this.dimension()\n\n this.$element\n .removeClass('collapse')\n .addClass('collapsing')[dimension](0)\n .attr('aria-expanded', true)\n\n this.$trigger\n .removeClass('collapsed')\n .attr('aria-expanded', true)\n\n this.transitioning = 1\n\n var complete = function () {\n this.$element\n .removeClass('collapsing')\n .addClass('collapse in')[dimension]('')\n this.transitioning = 0\n this.$element\n .trigger('shown.bs.collapse')\n }\n\n if (!$.support.transition) return complete.call(this)\n\n var scrollSize = $.camelCase(['scroll', dimension].join('-'))\n\n this.$element\n .one('bsTransitionEnd', $.proxy(complete, this))\n .emulateTransitionEnd(Collapse.TRANSITION_DURATION)[dimension](this.$element[0][scrollSize])\n }\n\n Collapse.prototype.hide = function () {\n if (this.transitioning || !this.$element.hasClass('in')) return\n\n var startEvent = $.Event('hide.bs.collapse')\n this.$element.trigger(startEvent)\n if (startEvent.isDefaultPrevented()) return\n\n var dimension = this.dimension()\n\n this.$element[dimension](this.$element[dimension]())[0].offsetHeight\n\n this.$element\n .addClass('collapsing')\n .removeClass('collapse in')\n .attr('aria-expanded', false)\n\n this.$trigger\n .addClass('collapsed')\n .attr('aria-expanded', false)\n\n this.transitioning = 1\n\n var complete = function () {\n this.transitioning = 0\n this.$element\n .removeClass('collapsing')\n .addClass('collapse')\n .trigger('hidden.bs.collapse')\n }\n\n if (!$.support.transition) return complete.call(this)\n\n this.$element\n [dimension](0)\n .one('bsTransitionEnd', $.proxy(complete, this))\n .emulateTransitionEnd(Collapse.TRANSITION_DURATION)\n }\n\n Collapse.prototype.toggle = function () {\n this[this.$element.hasClass('in') ? 'hide' : 'show']()\n }\n\n Collapse.prototype.getParent = function () {\n return $(this.options.parent)\n .find('[data-toggle=\"collapse\"][data-parent=\"' + this.options.parent + '\"]')\n .each($.proxy(function (i, element) {\n var $element = $(element)\n this.addAriaAndCollapsedClass(getTargetFromTrigger($element), $element)\n }, this))\n .end()\n }\n\n Collapse.prototype.addAriaAndCollapsedClass = function ($element, $trigger) {\n var isOpen = $element.hasClass('in')\n\n $element.attr('aria-expanded', isOpen)\n $trigger\n .toggleClass('collapsed', !isOpen)\n .attr('aria-expanded', isOpen)\n }\n\n function getTargetFromTrigger($trigger) {\n var href\n var target = $trigger.attr('data-target')\n || (href = $trigger.attr('href')) && href.replace(/.*(?=#[^\\s]+$)/, '') // strip for ie7\n\n return $(target)\n }\n\n\n // COLLAPSE PLUGIN DEFINITION\n // ==========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.collapse')\n var options = $.extend({}, Collapse.DEFAULTS, $this.data(), typeof option == 'object' && option)\n\n if (!data && options.toggle && /show|hide/.test(option)) options.toggle = false\n if (!data) $this.data('bs.collapse', (data = new Collapse(this, options)))\n if (typeof option == 'string') data[option]()\n })\n }\n\n var old = $.fn.collapse\n\n $.fn.collapse = Plugin\n $.fn.collapse.Constructor = Collapse\n\n\n // COLLAPSE NO CONFLICT\n // ====================\n\n $.fn.collapse.noConflict = function () {\n $.fn.collapse = old\n return this\n }\n\n\n // COLLAPSE DATA-API\n // =================\n\n $(document).on('click.bs.collapse.data-api', '[data-toggle=\"collapse\"]', function (e) {\n var $this = $(this)\n\n if (!$this.attr('data-target')) e.preventDefault()\n\n var $target = getTargetFromTrigger($this)\n var data = $target.data('bs.collapse')\n var option = data ? 'toggle' : $this.data()\n\n Plugin.call($target, option)\n })\n\n}(jQuery);\n","/* ========================================================================\n * Bootstrap: dropdown.js v3.3.5\n * http://getbootstrap.com/javascript/#dropdowns\n * ========================================================================\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // DROPDOWN CLASS DEFINITION\n // =========================\n\n var backdrop = '.dropdown-backdrop'\n var toggle = '[data-toggle=\"dropdown\"]'\n var Dropdown = function (element) {\n $(element).on('click.bs.dropdown', this.toggle)\n }\n\n Dropdown.VERSION = '3.3.5'\n\n function getParent($this) {\n var selector = $this.attr('data-target')\n\n if (!selector) {\n selector = $this.attr('href')\n selector = selector && /#[A-Za-z]/.test(selector) && selector.replace(/.*(?=#[^\\s]*$)/, '') // strip for ie7\n }\n\n var $parent = selector && $(selector)\n\n return $parent && $parent.length ? $parent : $this.parent()\n }\n\n function clearMenus(e) {\n if (e && e.which === 3) return\n $(backdrop).remove()\n $(toggle).each(function () {\n var $this = $(this)\n var $parent = getParent($this)\n var relatedTarget = { relatedTarget: this }\n\n if (!$parent.hasClass('open')) return\n\n if (e && e.type == 'click' && /input|textarea/i.test(e.target.tagName) && $.contains($parent[0], e.target)) return\n\n $parent.trigger(e = $.Event('hide.bs.dropdown', relatedTarget))\n\n if (e.isDefaultPrevented()) return\n\n $this.attr('aria-expanded', 'false')\n $parent.removeClass('open').trigger('hidden.bs.dropdown', relatedTarget)\n })\n }\n\n Dropdown.prototype.toggle = function (e) {\n var $this = $(this)\n\n if ($this.is('.disabled, :disabled')) return\n\n var $parent = getParent($this)\n var isActive = $parent.hasClass('open')\n\n clearMenus()\n\n if (!isActive) {\n if ('ontouchstart' in document.documentElement && !$parent.closest('.navbar-nav').length) {\n // if mobile we use a backdrop because click events don't delegate\n $(document.createElement('div'))\n .addClass('dropdown-backdrop')\n .insertAfter($(this))\n .on('click', clearMenus)\n }\n\n var relatedTarget = { relatedTarget: this }\n $parent.trigger(e = $.Event('show.bs.dropdown', relatedTarget))\n\n if (e.isDefaultPrevented()) return\n\n $this\n .trigger('focus')\n .attr('aria-expanded', 'true')\n\n $parent\n .toggleClass('open')\n .trigger('shown.bs.dropdown', relatedTarget)\n }\n\n return false\n }\n\n Dropdown.prototype.keydown = function (e) {\n if (!/(38|40|27|32)/.test(e.which) || /input|textarea/i.test(e.target.tagName)) return\n\n var $this = $(this)\n\n e.preventDefault()\n e.stopPropagation()\n\n if ($this.is('.disabled, :disabled')) return\n\n var $parent = getParent($this)\n var isActive = $parent.hasClass('open')\n\n if (!isActive && e.which != 27 || isActive && e.which == 27) {\n if (e.which == 27) $parent.find(toggle).trigger('focus')\n return $this.trigger('click')\n }\n\n var desc = ' li:not(.disabled):visible a'\n var $items = $parent.find('.dropdown-menu' + desc)\n\n if (!$items.length) return\n\n var index = $items.index(e.target)\n\n if (e.which == 38 && index > 0) index-- // up\n if (e.which == 40 && index < $items.length - 1) index++ // down\n if (!~index) index = 0\n\n $items.eq(index).trigger('focus')\n }\n\n\n // DROPDOWN PLUGIN DEFINITION\n // ==========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.dropdown')\n\n if (!data) $this.data('bs.dropdown', (data = new Dropdown(this)))\n if (typeof option == 'string') data[option].call($this)\n })\n }\n\n var old = $.fn.dropdown\n\n $.fn.dropdown = Plugin\n $.fn.dropdown.Constructor = Dropdown\n\n\n // DROPDOWN NO CONFLICT\n // ====================\n\n $.fn.dropdown.noConflict = function () {\n $.fn.dropdown = old\n return this\n }\n\n\n // APPLY TO STANDARD DROPDOWN ELEMENTS\n // ===================================\n\n $(document)\n .on('click.bs.dropdown.data-api', clearMenus)\n .on('click.bs.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() })\n .on('click.bs.dropdown.data-api', toggle, Dropdown.prototype.toggle)\n .on('keydown.bs.dropdown.data-api', toggle, Dropdown.prototype.keydown)\n .on('keydown.bs.dropdown.data-api', '.dropdown-menu', Dropdown.prototype.keydown)\n\n}(jQuery);\n","/* ========================================================================\n * Bootstrap: modal.js v3.3.5\n * http://getbootstrap.com/javascript/#modals\n * ========================================================================\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // MODAL CLASS DEFINITION\n // ======================\n\n var Modal = function (element, options) {\n this.options = options\n this.$body = $(document.body)\n this.$element = $(element)\n this.$dialog = this.$element.find('.modal-dialog')\n this.$backdrop = null\n this.isShown = null\n this.originalBodyPad = null\n this.scrollbarWidth = 0\n this.ignoreBackdropClick = false\n\n if (this.options.remote) {\n this.$element\n .find('.modal-content')\n .load(this.options.remote, $.proxy(function () {\n this.$element.trigger('loaded.bs.modal')\n }, this))\n }\n }\n\n Modal.VERSION = '3.3.5'\n\n Modal.TRANSITION_DURATION = 300\n Modal.BACKDROP_TRANSITION_DURATION = 150\n\n Modal.DEFAULTS = {\n backdrop: true,\n keyboard: true,\n show: true\n }\n\n Modal.prototype.toggle = function (_relatedTarget) {\n return this.isShown ? this.hide() : this.show(_relatedTarget)\n }\n\n Modal.prototype.show = function (_relatedTarget) {\n var that = this\n var e = $.Event('show.bs.modal', { relatedTarget: _relatedTarget })\n\n this.$element.trigger(e)\n\n if (this.isShown || e.isDefaultPrevented()) return\n\n this.isShown = true\n\n this.checkScrollbar()\n this.setScrollbar()\n this.$body.addClass('modal-open')\n\n this.escape()\n this.resize()\n\n this.$element.on('click.dismiss.bs.modal', '[data-dismiss=\"modal\"]', $.proxy(this.hide, this))\n\n this.$dialog.on('mousedown.dismiss.bs.modal', function () {\n that.$element.one('mouseup.dismiss.bs.modal', function (e) {\n if ($(e.target).is(that.$element)) that.ignoreBackdropClick = true\n })\n })\n\n this.backdrop(function () {\n var transition = $.support.transition && that.$element.hasClass('fade')\n\n if (!that.$element.parent().length) {\n that.$element.appendTo(that.$body) // don't move modals dom position\n }\n\n that.$element\n .show()\n .scrollTop(0)\n\n that.adjustDialog()\n\n if (transition) {\n that.$element[0].offsetWidth // force reflow\n }\n\n that.$element.addClass('in')\n\n that.enforceFocus()\n\n var e = $.Event('shown.bs.modal', { relatedTarget: _relatedTarget })\n\n transition ?\n that.$dialog // wait for modal to slide in\n .one('bsTransitionEnd', function () {\n that.$element.trigger('focus').trigger(e)\n })\n .emulateTransitionEnd(Modal.TRANSITION_DURATION) :\n that.$element.trigger('focus').trigger(e)\n })\n }\n\n Modal.prototype.hide = function (e) {\n if (e) e.preventDefault()\n\n e = $.Event('hide.bs.modal')\n\n this.$element.trigger(e)\n\n if (!this.isShown || e.isDefaultPrevented()) return\n\n this.isShown = false\n\n this.escape()\n this.resize()\n\n $(document).off('focusin.bs.modal')\n\n this.$element\n .removeClass('in')\n .off('click.dismiss.bs.modal')\n .off('mouseup.dismiss.bs.modal')\n\n this.$dialog.off('mousedown.dismiss.bs.modal')\n\n $.support.transition && this.$element.hasClass('fade') ?\n this.$element\n .one('bsTransitionEnd', $.proxy(this.hideModal, this))\n .emulateTransitionEnd(Modal.TRANSITION_DURATION) :\n this.hideModal()\n }\n\n Modal.prototype.enforceFocus = function () {\n $(document)\n .off('focusin.bs.modal') // guard against infinite focus loop\n .on('focusin.bs.modal', $.proxy(function (e) {\n if (this.$element[0] !== e.target && !this.$element.has(e.target).length) {\n this.$element.trigger('focus')\n }\n }, this))\n }\n\n Modal.prototype.escape = function () {\n if (this.isShown && this.options.keyboard) {\n this.$element.on('keydown.dismiss.bs.modal', $.proxy(function (e) {\n e.which == 27 && this.hide()\n }, this))\n } else if (!this.isShown) {\n this.$element.off('keydown.dismiss.bs.modal')\n }\n }\n\n Modal.prototype.resize = function () {\n if (this.isShown) {\n $(window).on('resize.bs.modal', $.proxy(this.handleUpdate, this))\n } else {\n $(window).off('resize.bs.modal')\n }\n }\n\n Modal.prototype.hideModal = function () {\n var that = this\n this.$element.hide()\n this.backdrop(function () {\n that.$body.removeClass('modal-open')\n that.resetAdjustments()\n that.resetScrollbar()\n that.$element.trigger('hidden.bs.modal')\n })\n }\n\n Modal.prototype.removeBackdrop = function () {\n this.$backdrop && this.$backdrop.remove()\n this.$backdrop = null\n }\n\n Modal.prototype.backdrop = function (callback) {\n var that = this\n var animate = this.$element.hasClass('fade') ? 'fade' : ''\n\n if (this.isShown && this.options.backdrop) {\n var doAnimate = $.support.transition && animate\n\n this.$backdrop = $(document.createElement('div'))\n .addClass('modal-backdrop ' + animate)\n .appendTo(this.$body)\n\n this.$element.on('click.dismiss.bs.modal', $.proxy(function (e) {\n if (this.ignoreBackdropClick) {\n this.ignoreBackdropClick = false\n return\n }\n if (e.target !== e.currentTarget) return\n this.options.backdrop == 'static'\n ? this.$element[0].focus()\n : this.hide()\n }, this))\n\n if (doAnimate) this.$backdrop[0].offsetWidth // force reflow\n\n this.$backdrop.addClass('in')\n\n if (!callback) return\n\n doAnimate ?\n this.$backdrop\n .one('bsTransitionEnd', callback)\n .emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) :\n callback()\n\n } else if (!this.isShown && this.$backdrop) {\n this.$backdrop.removeClass('in')\n\n var callbackRemove = function () {\n that.removeBackdrop()\n callback && callback()\n }\n $.support.transition && this.$element.hasClass('fade') ?\n this.$backdrop\n .one('bsTransitionEnd', callbackRemove)\n .emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) :\n callbackRemove()\n\n } else if (callback) {\n callback()\n }\n }\n\n // these following methods are used to handle overflowing modals\n\n Modal.prototype.handleUpdate = function () {\n this.adjustDialog()\n }\n\n Modal.prototype.adjustDialog = function () {\n var modalIsOverflowing = this.$element[0].scrollHeight > document.documentElement.clientHeight\n\n this.$element.css({\n paddingLeft: !this.bodyIsOverflowing && modalIsOverflowing ? this.scrollbarWidth : '',\n paddingRight: this.bodyIsOverflowing && !modalIsOverflowing ? this.scrollbarWidth : ''\n })\n }\n\n Modal.prototype.resetAdjustments = function () {\n this.$element.css({\n paddingLeft: '',\n paddingRight: ''\n })\n }\n\n Modal.prototype.checkScrollbar = function () {\n var fullWindowWidth = window.innerWidth\n if (!fullWindowWidth) { // workaround for missing window.innerWidth in IE8\n var documentElementRect = document.documentElement.getBoundingClientRect()\n fullWindowWidth = documentElementRect.right - Math.abs(documentElementRect.left)\n }\n this.bodyIsOverflowing = document.body.clientWidth < fullWindowWidth\n this.scrollbarWidth = this.measureScrollbar()\n }\n\n Modal.prototype.setScrollbar = function () {\n var bodyPad = parseInt((this.$body.css('padding-right') || 0), 10)\n this.originalBodyPad = document.body.style.paddingRight || ''\n if (this.bodyIsOverflowing) this.$body.css('padding-right', bodyPad + this.scrollbarWidth)\n }\n\n Modal.prototype.resetScrollbar = function () {\n this.$body.css('padding-right', this.originalBodyPad)\n }\n\n Modal.prototype.measureScrollbar = function () { // thx walsh\n var scrollDiv = document.createElement('div')\n scrollDiv.className = 'modal-scrollbar-measure'\n this.$body.append(scrollDiv)\n var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth\n this.$body[0].removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n\n // MODAL PLUGIN DEFINITION\n // =======================\n\n function Plugin(option, _relatedTarget) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.modal')\n var options = $.extend({}, Modal.DEFAULTS, $this.data(), typeof option == 'object' && option)\n\n if (!data) $this.data('bs.modal', (data = new Modal(this, options)))\n if (typeof option == 'string') data[option](_relatedTarget)\n else if (options.show) data.show(_relatedTarget)\n })\n }\n\n var old = $.fn.modal\n\n $.fn.modal = Plugin\n $.fn.modal.Constructor = Modal\n\n\n // MODAL NO CONFLICT\n // =================\n\n $.fn.modal.noConflict = function () {\n $.fn.modal = old\n return this\n }\n\n\n // MODAL DATA-API\n // ==============\n\n $(document).on('click.bs.modal.data-api', '[data-toggle=\"modal\"]', function (e) {\n var $this = $(this)\n var href = $this.attr('href')\n var $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\\s]+$)/, ''))) // strip for ie7\n var option = $target.data('bs.modal') ? 'toggle' : $.extend({ remote: !/#/.test(href) && href }, $target.data(), $this.data())\n\n if ($this.is('a')) e.preventDefault()\n\n $target.one('show.bs.modal', function (showEvent) {\n if (showEvent.isDefaultPrevented()) return // only register focus restorer if modal will actually get shown\n $target.one('hidden.bs.modal', function () {\n $this.is(':visible') && $this.trigger('focus')\n })\n })\n Plugin.call($target, option, this)\n })\n\n}(jQuery);\n","/* ========================================================================\n * Bootstrap: tooltip.js v3.3.5\n * http://getbootstrap.com/javascript/#tooltip\n * Inspired by the original jQuery.tipsy by Jason Frame\n * ========================================================================\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // TOOLTIP PUBLIC CLASS DEFINITION\n // ===============================\n\n var Tooltip = function (element, options) {\n this.type = null\n this.options = null\n this.enabled = null\n this.timeout = null\n this.hoverState = null\n this.$element = null\n this.inState = null\n\n this.init('tooltip', element, options)\n }\n\n Tooltip.VERSION = '3.3.5'\n\n Tooltip.TRANSITION_DURATION = 150\n\n Tooltip.DEFAULTS = {\n animation: true,\n placement: 'top',\n selector: false,\n template: '
',\n trigger: 'hover focus',\n title: '',\n delay: 0,\n html: false,\n container: false,\n viewport: {\n selector: 'body',\n padding: 0\n }\n }\n\n Tooltip.prototype.init = function (type, element, options) {\n this.enabled = true\n this.type = type\n this.$element = $(element)\n this.options = this.getOptions(options)\n this.$viewport = this.options.viewport && $($.isFunction(this.options.viewport) ? this.options.viewport.call(this, this.$element) : (this.options.viewport.selector || this.options.viewport))\n this.inState = { click: false, hover: false, focus: false }\n\n if (this.$element[0] instanceof document.constructor && !this.options.selector) {\n throw new Error('`selector` option must be specified when initializing ' + this.type + ' on the window.document object!')\n }\n\n var triggers = this.options.trigger.split(' ')\n\n for (var i = triggers.length; i--;) {\n var trigger = triggers[i]\n\n if (trigger == 'click') {\n this.$element.on('click.' + this.type, this.options.selector, $.proxy(this.toggle, this))\n } else if (trigger != 'manual') {\n var eventIn = trigger == 'hover' ? 'mouseenter' : 'focusin'\n var eventOut = trigger == 'hover' ? 'mouseleave' : 'focusout'\n\n this.$element.on(eventIn + '.' + this.type, this.options.selector, $.proxy(this.enter, this))\n this.$element.on(eventOut + '.' + this.type, this.options.selector, $.proxy(this.leave, this))\n }\n }\n\n this.options.selector ?\n (this._options = $.extend({}, this.options, { trigger: 'manual', selector: '' })) :\n this.fixTitle()\n }\n\n Tooltip.prototype.getDefaults = function () {\n return Tooltip.DEFAULTS\n }\n\n Tooltip.prototype.getOptions = function (options) {\n options = $.extend({}, this.getDefaults(), this.$element.data(), options)\n\n if (options.delay && typeof options.delay == 'number') {\n options.delay = {\n show: options.delay,\n hide: options.delay\n }\n }\n\n return options\n }\n\n Tooltip.prototype.getDelegateOptions = function () {\n var options = {}\n var defaults = this.getDefaults()\n\n this._options && $.each(this._options, function (key, value) {\n if (defaults[key] != value) options[key] = value\n })\n\n return options\n }\n\n Tooltip.prototype.enter = function (obj) {\n var self = obj instanceof this.constructor ?\n obj : $(obj.currentTarget).data('bs.' + this.type)\n\n if (!self) {\n self = new this.constructor(obj.currentTarget, this.getDelegateOptions())\n $(obj.currentTarget).data('bs.' + this.type, self)\n }\n\n if (obj instanceof $.Event) {\n self.inState[obj.type == 'focusin' ? 'focus' : 'hover'] = true\n }\n\n if (self.tip().hasClass('in') || self.hoverState == 'in') {\n self.hoverState = 'in'\n return\n }\n\n clearTimeout(self.timeout)\n\n self.hoverState = 'in'\n\n if (!self.options.delay || !self.options.delay.show) return self.show()\n\n self.timeout = setTimeout(function () {\n if (self.hoverState == 'in') self.show()\n }, self.options.delay.show)\n }\n\n Tooltip.prototype.isInStateTrue = function () {\n for (var key in this.inState) {\n if (this.inState[key]) return true\n }\n\n return false\n }\n\n Tooltip.prototype.leave = function (obj) {\n var self = obj instanceof this.constructor ?\n obj : $(obj.currentTarget).data('bs.' + this.type)\n\n if (!self) {\n self = new this.constructor(obj.currentTarget, this.getDelegateOptions())\n $(obj.currentTarget).data('bs.' + this.type, self)\n }\n\n if (obj instanceof $.Event) {\n self.inState[obj.type == 'focusout' ? 'focus' : 'hover'] = false\n }\n\n if (self.isInStateTrue()) return\n\n clearTimeout(self.timeout)\n\n self.hoverState = 'out'\n\n if (!self.options.delay || !self.options.delay.hide) return self.hide()\n\n self.timeout = setTimeout(function () {\n if (self.hoverState == 'out') self.hide()\n }, self.options.delay.hide)\n }\n\n Tooltip.prototype.show = function () {\n var e = $.Event('show.bs.' + this.type)\n\n if (this.hasContent() && this.enabled) {\n this.$element.trigger(e)\n\n var inDom = $.contains(this.$element[0].ownerDocument.documentElement, this.$element[0])\n if (e.isDefaultPrevented() || !inDom) return\n var that = this\n\n var $tip = this.tip()\n\n var tipId = this.getUID(this.type)\n\n this.setContent()\n $tip.attr('id', tipId)\n this.$element.attr('aria-describedby', tipId)\n\n if (this.options.animation) $tip.addClass('fade')\n\n var placement = typeof this.options.placement == 'function' ?\n this.options.placement.call(this, $tip[0], this.$element[0]) :\n this.options.placement\n\n var autoToken = /\\s?auto?\\s?/i\n var autoPlace = autoToken.test(placement)\n if (autoPlace) placement = placement.replace(autoToken, '') || 'top'\n\n $tip\n .detach()\n .css({ top: 0, left: 0, display: 'block' })\n .addClass(placement)\n .data('bs.' + this.type, this)\n\n this.options.container ? $tip.appendTo(this.options.container) : $tip.insertAfter(this.$element)\n this.$element.trigger('inserted.bs.' + this.type)\n\n var pos = this.getPosition()\n var actualWidth = $tip[0].offsetWidth\n var actualHeight = $tip[0].offsetHeight\n\n if (autoPlace) {\n var orgPlacement = placement\n var viewportDim = this.getPosition(this.$viewport)\n\n placement = placement == 'bottom' && pos.bottom + actualHeight > viewportDim.bottom ? 'top' :\n placement == 'top' && pos.top - actualHeight < viewportDim.top ? 'bottom' :\n placement == 'right' && pos.right + actualWidth > viewportDim.width ? 'left' :\n placement == 'left' && pos.left - actualWidth < viewportDim.left ? 'right' :\n placement\n\n $tip\n .removeClass(orgPlacement)\n .addClass(placement)\n }\n\n var calculatedOffset = this.getCalculatedOffset(placement, pos, actualWidth, actualHeight)\n\n this.applyPlacement(calculatedOffset, placement)\n\n var complete = function () {\n var prevHoverState = that.hoverState\n that.$element.trigger('shown.bs.' + that.type)\n that.hoverState = null\n\n if (prevHoverState == 'out') that.leave(that)\n }\n\n $.support.transition && this.$tip.hasClass('fade') ?\n $tip\n .one('bsTransitionEnd', complete)\n .emulateTransitionEnd(Tooltip.TRANSITION_DURATION) :\n complete()\n }\n }\n\n Tooltip.prototype.applyPlacement = function (offset, placement) {\n var $tip = this.tip()\n var width = $tip[0].offsetWidth\n var height = $tip[0].offsetHeight\n\n // manually read margins because getBoundingClientRect includes difference\n var marginTop = parseInt($tip.css('margin-top'), 10)\n var marginLeft = parseInt($tip.css('margin-left'), 10)\n\n // we must check for NaN for ie 8/9\n if (isNaN(marginTop)) marginTop = 0\n if (isNaN(marginLeft)) marginLeft = 0\n\n offset.top += marginTop\n offset.left += marginLeft\n\n // $.fn.offset doesn't round pixel values\n // so we use setOffset directly with our own function B-0\n $.offset.setOffset($tip[0], $.extend({\n using: function (props) {\n $tip.css({\n top: Math.round(props.top),\n left: Math.round(props.left)\n })\n }\n }, offset), 0)\n\n $tip.addClass('in')\n\n // check to see if placing tip in new offset caused the tip to resize itself\n var actualWidth = $tip[0].offsetWidth\n var actualHeight = $tip[0].offsetHeight\n\n if (placement == 'top' && actualHeight != height) {\n offset.top = offset.top + height - actualHeight\n }\n\n var delta = this.getViewportAdjustedDelta(placement, offset, actualWidth, actualHeight)\n\n if (delta.left) offset.left += delta.left\n else offset.top += delta.top\n\n var isVertical = /top|bottom/.test(placement)\n var arrowDelta = isVertical ? delta.left * 2 - width + actualWidth : delta.top * 2 - height + actualHeight\n var arrowOffsetPosition = isVertical ? 'offsetWidth' : 'offsetHeight'\n\n $tip.offset(offset)\n this.replaceArrow(arrowDelta, $tip[0][arrowOffsetPosition], isVertical)\n }\n\n Tooltip.prototype.replaceArrow = function (delta, dimension, isVertical) {\n this.arrow()\n .css(isVertical ? 'left' : 'top', 50 * (1 - delta / dimension) + '%')\n .css(isVertical ? 'top' : 'left', '')\n }\n\n Tooltip.prototype.setContent = function () {\n var $tip = this.tip()\n var title = this.getTitle()\n\n $tip.find('.tooltip-inner')[this.options.html ? 'html' : 'text'](title)\n $tip.removeClass('fade in top bottom left right')\n }\n\n Tooltip.prototype.hide = function (callback) {\n var that = this\n var $tip = $(this.$tip)\n var e = $.Event('hide.bs.' + this.type)\n\n function complete() {\n if (that.hoverState != 'in') $tip.detach()\n that.$element\n .removeAttr('aria-describedby')\n .trigger('hidden.bs.' + that.type)\n callback && callback()\n }\n\n this.$element.trigger(e)\n\n if (e.isDefaultPrevented()) return\n\n $tip.removeClass('in')\n\n $.support.transition && $tip.hasClass('fade') ?\n $tip\n .one('bsTransitionEnd', complete)\n .emulateTransitionEnd(Tooltip.TRANSITION_DURATION) :\n complete()\n\n this.hoverState = null\n\n return this\n }\n\n Tooltip.prototype.fixTitle = function () {\n var $e = this.$element\n if ($e.attr('title') || typeof $e.attr('data-original-title') != 'string') {\n $e.attr('data-original-title', $e.attr('title') || '').attr('title', '')\n }\n }\n\n Tooltip.prototype.hasContent = function () {\n return this.getTitle()\n }\n\n Tooltip.prototype.getPosition = function ($element) {\n $element = $element || this.$element\n\n var el = $element[0]\n var isBody = el.tagName == 'BODY'\n\n var elRect = el.getBoundingClientRect()\n if (elRect.width == null) {\n // width and height are missing in IE8, so compute them manually; see https://github.com/twbs/bootstrap/issues/14093\n elRect = $.extend({}, elRect, { width: elRect.right - elRect.left, height: elRect.bottom - elRect.top })\n }\n var elOffset = isBody ? { top: 0, left: 0 } : $element.offset()\n var scroll = { scroll: isBody ? document.documentElement.scrollTop || document.body.scrollTop : $element.scrollTop() }\n var outerDims = isBody ? { width: $(window).width(), height: $(window).height() } : null\n\n return $.extend({}, elRect, scroll, outerDims, elOffset)\n }\n\n Tooltip.prototype.getCalculatedOffset = function (placement, pos, actualWidth, actualHeight) {\n return placement == 'bottom' ? { top: pos.top + pos.height, left: pos.left + pos.width / 2 - actualWidth / 2 } :\n placement == 'top' ? { top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2 } :\n placement == 'left' ? { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth } :\n /* placement == 'right' */ { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width }\n\n }\n\n Tooltip.prototype.getViewportAdjustedDelta = function (placement, pos, actualWidth, actualHeight) {\n var delta = { top: 0, left: 0 }\n if (!this.$viewport) return delta\n\n var viewportPadding = this.options.viewport && this.options.viewport.padding || 0\n var viewportDimensions = this.getPosition(this.$viewport)\n\n if (/right|left/.test(placement)) {\n var topEdgeOffset = pos.top - viewportPadding - viewportDimensions.scroll\n var bottomEdgeOffset = pos.top + viewportPadding - viewportDimensions.scroll + actualHeight\n if (topEdgeOffset < viewportDimensions.top) { // top overflow\n delta.top = viewportDimensions.top - topEdgeOffset\n } else if (bottomEdgeOffset > viewportDimensions.top + viewportDimensions.height) { // bottom overflow\n delta.top = viewportDimensions.top + viewportDimensions.height - bottomEdgeOffset\n }\n } else {\n var leftEdgeOffset = pos.left - viewportPadding\n var rightEdgeOffset = pos.left + viewportPadding + actualWidth\n if (leftEdgeOffset < viewportDimensions.left) { // left overflow\n delta.left = viewportDimensions.left - leftEdgeOffset\n } else if (rightEdgeOffset > viewportDimensions.right) { // right overflow\n delta.left = viewportDimensions.left + viewportDimensions.width - rightEdgeOffset\n }\n }\n\n return delta\n }\n\n Tooltip.prototype.getTitle = function () {\n var title\n var $e = this.$element\n var o = this.options\n\n title = $e.attr('data-original-title')\n || (typeof o.title == 'function' ? o.title.call($e[0]) : o.title)\n\n return title\n }\n\n Tooltip.prototype.getUID = function (prefix) {\n do prefix += ~~(Math.random() * 1000000)\n while (document.getElementById(prefix))\n return prefix\n }\n\n Tooltip.prototype.tip = function () {\n if (!this.$tip) {\n this.$tip = $(this.options.template)\n if (this.$tip.length != 1) {\n throw new Error(this.type + ' `template` option must consist of exactly 1 top-level element!')\n }\n }\n return this.$tip\n }\n\n Tooltip.prototype.arrow = function () {\n return (this.$arrow = this.$arrow || this.tip().find('.tooltip-arrow'))\n }\n\n Tooltip.prototype.enable = function () {\n this.enabled = true\n }\n\n Tooltip.prototype.disable = function () {\n this.enabled = false\n }\n\n Tooltip.prototype.toggleEnabled = function () {\n this.enabled = !this.enabled\n }\n\n Tooltip.prototype.toggle = function (e) {\n var self = this\n if (e) {\n self = $(e.currentTarget).data('bs.' + this.type)\n if (!self) {\n self = new this.constructor(e.currentTarget, this.getDelegateOptions())\n $(e.currentTarget).data('bs.' + this.type, self)\n }\n }\n\n if (e) {\n self.inState.click = !self.inState.click\n if (self.isInStateTrue()) self.enter(self)\n else self.leave(self)\n } else {\n self.tip().hasClass('in') ? self.leave(self) : self.enter(self)\n }\n }\n\n Tooltip.prototype.destroy = function () {\n var that = this\n clearTimeout(this.timeout)\n this.hide(function () {\n that.$element.off('.' + that.type).removeData('bs.' + that.type)\n if (that.$tip) {\n that.$tip.detach()\n }\n that.$tip = null\n that.$arrow = null\n that.$viewport = null\n })\n }\n\n\n // TOOLTIP PLUGIN DEFINITION\n // =========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.tooltip')\n var options = typeof option == 'object' && option\n\n if (!data && /destroy|hide/.test(option)) return\n if (!data) $this.data('bs.tooltip', (data = new Tooltip(this, options)))\n if (typeof option == 'string') data[option]()\n })\n }\n\n var old = $.fn.tooltip\n\n $.fn.tooltip = Plugin\n $.fn.tooltip.Constructor = Tooltip\n\n\n // TOOLTIP NO CONFLICT\n // ===================\n\n $.fn.tooltip.noConflict = function () {\n $.fn.tooltip = old\n return this\n }\n\n}(jQuery);\n","/* ========================================================================\n * Bootstrap: popover.js v3.3.5\n * http://getbootstrap.com/javascript/#popovers\n * ========================================================================\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // POPOVER PUBLIC CLASS DEFINITION\n // ===============================\n\n var Popover = function (element, options) {\n this.init('popover', element, options)\n }\n\n if (!$.fn.tooltip) throw new Error('Popover requires tooltip.js')\n\n Popover.VERSION = '3.3.5'\n\n Popover.DEFAULTS = $.extend({}, $.fn.tooltip.Constructor.DEFAULTS, {\n placement: 'right',\n trigger: 'click',\n content: '',\n template: '

'\n })\n\n\n // NOTE: POPOVER EXTENDS tooltip.js\n // ================================\n\n Popover.prototype = $.extend({}, $.fn.tooltip.Constructor.prototype)\n\n Popover.prototype.constructor = Popover\n\n Popover.prototype.getDefaults = function () {\n return Popover.DEFAULTS\n }\n\n Popover.prototype.setContent = function () {\n var $tip = this.tip()\n var title = this.getTitle()\n var content = this.getContent()\n\n $tip.find('.popover-title')[this.options.html ? 'html' : 'text'](title)\n $tip.find('.popover-content').children().detach().end()[ // we use append for html objects to maintain js events\n this.options.html ? (typeof content == 'string' ? 'html' : 'append') : 'text'\n ](content)\n\n $tip.removeClass('fade top bottom left right in')\n\n // IE8 doesn't accept hiding via the `:empty` pseudo selector, we have to do\n // this manually by checking the contents.\n if (!$tip.find('.popover-title').html()) $tip.find('.popover-title').hide()\n }\n\n Popover.prototype.hasContent = function () {\n return this.getTitle() || this.getContent()\n }\n\n Popover.prototype.getContent = function () {\n var $e = this.$element\n var o = this.options\n\n return $e.attr('data-content')\n || (typeof o.content == 'function' ?\n o.content.call($e[0]) :\n o.content)\n }\n\n Popover.prototype.arrow = function () {\n return (this.$arrow = this.$arrow || this.tip().find('.arrow'))\n }\n\n\n // POPOVER PLUGIN DEFINITION\n // =========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.popover')\n var options = typeof option == 'object' && option\n\n if (!data && /destroy|hide/.test(option)) return\n if (!data) $this.data('bs.popover', (data = new Popover(this, options)))\n if (typeof option == 'string') data[option]()\n })\n }\n\n var old = $.fn.popover\n\n $.fn.popover = Plugin\n $.fn.popover.Constructor = Popover\n\n\n // POPOVER NO CONFLICT\n // ===================\n\n $.fn.popover.noConflict = function () {\n $.fn.popover = old\n return this\n }\n\n}(jQuery);\n","/* ========================================================================\n * Bootstrap: scrollspy.js v3.3.5\n * http://getbootstrap.com/javascript/#scrollspy\n * ========================================================================\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // SCROLLSPY CLASS DEFINITION\n // ==========================\n\n function ScrollSpy(element, options) {\n this.$body = $(document.body)\n this.$scrollElement = $(element).is(document.body) ? $(window) : $(element)\n this.options = $.extend({}, ScrollSpy.DEFAULTS, options)\n this.selector = (this.options.target || '') + ' .nav li > a'\n this.offsets = []\n this.targets = []\n this.activeTarget = null\n this.scrollHeight = 0\n\n this.$scrollElement.on('scroll.bs.scrollspy', $.proxy(this.process, this))\n this.refresh()\n this.process()\n }\n\n ScrollSpy.VERSION = '3.3.5'\n\n ScrollSpy.DEFAULTS = {\n offset: 10\n }\n\n ScrollSpy.prototype.getScrollHeight = function () {\n return this.$scrollElement[0].scrollHeight || Math.max(this.$body[0].scrollHeight, document.documentElement.scrollHeight)\n }\n\n ScrollSpy.prototype.refresh = function () {\n var that = this\n var offsetMethod = 'offset'\n var offsetBase = 0\n\n this.offsets = []\n this.targets = []\n this.scrollHeight = this.getScrollHeight()\n\n if (!$.isWindow(this.$scrollElement[0])) {\n offsetMethod = 'position'\n offsetBase = this.$scrollElement.scrollTop()\n }\n\n this.$body\n .find(this.selector)\n .map(function () {\n var $el = $(this)\n var href = $el.data('target') || $el.attr('href')\n var $href = /^#./.test(href) && $(href)\n\n return ($href\n && $href.length\n && $href.is(':visible')\n && [[$href[offsetMethod]().top + offsetBase, href]]) || null\n })\n .sort(function (a, b) { return a[0] - b[0] })\n .each(function () {\n that.offsets.push(this[0])\n that.targets.push(this[1])\n })\n }\n\n ScrollSpy.prototype.process = function () {\n var scrollTop = this.$scrollElement.scrollTop() + this.options.offset\n var scrollHeight = this.getScrollHeight()\n var maxScroll = this.options.offset + scrollHeight - this.$scrollElement.height()\n var offsets = this.offsets\n var targets = this.targets\n var activeTarget = this.activeTarget\n var i\n\n if (this.scrollHeight != scrollHeight) {\n this.refresh()\n }\n\n if (scrollTop >= maxScroll) {\n return activeTarget != (i = targets[targets.length - 1]) && this.activate(i)\n }\n\n if (activeTarget && scrollTop < offsets[0]) {\n this.activeTarget = null\n return this.clear()\n }\n\n for (i = offsets.length; i--;) {\n activeTarget != targets[i]\n && scrollTop >= offsets[i]\n && (offsets[i + 1] === undefined || scrollTop < offsets[i + 1])\n && this.activate(targets[i])\n }\n }\n\n ScrollSpy.prototype.activate = function (target) {\n this.activeTarget = target\n\n this.clear()\n\n var selector = this.selector +\n '[data-target=\"' + target + '\"],' +\n this.selector + '[href=\"' + target + '\"]'\n\n var active = $(selector)\n .parents('li')\n .addClass('active')\n\n if (active.parent('.dropdown-menu').length) {\n active = active\n .closest('li.dropdown')\n .addClass('active')\n }\n\n active.trigger('activate.bs.scrollspy')\n }\n\n ScrollSpy.prototype.clear = function () {\n $(this.selector)\n .parentsUntil(this.options.target, '.active')\n .removeClass('active')\n }\n\n\n // SCROLLSPY PLUGIN DEFINITION\n // ===========================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.scrollspy')\n var options = typeof option == 'object' && option\n\n if (!data) $this.data('bs.scrollspy', (data = new ScrollSpy(this, options)))\n if (typeof option == 'string') data[option]()\n })\n }\n\n var old = $.fn.scrollspy\n\n $.fn.scrollspy = Plugin\n $.fn.scrollspy.Constructor = ScrollSpy\n\n\n // SCROLLSPY NO CONFLICT\n // =====================\n\n $.fn.scrollspy.noConflict = function () {\n $.fn.scrollspy = old\n return this\n }\n\n\n // SCROLLSPY DATA-API\n // ==================\n\n $(window).on('load.bs.scrollspy.data-api', function () {\n $('[data-spy=\"scroll\"]').each(function () {\n var $spy = $(this)\n Plugin.call($spy, $spy.data())\n })\n })\n\n}(jQuery);\n","/* ========================================================================\n * Bootstrap: tab.js v3.3.5\n * http://getbootstrap.com/javascript/#tabs\n * ========================================================================\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // TAB CLASS DEFINITION\n // ====================\n\n var Tab = function (element) {\n // jscs:disable requireDollarBeforejQueryAssignment\n this.element = $(element)\n // jscs:enable requireDollarBeforejQueryAssignment\n }\n\n Tab.VERSION = '3.3.5'\n\n Tab.TRANSITION_DURATION = 150\n\n Tab.prototype.show = function () {\n var $this = this.element\n var $ul = $this.closest('ul:not(.dropdown-menu)')\n var selector = $this.data('target')\n\n if (!selector) {\n selector = $this.attr('href')\n selector = selector && selector.replace(/.*(?=#[^\\s]*$)/, '') // strip for ie7\n }\n\n if ($this.parent('li').hasClass('active')) return\n\n var $previous = $ul.find('.active:last a')\n var hideEvent = $.Event('hide.bs.tab', {\n relatedTarget: $this[0]\n })\n var showEvent = $.Event('show.bs.tab', {\n relatedTarget: $previous[0]\n })\n\n $previous.trigger(hideEvent)\n $this.trigger(showEvent)\n\n if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) return\n\n var $target = $(selector)\n\n this.activate($this.closest('li'), $ul)\n this.activate($target, $target.parent(), function () {\n $previous.trigger({\n type: 'hidden.bs.tab',\n relatedTarget: $this[0]\n })\n $this.trigger({\n type: 'shown.bs.tab',\n relatedTarget: $previous[0]\n })\n })\n }\n\n Tab.prototype.activate = function (element, container, callback) {\n var $active = container.find('> .active')\n var transition = callback\n && $.support.transition\n && ($active.length && $active.hasClass('fade') || !!container.find('> .fade').length)\n\n function next() {\n $active\n .removeClass('active')\n .find('> .dropdown-menu > .active')\n .removeClass('active')\n .end()\n .find('[data-toggle=\"tab\"]')\n .attr('aria-expanded', false)\n\n element\n .addClass('active')\n .find('[data-toggle=\"tab\"]')\n .attr('aria-expanded', true)\n\n if (transition) {\n element[0].offsetWidth // reflow for transition\n element.addClass('in')\n } else {\n element.removeClass('fade')\n }\n\n if (element.parent('.dropdown-menu').length) {\n element\n .closest('li.dropdown')\n .addClass('active')\n .end()\n .find('[data-toggle=\"tab\"]')\n .attr('aria-expanded', true)\n }\n\n callback && callback()\n }\n\n $active.length && transition ?\n $active\n .one('bsTransitionEnd', next)\n .emulateTransitionEnd(Tab.TRANSITION_DURATION) :\n next()\n\n $active.removeClass('in')\n }\n\n\n // TAB PLUGIN DEFINITION\n // =====================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.tab')\n\n if (!data) $this.data('bs.tab', (data = new Tab(this)))\n if (typeof option == 'string') data[option]()\n })\n }\n\n var old = $.fn.tab\n\n $.fn.tab = Plugin\n $.fn.tab.Constructor = Tab\n\n\n // TAB NO CONFLICT\n // ===============\n\n $.fn.tab.noConflict = function () {\n $.fn.tab = old\n return this\n }\n\n\n // TAB DATA-API\n // ============\n\n var clickHandler = function (e) {\n e.preventDefault()\n Plugin.call($(this), 'show')\n }\n\n $(document)\n .on('click.bs.tab.data-api', '[data-toggle=\"tab\"]', clickHandler)\n .on('click.bs.tab.data-api', '[data-toggle=\"pill\"]', clickHandler)\n\n}(jQuery);\n","/* ========================================================================\n * Bootstrap: affix.js v3.3.5\n * http://getbootstrap.com/javascript/#affix\n * ========================================================================\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * ======================================================================== */\n\n\n+function ($) {\n 'use strict';\n\n // AFFIX CLASS DEFINITION\n // ======================\n\n var Affix = function (element, options) {\n this.options = $.extend({}, Affix.DEFAULTS, options)\n\n this.$target = $(this.options.target)\n .on('scroll.bs.affix.data-api', $.proxy(this.checkPosition, this))\n .on('click.bs.affix.data-api', $.proxy(this.checkPositionWithEventLoop, this))\n\n this.$element = $(element)\n this.affixed = null\n this.unpin = null\n this.pinnedOffset = null\n\n this.checkPosition()\n }\n\n Affix.VERSION = '3.3.5'\n\n Affix.RESET = 'affix affix-top affix-bottom'\n\n Affix.DEFAULTS = {\n offset: 0,\n target: window\n }\n\n Affix.prototype.getState = function (scrollHeight, height, offsetTop, offsetBottom) {\n var scrollTop = this.$target.scrollTop()\n var position = this.$element.offset()\n var targetHeight = this.$target.height()\n\n if (offsetTop != null && this.affixed == 'top') return scrollTop < offsetTop ? 'top' : false\n\n if (this.affixed == 'bottom') {\n if (offsetTop != null) return (scrollTop + this.unpin <= position.top) ? false : 'bottom'\n return (scrollTop + targetHeight <= scrollHeight - offsetBottom) ? false : 'bottom'\n }\n\n var initializing = this.affixed == null\n var colliderTop = initializing ? scrollTop : position.top\n var colliderHeight = initializing ? targetHeight : height\n\n if (offsetTop != null && scrollTop <= offsetTop) return 'top'\n if (offsetBottom != null && (colliderTop + colliderHeight >= scrollHeight - offsetBottom)) return 'bottom'\n\n return false\n }\n\n Affix.prototype.getPinnedOffset = function () {\n if (this.pinnedOffset) return this.pinnedOffset\n this.$element.removeClass(Affix.RESET).addClass('affix')\n var scrollTop = this.$target.scrollTop()\n var position = this.$element.offset()\n return (this.pinnedOffset = position.top - scrollTop)\n }\n\n Affix.prototype.checkPositionWithEventLoop = function () {\n setTimeout($.proxy(this.checkPosition, this), 1)\n }\n\n Affix.prototype.checkPosition = function () {\n if (!this.$element.is(':visible')) return\n\n var height = this.$element.height()\n var offset = this.options.offset\n var offsetTop = offset.top\n var offsetBottom = offset.bottom\n var scrollHeight = Math.max($(document).height(), $(document.body).height())\n\n if (typeof offset != 'object') offsetBottom = offsetTop = offset\n if (typeof offsetTop == 'function') offsetTop = offset.top(this.$element)\n if (typeof offsetBottom == 'function') offsetBottom = offset.bottom(this.$element)\n\n var affix = this.getState(scrollHeight, height, offsetTop, offsetBottom)\n\n if (this.affixed != affix) {\n if (this.unpin != null) this.$element.css('top', '')\n\n var affixType = 'affix' + (affix ? '-' + affix : '')\n var e = $.Event(affixType + '.bs.affix')\n\n this.$element.trigger(e)\n\n if (e.isDefaultPrevented()) return\n\n this.affixed = affix\n this.unpin = affix == 'bottom' ? this.getPinnedOffset() : null\n\n this.$element\n .removeClass(Affix.RESET)\n .addClass(affixType)\n .trigger(affixType.replace('affix', 'affixed') + '.bs.affix')\n }\n\n if (affix == 'bottom') {\n this.$element.offset({\n top: scrollHeight - height - offsetBottom\n })\n }\n }\n\n\n // AFFIX PLUGIN DEFINITION\n // =======================\n\n function Plugin(option) {\n return this.each(function () {\n var $this = $(this)\n var data = $this.data('bs.affix')\n var options = typeof option == 'object' && option\n\n if (!data) $this.data('bs.affix', (data = new Affix(this, options)))\n if (typeof option == 'string') data[option]()\n })\n }\n\n var old = $.fn.affix\n\n $.fn.affix = Plugin\n $.fn.affix.Constructor = Affix\n\n\n // AFFIX NO CONFLICT\n // =================\n\n $.fn.affix.noConflict = function () {\n $.fn.affix = old\n return this\n }\n\n\n // AFFIX DATA-API\n // ==============\n\n $(window).on('load', function () {\n $('[data-spy=\"affix\"]').each(function () {\n var $spy = $(this)\n var data = $spy.data()\n\n data.offset = data.offset || {}\n\n if (data.offsetBottom != null) data.offset.bottom = data.offsetBottom\n if (data.offsetTop != null) data.offset.top = data.offsetTop\n\n Plugin.call($spy, data)\n })\n })\n\n}(jQuery);\n","/* ========================================================================\n * DOM-based Routing\n * Based on http://goo.gl/EUTi53 by Paul Irish\n *\n * Only fires on body classes that match. If a body class contains a dash,\n * replace the dash with an underscore when adding it to the object below.\n *\n * .noConflict()\n * The routing is enclosed within an anonymous function so that you can\n * always reference jQuery with $, even when in .noConflict() mode.\n * ======================================================================== */\n\n(function($) {\n\n // Use this variable to set up the common and page specific functions. If you\n // rename this variable, you will also need to rename the namespace below.\n var Sage = {\n // All pages\n 'common': {\n init: function() {\n // JavaScript to be fired on all pages\n\n $(window).load(function() {\n \t $('.bxslider').bxSlider({\n \t mode: 'fade',\n \t captions: false,\n \t pager: true,\n \t pagerType: 'short',\n \t controls: true,\n \t pagerShortSeparator: ' av ',\n \t nextText: '',\n \t prevText: '',\n \t auto: false,\n \t pause: 5000,\n \t adaptiveHeight: true,\n \t speed: 700,\n \t onSliderLoad: function(){\n \t $(\".bxslider\").css(\"visibility\", \"visible\");\n\n \t \n \t },\n\n \t onSlideBefore: function ($slideElement, oldIndex, newIndex) {\n \t \n \t $('.active-slide').removeClass('active-slide');\n \t \n \t },\n\n \t onSlideAfter: function ($slideElement, oldIndex, newIndex) {\n \t $('.bxslider>li').eq(newIndex).addClass('active-slide');\n \t },\n \t \n \t });\n });\n\t\t\n\t\t$(document).ready(function() {\n\n\t\t\t$('.collapse').collapse('hide');\n\n\t\t\t$('.collapse').collapse({\n \t\t\t\ttoggle: false\n\t\t\t})\n\n\t\t\t// $('.collapse').on('show.bs.collapse hide.bs.collapse', function(e) {\n\t\t // e.preventDefault();\n\t\t // });\n\n\t\t // $('[data-toggle=\"collapse\"]').on('click', function(e) {\n\t\t // e.preventDefault();\n\t\t // $($(this).data('target')).toggleClass('in');\n\t\t // });\n\t\t});\n\n\t\t\n // if(!Modernizr.input.placeholder){\n\n // $('[placeholder]').focus(function() {\n // var input = $(this);\n // if (input.val() === input.attr('placeholder')) {\n // input.val('');\n // input.removeClass('placeholder');\n // }\n // }).blur(function() {\n // var input = $(this);\n // if (input.val() === '' || input.val() === input.attr('placeholder')) {\n // input.addClass('placeholder');\n // input.val(input.attr('placeholder'));\n // }\n // }).blur();\n // $('[placeholder]').parents('form').submit(function() {\n // $(this).find('[placeholder]').each(function() {\n // var input = $(this);\n // if (input.val() === input.attr('placeholder')) {\n // //input.val('');\n // }\n // });\n // });\n\n // }\n\n // if (!Modernizr.svg) {\n // var imgs = document.getElementsByTagName('img');\n // for (var i = 0; i < imgs.length; i++) {\n // if (/.*\\.svg$/.test(imgs[i].src)) {\n // imgs[i].src = imgs[i].src.slice(0, -3) + 'png';\n // }\n // }\n // }\n\n // $('input, textarea').placeholder();\n\n $(document).ready(function() {\n\n // $('#kontaktform').bootstrapValidator({\n // //submitButtons: \".nej\",\n // feedbackIcons: {\n // valid: 'glyphicon glyphicon-ok',\n // invalid: 'glyphicon glyphicon-remove',\n // validating: 'glyphicon glyphicon-refresh'\n // },\n // fields: {\n // lastname: {\n // feedbackIcons: true,\n // validators: {\n // notEmpty: {\n // message: 'Skriv in ditt efternamn',\n // },\n // }\n // },\n\n // forename: {\n // feedbackIcons: true,\n // validators: {\n // notEmpty: {\n // message: 'Skriv in ditt förnamn',\n // },\n // }\n // },\n // personnr: {\n // feedbackIcons: true,\n // validators: {\n // notEmpty: {\n // message: 'Skriv in ditt personnummer',\n // },\n // }\n // },\n // email: {\n // feedbackIcons: true,\n // validators: {\n // notEmpty: {\n // message: 'Skriv in din E-post',\n // },\n // emailAddress: {\n // message: 'Fyll i en korrekt E-post adress'\n // }\n // }\n // },\n \n // }\n // });\n\n \n });\n },\n finalize: function() {\n // JavaScript to be fired on all pages, after page specific JS is fired\n }\n },\n // Home page\n 'home': {\n init: function() {\n // JavaScript to be fired on the home page\n \n },\n finalize: function() {\n // JavaScript to be fired on the home page, after the init JS\n }\n },\n\n 'kontakt': {\n \tinit: function() {\n // JavaScript to be fired on the home page\n\n\t function initialize() {\n\n\t \tvar myLatLng = new google.maps.LatLng(57.7207725, 11.9764661);\n\t\t var mapCanvas = document.getElementById('map-canvas');\n\n\t\t var mapOptions = {\n\t\t\t\t\tcenter: myLatLng,\n\t\t\t\t\tzoom: 13,\n\t\t\t\t\tmapTypeId: google.maps.MapTypeId.ROADMAP\n\t\t\t\t};\n\n\t\t \tvar map = new google.maps.Map(mapCanvas, mapOptions);\n\t\t\t\tvar marker = new google.maps.Marker({\n\t\t\t\t\tposition: myLatLng,\n\t\t\t \t\ttitle:\"Båtakuten\", \n\t\t\t \t\turl: 'http://goo.gl/PxFDvH'\n\t\t\t\t});\n\n\t\t\t\t// To add the marker to the map, call setMap();\n\t\t\t\tmarker.setMap(map);\n\t\t\t\tgoogle.maps.event.addListener(marker, 'click', function() {\n\t\t\t\t\twindow.open(\n\t\t\t\t\t this.url,\n\t\t\t\t\t '_blank' // <- This is what makes it open in a new window.\n\t\t\t\t\t);\n\n\t\t\t\t\t\n\n\t\t\t\t});\n\t\t \t\n\t\t \t}\n\t\t \tgoogle.maps.event.addDomListener(window, 'load', initialize);\n \t},\n\n \tfinalize: function() {\n // JavaScript to be fired on the home page, after the init JS\n \t}\n },\n // About us page, note the change from about-us to about_us.\n 'batar_till_salu': {\n init: function() {\n // JavaScript to be fired on the about us page\n /* FILTER BOX */\n var selectedTyp = '';\n var termSlug = '';\n\n\n\n \tfunction filterProducts() {\n\n \t\t//console.log(selectedBadd);\n \t\t//console.log(selectedBrand);\n\n $('.grid').addClass('loading');\n $('.fa-spin').css('opacity', '1');\n \n $.get(ajaxfilter.ajaxurl,{\n\n \taction:'custom_ajax_filter', \n \tselectedtyp: selectedTyp,\n\n \t}, function(data){\n\n $('.grid').empty().append( data );\n $('.fa-spin').css('opacity', '0');\n $('.grid').removeClass('loading');\n \n });\n\n }\n\n function changeFilter(filter){\n\n \t// var check = '';\n\n\t\t\t$('#typ_filter span.active').removeClass('active');\n\t\t\t$('#typ_filter span[data-filter=\"'+filter+'\"]').addClass('active');\n\n\t\t\t$('#typ_filter span.selected').removeClass('selected');\n\t\t\t$('#typ_filter span[data-filter=\"'+filter+'\"]').addClass('selected');\n\n\t\t\t \n\t\t\tselectedCat = '';\n\t\t\tselectedTyp = filter;\n\n\t\t\t \n\t\t\t// console.log(termSlug);\n\n\n\t\t\tfilterProducts();\n\n }\n\n $(\"#typ_filter span\").click(function() {\n\n \tvar thisSlug = $(this).attr('data-filter');\n\n \tconsole.log(thisSlug);\n\n \tchangeFilter(thisSlug);\n\n });\n \n }\n }\n\n };\n\n // The routing fires all common scripts, followed by the page specific scripts.\n // Add additional events for more control over timing e.g. a finalize event\n var UTIL = {\n fire: function(func, funcname, args) {\n var fire;\n var namespace = Sage;\n funcname = (funcname === undefined) ? 'init' : funcname;\n fire = func !== '';\n fire = fire && namespace[func];\n fire = fire && typeof namespace[func][funcname] === 'function';\n\n if (fire) {\n namespace[func][funcname](args);\n }\n },\n loadEvents: function() {\n // Fire common init JS\n UTIL.fire('common');\n\n // Fire page-specific init JS, and then finalize JS\n $.each(document.body.className.replace(/-/g, '_').split(/\\s+/), function(i, classnm) {\n UTIL.fire(classnm);\n UTIL.fire(classnm, 'finalize');\n });\n\n // Fire common finalize JS\n UTIL.fire('common', 'finalize');\n }\n };\n\n // Load Events\n $(document).ready(UTIL.loadEvents);\n\n})(jQuery); // Fully reference jQuery after this point.\n"],"sourceRoot":"assets/scripts/"}