You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2015/08/25 01:01:06 UTC
[09/37] isis-site git commit: ISIS-1044: configuration properties to
disable visibility filtering
http://git-wip-us.apache.org/repos/asf/isis-site/blob/bea6c37a/content/js/foundation/5.5.1/foundation/foundation.orbit.js
----------------------------------------------------------------------
diff --git a/content/js/foundation/5.5.1/foundation/foundation.orbit.js b/content/js/foundation/5.5.1/foundation/foundation.orbit.js
index fb03f3d..cff126f 100644
--- a/content/js/foundation/5.5.1/foundation/foundation.orbit.js
+++ b/content/js/foundation/5.5.1/foundation/foundation.orbit.js
@@ -1,476 +1,476 @@
-;(function ($, window, document, undefined) {
- 'use strict';
-
- var noop = function () {};
-
- var Orbit = function (el, settings) {
- // Don't reinitialize plugin
- if (el.hasClass(settings.slides_container_class)) {
- return this;
- }
-
- var self = this,
- container,
- slides_container = el,
- number_container,
- bullets_container,
- timer_container,
- idx = 0,
- animate,
- timer,
- locked = false,
- adjust_height_after = false;
-
- self.slides = function () {
- return slides_container.children(settings.slide_selector);
- };
-
- self.slides().first().addClass(settings.active_slide_class);
-
- self.update_slide_number = function (index) {
- if (settings.slide_number) {
- number_container.find('span:first').text(parseInt(index) + 1);
- number_container.find('span:last').text(self.slides().length);
- }
- if (settings.bullets) {
- bullets_container.children().removeClass(settings.bullets_active_class);
- $(bullets_container.children().get(index)).addClass(settings.bullets_active_class);
- }
- };
-
- self.update_active_link = function (index) {
- var link = $('[data-orbit-link="' + self.slides().eq(index).attr('data-orbit-slide') + '"]');
- link.siblings().removeClass(settings.bullets_active_class);
- link.addClass(settings.bullets_active_class);
- };
-
- self.build_markup = function () {
- slides_container.wrap('<div class="' + settings.container_class + '"></div>');
- container = slides_container.parent();
- slides_container.addClass(settings.slides_container_class);
-
- if (settings.stack_on_small) {
- container.addClass(settings.stack_on_small_class);
- }
-
- if (settings.navigation_arrows) {
- container.append($('<a href="#"><span></span></a>').addClass(settings.prev_class));
- container.append($('<a href="#"><span></span></a>').addClass(settings.next_class));
- }
-
- if (settings.timer) {
- timer_container = $('<div>').addClass(settings.timer_container_class);
- timer_container.append('<span>');
- timer_container.append($('<div>').addClass(settings.timer_progress_class));
- timer_container.addClass(settings.timer_paused_class);
- container.append(timer_container);
- }
-
- if (settings.slide_number) {
- number_container = $('<div>').addClass(settings.slide_number_class);
- number_container.append('<span></span> ' + settings.slide_number_text + ' <span></span>');
- container.append(number_container);
- }
-
- if (settings.bullets) {
- bullets_container = $('<ol>').addClass(settings.bullets_container_class);
- container.append(bullets_container);
- bullets_container.wrap('<div class="orbit-bullets-container"></div>');
- self.slides().each(function (idx, el) {
- var bullet = $('<li>').attr('data-orbit-slide', idx).on('click', self.link_bullet);;
- bullets_container.append(bullet);
- });
- }
-
- };
-
- self._goto = function (next_idx, start_timer) {
- // if (locked) {return false;}
- if (next_idx === idx) {return false;}
- if (typeof timer === 'object') {timer.restart();}
- var slides = self.slides();
-
- var dir = 'next';
- locked = true;
- if (next_idx < idx) {dir = 'prev';}
- if (next_idx >= slides.length) {
- if (!settings.circular) {
- return false;
- }
- next_idx = 0;
- } else if (next_idx < 0) {
- if (!settings.circular) {
- return false;
- }
- next_idx = slides.length - 1;
- }
-
- var current = $(slides.get(idx));
- var next = $(slides.get(next_idx));
-
- current.css('zIndex', 2);
- current.removeClass(settings.active_slide_class);
- next.css('zIndex', 4).addClass(settings.active_slide_class);
-
- slides_container.trigger('before-slide-change.fndtn.orbit');
- settings.before_slide_change();
- self.update_active_link(next_idx);
-
- var callback = function () {
- var unlock = function () {
- idx = next_idx;
- locked = false;
- if (start_timer === true) {timer = self.create_timer(); timer.start();}
- self.update_slide_number(idx);
- slides_container.trigger('after-slide-change.fndtn.orbit', [{slide_number : idx, total_slides : slides.length}]);
- settings.after_slide_change(idx, slides.length);
- };
- if (slides_container.outerHeight() != next.outerHeight() && settings.variable_height) {
- slides_container.animate({'height': next.outerHeight()}, 250, 'linear', unlock);
- } else {
- unlock();
- }
- };
-
- if (slides.length === 1) {callback(); return false;}
-
- var start_animation = function () {
- if (dir === 'next') {animate.next(current, next, callback);}
- if (dir === 'prev') {animate.prev(current, next, callback);}
- };
-
- if (next.outerHeight() > slides_container.outerHeight() && settings.variable_height) {
- slides_container.animate({'height': next.outerHeight()}, 250, 'linear', start_animation);
- } else {
- start_animation();
- }
- };
-
- self.next = function (e) {
- e.stopImmediatePropagation();
- e.preventDefault();
- self._goto(idx + 1);
- };
-
- self.prev = function (e) {
- e.stopImmediatePropagation();
- e.preventDefault();
- self._goto(idx - 1);
- };
-
- self.link_custom = function (e) {
- e.preventDefault();
- var link = $(this).attr('data-orbit-link');
- if ((typeof link === 'string') && (link = $.trim(link)) != '') {
- var slide = container.find('[data-orbit-slide=' + link + ']');
- if (slide.index() != -1) {self._goto(slide.index());}
- }
- };
-
- self.link_bullet = function (e) {
- var index = $(this).attr('data-orbit-slide');
- if ((typeof index === 'string') && (index = $.trim(index)) != '') {
- if (isNaN(parseInt(index))) {
- var slide = container.find('[data-orbit-slide=' + index + ']');
- if (slide.index() != -1) {self._goto(slide.index() + 1);}
- } else {
- self._goto(parseInt(index));
- }
- }
-
- }
-
- self.timer_callback = function () {
- self._goto(idx + 1, true);
- }
-
- self.compute_dimensions = function () {
- var current = $(self.slides().get(idx));
- var h = current.outerHeight();
- if (!settings.variable_height) {
- self.slides().each(function(){
- if ($(this).outerHeight() > h) { h = $(this).outerHeight(); }
- });
- }
- slides_container.height(h);
- };
-
- self.create_timer = function () {
- var t = new Timer(
- container.find('.' + settings.timer_container_class),
- settings,
- self.timer_callback
- );
- return t;
- };
-
- self.stop_timer = function () {
- if (typeof timer === 'object') {
- timer.stop();
- }
- };
-
- self.toggle_timer = function () {
- var t = container.find('.' + settings.timer_container_class);
- if (t.hasClass(settings.timer_paused_class)) {
- if (typeof timer === 'undefined') {timer = self.create_timer();}
- timer.start();
- } else {
- if (typeof timer === 'object') {timer.stop();}
- }
- };
-
- self.init = function () {
- self.build_markup();
- if (settings.timer) {
- timer = self.create_timer();
- Foundation.utils.image_loaded(this.slides().children('img'), timer.start);
- }
- animate = new FadeAnimation(settings, slides_container);
- if (settings.animation === 'slide') {
- animate = new SlideAnimation(settings, slides_container);
- }
-
- container.on('click', '.' + settings.next_class, self.next);
- container.on('click', '.' + settings.prev_class, self.prev);
-
- if (settings.next_on_click) {
- container.on('click', '.' + settings.slides_container_class + ' [data-orbit-slide]', self.link_bullet);
- }
-
- container.on('click', self.toggle_timer);
- if (settings.swipe) {
- container.on('touchstart.fndtn.orbit', function (e) {
- if (!e.touches) {e = e.originalEvent;}
- var data = {
- start_page_x : e.touches[0].pageX,
- start_page_y : e.touches[0].pageY,
- start_time : (new Date()).getTime(),
- delta_x : 0,
- is_scrolling : undefined
- };
- container.data('swipe-transition', data);
- e.stopPropagation();
- })
- .on('touchmove.fndtn.orbit', function (e) {
- if (!e.touches) {
- e = e.originalEvent;
- }
- // Ignore pinch/zoom events
- if (e.touches.length > 1 || e.scale && e.scale !== 1) {
- return;
- }
-
- var data = container.data('swipe-transition');
- if (typeof data === 'undefined') {data = {};}
-
- data.delta_x = e.touches[0].pageX - data.start_page_x;
-
- if ( typeof data.is_scrolling === 'undefined') {
- data.is_scrolling = !!( data.is_scrolling || Math.abs(data.delta_x) < Math.abs(e.touches[0].pageY - data.start_page_y) );
- }
-
- if (!data.is_scrolling && !data.active) {
- e.preventDefault();
- var direction = (data.delta_x < 0) ? (idx + 1) : (idx - 1);
- data.active = true;
- self._goto(direction);
- }
- })
- .on('touchend.fndtn.orbit', function (e) {
- container.data('swipe-transition', {});
- e.stopPropagation();
- })
- }
- container.on('mouseenter.fndtn.orbit', function (e) {
- if (settings.timer && settings.pause_on_hover) {
- self.stop_timer();
- }
- })
- .on('mouseleave.fndtn.orbit', function (e) {
- if (settings.timer && settings.resume_on_mouseout) {
- timer.start();
- }
- });
-
- $(document).on('click', '[data-orbit-link]', self.link_custom);
- $(window).on('load resize', self.compute_dimensions);
- Foundation.utils.image_loaded(this.slides().children('img'), self.compute_dimensions);
- Foundation.utils.image_loaded(this.slides().children('img'), function () {
- container.prev('.' + settings.preloader_class).css('display', 'none');
- self.update_slide_number(0);
- self.update_active_link(0);
- slides_container.trigger('ready.fndtn.orbit');
- });
- };
-
- self.init();
- };
-
- var Timer = function (el, settings, callback) {
- var self = this,
- duration = settings.timer_speed,
- progress = el.find('.' + settings.timer_progress_class),
- start,
- timeout,
- left = -1;
-
- this.update_progress = function (w) {
- var new_progress = progress.clone();
- new_progress.attr('style', '');
- new_progress.css('width', w + '%');
- progress.replaceWith(new_progress);
- progress = new_progress;
- };
-
- this.restart = function () {
- clearTimeout(timeout);
- el.addClass(settings.timer_paused_class);
- left = -1;
- self.update_progress(0);
- };
-
- this.start = function () {
- if (!el.hasClass(settings.timer_paused_class)) {return true;}
- left = (left === -1) ? duration : left;
- el.removeClass(settings.timer_paused_class);
- start = new Date().getTime();
- progress.animate({'width' : '100%'}, left, 'linear');
- timeout = setTimeout(function () {
- self.restart();
- callback();
- }, left);
- el.trigger('timer-started.fndtn.orbit')
- };
-
- this.stop = function () {
- if (el.hasClass(settings.timer_paused_class)) {return true;}
- clearTimeout(timeout);
- el.addClass(settings.timer_paused_class);
- var end = new Date().getTime();
- left = left - (end - start);
- var w = 100 - ((left / duration) * 100);
- self.update_progress(w);
- el.trigger('timer-stopped.fndtn.orbit');
- };
- };
-
- var SlideAnimation = function (settings, container) {
- var duration = settings.animation_speed;
- var is_rtl = ($('html[dir=rtl]').length === 1);
- var margin = is_rtl ? 'marginRight' : 'marginLeft';
- var animMargin = {};
- animMargin[margin] = '0%';
-
- this.next = function (current, next, callback) {
- current.animate({marginLeft : '-100%'}, duration);
- next.animate(animMargin, duration, function () {
- current.css(margin, '100%');
- callback();
- });
- };
-
- this.prev = function (current, prev, callback) {
- current.animate({marginLeft : '100%'}, duration);
- prev.css(margin, '-100%');
- prev.animate(animMargin, duration, function () {
- current.css(margin, '100%');
- callback();
- });
- };
- };
-
- var FadeAnimation = function (settings, container) {
- var duration = settings.animation_speed;
- var is_rtl = ($('html[dir=rtl]').length === 1);
- var margin = is_rtl ? 'marginRight' : 'marginLeft';
-
- this.next = function (current, next, callback) {
- next.css({'margin' : '0%', 'opacity' : '0.01'});
- next.animate({'opacity' :'1'}, duration, 'linear', function () {
- current.css('margin', '100%');
- callback();
- });
- };
-
- this.prev = function (current, prev, callback) {
- prev.css({'margin' : '0%', 'opacity' : '0.01'});
- prev.animate({'opacity' : '1'}, duration, 'linear', function () {
- current.css('margin', '100%');
- callback();
- });
- };
- };
-
- Foundation.libs = Foundation.libs || {};
-
- Foundation.libs.orbit = {
- name : 'orbit',
-
- version : '5.5.1',
-
- settings : {
- animation : 'slide',
- timer_speed : 10000,
- pause_on_hover : true,
- resume_on_mouseout : false,
- next_on_click : true,
- animation_speed : 500,
- stack_on_small : false,
- navigation_arrows : true,
- slide_number : true,
- slide_number_text : 'of',
- container_class : 'orbit-container',
- stack_on_small_class : 'orbit-stack-on-small',
- next_class : 'orbit-next',
- prev_class : 'orbit-prev',
- timer_container_class : 'orbit-timer',
- timer_paused_class : 'paused',
- timer_progress_class : 'orbit-progress',
- slides_container_class : 'orbit-slides-container',
- preloader_class : 'preloader',
- slide_selector : '*',
- bullets_container_class : 'orbit-bullets',
- bullets_active_class : 'active',
- slide_number_class : 'orbit-slide-number',
- caption_class : 'orbit-caption',
- active_slide_class : 'active',
- orbit_transition_class : 'orbit-transitioning',
- bullets : true,
- circular : true,
- timer : true,
- variable_height : false,
- swipe : true,
- before_slide_change : noop,
- after_slide_change : noop
- },
-
- init : function (scope, method, options) {
- var self = this;
- this.bindings(method, options);
- },
-
- events : function (instance) {
- var orbit_instance = new Orbit(this.S(instance), this.S(instance).data('orbit-init'));
- this.S(instance).data(this.name + '-instance', orbit_instance);
- },
-
- reflow : function () {
- var self = this;
-
- if (self.S(self.scope).is('[data-orbit]')) {
- var $el = self.S(self.scope);
- var instance = $el.data(self.name + '-instance');
- instance.compute_dimensions();
- } else {
- self.S('[data-orbit]', self.scope).each(function (idx, el) {
- var $el = self.S(el);
- var opts = self.data_options($el);
- var instance = $el.data(self.name + '-instance');
- instance.compute_dimensions();
- });
- }
- }
- };
-
-}(jQuery, window, window.document));
+;(function ($, window, document, undefined) {
+ 'use strict';
+
+ var noop = function () {};
+
+ var Orbit = function (el, settings) {
+ // Don't reinitialize plugin
+ if (el.hasClass(settings.slides_container_class)) {
+ return this;
+ }
+
+ var self = this,
+ container,
+ slides_container = el,
+ number_container,
+ bullets_container,
+ timer_container,
+ idx = 0,
+ animate,
+ timer,
+ locked = false,
+ adjust_height_after = false;
+
+ self.slides = function () {
+ return slides_container.children(settings.slide_selector);
+ };
+
+ self.slides().first().addClass(settings.active_slide_class);
+
+ self.update_slide_number = function (index) {
+ if (settings.slide_number) {
+ number_container.find('span:first').text(parseInt(index) + 1);
+ number_container.find('span:last').text(self.slides().length);
+ }
+ if (settings.bullets) {
+ bullets_container.children().removeClass(settings.bullets_active_class);
+ $(bullets_container.children().get(index)).addClass(settings.bullets_active_class);
+ }
+ };
+
+ self.update_active_link = function (index) {
+ var link = $('[data-orbit-link="' + self.slides().eq(index).attr('data-orbit-slide') + '"]');
+ link.siblings().removeClass(settings.bullets_active_class);
+ link.addClass(settings.bullets_active_class);
+ };
+
+ self.build_markup = function () {
+ slides_container.wrap('<div class="' + settings.container_class + '"></div>');
+ container = slides_container.parent();
+ slides_container.addClass(settings.slides_container_class);
+
+ if (settings.stack_on_small) {
+ container.addClass(settings.stack_on_small_class);
+ }
+
+ if (settings.navigation_arrows) {
+ container.append($('<a href="#"><span></span></a>').addClass(settings.prev_class));
+ container.append($('<a href="#"><span></span></a>').addClass(settings.next_class));
+ }
+
+ if (settings.timer) {
+ timer_container = $('<div>').addClass(settings.timer_container_class);
+ timer_container.append('<span>');
+ timer_container.append($('<div>').addClass(settings.timer_progress_class));
+ timer_container.addClass(settings.timer_paused_class);
+ container.append(timer_container);
+ }
+
+ if (settings.slide_number) {
+ number_container = $('<div>').addClass(settings.slide_number_class);
+ number_container.append('<span></span> ' + settings.slide_number_text + ' <span></span>');
+ container.append(number_container);
+ }
+
+ if (settings.bullets) {
+ bullets_container = $('<ol>').addClass(settings.bullets_container_class);
+ container.append(bullets_container);
+ bullets_container.wrap('<div class="orbit-bullets-container"></div>');
+ self.slides().each(function (idx, el) {
+ var bullet = $('<li>').attr('data-orbit-slide', idx).on('click', self.link_bullet);;
+ bullets_container.append(bullet);
+ });
+ }
+
+ };
+
+ self._goto = function (next_idx, start_timer) {
+ // if (locked) {return false;}
+ if (next_idx === idx) {return false;}
+ if (typeof timer === 'object') {timer.restart();}
+ var slides = self.slides();
+
+ var dir = 'next';
+ locked = true;
+ if (next_idx < idx) {dir = 'prev';}
+ if (next_idx >= slides.length) {
+ if (!settings.circular) {
+ return false;
+ }
+ next_idx = 0;
+ } else if (next_idx < 0) {
+ if (!settings.circular) {
+ return false;
+ }
+ next_idx = slides.length - 1;
+ }
+
+ var current = $(slides.get(idx));
+ var next = $(slides.get(next_idx));
+
+ current.css('zIndex', 2);
+ current.removeClass(settings.active_slide_class);
+ next.css('zIndex', 4).addClass(settings.active_slide_class);
+
+ slides_container.trigger('before-slide-change.fndtn.orbit');
+ settings.before_slide_change();
+ self.update_active_link(next_idx);
+
+ var callback = function () {
+ var unlock = function () {
+ idx = next_idx;
+ locked = false;
+ if (start_timer === true) {timer = self.create_timer(); timer.start();}
+ self.update_slide_number(idx);
+ slides_container.trigger('after-slide-change.fndtn.orbit', [{slide_number : idx, total_slides : slides.length}]);
+ settings.after_slide_change(idx, slides.length);
+ };
+ if (slides_container.outerHeight() != next.outerHeight() && settings.variable_height) {
+ slides_container.animate({'height': next.outerHeight()}, 250, 'linear', unlock);
+ } else {
+ unlock();
+ }
+ };
+
+ if (slides.length === 1) {callback(); return false;}
+
+ var start_animation = function () {
+ if (dir === 'next') {animate.next(current, next, callback);}
+ if (dir === 'prev') {animate.prev(current, next, callback);}
+ };
+
+ if (next.outerHeight() > slides_container.outerHeight() && settings.variable_height) {
+ slides_container.animate({'height': next.outerHeight()}, 250, 'linear', start_animation);
+ } else {
+ start_animation();
+ }
+ };
+
+ self.next = function (e) {
+ e.stopImmediatePropagation();
+ e.preventDefault();
+ self._goto(idx + 1);
+ };
+
+ self.prev = function (e) {
+ e.stopImmediatePropagation();
+ e.preventDefault();
+ self._goto(idx - 1);
+ };
+
+ self.link_custom = function (e) {
+ e.preventDefault();
+ var link = $(this).attr('data-orbit-link');
+ if ((typeof link === 'string') && (link = $.trim(link)) != '') {
+ var slide = container.find('[data-orbit-slide=' + link + ']');
+ if (slide.index() != -1) {self._goto(slide.index());}
+ }
+ };
+
+ self.link_bullet = function (e) {
+ var index = $(this).attr('data-orbit-slide');
+ if ((typeof index === 'string') && (index = $.trim(index)) != '') {
+ if (isNaN(parseInt(index))) {
+ var slide = container.find('[data-orbit-slide=' + index + ']');
+ if (slide.index() != -1) {self._goto(slide.index() + 1);}
+ } else {
+ self._goto(parseInt(index));
+ }
+ }
+
+ }
+
+ self.timer_callback = function () {
+ self._goto(idx + 1, true);
+ }
+
+ self.compute_dimensions = function () {
+ var current = $(self.slides().get(idx));
+ var h = current.outerHeight();
+ if (!settings.variable_height) {
+ self.slides().each(function(){
+ if ($(this).outerHeight() > h) { h = $(this).outerHeight(); }
+ });
+ }
+ slides_container.height(h);
+ };
+
+ self.create_timer = function () {
+ var t = new Timer(
+ container.find('.' + settings.timer_container_class),
+ settings,
+ self.timer_callback
+ );
+ return t;
+ };
+
+ self.stop_timer = function () {
+ if (typeof timer === 'object') {
+ timer.stop();
+ }
+ };
+
+ self.toggle_timer = function () {
+ var t = container.find('.' + settings.timer_container_class);
+ if (t.hasClass(settings.timer_paused_class)) {
+ if (typeof timer === 'undefined') {timer = self.create_timer();}
+ timer.start();
+ } else {
+ if (typeof timer === 'object') {timer.stop();}
+ }
+ };
+
+ self.init = function () {
+ self.build_markup();
+ if (settings.timer) {
+ timer = self.create_timer();
+ Foundation.utils.image_loaded(this.slides().children('img'), timer.start);
+ }
+ animate = new FadeAnimation(settings, slides_container);
+ if (settings.animation === 'slide') {
+ animate = new SlideAnimation(settings, slides_container);
+ }
+
+ container.on('click', '.' + settings.next_class, self.next);
+ container.on('click', '.' + settings.prev_class, self.prev);
+
+ if (settings.next_on_click) {
+ container.on('click', '.' + settings.slides_container_class + ' [data-orbit-slide]', self.link_bullet);
+ }
+
+ container.on('click', self.toggle_timer);
+ if (settings.swipe) {
+ container.on('touchstart.fndtn.orbit', function (e) {
+ if (!e.touches) {e = e.originalEvent;}
+ var data = {
+ start_page_x : e.touches[0].pageX,
+ start_page_y : e.touches[0].pageY,
+ start_time : (new Date()).getTime(),
+ delta_x : 0,
+ is_scrolling : undefined
+ };
+ container.data('swipe-transition', data);
+ e.stopPropagation();
+ })
+ .on('touchmove.fndtn.orbit', function (e) {
+ if (!e.touches) {
+ e = e.originalEvent;
+ }
+ // Ignore pinch/zoom events
+ if (e.touches.length > 1 || e.scale && e.scale !== 1) {
+ return;
+ }
+
+ var data = container.data('swipe-transition');
+ if (typeof data === 'undefined') {data = {};}
+
+ data.delta_x = e.touches[0].pageX - data.start_page_x;
+
+ if ( typeof data.is_scrolling === 'undefined') {
+ data.is_scrolling = !!( data.is_scrolling || Math.abs(data.delta_x) < Math.abs(e.touches[0].pageY - data.start_page_y) );
+ }
+
+ if (!data.is_scrolling && !data.active) {
+ e.preventDefault();
+ var direction = (data.delta_x < 0) ? (idx + 1) : (idx - 1);
+ data.active = true;
+ self._goto(direction);
+ }
+ })
+ .on('touchend.fndtn.orbit', function (e) {
+ container.data('swipe-transition', {});
+ e.stopPropagation();
+ })
+ }
+ container.on('mouseenter.fndtn.orbit', function (e) {
+ if (settings.timer && settings.pause_on_hover) {
+ self.stop_timer();
+ }
+ })
+ .on('mouseleave.fndtn.orbit', function (e) {
+ if (settings.timer && settings.resume_on_mouseout) {
+ timer.start();
+ }
+ });
+
+ $(document).on('click', '[data-orbit-link]', self.link_custom);
+ $(window).on('load resize', self.compute_dimensions);
+ Foundation.utils.image_loaded(this.slides().children('img'), self.compute_dimensions);
+ Foundation.utils.image_loaded(this.slides().children('img'), function () {
+ container.prev('.' + settings.preloader_class).css('display', 'none');
+ self.update_slide_number(0);
+ self.update_active_link(0);
+ slides_container.trigger('ready.fndtn.orbit');
+ });
+ };
+
+ self.init();
+ };
+
+ var Timer = function (el, settings, callback) {
+ var self = this,
+ duration = settings.timer_speed,
+ progress = el.find('.' + settings.timer_progress_class),
+ start,
+ timeout,
+ left = -1;
+
+ this.update_progress = function (w) {
+ var new_progress = progress.clone();
+ new_progress.attr('style', '');
+ new_progress.css('width', w + '%');
+ progress.replaceWith(new_progress);
+ progress = new_progress;
+ };
+
+ this.restart = function () {
+ clearTimeout(timeout);
+ el.addClass(settings.timer_paused_class);
+ left = -1;
+ self.update_progress(0);
+ };
+
+ this.start = function () {
+ if (!el.hasClass(settings.timer_paused_class)) {return true;}
+ left = (left === -1) ? duration : left;
+ el.removeClass(settings.timer_paused_class);
+ start = new Date().getTime();
+ progress.animate({'width' : '100%'}, left, 'linear');
+ timeout = setTimeout(function () {
+ self.restart();
+ callback();
+ }, left);
+ el.trigger('timer-started.fndtn.orbit')
+ };
+
+ this.stop = function () {
+ if (el.hasClass(settings.timer_paused_class)) {return true;}
+ clearTimeout(timeout);
+ el.addClass(settings.timer_paused_class);
+ var end = new Date().getTime();
+ left = left - (end - start);
+ var w = 100 - ((left / duration) * 100);
+ self.update_progress(w);
+ el.trigger('timer-stopped.fndtn.orbit');
+ };
+ };
+
+ var SlideAnimation = function (settings, container) {
+ var duration = settings.animation_speed;
+ var is_rtl = ($('html[dir=rtl]').length === 1);
+ var margin = is_rtl ? 'marginRight' : 'marginLeft';
+ var animMargin = {};
+ animMargin[margin] = '0%';
+
+ this.next = function (current, next, callback) {
+ current.animate({marginLeft : '-100%'}, duration);
+ next.animate(animMargin, duration, function () {
+ current.css(margin, '100%');
+ callback();
+ });
+ };
+
+ this.prev = function (current, prev, callback) {
+ current.animate({marginLeft : '100%'}, duration);
+ prev.css(margin, '-100%');
+ prev.animate(animMargin, duration, function () {
+ current.css(margin, '100%');
+ callback();
+ });
+ };
+ };
+
+ var FadeAnimation = function (settings, container) {
+ var duration = settings.animation_speed;
+ var is_rtl = ($('html[dir=rtl]').length === 1);
+ var margin = is_rtl ? 'marginRight' : 'marginLeft';
+
+ this.next = function (current, next, callback) {
+ next.css({'margin' : '0%', 'opacity' : '0.01'});
+ next.animate({'opacity' :'1'}, duration, 'linear', function () {
+ current.css('margin', '100%');
+ callback();
+ });
+ };
+
+ this.prev = function (current, prev, callback) {
+ prev.css({'margin' : '0%', 'opacity' : '0.01'});
+ prev.animate({'opacity' : '1'}, duration, 'linear', function () {
+ current.css('margin', '100%');
+ callback();
+ });
+ };
+ };
+
+ Foundation.libs = Foundation.libs || {};
+
+ Foundation.libs.orbit = {
+ name : 'orbit',
+
+ version : '5.5.1',
+
+ settings : {
+ animation : 'slide',
+ timer_speed : 10000,
+ pause_on_hover : true,
+ resume_on_mouseout : false,
+ next_on_click : true,
+ animation_speed : 500,
+ stack_on_small : false,
+ navigation_arrows : true,
+ slide_number : true,
+ slide_number_text : 'of',
+ container_class : 'orbit-container',
+ stack_on_small_class : 'orbit-stack-on-small',
+ next_class : 'orbit-next',
+ prev_class : 'orbit-prev',
+ timer_container_class : 'orbit-timer',
+ timer_paused_class : 'paused',
+ timer_progress_class : 'orbit-progress',
+ slides_container_class : 'orbit-slides-container',
+ preloader_class : 'preloader',
+ slide_selector : '*',
+ bullets_container_class : 'orbit-bullets',
+ bullets_active_class : 'active',
+ slide_number_class : 'orbit-slide-number',
+ caption_class : 'orbit-caption',
+ active_slide_class : 'active',
+ orbit_transition_class : 'orbit-transitioning',
+ bullets : true,
+ circular : true,
+ timer : true,
+ variable_height : false,
+ swipe : true,
+ before_slide_change : noop,
+ after_slide_change : noop
+ },
+
+ init : function (scope, method, options) {
+ var self = this;
+ this.bindings(method, options);
+ },
+
+ events : function (instance) {
+ var orbit_instance = new Orbit(this.S(instance), this.S(instance).data('orbit-init'));
+ this.S(instance).data(this.name + '-instance', orbit_instance);
+ },
+
+ reflow : function () {
+ var self = this;
+
+ if (self.S(self.scope).is('[data-orbit]')) {
+ var $el = self.S(self.scope);
+ var instance = $el.data(self.name + '-instance');
+ instance.compute_dimensions();
+ } else {
+ self.S('[data-orbit]', self.scope).each(function (idx, el) {
+ var $el = self.S(el);
+ var opts = self.data_options($el);
+ var instance = $el.data(self.name + '-instance');
+ instance.compute_dimensions();
+ });
+ }
+ }
+ };
+
+}(jQuery, window, window.document));
http://git-wip-us.apache.org/repos/asf/isis-site/blob/bea6c37a/content/js/foundation/5.5.1/foundation/foundation.reveal.js
----------------------------------------------------------------------
diff --git a/content/js/foundation/5.5.1/foundation/foundation.reveal.js b/content/js/foundation/5.5.1/foundation/foundation.reveal.js
index c4b95d7..d3b70a6 100644
--- a/content/js/foundation/5.5.1/foundation/foundation.reveal.js
+++ b/content/js/foundation/5.5.1/foundation/foundation.reveal.js
@@ -1,471 +1,471 @@
-;(function ($, window, document, undefined) {
- 'use strict';
-
- Foundation.libs.reveal = {
- name : 'reveal',
-
- version : '5.5.1',
-
- locked : false,
-
- settings : {
- animation : 'fadeAndPop',
- animation_speed : 250,
- close_on_background_click : true,
- close_on_esc : true,
- dismiss_modal_class : 'close-reveal-modal',
- multiple_opened : false,
- bg_class : 'reveal-modal-bg',
- root_element : 'body',
- open : function(){},
- opened : function(){},
- close : function(){},
- closed : function(){},
- bg : $('.reveal-modal-bg'),
- css : {
- open : {
- 'opacity' : 0,
- 'visibility' : 'visible',
- 'display' : 'block'
- },
- close : {
- 'opacity' : 1,
- 'visibility' : 'hidden',
- 'display' : 'none'
- }
- }
- },
-
- init : function (scope, method, options) {
- $.extend(true, this.settings, method, options);
- this.bindings(method, options);
- },
-
- events : function (scope) {
- var self = this,
- S = self.S;
-
- S(this.scope)
- .off('.reveal')
- .on('click.fndtn.reveal', '[' + this.add_namespace('data-reveal-id') + ']:not([disabled])', function (e) {
- e.preventDefault();
-
- if (!self.locked) {
- var element = S(this),
- ajax = element.data(self.data_attr('reveal-ajax'));
-
- self.locked = true;
-
- if (typeof ajax === 'undefined') {
- self.open.call(self, element);
- } else {
- var url = ajax === true ? element.attr('href') : ajax;
-
- self.open.call(self, element, {url : url});
- }
- }
- });
-
- S(document)
- .on('click.fndtn.reveal', this.close_targets(), function (e) {
- e.preventDefault();
- if (!self.locked) {
- var settings = S('[' + self.attr_name() + '].open').data(self.attr_name(true) + '-init') || self.settings,
- bg_clicked = S(e.target)[0] === S('.' + settings.bg_class)[0];
-
- if (bg_clicked) {
- if (settings.close_on_background_click) {
- e.stopPropagation();
- } else {
- return;
- }
- }
-
- self.locked = true;
- self.close.call(self, bg_clicked ? S('[' + self.attr_name() + '].open') : S(this).closest('[' + self.attr_name() + ']'));
- }
- });
-
- if (S('[' + self.attr_name() + ']', this.scope).length > 0) {
- S(this.scope)
- // .off('.reveal')
- .on('open.fndtn.reveal', this.settings.open)
- .on('opened.fndtn.reveal', this.settings.opened)
- .on('opened.fndtn.reveal', this.open_video)
- .on('close.fndtn.reveal', this.settings.close)
- .on('closed.fndtn.reveal', this.settings.closed)
- .on('closed.fndtn.reveal', this.close_video);
- } else {
- S(this.scope)
- // .off('.reveal')
- .on('open.fndtn.reveal', '[' + self.attr_name() + ']', this.settings.open)
- .on('opened.fndtn.reveal', '[' + self.attr_name() + ']', this.settings.opened)
- .on('opened.fndtn.reveal', '[' + self.attr_name() + ']', this.open_video)
- .on('close.fndtn.reveal', '[' + self.attr_name() + ']', this.settings.close)
- .on('closed.fndtn.reveal', '[' + self.attr_name() + ']', this.settings.closed)
- .on('closed.fndtn.reveal', '[' + self.attr_name() + ']', this.close_video);
- }
-
- return true;
- },
-
- // PATCH #3: turning on key up capture only when a reveal window is open
- key_up_on : function (scope) {
- var self = this;
-
- // PATCH #1: fixing multiple keyup event trigger from single key press
- self.S('body').off('keyup.fndtn.reveal').on('keyup.fndtn.reveal', function ( event ) {
- var open_modal = self.S('[' + self.attr_name() + '].open'),
- settings = open_modal.data(self.attr_name(true) + '-init') || self.settings ;
- // PATCH #2: making sure that the close event can be called only while unlocked,
- // so that multiple keyup.fndtn.reveal events don't prevent clean closing of the reveal window.
- if ( settings && event.which === 27 && settings.close_on_esc && !self.locked) { // 27 is the keycode for the Escape key
- self.close.call(self, open_modal);
- }
- });
-
- return true;
- },
-
- // PATCH #3: turning on key up capture only when a reveal window is open
- key_up_off : function (scope) {
- this.S('body').off('keyup.fndtn.reveal');
- return true;
- },
-
- open : function (target, ajax_settings) {
- var self = this,
- modal;
-
- if (target) {
- if (typeof target.selector !== 'undefined') {
- // Find the named node; only use the first one found, since the rest of the code assumes there's only one node
- modal = self.S('#' + target.data(self.data_attr('reveal-id'))).first();
- } else {
- modal = self.S(this.scope);
-
- ajax_settings = target;
- }
- } else {
- modal = self.S(this.scope);
- }
-
- var settings = modal.data(self.attr_name(true) + '-init');
- settings = settings || this.settings;
-
- if (modal.hasClass('open') && target.attr('data-reveal-id') == modal.attr('id')) {
- return self.close(modal);
- }
-
- if (!modal.hasClass('open')) {
- var open_modal = self.S('[' + self.attr_name() + '].open');
-
- if (typeof modal.data('css-top') === 'undefined') {
- modal.data('css-top', parseInt(modal.css('top'), 10))
- .data('offset', this.cache_offset(modal));
- }
-
- this.key_up_on(modal); // PATCH #3: turning on key up capture only when a reveal window is open
-
- modal.on('open.fndtn.reveal').trigger('open.fndtn.reveal');
-
- if (open_modal.length < 1) {
- this.toggle_bg(modal, true);
- }
-
- if (typeof ajax_settings === 'string') {
- ajax_settings = {
- url : ajax_settings
- };
- }
-
- if (typeof ajax_settings === 'undefined' || !ajax_settings.url) {
- if (open_modal.length > 0) {
- if (settings.multiple_opened) {
- this.to_back(open_modal);
- } else {
- this.hide(open_modal, settings.css.close);
- }
- }
-
- this.show(modal, settings.css.open);
- } else {
- var old_success = typeof ajax_settings.success !== 'undefined' ? ajax_settings.success : null;
-
- $.extend(ajax_settings, {
- success : function (data, textStatus, jqXHR) {
- if ( $.isFunction(old_success) ) {
- var result = old_success(data, textStatus, jqXHR);
- if (typeof result == 'string') {
- data = result;
- }
- }
-
- modal.html(data);
- self.S(modal).foundation('section', 'reflow');
- self.S(modal).children().foundation();
-
- if (open_modal.length > 0) {
- if (settings.multiple_opened) {
- this.to_back(open_modal);
- } else {
- this.hide(open_modal, settings.css.close);
- }
- }
- self.show(modal, settings.css.open);
- }
- });
-
- $.ajax(ajax_settings);
- }
- }
- self.S(window).trigger('resize');
- },
-
- close : function (modal) {
- var modal = modal && modal.length ? modal : this.S(this.scope),
- open_modals = this.S('[' + this.attr_name() + '].open'),
- settings = modal.data(this.attr_name(true) + '-init') || this.settings;
-
- if (open_modals.length > 0) {
- this.locked = true;
- this.key_up_off(modal); // PATCH #3: turning on key up capture only when a reveal window is open
- modal.trigger('close').trigger('close.fndtn.reveal');
-
- if ((settings.multiple_opened && open_modals.length === 1) || !settings.multiple_opened || modal.length > 1) {
- this.toggle_bg(modal, false);
- this.to_front(modal);
- }
-
- if (settings.multiple_opened) {
- this.hide(modal, settings.css.close, settings);
- this.to_front($($.makeArray(open_modals).reverse()[1]));
- } else {
- this.hide(open_modals, settings.css.close, settings);
- }
- }
- },
-
- close_targets : function () {
- var base = '.' + this.settings.dismiss_modal_class;
-
- if (this.settings.close_on_background_click) {
- return base + ', .' + this.settings.bg_class;
- }
-
- return base;
- },
-
- toggle_bg : function (modal, state) {
- if (this.S('.' + this.settings.bg_class).length === 0) {
- this.settings.bg = $('<div />', {'class': this.settings.bg_class})
- .appendTo('body').hide();
- }
-
- var visible = this.settings.bg.filter(':visible').length > 0;
- if ( state != visible ) {
- if ( state == undefined ? visible : !state ) {
- this.hide(this.settings.bg);
- } else {
- this.show(this.settings.bg);
- }
- }
- },
-
- show : function (el, css) {
- // is modal
- if (css) {
- var settings = el.data(this.attr_name(true) + '-init') || this.settings,
- root_element = settings.root_element;
-
- if (el.parent(root_element).length === 0) {
- var placeholder = el.wrap('<div style="display: none;" />').parent();
-
- el.on('closed.fndtn.reveal.wrapped', function () {
- el.detach().appendTo(placeholder);
- el.unwrap().unbind('closed.fndtn.reveal.wrapped');
- });
-
- el.detach().appendTo(root_element);
- }
-
- var animData = getAnimationData(settings.animation);
- if (!animData.animate) {
- this.locked = false;
- }
- if (animData.pop) {
- css.top = $(window).scrollTop() - el.data('offset') + 'px';
- var end_css = {
- top: $(window).scrollTop() + el.data('css-top') + 'px',
- opacity: 1
- };
-
- return setTimeout(function () {
- return el
- .css(css)
- .animate(end_css, settings.animation_speed, 'linear', function () {
- this.locked = false;
- el.trigger('opened').trigger('opened.fndtn.reveal');
- }.bind(this))
- .addClass('open');
- }.bind(this), settings.animation_speed / 2);
- }
-
- if (animData.fade) {
- css.top = $(window).scrollTop() + el.data('css-top') + 'px';
- var end_css = {opacity: 1};
-
- return setTimeout(function () {
- return el
- .css(css)
- .animate(end_css, settings.animation_speed, 'linear', function () {
- this.locked = false;
- el.trigger('opened').trigger('opened.fndtn.reveal');
- }.bind(this))
- .addClass('open');
- }.bind(this), settings.animation_speed / 2);
- }
-
- return el.css(css).show().css({opacity : 1}).addClass('open').trigger('opened').trigger('opened.fndtn.reveal');
- }
-
- var settings = this.settings;
-
- // should we animate the background?
- if (getAnimationData(settings.animation).fade) {
- return el.fadeIn(settings.animation_speed / 2);
- }
-
- this.locked = false;
-
- return el.show();
- },
-
- to_back : function(el) {
- el.addClass('toback');
- },
-
- to_front : function(el) {
- el.removeClass('toback');
- },
-
- hide : function (el, css) {
- // is modal
- if (css) {
- var settings = el.data(this.attr_name(true) + '-init');
- settings = settings || this.settings;
-
- var animData = getAnimationData(settings.animation);
- if (!animData.animate) {
- this.locked = false;
- }
- if (animData.pop) {
- var end_css = {
- top: - $(window).scrollTop() - el.data('offset') + 'px',
- opacity: 0
- };
-
- return setTimeout(function () {
- return el
- .animate(end_css, settings.animation_speed, 'linear', function () {
- this.locked = false;
- el.css(css).trigger('closed').trigger('closed.fndtn.reveal');
- }.bind(this))
- .removeClass('open');
- }.bind(this), settings.animation_speed / 2);
- }
-
- if (animData.fade) {
- var end_css = {opacity : 0};
-
- return setTimeout(function () {
- return el
- .animate(end_css, settings.animation_speed, 'linear', function () {
- this.locked = false;
- el.css(css).trigger('closed').trigger('closed.fndtn.reveal');
- }.bind(this))
- .removeClass('open');
- }.bind(this), settings.animation_speed / 2);
- }
-
- return el.hide().css(css).removeClass('open').trigger('closed').trigger('closed.fndtn.reveal');
- }
-
- var settings = this.settings;
-
- // should we animate the background?
- if (getAnimationData(settings.animation).fade) {
- return el.fadeOut(settings.animation_speed / 2);
- }
-
- return el.hide();
- },
-
- close_video : function (e) {
- var video = $('.flex-video', e.target),
- iframe = $('iframe', video);
-
- if (iframe.length > 0) {
- iframe.attr('data-src', iframe[0].src);
- iframe.attr('src', iframe.attr('src'));
- video.hide();
- }
- },
-
- open_video : function (e) {
- var video = $('.flex-video', e.target),
- iframe = video.find('iframe');
-
- if (iframe.length > 0) {
- var data_src = iframe.attr('data-src');
- if (typeof data_src === 'string') {
- iframe[0].src = iframe.attr('data-src');
- } else {
- var src = iframe[0].src;
- iframe[0].src = undefined;
- iframe[0].src = src;
- }
- video.show();
- }
- },
-
- data_attr : function (str) {
- if (this.namespace.length > 0) {
- return this.namespace + '-' + str;
- }
-
- return str;
- },
-
- cache_offset : function (modal) {
- var offset = modal.show().height() + parseInt(modal.css('top'), 10);
-
- modal.hide();
-
- return offset;
- },
-
- off : function () {
- $(this.scope).off('.fndtn.reveal');
- },
-
- reflow : function () {}
- };
-
- /*
- * getAnimationData('popAndFade') // {animate: true, pop: true, fade: true}
- * getAnimationData('fade') // {animate: true, pop: false, fade: true}
- * getAnimationData('pop') // {animate: true, pop: true, fade: false}
- * getAnimationData('foo') // {animate: false, pop: false, fade: false}
- * getAnimationData(null) // {animate: false, pop: false, fade: false}
- */
- function getAnimationData(str) {
- var fade = /fade/i.test(str);
- var pop = /pop/i.test(str);
- return {
- animate : fade || pop,
- pop : pop,
- fade : fade
- };
- }
-}(jQuery, window, window.document));
+;(function ($, window, document, undefined) {
+ 'use strict';
+
+ Foundation.libs.reveal = {
+ name : 'reveal',
+
+ version : '5.5.1',
+
+ locked : false,
+
+ settings : {
+ animation : 'fadeAndPop',
+ animation_speed : 250,
+ close_on_background_click : true,
+ close_on_esc : true,
+ dismiss_modal_class : 'close-reveal-modal',
+ multiple_opened : false,
+ bg_class : 'reveal-modal-bg',
+ root_element : 'body',
+ open : function(){},
+ opened : function(){},
+ close : function(){},
+ closed : function(){},
+ bg : $('.reveal-modal-bg'),
+ css : {
+ open : {
+ 'opacity' : 0,
+ 'visibility' : 'visible',
+ 'display' : 'block'
+ },
+ close : {
+ 'opacity' : 1,
+ 'visibility' : 'hidden',
+ 'display' : 'none'
+ }
+ }
+ },
+
+ init : function (scope, method, options) {
+ $.extend(true, this.settings, method, options);
+ this.bindings(method, options);
+ },
+
+ events : function (scope) {
+ var self = this,
+ S = self.S;
+
+ S(this.scope)
+ .off('.reveal')
+ .on('click.fndtn.reveal', '[' + this.add_namespace('data-reveal-id') + ']:not([disabled])', function (e) {
+ e.preventDefault();
+
+ if (!self.locked) {
+ var element = S(this),
+ ajax = element.data(self.data_attr('reveal-ajax'));
+
+ self.locked = true;
+
+ if (typeof ajax === 'undefined') {
+ self.open.call(self, element);
+ } else {
+ var url = ajax === true ? element.attr('href') : ajax;
+
+ self.open.call(self, element, {url : url});
+ }
+ }
+ });
+
+ S(document)
+ .on('click.fndtn.reveal', this.close_targets(), function (e) {
+ e.preventDefault();
+ if (!self.locked) {
+ var settings = S('[' + self.attr_name() + '].open').data(self.attr_name(true) + '-init') || self.settings,
+ bg_clicked = S(e.target)[0] === S('.' + settings.bg_class)[0];
+
+ if (bg_clicked) {
+ if (settings.close_on_background_click) {
+ e.stopPropagation();
+ } else {
+ return;
+ }
+ }
+
+ self.locked = true;
+ self.close.call(self, bg_clicked ? S('[' + self.attr_name() + '].open') : S(this).closest('[' + self.attr_name() + ']'));
+ }
+ });
+
+ if (S('[' + self.attr_name() + ']', this.scope).length > 0) {
+ S(this.scope)
+ // .off('.reveal')
+ .on('open.fndtn.reveal', this.settings.open)
+ .on('opened.fndtn.reveal', this.settings.opened)
+ .on('opened.fndtn.reveal', this.open_video)
+ .on('close.fndtn.reveal', this.settings.close)
+ .on('closed.fndtn.reveal', this.settings.closed)
+ .on('closed.fndtn.reveal', this.close_video);
+ } else {
+ S(this.scope)
+ // .off('.reveal')
+ .on('open.fndtn.reveal', '[' + self.attr_name() + ']', this.settings.open)
+ .on('opened.fndtn.reveal', '[' + self.attr_name() + ']', this.settings.opened)
+ .on('opened.fndtn.reveal', '[' + self.attr_name() + ']', this.open_video)
+ .on('close.fndtn.reveal', '[' + self.attr_name() + ']', this.settings.close)
+ .on('closed.fndtn.reveal', '[' + self.attr_name() + ']', this.settings.closed)
+ .on('closed.fndtn.reveal', '[' + self.attr_name() + ']', this.close_video);
+ }
+
+ return true;
+ },
+
+ // PATCH #3: turning on key up capture only when a reveal window is open
+ key_up_on : function (scope) {
+ var self = this;
+
+ // PATCH #1: fixing multiple keyup event trigger from single key press
+ self.S('body').off('keyup.fndtn.reveal').on('keyup.fndtn.reveal', function ( event ) {
+ var open_modal = self.S('[' + self.attr_name() + '].open'),
+ settings = open_modal.data(self.attr_name(true) + '-init') || self.settings ;
+ // PATCH #2: making sure that the close event can be called only while unlocked,
+ // so that multiple keyup.fndtn.reveal events don't prevent clean closing of the reveal window.
+ if ( settings && event.which === 27 && settings.close_on_esc && !self.locked) { // 27 is the keycode for the Escape key
+ self.close.call(self, open_modal);
+ }
+ });
+
+ return true;
+ },
+
+ // PATCH #3: turning on key up capture only when a reveal window is open
+ key_up_off : function (scope) {
+ this.S('body').off('keyup.fndtn.reveal');
+ return true;
+ },
+
+ open : function (target, ajax_settings) {
+ var self = this,
+ modal;
+
+ if (target) {
+ if (typeof target.selector !== 'undefined') {
+ // Find the named node; only use the first one found, since the rest of the code assumes there's only one node
+ modal = self.S('#' + target.data(self.data_attr('reveal-id'))).first();
+ } else {
+ modal = self.S(this.scope);
+
+ ajax_settings = target;
+ }
+ } else {
+ modal = self.S(this.scope);
+ }
+
+ var settings = modal.data(self.attr_name(true) + '-init');
+ settings = settings || this.settings;
+
+ if (modal.hasClass('open') && target.attr('data-reveal-id') == modal.attr('id')) {
+ return self.close(modal);
+ }
+
+ if (!modal.hasClass('open')) {
+ var open_modal = self.S('[' + self.attr_name() + '].open');
+
+ if (typeof modal.data('css-top') === 'undefined') {
+ modal.data('css-top', parseInt(modal.css('top'), 10))
+ .data('offset', this.cache_offset(modal));
+ }
+
+ this.key_up_on(modal); // PATCH #3: turning on key up capture only when a reveal window is open
+
+ modal.on('open.fndtn.reveal').trigger('open.fndtn.reveal');
+
+ if (open_modal.length < 1) {
+ this.toggle_bg(modal, true);
+ }
+
+ if (typeof ajax_settings === 'string') {
+ ajax_settings = {
+ url : ajax_settings
+ };
+ }
+
+ if (typeof ajax_settings === 'undefined' || !ajax_settings.url) {
+ if (open_modal.length > 0) {
+ if (settings.multiple_opened) {
+ this.to_back(open_modal);
+ } else {
+ this.hide(open_modal, settings.css.close);
+ }
+ }
+
+ this.show(modal, settings.css.open);
+ } else {
+ var old_success = typeof ajax_settings.success !== 'undefined' ? ajax_settings.success : null;
+
+ $.extend(ajax_settings, {
+ success : function (data, textStatus, jqXHR) {
+ if ( $.isFunction(old_success) ) {
+ var result = old_success(data, textStatus, jqXHR);
+ if (typeof result == 'string') {
+ data = result;
+ }
+ }
+
+ modal.html(data);
+ self.S(modal).foundation('section', 'reflow');
+ self.S(modal).children().foundation();
+
+ if (open_modal.length > 0) {
+ if (settings.multiple_opened) {
+ this.to_back(open_modal);
+ } else {
+ this.hide(open_modal, settings.css.close);
+ }
+ }
+ self.show(modal, settings.css.open);
+ }
+ });
+
+ $.ajax(ajax_settings);
+ }
+ }
+ self.S(window).trigger('resize');
+ },
+
+ close : function (modal) {
+ var modal = modal && modal.length ? modal : this.S(this.scope),
+ open_modals = this.S('[' + this.attr_name() + '].open'),
+ settings = modal.data(this.attr_name(true) + '-init') || this.settings;
+
+ if (open_modals.length > 0) {
+ this.locked = true;
+ this.key_up_off(modal); // PATCH #3: turning on key up capture only when a reveal window is open
+ modal.trigger('close').trigger('close.fndtn.reveal');
+
+ if ((settings.multiple_opened && open_modals.length === 1) || !settings.multiple_opened || modal.length > 1) {
+ this.toggle_bg(modal, false);
+ this.to_front(modal);
+ }
+
+ if (settings.multiple_opened) {
+ this.hide(modal, settings.css.close, settings);
+ this.to_front($($.makeArray(open_modals).reverse()[1]));
+ } else {
+ this.hide(open_modals, settings.css.close, settings);
+ }
+ }
+ },
+
+ close_targets : function () {
+ var base = '.' + this.settings.dismiss_modal_class;
+
+ if (this.settings.close_on_background_click) {
+ return base + ', .' + this.settings.bg_class;
+ }
+
+ return base;
+ },
+
+ toggle_bg : function (modal, state) {
+ if (this.S('.' + this.settings.bg_class).length === 0) {
+ this.settings.bg = $('<div />', {'class': this.settings.bg_class})
+ .appendTo('body').hide();
+ }
+
+ var visible = this.settings.bg.filter(':visible').length > 0;
+ if ( state != visible ) {
+ if ( state == undefined ? visible : !state ) {
+ this.hide(this.settings.bg);
+ } else {
+ this.show(this.settings.bg);
+ }
+ }
+ },
+
+ show : function (el, css) {
+ // is modal
+ if (css) {
+ var settings = el.data(this.attr_name(true) + '-init') || this.settings,
+ root_element = settings.root_element;
+
+ if (el.parent(root_element).length === 0) {
+ var placeholder = el.wrap('<div style="display: none;" />').parent();
+
+ el.on('closed.fndtn.reveal.wrapped', function () {
+ el.detach().appendTo(placeholder);
+ el.unwrap().unbind('closed.fndtn.reveal.wrapped');
+ });
+
+ el.detach().appendTo(root_element);
+ }
+
+ var animData = getAnimationData(settings.animation);
+ if (!animData.animate) {
+ this.locked = false;
+ }
+ if (animData.pop) {
+ css.top = $(window).scrollTop() - el.data('offset') + 'px';
+ var end_css = {
+ top: $(window).scrollTop() + el.data('css-top') + 'px',
+ opacity: 1
+ };
+
+ return setTimeout(function () {
+ return el
+ .css(css)
+ .animate(end_css, settings.animation_speed, 'linear', function () {
+ this.locked = false;
+ el.trigger('opened').trigger('opened.fndtn.reveal');
+ }.bind(this))
+ .addClass('open');
+ }.bind(this), settings.animation_speed / 2);
+ }
+
+ if (animData.fade) {
+ css.top = $(window).scrollTop() + el.data('css-top') + 'px';
+ var end_css = {opacity: 1};
+
+ return setTimeout(function () {
+ return el
+ .css(css)
+ .animate(end_css, settings.animation_speed, 'linear', function () {
+ this.locked = false;
+ el.trigger('opened').trigger('opened.fndtn.reveal');
+ }.bind(this))
+ .addClass('open');
+ }.bind(this), settings.animation_speed / 2);
+ }
+
+ return el.css(css).show().css({opacity : 1}).addClass('open').trigger('opened').trigger('opened.fndtn.reveal');
+ }
+
+ var settings = this.settings;
+
+ // should we animate the background?
+ if (getAnimationData(settings.animation).fade) {
+ return el.fadeIn(settings.animation_speed / 2);
+ }
+
+ this.locked = false;
+
+ return el.show();
+ },
+
+ to_back : function(el) {
+ el.addClass('toback');
+ },
+
+ to_front : function(el) {
+ el.removeClass('toback');
+ },
+
+ hide : function (el, css) {
+ // is modal
+ if (css) {
+ var settings = el.data(this.attr_name(true) + '-init');
+ settings = settings || this.settings;
+
+ var animData = getAnimationData(settings.animation);
+ if (!animData.animate) {
+ this.locked = false;
+ }
+ if (animData.pop) {
+ var end_css = {
+ top: - $(window).scrollTop() - el.data('offset') + 'px',
+ opacity: 0
+ };
+
+ return setTimeout(function () {
+ return el
+ .animate(end_css, settings.animation_speed, 'linear', function () {
+ this.locked = false;
+ el.css(css).trigger('closed').trigger('closed.fndtn.reveal');
+ }.bind(this))
+ .removeClass('open');
+ }.bind(this), settings.animation_speed / 2);
+ }
+
+ if (animData.fade) {
+ var end_css = {opacity : 0};
+
+ return setTimeout(function () {
+ return el
+ .animate(end_css, settings.animation_speed, 'linear', function () {
+ this.locked = false;
+ el.css(css).trigger('closed').trigger('closed.fndtn.reveal');
+ }.bind(this))
+ .removeClass('open');
+ }.bind(this), settings.animation_speed / 2);
+ }
+
+ return el.hide().css(css).removeClass('open').trigger('closed').trigger('closed.fndtn.reveal');
+ }
+
+ var settings = this.settings;
+
+ // should we animate the background?
+ if (getAnimationData(settings.animation).fade) {
+ return el.fadeOut(settings.animation_speed / 2);
+ }
+
+ return el.hide();
+ },
+
+ close_video : function (e) {
+ var video = $('.flex-video', e.target),
+ iframe = $('iframe', video);
+
+ if (iframe.length > 0) {
+ iframe.attr('data-src', iframe[0].src);
+ iframe.attr('src', iframe.attr('src'));
+ video.hide();
+ }
+ },
+
+ open_video : function (e) {
+ var video = $('.flex-video', e.target),
+ iframe = video.find('iframe');
+
+ if (iframe.length > 0) {
+ var data_src = iframe.attr('data-src');
+ if (typeof data_src === 'string') {
+ iframe[0].src = iframe.attr('data-src');
+ } else {
+ var src = iframe[0].src;
+ iframe[0].src = undefined;
+ iframe[0].src = src;
+ }
+ video.show();
+ }
+ },
+
+ data_attr : function (str) {
+ if (this.namespace.length > 0) {
+ return this.namespace + '-' + str;
+ }
+
+ return str;
+ },
+
+ cache_offset : function (modal) {
+ var offset = modal.show().height() + parseInt(modal.css('top'), 10);
+
+ modal.hide();
+
+ return offset;
+ },
+
+ off : function () {
+ $(this.scope).off('.fndtn.reveal');
+ },
+
+ reflow : function () {}
+ };
+
+ /*
+ * getAnimationData('popAndFade') // {animate: true, pop: true, fade: true}
+ * getAnimationData('fade') // {animate: true, pop: false, fade: true}
+ * getAnimationData('pop') // {animate: true, pop: true, fade: false}
+ * getAnimationData('foo') // {animate: false, pop: false, fade: false}
+ * getAnimationData(null) // {animate: false, pop: false, fade: false}
+ */
+ function getAnimationData(str) {
+ var fade = /fade/i.test(str);
+ var pop = /pop/i.test(str);
+ return {
+ animate : fade || pop,
+ pop : pop,
+ fade : fade
+ };
+ }
+}(jQuery, window, window.document));
http://git-wip-us.apache.org/repos/asf/isis-site/blob/bea6c37a/content/js/foundation/5.5.1/foundation/foundation.slider.js
----------------------------------------------------------------------
diff --git a/content/js/foundation/5.5.1/foundation/foundation.slider.js b/content/js/foundation/5.5.1/foundation/foundation.slider.js
index 4d069bc..0e299ef 100644
--- a/content/js/foundation/5.5.1/foundation/foundation.slider.js
+++ b/content/js/foundation/5.5.1/foundation/foundation.slider.js
@@ -1,263 +1,263 @@
-;(function ($, window, document, undefined) {
- 'use strict';
-
- Foundation.libs.slider = {
- name : 'slider',
-
- version : '5.5.1',
-
- settings : {
- start : 0,
- end : 100,
- step : 1,
- precision : null,
- initial : null,
- display_selector : '',
- vertical : false,
- trigger_input_change : false,
- on_change : function () {}
- },
-
- cache : {},
-
- init : function (scope, method, options) {
- Foundation.inherit(this, 'throttle');
- this.bindings(method, options);
- this.reflow();
- },
-
- events : function () {
- var self = this;
-
- $(this.scope)
- .off('.slider')
- .on('mousedown.fndtn.slider touchstart.fndtn.slider pointerdown.fndtn.slider',
- '[' + self.attr_name() + ']:not(.disabled, [disabled]) .range-slider-handle', function (e) {
- if (!self.cache.active) {
- e.preventDefault();
- self.set_active_slider($(e.target));
- }
- })
- .on('mousemove.fndtn.slider touchmove.fndtn.slider pointermove.fndtn.slider', function (e) {
- if (!!self.cache.active) {
- e.preventDefault();
- if ($.data(self.cache.active[0], 'settings').vertical) {
- var scroll_offset = 0;
- if (!e.pageY) {
- scroll_offset = window.scrollY;
- }
- self.calculate_position(self.cache.active, self.get_cursor_position(e, 'y') + scroll_offset);
- } else {
- self.calculate_position(self.cache.active, self.get_cursor_position(e, 'x'));
- }
- }
- })
- .on('mouseup.fndtn.slider touchend.fndtn.slider pointerup.fndtn.slider', function (e) {
- self.remove_active_slider();
- })
- .on('change.fndtn.slider', function (e) {
- self.settings.on_change();
- });
-
- self.S(window)
- .on('resize.fndtn.slider', self.throttle(function (e) {
- self.reflow();
- }, 300));
- },
-
- get_cursor_position : function (e, xy) {
- var pageXY = 'page' + xy.toUpperCase(),
- clientXY = 'client' + xy.toUpperCase(),
- position;
-
- if (typeof e[pageXY] !== 'undefined') {
- position = e[pageXY];
- } else if (typeof e.originalEvent[clientXY] !== 'undefined') {
- position = e.originalEvent[clientXY];
- } else if (e.originalEvent.touches && e.originalEvent.touches[0] && typeof e.originalEvent.touches[0][clientXY] !== 'undefined') {
- position = e.originalEvent.touches[0][clientXY];
- } else if (e.currentPoint && typeof e.currentPoint[xy] !== 'undefined') {
- position = e.currentPoint[xy];
- }
-
- return position;
- },
-
- set_active_slider : function ($handle) {
- this.cache.active = $handle;
- },
-
- remove_active_slider : function () {
- this.cache.active = null;
- },
-
- calculate_position : function ($handle, cursor_x) {
- var self = this,
- settings = $.data($handle[0], 'settings'),
- handle_l = $.data($handle[0], 'handle_l'),
- handle_o = $.data($handle[0], 'handle_o'),
- bar_l = $.data($handle[0], 'bar_l'),
- bar_o = $.data($handle[0], 'bar_o');
-
- requestAnimationFrame(function () {
- var pct;
-
- if (Foundation.rtl && !settings.vertical) {
- pct = self.limit_to(((bar_o + bar_l - cursor_x) / bar_l), 0, 1);
- } else {
- pct = self.limit_to(((cursor_x - bar_o) / bar_l), 0, 1);
- }
-
- pct = settings.vertical ? 1 - pct : pct;
-
- var norm = self.normalized_value(pct, settings.start, settings.end, settings.step, settings.precision);
-
- self.set_ui($handle, norm);
- });
- },
-
- set_ui : function ($handle, value) {
- var settings = $.data($handle[0], 'settings'),
- handle_l = $.data($handle[0], 'handle_l'),
- bar_l = $.data($handle[0], 'bar_l'),
- norm_pct = this.normalized_percentage(value, settings.start, settings.end),
- handle_offset = norm_pct * (bar_l - handle_l) - 1,
- progress_bar_length = norm_pct * 100,
- $handle_parent = $handle.parent(),
- $hidden_inputs = $handle.parent().children('input[type=hidden]');
-
- if (Foundation.rtl && !settings.vertical) {
- handle_offset = -handle_offset;
- }
-
- handle_offset = settings.vertical ? -handle_offset + bar_l - handle_l + 1 : handle_offset;
- this.set_translate($handle, handle_offset, settings.vertical);
-
- if (settings.vertical) {
- $handle.siblings('.range-slider-active-segment').css('height', progress_bar_length + '%');
- } else {
- $handle.siblings('.range-slider-active-segment').css('width', progress_bar_length + '%');
- }
-
- $handle_parent.attr(this.attr_name(), value).trigger('change').trigger('change.fndtn.slider');
-
- $hidden_inputs.val(value);
- if (settings.trigger_input_change) {
- $hidden_inputs.trigger('change');
- }
-
- if (!$handle[0].hasAttribute('aria-valuemin')) {
- $handle.attr({
- 'aria-valuemin' : settings.start,
- 'aria-valuemax' : settings.end
- });
- }
- $handle.attr('aria-valuenow', value);
-
- if (settings.display_selector != '') {
- $(settings.display_selector).each(function () {
- if (this.hasOwnProperty('value')) {
- $(this).val(value);
- } else {
- $(this).text(value);
- }
- });
- }
-
- },
-
- normalized_percentage : function (val, start, end) {
- return Math.min(1, (val - start) / (end - start));
- },
-
- normalized_value : function (val, start, end, step, precision) {
- var range = end - start,
- point = val * range,
- mod = (point - (point % step)) / step,
- rem = point % step,
- round = ( rem >= step * 0.5 ? step : 0);
- return ((mod * step + round) + start).toFixed(precision);
- },
-
- set_translate : function (ele, offset, vertical) {
- if (vertical) {
- $(ele)
- .css('-webkit-transform', 'translateY(' + offset + 'px)')
- .css('-moz-transform', 'translateY(' + offset + 'px)')
- .css('-ms-transform', 'translateY(' + offset + 'px)')
- .css('-o-transform', 'translateY(' + offset + 'px)')
- .css('transform', 'translateY(' + offset + 'px)');
- } else {
- $(ele)
- .css('-webkit-transform', 'translateX(' + offset + 'px)')
- .css('-moz-transform', 'translateX(' + offset + 'px)')
- .css('-ms-transform', 'translateX(' + offset + 'px)')
- .css('-o-transform', 'translateX(' + offset + 'px)')
- .css('transform', 'translateX(' + offset + 'px)');
- }
- },
-
- limit_to : function (val, min, max) {
- return Math.min(Math.max(val, min), max);
- },
-
- initialize_settings : function (handle) {
- var settings = $.extend({}, this.settings, this.data_options($(handle).parent())),
- decimal_places_match_result;
-
- if (settings.precision === null) {
- decimal_places_match_result = ('' + settings.step).match(/\.([\d]*)/);
- settings.precision = decimal_places_match_result && decimal_places_match_result[1] ? decimal_places_match_result[1].length : 0;
- }
-
- if (settings.vertical) {
- $.data(handle, 'bar_o', $(handle).parent().offset().top);
- $.data(handle, 'bar_l', $(handle).parent().outerHeight());
- $.data(handle, 'handle_o', $(handle).offset().top);
- $.data(handle, 'handle_l', $(handle).outerHeight());
- } else {
- $.data(handle, 'bar_o', $(handle).parent().offset().left);
- $.data(handle, 'bar_l', $(handle).parent().outerWidth());
- $.data(handle, 'handle_o', $(handle).offset().left);
- $.data(handle, 'handle_l', $(handle).outerWidth());
- }
-
- $.data(handle, 'bar', $(handle).parent());
- $.data(handle, 'settings', settings);
- },
-
- set_initial_position : function ($ele) {
- var settings = $.data($ele.children('.range-slider-handle')[0], 'settings'),
- initial = ((typeof settings.initial == 'number' && !isNaN(settings.initial)) ? settings.initial : Math.floor((settings.end - settings.start) * 0.5 / settings.step) * settings.step + settings.start),
- $handle = $ele.children('.range-slider-handle');
- this.set_ui($handle, initial);
- },
-
- set_value : function (value) {
- var self = this;
- $('[' + self.attr_name() + ']', this.scope).each(function () {
- $(this).attr(self.attr_name(), value);
- });
- if (!!$(this.scope).attr(self.attr_name())) {
- $(this.scope).attr(self.attr_name(), value);
- }
- self.reflow();
- },
-
- reflow : function () {
- var self = this;
- self.S('[' + this.attr_name() + ']').each(function () {
- var handle = $(this).children('.range-slider-handle')[0],
- val = $(this).attr(self.attr_name());
- self.initialize_settings(handle);
-
- if (val) {
- self.set_ui($(handle), parseFloat(val));
- } else {
- self.set_initial_position($(this));
- }
- });
- }
- };
-
-}(jQuery, window, window.document));
+;(function ($, window, document, undefined) {
+ 'use strict';
+
+ Foundation.libs.slider = {
+ name : 'slider',
+
+ version : '5.5.1',
+
+ settings : {
+ start : 0,
+ end : 100,
+ step : 1,
+ precision : null,
+ initial : null,
+ display_selector : '',
+ vertical : false,
+ trigger_input_change : false,
+ on_change : function () {}
+ },
+
+ cache : {},
+
+ init : function (scope, method, options) {
+ Foundation.inherit(this, 'throttle');
+ this.bindings(method, options);
+ this.reflow();
+ },
+
+ events : function () {
+ var self = this;
+
+ $(this.scope)
+ .off('.slider')
+ .on('mousedown.fndtn.slider touchstart.fndtn.slider pointerdown.fndtn.slider',
+ '[' + self.attr_name() + ']:not(.disabled, [disabled]) .range-slider-handle', function (e) {
+ if (!self.cache.active) {
+ e.preventDefault();
+ self.set_active_slider($(e.target));
+ }
+ })
+ .on('mousemove.fndtn.slider touchmove.fndtn.slider pointermove.fndtn.slider', function (e) {
+ if (!!self.cache.active) {
+ e.preventDefault();
+ if ($.data(self.cache.active[0], 'settings').vertical) {
+ var scroll_offset = 0;
+ if (!e.pageY) {
+ scroll_offset = window.scrollY;
+ }
+ self.calculate_position(self.cache.active, self.get_cursor_position(e, 'y') + scroll_offset);
+ } else {
+ self.calculate_position(self.cache.active, self.get_cursor_position(e, 'x'));
+ }
+ }
+ })
+ .on('mouseup.fndtn.slider touchend.fndtn.slider pointerup.fndtn.slider', function (e) {
+ self.remove_active_slider();
+ })
+ .on('change.fndtn.slider', function (e) {
+ self.settings.on_change();
+ });
+
+ self.S(window)
+ .on('resize.fndtn.slider', self.throttle(function (e) {
+ self.reflow();
+ }, 300));
+ },
+
+ get_cursor_position : function (e, xy) {
+ var pageXY = 'page' + xy.toUpperCase(),
+ clientXY = 'client' + xy.toUpperCase(),
+ position;
+
+ if (typeof e[pageXY] !== 'undefined') {
+ position = e[pageXY];
+ } else if (typeof e.originalEvent[clientXY] !== 'undefined') {
+ position = e.originalEvent[clientXY];
+ } else if (e.originalEvent.touches && e.originalEvent.touches[0] && typeof e.originalEvent.touches[0][clientXY] !== 'undefined') {
+ position = e.originalEvent.touches[0][clientXY];
+ } else if (e.currentPoint && typeof e.currentPoint[xy] !== 'undefined') {
+ position = e.currentPoint[xy];
+ }
+
+ return position;
+ },
+
+ set_active_slider : function ($handle) {
+ this.cache.active = $handle;
+ },
+
+ remove_active_slider : function () {
+ this.cache.active = null;
+ },
+
+ calculate_position : function ($handle, cursor_x) {
+ var self = this,
+ settings = $.data($handle[0], 'settings'),
+ handle_l = $.data($handle[0], 'handle_l'),
+ handle_o = $.data($handle[0], 'handle_o'),
+ bar_l = $.data($handle[0], 'bar_l'),
+ bar_o = $.data($handle[0], 'bar_o');
+
+ requestAnimationFrame(function () {
+ var pct;
+
+ if (Foundation.rtl && !settings.vertical) {
+ pct = self.limit_to(((bar_o + bar_l - cursor_x) / bar_l), 0, 1);
+ } else {
+ pct = self.limit_to(((cursor_x - bar_o) / bar_l), 0, 1);
+ }
+
+ pct = settings.vertical ? 1 - pct : pct;
+
+ var norm = self.normalized_value(pct, settings.start, settings.end, settings.step, settings.precision);
+
+ self.set_ui($handle, norm);
+ });
+ },
+
+ set_ui : function ($handle, value) {
+ var settings = $.data($handle[0], 'settings'),
+ handle_l = $.data($handle[0], 'handle_l'),
+ bar_l = $.data($handle[0], 'bar_l'),
+ norm_pct = this.normalized_percentage(value, settings.start, settings.end),
+ handle_offset = norm_pct * (bar_l - handle_l) - 1,
+ progress_bar_length = norm_pct * 100,
+ $handle_parent = $handle.parent(),
+ $hidden_inputs = $handle.parent().children('input[type=hidden]');
+
+ if (Foundation.rtl && !settings.vertical) {
+ handle_offset = -handle_offset;
+ }
+
+ handle_offset = settings.vertical ? -handle_offset + bar_l - handle_l + 1 : handle_offset;
+ this.set_translate($handle, handle_offset, settings.vertical);
+
+ if (settings.vertical) {
+ $handle.siblings('.range-slider-active-segment').css('height', progress_bar_length + '%');
+ } else {
+ $handle.siblings('.range-slider-active-segment').css('width', progress_bar_length + '%');
+ }
+
+ $handle_parent.attr(this.attr_name(), value).trigger('change').trigger('change.fndtn.slider');
+
+ $hidden_inputs.val(value);
+ if (settings.trigger_input_change) {
+ $hidden_inputs.trigger('change');
+ }
+
+ if (!$handle[0].hasAttribute('aria-valuemin')) {
+ $handle.attr({
+ 'aria-valuemin' : settings.start,
+ 'aria-valuemax' : settings.end
+ });
+ }
+ $handle.attr('aria-valuenow', value);
+
+ if (settings.display_selector != '') {
+ $(settings.display_selector).each(function () {
+ if (this.hasOwnProperty('value')) {
+ $(this).val(value);
+ } else {
+ $(this).text(value);
+ }
+ });
+ }
+
+ },
+
+ normalized_percentage : function (val, start, end) {
+ return Math.min(1, (val - start) / (end - start));
+ },
+
+ normalized_value : function (val, start, end, step, precision) {
+ var range = end - start,
+ point = val * range,
+ mod = (point - (point % step)) / step,
+ rem = point % step,
+ round = ( rem >= step * 0.5 ? step : 0);
+ return ((mod * step + round) + start).toFixed(precision);
+ },
+
+ set_translate : function (ele, offset, vertical) {
+ if (vertical) {
+ $(ele)
+ .css('-webkit-transform', 'translateY(' + offset + 'px)')
+ .css('-moz-transform', 'translateY(' + offset + 'px)')
+ .css('-ms-transform', 'translateY(' + offset + 'px)')
+ .css('-o-transform', 'translateY(' + offset + 'px)')
+ .css('transform', 'translateY(' + offset + 'px)');
+ } else {
+ $(ele)
+ .css('-webkit-transform', 'translateX(' + offset + 'px)')
+ .css('-moz-transform', 'translateX(' + offset + 'px)')
+ .css('-ms-transform', 'translateX(' + offset + 'px)')
+ .css('-o-transform', 'translateX(' + offset + 'px)')
+ .css('transform', 'translateX(' + offset + 'px)');
+ }
+ },
+
+ limit_to : function (val, min, max) {
+ return Math.min(Math.max(val, min), max);
+ },
+
+ initialize_settings : function (handle) {
+ var settings = $.extend({}, this.settings, this.data_options($(handle).parent())),
+ decimal_places_match_result;
+
+ if (settings.precision === null) {
+ decimal_places_match_result = ('' + settings.step).match(/\.([\d]*)/);
+ settings.precision = decimal_places_match_result && decimal_places_match_result[1] ? decimal_places_match_result[1].length : 0;
+ }
+
+ if (settings.vertical) {
+ $.data(handle, 'bar_o', $(handle).parent().offset().top);
+ $.data(handle, 'bar_l', $(handle).parent().outerHeight());
+ $.data(handle, 'handle_o', $(handle).offset().top);
+ $.data(handle, 'handle_l', $(handle).outerHeight());
+ } else {
+ $.data(handle, 'bar_o', $(handle).parent().offset().left);
+ $.data(handle, 'bar_l', $(handle).parent().outerWidth());
+ $.data(handle, 'handle_o', $(handle).offset().left);
+ $.data(handle, 'handle_l', $(handle).outerWidth());
+ }
+
+ $.data(handle, 'bar', $(handle).parent());
+ $.data(handle, 'settings', settings);
+ },
+
+ set_initial_position : function ($ele) {
+ var settings = $.data($ele.children('.range-slider-handle')[0], 'settings'),
+ initial = ((typeof settings.initial == 'number' && !isNaN(settings.initial)) ? settings.initial : Math.floor((settings.end - settings.start) * 0.5 / settings.step) * settings.step + settings.start),
+ $handle = $ele.children('.range-slider-handle');
+ this.set_ui($handle, initial);
+ },
+
+ set_value : function (value) {
+ var self = this;
+ $('[' + self.attr_name() + ']', this.scope).each(function () {
+ $(this).attr(self.attr_name(), value);
+ });
+ if (!!$(this.scope).attr(self.attr_name())) {
+ $(this.scope).attr(self.attr_name(), value);
+ }
+ self.reflow();
+ },
+
+ reflow : function () {
+ var self = this;
+ self.S('[' + this.attr_name() + ']').each(function () {
+ var handle = $(this).children('.range-slider-handle')[0],
+ val = $(this).attr(self.attr_name());
+ self.initialize_settings(handle);
+
+ if (val) {
+ self.set_ui($(handle), parseFloat(val));
+ } else {
+ self.set_initial_position($(this));
+ }
+ });
+ }
+ };
+
+}(jQuery, window, window.document));