/*	gauge.js
	copyleft Tancrède Bastié 2005-2008

requires :
	dom.js

index :
	Gauge(filePrefix, fileSuffix, [numberOfValues])
		addGauge(id)
		sum([...])
*/

function Gauge(filePrefix, fileSuffix, numberOfValues) {
/*	prototype of a graphical gauge made from small images
	an image filename is a prefix, an automatic index and a suffix, e.g. : "gauge_0.gif"
	prototype de jauge graphique faite de petites images
	un nom d'une image est un préfixe, un index automatique et un suffixe, ex. : "gauge_0.gif"
*/
	if (numberOfValues == null) numberOfValues = 2;
	var values = new Array();
	for (var i = 0; i < numberOfValues; i++) values[i] = 0;

	var images = new Array;

	this.addGauge = function(id) {
	/*	create the gauge
		créer la jauge
	*/
		var container = document.getElementById(id);
		for (var i = 1; i <= 100; i++) {
			images[i] = img(filePrefix + "0" + fileSuffix, i + "%", i + "%");
			container.appendChild(images[i]);
		}
		return container;
	}

	this.sum = function() {
	/*	sum arguments with existing values and update the gauge
		somme les arguments aux valeurs existantes et met à jour la jauge
	*/
		var total = 0;
		for (var i = 0; i < arguments.length; i++) total += values[i] += arguments[i];
		var j = 1;
		var percent = 0;
		for (var i = 0; i < values.length; i++) {
			percent += 100 * values[i] / total;
			while (j <= percent) {
				images[j].src = filePrefix + i + fileSuffix;
				j += 1;
			}
		}
		return values;
	}
}
