Skip to content
Browse files

Updated JS file from Bootstrap 2.3.2

  • Loading branch information...
1 parent 0d80887 commit c99bd4eb733ac8d9c70a4b3b6db028e56810e20e Rachel Baker committed Jun 2, 2013
Showing with 1,100 additions and 6 deletions.
  1. +1,100 −6 assets/js/bootstrap.min.js
View
1,106 assets/js/bootstrap.min.js
@@ -1,6 +1,1100 @@
-/**
-* Bootstrap.js v2.3.0 by @fat & @mdo
-* Copyright 2012 Twitter, Inc.
-* http://www.apache.org/licenses/LICENSE-2.0.txt
-*/
-!function(e){"use strict";e(function(){e.support.transition=function(){var e=function(){var e=document.createElement("bootstrap"),t={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"},n;for(n in t)if(e.style[n]!==undefined)return t[n]}();return e&&{end:e}}()})}(window.jQuery),!function(e){"use strict";var t='[data-dismiss="alert"]',n=function(n){e(n).on("click",t,this.close)};n.prototype.close=function(t){function s(){i.trigger("closed").remove()}var n=e(this),r=n.attr("data-target"),i;r||(r=n.attr("href"),r=r&&r.replace(/.*(?=#[^\s]*$)/,"")),i=e(r),t&&t.preventDefault(),i.length||(i=n.hasClass("alert")?n:n.parent()),i.trigger(t=e.Event("close"));if(t.isDefaultPrevented())return;i.removeClass("in"),e.support.transition&&i.hasClass("fade")?i.on(e.support.transition.end,s):s()};var r=e.fn.alert;e.fn.alert=function(t){return this.each(function(){var r=e(this),i=r.data("alert");i||r.data("alert",i=new n(this)),typeof t=="string"&&i[t].call(r)})},e.fn.alert.Constructor=n,e.fn.alert.noConflict=function(){return e.fn.alert=r,this},e(document).on("click.alert.data-api",t,n.prototype.close)}(window.jQuery),!function(e){"use strict";var t=function(t,n){this.$element=e(t),this.options=e.extend({},e.fn.button.defaults,n)};t.prototype.setState=function(e){var t="disabled",n=this.$element,r=n.data(),i=n.is("input")?"val":"html";e+="Text",r.resetText||n.data("resetText",n[i]()),n[i](r[e]||this.options[e]),setTimeout(function(){e=="loadingText"?n.addClass(t).attr(t,t):n.removeClass(t).removeAttr(t)},0)},t.prototype.toggle=function(){var e=this.$element.closest('[data-toggle="buttons-radio"]');e&&e.find(".active").removeClass("active"),this.$element.toggleClass("active")};var n=e.fn.button;e.fn.button=function(n){return this.each(function(){var r=e(this),i=r.data("button"),s=typeof n=="object"&&n;i||r.data("button",i=new t(this,s)),n=="toggle"?i.toggle():n&&i.setState(n)})},e.fn.button.defaults={loadingText:"loading..."},e.fn.button.Constructor=t,e.fn.button.noConflict=function(){return e.fn.button=n,this},e(document).on("click.button.data-api","[data-toggle^=button]",function(t){var n=e(t.target);n.hasClass("btn")||(n=n.closest(".btn")),n.button("toggle")})}(window.jQuery),!function(e){"use strict";var t=function(t,n){this.$element=e(t),this.$indicators=this.$element.find(".carousel-indicators"),this.options=n,this.options.pause=="hover"&&this.$element.on("mouseenter",e.proxy(this.pause,this)).on("mouseleave",e.proxy(this.cycle,this))};t.prototype={cycle:function(t){return t||(this.paused=!1),this.options.interval&&!this.paused&&(this.interval=setInterval(e.proxy(this.next,this),this.options.interval)),this},getActiveIndex:function(){return this.$active=this.$element.find(".item.active"),this.$items=this.$active.parent().children(),this.$items.index(this.$active)},to:function(t){var n=this.getActiveIndex(),r=this;if(t>this.$items.length-1||t<0)return;return this.sliding?this.$element.one("slid",function(){r.to(t)}):n==t?this.pause().cycle():this.slide(t>n?"next":"prev",e(this.$items[t]))},pause:function(t){return t||(this.paused=!0),this.$element.find(".next, .prev").length&&e.support.transition.end&&(this.$element.trigger(e.support.transition.end),this.cycle()),clearInterval(this.interval),this.interval=null,this},next:function(){if(this.sliding)return;return this.slide("next")},prev:function(){if(this.sliding)return;return this.slide("prev")},slide:function(t,n){var r=this.$element.find(".item.active"),i=n||r[t](),s=this.interval,o=t=="next"?"left":"right",u=t=="next"?"first":"last",a=this,f;this.sliding=!0,s&&this.pause(),i=i.length?i:this.$element.find(".item")[u](),f=e.Event("slide",{relatedTarget:i[0],direction:o});if(i.hasClass("active"))return;this.$indicators.length&&(this.$indicators.find(".active").removeClass("active"),this.$element.one("slid",function(){var t=e(a.$indicators.children()[a.getActiveIndex()]);t&&t.addClass("active")}));if(e.support.transition&&this.$element.hasClass("slide")){this.$element.trigger(f);if(f.isDefaultPrevented())return;i.addClass(t),i[0].offsetWidth,r.addClass(o),i.addClass(o),this.$element.one(e.support.transition.end,function(){i.removeClass([t,o].join(" ")).addClass("active"),r.removeClass(["active",o].join(" ")),a.sliding=!1,setTimeout(function(){a.$element.trigger("slid")},0)})}else{this.$element.trigger(f);if(f.isDefaultPrevented())return;r.removeClass("active"),i.addClass("active"),this.sliding=!1,this.$element.trigger("slid")}return s&&this.cycle(),this}};var n=e.fn.carousel;e.fn.carousel=function(n){return this.each(function(){var r=e(this),i=r.data("carousel"),s=e.extend({},e.fn.carousel.defaults,typeof n=="object"&&n),o=typeof n=="string"?n:s.slide;i||r.data("carousel",i=new t(this,s)),typeof n=="number"?i.to(n):o?i[o]():s.interval&&i.pause().cycle()})},e.fn.carousel.defaults={interval:5e3,pause:"hover"},e.fn.carousel.Constructor=t,e.fn.carousel.noConflict=function(){return e.fn.carousel=n,this},e(document).on("click.carousel.data-api","[data-slide], [data-slide-to]",function(t){var n=e(this),r,i=e(n.attr("data-target")||(r=n.attr("href"))&&r.replace(/.*(?=#[^\s]+$)/,"")),s=e.extend({},i.data(),n.data()),o;i.carousel(s),(o=n.attr("data-slide-to"))&&i.data("carousel").pause().to(o).cycle(),t.preventDefault()})}(window.jQuery),!function(e){"use strict";var t=function(t,n){this.$element=e(t),this.options=e.extend({},e.fn.collapse.defaults,n),this.options.parent&&(this.$parent=e(this.options.parent)),this.options.toggle&&this.toggle()};t.prototype={constructor:t,dimension:function(){var e=this.$element.hasClass("width");return e?"width":"height"},show:function(){var t,n,r,i;if(this.transitioning||this.$element.hasClass("in"))return;t=this.dimension(),n=e.camelCase(["scroll",t].join("-")),r=this.$parent&&this.$parent.find("> .accordion-group > .in");if(r&&r.length){i=r.data("collapse");if(i&&i.transitioning)return;r.collapse("hide"),i||r.data("collapse",null)}this.$element[t](0),this.transition("addClass",e.Event("show"),"shown"),e.support.transition&&this.$element[t](this.$element[0][n])},hide:function(){var t;if(this.transitioning)return;t=this.dimension(),this.reset(this.$element[t]()),this.transition("removeClass",e.Event("hide"),"hidden"),this.$element[t](0)},reset:function(e){var t=this.dimension();return this.$element.removeClass("collapse")[t](e||"auto")[0].offsetWidth,this.$element[e!==null?"addClass":"removeClass"]("collapse"),this},transition:function(t,n,r){var i=this,s=function(){n.type=="show"&&i.reset(),i.transitioning=0,i.$element.trigger(r)};this.$element.trigger(n);if(n.isDefaultPrevented())return;this.transitioning=1,this.$element[t]("in"),e.support.transition&&this.$element.hasClass("collapse")?this.$element.one(e.support.transition.end,s):s()},toggle:function(){this[this.$element.hasClass("in")?"hide":"show"]()}};var n=e.fn.collapse;e.fn.collapse=function(n){return this.each(function(){var r=e(this),i=r.data("collapse"),s=e.extend({},e.fn.collapse.defaults,r.data(),typeof n=="object"&&n);i||r.data("collapse",i=new t(this,s)),typeof n=="string"&&i[n]()})},e.fn.collapse.defaults={toggle:!0},e.fn.collapse.Constructor=t,e.fn.collapse.noConflict=function(){return e.fn.collapse=n,this},e(document).on("click.collapse.data-api","[data-toggle=collapse]",function(t){var n=e(this),r,i=n.attr("data-target")||t.preventDefault()||(r=n.attr("href"))&&r.replace(/.*(?=#[^\s]+$)/,""),s=e(i).data("collapse")?"toggle":n.data();n[e(i).hasClass("in")?"addClass":"removeClass"]("collapsed"),e(i).collapse(s)})}(window.jQuery),!function(e){"use strict";function r(){e(t).each(function(){i(e(this)).removeClass("open")})}function i(t){var n=t.attr("data-target"),r;n||(n=t.attr("href"),n=n&&/#/.test(n)&&n.replace(/.*(?=#[^\s]*$)/,"")),r=n&&e(n);if(!r||!r.length)r=t.parent();return r}var t="[data-toggle=dropdown]",n=function(t){var n=e(t).on("click.dropdown.data-api",this.toggle);e("html").on("click.dropdown.data-api",function(){n.parent().removeClass("open")})};n.prototype={constructor:n,toggle:function(t){var n=e(this),s,o;if(n.is(".disabled, :disabled"))return;return s=i(n),o=s.hasClass("open"),r(),o||s.toggleClass("open"),n.focus(),!1},keydown:function(n){var r,s,o,u,a,f;if(!/(38|40|27)/.test(n.keyCode))return;r=e(this),n.preventDefault(),n.stopPropagation();if(r.is(".disabled, :disabled"))return;u=i(r),a=u.hasClass("open");if(!a||a&&n.keyCode==27)return n.which==27&&u.find(t).focus(),r.click();s=e("[role=menu] li:not(.divider):visible a",u);if(!s.length)return;f=s.index(s.filter(":focus")),n.keyCode==38&&f>0&&f--,n.keyCode==40&&f<s.length-1&&f++,~f||(f=0),s.eq(f).focus()}};var s=e.fn.dropdown;e.fn.dropdown=function(t){return this.each(function(){var r=e(this),i=r.data("dropdown");i||r.data("dropdown",i=new n(this)),typeof t=="string"&&i[t].call(r)})},e.fn.dropdown.Constructor=n,e.fn.dropdown.noConflict=function(){return e.fn.dropdown=s,this},e(document).on("click.dropdown.data-api touchstart.dropdown.data-api",r).on("click.dropdown.data-api touchstart.dropdown.data-api",".dropdown form",function(e){e.stopPropagation()}).on("touchstart.dropdown.data-api",".dropdown-menu",function(e){e.stopPropagation()}).on("click.dropdown.data-api touchstart.dropdown.data-api",t,n.prototype.toggle).on("keydown.dropdown.data-api touchstart.dropdown.data-api",t+", [role=menu]",n.prototype.keydown)}(window.jQuery),!function(e){"use strict";var t=function(t,n){this.options=n,this.$element=e(t).delegate('[data-dismiss="modal"]',"click.dismiss.modal",e.proxy(this.hide,this)),this.options.remote&&this.$element.find(".modal-body").load(this.options.remote)};t.prototype={constructor:t,toggle:function(){return this[this.isShown?"hide":"show"]()},show:function(){var t=this,n=e.Event("show");this.$element.trigger(n);if(this.isShown||n.isDefaultPrevented())return;this.isShown=!0,this.escape(),this.backdrop(function(){var n=e.support.transition&&t.$element.hasClass("fade");t.$element.parent().length||t.$element.appendTo(document.body),t.$element.show(),n&&t.$element[0].offsetWidth,t.$element.addClass("in").attr("aria-hidden",!1),t.enforceFocus(),n?t.$element.one(e.support.transition.end,function(){t.$element.focus().trigger("shown")}):t.$element.focus().trigger("shown")})},hide:function(t){t&&t.preventDefault();var n=this;t=e.Event("hide"),this.$element.trigger(t);if(!this.isShown||t.isDefaultPrevented())return;this.isShown=!1,this.escape(),e(document).off("focusin.modal"),this.$element.removeClass("in").attr("aria-hidden",!0),e.support.transition&&this.$element.hasClass("fade")?this.hideWithTransition():this.hideModal()},enforceFocus:function(){var t=this;e(document).on("focusin.modal",function(e){t.$element[0]!==e.target&&!t.$element.has(e.target).length&&t.$element.focus()})},escape:function(){var e=this;this.isShown&&this.options.keyboard?this.$element.on("keyup.dismiss.modal",function(t){t.which==27&&e.hide()}):this.isShown||this.$element.off("keyup.dismiss.modal")},hideWithTransition:function(){var t=this,n=setTimeout(function(){t.$element.off(e.support.transition.end),t.hideModal()},500);this.$element.one(e.support.transition.end,function(){clearTimeout(n),t.hideModal()})},hideModal:function(e){this.$element.hide().trigger("hidden"),this.backdrop()},removeBackdrop:function(){this.$backdrop.remove(),this.$backdrop=null},backdrop:function(t){var n=this,r=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var i=e.support.transition&&r;this.$backdrop=e('<div class="modal-backdrop '+r+'" />').appendTo(document.body),this.$backdrop.click(this.options.backdrop=="static"?e.proxy(this.$element[0].focus,this.$element[0]):e.proxy(this.hide,this)),i&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),i?this.$backdrop.one(e.support.transition.end,t):t()}else!this.isShown&&this.$backdrop?(this.$backdrop.removeClass("in"),e.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one(e.support.transition.end,e.proxy(this.removeBackdrop,this)):this.removeBackdrop()):t&&t()}};var n=e.fn.modal;e.fn.modal=function(n){return this.each(function(){var r=e(this),i=r.data("modal"),s=e.extend({},e.fn.modal.defaults,r.data(),typeof n=="object"&&n);i||r.data("modal",i=new t(this,s)),typeof n=="string"?i[n]():s.show&&i.show()})},e.fn.modal.defaults={backdrop:!0,keyboard:!0,show:!0},e.fn.modal.Constructor=t,e.fn.modal.noConflict=function(){return e.fn.modal=n,this},e(document).on("click.modal.data-api",'[data-toggle="modal"]',function(t){var n=e(this),r=n.attr("href"),i=e(n.attr("data-target")||r&&r.replace(/.*(?=#[^\s]+$)/,"")),s=i.data("modal")?"toggle":e.extend({remote:!/#/.test(r)&&r},i.data(),n.data());t.preventDefault(),i.modal(s).one("hide",function(){n.focus()})})}(window.jQuery),!function(e){"use strict";var t=function(e,t){this.init("tooltip",e,t)};t.prototype={constructor:t,init:function(t,n,r){var i,s,o,u,a;this.type=t,this.$element=e(n),this.options=this.getOptions(r),this.enabled=!0,o=this.options.trigger.split(" ");for(a=o.length;a--;)u=o[a],u=="click"?this.$element.on("click."+this.type,this.options.selector,e.proxy(this.toggle,this)):u!="manual"&&(i=u=="hover"?"mouseenter":"focus",s=u=="hover"?"mouseleave":"blur",this.$element.on(i+"."+this.type,this.options.selector,e.proxy(this.enter,this)),this.$element.on(s+"."+this.type,this.options.selector,e.proxy(this.leave,this)));this.options.selector?this._options=e.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},getOptions:function(t){return t=e.extend({},e.fn[this.type].defaults,t,this.$element.data()),t.delay&&typeof t.delay=="number"&&(t.delay={show:t.delay,hide:t.delay}),t},enter:function(t){var n=e(t.currentTarget)[this.type](this._options).data(this.type);if(!n.options.delay||!n.options.delay.show)return n.show();clearTimeout(this.timeout),n.hoverState="in",this.timeout=setTimeout(function(){n.hoverState=="in"&&n.show()},n.options.delay.show)},leave:function(t){var n=e(t.currentTarget)[this.type](this._options).data(this.type);this.timeout&&clearTimeout(this.timeout);if(!n.options.delay||!n.options.delay.hide)return n.hide();n.hoverState="out",this.timeout=setTimeout(function(){n.hoverState=="out"&&n.hide()},n.options.delay.hide)},show:function(){var t,n,r,i,s,o,u=e.Event("show");if(this.hasContent()&&this.enabled){this.$element.trigger(u);if(u.isDefaultPrevented())return;t=this.tip(),this.setContent(),this.options.animation&&t.addClass("fade"),s=typeof this.options.placement=="function"?this.options.placement.call(this,t[0],this.$element[0]):this.options.placement,t.detach().css({top:0,left:0,display:"block"}),this.options.container?t.appendTo(this.options.container):t.insertAfter(this.$element),n=this.getPosition(),r=t[0].offsetWidth,i=t[0].offsetHeight;switch(s){case"bottom":o={top:n.top+n.height,left:n.left+n.width/2-r/2};break;case"top":o={top:n.top-i,left:n.left+n.width/2-r/2};break;case"left":o={top:n.top+n.height/2-i/2,left:n.left-r};break;case"right":o={top:n.top+n.height/2-i/2,left:n.left+n.width}}t.offset(o).addClass(s).addClass("in"),this.$element.trigger("shown")}},setContent:function(){var e=this.tip(),t=this.getTitle();e.find(".tooltip-inner")[this.options.html?"html":"text"](t),e.removeClass("fade in top bottom left right")},hide:function(){function i(){var t=setTimeout(function(){n.off(e.support.transition.end).detach()},500);n.one(e.support.transition.end,function(){clearTimeout(t),n.detach()})}var t=this,n=this.tip(),r=e.Event("hide");this.$element.trigger(r);if(r.isDefaultPrevented())return;return n.removeClass("in"),e.support.transition&&this.$tip.hasClass("fade")?i():n.detach(),this.$element.trigger("hidden"),this},fixTitle:function(){var e=this.$element;(e.attr("title")||typeof e.attr("data-original-title")!="string")&&e.attr("data-original-title",e.attr("title")||"").removeAttr("title")},hasContent:function(){return this.getTitle()},getPosition:function(){var t=this.$element[0];return e.extend({},t.getBoundingClientRect?t.getBoundingClientRect():{width:t.offsetWidth,height:t.offsetHeight},this.$element.offset())},getTitle:function(){var e,t=this.$element,n=this.options;return e=t.attr("data-original-title")||(typeof n.title=="function"?n.title.call(t[0]):n.title),e},tip:function(){return this.$tip=this.$tip||e(this.options.template)},validate:function(){this.$element[0].parentNode||(this.hide(),this.$element=null,this.options=null)},enable:function(){this.enabled=!0},disable:function(){this.enabled=!1},toggleEnabled:function(){this.enabled=!this.enabled},toggle:function(t){var n=t?e(t.currentTarget)[this.type](this._options).data(this.type):this;n.tip().hasClass("in")?n.hide():n.show()},destroy:function(){this.hide().$element.off("."+this.type).removeData(this.type)}};var n=e.fn.tooltip;e.fn.tooltip=function(n){return this.each(function(){var r=e(this),i=r.data("tooltip"),s=typeof n=="object"&&n;i||r.data("tooltip",i=new t(this,s)),typeof n=="string"&&i[n]()})},e.fn.tooltip.Constructor=t,e.fn.tooltip.defaults={animation:!0,placement:"top",selector:!1,template:'<div class="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,container:!1},e.fn.tooltip.noConflict=function(){return e.fn.tooltip=n,this}}(window.jQuery),!function(e){"use strict";var t=function(e,t){this.init("popover",e,t)};t.prototype=e.extend({},e.fn.tooltip.Constructor.prototype,{constructor:t,setContent:function(){var e=this.tip(),t=this.getTitle(),n=this.getContent();e.find(".popover-title")[this.options.html?"html":"text"](t),e.find(".popover-content")[this.options.html?"html":"text"](n),e.removeClass("fade top bottom left right in")},hasContent:function(){return this.getTitle()||this.getContent()},getContent:function(){var e,t=this.$element,n=this.options;return e=t.attr("data-content")||(typeof n.content=="function"?n.content.call(t[0]):n.content),e},tip:function(){return this.$tip||(this.$tip=e(this.options.template)),this.$tip},destroy:function(){this.hide().$element.off("."+this.type).removeData(this.type)}});var n=e.fn.popover;e.fn.popover=function(n){return this.each(function(){var r=e(this),i=r.data("popover"),s=typeof n=="object"&&n;i||r.data("popover",i=new t(this,s)),typeof n=="string"&&i[n]()})},e.fn.popover.Constructor=t,e.fn.popover.defaults=e.extend({},e.fn.tooltip.defaults,{placement:"right",trigger:"click",content:"",template:'<div class="popover"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'}),e.fn.popover.noConflict=function(){return e.fn.popover=n,this}}(window.jQuery),!function(e){"use strict";function t(t,n){var r=e.proxy(this.process,this),i=e(t).is("body")?e(window):e(t),s;this.options=e.extend({},e.fn.scrollspy.defaults,n),this.$scrollElement=i.on("scroll.scroll-spy.data-api",r),this.selector=(this.options.target||(s=e(t).attr("href"))&&s.replace(/.*(?=#[^\s]+$)/,"")||"")+" .nav li > a",this.$body=e("body"),this.refresh(),this.process()}t.prototype={constructor:t,refresh:function(){var t=this,n;this.offsets=e([]),this.targets=e([]),n=this.$body.find(this.selector).map(function(){var n=e(this),r=n.data("target")||n.attr("href"),i=/^#\w/.test(r)&&e(r);return i&&i.length&&[[i.position().top+(!e.isWindow(t.$scrollElement.get(0))&&t.$scrollElement.scrollTop()),r]]||null}).sort(function(e,t){return e[0]-t[0]}).each(function(){t.offsets.push(this[0]),t.targets.push(this[1])})},process:function(){var e=this.$scrollElement.scrollTop()+this.options.offset,t=this.$scrollElement[0].scrollHeight||this.$body[0].scrollHeight,n=t-this.$scrollElement.height(),r=this.offsets,i=this.targets,s=this.activeTarget,o;if(e>=n)return s!=(o=i.last()[0])&&this.activate(o);for(o=r.length;o--;)s!=i[o]&&e>=r[o]&&(!r[o+1]||e<=r[o+1])&&this.activate(i[o])},activate:function(t){var n,r;this.activeTarget=t,e(this.selector).parent(".active").removeClass("active"),r=this.selector+'[data-target="'+t+'"],'+this.selector+'[href="'+t+'"]',n=e(r).parent("li").addClass("active"),n.parent(".dropdown-menu").length&&(n=n.closest("li.dropdown").addClass("active")),n.trigger("activate")}};var n=e.fn.scrollspy;e.fn.scrollspy=function(n){return this.each(function(){var r=e(this),i=r.data("scrollspy"),s=typeof n=="object"&&n;i||r.data("scrollspy",i=new t(this,s)),typeof n=="string"&&i[n]()})},e.fn.scrollspy.Constructor=t,e.fn.scrollspy.defaults={offset:10},e.fn.scrollspy.noConflict=function(){return e.fn.scrollspy=n,this},e(window).on("load",function(){e('[data-spy="scroll"]').each(function(){var t=e(this);t.scrollspy(t.data())})})}(window.jQuery),!function(e){"use strict";var t=function(t){this.element=e(t)};t.prototype={constructor:t,show:function(){var t=this.element,n=t.closest("ul:not(.dropdown-menu)"),r=t.attr("data-target"),i,s,o;r||(r=t.attr("href"),r=r&&r.replace(/.*(?=#[^\s]*$)/,""));if(t.parent("li").hasClass("active"))return;i=n.find(".active:last a")[0],o=e.Event("show",{relatedTarget:i}),t.trigger(o);if(o.isDefaultPrevented())return;s=e(r),this.activate(t.parent("li"),n),this.activate(s,s.parent(),function(){t.trigger({type:"shown",relatedTarget:i})})},activate:function(t,n,r){function o(){i.removeClass("active").find("> .dropdown-menu > .active").removeClass("active"),t.addClass("active"),s?(t[0].offsetWidth,t.addClass("in")):t.removeClass("fade"),t.parent(".dropdown-menu")&&t.closest("li.dropdown").addClass("active"),r&&r()}var i=n.find("> .active"),s=r&&e.support.transition&&i.hasClass("fade");s?i.one(e.support.transition.end,o):o(),i.removeClass("in")}};var n=e.fn.tab;e.fn.tab=function(n){return this.each(function(){var r=e(this),i=r.data("tab");i||r.data("tab",i=new t(this)),typeof n=="string"&&i[n]()})},e.fn.tab.Constructor=t,e.fn.tab.noConflict=function(){return e.fn.tab=n,this},e(document).on("click.tab.data-api",'[data-toggle="tab"], [data-toggle="pill"]',function(t){t.preventDefault(),e(this).tab("show")})}(window.jQuery),!function(e){"use strict";var t=function(t,n){this.$element=e(t),this.options=e.extend({},e.fn.typeahead.defaults,n),this.matcher=this.options.matcher||this.matcher,this.sorter=this.options.sorter||this.sorter,this.highlighter=this.options.highlighter||this.highlighter,this.updater=this.options.updater||this.updater,this.source=this.options.source,this.$menu=e(this.options.menu),this.shown=!1,this.listen()};t.prototype={constructor:t,select:function(){var e=this.$menu.find(".active").attr("data-value");return this.$element.val(this.updater(e)).change(),this.hide()},updater:function(e){return e},show:function(){var t=e.extend({},this.$element.position(),{height:this.$element[0].offsetHeight});return this.$menu.insertAfter(this.$element).css({top:t.top+t.height,left:t.left}).show(),this.shown=!0,this},hide:function(){return this.$menu.hide(),this.shown=!1,this},lookup:function(t){var n;return this.query=this.$element.val(),!this.query||this.query.length<this.options.minLength?this.shown?this.hide():this:(n=e.isFunction(this.source)?this.source(this.query,e.proxy(this.process,this)):this.source,n?this.process(n):this)},process:function(t){var n=this;return t=e.grep(t,function(e){return n.matcher(e)}),t=this.sorter(t),t.length?this.render(t.slice(0,this.options.items)).show():this.shown?this.hide():this},matcher:function(e){return~e.toLowerCase().indexOf(this.query.toLowerCase())},sorter:function(e){var t=[],n=[],r=[],i;while(i=e.shift())i.toLowerCase().indexOf(this.query.toLowerCase())?~i.indexOf(this.query)?n.push(i):r.push(i):t.push(i);return t.concat(n,r)},highlighter:function(e){var t=this.query.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&");return e.replace(new RegExp("("+t+")","ig"),function(e,t){return"<strong>"+t+"</strong>"})},render:function(t){var n=this;return t=e(t).map(function(t,r){return t=e(n.options.item).attr("data-value",r),t.find("a").html(n.highlighter(r)),t[0]}),t.first().addClass("active"),this.$menu.html(t),this},next:function(t){var n=this.$menu.find(".active").removeClass("active"),r=n.next();r.length||(r=e(this.$menu.find("li")[0])),r.addClass("active")},prev:function(e){var t=this.$menu.find(".active").removeClass("active"),n=t.prev();n.length||(n=this.$menu.find("li").last()),n.addClass("active")},listen:function(){this.$element.on("focus",e.proxy(this.focus,this)).on("blur",e.proxy(this.blur,this)).on("keypress",e.proxy(this.keypress,this)).on("keyup",e.proxy(this.keyup,this)),this.eventSupported("keydown")&&this.$element.on("keydown",e.proxy(this.keydown,this)),this.$menu.on("click",e.proxy(this.click,this)).on("mouseenter","li",e.proxy(this.mouseenter,this)).on("mouseleave","li",e.proxy(this.mouseleave,this))},eventSupported:function(e){var t=e in this.$element;return t||(this.$element.setAttribute(e,"return;"),t=typeof this.$element[e]=="function"),t},move:function(e){if(!this.shown)return;switch(e.keyCode){case 9:case 13:case 27:e.preventDefault();break;case 38:e.preventDefault(),this.prev();break;case 40:e.preventDefault(),this.next()}e.stopPropagation()},keydown:function(t){this.suppressKeyPressRepeat=~e.inArray(t.keyCode,[40,38,9,13,27]),this.move(t)},keypress:function(e){if(this.suppressKeyPressRepeat)return;this.move(e)},keyup:function(e){switch(e.keyCode){case 40:case 38:case 16:case 17:case 18:break;case 9:case 13:if(!this.shown)return;this.select();break;case 27:if(!this.shown)return;this.hide();break;default:this.lookup()}e.stopPropagation(),e.preventDefault()},focus:function(e){this.focused=!0},blur:function(e){this.focused=!1,!this.mousedover&&this.shown&&this.hide()},click:function(e){e.stopPropagation(),e.preventDefault(),this.select(),this.$element.focus()},mouseenter:function(t){this.mousedover=!0,this.$menu.find(".active").removeClass("active"),e(t.currentTarget).addClass("active")},mouseleave:function(e){this.mousedover=!1,!this.focused&&this.shown&&this.hide()}};var n=e.fn.typeahead;e.fn.typeahead=function(n){return this.each(function(){var r=e(this),i=r.data("typeahead"),s=typeof n=="object"&&n;i||r.data("typeahead",i=new t(this,s)),typeof n=="string"&&i[n]()})},e.fn.typeahead.defaults={source:[],items:8,menu:'<ul class="typeahead dropdown-menu"></ul>',item:'<li><a href="#"></a></li>',minLength:1},e.fn.typeahead.Constructor=t,e.fn.typeahead.noConflict=function(){return e.fn.typeahead=n,this},e(document).on("focus.typeahead.data-api",'[data-provide="typeahead"]',function(t){var n=e(this);if(n.data("typeahead"))return;t.preventDefault(),n.typeahead(n.data())})}(window.jQuery),!function(e){"use strict";var t=function(t,n){this.options=e.extend({},e.fn.affix.defaults,n),this.$window=e(window).on("scroll.affix.data-api",e.proxy(this.checkPosition,this)).on("click.affix.data-api",e.proxy(function(){setTimeout(e.proxy(this.checkPosition,this),1)},this)),this.$element=e(t),this.checkPosition()};t.prototype.checkPosition=function(){if(!this.$element.is(":visible"))return;var t=e(document).height(),n=this.$window.scrollTop(),r=this.$element.offset(),i=this.options.offset,s=i.bottom,o=i.top,u="affix affix-top affix-bottom",a;typeof i!="object"&&(s=o=i),typeof o=="function"&&(o=i.top()),typeof s=="function"&&(s=i.bottom()),a=this.unpin!=null&&n+this.unpin<=r.top?!1:s!=null&&r.top+this.$element.height()>=t-s?"bottom":o!=null&&n<=o?"top":!1;if(this.affixed===a)return;this.affixed=a,this.unpin=a=="bottom"?r.top-n:null,this.$element.removeClass(u).addClass("affix"+(a?"-"+a:""))};var n=e.fn.affix;e.fn.affix=function(n){return this.each(function(){var r=e(this),i=r.data("affix"),s=typeof n=="object"&&n;i||r.data("affix",i=new t(this,s)),typeof n=="string"&&i[n]()})},e.fn.affix.Constructor=t,e.fn.affix.defaults={offset:0},e.fn.affix.noConflict=function(){return e.fn.affix=n,this},e(window).on("load",function(){e('[data-spy="affix"]').each(function(){var t=e(this),n=t.data();n.offset=n.offset||{},n.offsetBottom&&(n.offset.bottom=n.offsetBottom),n.offsetTop&&(n.offset.top=n.offsetTop),t.affix(n)})})}(window.jQuery);
+/* ===================================================
+ * bootstrap-transition.js v3.0.0
+ * http://twitter.github.com/bootstrap/javascript.html#transitions
+ * ===================================================
+ * Copyright 2012 Twitter, Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ========================================================== */!function($) {
+ "use strict";
+ $(function() {
+ $.support.transition = function() {
+ var transitionEnd = function() {
+ var el = document.createElement("bootstrap"), transEndEventNames = {
+ WebkitTransition: "webkitTransitionEnd",
+ MozTransition: "transitionend",
+ OTransition: "oTransitionEnd otransitionend",
+ transition: "transitionend"
+ }, name;
+ for (name in transEndEventNames) if (el.style[name] !== undefined) return transEndEventNames[name];
+ }();
+ return transitionEnd && {
+ end: transitionEnd
+ };
+ }();
+ });
+}(window.jQuery);
+
+!function($) {
+ "use strict";
+ var dismiss = '[data-dismiss="alert"]', Alert = function(el) {
+ $(el).on("click", dismiss, this.close);
+ };
+ Alert.prototype.close = function(e) {
+ function removeElement() {
+ $parent.trigger("closed").remove();
+ }
+ var $this = $(this), selector = $this.attr("data-target"), $parent;
+ if (!selector) {
+ selector = $this.attr("href");
+ selector = selector && selector.replace(/.*(?=#[^\s]*$)/, "");
+ }
+ $parent = $(selector);
+ e && e.preventDefault();
+ $parent.length || ($parent = $this.hasClass("alert") ? $this : $this.parent());
+ $parent.trigger(e = $.Event("close"));
+ if (e.isDefaultPrevented()) return;
+ $parent.removeClass("in");
+ $.support.transition && $parent.hasClass("fade") ? $parent.on($.support.transition.end, removeElement) : removeElement();
+ };
+ var old = $.fn.alert;
+ $.fn.alert = function(option) {
+ return this.each(function() {
+ var $this = $(this), data = $this.data("alert");
+ data || $this.data("alert", data = new Alert(this));
+ typeof option == "string" && data[option].call($this);
+ });
+ };
+ $.fn.alert.Constructor = Alert;
+ $.fn.alert.noConflict = function() {
+ $.fn.alert = old;
+ return this;
+ };
+ $(document).on("click.alert.data-api", dismiss, Alert.prototype.close);
+}(window.jQuery);
+
+!function($) {
+ "use strict";
+ var Button = function(element, options) {
+ this.$element = $(element);
+ this.options = $.extend({}, $.fn.button.defaults, options);
+ };
+ Button.prototype.setState = function(state) {
+ var d = "disabled", $el = this.$element, data = $el.data(), val = $el.is("input") ? "val" : "html";
+ state += "Text";
+ data.resetText || $el.data("resetText", $el[val]());
+ $el[val](data[state] || this.options[state]);
+ setTimeout(function() {
+ state == "loadingText" ? $el.addClass(d).attr(d, d) : $el.removeClass(d).removeAttr(d);
+ }, 0);
+ };
+ Button.prototype.toggle = function() {
+ var $parent = this.$element.closest('[data-toggle="buttons-radio"]');
+ $parent && $parent.find(".active").removeClass("active");
+ this.$element.toggleClass("active");
+ };
+ var old = $.fn.button;
+ $.fn.button = function(option) {
+ return this.each(function() {
+ var $this = $(this), data = $this.data("button"), options = typeof option == "object" && option;
+ data || $this.data("button", data = new Button(this, options));
+ option == "toggle" ? data.toggle() : option && data.setState(option);
+ });
+ };
+ $.fn.button.defaults = {
+ loadingText: "loading..."
+ };
+ $.fn.button.Constructor = Button;
+ $.fn.button.noConflict = function() {
+ $.fn.button = old;
+ return this;
+ };
+ $(document).on("click.button.data-api", "[data-toggle^=button]", function(e) {
+ var $btn = $(e.target);
+ $btn.hasClass("btn") || ($btn = $btn.closest(".btn"));
+ $btn.button("toggle");
+ });
+}(window.jQuery);
+
+!function($) {
+ "use strict";
+ var Carousel = function(element, options) {
+ this.$element = $(element);
+ this.options = options;
+ this.options.pause == "hover" && this.$element.on("mouseenter", $.proxy(this.pause, this)).on("mouseleave", $.proxy(this.cycle, this));
+ };
+ Carousel.prototype = {
+ cycle: function(e) {
+ e || (this.paused = !1);
+ this.options.interval && !this.paused && (this.interval = setInterval($.proxy(this.next, this), this.options.interval));
+ return this;
+ },
+ to: function(pos) {
+ var $active = this.$element.find(".item.active"), children = $active.parent().children(), activePos = children.index($active), that = this;
+ if (pos > children.length - 1 || pos < 0) return;
+ return this.sliding ? this.$element.one("slid", function() {
+ that.to(pos);
+ }) : activePos == pos ? this.pause().cycle() : this.slide(pos > activePos ? "next" : "prev", $(children[pos]));
+ },
+ pause: function(e) {
+ e || (this.paused = !0);
+ if (this.$element.find(".next, .prev").length && $.support.transition.end) {
+ this.$element.trigger($.support.transition.end);
+ this.cycle();
+ }
+ clearInterval(this.interval);
+ this.interval = null;
+ return this;
+ },
+ next: function() {
+ if (this.sliding) return;
+ return this.slide("next");
+ },
+ prev: function() {
+ if (this.sliding) return;
+ return this.slide("prev");
+ },
+ slide: function(type, next) {
+ var $active = this.$element.find(".item.active"), $next = next || $active[type](), isCycling = this.interval, direction = type == "next" ? "left" : "right", fallback = type == "next" ? "first" : "last", that = this, e;
+ this.sliding = !0;
+ isCycling && this.pause();
+ $next = $next.length ? $next : this.$element.find(".item")[fallback]();
+ e = $.Event("slide", {
+ relatedTarget: $next[0]
+ });
+ if ($next.hasClass("active")) return;
+ if ($.support.transition && this.$element.hasClass("slide")) {
+ this.$element.trigger(e);
+ if (e.isDefaultPrevented()) return;
+ $next.addClass(type);
+ $next[0].offsetWidth;
+ $active.addClass(direction);
+ $next.addClass(direction);
+ this.$element.one($.support.transition.end, function() {
+ $next.removeClass([ type, direction ].join(" ")).addClass("active");
+ $active.removeClass([ "active", direction ].join(" "));
+ that.sliding = !1;
+ setTimeout(function() {
+ that.$element.trigger("slid");
+ }, 0);
+ });
+ } else {
+ this.$element.trigger(e);
+ if (e.isDefaultPrevented()) return;
+ $active.removeClass("active");
+ $next.addClass("active");
+ this.sliding = !1;
+ this.$element.trigger("slid");
+ }
+ isCycling && this.cycle();
+ return this;
+ }
+ };
+ var old = $.fn.carousel;
+ $.fn.carousel = function(option) {
+ return this.each(function() {
+ var $this = $(this), data = $this.data("carousel"), options = $.extend({}, $.fn.carousel.defaults, typeof option == "object" && option), action = typeof option == "string" ? option : options.slide;
+ data || $this.data("carousel", data = new Carousel(this, options));
+ typeof option == "number" ? data.to(option) : action ? data[action]() : options.interval && data.cycle();
+ });
+ };
+ $.fn.carousel.defaults = {
+ interval: 5e3,
+ pause: "hover"
+ };
+ $.fn.carousel.Constructor = Carousel;
+ $.fn.carousel.noConflict = function() {
+ $.fn.carousel = old;
+ return this;
+ };
+ $(document).on("click.carousel.data-api", "[data-slide]", function(e) {
+ var $this = $(this), href, $target = $($this.attr("data-target") || (href = $this.attr("href")) && href.replace(/.*(?=#[^\s]+$)/, "")), options = $.extend({}, $target.data(), $this.data());
+ $target.carousel(options);
+ e.preventDefault();
+ });
+}(window.jQuery);
+
+!function($) {
+ "use strict";
+ var Collapse = function(element, options) {
+ this.$element = $(element);
+ this.options = $.extend({}, $.fn.collapse.defaults, options);
+ this.options.parent && (this.$parent = $(this.options.parent));
+ this.options.toggle && this.toggle();
+ };
+ Collapse.prototype = {
+ constructor: Collapse,
+ dimension: function() {
+ var hasWidth = this.$element.hasClass("width");
+ return hasWidth ? "width" : "height";
+ },
+ show: function() {
+ var dimension, scroll, actives, hasData;
+ if (this.transitioning) return;
+ dimension = this.dimension();
+ scroll = $.camelCase([ "scroll", dimension ].join("-"));
+ actives = this.$parent && this.$parent.find("> .accordion-group > .in");
+ if (actives && actives.length) {
+ hasData = actives.data("collapse");
+ if (hasData && hasData.transitioning) return;
+ actives.collapse("hide");
+ hasData || actives.data("collapse", null);
+ }
+ this.$element[dimension](0);
+ this.transition("addClass", $.Event("show"), "shown");
+ $.support.transition && this.$element[dimension](this.$element[0][scroll]);
+ },
+ hide: function() {
+ var dimension;
+ if (this.transitioning) return;
+ dimension = this.dimension();
+ this.reset(this.$element[dimension]());
+ this.transition("removeClass", $.Event("hide"), "hidden");
+ this.$element[dimension](0);
+ },
+ reset: function(size) {
+ var dimension = this.dimension();
+ this.$element.removeClass("collapse")[dimension](size || "auto")[0].offsetWidth;
+ this.$element[size !== null ? "addClass" : "removeClass"]("collapse");
+ return this;
+ },
+ transition: function(method, startEvent, completeEvent) {
+ var that = this, complete = function() {
+ startEvent.type == "show" && that.reset();
+ that.transitioning = 0;
+ that.$element.trigger(completeEvent);
+ };
+ this.$element.trigger(startEvent);
+ if (startEvent.isDefaultPrevented()) return;
+ this.transitioning = 1;
+ this.$element[method]("in");
+ $.support.transition && this.$element.hasClass("collapse") ? this.$element.one($.support.transition.end, complete) : complete();
+ },
+ toggle: function() {
+ this[this.$element.hasClass("in") ? "hide" : "show"]();
+ }
+ };
+ var old = $.fn.collapse;
+ $.fn.collapse = function(option) {
+ return this.each(function() {
+ var $this = $(this), data = $this.data("collapse"), options = typeof option == "object" && option;
+ data || $this.data("collapse", data = new Collapse(this, options));
+ typeof option == "string" && data[option]();
+ });
+ };
+ $.fn.collapse.defaults = {
+ toggle: !0
+ };
+ $.fn.collapse.Constructor = Collapse;
+ $.fn.collapse.noConflict = function() {
+ $.fn.collapse = old;
+ return this;
+ };
+ $(document).on("click.collapse.data-api", "[data-toggle=collapse]", function(e) {
+ var $this = $(this), href, target = $this.attr("data-target") || e.preventDefault() || (href = $this.attr("href")) && href.replace(/.*(?=#[^\s]+$)/, ""), option = $(target).data("collapse") ? "toggle" : $this.data();
+ $this[$(target).hasClass("in") ? "addClass" : "removeClass"]("collapsed");
+ $(target).collapse(option);
+ });
+}(window.jQuery);
+
+!function($) {
+ "use strict";
+ function clearMenus() {
+ $(toggle).each(function() {
+ getParent($(this)).removeClass("open");
+ });
+ }
+ function getParent($this) {
+ var selector = $this.attr("data-target"), $parent;
+ if (!selector) {
+ selector = $this.attr("href");
+ selector = selector && /#/.test(selector) && selector.replace(/.*(?=#[^\s]*$)/, "");
+ }
+ $parent = $(selector);
+ $parent.length || ($parent = $this.parent());
+ return $parent;
+ }
+ var toggle = "[data-toggle=dropdown]", Dropdown = function(element) {
+ var $el = $(element).on("click.dropdown.data-api", this.toggle);
+ $("html").on("click.dropdown.data-api", function() {
+ $el.parent().removeClass("open");
+ });
+ };
+ Dropdown.prototype = {
+ constructor: Dropdown,
+ toggle: function(e) {
+ var $this = $(this), $parent, isActive;
+ if ($this.is(".disabled, :disabled")) return;
+ $parent = getParent($this);
+ isActive = $parent.hasClass("open");
+ clearMenus();
+ isActive || $parent.toggleClass("open");
+ $this.focus();
+ return !1;
+ },
+ keydown: function(e) {
+ var $this, $items, $active, $parent, isActive, index;
+ if (!/(38|40|27)/.test(e.keyCode)) return;
+ $this = $(this);
+ e.preventDefault();
+ e.stopPropagation();
+ if ($this.is(".disabled, :disabled")) return;
+ $parent = getParent($this);
+ isActive = $parent.hasClass("open");
+ if (!isActive || isActive && e.keyCode == 27) return $this.click();
+ $items = $("[role=menu] li:not(.divider):visible a", $parent);
+ if (!$items.length) return;
+ index = $items.index($items.filter(":focus"));
+ e.keyCode == 38 && index > 0 && index--;
+ e.keyCode == 40 && index < $items.length - 1 && index++;
+ ~index || (index = 0);
+ $items.eq(index).focus();
+ }
+ };
+ var old = $.fn.dropdown;
+ $.fn.dropdown = function(option) {
+ return this.each(function() {
+ var $this = $(this), data = $this.data("dropdown");
+ data || $this.data("dropdown", data = new Dropdown(this));
+ typeof option == "string" && data[option].call($this);
+ });
+ };
+ $.fn.dropdown.Constructor = Dropdown;
+ $.fn.dropdown.noConflict = function() {
+ $.fn.dropdown = old;
+ return this;
+ };
+ $(document).on("click.dropdown.data-api touchstart.dropdown.data-api", clearMenus).on("click.dropdown touchstart.dropdown.data-api", ".dropdown form", function(e) {
+ e.stopPropagation();
+ }).on("touchstart.dropdown.data-api", ".dropdown-menu", function(e) {
+ e.stopPropagation();
+ }).on("click.dropdown.data-api touchstart.dropdown.data-api", toggle, Dropdown.prototype.toggle).on("keydown.dropdown.data-api touchstart.dropdown.data-api", toggle + ", [role=menu]", Dropdown.prototype.keydown);
+}(window.jQuery);
+
+!function($) {
+ "use strict";
+ var Modal = function(element, options) {
+ this.options = options;
+ this.$element = $(element).delegate('[data-dismiss="modal"]', "click.dismiss.modal", $.proxy(this.hide, this));
+ this.options.remote && this.$element.find(".modal-body").load(this.options.remote);
+ };
+ Modal.prototype = {
+ constructor: Modal,
+ toggle: function() {
+ return this[this.isShown ? "hide" : "show"]();
+ },
+ show: function() {
+ var that = this, e = $.Event("show");
+ this.$element.trigger(e);
+ if (this.isShown || e.isDefaultPrevented()) return;
+ this.isShown = !0;
+ this.escape();
+ this.backdrop(function() {
+ var transition = $.support.transition && that.$element.hasClass("fade");
+ that.$element.parent().length || that.$element.appendTo(document.body);
+ that.$element.show();
+ transition && that.$element[0].offsetWidth;
+ that.$element.addClass("in").attr("aria-hidden", !1);
+ that.enforceFocus();
+ transition ? that.$element.one($.support.transition.end, function() {
+ that.$element.focus().trigger("shown");
+ }) : that.$element.focus().trigger("shown");
+ });
+ },
+ hide: function(e) {
+ e && e.preventDefault();
+ var that = this;
+ e = $.Event("hide");
+ this.$element.trigger(e);
+ if (!this.isShown || e.isDefaultPrevented()) return;
+ this.isShown = !1;
+ this.escape();
+ $(document).off("focusin.modal");
+ this.$element.removeClass("in").attr("aria-hidden", !0);
+ $.support.transition && this.$element.hasClass("fade") ? this.hideWithTransition() : this.hideModal();
+ },
+ enforceFocus: function() {
+ var that = this;
+ $(document).on("focusin.modal", function(e) {
+ that.$element[0] !== e.target && !that.$element.has(e.target).length && that.$element.focus();
+ });
+ },
+ escape: function() {
+ var that = this;
+ this.isShown && this.options.keyboard ? this.$element.on("keyup.dismiss.modal", function(e) {
+ e.which == 27 && that.hide();
+ }) : this.isShown || this.$element.off("keyup.dismiss.modal");
+ },
+ hideWithTransition: function() {
+ var that = this, timeout = setTimeout(function() {
+ that.$element.off($.support.transition.end);
+ that.hideModal();
+ }, 500);
+ this.$element.one($.support.transition.end, function() {
+ clearTimeout(timeout);
+ that.hideModal();
+ });
+ },
+ hideModal: function(that) {
+ this.$element.hide().trigger("hidden");
+ this.backdrop();
+ },
+ removeBackdrop: function() {
+ this.$backdrop.remove();
+ this.$backdrop = null;
+ },
+ backdrop: function(callback) {
+ var that = this, animate = this.$element.hasClass("fade") ? "fade" : "";
+ if (this.isShown && this.options.backdrop) {
+ var doAnimate = $.support.transition && animate;
+ this.$backdrop = $('<div class="modal-backdrop ' + animate + '" />').appendTo(document.body);
+ this.$backdrop.click(this.options.backdrop == "static" ? $.proxy(this.$element[0].focus, this.$element[0]) : $.proxy(this.hide, this));
+ doAnimate && this.$backdrop[0].offsetWidth;
+ this.$backdrop.addClass("in");
+ doAnimate ? this.$backdrop.one($.support.transition.end, callback) : callback();
+ } else if (!this.isShown && this.$backdrop) {
+ this.$backdrop.removeClass("in");
+ $.support.transition && this.$element.hasClass("fade") ? this.$backdrop.one($.support.transition.end, $.proxy(this.removeBackdrop, this)) : this.removeBackdrop();
+ } else callback && callback();
+ }
+ };
+ var old = $.fn.modal;
+ $.fn.modal = function(option) {
+ return this.each(function() {
+ var $this = $(this), data = $this.data("modal"), options = $.extend({}, $.fn.modal.defaults, $this.data(), typeof option == "object" && option);
+ data || $this.data("modal", data = new Modal(this, options));
+ typeof option == "string" ? data[option]() : options.show && data.show();
+ });
+ };
+ $.fn.modal.defaults = {
+ backdrop: !0,
+ keyboard: !0,
+ show: !0
+ };
+ $.fn.modal.Constructor = Modal;
+ $.fn.modal.noConflict = function() {
+ $.fn.modal = old;
+ return this;
+ };
+ $(document).on("click.modal.data-api", '[data-toggle="modal"]', function(e) {
+ var $this = $(this), href = $this.attr("href"), $target = $($this.attr("data-target") || href && href.replace(/.*(?=#[^\s]+$)/, "")), option = $target.data("modal") ? "toggle" : $.extend({
+ remote: !/#/.test(href) && href
+ }, $target.data(), $this.data());
+ e.preventDefault();
+ $target.modal(option).one("hide", function() {
+ $this.focus();
+ });
+ });
+}(window.jQuery);
+
+!function($) {
+ "use strict";
+ var Tooltip = function(element, options) {
+ this.init("tooltip", element, options);
+ };
+ Tooltip.prototype = {
+ constructor: Tooltip,
+ init: function(type, element, options) {
+ var eventIn, eventOut;
+ this.type = type;
+ this.$element = $(element);
+ this.options = this.getOptions(options);
+ this.enabled = !0;
+ if (this.options.trigger == "click") this.$element.on("click." + this.type, this.options.selector, $.proxy(this.toggle, this)); else if (this.options.trigger != "manual") {
+ eventIn = this.options.trigger == "hover" ? "mouseenter" : "focus";
+ eventOut = this.options.trigger == "hover" ? "mouseleave" : "blur";
+ this.$element.on(eventIn + "." + this.type, this.options.selector, $.proxy(this.enter, this));
+ this.$element.on(eventOut + "." + this.type, this.options.selector, $.proxy(this.leave, this));
+ }
+ this.options.selector ? this._options = $.extend({}, this.options, {
+ trigger: "manual",
+ selector: ""
+ }) : this.fixTitle();
+ },
+ getOptions: function(options) {
+ options = $.extend({}, $.fn[this.type].defaults, options, this.$element.data());
+ options.delay && typeof options.delay == "number" && (options.delay = {
+ show: options.delay,
+ hide: options.delay
+ });
+ return options;
+ },
+ enter: function(e) {
+ var self = $(e.currentTarget)[this.type](this._options).data(this.type);
+ if (!self.options.delay || !self.options.delay.show) return self.show();
+ clearTimeout(this.timeout);
+ self.hoverState = "in";
+ this.timeout = setTimeout(function() {
+ self.hoverState == "in" && self.show();
+ }, self.options.delay.show);
+ },
+ leave: function(e) {
+ var self = $(e.currentTarget)[this.type](this._options).data(this.type);
+ this.timeout && clearTimeout(this.timeout);
+ if (!self.options.delay || !self.options.delay.hide) return self.hide();
+ self.hoverState = "out";
+ this.timeout = setTimeout(function() {
+ self.hoverState == "out" && self.hide();
+ }, self.options.delay.hide);
+ },
+ show: function() {
+ var $tip, inside, pos, actualWidth, actualHeight, placement, tp;
+ if (this.hasContent() && this.enabled) {
+ $tip = this.tip();
+ this.setContent();
+ this.options.animation && $tip.addClass("fade");
+ placement = typeof this.options.placement == "function" ? this.options.placement.call(this, $tip[0], this.$element[0]) : this.options.placement;
+ inside = /in/.test(placement);
+ $tip.detach().css({
+ top: 0,
+ left: 0,
+ display: "block"
+ }).insertAfter(this.$element);
+ pos = this.getPosition(inside);
+ actualWidth = $tip[0].offsetWidth;
+ actualHeight = $tip[0].offsetHeight;
+ switch (inside ? placement.split(" ")[1] : placement) {
+ case "bottom":
+ tp = {
+ top: pos.top + pos.height,
+ left: pos.left + pos.width / 2 - actualWidth / 2
+ };
+ break;
+ case "top":
+ tp = {
+ top: pos.top - actualHeight,
+ left: pos.left + pos.width / 2 - actualWidth / 2
+ };
+ break;
+ case "left":
+ tp = {
+ top: pos.top + pos.height / 2 - actualHeight / 2,
+ left: pos.left - actualWidth
+ };
+ break;
+ case "right":
+ tp = {
+ top: pos.top + pos.height / 2 - actualHeight / 2,
+ left: pos.left + pos.width
+ };
+ }
+ $tip.offset(tp).addClass(placement).addClass("in");
+ }
+ },
+ setContent: function() {
+ var $tip = this.tip(), title = this.getTitle();
+ $tip.find(".tooltip-inner")[this.options.html ? "html" : "text"](title);
+ $tip.removeClass("fade in top bottom left right");
+ },
+ hide: function() {
+ function removeWithAnimation() {
+ var timeout = setTimeout(function() {
+ $tip.off($.support.transition.end).detach();
+ }, 500);
+ $tip.one($.support.transition.end, function() {
+ clearTimeout(timeout);
+ $tip.detach();
+ });
+ }
+ var that = this, $tip = this.tip();
+ $tip.removeClass("in");
+ $.support.transition && this.$tip.hasClass("fade") ? removeWithAnimation() : $tip.detach();
+ return this;
+ },
+ fixTitle: function() {
+ var $e = this.$element;
+ ($e.attr("title") || typeof $e.attr("data-original-title") != "string") && $e.attr("data-original-title", $e.attr("title") || "").removeAttr("title");
+ },
+ hasContent: function() {
+ return this.getTitle();
+ },
+ getPosition: function(inside) {
+ return $.extend({}, inside ? {
+ top: 0,
+ left: 0
+ } : this.$element.offset(), {
+ width: this.$element[0].offsetWidth,
+ height: this.$element[0].offsetHeight
+ });
+ },
+ getTitle: function() {
+ var title, $e = this.$element, o = this.options;
+ title = $e.attr("data-original-title") || (typeof o.title == "function" ? o.title.call($e[0]) : o.title);
+ return title;
+ },
+ tip: function() {
+ return this.$tip = this.$tip || $(this.options.template);
+ },
+ validate: function() {
+ if (!this.$element[0].parentNode) {
+ this.hide();
+ this.$element = null;
+ this.options = null;
+ }
+ },
+ enable: function() {
+ this.enabled = !0;
+ },
+ disable: function() {
+ this.enabled = !1;
+ },
+ toggleEnabled: function() {
+ this.enabled = !this.enabled;
+ },
+ toggle: function(e) {
+ var self = $(e.currentTarget)[this.type](this._options).data(this.type);
+ self[self.tip().hasClass("in") ? "hide" : "show"]();
+ },
+ destroy: function() {
+ this.hide().$element.off("." + this.type).removeData(this.type);
+ }
+ };
+ var old = $.fn.tooltip;
+ $.fn.tooltip = function(option) {
+ return this.each(function() {
+ var $this = $(this), data = $this.data("tooltip"), options = typeof option == "object" && option;
+ data || $this.data("tooltip", data = new Tooltip(this, options));
+ typeof option == "string" && data[option]();
+ });
+ };
+ $.fn.tooltip.Constructor = Tooltip;
+ $.fn.tooltip.defaults = {
+ animation: !0,
+ placement: "top",
+ selector: !1,
+ template: '<div class="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',
+ trigger: "hover",
+ title: "",
+ delay: 0,
+ html: !1
+ };
+ $.fn.tooltip.noConflict = function() {
+ $.fn.tooltip = old;
+ return this;
+ };
+}(window.jQuery);
+
+!function($) {
+ "use strict";
+ var Popover = function(element, options) {
+ this.init("popover", element, options);
+ };
+ Popover.prototype = $.extend({}, $.fn.tooltip.Constructor.prototype, {
+ constructor: Popover,
+ setContent: function() {
+ var $tip = this.tip(), title = this.getTitle(), content = this.getContent();
+ $tip.find(".popover-title")[this.options.html ? "html" : "text"](title);
+ $tip.find(".popover-content")[this.options.html ? "html" : "text"](content);
+ $tip.removeClass("fade top bottom left right in");
+ },
+ hasContent: function() {
+ return this.getTitle() || this.getContent();
+ },
+ getContent: function() {
+ var content, $e = this.$element, o = this.options;
+ content = $e.attr("data-content") || (typeof o.content == "function" ? o.content.call($e[0]) : o.content);
+ return content;
+ },
+ tip: function() {
+ this.$tip || (this.$tip = $(this.options.template));
+ return this.$tip;
+ },
+ destroy: function() {
+ this.hide().$element.off("." + this.type).removeData(this.type);
+ }
+ });
+ var old = $.fn.popover;
+ $.fn.popover = function(option) {
+ return this.each(function() {
+ var $this = $(this), data = $this.data("popover"), options = typeof option == "object" && option;
+ data || $this.data("popover", data = new Popover(this, options));
+ typeof option == "string" && data[option]();
+ });
+ };
+ $.fn.popover.Constructor = Popover;
+ $.fn.popover.defaults = $.extend({}, $.fn.tooltip.defaults, {
+ placement: "right",
+ trigger: "click",
+ content: "",
+ template: '<div class="popover"><div class="arrow"></div><div class="popover-inner"><h3 class="popover-title"></h3><div class="popover-content"></div></div></div>'
+ });
+ $.fn.popover.noConflict = function() {
+ $.fn.popover = old;
+ return this;
+ };
+}(window.jQuery);
+
+!function($) {
+ "use strict";
+ function ScrollSpy(element, options) {
+ var process = $.proxy(this.process, this), $element = $(element).is("body") ? $(window) : $(element), href;
+ this.options = $.extend({}, $.fn.scrollspy.defaults, options);
+ this.$scrollElement = $element.on("scroll.scroll-spy.data-api", process);
+ this.selector = (this.options.target || (href = $(element).attr("href")) && href.replace(/.*(?=#[^\s]+$)/, "") || "") + " .nav li > a";
+ this.$body = $("body");
+ this.refresh();
+ this.process();
+ }
+ ScrollSpy.prototype = {
+ constructor: ScrollSpy,
+ refresh: function() {
+ var self = this, $targets;
+ this.offsets = $([]);
+ this.targets = $([]);
+ $targets = this.$body.find(this.selector).map(function() {
+ var $el = $(this), href = $el.data("target") || $el.attr("href"), $href = /^#\w/.test(href) && $(href);
+ return $href && $href.length && [ [ $href.position().top + self.$scrollElement.scrollTop(), href ] ] || null;
+ }).sort(function(a, b) {
+ return a[0] - b[0];
+ }).each(function() {
+ self.offsets.push(this[0]);
+ self.targets.push(this[1]);
+ });
+ },
+ process: function() {
+ var scrollTop = this.$scrollElement.scrollTop() + this.options.offset, scrollHeight = this.$scrollElement[0].scrollHeight || this.$body[0].scrollHeight, maxScroll = scrollHeight - this.$scrollElement.height(), offsets = this.offsets, targets = this.targets, activeTarget = this.activeTarget, i;
+ if (scrollTop >= maxScroll) return activeTarget != (i = targets.last()[0]) && this.activate(i);
+ for (i = offsets.length; i--; ) activeTarget != targets[i] && scrollTop >= offsets[i] && (!offsets[i + 1] || scrollTop <= offsets[i + 1]) && this.activate(targets[i]);
+ },
+ activate: function(target) {
+ var active, selector;
+ this.activeTarget = target;
+ $(this.selector).parent(".active").removeClass("active");
+ selector = this.selector + '[data-target="' + target + '"],' + this.selector + '[href="' + target + '"]';
+ active = $(selector).parent("li").addClass("active");
+ active.parent(".dropdown-menu").length && (active = active.closest("li.dropdown").addClass("active"));
+ active.trigger("activate");
+ }
+ };
+ var old = $.fn.scrollspy;
+ $.fn.scrollspy = function(option) {
+ return this.each(function() {
+ var $this = $(this), data = $this.data("scrollspy"), options = typeof option == "object" && option;
+ data || $this.data("scrollspy", data = new ScrollSpy(this, options));
+ typeof option == "string" && data[option]();
+ });
+ };
+ $.fn.scrollspy.Constructor = ScrollSpy;
+ $.fn.scrollspy.defaults = {
+ offset: 10
+ };
+ $.fn.scrollspy.noConflict = function() {
+ $.fn.scrollspy = old;
+ return this;
+ };
+ $(window).on("load", function() {
+ $('[data-spy="scroll"]').each(function() {
+ var $spy = $(this);
+ $spy.scrollspy($spy.data());
+ });
+ });
+}(window.jQuery);
+
+!function($) {
+ "use strict";
+ var Tab = function(element) {
+ this.element = $(element);
+ };
+ Tab.prototype = {
+ constructor: Tab,
+ show: function() {
+ var $this = this.element, $ul = $this.closest("ul:not(.dropdown-menu)"), selector = $this.attr("data-target"), previous, $target, e;
+ if (!selector) {
+ selector = $this.attr("href");
+ selector = selector && selector.replace(/.*(?=#[^\s]*$)/, "");
+ }
+ if ($this.parent("li").hasClass("active")) return;
+ previous = $ul.find(".active:last a")[0];
+ e = $.Event("show", {
+ relatedTarget: previous
+ });
+ $this.trigger(e);
+ if (e.isDefaultPrevented()) return;
+ $target = $(selector);
+ this.activate($this.parent("li"), $ul);
+ this.activate($target, $target.parent(), function() {
+ $this.trigger({
+ type: "shown",
+ relatedTarget: previous
+ });
+ });
+ },
+ activate: function(element, container, callback) {
+ function next() {
+ $active.removeClass("active").find("> .dropdown-menu > .active").removeClass("active");
+ element.addClass("active");
+ if (transition) {
+ element[0].offsetWidth;
+ element.addClass("in");
+ } else element.removeClass("fade");
+ element.parent(".dropdown-menu") && element.closest("li.dropdown").addClass("active");
+ callback && callback();
+ }
+ var $active = container.find("> .active"), transition = callback && $.support.transition && $active.hasClass("fade");
+ transition ? $active.one($.support.transition.end, next) : next();
+ $active.removeClass("in");
+ }
+ };
+ var old = $.fn.tab;
+ $.fn.tab = function(option) {
+ return this.each(function() {
+ var $this = $(this), data = $this.data("tab");
+ data || $this.data("tab", data = new Tab(this));
+ typeof option == "string" && data[option]();
+ });
+ };
+ $.fn.tab.Constructor = Tab;
+ $.fn.tab.noConflict = function() {
+ $.fn.tab = old;
+ return this;
+ };
+ $(document).on("click.tab.data-api", '[data-toggle="tab"], [data-toggle="pill"]', function(e) {
+ e.preventDefault();
+ $(this).tab("show");
+ });
+}(window.jQuery);
+
+!function($) {
+ "use strict";
+ var Typeahead = function(element, options) {
+ this.$element = $(element);
+ this.options = $.extend({}, $.fn.typeahead.defaults, options);
+ this.matcher = this.options.matcher || this.matcher;
+ this.sorter = this.options.sorter || this.sorter;
+ this.highlighter = this.options.highlighter || this.highlighter;
+ this.updater = this.options.updater || this.updater;
+ this.source = this.options.source;
+ this.$menu = $(this.options.menu);
+ this.shown = !1;
+ this.listen();
+ };
+ Typeahead.prototype = {
+ constructor: Typeahead,
+ select: function() {
+ var val = this.$menu.find(".active").attr("data-value");
+ this.$element.val(this.updater(val)).change();
+ return this.hide();
+ },
+ updater: function(item) {
+ return item;
+ },
+ show: function() {
+ var pos = $.extend({}, this.$element.position(), {
+ height: this.$element[0].offsetHeight
+ });
+ this.$menu.insertAfter(this.$element).css({
+ top: pos.top + pos.height,
+ left: pos.left
+ }).show();
+ this.shown = !0;
+ return this;
+ },
+ hide: function() {
+ this.$menu.hide();
+ this.shown = !1;
+ return this;
+ },
+ lookup: function(event) {
+ var items;
+ this.query = this.$element.val();
+ if (!this.query || this.query.length < this.options.minLength) return this.shown ? this.hide() : this;
+ items = $.isFunction(this.source) ? this.source(this.query, $.proxy(this.process, this)) : this.source;
+ return items ? this.process(items) : this;
+ },
+ process: function(items) {
+ var that = this;
+ items = $.grep(items, function(item) {
+ return that.matcher(item);
+ });
+ items = this.sorter(items);
+ return items.length ? this.render(items.slice(0, this.options.items)).show() : this.shown ? this.hide() : this;
+ },
+ matcher: function(item) {
+ return ~item.toLowerCase().indexOf(this.query.toLowerCase());
+ },
+ sorter: function(items) {
+ var beginswith = [], caseSensitive = [], caseInsensitive = [], item;
+ while (item = items.shift()) item.toLowerCase().indexOf(this.query.toLowerCase()) ? ~item.indexOf(this.query) ? caseSensitive.push(item) : caseInsensitive.push(item) : beginswith.push(item);
+ return beginswith.concat(caseSensitive, caseInsensitive);
+ },
+ highlighter: function(item) {
+ var query = this.query.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&");
+ return item.replace(new RegExp("(" + query + ")", "ig"), function($1, match) {
+ return "<strong>" + match + "</strong>";
+ });
+ },
+ render: function(items) {
+ var that = this;
+ items = $(items).map(function(i, item) {
+ i = $(that.options.item).attr("data-value", item);
+ i.find("a").html(that.highlighter(item));
+ return i[0];
+ });
+ items.first().addClass("active");
+ this.$menu.html(items);
+ return this;
+ },
+ next: function(event) {
+ var active = this.$menu.find(".active").removeClass("active"), next = active.next();
+ next.length || (next = $(this.$menu.find("li")[0]));
+ next.addClass("active");
+ },
+ prev: function(event) {
+ var active = this.$menu.find(".active").removeClass("active"), prev = active.prev();
+ prev.length || (prev = this.$menu.find("li").last());
+ prev.addClass("active");
+ },
+ listen: function() {
+ this.$element.on("blur", $.proxy(this.blur, this)).on("keypress", $.proxy(this.keypress, this)).on("keyup", $.proxy(this.keyup, this));
+ this.eventSupported("keydown") && this.$element.on("keydown", $.proxy(this.keydown, this));
+ this.$menu.on("click", $.proxy(this.click, this)).on("mouseenter", "li", $.proxy(this.mouseenter, this));
+ },
+ eventSupported: function(eventName) {
+ var isSupported = eventName in this.$element;
+ if (!isSupported) {
+ this.$element.setAttribute(eventName, "return;");
+ isSupported = typeof this.$element[eventName] == "function";
+ }
+ return isSupported;
+ },
+ move: function(e) {
+ if (!this.shown) return;
+ switch (e.keyCode) {
+ case 9:
+ case 13:
+ case 27:
+ e.preventDefault();
+ break;
+ case 38:
+ e.preventDefault();
+ this.prev();
+ break;
+ case 40:
+ e.preventDefault();
+ this.next();
+ }
+ e.stopPropagation();
+ },
+ keydown: function(e) {
+ this.suppressKeyPressRepeat = ~$.inArray(e.keyCode, [ 40, 38, 9, 13, 27 ]);
+ this.move(e);
+ },
+ keypress: function(e) {
+ if (this.suppressKeyPressRepeat) return;
+ this.move(e);
+ },
+ keyup: function(e) {
+ switch (e.keyCode) {
+ case 40:
+ case 38:
+ case 16:
+ case 17:
+ case 18:
+ break;
+ case 9:
+ case 13:
+ if (!this.shown) return;
+ this.select();
+ break;
+ case 27:
+ if (!this.shown) return;
+ this.hide();
+ break;
+ default:
+ this.lookup();
+ }
+ e.stopPropagation();
+ e.preventDefault();
+ },
+ blur: function(e) {
+ var that = this;
+ setTimeout(function() {
+ that.hide();
+ }, 150);
+ },
+ click: function(e) {
+ e.stopPropagation();
+ e.preventDefault();
+ this.select();
+ },
+ mouseenter: function(e) {
+ this.$menu.find(".active").removeClass("active");
+ $(e.currentTarget).addClass("active");
+ }
+ };
+ var old = $.fn.typeahead;
+ $.fn.typeahead = function(option) {
+ return this.each(function() {
+ var $this = $(this), data = $this.data("typeahead"), options = typeof option == "object" && option;
+ data || $this.data("typeahead", data = new Typeahead(this, options));
+ typeof option == "string" && data[option]();
+ });
+ };
+ $.fn.typeahead.defaults = {
+ source: [],
+ items: 8,
+ menu: '<ul class="typeahead dropdown-menu"></ul>',
+ item: '<li><a href="#"></a></li>',
+ minLength: 1
+ };
+ $.fn.typeahead.Constructor = Typeahead;
+ $.fn.typeahead.noConflict = function() {
+ $.fn.typeahead = old;
+ return this;
+ };
+ $(document).on("focus.typeahead.data-api", '[data-provide="typeahead"]', function(e) {
+ var $this = $(this);
+ if ($this.data("typeahead")) return;
+ e.preventDefault();
+ $this.typeahead($this.data());
+ });
+}(window.jQuery);
+
+!function($) {
+ "use strict";
+ var Affix = function(element, options) {
+ this.options = $.extend({}, $.fn.affix.defaults, options);
+ this.$window = $(window).on("scroll.affix.data-api", $.proxy(this.checkPosition, this)).on("click.affix.data-api", $.proxy(function() {
+ setTimeout($.proxy(this.checkPosition, this), 1);
+ }, this));
+ this.$element = $(element);
+ this.checkPosition();
+ };
+ Affix.prototype.checkPosition = function() {
+ if (!this.$element.is(":visible")) return;
+ var scrollHeight = $(document).height(), scrollTop = this.$window.scrollTop(), position = this.$element.offset(), offset = this.options.offset, offsetBottom = offset.bottom, offsetTop = offset.top, reset = "affix affix-top affix-bottom", affix;
+ typeof offset != "object" && (offsetBottom = offsetTop = offset);
+ typeof offsetTop == "function" && (offsetTop = offset.top());
+ typeof offsetBottom == "function" && (offsetBottom = offset.bottom());
+ affix = this.unpin != null && scrollTop + this.unpin <= position.top ? !1 : offsetBottom != null && position.top + this.$element.height() >= scrollHeight - offsetBottom ? "bottom" : offsetTop != null && scrollTop <= offsetTop ? "top" : !1;
+ if (this.affixed === affix) return;
+ this.affixed = affix;
+ this.unpin = affix == "bottom" ? position.top - scrollTop : null;
+ this.$element.removeClass(reset).addClass("affix" + (affix ? "-" + affix : ""));
+ };
+ var old = $.fn.affix;
+ $.fn.affix = function(option) {
+ return this.each(function() {
+ var $this = $(this), data = $this.data("affix"), options = typeof option == "object" && option;
+ data || $this.data("affix", data = new Affix(this, options));
+ typeof option == "string" && data[option]();
+ });
+ };
+ $.fn.affix.Constructor = Affix;
+ $.fn.affix.defaults = {
+ offset: 0
+ };
+ $.fn.affix.noConflict = function() {
+ $.fn.affix = old;
+ return this;
+ };
+ $(window).on("load", function() {
+ $('[data-spy="affix"]').each(function() {
+ var $spy = $(this), data = $spy.data();
+ data.offset = data.offset || {};
+ data.offsetBottom && (data.offset.bottom = data.offsetBottom);
+ data.offsetTop && (data.offset.top = data.offsetTop);
+ $spy.affix(data);
+ });
+ });
+}(window.jQuery);

0 comments on commit c99bd4e

Please sign in to comment.
Something went wrong with that request. Please try again.