// generic code used for a slideshow
var g_fadeTimeout;

/****************************************************
Function: Slideshow
Description: Slideshow functionality for slide demos.
Notes - 
	* addSlide() method takes one argument - the name of the new slide.
****************************************************/
function slideShow(name) {
	this.slides = [];
	this.currSlide = 0;
	//slideTimeout - the timeout (set and clear) variable;
	this.slideTimeout = false;
	this.name = name;
	this.transitionInterval = 2000;
	this.slideInterval = 2000;
	this.loop = false;
	//imgList - used to find initial list of image src. Used for the last slide where the slides are reviewable.
	this.imgList = []; 
	this.addToInit = function() {};
	this.addToPlayLoop = function() {};
	this.initSlides = function() {
		var slideVar = this.slides;
		if (document.getElementById){
			for (i = 0; i < slideVar.length; i++){
				if (this.imgList.length!=slideVar.length){
					this.imgList[i] = document.images["slide"+(i+1)+"_image"].src;
				}
				
				changeOpac(0, slideVar[i]);
				document.getElementById(slideVar[i]).style.visibility = "hidden";
				document.getElementById(slideVar[i]).style.zIndex = 100-i;
			}
			var clickableLiObj = document.getElementById("submit-3");
			this.goToSlide(clickableLiObj,3);			
			this.addToInit();
		}
	}
	this.addSlide = function (slide_id) {
		this.slides[this.slides.length] = slide_id;
	}
	this.play = function () {
		if (document.getElementById){
			var slideVar = this.slides;
			clearTimeout(this.slideTimeout);
			if (this.currSlide < slideVar.length){
				document.images["slide"+(this.currSlide+1)+"_image"].src = this.imgList[this.currSlide];
				document.getElementById(slideVar[this.currSlide]).style.zIndex = 100*this.currSlide;
				document.getElementById(slideVar[this.currSlide]).style.visibility = "visible";
				fadeElementIn(slideVar[this.currSlide], this.transitionInterval);
				this.addToPlayLoop();
				this.currSlide++;
				this.slideTimeout = setTimeout(this.name+".play()", this.slideInterval);
			}
			else {
				if (this.loop) this.replay();
			}
		}
	}
	this.replay = function () {
		if (document.getElementById){
			var slideVar = this.slides;
			this.currSlide = 0;
			this.initSlides();
			this.play();
		}
	}	
	this.goToSlide = function (obj,slideValue){
		if (document.getElementById){
			for (i=0;i<obj.parentNode.childNodes.length;i++) {
				if (obj.parentNode.childNodes[i].nodeType == 1){
					obj.parentNode.childNodes[i].className = "inactiveText";
					obj.parentNode.childNodes[i].style.color = "#000";
				}
			}
			obj.className = "";
			document.images["slide3_image"].src = this.imgList[slideValue-1];
			prepareClickReview("three","li")
		}
	}
}

/* end function */


function fadeElementIn(elementId, millisec) {
	var speed = Math.round(millisec / 100);
	var timer = 0;
	// make image transparent
	changeOpac(0, elementId);
	// fade in image
	for (var i = 0; i < 100; i++) {
		setTimeout('changeOpac(' + i + ',"' + elementId + '")',(timer * speed));
		timer++;
	}
}

function fadeElementOut(elementId, millisec) {
	var speed = Math.round(millisec / 100);
	var timer = 0;
	// fade out image
	for (var i = 99; i >= 0; i--) {
		if (i=!0) {
			g_fadeTimeout = setTimeout('changeOpac(' + i + ',"' + elementId + '")',(timer * speed));
			timer++;
		} else {
			clearTimeout(g_fadeTimeout);
			makeVisible(imageId);
		}
	}
}

// change the opacity for different browsers
function changeOpac(opacity, elementId) {
	var elementTag = document.getElementById(elementId);
	if (elementTag) {
		var object = elementTag.style;
		//if (g_keepRotating) {
			object.opacity = (opacity/100);
			object.MozOpacity = (opacity/100);
			object.KhtmlOpacity = (opacity/100);
			object.filter = 'alpha(opacity=' + opacity + ')';
		//}
	}
}

// set the opacity to fully visible for different browsers
function makeVisible(elementId) {
	var elementTag = document.getElementById(elementId);
	if (elementTag) {
		var object = elementTag.style;
		object.opacity = 1.0;
		object.MozOpacity = 1.0;
		object.KhtmlOpacity = 1.0;
		object.filter = 'alpha(opacity=100)';
	}
}

function makeHidden(elementId) {
	var elementTag = document.getElementById(elementId);
	if (elementTag) {
		var object = elementTag.style;
		object.visibility = "hidden";
	}
}

// Event setup
//addEvent(document, "readystatechange", multiPromo);

//ogi demo review slides functions- hover effect
// prepareClickReview(objId,lookForTag), emptyFunction(), reviewHoverTrue(), reviewHoverFalse()
function prepareClickReview(objId,lookForTag){
  if( document.getElementById &&
      document.getElementsByTagName ){
    if( document.getElementById( objId ) ){
      var gallery = document.getElementById( objId );
      var links = gallery.getElementsByTagName( lookForTag );
      for( var i=0; i < links.length; i++ ){
	  	if (links[i].className=="inactiveText" && links[i].id.indexOf("submit")!=-1){
			links[i].onmouseover = reviewHoverTrue;
			links[i].onmouseout = reviewHoverFalse;
			links[i].className = "inactiveText";
		}
		else{
			links[i].style.textDecoration = "";
			links[i].style.color = "#008080";
			links[i].className = "";
			links[i].onmouseover = emptyFunction;
			links[i].onmouseout = emptyFunction;	
		}
      }
    }
  }
}

function emptyFunction() {
}
function reviewHoverTrue() {
	this.style.color = "#903";
}
function reviewHoverFalse() {
	this.style.color = "#000";
}
//end ogi demo review slides functions

//simple popup function from original ogi demo
function popup(url){
		var tourWin = window.open(url,"sample","width=800,height=500,scrollbars=yes,resizable=yes,menubar=yes,status=no,toolbar=yes");
		tourWin.focus();
	}