
	function slideshow (containerID, containerWidth, containerHeight, detailsContainer){
	
		var d=document, imgs = new Array(), buttons = new Array(), zInterval = null, current=0, pause=false;
		 
		var the_timeout;
		var the_fadeTimeout;
		
		var counterValue = 0;
		var bahTwo = true;
		var checkForFunction = true;
		var loadFirstTime = true;

		this.containerWidth = containerWidth;
		this.containerHeight = containerHeight;
	
		var cOpacity;		
		var next;		
		var nIndex;		
		var nOpacity;
		
		this.setActive = setActiveBy;
	
		function setActiveBy(number){
			clearTimeout(the_fadeTimeout);
			clearTimeout(the_timeout);
			
			previousImage = current;
			//current = number;
			
			nIndex = imgs[number-1]?number-1:0;
			nOpacity = imgs[nIndex].xOpacity;
			
			buttons = d.getElementsByName("aButton");
			details = d.getElementsByName("aDetails");
			//alert(buttons.length)
			for(i=0;i<buttons.length;i++){ 
				buttons[i].className = null;
				document.getElementById("details"+(i)).className = 'detailsDeSelected';
			}
			
			buttons[(number-1)].className = 'selected';
			document.getElementById("details"+(number-1)).className = 'detailsSelected';
			//document.getElementById("details"+(number)).style.display = 'inline';
			
			fade();
		}
	
		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);
					imgs[current].style.top = (topVal - 1) + "px";
					dodis += 1;
					bahTwo = false;
					the_timeout = setTimeout(function() {checkHeights(dodis);}, 50);
				} else { 
					bahTwo = true;
					the_fadeTimeout = setTimeout(so_xfade,8000);
				}
			}
			else {
				
					the_fadeTimeout = setTimeout(so_xfade,8000);
				
			}
			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;
					the_fadeTimeout = setTimeout(so_xfade,8000);
				}
			}
			else {
				
					the_fadeTimeout = setTimeout(so_xfade,8000);
					
			}
			previousImage = current;
		}
		function so_init(containerID) {			
			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);
			
			previousImage = current;
			
			imgs[0].xOpacity = 100;
			
			
			buttons = d.getElementsByName("aButton");
			//alert(buttons.length)
			for(i=0;i<buttons.length;i++){
				buttons[i].className = null;
				document.getElementById("details"+(i)).className = 'detailsDeSelected';
			}
			
			buttons[current].className = 'selected';
			document.getElementById("details"+(current)).className = 'detailsSelected';
			
			current = imgs.length-1;
			next = 0;			
			nIndex = imgs[next]?next:0;
			nOpacity = imgs[nIndex].xOpacity;
			
			
			fade();
			
		}
		
		function fade(){
			//alert(nIndex)
			cOpacity = imgs[current].xOpacity;
			cOpacity-=.05; 
			nOpacity+=.05;
			
			imgs[nIndex].style.display = "inline";
			imgs[current].xOpacity = cOpacity;
			imgs[nIndex].style.left = 0;
			imgs[nIndex].style.top = 0;
			imgs[nIndex].xOpacity = nOpacity;
			
			setOpacity(imgs[current]);
			setOpacity(imgs[nIndex]);
					
			if(cOpacity<=0) {
				
				imgs[current].style.display = "none";
				current = nIndex;					
				// check height of image and if falls outside of div then move up.
				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 {
				the_fadeTimeout = setTimeout(fade,10);
			}
			
			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;
			}
		}
	
		function so_xfade() {
			
			buttons = d.getElementsByName("aButton");
			//alert(buttons.length)
			for(i=0;i<buttons.length;i++){
				buttons[i].className = null;
				document.getElementById("details"+(i)).className = 'detailsDeSelected';
			}
			
			next = current + 1;			
			nIndex = imgs[next]?next:0;
			nOpacity = imgs[nIndex].xOpacity;
			
			
			buttons[nIndex].className = 'selected';
			document.getElementById("details"+(nIndex)).className = 'detailsSelected';
			
			fade();
		}
		so_init(containerID);
	}
