src/ztfy/myams/resources/js/ext/bootstrap-progressbar-0.6.0.js
changeset 0 8a19e25e39e4
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/ztfy/myams/resources/js/ext/bootstrap-progressbar-0.6.0.js	Wed May 07 10:36:24 2014 +0200
@@ -0,0 +1,168 @@
+/*!
+ * bootstrap-progressbar v0.6.0 by @minddust
+ * Copyright (c) 2012-2013 Stephan Gross
+ *
+ * https://www.minddust.com/bootstrap-progressbar
+ *
+ * Licensed under the MIT license:
+ * http://www.opensource.org/licenses/MIT
+ */
+(function ($) {
+
+	'use strict';
+
+	// PROGRESSBAR CLASS DEFINITION
+	// ============================
+
+	var Progressbar = function (element, options) {
+		this.$element = $(element);
+		this.options = $.extend({}, Progressbar.defaults, options);
+	};
+
+	Progressbar.defaults = {
+		transition_delay: 300,
+		refresh_speed: 50,
+		display_text: 'none',
+		use_percentage: true,
+		percent_format: function (percent) {
+			return percent + '%';
+		},
+		amount_format: function (amount_part, amount_total) {
+			return amount_part + ' / ' + amount_total;
+		},
+		update: $.noop,
+		done: $.noop,
+		fail: $.noop
+	};
+
+	Progressbar.prototype.transition = function () {
+		var $this = this.$element;
+		var $parent = $this.parent();
+		var $back_text = this.$back_text;
+		var $front_text = this.$front_text;
+		var options = this.options;
+		var aria_valuetransitiongoal = $this.attr('aria-valuetransitiongoal');
+		var aria_valuemin = $this.attr('aria-valuemin') || 0;
+		var aria_valuemax = $this.attr('aria-valuemax') || 100;
+		var is_vertical = $parent.hasClass('vertical');
+		var update = options.update && typeof options.update === 'function' ? options.update : Progressbar.defaults.update;
+		var done = options.done && typeof options.done === 'function' ? options.done : Progressbar.defaults.done;
+		var fail = options.fail && typeof options.fail === 'function' ? options.fail : Progressbar.defaults.fail;
+
+		if (!aria_valuetransitiongoal) {
+			fail('aria-valuetransitiongoal not set');
+			return;
+		}
+		var percentage = Math.round(100 * (aria_valuetransitiongoal - aria_valuemin) / (aria_valuemax - aria_valuemin));
+
+		if (options.display_text === 'center' && !$back_text && !$front_text) {
+			this.$back_text = $back_text = $('<span>').addClass('progressbar-back-text').prependTo($parent);
+			this.$front_text = $front_text = $('<span>').addClass('progressbar-front-text').prependTo($this);
+
+			var parent_size;
+
+			if (is_vertical) {
+				parent_size = $parent.css('height');
+				$back_text.css({height: parent_size, 'line-height': parent_size});
+				$front_text.css({height: parent_size, 'line-height': parent_size});
+
+				$(window).resize(function () {
+					parent_size = $parent.css('height');
+					$back_text.css({height: parent_size, 'line-height': parent_size});
+					$front_text.css({height: parent_size, 'line-height': parent_size});
+				}); // normal resizing would brick the structure because width is in px
+			}
+			else {
+				parent_size = $parent.css('width');
+				$front_text.css({width: parent_size});
+
+				$(window).resize(function () {
+					parent_size = $parent.css('width');
+					$front_text.css({width: parent_size});
+				}); // normal resizing would brick the structure because width is in px
+			}
+		}
+
+		setTimeout(function () {
+			var current_percentage;
+			var current_value;
+			var this_size;
+			var parent_size;
+			var text;
+
+			if (is_vertical) {
+				$this.css('height', percentage + '%');
+			}
+			else {
+				$this.css('width', percentage + '%');
+			}
+
+			var progress = setInterval(function () {
+				if (is_vertical) {
+					this_size = $this.height();
+					parent_size = $parent.height();
+				}
+				else {
+					this_size = $this.width();
+					parent_size = $parent.width();
+				}
+
+				current_percentage = Math.round(100 * this_size / parent_size);
+				current_value = Math.round(this_size / parent_size * (aria_valuemax - aria_valuemin));
+
+				if (current_percentage >= percentage) {
+					current_percentage = percentage;
+					current_value = aria_valuetransitiongoal;
+					done();
+					clearInterval(progress);
+				}
+
+				if (options.display_text !== 'none') {
+					text = options.use_percentage ? options.percent_format(current_percentage) : options.amount_format(current_value, aria_valuemax);
+
+					if (options.display_text === 'fill') {
+						$this.text(text);
+					}
+					else if (options.display_text === 'center') {
+						$back_text.text(text);
+						$front_text.text(text);
+					}
+				}
+				$this.attr('aria-valuenow', current_value);
+
+				update(current_percentage);
+			}, options.refresh_speed);
+		}, options.transition_delay);
+	};
+
+
+	// PROGRESSBAR PLUGIN DEFINITION
+	// =============================
+
+	var old = $.fn.progressbar;
+
+	$.fn.progressbar = function (option) {
+		return this.each(function () {
+			var $this = $(this);
+			var data = $this.data('bs.progressbar');
+			var options = typeof option === 'object' && option;
+
+			if (!data) {
+				$this.data('bs.progressbar', (data = new Progressbar(this, options)));
+			}
+			data.transition();
+		});
+	};
+
+	$.fn.progressbar.Constructor = Progressbar;
+
+
+	// PROGRESSBAR NO CONFLICT
+	// =======================
+
+	$.fn.progressbar.noConflict = function () {
+		$.fn.progressbar = old;
+		return this;
+	};
+
+})(window.jQuery);