﻿/* ------------------------SLIDESHOW---------------------------- */
//OPACITY MODIFIED FROM http://www.brainerror.net/scripts_js_blendtrans.php
//CLASSNAME MODIFIED FROM http://www.hotscripts.com/forums/javascript/47025-document-getelementsbyclassname.html
/* ----------------------------- */

function getElementsByClassName(classname,container) {
	var objTemp = document.getElementsByTagName("*");
	var arrStories = [];
	var blnSomething = false;
	for (var i in objTemp) {
		if (new RegExp("\\b"+classname+"\\b").test(objTemp[i].className)) {
			arrStories.push(objTemp[i]);
			blnSomething = true;
		}
	}
	
	if (!(blnSomething)) {
		arrStories[0] = -1;
	}
	
	return arrStories;
}

function setOpacity(id,opacity) {
	var object = document.getElementById(id).style;
	
	object.opacity = (opacity / 100);						//SAFARI,FIREFOX,CSS3
	object.MozOpacity = (opacity / 100);					//OLD MOZILLA
	object.KhtmlOpacity = (opacity / 100);					//OLD KONQUEROR AND OLD SAFARI-WEBKIT
	object.filter = "alpha(opacity=" + opacity + ")";		//IE
}

function setFade(id,opacStart,opacEnd,millisec,hide) {
	//speed for each frame
	var speed = Math.round(millisec / 100);
	var timer = 0;
	var i;

	//determine the direction for the blending, if start and end are the same nothing happens
	if (opacStart > opacEnd) {
		document.getElementById(id).style.zIndex = '10';
		for (i = opacStart; i >= opacEnd; i--) {
			setTimeout("setOpacity('"+id+"',"+i+")",(timer * speed));
			timer++;
		}
	} else if (opacStart < opacEnd) {
		document.getElementById(id).style.zIndex = '100';
		for(i = opacStart; i <= opacEnd; i++) {
			setTimeout("setOpacity('"+id+"',"+i+")",(timer * speed));
			timer++;
		}
	}
}

function playSlideshow() {
	//blnChangeImage = true;
	switch (conTransition) {
		case 'fade':
			setFade(arrStories[current].id,100,0,750,false);
			setFade(arrStories[next].id,0,100,750,true);
			//highlightButton(next);
			break;
	}

	current = next;
	next++;
	if (next == arrStories.length) { next = 0; }
}

function gotoSlide(next) {
	switch (conTransition) {
		case 'fade':
			setFade(arrStories[current].id,100,0,750,false);
			setFade(arrStories[next].id,0,100,750,true);
			//highlightButton(next);
			break;
	}
	
	current = next;
	clearInterval(timer);
}

function highlightButton(num) {
	//GET BUTTONS
	var arrButtons = getElementsByClassName("button","b2bSlideshowWebPart");

	//CLEAR ALL BUTTONS
	for (i = 0;i < arrButtons.length;i++) {
		arrButtons[i].setAttribute("class", "button buttonRegular");
		arrButtons[i].setAttribute("className", "button buttonRegular");
	}

	arrButtons[num].setAttribute("class", "button buttonActive");
	arrButtons[num].setAttribute("className", "button buttonActive");
}

//--------------------------
//   PROCEDURE
//--------------------------


//SET VARIABLES
var blnSlideshowPause = false;
var arrStories = getElementsByClassName('story');
var intZIndex = 500;

//SETUP
if (arrStories[0] != -1) {
	//START BUTTONS
	var strButtons = "";
	
	//DETERMINE TYPE OF TRANSITION
	var conTransition = "fade";
	
	//SETUP EACH CLASS
	for (i = 0;i < arrStories.length;i++) {
		//--ASSIGN IDs SEQUENTIALLY TO OBJECTS
		arrStories[i].setAttribute("id","story"+i);
		
		//--HIDE ALL
		setOpacity(arrStories[i].id,0);
		
		//--ASSIGN Z-INDEX
		document.getElementById(arrStories[i].id).style.zIndex = intZIndex;
		intZIndex += 10;

		//--MAKE BUTTONS
		//strButtons += '<a href="#" onclick="gotoSlide('+i+');return false;" class="button buttonRegular">'+(i + 1)+'</a>';
	}
	//SHOW FIRST
	var current = 0;
	var next = 1;
	document.getElementById(arrStories[current].id).style.zIndex = '1000';
	setOpacity(arrStories[current].id,100);

	//SHOW BUTTONS
	//document.getElementById('buttons').innerHTML = strButtons;
	//highlightButton(0);
	//FADE ON TIMER IF MORE THAN ONE
	if (arrStories.length > 1) {
		var timer = setInterval("playSlideshow();",6000);
	}
}