function SlideShow(interval, tabsId){
	this.aSlideShow = [];
	this.tabsId = tabsId;
	this.intervalId = null;
	this.index = 0;
	if(interval)
		this.interval = interval;
	else
		this.interval = 1000;
	
	this.nextSlide = function(){
		if(++this.index > this.aSlideShow.length - 1)
			this.index = 0;
		this.populateSlide();
	}
	this.prevSlide = function(){
		if(--this.index < 0)
			this.index = this.aSlideShow.length - 1;
		this.populateSlide();
	}
	this.showSlideByTabId = function(tabId){
		//tab id is basically 1 based index of the slide we want to show so we
		//have to decrement it
		var index = parseInt(tabId);
		index--;
		this.showSlide(this.aSlideShow[index]);
	}
	this.showSlide = function(elemId){
		//hide all slideshow elements
		for(var i = 0; i < this.aSlideShow.length; i++){
			var element = document.getElementById(this.aSlideShow[i]);
			element.style.display = "none";
		}
		var showElement = document.getElementById(elemId);
		if(showElement)
			showElement.style.display = "block";
		//set the right list item to the id of active so it high lights correctly
		if(tabsId && showElement){
			var index = this.findIndexByElementId(elemId);
			var tabsLists = document.getElementsByName(tabsId);
			if(tabsLists){
				for(var i = 0; i < tabsLists.length; i++){
					//reset class on all tabs
					for(var j = 0; j < tabsLists[i].childNodes.length; j++){
						var node = tabsLists[i].childNodes[j];
						node.className = "nonactive" + i + j;
						node.id = "tab" + i + j;						
					}
					
					//one tab for each slide plus pause and play so...
					if(tabsLists[i].childNodes.length > this.aSlideShow.length + 2){
						var tempIndex = index * 2;
						tabsLists[i].childNodes[tempIndex].className = "active2";
						tabsLists[i].childNodes[tempIndex].id = "active2";
						tabsLists[i].childNodes[tempIndex + 1].className = "active2";
						tabsLists[i].childNodes[tempIndex + 1].id = "active2";
					} else {
						tabsLists[i].childNodes[index].className = "active2";
						tabsLists[i].childNodes[index].id = "active2";
					}
				}
				//alert('setting ' + index + " active in " + i);
				/*
				var table = showElement.childNodes[1];
				var rows = table.childNodes[1];
				var row = rows.childNodes[2];
				var col = row.childNodes[1];
				var navOuter = col.childNodes[9];
				var nav2 = navOuter.childNodes[1];
				var navList = nav2.childNodes[1];
				for(var i = 0; i < navList.childNodes.length; i++){
					//alert(navList.childNodes[i].innerHTML + " " + i);
				}
				//*/
			}
		}
	}
	this.findIndexByElementId = function(elemId){
		var i;
		for(i = 0; i < this.aSlideShow.length; i++){
			if(elemId == this.aSlideShow[i])
				return i;
		}
	}
	this.populateSlide = function(){
		if(!this.aSlideShow[this.index])
			return;
		this.showSlide(this.aSlideShow[this.index]);
	}
	this.stopSlideShow = function(){
		window.clearInterval(this.intervalId);
		this.intervalId = null;
	}
	this.startSlideShow = function(){
		if(this.intervalId == null){
			var me = this;
			this.intervalId = setInterval(function(){me.nextSlide()}, this.interval);
		}
	}
	this.loadSlideShow = function(){
		var me = this;
		this.intervalId = setInterval(function(){me.nextSlide()}, this.interval);
		//we should have everything loaded so show what start 'er up!
		this.showSlide(this.aSlideShow[0]);
	}
	this.addSlide = function(slideId){
		this.aSlideShow[this.aSlideShow.length] = slideId;
		//when they get added always reset to 0
		this.showSlide(this.aSlideShow[0]);
	}
	//run the load slide show
	this.loadSlideShow();
}
