function slideshow (containerID, containerWidth, containerHeight){	
	var d=document, imgs = new Array(), zInterval = null, current=0, pause=false;
	var counterValue = 0;
	var bahTwo = true;
	var checkForFunction = true;
	this.containerWidth = containerWidth;
	this.containerHeight = containerHeight;
	function checkHeights(dodis){
		ih = imgs[current].height;
		if (ih > (parseFloat(containerHeight) + 10)) {
			ihd = ih - parseFloat(containerHeight);			
			if (dodis < ihd) {
				topStr = imgs[current].style.top;
				pxStart = topStr.indexOf("px");
				topVal = topStr.substring(0,pxStart);
				//alert(topStr.substring(0,pxStart))
				imgs[current].style.top = (topVal - 1) + "px";
				dodis += 1;
				bahTwo = false;
				the_timeout = setTimeout(function() {checkHeights(dodis);}, 50);
			} else { 
				bahTwo = true;
				setTimeout(so_xfade,4000);
			}
		}
		else {
			setTimeout(so_xfade,4000);
		}
		previousImage = current;
	}
	function checkWidths(dodis){
		this.iw = imgs[current].width;
		if (iw > (parseFloat(containerWidth) + 10)) {
			iwd = iw - parseFloat(containerWidth);			
			if (dodis < iwd) {
				leftStr = imgs[current].style.left;
				pxStart = leftStr.indexOf("px");
				leftVal = leftStr.substring(0,pxStart);
				imgs[current].style.left = (leftVal - 1) + "px";
				dodis += 1;
				bahTwo = false;
				the_timeout = setTimeout(function() {checkWidths(dodis);}, 50);
			} else {
				bahTwo = true;
				setTimeout(so_xfade,4000);
			}
		}
		else {
			setTimeout(so_xfade,4000);
		}
		previousImage = current;
	}
	function so_init(containerID) {
		//alert('asdfasdf');
		if(!d.getElementById || !d.createElement)return;
		imgs = d.getElementById(containerID).getElementsByTagName("img");
		for(i=1;i<imgs.length;i++){
			imgs[i].xOpacity = 0;
		}
		imgs[0].xOpacity = .99;
		var new_height = imgs[current].height/imgs[current].width * parseFloat(containerWidth);
		var new_width = imgs[current].width/imgs[current].height * parseFloat(containerHeight);		
		if (new_height > parseFloat(containerHeight)) {
			checkHeights(0);
		}
		else if (new_width > parseFloat(containerWidth)) {
			checkWidths(0);
		}
		else {
			previousImage = current;
			so_xfade();
		}
	}
	function so_xfade() {
		cOpacity = imgs[current].xOpacity;
		nIndex = imgs[current+1]?current+1:0;
		nOpacity = imgs[nIndex].xOpacity;
		cOpacity-=.05; 
		nOpacity+=.05;
		imgs[nIndex].style.display = "inline";
		imgs[current].xOpacity = cOpacity;
		imgs[nIndex].style.left = 0;
		imgs[nIndex].xOpacity = nOpacity;
		setOpacity(imgs[current]);
		setOpacity(imgs[nIndex]);
		if(cOpacity<=0) {
			imgs[current].style.display = "none";
			current = nIndex;
			x=new Image;
			x.src=imgs[current].src;
			iw=x.width;
			ih=x.height;
			ix=imgs[current].style.top;
			iy=imgs[current].style.left;
			
			if (imgs[previousImage]){
				imgs[previousImage].style.top = "0px";
				imgs[previousImage].style.left = "0px";
			}
			new_height = imgs[current].height/imgs[current].width * parseFloat(containerWidth);
			if (new_height > parseFloat(containerHeight)) {
				checkHeights(0);
			}
			else {
				checkWidths(0);
			}					
			bahTwo = true;
		} else {
			setTimeout(so_xfade,0);
		}
		function setOpacity(obj) {
			if(obj.xOpacity>.99) {
				obj.xOpacity = .99;
				obj.style.filter = "alpha(opacity=100)";
				return;
			}
			else {
				obj.style.filter = "alpha(opacity=" + (obj.xOpacity*100) + ")";
			}
			obj.style.opacity = obj.xOpacity;
			obj.style.MozOpacity = obj.xOpacity;
		}
	}
	so_init(containerID);
}