function SlideShow(pictureID,backgroundID,o) {
	var eImg = document.getElementById(pictureID);
	var eDiv = document.getElementById(backgroundID);

	//IE hax
	if("\v" == "v") {
		eImg.style.display = "none";
	}
	
	var slideCache = new Array();

	var totImg = 0;
	var nextImg = 0;
	
	eDiv.onclick = onclickDiv;
	
	totImg = o.length;
	
	var msStart = null;
	
	//cache all images
	for(var i = 0; i<totImg; i++) {
		slideCache[i] = new Image;
		slideCache[i].loaded = false;
		slideCache[i].onload = function() {this.loaded=true};
		slideCache[i].src = o[i].src;
		slideCache[i].lnk = o[i].lnk;
	}
	RunSlideShow();

	function RunSlideShow() {
		if (slideCache[nextImg] && slideCache[nextImg].loaded) {
			FadeInImage(nextImg);
			setTimeout(RunSlideShow,7000); //7sec delay
			nextImg = ++nextImg%totImg;
		} else {
			setTimeout(RunSlideShow,250); //picture not loaded, wait
		}
	}
	function so(op) {
		eImg.style.MozOpacity = op/100;
		eImg.style.opacity = op/100;
	}
	function ch() {
		var msNow = (new Date()).getTime();
		var opacity = 100 - (100 * (msNow - msStart) / 1000);
		if (opacity>=100) {
			so(100);
			eImg.timer = undefined;
		}
		else if (opacity<=0) {
			so(0);
			eImg.timer = undefined;
		}
		else {
			so(opacity);
			eImg.timer = window.setTimeout(ch,10);
		}
	}
	function FadeInImage(newImage)
	{
		if (eImg.timer) window.clearTimeout(eImg.timer);
		var ns = slideCache[nextImg].src;
		var l = slideCache[nextImg].lnk;

		if (eDiv)
		{
			if (eDiv.src)
			{
				eImg.src = eDiv.src;	
				so(100);
			}
			eDiv.src = ns;
			eDiv.style.backgroundImage = ['url(',ns,')'].join('');
			eDiv.style.backgroundRepeat = 'no-repeat';
			
			if (l!="") {
				eDiv.style.cursor="pointer";
				eDiv.lnk=l;
			}
			else {
				eDiv.style.cursor="";
				eDiv.lnk = null;
			}
			
			msStart = (new Date()).getTime();
			eImg.timer = window.setTimeout(ch,10);
		} else {
			eImg.src = ns;
		}
	}

	function onclickDiv() {if(eDiv.lnk)location.href = eDiv.lnk;}
}
