	function ImagePreloader(images, call, callback) {
		this.call = call;
		this.callback = callback;
		this.length = images.length;
		this.loaded = 0;
		this.processed = 0;
		this.images = new Array;
		this.links = new Array;

		for (var i = 0; i < images.length; i++) this.preload(images[i]);
	}


	ImagePreloader.prototype.preload = function(pObj) {
		var img = new Image;
		this.images.push(img);

		img.onload = ImagePreloader.prototype.onload;
		img.onerror = ImagePreloader.prototype.onerror;
		img.onabort = ImagePreloader.prototype.onabort;
		
		img.oImagePreloader = this;
		img.loaded = false;
		img.error = false;
		img.abort = false;
		
		var image;
		var url = '';
		var lIsArray = null;
		
		if (typeof pObj == 'object') lIsArray = pObj.constructor.toString().match(/array/i);
			
		if (lIsArray != null) {
			image = pObj[0];
			if (pObj.length > 0) url = pObj[1];
		} else image = pObj;

		img.src = image;
		this.links.push(url);
	}


	ImagePreloader.prototype.onComplete = function() {
		this.processed++;
		if (this.call != null) this.call(this.length, this.loaded, this.processed);
		if (this.processed == this.length && this.callback != null) this.callback(this.images, this.loaded, this.links);
	}


	ImagePreloader.prototype.onload = function() {
		this.loaded = true;
		this.oImagePreloader.loaded++;
		this.oImagePreloader.onComplete();
	}
	

	ImagePreloader.prototype.onerror = function() {
		this.error = true;
		this.oImagePreloader.onComplete();
	}
	

	ImagePreloader.prototype.onabort = function() {
		this.abort = true;
		this.oImagePreloader.onComplete();
	}


	function Slideshow(images, links, screenElm, linkElm, speed, fade) {
		this.interval;
		this.screen = document.getElementById(screenElm);
		this.url = document.getElementById(linkElm);
		this.current = 0;
		this.speed = speed;
		this.fade = fade;
		this.slides = images;
		this.links = links;

		return this;
	}


	Slideshow.prototype.Change = function(pDir) {
		this.current += pDir;
		
		if (this.current < 0) this.current = this.slides.length - 1; else if (this.current >= this.slides.length) this.current = 0;

		if (this.screen.src != this.slides[this.current].src) { 
			if (document.all) {
				this.screen.style.filter = "blendTrans(duration=" + this.fade + ")";
				this.screen.filters.blendTrans.Apply();
			}

			this.screen.src = this.slides[this.current].src;
			if (document.all) this.screen.filters.blendTrans.Play();
		}

	}

	Slideshow.prototype.Next = function() { this.Change(1); }

	Slideshow.prototype.Previous = function() { this.Change(-1); }
	
	Slideshow.prototype.GoToURL = function() {
		if (this.links[this.current].length) location.href = this.links[this.current];
		
		return false;
	}
	

	function LoadSlide(pLength, pLoaded, pProcessed) {
		
		
	}
	

	function LoadSlideshow(pImages, pLoaded, plinks) {
		var slideScreen = "slideScreen";
		var slidelink = "slidelink";
		var speed = 10000;
		var duration = 1;

		show = new Slideshow(pImages, plinks, slideScreen, slidelink, speed, duration);

//		var cSlide = document.getElementById("currentSlide");
//		if (cSlide) cSlide.innerHTML = show.current + 1;

//		var sTotal = document.getElementById("totalSlides");
//		if (sTotal) sTotal.innerHTML = show.slides.length;

//		show.Change(GetInitialSlideOffset(pImages));

//		var bar = document.getElementById('slideBar');
//		if (bar) bar.style.display = "none";
		
//		var stats = document.getElementById("slideStats");
//		if (stats) stats.style.display = "block";
		
//		var prev = document.getElementById("slidePrevious");
//		if (prev) prev.style.display = "block";
		
//		var next = document.getElementById("slideNext");
//		if (next) next.style.display = "block";
		
		setInterval("show.Next()", 10000);
	}

	

	function LoadInitialSlide(pDefault) {
		var file = GetQueryStringParam('slide');

		var img = new Image;
		if (file.length > 0) {
			img.src = file;
		} else {
			var lIsArray = null;
			if (typeof pDefault == 'object') lIsArray = pDefault.constructor.toString().match(/array/i);
			if (lIsArray != null) {
				img.src = pDefault[0];
			} else img.src = pDefault;
		}

		var obj = document.getElementById('slideScreen');
		obj.src = img.src;
	}
	
	
	function GetQueryStringParam(pName) {
		var lValue = '';
		var lQueryString = unescape(document.location.href.slice(document.location.href.indexOf("?") + 1));
		var lQSPairs = lQueryString.split("&");

		for (i = 0; i < lQSPairs.length; i++) {
			var lPair = lQSPairs[i].split("=");
			if (lPair[0].toLowerCase() == pName.toLowerCase()) lValue = lPair[1];
		}

		return lValue;
	}

	
	function GetInitialSlideOffset(lImages) {
		var lOffset = 0;
		var lSlide = GetQueryStringParam('slide');

		if (lSlide.length > 0) {
			for (i = 0; i < lImages.length; i++) {
				if (lImages[i].src.indexOf(lSlide) >= 0) lOffset = i;
			}
		}

		return lOffset;
	}

