| | |
| | | /* =================================================== |
| | | * bootstrap-transition.js v2.0.2 |
| | | * bootstrap-transition.js v2.0.4 |
| | | * http://twitter.github.com/bootstrap/javascript.html#transitions |
| | | * =================================================== |
| | | * Copyright 2012 Twitter, Inc. |
| | |
| | | * limitations under the License. |
| | | * ========================================================== */ |
| | | |
| | | |
| | | !function( $ ) { |
| | | |
| | | $(function () { |
| | | |
| | | "use strict" |
| | | "use strict"; // jshint ;_; |
| | | |
| | | /* CSS TRANSITION SUPPORT (https://gist.github.com/373874) |
| | | |
| | | /* CSS TRANSITION SUPPORT (http://www.modernizr.com/) |
| | | * ======================================================= */ |
| | | |
| | | $.support.transition = (function () { |
| | | var thisBody = document.body || document.documentElement |
| | | , thisStyle = thisBody.style |
| | | , support = thisStyle.transition !== undefined || thisStyle.WebkitTransition !== undefined || thisStyle.MozTransition !== undefined || thisStyle.MsTransition !== undefined || thisStyle.OTransition !== undefined |
| | | |
| | | return support && { |
| | | end: (function () { |
| | | var transitionEnd = "TransitionEnd" |
| | | if ( $.browser.webkit ) { |
| | | transitionEnd = "webkitTransitionEnd" |
| | | } else if ( $.browser.mozilla ) { |
| | | transitionEnd = "transitionend" |
| | | } else if ( $.browser.opera ) { |
| | | transitionEnd = "oTransitionEnd" |
| | | var transitionEnd = (function () { |
| | | |
| | | var el = document.createElement('bootstrap') |
| | | , transEndEventNames = { |
| | | 'WebkitTransition' : 'webkitTransitionEnd' |
| | | , 'MozTransition' : 'transitionend' |
| | | , 'OTransition' : 'oTransitionEnd' |
| | | , 'msTransition' : 'MSTransitionEnd' |
| | | , 'transition' : 'transitionend' |
| | | } |
| | | return transitionEnd |
| | | , name |
| | | |
| | | for (name in transEndEventNames){ |
| | | if (el.style[name] !== undefined) { |
| | | return transEndEventNames[name] |
| | | } |
| | | } |
| | | |
| | | }()) |
| | | |
| | | return transitionEnd && { |
| | | end: transitionEnd |
| | | } |
| | | |
| | | })() |
| | | |
| | | }) |
| | | |
| | | }( window.jQuery );/* ========================================================== |
| | | * bootstrap-alert.js v2.0.2 |
| | | * bootstrap-alert.js v2.0.4 |
| | | * http://twitter.github.com/bootstrap/javascript.html#alerts |
| | | * ========================================================== |
| | | * Copyright 2012 Twitter, Inc. |
| | |
| | | |
| | | !function( $ ){ |
| | | |
| | | "use strict" |
| | | "use strict"; // jshint ;_; |
| | | |
| | | |
| | | /* ALERT CLASS DEFINITION |
| | | * ====================== */ |
| | |
| | | $(el).on('click', dismiss, this.close) |
| | | } |
| | | |
| | | Alert.prototype = { |
| | | |
| | | constructor: Alert |
| | | |
| | | , close: function ( e ) { |
| | | Alert.prototype.close = function (e) { |
| | | var $this = $(this) |
| | | , selector = $this.attr('data-target') |
| | | , $parent |
| | |
| | | } |
| | | |
| | | $parent = $(selector) |
| | | $parent.trigger('close') |
| | | |
| | | e && e.preventDefault() |
| | | |
| | | $parent.length || ($parent = $this.hasClass('alert') ? $this : $this.parent()) |
| | | |
| | | $parent |
| | | .trigger('close') |
| | | .removeClass('in') |
| | | $parent.trigger(e = $.Event('close')) |
| | | |
| | | if (e.isDefaultPrevented()) return |
| | | |
| | | $parent.removeClass('in') |
| | | |
| | | function removeElement() { |
| | | $parent |
| | |
| | | $.support.transition && $parent.hasClass('fade') ? |
| | | $parent.on($.support.transition.end, removeElement) : |
| | | removeElement() |
| | | } |
| | | |
| | | } |
| | | |
| | | |
| | |
| | | }) |
| | | |
| | | }( window.jQuery );/* ============================================================ |
| | | * bootstrap-button.js v2.0.2 |
| | | * bootstrap-button.js v2.0.4 |
| | | * http://twitter.github.com/bootstrap/javascript.html#buttons |
| | | * ============================================================ |
| | | * Copyright 2012 Twitter, Inc. |
| | |
| | | * limitations under the License. |
| | | * ============================================================ */ |
| | | |
| | | |
| | | !function( $ ){ |
| | | |
| | | "use strict" |
| | | "use strict"; // jshint ;_; |
| | | |
| | | |
| | | /* BUTTON PUBLIC CLASS DEFINITION |
| | | * ============================== */ |
| | |
| | | this.options = $.extend({}, $.fn.button.defaults, options) |
| | | } |
| | | |
| | | Button.prototype = { |
| | | |
| | | constructor: Button |
| | | |
| | | , setState: function ( state ) { |
| | | Button.prototype.setState = function (state) { |
| | | var d = 'disabled' |
| | | , $el = this.$element |
| | | , data = $el.data() |
| | |
| | | }, 0) |
| | | } |
| | | |
| | | , toggle: function () { |
| | | Button.prototype.toggle = function () { |
| | | var $parent = this.$element.parent('[data-toggle="buttons-radio"]') |
| | | |
| | | $parent && $parent |
| | |
| | | .removeClass('active') |
| | | |
| | | this.$element.toggleClass('active') |
| | | } |
| | | |
| | | } |
| | | |
| | | |
| | |
| | | }) |
| | | |
| | | }( window.jQuery );/* ========================================================== |
| | | * bootstrap-carousel.js v2.0.2 |
| | | * bootstrap-carousel.js v2.0.4 |
| | | * http://twitter.github.com/bootstrap/javascript.html#carousel |
| | | * ========================================================== |
| | | * Copyright 2012 Twitter, Inc. |
| | |
| | | |
| | | !function( $ ){ |
| | | |
| | | "use strict" |
| | | "use strict"; // jshint ;_; |
| | | |
| | | |
| | | /* CAROUSEL CLASS DEFINITION |
| | | * ========================= */ |
| | | |
| | | var Carousel = function (element, options) { |
| | | this.$element = $(element) |
| | | this.options = $.extend({}, $.fn.carousel.defaults, options) |
| | | this.options = options |
| | | this.options.slide && this.slide(this.options.slide) |
| | | this.options.pause == 'hover' && this.$element |
| | | .on('mouseenter', $.proxy(this.pause, this)) |
| | |
| | | |
| | | Carousel.prototype = { |
| | | |
| | | cycle: function () { |
| | | this.interval = setInterval($.proxy(this.next, this), this.options.interval) |
| | | cycle: function (e) { |
| | | if (!e) this.paused = false |
| | | this.options.interval |
| | | && !this.paused |
| | | && (this.interval = setInterval($.proxy(this.next, this), this.options.interval)) |
| | | return this |
| | | } |
| | | |
| | |
| | | return this.slide(pos > activePos ? 'next' : 'prev', $(children[pos])) |
| | | } |
| | | |
| | | , pause: function () { |
| | | , pause: function (e) { |
| | | if (!e) this.paused = true |
| | | clearInterval(this.interval) |
| | | this.interval = null |
| | | return this |
| | |
| | | , direction = type == 'next' ? 'left' : 'right' |
| | | , fallback = type == 'next' ? 'first' : 'last' |
| | | , that = this |
| | | , e = $.Event('slide') |
| | | |
| | | this.sliding = true |
| | | |
| | |
| | | |
| | | if ($next.hasClass('active')) return |
| | | |
| | | if (!$.support.transition && this.$element.hasClass('slide')) { |
| | | this.$element.trigger('slide') |
| | | $active.removeClass('active') |
| | | $next.addClass('active') |
| | | this.sliding = false |
| | | this.$element.trigger('slid') |
| | | } else { |
| | | if ($.support.transition && this.$element.hasClass('slide')) { |
| | | this.$element.trigger(e) |
| | | if (e.isDefaultPrevented()) return |
| | | $next.addClass(type) |
| | | $next[0].offsetWidth // force reflow |
| | | $active.addClass(direction) |
| | | $next.addClass(direction) |
| | | this.$element.trigger('slide') |
| | | this.$element.one($.support.transition.end, function () { |
| | | $next.removeClass([type, direction].join(' ')).addClass('active') |
| | | $active.removeClass(['active', direction].join(' ')) |
| | | that.sliding = false |
| | | setTimeout(function () { that.$element.trigger('slid') }, 0) |
| | | }) |
| | | } else { |
| | | this.$element.trigger(e) |
| | | if (e.isDefaultPrevented()) return |
| | | $active.removeClass('active') |
| | | $next.addClass('active') |
| | | this.sliding = false |
| | | this.$element.trigger('slid') |
| | | } |
| | | |
| | | isCycling && this.cycle() |
| | |
| | | return this.each(function () { |
| | | var $this = $(this) |
| | | , data = $this.data('carousel') |
| | | , options = typeof option == 'object' && option |
| | | , options = $.extend({}, $.fn.carousel.defaults, typeof option == 'object' && option) |
| | | if (!data) $this.data('carousel', (data = new Carousel(this, options))) |
| | | if (typeof option == 'number') data.to(option) |
| | | else if (typeof option == 'string' || (option = options.slide)) data[option]() |
| | | else data.cycle() |
| | | else if (options.interval) data.cycle() |
| | | }) |
| | | } |
| | | |
| | |
| | | }) |
| | | |
| | | }( window.jQuery );/* ============================================================= |
| | | * bootstrap-collapse.js v2.0.2 |
| | | * bootstrap-collapse.js v2.0.4 |
| | | * http://twitter.github.com/bootstrap/javascript.html#collapse |
| | | * ============================================================= |
| | | * Copyright 2012 Twitter, Inc. |
| | |
| | | * limitations under the License. |
| | | * ============================================================ */ |
| | | |
| | | |
| | | !function( $ ){ |
| | | |
| | | "use strict" |
| | | "use strict"; // jshint ;_; |
| | | |
| | | |
| | | /* COLLAPSE PUBLIC CLASS DEFINITION |
| | | * ================================ */ |
| | | |
| | | var Collapse = function ( element, options ) { |
| | | this.$element = $(element) |
| | | this.options = $.extend({}, $.fn.collapse.defaults, options) |
| | | |
| | | if (this.options["parent"]) { |
| | | this.$parent = $(this.options["parent"]) |
| | | if (this.options.parent) { |
| | | this.$parent = $(this.options.parent) |
| | | } |
| | | |
| | | this.options.toggle && this.toggle() |
| | |
| | | } |
| | | |
| | | , show: function () { |
| | | var dimension = this.dimension() |
| | | , scroll = $.camelCase(['scroll', dimension].join('-')) |
| | | , actives = this.$parent && this.$parent.find('.in') |
| | | 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', 'show', 'shown') |
| | | this.transition('addClass', $.Event('show'), 'shown') |
| | | this.$element[dimension](this.$element[0][scroll]) |
| | | |
| | | } |
| | | |
| | | , hide: function () { |
| | | var dimension = this.dimension() |
| | | var dimension |
| | | if (this.transitioning) return |
| | | dimension = this.dimension() |
| | | this.reset(this.$element[dimension]()) |
| | | this.transition('removeClass', 'hide', 'hidden') |
| | | this.transition('removeClass', $.Event('hide'), 'hidden') |
| | | this.$element[dimension](0) |
| | | } |
| | | |
| | |
| | | [dimension](size || 'auto') |
| | | [0].offsetWidth |
| | | |
| | | this.$element[size ? 'addClass' : 'removeClass']('collapse') |
| | | this.$element[size !== null ? 'addClass' : 'removeClass']('collapse') |
| | | |
| | | return this |
| | | } |
| | |
| | | , transition: function ( method, startEvent, completeEvent ) { |
| | | var that = this |
| | | , complete = function () { |
| | | if (startEvent == 'show') that.reset() |
| | | if (startEvent.type == 'show') that.reset() |
| | | that.transitioning = 0 |
| | | that.$element.trigger(completeEvent) |
| | | } |
| | | |
| | | this.$element |
| | | .trigger(startEvent) |
| | | [method]('in') |
| | | 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) : |
| | |
| | | } |
| | | |
| | | } |
| | | |
| | | |
| | | /* COLLAPSIBLE PLUGIN DEFINITION |
| | | * ============================== */ |
| | |
| | | }) |
| | | |
| | | }( window.jQuery );/* ============================================================ |
| | | * bootstrap-dropdown.js v2.0.2 |
| | | * bootstrap-dropdown.js v2.0.4 |
| | | * http://twitter.github.com/bootstrap/javascript.html#dropdowns |
| | | * ============================================================ |
| | | * Copyright 2012 Twitter, Inc. |
| | |
| | | |
| | | !function( $ ){ |
| | | |
| | | "use strict" |
| | | "use strict"; // jshint ;_; |
| | | |
| | | |
| | | /* DROPDOWN CLASS DEFINITION |
| | | * ========================= */ |
| | |
| | | |
| | | , toggle: function ( e ) { |
| | | var $this = $(this) |
| | | , selector = $this.attr('data-target') |
| | | , $parent |
| | | , selector |
| | | , isActive |
| | | |
| | | if ($this.is('.disabled, :disabled')) return |
| | | |
| | | selector = $this.attr('data-target') |
| | | |
| | | if (!selector) { |
| | | selector = $this.attr('href') |
| | |
| | | isActive = $parent.hasClass('open') |
| | | |
| | | clearMenus() |
| | | !isActive && $parent.toggleClass('open') |
| | | |
| | | if (!isActive) $parent.toggleClass('open') |
| | | |
| | | return false |
| | | } |
| | |
| | | |
| | | $(function () { |
| | | $('html').on('click.dropdown.data-api', clearMenus) |
| | | $('body').on('click.dropdown.data-api', toggle, Dropdown.prototype.toggle) |
| | | $('body') |
| | | .on('click.dropdown', '.dropdown form', function (e) { e.stopPropagation() }) |
| | | .on('click.dropdown.data-api', toggle, Dropdown.prototype.toggle) |
| | | }) |
| | | |
| | | }( window.jQuery );/* ========================================================= |
| | | * bootstrap-modal.js v2.0.2 |
| | | * bootstrap-modal.js v2.0.4 |
| | | * http://twitter.github.com/bootstrap/javascript.html#modals |
| | | * ========================================================= |
| | | * Copyright 2012 Twitter, Inc. |
| | |
| | | |
| | | !function( $ ){ |
| | | |
| | | "use strict" |
| | | "use strict"; // jshint ;_; |
| | | |
| | | |
| | | /* MODAL CLASS DEFINITION |
| | | * ====================== */ |
| | |
| | | |
| | | , show: function () { |
| | | var that = this |
| | | , e = $.Event('show') |
| | | |
| | | if (this.isShown) return |
| | | this.$element.trigger(e) |
| | | |
| | | if (this.isShown || e.isDefaultPrevented()) return |
| | | |
| | | $('body').addClass('modal-open') |
| | | |
| | | this.isShown = true |
| | | this.$element.trigger('show') |
| | | |
| | | escape.call(this) |
| | | backdrop.call(this, function () { |
| | | var transition = $.support.transition && that.$element.hasClass('fade') |
| | | |
| | | !that.$element.parent().length && that.$element.appendTo(document.body) //don't move modals dom position |
| | | if (!that.$element.parent().length) { |
| | | that.$element.appendTo(document.body) //don't move modals dom position |
| | | } |
| | | |
| | | that.$element |
| | | .show() |
| | |
| | | , hide: function ( e ) { |
| | | e && e.preventDefault() |
| | | |
| | | if (!this.isShown) return |
| | | |
| | | var that = this |
| | | |
| | | e = $.Event('hide') |
| | | |
| | | this.$element.trigger(e) |
| | | |
| | | if (!this.isShown || e.isDefaultPrevented()) return |
| | | |
| | | this.isShown = false |
| | | |
| | | $('body').removeClass('modal-open') |
| | | |
| | | escape.call(this) |
| | | |
| | | this.$element |
| | | .trigger('hide') |
| | | .removeClass('in') |
| | | this.$element.removeClass('in') |
| | | |
| | | $.support.transition && this.$element.hasClass('fade') ? |
| | | hideWithTransition.call(this) : |
| | |
| | | }) |
| | | |
| | | }( window.jQuery );/* =========================================================== |
| | | * bootstrap-tooltip.js v2.0.2 |
| | | * bootstrap-tooltip.js v2.0.4 |
| | | * http://twitter.github.com/bootstrap/javascript.html#tooltips |
| | | * Inspired by the original jQuery.tipsy by Jason Frame |
| | | * =========================================================== |
| | |
| | | * limitations under the License. |
| | | * ========================================================== */ |
| | | |
| | | |
| | | !function( $ ) { |
| | | |
| | | "use strict" |
| | | "use strict"; // jshint ;_; |
| | | |
| | | |
| | | /* TOOLTIP PUBLIC CLASS DEFINITION |
| | | * =============================== */ |
| | |
| | | , enter: function ( e ) { |
| | | var self = $(e.currentTarget)[this.type](this._options).data(this.type) |
| | | |
| | | if (!self.options.delay || !self.options.delay.show) { |
| | | self.show() |
| | | } else { |
| | | if (!self.options.delay || !self.options.delay.show) return self.show() |
| | | |
| | | clearTimeout(this.timeout) |
| | | self.hoverState = 'in' |
| | | setTimeout(function() { |
| | | if (self.hoverState == 'in') { |
| | | self.show() |
| | | } |
| | | this.timeout = setTimeout(function() { |
| | | if (self.hoverState == 'in') self.show() |
| | | }, self.options.delay.show) |
| | | } |
| | | } |
| | | |
| | | , leave: function ( e ) { |
| | | var self = $(e.currentTarget)[this.type](this._options).data(this.type) |
| | | |
| | | if (!self.options.delay || !self.options.delay.hide) { |
| | | self.hide() |
| | | } else { |
| | | if (this.timeout) clearTimeout(this.timeout) |
| | | if (!self.options.delay || !self.options.delay.hide) return self.hide() |
| | | |
| | | self.hoverState = 'out' |
| | | setTimeout(function() { |
| | | if (self.hoverState == 'out') { |
| | | self.hide() |
| | | } |
| | | this.timeout = setTimeout(function() { |
| | | if (self.hoverState == 'out') self.hide() |
| | | }, self.options.delay.hide) |
| | | } |
| | | } |
| | | |
| | | , show: function () { |
| | |
| | | } |
| | | } |
| | | |
| | | , isHTML: function(text) { |
| | | // html string detection logic adapted from jQuery |
| | | return typeof text != 'string' |
| | | || ( text.charAt(0) === "<" |
| | | && text.charAt( text.length - 1 ) === ">" |
| | | && text.length >= 3 |
| | | ) || /^(?:[^<]*<[\w\W]+>[^>]*$)/.exec(text) |
| | | } |
| | | |
| | | , setContent: function () { |
| | | var $tip = this.tip() |
| | | $tip.find('.tooltip-inner').html(this.getTitle()) |
| | | , title = this.getTitle() |
| | | |
| | | $tip.find('.tooltip-inner')[this.isHTML(title) ? 'html' : 'text'](title) |
| | | $tip.removeClass('fade in top bottom left right') |
| | | } |
| | | |
| | |
| | | |
| | | title = $e.attr('data-original-title') |
| | | || (typeof o.title == 'function' ? o.title.call($e[0]) : o.title) |
| | | |
| | | title = (title || '').toString().replace(/(^\s*|\s*$)/, "") |
| | | |
| | | return title |
| | | } |
| | |
| | | |
| | | $.fn.tooltip.defaults = { |
| | | animation: true |
| | | , delay: 0 |
| | | , selector: false |
| | | , placement: 'top' |
| | | , selector: false |
| | | , template: '<div class="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>' |
| | | , trigger: 'hover' |
| | | , title: '' |
| | | , template: '<div class="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>' |
| | | , delay: 0 |
| | | } |
| | | |
| | | }( window.jQuery );/* =========================================================== |
| | | * bootstrap-popover.js v2.0.2 |
| | | }(window.jQuery); |
| | | /* =========================================================== |
| | | * bootstrap-popover.js v2.0.4 |
| | | * http://twitter.github.com/bootstrap/javascript.html#popovers |
| | | * =========================================================== |
| | | * Copyright 2012 Twitter, Inc. |
| | |
| | | |
| | | !function( $ ) { |
| | | |
| | | "use strict" |
| | | "use strict"; // jshint ;_; |
| | | |
| | | |
| | | /* POPOVER PUBLIC CLASS DEFINITION |
| | | * =============================== */ |
| | | |
| | | var Popover = function ( element, options ) { |
| | | this.init('popover', element, options) |
| | | } |
| | | |
| | | |
| | | /* NOTE: POPOVER EXTENDS BOOTSTRAP-TOOLTIP.js |
| | | ========================================== */ |
| | |
| | | , title = this.getTitle() |
| | | , content = this.getContent() |
| | | |
| | | $tip.find('.popover-title')[ $.type(title) == 'object' ? 'append' : 'html' ](title) |
| | | $tip.find('.popover-content > *')[ $.type(content) == 'object' ? 'append' : 'html' ](content) |
| | | $tip.find('.popover-title')[this.isHTML(title) ? 'html' : 'text'](title) |
| | | $tip.find('.popover-content > *')[this.isHTML(content) ? 'html' : 'text'](content) |
| | | |
| | | $tip.removeClass('fade top bottom left right in') |
| | | } |
| | |
| | | |
| | | content = $e.attr('data-content') |
| | | || (typeof o.content == 'function' ? o.content.call($e[0]) : o.content) |
| | | |
| | | content = content.toString().replace(/(^\s*|\s*$)/, "") |
| | | |
| | | return content |
| | | } |
| | |
| | | }) |
| | | |
| | | }( window.jQuery );/* ============================================================= |
| | | * bootstrap-scrollspy.js v2.0.2 |
| | | * bootstrap-scrollspy.js v2.0.4 |
| | | * http://twitter.github.com/bootstrap/javascript.html#scrollspy |
| | | * ============================================================= |
| | | * Copyright 2012 Twitter, Inc. |
| | |
| | | * limitations under the License. |
| | | * ============================================================== */ |
| | | |
| | | |
| | | !function ( $ ) { |
| | | |
| | | "use strict" |
| | | "use strict"; // jshint ;_; |
| | | |
| | | |
| | | /* SCROLLSPY CLASS DEFINITION |
| | | * ========================== */ |
| | |
| | | this.selector = (this.options.target |
| | | || ((href = $(element).attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) //strip for ie7 |
| | | || '') + ' .nav li > a' |
| | | this.$body = $('body').on('click.scroll.data-api', this.selector, process) |
| | | this.$body = $('body') |
| | | this.refresh() |
| | | this.process() |
| | | } |
| | |
| | | constructor: ScrollSpy |
| | | |
| | | , refresh: function () { |
| | | this.targets = this.$body |
| | | var self = this |
| | | , $targets |
| | | |
| | | this.offsets = $([]) |
| | | this.targets = $([]) |
| | | |
| | | $targets = this.$body |
| | | .find(this.selector) |
| | | .map(function () { |
| | | var href = $(this).attr('href') |
| | | return /^#\w/.test(href) && $(href).length ? href : null |
| | | var $el = $(this) |
| | | , href = $el.data('target') || $el.attr('href') |
| | | , $href = /^#\w/.test(href) && $(href) |
| | | return ( $href |
| | | && href.length |
| | | && [[ $href.position().top, href ]] ) || null |
| | | }) |
| | | |
| | | this.offsets = $.map(this.targets, function (id) { |
| | | return $(id).position().top |
| | | .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] |
| | |
| | | |
| | | , activate: function (target) { |
| | | var active |
| | | , selector |
| | | |
| | | this.activeTarget = target |
| | | |
| | | this.$body |
| | | .find(this.selector).parent('.active') |
| | | $(this.selector) |
| | | .parent('.active') |
| | | .removeClass('active') |
| | | |
| | | active = this.$body |
| | | .find(this.selector + '[href="' + target + '"]') |
| | | selector = this.selector |
| | | + '[data-target="' + target + '"],' |
| | | + this.selector + '[href="' + target + '"]' |
| | | |
| | | active = $(selector) |
| | | .parent('li') |
| | | .addClass('active') |
| | | |
| | | if ( active.parent('.dropdown-menu') ) { |
| | | active.closest('li.dropdown').addClass('active') |
| | | active = active.closest('li.dropdown').addClass('active') |
| | | } |
| | | |
| | | active.trigger('activate') |
| | | } |
| | | |
| | | } |
| | |
| | | }) |
| | | |
| | | }( window.jQuery );/* ======================================================== |
| | | * bootstrap-tab.js v2.0.2 |
| | | * bootstrap-tab.js v2.0.4 |
| | | * http://twitter.github.com/bootstrap/javascript.html#tabs |
| | | * ======================================================== |
| | | * Copyright 2012 Twitter, Inc. |
| | |
| | | |
| | | !function( $ ){ |
| | | |
| | | "use strict" |
| | | "use strict"; // jshint ;_; |
| | | |
| | | |
| | | /* TAB CLASS DEFINITION |
| | | * ==================== */ |
| | |
| | | , selector = $this.attr('data-target') |
| | | , previous |
| | | , $target |
| | | , e |
| | | |
| | | if (!selector) { |
| | | selector = $this.attr('href') |
| | |
| | | |
| | | previous = $ul.find('.active a').last()[0] |
| | | |
| | | $this.trigger({ |
| | | type: 'show' |
| | | , relatedTarget: previous |
| | | e = $.Event('show', { |
| | | relatedTarget: previous |
| | | }) |
| | | |
| | | $this.trigger(e) |
| | | |
| | | if (e.isDefaultPrevented()) return |
| | | |
| | | $target = $(selector) |
| | | |
| | |
| | | }) |
| | | |
| | | }( window.jQuery );/* ============================================================= |
| | | * bootstrap-typeahead.js v2.0.2 |
| | | * bootstrap-typeahead.js v2.0.4 |
| | | * http://twitter.github.com/bootstrap/javascript.html#typeahead |
| | | * ============================================================= |
| | | * Copyright 2012 Twitter, Inc. |
| | |
| | | * limitations under the License. |
| | | * ============================================================ */ |
| | | |
| | | |
| | | !function( $ ){ |
| | | |
| | | "use strict" |
| | | "use strict"; // jshint ;_; |
| | | |
| | | |
| | | /* TYPEAHEAD PUBLIC CLASS DEFINITION |
| | | * ================================= */ |
| | | |
| | | var Typeahead = function ( element, options ) { |
| | | this.$element = $(element) |
| | |
| | | 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.$menu = $(this.options.menu).appendTo('body') |
| | | this.source = this.options.source |
| | | this.shown = false |
| | |
| | | |
| | | , select: function () { |
| | | var val = this.$menu.find('.active').attr('data-value') |
| | | this.$element.val(val) |
| | | this.$element.change(); |
| | | this.$element |
| | | .val(this.updater(val)) |
| | | .change() |
| | | return this.hide() |
| | | } |
| | | |
| | | , updater: function (item) { |
| | | return item |
| | | } |
| | | |
| | | , show: function () { |
| | |
| | | } |
| | | |
| | | items = $.grep(this.source, function (item) { |
| | | if (that.matcher(item)) return item |
| | | return that.matcher(item) |
| | | }) |
| | | |
| | | items = this.sorter(items) |
| | |
| | | } |
| | | |
| | | , highlighter: function (item) { |
| | | return item.replace(new RegExp('(' + this.query + ')', 'ig'), function ($1, match) { |
| | | var query = this.query.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g, '\\$&') |
| | | return item.replace(new RegExp('(' + query + ')', 'ig'), function ($1, match) { |
| | | return '<strong>' + match + '</strong>' |
| | | }) |
| | | } |
| | |
| | | break |
| | | |
| | | case 38: // up arrow |
| | | if (e.type != 'keydown') break |
| | | e.preventDefault() |
| | | this.prev() |
| | | break |
| | | |
| | | case 40: // down arrow |
| | | if (e.type != 'keydown') break |
| | | e.preventDefault() |
| | | this.next() |
| | | break |