var fxArray = [];
var fxToken = 0;
var slideContainer;
var currSlide;
var nextSlide;
var initSlideShow;
var fadeoutcurrSlide;
var fadeinnextSlide;
var doitagain;
var slideControls;

function slideShow() {
	slideContainer = document.getElementById('newsRotator');
	slideContainer.style.position = 'relative';
	slideContainer.style.left = '0px';
	slideContainer.style.top = '0px';
	
	var slideArray = $$('#newsRotator div.newsItem');
	
	//slideContainer.style.overflow = 'hidden';
	for (x=0;x<slideArray.length;x++) {
		if (slideArray[x].className == 'newsItem' && slideArray[x].className != null && slideArray[x].className != '') {
			var newSlide = slideArray[x];
			newSlide.style.position = 'relative';
			newSlide.style.zIndex = fxToken + 1;
			if (x == 0) {
				newSlide.style.left = '0px';
				newSlide.style.top = '0px';
				setOpacity(newSlide, 1);
			}
			else {
				newSlide.style.left = '0px';
				newSlide.style.top = (x * slideContainer.offsetHeight * -1) + 'px';
				setOpacity(newSlide, 0);
			}
			fxArray[x] = newSlide;
		}
	}
	
	var titleImage = document.createElement('img');
	slideContainer.appendChild(titleImage);
	titleImage.src = '/Media/Website Resources/images/home/wesleyanTitle.png';
	titleImage.style.position = 'relative';
	titleImage.style.top = fxArray.length * slideContainer.offsetHeight * -1 + slideContainer.offsetHeight - 100 + 'px';
	titleImage.style.zIndex = fxArray.length + 1;
	
	slideControls = document.createElement('div');
	slideContainer.appendChild(slideControls);
	slideControls.style.position = 'relative';
	slideControls.style.top = (fxArray.length * slideContainer.offsetHeight * -1) + (slideContainer.offsetHeight - 200) + 'px';
	slideControls.style.left = slideContainer.offsetWidth - 236 + 'px';
	slideControls.style.zIndex = fxArray.length + 2;
	slideControls.style.width = 236 + 'px';
	slideControls.style.height = '100px';
	
	slideBtnContainer = document.createElement('div');
	slideControls.appendChild(slideBtnContainer);
	slideBtnContainer.style.position = 'relative';
	slideBtnContainer.style.width = (fxArray.length + 2) * 20 + 'px';
	slideBtnContainer.style.height = 25 + 'px';
	slideBtnContainer.style.overflow = 'hidden';
	slideBtnContainer.style.left = ((slideControls.offsetWidth - ((fxArray.length + 2) * 20 )) / 2) + 'px';
	
	var leftArrow = document.createElement('div');
	slideControls.childNodes[0].appendChild(leftArrow);
	leftArrow.style.textAlign = 'center';
	leftArrow.style.color = '#FFFFFF';
	leftArrow.style.fontSize = '180%';
	leftArrow.style.display = 'block';
	leftArrow.style.cursor = 'pointer';
	leftArrow.style.width = '20px';
	leftArrow.style.height = '25px';
	leftArrow.align = 'center';
	leftArrow.style.position = 'absolute';
	leftArrow.style.top = '0px';
	leftArrow.style.left = '0px';
	leftArrow.style.backgroundImage = "url('/Media/Website Resources/images/newsEvents/newsRotatorLeftTriangle.png')";
	leftArrow.style.backgroundRepeat = 'no-repeat';
	
	$(leftArrow).addEvent('click', function() {
		prevNewsSlide();
	});
	
	//slideControls.innerHTML = "<a href='javascript:prevNewsSlide();'>Previous</a> &nbsp; <a href='javascript:nextNewsSlide();'>Next</a>";
	
	for (y=0;y<fxArray.length;y++) {
		var slideButton = document.createElement('div');
		slideControls.childNodes[0].appendChild(slideButton);
		slideButton.style.textAlign = 'center';
		slideButton.style.display = 'block';
		slideButton.style.color = '#FFFFFF';
		slideButton.style.cursor = 'pointer';
		slideButton.style.width = '20px';
		slideButton.style.height = '25px';
		slideButton.style.fontSize = '300%';
		slideButton.style.position = 'absolute';
		slideButton.style.top = '0px';
		slideButton.style.left = (y + 1) * 20 + 'px';
		slideButton.style.backgroundImage = "url('/Media/Website Resources/images/newsEvents/newsRotatorCircle.png')";
		slideButton.style.backgroundRepeat = 'no-repeat';
		/*if (window.addEventListener) {
			slideButton.addEventListener('click', function() {
				goToNewsSlide(this);
			}, false);
		}
		else {
			slideButton.attachEvent('click', function() {
				goToNewsSlide(this);
			});
		}*/
		$(slideButton).addEvent('click', function() {
			goToNewsSlide(this);
		});
	}
	
	var rightArrow = document.createElement('div');
	slideControls.childNodes[0].appendChild(rightArrow);
	rightArrow.style.textAlign = 'center';
	rightArrow.style.display = 'block';
	rightArrow.style.color = '#FFFFFF';
	rightArrow.style.fontSize = '180%';
	rightArrow.style.cursor = 'pointer';
	rightArrow.style.width = '20px';
	rightArrow.style.height = '25px';
	rightArrow.align = 'center';
	rightArrow.style.position = 'absolute';
	rightArrow.style.top = '0px';
	rightArrow.style.left = (fxArray.length + 1) * 20 + 'px';
	rightArrow.style.backgroundImage = "url('/Media/Website Resources/images/newsEvents/newsRotatorRightTriangle.png')";
	rightArrow.style.backgroundRepeat = 'no-repeat';
	
	$(rightArrow).addEvent('click', function() {
		nextNewsSlide();
	});
	
	initSlideShow = setTimeout(slideShowFade,8000);
	slideControls.childNodes[0].childNodes[1].innerHTML = "<img src='/Media/Website Resources/images/newsEvents/newsRotatorCircleHighlight.png'/>";
	
	$('newsRotator').addEvent('mouseover', function () {
		haltSlideShow();
		//slideControls.style.visibility = 'visible';
	});

	$('newsRotator').addEvent('mouseout', function () {
		restartSlideShow();
		//slideControls.style.display = 'none';
	});
}
			
function slideShowFade() {
	if (fxArray.length > 1) {
		currSlide = fxArray[fxToken];
		nohighlightSlideControlButton();
		if (eval(fxToken + 1) >= fxArray.length) {
			fxToken = 0;
			nextSlide = fxArray[fxToken];
		}
		else {
			fxToken++;
			nextSlide = fxArray[fxToken];
		}
		highlightSlideControlButton();
		fadeoutcurrSlide = slideShowFadeOut();
		fadeinnextSlide = slideShowFadeIn();
		doitagain = setTimeout(slideShowFade,8000);
	}
}
			
function setOpacity(obj, level) {
	obj.style.opacity = level;
	obj.style.MozOpacity = level;
	obj.style.KhtmlOpacity = level;
	obj.style.filter = "alpha(opacity=" + (level * 100) + ");";
	if (level == 0) {
		obj.style.visibility = 'hidden';
	}
}
			
function setOpacityIn(level) {
	nextSlide.style.opacity = level;
	nextSlide.style.MozOpacity = level;
	nextSlide.style.KhtmlOpacity = level;
	nextSlide.style.filter = "alpha(opacity=" + (level * 100) + ");";
}
			
function setOpacityOut(level) {
	currSlide.style.opacity = level;
	currSlide.style.MozOpacity = level;
	currSlide.style.KhtmlOpacity = level;
	currSlide.style.filter = "alpha(opacity=" + (level * 100) + ");";
	if (level == 0) {
		currSlide.style.visibility = 'hidden';
	}
}

function setOpacityControlsIn(level) {
	slideControls.style.opacity = level;
	slideControls.style.MozOpacity = level;
	slideControls.style.KhtmlOpacity = level;
	slideControls.style.filter = "alpha(opacity=" + (level * 100) + ");";
}
			
function setOpacityControlsOut(level) {
	slideControls.style.opacity = level;
	slideControls.style.MozOpacity = level;
	slideControls.style.KhtmlOpacity = level;
	slideControls.style.filter = "alpha(opacity=" + (level * 100) + ");";
}
			
var duration = 750;  /* 1000 millisecond fade = 1 sec */
var steps = 20;       /* number of opacity intervals   */
var fadeInTimeoutArray = new Array();
var fadeOutTimeoutArray = new Array();
		
function slideShowFadeIn() {
	nextSlide.style.visibility = 'visible';
	for (i = 0; i <= 1; i += (1 / steps)) {
		fadeInTimeoutArray[i] = setTimeout("setOpacityIn(" + i + ")", i * duration);
	}
	fadeInTimeoutArray[steps + 1] = setTimeout("setOpacityIn(1)", duration);
}
		
function slideShowFadeOut() {
	for (i = 0; i <= 1; i += (1 / steps)) {
		fadeOutTimeoutArray[i] = setTimeout("setOpacityOut(" + (1 - i) + ")", i * duration);
	}
	fadeOutTimeoutArray[steps + 1] = setTimeout("setOpacityOut(0)", duration);
}

function haltSlideShow() {
	clearTimeout(initSlideShow);
	clearTimeout(doitagain);
}

function restartSlideShow() {
	initSlideShow = setTimeout(slideShowFade,4000);
}

function nextNewsSlide() {
	if (fxArray.length > 1) {
		haltSlideFade();
		currSlide = fxArray[fxToken];
		nohighlightSlideControlButton();
		if (eval(fxToken + 1) >= fxArray.length) {
			fxToken = 0;
			nextSlide = fxArray[fxToken];
		}
		else {
			fxToken++;
			nextSlide = fxArray[fxToken];
		}
		highlightSlideControlButton();
		fadeoutcurrSlide = slideShowFadeOut();
		fadeinnextSlide = slideShowFadeIn();
	}
}

function prevNewsSlide() {
	if (fxArray.length > 1) {
		haltSlideFade();
		currSlide = fxArray[fxToken];
		nohighlightSlideControlButton();
		if (eval(fxToken - 1) < 0) {
			fxToken = fxArray.length - 1;
			nextSlide = fxArray[fxToken];
		}
		else {
			fxToken--;
			nextSlide = fxArray[fxToken];
		}
		highlightSlideControlButton();
		fadeoutcurrSlide = slideShowFadeOut();
		fadeinnextSlide = slideShowFadeIn();
	}
}

function goToNewsSlide(btn) {
	for (k=0;k<slideControls.childNodes[0].childNodes.length;k++) {
		if (slideControls.childNodes[0].childNodes[k] == btn) {
			var newToken = k - 1;
		}
	}
	if (newToken != fxToken) {
		haltSlideFade();
		currSlide = fxArray[fxToken];
		nohighlightSlideControlButton();
		fxToken = newToken;
		nextSlide = fxArray[fxToken];
		highlightSlideControlButton();
		fadeoutcurrSlide = slideShowFadeOut();
		fadeinnextSlide = slideShowFadeIn();
	}
}

function highlightSlideControlButton() {
	slideControls.childNodes[0].childNodes[fxToken + 1].innerHTML = "<img src='/Media/Website Resources/images/newsEvents/newsRotatorCircleHighlight.png'/>";
}

function nohighlightSlideControlButton() {
	slideControls.childNodes[0].childNodes[fxToken + 1].innerHTML = "";
}

function haltSlideFade() {
	for (x = 0; x < fadeOutTimeoutArray.length; x++) {
		clearTimeout(fadeOutTimeoutArray[x]);
	}
	for (y = 0; y < fadeInTimeoutArray.length; y++) {
		clearTimeout(fadeInTimeoutArray[y]);
	}
}
		
window.addEvent('domready', function () {
	slideShow();
});
