/*
	script by Warwick Adderley: warwick@pretzel.com.au
*/

var limgpreload = true;

var definedPreloads = new Array();

function imgLoaded(which) {
	definedPreloads[which].loaded ++;
	
	if (definedPreloads[which].loaded == definedPreloads[which].imgsrcs.length) {
		if (definedPreloads[which].destination)
			location.replace(definedPreloads[which].destination);
		else
			eval(definedPreloads[which].imageLoadAction);
		}
	else
		setTimeout("definedPreloads["+ which + "].doPreload()", 1);
	}

function _doPreload() {
	if (!this.imgObjects)
		this.imgObjects = this.getImgObjects();
	this.imgObjects[this.loaded].src = this.imgsrcs[this.loaded];
	}

function _statusBar() {
	this.doStatusBar = true;
	this.noBar = new Image();
	this.noBar.src = this.noBarImage;
	this.bar = new Image();
	this.bar.src = this.barImage;
	
	var imgWidth = this.statusWidth / this.imgsrcs.length;
	var writeStr = new String("<TABLE BORDER=0 CELLPADDING=0 CELLSPACING=0><TR><TD NOWRAP>");
	
	for (var i in this.imgsrcs) {
		writeStr += "<IMG NAME='status" + i + "' SRC=" + this.noBar.src + " BORDER=0 HEIGHT=" + this.statusHeight + " WIDTH=" + imgWidth + ">"
		}
	
	writeStr += "</TD></TR></TABLE>";
	
	document.write(writeStr);
	}

function _getImgObjects() {
	retArr = new Array();
	
	for (var i in this.imgsrcs) {
		retArr[i] = new Image();
		if (this.doStatusBar)
			retArr[i].onload = new Function ("document.status" + i + ".src = '" + this.bar.src + "'; imgLoaded(" + this.preloadId + ");");
		else
			retArr[i].onload = new Function ("imgLoaded(" + this.preloadId + ");");
		}
	
	return retArr;
	}

function loader() {
	this.statusWidth = 0;
	this.statusHeight = 0;
	this.barImage = null;
	this.noBarImage = null;
	this.destination = false;
	this.imageLoadAction = false;
	
	this.preloadId = definedPreloads.length;
	definedPreloads[this.preloadId] = this;
	
	this.loaded = 0;
	this.imgsrcs = new Array();
	
	if (typeof(arguments[0]) == "object")
		this.imgsrcs = arguments[0];
	else {
		for (var i = 0; i < arguments.length; i++) {
			this.imgsrcs[i] = arguments[i];
			}
		}
	
	this.getImgObjects = _getImgObjects;
	this.doPreload = _doPreload;
	this.statusBar = _statusBar;
	}