diff -r f6f70eb8d8bf -r cd175dddc15c app/jquery/jquery-progressbar.js --- /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);