vendor/assets/javascripts/furatto.js in furatto-1.0.0 vs vendor/assets/javascripts/furatto.js in furatto-1.0.1
- old
+ new
@@ -1,1822 +1,9 @@
-/*!
- * Furatto v3.0.0 (http://icalialabs.github.io/furatto/)
- * Copyright 2014-2014 Icalia Labs
- * Licensed under MIT (https://github.com/IcaliaLabs/furatto/blob/master/LICENSE)
- */
-
-/*!
- * Furatto v3.0.0 (http://icalialabs.github.io/furatto/)
- * Copyright 2014-2014 Icalia Labs
- * Licensed under MIT (https://github.com/IcaliaLabs/furatto/blob/master/LICENSE)
- */
-window.Furatto = {
- name: 'Furatto',
- version: '1.0.0'
-};
-
-$('.alert .close').each(function() {
- return $(this).click(function(e) {
- e.preventDefault();
- return $(this).parent().fadeOut();
- });
-});
-
-var __bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; };
-
-(function($, window) {
- Furatto.Modal = (function() {
- function Modal(el, options) {
- this.hideOnDocumentClick = __bind(this.hideOnDocumentClick, this);
- this.hideOnEsc = __bind(this.hideOnEsc, this);
- this.show = __bind(this.show, this);
- this.init = __bind(this.init, this);
- this.options = $.extend({}, options);
- this.$el = $(el);
- this.modal = $(this.$el.data('target'));
- this.close = this.modal.find('.modal-close');
- this.transition = this.$el.data('transition') || "1";
- this.theme = this.$el.data('theme') || "default";
- this.modal.addClass("modal-effect-" + this.transition);
- this.modal.addClass("" + this.theme);
- }
-
- Modal.prototype.init = function() {
- var _this = this;
- this.$el.click(this.show);
- return this.close.click(function(ev) {
- ev.stopPropagation();
- return _this.hide();
- });
- };
-
- Modal.prototype.show = function(ev) {
- if (this.$el.is('div')) {
- this.$el.addClass('modal-show');
- } else {
- this.modal.addClass('modal-show');
- }
- $('.modal-overlay').addClass('modal-show-overlay');
- $('body').bind('keyup', this.hideOnEsc);
- return $('body').bind('click', this.hideOnDocumentClick);
- };
-
- Modal.prototype.hideOnEsc = function(event) {
- if (event.keyCode === 27) {
- return this.hide();
- }
- };
-
- Modal.prototype.hideOnDocumentClick = function(event) {
- if ($(event.target).is('.modal-overlay')) {
- return this.hide();
- }
- };
-
- Modal.prototype.hide = function() {
- $('.modal-overlay').removeClass('modal-show-overlay');
- if (this.$el.is('div')) {
- this.$el.removeClass('modal-show');
- } else {
- this.modal.removeClass('modal-show');
- }
- $('body').unbind('keyup', this.hideOnEsc);
- return $('body').unbind('click', this.hideOnDocumentClick);
- };
-
- return Modal;
-
- })();
- $.fn.modal = function(option) {
- return this.each(function() {
- var $this, data, options;
- $this = $(this);
- data = $this.data('modal');
- options = $.extend({}, $this.data(), typeof option === 'object' && option);
- if (!data) {
- $this.data('modal', (data = new Furatto.Modal(this, options)));
- }
- if (typeof option === 'string') {
- return data[option]();
- }
- });
- };
- Furatto.Modal.version = "1.0.0";
- $(document).ready(function() {
- var elementToAppend;
- if ($('.off-screen').length > 0) {
- elementToAppend = $('.off-screen');
- } else {
- elementToAppend = $('body');
- }
- elementToAppend.append('<div class="modal-overlay"></div>');
- return $('[data-furatto="modal"]').each(function() {
- var modal;
- modal = $(this);
- return modal.modal('init');
- });
- });
- return $(document).on('click', '[data-furatto="modal"]', function(e) {
- var $this;
- $this = $(this);
- return $this.modal('init');
- });
-})(window.jQuery, window);
-
-var __bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; },
- __slice = [].slice;
-
(function($, window, document) {
- "use strict";
- var pluginName;
- pluginName = 'responsiveNavBar';
- Furatto.ResponsiveNavBar = (function() {
- function ResponsiveNavBar(el, a, options) {
- this.el = el;
- this.closeNavbar = __bind(this.closeNavbar, this);
- this.openNavbar = __bind(this.openNavbar, this);
- this.toggleNavbar = __bind(this.toggleNavbar, this);
- this._initEvents = __bind(this._initEvents, this);
- this.navbarElements = $('.navigation-bar ul:not(.brand-section)');
- this.$el = $(this.el);
- this._initEvents();
- }
+ var Furatto;
+ return Furatto = (function() {
+ function Furatto() {}
- ResponsiveNavBar.prototype._initEvents = function() {
- var _this = this;
- return $('.navigation-bar .menu-toggle').on('touchstart click', function(e) {
- e.preventDefault();
- return _this.toggleNavbar();
- });
- };
+ return Furatto;
- ResponsiveNavBar.prototype.toggleNavbar = function() {
- return this.$el.toggleClass('opened');
- };
-
- ResponsiveNavBar.prototype.openNavbar = function() {
- return this.$el.addClass('opened');
- };
-
- ResponsiveNavBar.prototype.closeNavbar = function() {
- return this.$el.removeClass('opened');
- };
-
- return ResponsiveNavBar;
-
})();
- $.fn[pluginName] = function(a, options) {
- var args, _;
- _ = arguments[0], args = 2 <= arguments.length ? __slice.call(arguments, 1) : [];
- return this.each(function() {
- var plugin;
- plugin = $.data(this, "plugin_" + pluginName);
- if (!plugin) {
- return $.data(this, "plugin_" + pluginName, new Furatto.ResponsiveNavBar(this, a, options));
- } else if ((plugin[_] != null) && $.type(plugin[_]) === 'function') {
- return plugin[_].apply(plugin, args);
- }
- });
- };
- $('.navigation-bar').responsiveNavBar();
- return Furatto.ResponsiveNavBar.version = "1.0.0";
-})(jQuery, window, document);
-
-var __bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; },
- __slice = [].slice;
-
-(function($, window, document) {
- "use strict";
- var closest, defaults, getLevelDepth, hasParent, isFromMobile, pluginName;
- pluginName = 'offScreen';
- defaults = {
- type: 'overlap',
- levelSpacing: 40,
- backClass: 'navigation-back'
- };
- getLevelDepth = function(level, id, waypoint, cnt) {
- if (cnt == null) {
- cnt = 0;
- }
- if (level.id.indexOf(id) >= 0) {
- return cnt;
- }
- if ($(level).hasClass(waypoint)) {
- ++cnt;
- }
- return level.parentNode && getLevelDepth(level.parentNode, id, waypoint, cnt);
- };
- hasParent = function(e, id) {
- var el;
- if (!e) {
- return false;
- }
- el = e.target || e.srcElement || e || false;
- while (el && el.id !== id) {
- el = el.parentNode || false;
- }
- return el !== false;
- };
- closest = function(e, classname) {
- if ($(e).hasClass(classname)) {
- return e;
- }
- return e.parentNode && closest(e.parentNode, classname);
- };
- isFromMobile = function() {
- var check;
- check = false;
- (function(a) {
- if (/(android|ipad|playbook|silk|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i.test(a) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(a.substr(0, 4))) {
- return check = true;
- }
- })(navigator.userAgent || navigator.vendor || window.opera);
- return check;
- };
- Furatto.OffScreen = (function() {
- function OffScreen(el, a, options) {
- this.el = el;
- this.openMenu = __bind(this.openMenu, this);
- this._closeMenu = __bind(this._closeMenu, this);
- this.resetMenu = __bind(this.resetMenu, this);
- this._setupLevelBack = __bind(this._setupLevelBack, this);
- this._setupLevelsClosing = __bind(this._setupLevelsClosing, this);
- this._hideOnEsc = __bind(this._hideOnEsc, this);
- this._setupMenuItems = __bind(this._setupMenuItems, this);
- this._bindEvents = __bind(this._bindEvents, this);
- this._shouldPreventOffScreenMenuFromOpening = __bind(this._shouldPreventOffScreenMenuFromOpening, this);
- this.options = $.extend({}, defaults, options);
- this.open = false;
- this.level = 0;
- this.wrapper = document.getElementById('off-screen');
- this.levels = Array.prototype.slice.call(this.el.querySelectorAll('div.off-screen-level'));
- this._setLevels();
- this.menuItems = Array.prototype.slice.call(this.el.querySelectorAll('li'));
- this.levelBack = Array.prototype.slice.call(this.el.querySelectorAll('.navigation-back'));
- this.eventType = isFromMobile() ? 'touchstart' : 'click';
- $(this.el).addClass("off-screen-" + this.options.type);
- this.trigger = $('#trigger');
- this._bindEvents();
- this._shouldPreventOffScreenMenuFromOpening();
- }
-
- OffScreen.prototype._setLevels = function() {
- var level, _i, _len, _ref, _results;
- _ref = this.levels;
- _results = [];
- for (_i = 0, _len = _ref.length; _i < _len; _i++) {
- level = _ref[_i];
- _results.push(level.setAttribute('data-level', getLevelDepth(level, this.el.id, 'off-screen-level')));
- }
- return _results;
- };
-
- OffScreen.prototype._shouldPreventOffScreenMenuFromOpening = function() {
- var _this = this;
- if ($(window).width() > 768) {
- this.trigger.unbind(this.eventType);
- }
- return $(window).resize(function() {
- if ($(window).width() > 768) {
- return _this.trigger.unbind(_this.eventType, _this.resetMenu);
- } else {
- return _this.trigger.bind(_this.eventType, function(event) {
- event.stopPropagation();
- event.preventDefault();
- if (_this.open) {
- return _this.resetMenu();
- } else {
- _this.openMenu();
- return document.addEventListener(_this.eventType, function(event) {
- if (_this.open && !hasParent(event.target, _this.el.id)) {
- return bodyClickBinding(document);
- }
- });
- }
- });
- }
- });
- };
-
- OffScreen.prototype._bindEvents = function() {
- var bodyClickBinding,
- _this = this;
- bodyClickBinding = function(el) {
- _this.resetMenu();
- return el.removeEventListener(_this.eventType, bodyClickBinding);
- };
- this.trigger.bind(this.eventType, function(event) {
- event.stopPropagation();
- event.preventDefault();
- if (_this.open) {
- return _this.resetMenu();
- } else {
- _this.openMenu();
- return document.addEventListener(_this.eventType, function(event) {
- if (_this.open && !hasParent(event.target, _this.el.id)) {
- return bodyClickBinding(document);
- }
- });
- }
- });
- this._setupMenuItems();
- this._setupLevelsClosing();
- return this._setupLevelBack();
- };
-
- OffScreen.prototype._setupMenuItems = function() {
- var _this = this;
- return this.menuItems.forEach(function(el, i) {
- var subLevel;
- subLevel = el.querySelector('div.off-screen-level');
- if (subLevel) {
- return el.querySelector('a').addEventListener(_this.eventType, function(event) {
- var level;
- event.preventDefault();
- level = closest(el, 'off-screen-level').getAttribute('data-level');
- if (_this.level <= level) {
- event.stopPropagation();
- $(closest(el, 'off-screen-level')).addClass('off-screen-level-overlay');
- return _this.openMenu(subLevel);
- }
- });
- }
- });
- };
-
- OffScreen.prototype._hideOnEsc = function(event) {
- if (event.keyCode === 27) {
- return this.resetMenu();
- }
- };
-
- OffScreen.prototype._setupLevelsClosing = function() {
- var levelEl, _i, _len, _ref, _results;
- _ref = this.levels;
- _results = [];
- for (_i = 0, _len = _ref.length; _i < _len; _i++) {
- levelEl = _ref[_i];
- _results.push(levelEl.addEventListener(this.eventType, function(event) {
- var level;
- event.stopPropagation();
- level = levelEl.getAttribute('data-level');
- if (this.level > level) {
- this.level = level;
- return this._closeMenu();
- }
- }));
- }
- return _results;
- };
-
- OffScreen.prototype._setupLevelBack = function() {
- var _this = this;
- return this.levelBack.forEach(function(el, i) {
- return el.addEventListener(_this.eventType, function(event) {
- var level;
- event.preventDefault();
- level = closest(el, 'off-screen-level').getAttribute('data-level');
- if (_this.level <= level) {
- event.stopPropagation();
- _this.level = closest(el, 'off-screen-level').getAttribute('data-level') - 1;
- if (_this.level === 0) {
- return _this.resetMenu();
- } else {
- return _this._closeMenu();
- }
- }
- });
- });
- };
-
- OffScreen.prototype.resetMenu = function() {
- this._setTransform('translate3d(0,0,0)');
- this.level = 0;
- $(this.wrapper).removeClass('off-screen-pushed');
- this._toggleLevels();
- this.open = false;
- return $(document).unbind('keyup', this._hideOnEsc);
- };
-
- OffScreen.prototype._closeMenu = function() {
- var translateVal;
- translateVal = this.options.type === 'overlap' ? this.el.offsetWidth + (this.level - 1) * this.options.levelSpacing : this.el.offsetWidth;
- this._setTransform("translate3d(" + translateVal + "px, 0, 0");
- return this._toggleLevels();
- };
-
- OffScreen.prototype.openMenu = function(subLevel) {
- var level, levelFactor, translateVal, _i, _len, _ref;
- ++this.level;
- levelFactor = (this.level - 1) * this.options.levelSpacing;
- translateVal = this.options.type === 'overlap' ? this.el.offsetWidth + levelFactor : this.el.offsetWidth;
- this._setTransform('translate3d(' + translateVal + 'px,0,0)');
- if (subLevel) {
- this._setTransform('', subLevel);
- _ref = this.levels;
- for (_i = 0, _len = _ref.length; _i < _len; _i++) {
- level = _ref[_i];
- if (level !== subLevel && !$(level).hasClass('off-screen-level-open')) {
- this._setTransform("translate3d(-100%, 0, 0) translate3d(" + (-1 * levelFactor) + "px, 0, 0)", $(level));
- }
- }
- }
- if (this.level === 1) {
- $(this.wrapper).addClass('off-screen-pushed');
- this.open = true;
- }
- if (subLevel) {
- $(subLevel).addClass('off-screen-level-open');
- } else {
- $(this.levels[0]).addClass('off-screen-level-open');
- }
- return $(document).bind('keyup', this._hideOnEsc);
- };
-
- OffScreen.prototype._toggleLevels = function() {
- var level, _i, _len, _ref, _results;
- _ref = this.levels;
- _results = [];
- for (_i = 0, _len = _ref.length; _i < _len; _i++) {
- level = _ref[_i];
- if (level.getAttribute('data-level') >= this.level + 1) {
- $(level).removeClass('off-screen-level-open');
- _results.push($(level).removeClass('off-screen-level-overlay'));
- } else if (Number(level.getAttribute('data-level') === this.level)) {
- _results.push($(level).removeClass('off-screen-level-overlay'));
- } else {
- _results.push(void 0);
- }
- }
- return _results;
- };
-
- OffScreen.prototype._setTransform = function(value, element) {
- if (element == null) {
- element = this.wrapper;
- }
- return $(element).css({
- '-webkit-transform': value,
- '-moz-transform': value,
- '-o-transform': value,
- 'transform': value
- });
- };
-
- return OffScreen;
-
- })();
- $.fn[pluginName] = function(a, options) {
- var args, _;
- _ = arguments[0], args = 2 <= arguments.length ? __slice.call(arguments, 1) : [];
- return this.each(function() {
- var plugin;
- plugin = $.data(this, "plugin_" + pluginName);
- if (!plugin) {
- return $.data(this, "plugin_" + pluginName, new Furatto.OffScreen(this, a, options));
- } else if ((plugin[_] != null) && $.type(plugin[_]) === 'function') {
- return plugin[_].apply(plugin, args);
- }
- });
- };
- $('.off-screen-navigation').offScreen();
- $(document).click(function() {
- return $('.off-screen-navigation').offScreen('resetMenu');
- });
- return Furatto.OffScreen.version = "1.0.0";
-})(jQuery, window, document);
-
-var __bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; },
- __slice = [].slice;
-
-(function($, window, document) {
- "use strict";
- var defaults, pluginName;
- pluginName = "responsiveTables";
- defaults = {
- widthToCollapse: 768
- };
- Furatto.ResponsiveTables = (function() {
- function ResponsiveTables(el, a, options) {
- this.el = el;
- this._setCellHeights = __bind(this._setCellHeights, this);
- this._unsplitTable = __bind(this._unsplitTable, this);
- this._splitTable = __bind(this._splitTable, this);
- this._updateTables = __bind(this._updateTables, this);
- this._initResponsiveTables = __bind(this._initResponsiveTables, this);
- this.options = $.extend({}, defaults, options);
- this.$el = $(this.el);
- this.switched = false;
- this._initResponsiveTables();
- }
-
- ResponsiveTables.prototype._initResponsiveTables = function() {
- var _this = this;
- $(window).on('load', this._updateTables);
- $(window).on('redraw', function() {
- _this.switched = false;
- return _this._updateTables();
- });
- return $(window).on('resize', this._updateTables);
- };
-
- ResponsiveTables.prototype._updateTables = function() {
- var _this = this;
- console.log(this.options.widthToCollapse);
- if ($(window).width() <= this.options.widthToCollapse && !this.switched) {
- this.switched = true;
- this.$el.each(function(i, element) {
- return _this._splitTable($(element));
- });
- return true;
- } else if (this.switched && $(window).width() > this.options.widthToCollapse) {
- this.switched = false;
- return this.$el.each(function(i, element) {
- return _this._unsplitTable($(element));
- });
- }
- };
-
- ResponsiveTables.prototype._splitTable = function(table) {
- var tableClone;
- table.wrap("<div class='table-wrapper' />");
- tableClone = table.clone();
- tableClone.find("td:not(:first-child), th:not(:first-child)").css("display", "none");
- tableClone.removeClass("responsive");
- table.closest(".table-wrapper").append(tableClone);
- tableClone.wrap("<div class='pinned' />");
- table.wrap("<div class='scrollable' />");
- return this._setCellHeights(table, tableClone);
- };
-
- ResponsiveTables.prototype._unsplitTable = function(table) {
- table.closest(".table-wrapper").find(".pinned").remove();
- table.unwrap();
- return table.unwrap();
- };
-
- ResponsiveTables.prototype._setCellHeights = function(table, tableClone) {
- var heights, tableRows, tableRowsCopy;
- tableRows = table.find('tr');
- tableRowsCopy = tableClone.find('tr');
- heights = [];
- tableRows.each(function(index) {
- var self, tableHeadersAndData;
- self = $(this);
- tableHeadersAndData = self.find('th, td');
- return tableHeadersAndData.each(function() {
- var height;
- height = $(this).outerHeight(true);
- heights[index] = heights[index] || 0;
- if (height > heights[index]) {
- return heights[index] = height;
- }
- });
- });
- return tableRowsCopy.each(function(index) {
- return $(this).height(heights[index]);
- });
- };
-
- return ResponsiveTables;
-
- })();
- $.fn[pluginName] = function(a, options) {
- var args, _;
- _ = arguments[0], args = 2 <= arguments.length ? __slice.call(arguments, 1) : [];
- return this.each(function() {
- var plugin;
- plugin = $.data(this, "plugin_" + pluginName);
- if (!plugin) {
- return $.data(this, "plugin_" + pluginName, new Furatto.ResponsiveTables(this, a, options));
- } else if ((plugin[_] != null) && $.type(plugin[_]) === 'function') {
- return plugin[_].apply(plugin, args);
- }
- });
- };
- Furatto.ResponsiveTables.version = "1.0.0";
- return $(document).ready(function() {
- return $('table.responsive').responsiveTables();
- });
})($, window, document);
-
-var __bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; },
- __slice = [].slice;
-
-(function($, window, document) {
- "use strict";
- var defaults, pluginName;
- pluginName = 'suraido';
- defaults = {
- speed: 500,
- delay: 3000,
- pause: false,
- loop: false,
- enableKeys: true,
- enableDots: true,
- enableArrows: true,
- prev: '«',
- next: '»',
- fluid: true,
- starting: false,
- completed: false,
- easing: 'swing',
- autoplay: false,
- paginationClass: 'pagination',
- paginationItemClass: 'dot',
- arrowsClass: 'arrows',
- arrowClass: 'arrow'
- };
- Furatto.Suraido = (function() {
- function Suraido(el, options) {
- var weakSelf,
- _this = this;
- this.el = el;
- this.prev = __bind(this.prev, this);
- this.next = __bind(this.next, this);
- this.stop = __bind(this.stop, this);
- this.play = __bind(this.play, this);
- this.to = __bind(this.to, this);
- this._createArrows = __bind(this._createArrows, this);
- this._createPagination = __bind(this._createPagination, this);
- this._enableBindKeys = __bind(this._enableBindKeys, this);
- this._enablesFluidBehavior = __bind(this._enablesFluidBehavior, this);
- this._enablesAutoPlay = __bind(this._enablesAutoPlay, this);
- this._setsMainElement = __bind(this._setsMainElement, this);
- this._setsItems = __bind(this._setsItems, this);
- this.$el = $(this.el);
- this.options = $.extend({}, defaults, options);
- this.itemsWrapper = this.$el.find('>ul');
- this.maxSize = {
- width: this.$el.outerWidth() | 0,
- height: this.$el.outerHeight() | 0
- };
- weakSelf = this;
- this.items = $(this.itemsWrapper).find('>li').each(function(index) {
- var $this, height, width;
- $this = $(this);
- width = $this.outerWidth();
- height = $this.outerHeight();
- if (width > weakSelf.maxSize.width) {
- weakSelf.maxSize.width = width;
- }
- if (height > weakSelf.maxSize.height) {
- return weakSelf.maxSize.height = height;
- }
- });
- this.itemsLength = this.items.length;
- this.currentItemIndex = 0;
- this.items.find('.caption').css({
- width: "" + (100 / this.itemsLength) + "%"
- });
- this._setsMainElement();
- this.itemsWrapper.css({
- position: "relative",
- left: 0,
- width: "" + (this.itemsLength * 100) + "%"
- });
- this._setsItems();
- if (this.options.autoplay) {
- this._enablesAutoPlay();
- }
- if (this.options.enableKeys) {
- this._enableBindKeys();
- }
- this.options.enableDots && this._createPagination();
- this.options.enableArrows && this._createArrows();
- if (this.options.fluid) {
- this._enablesFluidBehavior();
- }
- if (window.chrome) {
- this.items.css('background-size', '100% 100%');
- }
- if ($.event.special['swipe'] || $.Event('swipe')) {
- this.$el.on('swipeleft swiperight swipeLeft swipeRight', function(e) {
- if (e.type.toLowerCase() === 'swipeleft') {
- return _this.next();
- } else {
- return _this.prev();
- }
- });
- }
- }
-
- Suraido.prototype._setsItems = function() {
- return this.items.css({
- float: 'left',
- width: "" + (100 / this.itemsLength) + "%"
- });
- };
-
- Suraido.prototype._setsMainElement = function() {
- return this.$el.css({
- width: this.maxSize.width,
- height: this.items.first().outerHeight(),
- overflow: 'hidden'
- });
- };
-
- Suraido.prototype._enablesAutoPlay = function() {
- var _this = this;
- return setTimeout(function() {
- if (_this.options.delay | 0) {
- _this.play();
- if (_this.options.pause) {
- return _this.$el.on('mouseover, mouseout', function(event) {
- _this.stop();
- return event.type === 'mouseout' && _this.play();
- });
- }
- }
- }, this.options.autoPlayDelay | 0);
- };
-
- Suraido.prototype._enablesFluidBehavior = function() {
- var _this = this;
- return $(window).resize(function() {
- _this.resize && clearTimeout(_this.resize);
- return _this.resize = setTimeout(function() {
- var style, width;
- style = {
- height: _this.items.eq(_this.currentItemIndex).outerHeight() + 30
- };
- width = _this.$el.outerWidth();
- _this.itemsWrapper.css(style);
- style['width'] = "" + (Math.min(Math.round((width / _this.$el.parent().width()) * 100), 100)) + "%";
- return _this.$el.css(style, 50);
- });
- }).resize();
- };
-
- Suraido.prototype._enableBindKeys = function() {
- var _this = this;
- return $(document).on('keydown', function(event) {
- switch (event.which) {
- case 37:
- return _this.prev();
- case 39:
- return _this.next();
- case 27 || 32:
- return _this.stop();
- }
- });
- };
-
- Suraido.prototype._createPagination = function() {
- var html,
- _this = this;
- html = "<ol class='" + this.options.paginationClass + "'>";
- $.each(this.items, function(index) {
- return html += "<li class='" + (index === _this.currentItemIndex ? _this.options.paginationItemClass + ' active' : _this.options.paginationItemClass) + "'> " + (++index) + "</li>";
- });
- html += "</ol>";
- return this._bindPagination(this.options.paginationClass, this.options.paginationItemClass, html);
- };
-
- Suraido.prototype._createArrows = function() {
- var html;
- html = "<div class=\"";
- html = html + this.options.arrowsClass + "\">" + html + this.options.arrowClass + " prev\">" + this.options.prev + "</div>" + html + this.options.arrowClass + " next\">" + this.options.next + "</div></div>";
- return this._bindPagination(this.options.arrowsClass, this.options.arrowClass, html);
- };
-
- Suraido.prototype._bindPagination = function(className, itemClassName, html) {
- var weakSelf;
- weakSelf = this;
- return this.$el.addClass("has-" + className).append(html).find("." + itemClassName).click(function() {
- var $this;
- $this = $(this);
- if ($this.hasClass(weakSelf.options.paginationItemClass)) {
- return weakSelf.stop().to($this.index());
- } else if ($this.hasClass('prev')) {
- return weakSelf.prev();
- } else {
- return weakSelf.next();
- }
- });
- };
-
- Suraido.prototype.to = function(index, callback) {
- var easing, obj, speed, target,
- _this = this;
- if (this.t) {
- this.stop();
- this.play();
- }
- target = this.items.eq(index);
- $.isFunction(this.options.starting) && !callback && this.options.starting(this.$el, this.items.eq(this.currentItemIndex));
- if (!(target.length || index < 0) && this.options.loop === false) {
- return;
- }
- if (index < 0) {
- index = this.items.length - 1;
- }
- speed = callback ? 5 : this.options.speed | 0;
- easing = this.options.easing;
- obj = {
- height: target.outerHeight() + 30
- };
- if (!this.itemsWrapper.queue('fx').length) {
- this.$el.find("." + this.options.paginationItemClass).eq(index).addClass('active').siblings().removeClass('active');
- return this.$el.animate(obj, speed, easing) && this.itemsWrapper.animate($.extend({
- left: "-" + index + "00%"
- }, obj), speed, easing, function(data) {
- _this.currentItemIndex = index;
- return $.isFunction(_this.options.complete) && !callback && _this.options.complete(_this.el, target);
- });
- }
- };
-
- Suraido.prototype.play = function() {
- var _this = this;
- return this.t = setInterval(function() {
- return _this.to(_this.currentItemIndex + 1);
- }, this.options.delay | 0);
- };
-
- Suraido.prototype.stop = function() {
- this.t = clearInterval(this.t);
- return this;
- };
-
- Suraido.prototype.next = function() {
- if (this.currentItemIndex === (this.itemsLength - 1)) {
- return this.stop().to(0);
- } else {
- return this.stop().to(this.currentItemIndex + 1);
- }
- };
-
- Suraido.prototype.prev = function() {
- return this.stop().to(this.currentItemIndex - 1);
- };
-
- return Suraido;
-
- })();
- $.fn[pluginName] = function(options) {
- var args, sliders, _;
- sliders = this.length;
- _ = arguments[0], args = 2 <= arguments.length ? __slice.call(arguments, 1) : [];
- return this.each(function(index) {
- var instance, key, me, plugin;
- me = $(this);
- plugin = $.data(this, "plugin_" + pluginName);
- if (!plugin) {
- key = "suraido" + (sliders > 1 ? '-' + ++index : '');
- instance = new Furatto.Suraido(this, options);
- return me.data(key, instance).data('key', key);
- } else if ((plugin[_] != null) && $.type(plugin[_]) === 'function') {
- return plugin[_].apply(plugin, args);
- }
- });
- };
- Furatto.Suraido.version = "1.0.0";
- return $(document).ready(function() {
- return $('[data-suraido]').each(function() {
- return $(this).suraido();
- });
- });
-})($, window, document);
-
-/*
-Toolbar.js
-
-@fileoverview jQuery plugin that creates tooltip style toolbars.
-@link http://paulkinzett.github.com/toolbar/
-@author Paul Kinzett (http://kinzett.co.nz/)
-@version 1.0.4
-@requires jQuery 1.7+
-
-@license jQuery Toolbar Plugin v1.0.4
-http://paulkinzett.github.com/toolbar/
-Copyright 2013 Paul Kinzett (http://kinzett.co.nz/)
-Released under the MIT license.
-<https://raw.github.com/paulkinzett/toolbar/master/LICENSE.txt>
-*/
-
-if (typeof Object.create !== "function") {
- Object.create = function(obj) {
- var F;
- F = function() {};
- F.prototype = obj;
- return new F();
- };
-}
-
-(function($, window, document, undefined_) {
- var ToolBar;
- ToolBar = {
- init: function(options, elem) {
- var self;
- self = this;
- self.elem = elem;
- self.$elem = $(elem);
- self.options = $.extend({}, $.fn.toolbar.options, options);
- self.toolbar = $("<div class='tool-container gradient ' />").addClass("tool-" + self.options.position).addClass("tool-rounded").addClass(self.options.theme).append("<div class=\"tool-items\" />").append("<div class='arrow " + self.options.theme + "' />").appendTo("body").css("opacity", 0).hide();
- self.toolbar_arrow = self.toolbar.find(".arrow");
- return self.initializeToolbar();
- },
- initializeToolbar: function() {
- var self;
- self = this;
- self.populateContent();
- self.setTrigger();
- return self.toolbarWidth = self.toolbar.width();
- },
- setTrigger: function() {
- var self;
- self = this;
- self.$elem.on("click", function(event) {
- event.preventDefault();
- if (self.$elem.hasClass("pressed")) {
- return self.hide();
- } else {
- return self.show();
- }
- });
- if (self.options.hideOnClick) {
- $("html").on("click.toolbar", function(event) {
- if (event.target !== self.elem && self.$elem.has(event.target).length === 0 && self.toolbar.has(event.target).length === 0 && self.toolbar.is(":visible")) {
- return self.hide();
- }
- });
- }
- return $(window).resize(function(event) {
- event.stopPropagation();
- if (self.toolbar.is(":visible")) {
- self.toolbarCss = self.getCoordinates(self.options.position, 20);
- self.collisionDetection();
- self.toolbar.css(self.toolbarCss);
- return self.toolbar_arrow.css(self.arrowCss);
- }
- });
- },
- populateContent: function() {
- var content, location, self;
- self = this;
- location = self.toolbar.find(".tool-items");
- content = $(self.options.content).clone(true).find("a").addClass("tool-item gradient").addClass(self.options.theme);
- location.html(content);
- return location.find(".tool-item").on("click", function(event) {
- event.preventDefault();
- return self.$elem.trigger("toolbarItemClick", this);
- });
- },
- calculatePosition: function() {
- var self;
- self = this;
- self.arrowCss = {};
- self.toolbarCss = self.getCoordinates(self.options.position, 0);
- self.toolbarCss.position = "absolute";
- self.toolbarCss.zIndex = self.options.zIndex;
- self.collisionDetection();
- self.toolbar.css(self.toolbarCss);
- return self.toolbar_arrow.css(self.arrowCss);
- },
- getCoordinates: function(position, adjustment) {
- var self;
- self = this;
- self.coordinates = self.$elem.offset();
- if (self.options.adjustment && self.options.adjustment[self.options.position]) {
- adjustment = self.options.adjustment[self.options.position];
- }
- switch (self.options.position) {
- case "top":
- return {
- left: self.coordinates.left - (self.toolbar.width() / 2) + (self.$elem.outerWidth() / 2),
- top: self.coordinates.top - self.$elem.height() - adjustment,
- right: "auto"
- };
- case "left":
- return {
- left: self.coordinates.left - (self.toolbar.width() / 2) - (self.$elem.width() / 2) - adjustment,
- top: self.coordinates.top - (self.toolbar.height() / 2) + (self.$elem.outerHeight() / 2),
- right: "auto"
- };
- case "right":
- return {
- left: self.coordinates.left + (self.toolbar.width() / 2) + (self.$elem.width() / 3) + adjustment,
- top: self.coordinates.top - (self.toolbar.height() / 2) + (self.$elem.outerHeight() / 2),
- right: "auto"
- };
- case "bottom":
- return {
- left: self.coordinates.left - (self.toolbar.width() / 2) + (self.$elem.outerWidth() / 2),
- top: self.coordinates.top + self.$elem.height() + adjustment,
- right: "auto"
- };
- }
- },
- collisionDetection: function() {
- var edgeOffset, self;
- self = this;
- edgeOffset = 20;
- if (self.options.position === "top" || self.options.position === "bottom") {
- self.arrowCss = {
- left: "50%",
- right: "50%"
- };
- if (self.toolbarCss.left < edgeOffset) {
- self.toolbarCss.left = edgeOffset;
- return self.arrowCss.left = self.$elem.offset().left + self.$elem.width() / 2 - edgeOffset;
- } else if (($(window).width() - (self.toolbarCss.left + self.toolbarWidth)) < edgeOffset) {
- self.toolbarCss.right = edgeOffset;
- self.toolbarCss.left = "auto";
- self.arrowCss.left = "auto";
- return self.arrowCss.right = ($(window).width() - self.$elem.offset().left) - (self.$elem.width() / 2) - edgeOffset - 5;
- }
- }
- },
- show: function() {
- var animation, self;
- self = this;
- animation = {
- opacity: 1
- };
- self.$elem.addClass("pressed");
- self.calculatePosition();
- switch (self.options.position) {
- case "top":
- animation.top = "-=20";
- break;
- case "left":
- animation.left = "-=20";
- break;
- case "right":
- animation.left = "+=20";
- break;
- case "bottom":
- animation.top = "+=20";
- }
- self.toolbar.show().animate(animation, 200);
- return self.$elem.trigger("toolbarShown");
- },
- hide: function() {
- var animation, self;
- self = this;
- animation = {
- opacity: 0
- };
- self.$elem.removeClass("pressed");
- switch (self.options.position) {
- case "top":
- animation.top = "+=20";
- break;
- case "left":
- animation.left = "+=20";
- break;
- case "right":
- animation.left = "-=20";
- break;
- case "bottom":
- animation.top = "-=20";
- }
- self.toolbar.animate(animation, 200, function() {
- return self.toolbar.hide();
- });
- return self.$elem.trigger("toolbarHidden");
- },
- getToolbarElement: function() {
- return this.toolbar.find(".tool-items");
- }
- };
- $.fn.toolbar = function(options) {
- var method, toolbarObj;
- if ($.isPlainObject(options)) {
- return this.each(function() {
- var toolbarObj;
- toolbarObj = Object.create(ToolBar);
- toolbarObj.init(options, this);
- return $(this).data("toolbarObj", toolbarObj);
- });
- } else if (typeof options === "string" && options.indexOf("_") !== 0) {
- toolbarObj = $(this).data("toolbarObj");
- method = toolbarObj[options];
- return method.apply(toolbarObj, $.makeArray(arguments_).slice(1));
- }
- };
- $.fn.toolbar.options = {
- content: "#myContent",
- position: "top",
- hideOnClick: false,
- zIndex: 120,
- theme: ""
- };
- return $(document).ready(function() {
- return $('[data-furatto="toolbar"]').each(function() {
- return $(this).toolbar({
- content: $(this).data('content'),
- position: $(this).data('position') || 'top',
- hideOnClick: true,
- theme: $(this).data('theme')
- });
- });
- });
-})(jQuery, window, document);
-
-var __bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; },
- __slice = [].slice;
-
-(function($, window, document) {
- var defaults, pluginName;
- pluginName = 'tabu';
- defaults = {
- startIndex: 0,
- tabContentClass: 'tabu-content',
- tabContentsClass: 'content'
- };
- Furatto.Tabu = (function() {
- function Tabu(el, options) {
- this.el = el;
- this._toggle = __bind(this._toggle, this);
- this._setActiveElements = __bind(this._setActiveElements, this);
- this._preventsIndexOutofBounds = __bind(this._preventsIndexOutofBounds, this);
- this.$el = $(this.el);
- this.options = $.extend(defaults, options, this.$el.data());
- this.tabItems = this.$el.find('li');
- this.tabItemsLength = this.tabItems.length;
- this.tabContents = this.$el.next("." + this.options.tabContentClass).find(">." + this.options.tabContentsClass);
- this._preventsIndexOutofBounds();
- this._setActiveElements();
- this._toggle();
- }
-
- Tabu.prototype._preventsIndexOutofBounds = function() {
- if (this.options.startIndex >= this.tabItemsLength) {
- return this.options.startIndex = this.tabItemsLength - 1;
- }
- };
-
- Tabu.prototype._setActiveElements = function() {
- $(this.tabItems[this.options.startIndex]).addClass('active');
- return $(this.tabContents[this.options.startIndex]).addClass('active');
- };
-
- Tabu.prototype._toggle = function() {
- var weakSelf;
- weakSelf = this;
- return this.tabItems.on('touchstart click', function(event) {
- var id;
- event.preventDefault();
- weakSelf.tabItems.removeClass('active');
- $(this).addClass('active');
- weakSelf.tabContents.removeClass('active');
- id = $(this).find('a').attr('href');
- return $(id).addClass('active');
- });
- };
-
- return Tabu;
-
- })();
- $.fn[pluginName] = function(options) {
- var args, tabsLength, _;
- tabsLength = this.length;
- _ = arguments[0], args = 2 <= arguments.length ? __slice.call(arguments, 1) : [];
- return this.each(function(index) {
- var instance, key, me, plugin;
- me = $(this);
- plugin = $.data(this, "plugin_" + pluginName);
- if (!plugin) {
- key = "tabu" + (tabsLength > 1 ? '-' + ++index : '');
- instance = new Furatto.Tabu(this, options);
- return me.data(key, instance).data('key', key);
- } else if ((plugin[_] != null) && $.type(plugin[_]) === 'function') {
- return plugin[_].apply(plugin, args);
- }
- });
- };
- Furatto.Tabu.version = "1.0.0";
- return $(document).ready(function() {
- return $('[data-tabu]').each(function() {
- return $(this).tabu();
- });
- });
-})($, window, document);
-
-/* ===========================================================
- * bootstrap-tooltip.js v2.3.0
- * 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
-
- this.type = type
- this.$element = $(element)
- this.options = this.getOptions(options)
- this.enabled = true
-
- triggers = this.options.trigger.split(' ')
-
- for (i = triggers.length; i--;) {
- trigger = triggers[i]
- if (trigger == 'click') {
- this.$element.on('click.' + this.type, this.options.selector, $.proxy(this.toggle, this))
- } else if (trigger != 'manual') {
- eventIn = trigger == 'hover' ? 'mouseenter' : 'focus'
- eventOut = 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, this.$element.data(), options)
-
- if (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() {
- 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 (this.timeout) clearTimeout(this.timeout)
- if (!self.options.delay || !self.options.delay.hide) return self.hide()
-
- self.hoverState = 'out'
- this.timeout = setTimeout(function() {
- if (self.hoverState == 'out') self.hide()
- }, self.options.delay.hide)
- }
-
- , show: function () {
- var $tip
- , pos
- , actualWidth
- , actualHeight
- , placement
- , tp
- , e = $.Event('show')
-
- if (this.hasContent() && this.enabled) {
- this.$element.trigger(e)
- if (e.isDefaultPrevented()) return
- $tip = this.tip()
- this.setContent()
-
- if (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
-
- $tip
- .detach()
- .css({ top: 0, left: 0, display: 'block' })
-
- this.options.container ? $tip.appendTo(this.options.container) : $tip.insertAfter(this.$element)
-
- pos = this.getPosition()
-
- actualWidth = $tip[0].offsetWidth
- actualHeight = $tip[0].offsetHeight
-
- switch (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}
- break
- }
-
- this.applyPlacement(tp, placement)
- this.$element.trigger('shown')
- }
- }
-
- , applyPlacement: function(offset, placement){
- var $tip = this.tip()
- , width = $tip[0].offsetWidth
- , height = $tip[0].offsetHeight
- , actualWidth
- , actualHeight
- , delta
- , replace
-
- $tip
- .offset(offset)
- .addClass(placement)
- .addClass('in')
-
- actualWidth = $tip[0].offsetWidth
- actualHeight = $tip[0].offsetHeight
-
- if (placement == 'top' && actualHeight != height) {
- offset.top = offset.top + height - actualHeight
- replace = true
- }
-
- if (placement == 'bottom' || placement == 'top') {
- delta = 0
-
- if (offset.left < 0){
- delta = offset.left * -2
- offset.left = 0
- $tip.offset(offset)
- actualWidth = $tip[0].offsetWidth
- actualHeight = $tip[0].offsetHeight
- }
-
- this.replaceArrow(delta - width + actualWidth, actualWidth, 'left')
- } else {
- this.replaceArrow(actualHeight - height, actualHeight, 'top')
- }
-
- if (replace) $tip.offset(offset)
- }
-
- , replaceArrow: function(delta, dimension, position){
- this
- .arrow()
- .css(position, delta ? (50 * (1 - delta / dimension) + "%") : '')
- }
-
- , 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 () {
- var that = this
- , $tip = this.tip()
- , e = $.Event('hide')
-
- this.$element.trigger(e)
- if (e.isDefaultPrevented()) return
-
- $tip.removeClass('in')
-
- function removeWithAnimation() {
- var timeout = setTimeout(function () {
- $tip.off($.support.transition.end).detach()
- }, 500)
-
- $tip.one($.support.transition.end, function () {
- clearTimeout(timeout)
- $tip.detach()
- })
- }
-
- $.support.transition && this.$tip.hasClass('fade') ?
- removeWithAnimation() :
- $tip.detach()
-
- this.$element.trigger('hidden')
-
- return this
- }
-
- , fixTitle: function () {
- var $e = this.$element
- if ($e.attr('title') || typeof($e.attr('data-original-title')) != 'string') {
- $e.attr('data-original-title', $e.attr('title') || '').attr('title', '')
- }
- }
-
- , hasContent: function () {
- return this.getTitle()
- }
-
- , getPosition: function () {
- var el = this.$element[0]
- return $.extend({}, (typeof el.getBoundingClientRect == 'function') ? el.getBoundingClientRect() : {
- width: el.offsetWidth
- , height: el.offsetHeight
- }, this.$element.offset())
- }
-
- , 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)
- }
-
- , arrow: function(){
- return this.$arrow = this.$arrow || this.tip().find(".tooltip-arrow")
- }
-
- , validate: function () {
- if (!this.$element[0].parentNode) {
- this.hide()
- this.$element = null
- this.options = null
- }
- }
-
- , enable: function () {
- this.enabled = true
- }
-
- , disable: function () {
- this.enabled = false
- }
-
- , toggleEnabled: function () {
- this.enabled = !this.enabled
- }
-
- , toggle: function (e) {
- var self = e ? $(e.currentTarget)[this.type](this._options).data(this.type) : this
- self.tip().hasClass('in') ? self.hide() : self.show()
- }
-
- , destroy: function () {
- this.hide().$element.off('.' + this.type).removeData(this.type)
- }
-
- }
-
-
- /* TOOLTIP PLUGIN DEFINITION
- * ========================= */
-
- var old = $.fn.tooltip
-
- $.fn.tooltip = function ( option ) {
- return this.each(function () {
- var $this = $(this)
- , data = $this.data('tooltip')
- , options = typeof option == 'object' && option
- if (!data) $this.data('tooltip', (data = new Tooltip(this, options)))
- if (typeof option == 'string') data[option]()
- })
- }
-
- $.fn.tooltip.Constructor = Tooltip
-
- $.fn.tooltip.defaults = {
- animation: true
- , placement: 'top'
- , selector: false
- , template: '<div class="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>'
- , trigger: 'hover focus'
- , title: ''
- , delay: 0
- , html: false
- , container: false
- }
-
-
- /* TOOLTIP NO CONFLICT
- * =================== */
-
- $.fn.tooltip.noConflict = function () {
- $.fn.tooltip = old
- return this
- }
-
- $(document).on('ready', function(){
- $("[data-toggle=tooltip]").tooltip();
- });
-
-}(window.jQuery);
-
-/* ============================================================
- * bootstrap-dropdown.js v2.3.2
- * 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) {
- if ('ontouchstart' in document.documentElement) {
- // if mobile we we use a backdrop because click events don't delegate
- $('<div class="dropdown-backdrop"/>').insertBefore($(this)).on('click', clearMenus)
- }
- $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() {
- $('.dropdown-backdrop').remove()
- $(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.data-api' , toggle, Dropdown.prototype.toggle)
- .on('keydown.dropdown.data-api', toggle + ', [role=menu]' , Dropdown.prototype.keydown)
-
- $(document).ready(function() {
- $('.dropdown-toggle').dropdown();
-
- $('.dropdown input, .dropdown label').click(function(e){
- e.stopPropagation();
- });
- })
-
- $('.with-dropdown').on('touchstart click', function(e) {
- e.preventDefault();
- return $(this).toggleClass('opened');
- });
- return $('.with-dropdown').hover(function() {
- return $(this).addClass('opened');
- }, function() {
- return $(this).removeClass('opened');
- });
-
-}(window.jQuery);
-
-/*!
- * classie - class helper functions
- * from bonzo https://github.com/ded/bonzo
- *
- * classie.has( elem, 'my-class' ) -> true/false
- * classie.add( elem, 'my-new-class' )
- * classie.remove( elem, 'my-unwanted-class' )
- * classie.toggle( elem, 'my-class' )
- */
-
-/*jshint browser: true, strict: true, undef: true */
-/*global define: false */
-
-( function( window ) {
-
-'use strict';
-
-// class helper functions from bonzo https://github.com/ded/bonzo
-
-function classReg( className ) {
- return new RegExp("(^|\\s+)" + className + "(\\s+|$)");
-}
-
-// classList support for class management
-// altho to be fair, the api sucks because it won't accept multiple classes at once
-var hasClass, addClass, removeClass;
-
-if ( 'classList' in document.documentElement ) {
- hasClass = function( elem, c ) {
- return elem.classList.contains( c );
- };
- addClass = function( elem, c ) {
- elem.classList.add( c );
- };
- removeClass = function( elem, c ) {
- elem.classList.remove( c );
- };
-}
-else {
- hasClass = function( elem, c ) {
- return classReg( c ).test( elem.className );
- };
- addClass = function( elem, c ) {
- if ( !hasClass( elem, c ) ) {
- elem.className = elem.className + ' ' + c;
- }
- };
- removeClass = function( elem, c ) {
- elem.className = elem.className.replace( classReg( c ), ' ' );
- };
-}
-
-function toggleClass( elem, c ) {
- var fn = hasClass( elem, c ) ? removeClass : addClass;
- fn( elem, c );
-}
-
-var classie = {
- // full names
- hasClass: hasClass,
- addClass: addClass,
- removeClass: removeClass,
- toggleClass: toggleClass,
- // short names
- has: hasClass,
- add: addClass,
- remove: removeClass,
- toggle: toggleClass
-};
-
-// transport
-if ( typeof define === 'function' && define.amd ) {
- // AMD
- define( classie );
-} else {
- // browser global
- window.classie = classie;
-}
-
-})( window );