// JavaScript Document

var isIE = false;
var req;
var images = new Array();
var imageData = new Array();
var currentIndex = 0;
var nextIndex = 1;
var timeOutDelay = 10000;
var currentOpacity = new Array();
var FADE_STEP = 2;
var FADE_INTERVAL = 30;
var browsertype;
var COUNTER;

//GENERIC ADDLOAD EVENT FUNCTION
function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
	window.onload = func;
  } else {
	window.onload = function() {
	  oldonload();
	  func();
	}
  }
}
//////////////////////////////////


addLoadEvent(grabBadgeImages);

function grabBadgeImages() {
	if (!document.getElementsByTagName || !document.getElementById || !document.getElementById('badge')) {
		return false;
	}
	var badge = document.getElementById('badge');
	//badge.style.display = 'none';
	var badgeimages = badge.getElementsByTagName('IMG');
	for(i = 0; i < badgeimages.length; i++) {
		var badgeimage = badgeimages[i];
		var imgwidth = badgeimage.getAttribute('width');
		var imgheight = badgeimage.getAttribute('height');
		var imgalt = badgeimage.getAttribute('alt');
		var imgtitle = badgeimage.getAttribute('title');
		var imgsrc = badgeimage.getAttribute('src');
		var image = new Array(imgsrc, imgwidth, imgheight, imgalt, imgtitle);
		images[images.length] = image;
	}
	//alert(images);
	startSlideshow();
}

// Initialise slideshow if the objects exist for it to work
function startSlideshow() {
	if (!document.getElementsByTagName || !document.getElementById || !document.getElementById('slideshow')) {
		return false;
	}

	document.getElementById('startslideshow').style.display = 'none';
	document.getElementById('stopslideshow').style.display = 'block';
	document.getElementById('placeholder').style.display = 'none';

	currentOpacity[0] = 99;
	for(i = 1; i < images.length; i++) {
		currentOpacity[i] = 0;
	}

	var slideshow = document.getElementById('slideshow');

	var agt = navigator.userAgent.toLowerCase();
	var is_opera = (agt.indexOf("opera") != -1);
	//Browser check
	if(document.all && !is_opera) {
		browsertype = 'ie';
		//alert('ie');
	} else if (document.all && is_opera) {
		browsertype = 'opera';
		//alert('opera');
	} else {
		browsertype = 'moz';
		//alert('moz');
	}
	
	for(i = 0; i < images.length; i++) {
		
		var newimage = document.createElement('IMG');
		newimage.setAttribute('id', 'image' + i);
		newimage.setAttribute('src', images[i][0]);
		newimage.setAttribute('alt', images[i][4]);
		newimage.setAttribute('width', 220);
		newimage.className = 'imgfade';
		
		slideshow.appendChild(newimage);
		
		if (browsertype != 'opera') {
			setOpacity(newimage, 0);
		} else {
			newimage.style.visibility = 'hidden';
		}
	}

	//activate first image and hide original
	if (browsertype != 'opera') {
		setOpacity(document.getElementById('image' + currentIndex), 100);
	} else {
		document.getElementById('image' + currentIndex).style.visibility = 'visible';
	}

	//swaptext(currentIndex);
	COUNTER = setTimeout('swapImage()', timeOutDelay);
}

function stopSlideshow() {
	clearTimeout(COUNTER);
	document.getElementById('stopslideshow').style.display = 'none';
	document.getElementById('startslideshow').style.display = 'block';
	//document.getElementById('placeholder').style.display = 'block';
}

function swapImage() {
	//swaptext(nextIndex);

	if (browsertype != 'opera') {
		doFade =  setInterval('crossFade()', FADE_INTERVAL);
	} else {
		document.getElementById('image' + currentIndex).style.visibility = 'hidden';
		document.getElementById('image' + nextIndex).style.visibility = 'visible';
		currentIndex = nextIndex;
		nextIndex++;
		if(nextIndex == images.length) { 
			nextIndex = 0;
		}
	}

	COUNTER = setTimeout('swapImage()', timeOutDelay);
}

function crossFade() {
	currentOpacity[currentIndex] -= FADE_STEP;
	currentOpacity[nextIndex] += FADE_STEP;

	setOpacity(document.getElementById('image' + currentIndex), currentOpacity[currentIndex]);
	setOpacity(document.getElementById('image' + nextIndex), currentOpacity[nextIndex]);

	if(currentOpacity[nextIndex] / 100 >= .98) {
		currentIndex = nextIndex;
		nextIndex++;
		window.clearInterval(doFade);
		if(nextIndex == images.length) {
			nextIndex = 0;
		}
	}
}

function setOpacity(obj, opacity) {
	opacity = (opacity == 100)? 99.999 : opacity;
	obj.style.filter = 'alpha(opacity:' + opacity + ')';
	obj.style.KHTMLOpacity = opacity / 100;
	obj.style.MozOpacity = opacity / 100;
	obj.style.opacity = opacity / 100;
}
