forked from crt/512mb-website
commit
07fb299818
57 changed files with 10801 additions and 0 deletions
-
0README.md
-
99assets/bootstrap-alert.js
-
105assets/bootstrap-button.js
-
207assets/bootstrap-carousel.js
-
167assets/bootstrap-collapse.js
-
165assets/bootstrap-dropdown.js
-
247assets/bootstrap-modal.js
-
114assets/bootstrap-popover.js
-
1127assets/bootstrap-responsive.css
-
162assets/bootstrap-scrollspy.js
-
144assets/bootstrap-tab.js
-
361assets/bootstrap-tooltip.js
-
60assets/bootstrap-transition.js
-
335assets/bootstrap-typeahead.js
-
5886assets/bootstrap.css
-
BINassets/fonts/Fixedsys500c.otf
-
646assets/fonts/Fixedsys500c.svg
-
BINassets/fonts/Fixedsys500c.woff
-
BINassets/fonts/Px437_IBM_EGA8.otf
-
1assets/fonts/arrow-down-black.svg
-
1assets/fonts/arrow-down-grayLight.svg
-
1assets/fonts/arrow-up-black.svg
-
1assets/fonts/arrow-up-grayLight.svg
-
1assets/fonts/checkbox-checked-black.svg
-
1assets/fonts/checkbox-checked-grayLight.svg
-
1assets/fonts/checkbox-unchecked-black.svg
-
1assets/fonts/checkbox-unchecked-grayLight.svg
-
1assets/fonts/grid-black.svg
-
1assets/fonts/grid-grayLight.svg
-
1assets/fonts/grid.svg
-
1assets/fonts/hyphen-black.svg
-
1assets/fonts/hyphen-grayLight.svg
-
1assets/fonts/left-brace-black.svg
-
1assets/fonts/left-brace-grayLight.svg
-
1assets/fonts/radio-checked-black.svg
-
1assets/fonts/radio-checked-grayLight.svg
-
1assets/fonts/radio-unchecked-black.svg
-
1assets/fonts/radio-unchecked-grayLight.svg
-
1assets/fonts/right-brace-black.svg
-
1assets/fonts/right-brace-grayLight.svg
-
1assets/fonts/shade-100-black.svg
-
1assets/fonts/shade-100-grayLight.svg
-
1assets/fonts/shade-25-black.svg
-
1assets/fonts/shade-25-grayLight.svg
-
1assets/fonts/shade-50-black.svg
-
1assets/fonts/shade-50-grayLight.svg
-
1assets/fonts/shade-75-black.svg
-
1assets/fonts/shade-75-grayLight.svg
-
5assets/jquery.js
-
1assets/jquery.min.map
-
BINassets/twingo.jpg
-
201crt.html
-
BINfavicon.ico
-
241index.html
-
151irc.html
-
234services.html
-
114sindex.html
@ -0,0 +1,99 @@ |
|||
/* ========================================================== |
|||
* bootstrap-alert.js v2.3.1 |
|||
* http://twitter.github.com/bootstrap/javascript.html#alerts
|
|||
* ========================================================== |
|||
* 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"; // jshint ;_;
|
|||
|
|||
|
|||
/* ALERT CLASS DEFINITION |
|||
* ====================== */ |
|||
|
|||
var dismiss = '[data-dismiss="alert"]' |
|||
, Alert = function (el) { |
|||
$(el).on('click', dismiss, this.close) |
|||
} |
|||
|
|||
Alert.prototype.close = function (e) { |
|||
var $this = $(this) |
|||
, selector = $this.attr('data-target') |
|||
, $parent |
|||
|
|||
if (!selector) { |
|||
selector = $this.attr('href') |
|||
selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7
|
|||
} |
|||
|
|||
$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') |
|||
|
|||
function removeElement() { |
|||
$parent |
|||
.trigger('closed') |
|||
.remove() |
|||
} |
|||
|
|||
$.support.transition && $parent.hasClass('fade') ? |
|||
$parent.on($.support.transition.end, removeElement) : |
|||
removeElement() |
|||
} |
|||
|
|||
|
|||
/* ALERT PLUGIN DEFINITION |
|||
* ======================= */ |
|||
|
|||
var old = $.fn.alert |
|||
|
|||
$.fn.alert = function (option) { |
|||
return this.each(function () { |
|||
var $this = $(this) |
|||
, data = $this.data('alert') |
|||
if (!data) $this.data('alert', (data = new Alert(this))) |
|||
if (typeof option == 'string') data[option].call($this) |
|||
}) |
|||
} |
|||
|
|||
$.fn.alert.Constructor = Alert |
|||
|
|||
|
|||
/* ALERT NO CONFLICT |
|||
* ================= */ |
|||
|
|||
$.fn.alert.noConflict = function () { |
|||
$.fn.alert = old |
|||
return this |
|||
} |
|||
|
|||
|
|||
/* ALERT DATA-API |
|||
* ============== */ |
|||
|
|||
$(document).on('click.alert.data-api', dismiss, Alert.prototype.close) |
|||
|
|||
}(window.jQuery); |
@ -0,0 +1,105 @@ |
|||
/* ============================================================ |
|||
* bootstrap-button.js v2.3.1 |
|||
* http://twitter.github.com/bootstrap/javascript.html#buttons
|
|||
* ============================================================ |
|||
* 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"; // jshint ;_;
|
|||
|
|||
|
|||
/* BUTTON PUBLIC CLASS DEFINITION |
|||
* ============================== */ |
|||
|
|||
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 = state + 'Text' |
|||
data.resetText || $el.data('resetText', $el[val]()) |
|||
|
|||
$el[val](data[state] || this.options[state]) |
|||
|
|||
// push to event loop to allow forms to submit
|
|||
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') |
|||
} |
|||
|
|||
|
|||
/* BUTTON PLUGIN DEFINITION |
|||
* ======================== */ |
|||
|
|||
var old = $.fn.button |
|||
|
|||
$.fn.button = function (option) { |
|||
return this.each(function () { |
|||
var $this = $(this) |
|||
, data = $this.data('button') |
|||
, options = typeof option == 'object' && option |
|||
if (!data) $this.data('button', (data = new Button(this, options))) |
|||
if (option == 'toggle') data.toggle() |
|||
else if (option) data.setState(option) |
|||
}) |
|||
} |
|||
|
|||
$.fn.button.defaults = { |
|||
loadingText: 'loading...' |
|||
} |
|||
|
|||
$.fn.button.Constructor = Button |
|||
|
|||
|
|||
/* BUTTON NO CONFLICT |
|||
* ================== */ |
|||
|
|||
$.fn.button.noConflict = function () { |
|||
$.fn.button = old |
|||
return this |
|||
} |
|||
|
|||
|
|||
/* BUTTON DATA-API |
|||
* =============== */ |
|||
|
|||
$(document).on('click.button.data-api', '[data-toggle^=button]', function (e) { |
|||
var $btn = $(e.target) |
|||
if (!$btn.hasClass('btn')) $btn = $btn.closest('.btn') |
|||
$btn.button('toggle') |
|||
}) |
|||
|
|||
}(window.jQuery); |
@ -0,0 +1,207 @@ |
|||
/* ========================================================== |
|||
* bootstrap-carousel.js v2.3.1 |
|||
* http://twitter.github.com/bootstrap/javascript.html#carousel
|
|||
* ========================================================== |
|||
* 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"; // jshint ;_;
|
|||
|
|||
|
|||
/* CAROUSEL CLASS DEFINITION |
|||
* ========================= */ |
|||
|
|||
var Carousel = function (element, options) { |
|||
this.$element = $(element) |
|||
this.$indicators = this.$element.find('.carousel-indicators') |
|||
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) { |
|||
if (!e) this.paused = false |
|||
if (this.interval) clearInterval(this.interval); |
|||
this.options.interval |
|||
&& !this.paused |
|||
&& (this.interval = setInterval($.proxy(this.next, this), this.options.interval)) |
|||
return this |
|||
} |
|||
|
|||
, getActiveIndex: function () { |
|||
this.$active = this.$element.find('.item.active') |
|||
this.$items = this.$active.parent().children() |
|||
return this.$items.index(this.$active) |
|||
} |
|||
|
|||
, to: function (pos) { |
|||
var activeIndex = this.getActiveIndex() |
|||
, that = this |
|||
|
|||
if (pos > (this.$items.length - 1) || pos < 0) return |
|||
|
|||
if (this.sliding) { |
|||
return this.$element.one('slid', function () { |
|||
that.to(pos) |
|||
}) |
|||
} |
|||
|
|||
if (activeIndex == pos) { |
|||
return this.pause().cycle() |
|||
} |
|||
|
|||
return this.slide(pos > activeIndex ? 'next' : 'prev', $(this.$items[pos])) |
|||
} |
|||
|
|||
, pause: function (e) { |
|||
if (!e) this.paused = true |
|||
if (this.$element.find('.next, .prev').length && $.support.transition.end) { |
|||
this.$element.trigger($.support.transition.end) |
|||
this.cycle(true) |
|||
} |
|||
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 = true |
|||
|
|||
isCycling && this.pause() |
|||
|
|||
$next = $next.length ? $next : this.$element.find('.item')[fallback]() |
|||
|
|||
e = $.Event('slide', { |
|||
relatedTarget: $next[0] |
|||
, direction: direction |
|||
}) |
|||
|
|||
if ($next.hasClass('active')) return |
|||
|
|||
if (this.$indicators.length) { |
|||
this.$indicators.find('.active').removeClass('active') |
|||
this.$element.one('slid', function () { |
|||
var $nextIndicator = $(that.$indicators.children()[that.getActiveIndex()]) |
|||
$nextIndicator && $nextIndicator.addClass('active') |
|||
}) |
|||
} |
|||
|
|||
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.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 |
|||
} |
|||
|
|||
} |
|||
|
|||
|
|||
/* CAROUSEL PLUGIN DEFINITION |
|||
* ========================== */ |
|||
|
|||
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 |
|||
if (!data) $this.data('carousel', (data = new Carousel(this, options))) |
|||
if (typeof option == 'number') data.to(option) |
|||
else if (action) data[action]() |
|||
else if (options.interval) data.pause().cycle() |
|||
}) |
|||
} |
|||
|
|||
$.fn.carousel.defaults = { |
|||
interval: 5000 |
|||
, pause: 'hover' |
|||
} |
|||
|
|||
$.fn.carousel.Constructor = Carousel |
|||
|
|||
|
|||
/* CAROUSEL NO CONFLICT |
|||
* ==================== */ |
|||
|
|||
$.fn.carousel.noConflict = function () { |
|||
$.fn.carousel = old |
|||
return this |
|||
} |
|||
|
|||
/* CAROUSEL DATA-API |
|||
* ================= */ |
|||
|
|||
$(document).on('click.carousel.data-api', '[data-slide], [data-slide-to]', function (e) { |
|||
var $this = $(this), href |
|||
, $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) //strip for ie7
|
|||
, options = $.extend({}, $target.data(), $this.data()) |
|||
, slideIndex |
|||
|
|||
$target.carousel(options) |
|||
|
|||
if (slideIndex = $this.attr('data-slide-to')) { |
|||
$target.data('carousel').pause().to(slideIndex).cycle() |
|||
} |
|||
|
|||
e.preventDefault() |
|||
}) |
|||
|
|||
}(window.jQuery); |
@ -0,0 +1,167 @@ |
|||
/* ============================================================= |
|||
* bootstrap-collapse.js v2.3.1 |
|||
* http://twitter.github.com/bootstrap/javascript.html#collapse
|
|||
* ============================================================= |
|||
* 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"; // 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) |
|||
} |
|||
|
|||
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 || this.$element.hasClass('in')) 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 || !this.$element.hasClass('in')) 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 () { |
|||
if (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']() |
|||
} |
|||
|
|||
} |
|||
|
|||
|
|||
/* COLLAPSE PLUGIN DEFINITION |
|||
* ========================== */ |
|||
|
|||
var old = $.fn.collapse |
|||
|
|||
$.fn.collapse = function (option) { |
|||
return this.each(function () { |
|||
var $this = $(this) |
|||
, data = $this.data('collapse') |
|||
, options = $.extend({}, $.fn.collapse.defaults, $this.data(), typeof option == 'object' && option) |
|||
if (!data) $this.data('collapse', (data = new Collapse(this, options))) |
|||
if (typeof option == 'string') data[option]() |
|||
}) |
|||
} |
|||
|
|||
$.fn.collapse.defaults = { |
|||
toggle: true |
|||
} |
|||
|
|||
$.fn.collapse.Constructor = Collapse |
|||
|
|||
|
|||
/* COLLAPSE NO CONFLICT |
|||
* ==================== */ |
|||
|
|||
$.fn.collapse.noConflict = function () { |
|||
$.fn.collapse = old |
|||
return this |
|||
} |
|||
|
|||
|
|||
/* COLLAPSE DATA-API |
|||
* ================= */ |
|||
|
|||
$(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]+$)/, '') //strip for ie7
|
|||
, option = $(target).data('collapse') ? 'toggle' : $this.data() |
|||
$this[$(target).hasClass('in') ? 'addClass' : 'removeClass']('collapsed') |
|||
$(target).collapse(option) |
|||
}) |
|||
|
|||
}(window.jQuery); |
@ -0,0 +1,165 @@ |
|||
/* ============================================================ |
|||
* bootstrap-dropdown.js v2.3.1 |
|||
* http://twitter.github.com/bootstrap/javascript.html#dropdowns
|
|||
* ============================================================ |
|||
* 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"; // jshint ;_;
|
|||
|
|||
|
|||
/* DROPDOWN CLASS DEFINITION |
|||
* ========================= */ |
|||
|
|||
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() |
|||
|
|||
if (!isActive) { |
|||
$parent.toggleClass('open') |
|||
} |
|||
|
|||
$this.focus() |
|||
|
|||
return false |
|||
} |
|||
|
|||
, 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)) { |
|||
if (e.which == 27) $parent.find(toggle).focus() |
|||
return $this.click() |
|||
} |
|||
|
|||
$items = $('[role=menu] li:not(.divider):visible a', $parent) |
|||
|
|||
if (!$items.length) return |
|||
|
|||
index = $items.index($items.filter(':focus')) |
|||
|
|||
if (e.keyCode == 38 && index > 0) index-- // up
|
|||
if (e.keyCode == 40 && index < $items.length - 1) index++ // down
|
|||
if (!~index) index = 0 |
|||
|
|||
$items |
|||
.eq(index) |
|||
.focus() |
|||
} |
|||
|
|||
} |
|||
|
|||
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]*$)/, '') //strip for ie7
|
|||
} |
|||
|
|||
$parent = selector && $(selector) |
|||
|
|||
if (!$parent || !$parent.length) $parent = $this.parent() |
|||
|
|||
return $parent |
|||
} |
|||
|
|||
|
|||
/* DROPDOWN PLUGIN DEFINITION |
|||
* ========================== */ |
|||
|
|||
var old = $.fn.dropdown |
|||
|
|||
$.fn.dropdown = function (option) { |
|||
return this.each(function () { |
|||
var $this = $(this) |
|||
, data = $this.data('dropdown') |
|||
if (!data) $this.data('dropdown', (data = new Dropdown(this))) |
|||
if (typeof option == 'string') data[option].call($this) |
|||
}) |
|||
} |
|||
|
|||
$.fn.dropdown.Constructor = Dropdown |
|||
|
|||
|
|||
/* DROPDOWN NO CONFLICT |
|||
* ==================== */ |
|||
|
|||
$.fn.dropdown.noConflict = function () { |
|||
$.fn.dropdown = old |
|||
return this |
|||
} |
|||
|
|||
|
|||
/* APPLY TO STANDARD DROPDOWN ELEMENTS |
|||
* =================================== */ |
|||
|
|||
$(document) |
|||
.on('click.dropdown.data-api', clearMenus) |
|||
.on('click.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() }) |
|||
.on('click.dropdown-menu', function (e) { e.stopPropagation() }) |
|||
.on('click.dropdown.data-api' , toggle, Dropdown.prototype.toggle) |
|||
.on('keydown.dropdown.data-api', toggle + ', [role=menu]' , Dropdown.prototype.keydown) |
|||
|
|||
}(window.jQuery); |
@ -0,0 +1,247 @@ |
|||
/* ========================================================= |
|||
* bootstrap-modal.js v2.3.1 |
|||
* http://twitter.github.com/bootstrap/javascript.html#modals
|
|||
* ========================================================= |
|||
* 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"; // jshint ;_;
|
|||
|
|||
|
|||
/* MODAL CLASS DEFINITION |
|||
* ====================== */ |
|||
|
|||
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 ? 'show' : 'hide']() |
|||
} |
|||
|
|||
, show: function () { |
|||
var that = this |
|||
, e = $.Event('show') |
|||
|
|||
this.$element.trigger(e) |
|||
|
|||
if (this.isShown || e.isDefaultPrevented()) return |
|||
|
|||
this.isShown = true |
|||
|
|||
this.escape() |
|||
|
|||
this.backdrop(function () { |
|||
var transition = $.support.transition && that.$element.hasClass('fade') |
|||
|
|||
if (!that.$element.parent().length) { |
|||
that.$element.appendTo(document.body) //don't move modals dom position
|
|||
} |
|||
|
|||
that.$element.show() |
|||
|
|||
if (transition) { |
|||
that.$element[0].offsetWidth // force reflow
|
|||
} |
|||
|
|||
that.$element |
|||
.addClass('in') |
|||
.attr('aria-hidden', false) |
|||
|
|||
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 = false |
|||
|
|||
this.escape() |
|||
|
|||
$(document).off('focusin.modal') |
|||
|
|||
this.$element |
|||
.removeClass('in') |
|||
.attr('aria-hidden', true) |
|||
|
|||
$.support.transition && this.$element.hasClass('fade') ? |
|||
this.hideWithTransition() : |
|||
this.hideModal() |
|||
} |
|||
|
|||
, enforceFocus: function () { |
|||
var that = this |
|||
$(document).on('focusin.modal', function (e) { |
|||
if (that.$element[0] !== e.target && !that.$element.has(e.target).length) { |
|||
that.$element.focus() |
|||
} |
|||
}) |
|||
} |
|||
|
|||
, escape: function () { |
|||
var that = this |
|||
if (this.isShown && this.options.keyboard) { |
|||
this.$element.on('keyup.dismiss.modal', function ( e ) { |
|||
e.which == 27 && that.hide() |
|||
}) |
|||
} else if (!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 () { |
|||
var that = this |
|||
this.$element.hide() |
|||
this.backdrop(function () { |
|||
that.removeBackdrop() |
|||
that.$element.trigger('hidden') |
|||
}) |
|||
} |
|||
|
|||
, removeBackdrop: function () { |
|||
this.$backdrop && 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) |
|||
) |
|||
|
|||
if (doAnimate) this.$backdrop[0].offsetWidth // force reflow
|
|||
|
|||
this.$backdrop.addClass('in') |
|||
|
|||
if (!callback) return |
|||
|
|||
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, callback) : |
|||
callback() |
|||
|
|||
} else if (callback) { |
|||
callback() |
|||
} |
|||
} |
|||
} |
|||
|
|||
|
|||
/* MODAL PLUGIN DEFINITION |
|||
* ======================= */ |
|||
|
|||
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) |
|||
if (!data) $this.data('modal', (data = new Modal(this, options))) |
|||
if (typeof option == 'string') data[option]() |
|||
else if (options.show) data.show() |
|||
}) |
|||
} |
|||
|
|||
$.fn.modal.defaults = { |
|||
backdrop: true |
|||
, keyboard: true |
|||
, show: true |
|||
} |
|||
|
|||
$.fn.modal.Constructor = Modal |
|||
|
|||
|
|||
/* MODAL NO CONFLICT |
|||
* ================= */ |
|||
|
|||
$.fn.modal.noConflict = function () { |
|||
$.fn.modal = old |
|||
return this |
|||
} |
|||
|
|||
|
|||
/* MODAL DATA-API |
|||
* ============== */ |
|||
|
|||
$(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]+$)/, ''))) //strip for ie7
|
|||
, 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); |
@ -0,0 +1,114 @@ |
|||
/* =========================================================== |
|||
* bootstrap-popover.js v2.3.1 |
|||
* http://twitter.github.com/bootstrap/javascript.html#popovers
|
|||
* =========================================================== |
|||
* 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"; // jshint ;_;
|
|||
|
|||
|
|||
/* POPOVER PUBLIC CLASS DEFINITION |
|||
* =============================== */ |
|||
|
|||
var Popover = function (element, options) { |
|||
this.init('popover', element, options) |
|||
} |
|||
|
|||
|
|||
/* NOTE: POPOVER EXTENDS BOOTSTRAP-TOOLTIP.js |
|||
========================================== */ |
|||
|
|||
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 = (typeof o.content == 'function' ? o.content.call($e[0]) : o.content) |
|||
|| $e.attr('data-content') |
|||
|
|||
return content |
|||
} |
|||
|
|||
, tip: function () { |
|||
if (!this.$tip) { |
|||
this.$tip = $(this.options.template) |
|||
} |
|||
return this.$tip |
|||
} |
|||
|
|||
, destroy: function () { |
|||
this.hide().$element.off('.' + this.type).removeData(this.type) |
|||
} |
|||
|
|||
}) |
|||
|
|||
|
|||
/* POPOVER PLUGIN DEFINITION |
|||
* ======================= */ |
|||
|
|||
var old = $.fn.popover |
|||
|
|||
$.fn.popover = function (option) { |
|||
return this.each(function () { |
|||
var $this = $(this) |
|||
, data = $this.data('popover') |
|||
, options = typeof option == 'object' && option |
|||
if (!data) $this.data('popover', (data = new Popover(this, options))) |
|||
if (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><h3 class="popover-title"></h3><div class="popover-content"></div></div>' |
|||
}) |
|||
|
|||
|
|||
/* POPOVER NO CONFLICT |
|||
* =================== */ |
|||
|
|||
$.fn.popover.noConflict = function () { |
|||
$.fn.popover = old |
|||
return this |
|||
} |
|||
|
|||
}(window.jQuery); |
1127
assets/bootstrap-responsive.css
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
@ -0,0 +1,162 @@ |
|||
/* ============================================================= |
|||
* bootstrap-scrollspy.js v2.3.1 |
|||
* http://twitter.github.com/bootstrap/javascript.html#scrollspy
|
|||
* ============================================================= |
|||
* 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"; // jshint ;_;
|
|||
|
|||
|
|||
/* SCROLLSPY CLASS DEFINITION |
|||
* ========================== */ |
|||
|
|||
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]+$)/, '')) //strip for ie7
|
|||
|| '') + ' .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 + (!$.isWindow(self.$scrollElement.get(0)) && 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') |
|||
|
|||
if (active.parent('.dropdown-menu').length) { |
|||
active = active.closest('li.dropdown').addClass('active') |
|||
} |
|||
|
|||
active.trigger('activate') |
|||
} |
|||
|
|||
} |
|||
|
|||
|
|||
/* SCROLLSPY PLUGIN DEFINITION |
|||
* =========================== */ |
|||
|
|||
var old = $.fn.scrollspy |
|||
|
|||
$.fn.scrollspy = function (option) { |
|||
return this.each(function () { |
|||
var $this = $(this) |
|||
, data = $this.data('scrollspy') |
|||
, options = typeof option == 'object' && option |
|||
if (!data) $this.data('scrollspy', (data = new ScrollSpy(this, options))) |
|||
if (typeof option == 'string') data[option]() |
|||
}) |
|||
} |
|||
|
|||
$.fn.scrollspy.Constructor = ScrollSpy |
|||
|
|||
$.fn.scrollspy.defaults = { |
|||
offset: 10 |
|||
} |
|||
|
|||
|
|||
/* SCROLLSPY NO CONFLICT |
|||
* ===================== */ |
|||
|
|||
$.fn.scrollspy.noConflict = function () { |
|||
$.fn.scrollspy = old |
|||
return this |
|||
} |
|||
|
|||
|
|||
/* SCROLLSPY DATA-API |
|||
* ================== */ |
|||
|
|||
$(window).on('load', function () { |
|||
$('[data-spy="scroll"]').each(function () { |
|||
var $spy = $(this) |
|||
$spy.scrollspy($spy.data()) |
|||
}) |
|||
}) |
|||
|
|||
}(window.jQuery); |
@ -0,0 +1,144 @@ |
|||
/* ======================================================== |
|||
* bootstrap-tab.js v2.3.1 |
|||
* http://twitter.github.com/bootstrap/javascript.html#tabs
|
|||
* ======================================================== |
|||
* 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"; // jshint ;_;
|
|||
|
|||
|
|||
/* TAB CLASS DEFINITION |
|||
* ==================== */ |
|||
|
|||
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]*$)/, '') //strip for ie7
|
|||
} |
|||
|
|||
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) { |
|||
var $active = container.find('> .active') |
|||
, transition = callback |
|||
&& $.support.transition |
|||
&& $active.hasClass('fade') |
|||
|
|||
function next() { |
|||
$active |
|||
.removeClass('active') |
|||
.find('> .dropdown-menu > .active') |
|||
.removeClass('active') |
|||
|
|||
element.addClass('active') |
|||
|
|||
if (transition) { |
|||
element[0].offsetWidth // reflow for transition
|
|||
element.addClass('in') |
|||
} else { |
|||
element.removeClass('fade') |
|||
} |
|||
|
|||
if ( element.parent('.dropdown-menu') ) { |
|||
element.closest('li.dropdown').addClass('active') |
|||
} |
|||
|
|||
callback && callback() |
|||
} |
|||
|
|||
transition ? |
|||
$active.one($.support.transition.end, next) : |
|||
next() |
|||
|
|||
$active.removeClass('in') |
|||
} |
|||
} |
|||
|
|||
|
|||
/* TAB PLUGIN DEFINITION |
|||
* ===================== */ |
|||
|
|||
var old = $.fn.tab |
|||
|
|||
$.fn.tab = function ( option ) { |
|||
return this.each(function () { |
|||
var $this = $(this) |
|||
, data = $this.data('tab') |
|||
if (!data) $this.data('tab', (data = new Tab(this))) |
|||
if (typeof option == 'string') data[option]() |
|||
}) |
|||
} |
|||
|
|||
$.fn.tab.Constructor = Tab |
|||
|
|||
|
|||
/* TAB NO CONFLICT |
|||
* =============== */ |
|||
|
|||
$.fn.tab.noConflict = function () { |
|||
$.fn.tab = old |
|||
return this |
|||
} |
|||
|
|||
|
|||
/* TAB DATA-API |
|||
* ============ */ |
|||
|
|||
$(document).on('click.tab.data-api', '[data-toggle="tab"], [data-toggle="pill"]', function (e) { |
|||
e.preventDefault() |
|||
$(this).tab('show') |
|||
}) |
|||
|
|||
}(window.jQuery); |
@ -0,0 +1,361 @@ |
|||
/* =========================================================== |
|||
* bootstrap-tooltip.js v2.3.1 |
|||
* http://twitter.github.com/bootstrap/javascript.html#tooltips
|
|||
* Inspired by the original jQuery.tipsy by Jason Frame |
|||
* =========================================================== |
|||
* 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"; // jshint ;_;
|
|||
|
|||
|
|||
/* TOOLTIP PUBLIC CLASS DEFINITION |
|||
* =============================== */ |
|||
|
|||
var Tooltip = function (element, options) { |
|||
this.init('tooltip', element, options) |
|||
} |
|||
|
|||
Tooltip.prototype = { |
|||
|
|||
constructor: Tooltip |
|||
|
|||
, init: function (type, element, options) { |
|||
var eventIn |
|||
, eventOut |
|||
, triggers |
|||
, trigger |
|||
, i |
|||
|
|||