app/jquery/jquery-progressbar.js
changeset 1328 cd175dddc15c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/app/jquery/jquery-progressbar.js	Sat Feb 14 21:18:12 2009 +0000
@@ -0,0 +1,130 @@
+/*
+ * jQuery Progress Bar plugin
+ * Version 1.1.0 (06/20/2008)
+ * @requires jQuery v1.2.1 or later
+ *
+ * Copyright (c) 2008 Gary Teo
+ * http://t.wits.sg
+
+USAGE:
+	$(".someclass").progressBar();
+	$("#progressbar").progressBar();
+	$("#progressbar").progressBar(45);							// percentage
+	$("#progressbar").progressBar({showText: false });			// percentage with config
+	$("#progressbar").progressBar(45, {showText: false });		// percentage with config
+*/
+(function($) {
+	$.extend({
+		progressBar: new function() {
+			this.defaults = {
+				increment	: 2,
+				speed		: 15,
+				showText	: true,											// show text with percentage in next to the progressbar? - default : true
+				width		: 120,											// Width of the progressbar - don't forget to adjust your image too!!!
+				boxImage	: '/soc/content/images/progressbar.gif',		// boxImage : image around the progress bar
+				barImage	: '/soc/content/images/progressbg_green.gif',	// Image to use in the progressbar. Can be an array of images too.
+				height		: 12											// Height of the progressbar - don't forget to adjust your image too!!!
+			};
+			
+			/* public methods */
+			this.construct = function(arg1, arg2) {
+				var argpercentage	= null;
+				var argconfig		= null;
+				
+				if (arg1 != null) {
+					if (!isNaN(arg1)) {
+						argpercentage 	= arg1;
+						if (arg2 != null) {
+							argconfig	= arg2; }
+					} else {
+						argconfig		= arg1; 
+					}
+				}
+				
+				return this.each(function(child) {
+					var pb		= this;
+					if (argpercentage != null && this.bar != null && this.config != null) {
+						this.config.tpercentage	= argpercentage;
+						if (argconfig != null)
+							pb.config			= $.extend(this.config, argconfig);
+					} else {
+						var $this				= $(this);
+						var config				= $.extend({}, $.progressBar.defaults, argconfig);
+						var percentage			= argpercentage;
+						if (argpercentage == null)
+							var percentage		= $this.html().replace("%","");	// parsed percentage
+						
+
+						$this.html("");
+						var bar					= document.createElement('img');
+						var text				= document.createElement('span');
+						bar.id 					= this.id + "_percentImage";
+						text.id 				= this.id + "_percentText";
+						bar.src					= config.boxImage;
+						bar.width				= config.width;
+						var $bar				= $(bar);
+						var $text				= $(text);
+						
+						this.bar				= $bar;
+						this.ntext				= $text;
+						this.config				= config;
+						this.config.cpercentage	= 0;
+						this.config.tpercentage	= percentage;
+						
+						$bar.css("width", config.width + "px");
+						$bar.css("height", config.height + "px");
+						$bar.css("background-image", "url(" + config.barImage + ")");
+						$bar.css("padding", "0");
+						$bar.css("margin", "0");
+
+						$this.append($bar);
+						$this.append($text);
+						
+						bar.alt				= this.tpercentage;
+						bar.title			= this.tpercentage;
+					}
+					
+					
+					
+					var t = setInterval(function() {
+						var config		= pb.config;
+						var cpercentage = parseInt(config.cpercentage);
+						var tpercentage = parseInt(config.tpercentage);
+						var increment	= parseInt(config.increment);
+						var bar			= pb.bar;
+						var text		= pb.ntext;
+						var pixels		= config.width / 100;			// Define how many pixels go into 1%
+						
+						bar.css("background-position", (((config.width * -1)) + (cpercentage * pixels)) + 'px 50%');
+						
+						if (config.showText)
+							text.html(" " + Math.round(cpercentage) + "%");
+						
+						if (cpercentage > tpercentage) {
+							if (cpercentage - increment  < tpercentage) {
+								pb.config.cpercentage = 0 + tpercentage
+							} else {
+								pb.config.cpercentage -= increment;
+							}
+						}
+						else if (pb.config.cpercentage < pb.config.tpercentage) {
+							if (cpercentage + increment  > tpercentage) {
+								pb.config.cpercentage = tpercentage
+							} else {
+								pb.config.cpercentage += increment;
+							}
+						} 
+						else {
+							clearInterval(t);
+						}
+					}, pb.config.speed); 
+				});
+			};
+		}
+	});
+		
+	$.fn.extend({
+        progressBar: $.progressBar.construct
+	});
+	
+})(jQuery);