// JavaScript Document
MAGevListener(window,'load',function(e) {
	MAGstartSlideshow()
});

function MAGstartSlideshow(){//sets up initial values and kicks off the show
	window.MAGslideshow = {
		rateOfSlide : 15,
		sliderRateOfUpdate : 20,
		slideInterval : 3000,
		totalSlides : 3,
		currentSlide : 1,
		slideWidth : 575,
		slideHeight : 350,
		transitionTimer : null,
		animating : false,
		transition : true,
		fadeLength : 200
	}
	showSlideLink(window.MAGslideshow.currentSlide);
	document.getElementById("slide"+window.MAGslideshow.currentSlide).style.zIndex = 100;
	MAGfade(document.getElementById("slide"+window.MAGslideshow.currentSlide),window.MAGslideshow.fadeLength);
	MAGevListener(document.getElementById('featureBox'),'mouseover',function(e) {
		clearInterval(window.MAGslideshow.transitionTimer);
		window.MAGslideshow.transition = false;
	});
	MAGevListener(document.getElementById('featureBox'),'mouseout',function(e) {
		window.MAGslideshow.transition = true;
		window.MAGslideshow.transitionTimer = setInterval("advanceSlide()", window.MAGslideshow.slideInterval);
	});
	window.MAGslideshow.transitionTimer = setInterval("advanceSlide()", window.MAGslideshow.slideInterval);
}

function MAGfade(ele,len){
	var args = arguments;
	if(args[1] == null){ var len = 1000 }
	if(args[0] == null){ return; }
	ele.fadeLength = len;

	if(ele.fadeState == null){
		ele.opacity = MAGgetStyle(ele,"opacity");
		if(ele.opacity == null || ele.opacity == '' || ele.opacity == '1'){
			ele.fadeState = 2;
		}
		else{
			ele.fadeState = -2;
		}
  }

	if(ele.fadeState == 1 || ele.fadeState == -1){
		ele.fadeState = ele.fadeState == 1 ? -1 : 1;
		ele.fadeRemaining = ele.fadeLength - ele.fadeRemaining;
	}
  else{
		ele.fadeState = ele.fadeState == 2 ? -1 : 1;
		ele.fadeRemaining = ele.fadeLength;
		setTimeout(function(){ MAGanimateFade(new Date().getTime(),ele); }, 33);
  }
}
function MAGanimateFade(lastTick, ele){
	var thisTick = new Date().getTime();
	var elapsedTicks = thisTick - lastTick;

	if(ele.fadeRemaining <= elapsedTicks){
		ele.style.opacity = ele.fadeState == 1 ? '1' : '0';
		ele.style.filter = 'alpha(opacity = ' + (ele.fadeState == 1 ? '100' : '0') + ')';
		ele.fadeState = ele.fadeState == 1 ? 2 : -2;
		return;
	}

	ele.fadeRemaining -= elapsedTicks;
	var newOpVal = ele.fadeRemaining/ele.fadeLength;
	if(ele.fadeState == 1){ newOpVal = 1 - newOpVal; }

	ele.style.opacity = newOpVal;
	ele.style.filter = 'alpha(opacity = ' + (newOpVal*100) + ')';

	setTimeout(function() { MAGanimateFade(thisTick,ele); }, 33);
}

function advanceSlide(){//move to the next slide
	//clearTimeout(window.MAGslideshow.transitionTimer);
	var nextSlide = window.MAGslideshow.currentSlide + 1;
	if(nextSlide > window.MAGslideshow.totalSlides){
		nextSlide = 1;
	}
	MAGfade(document.getElementById("slide"+window.MAGslideshow.currentSlide),window.MAGslideshow.fadeLength);
	document.getElementById("slide"+window.MAGslideshow.currentSlide).style.zIndex = 50;
	hideSlideLink(window.MAGslideshow.currentSlide);
	window.MAGslideshow.currentSlide = nextSlide;
	showSlideLink(window.MAGslideshow.currentSlide);
	document.getElementById("slide"+window.MAGslideshow.currentSlide).style.zIndex = 100;
	MAGfade(document.getElementById("slide"+window.MAGslideshow.currentSlide),window.MAGslideshow.fadeLength);
}

function advanceToSlide(slideNumber){//move to specified slide
	if(!window.MAGslideshow.animating && slideNumber != window.MAGslideshow.currentSlide){//check to make sure we aren't currently animating or trying to go to the current slide
		//clearTimeout(window.MAGslideshow.transitionTimer);
		MAGfade(document.getElementById("slide"+window.MAGslideshow.currentSlide),window.MAGslideshow.fadeLength);
		document.getElementById("slide"+window.MAGslideshow.currentSlide).style.zIndex = 50;
		hideSlideLink(window.MAGslideshow.currentSlide);
		window.MAGslideshow.currentSlide = slideNumber;
		showSlideLink(window.MAGslideshow.currentSlide);
		document.getElementById("slide"+window.MAGslideshow.currentSlide).style.zIndex = 100;
		MAGfade(document.getElementById("slide"+window.MAGslideshow.currentSlide),window.MAGslideshow.fadeLength);
	}
}

function showSlideLink(slideNumber){// decorates link in slideshow navigaiton
	var targetLink = document.getElementById("slidebutton"+slideNumber);
	targetLink.className ='active';
}

function hideSlideLink(slideNumber){
	var targetLink = document.getElementById("slidebutton"+slideNumber);
	targetLink.className ='';
}

function animateSlide(slideNumber, targetPosition, transitionType){//animate the slides
	var targetSlide = document.getElementById("slide"+slideNumber);
	var newPosition;
	
	if(targetPosition > targetSlide.offsetLeft){ //set new position
		newPosition = targetSlide.offsetLeft + window.MAGslideshow.rateOfSlide;
	}
	
	if(newPosition > targetPosition){ //check to see if new position is beyond target
		newPosition = targetPosition;
	}
	
	targetSlide.style.left = newPosition + "px";//move slide
	 if(newPosition != targetPosition){//check to see if we must animate again
		 window.MAGslideshow.animating = true;
		 setTimeout("animateSlide("+slideNumber+", "+targetPosition+", '"+transitionType+"')", window.MAGslideshow.sliderRateOfUpdate);
	 }else{//if not call slide change timeout
	 	if(transitionType == "in"){
			showSlideDetail(slideNumber);
			 window.MAGslideshow.animating = false;
			 if(window.MAGslideshow.transition){
			 	window.MAGslideshow.transitionTimer = setTimeout("advanceSlide()", window.MAGslideshow.slideInterval);
			 }
		}
	 }
}
