// This script is a modified version from the global version.

/*     Global Variables     */

var eTarget, eTargetParent, eRelatedTarget;
var fadeDelay = 6000;
var fadeSpeed = 60;
var opacity = 0;
var fadePosition = 0;
var endCount = 5;
var count = 0;
var timeOutId;

/*     Constructors     */

function imageData(name, url, alt, title) {
	this.length = 5;
	this.name = name;
	this.url = url;
	this.alt = alt;
	this.title = title;
}

/*     Arrays     */

// Array of image names and alt tags.
var fadeImageArray = new Array
fadeImageArray[fadeImageArray.length] = new imageData('/sbd/cre/marketing/centers/holiday2009/images/hero_lastmin_event.gif','http://www.staples.com/webapp/wcs/stores/servlet/StaplesCategoryDisplay?storeId=10001&identifier=HC2SC1295&catalogIdentifier=HC2','Save up to 50%. It&#39;s our last-minute deals event! Hurry &mdash; offers end 12/26/09.','See all the deals.');
fadeImageArray[fadeImageArray.length] = new imageData('/sbd/cre/marketing/centers/holiday2009/images/hero_batteries_event.gif','http://www.staples.com/sbd/cre/products/091115/merch4350/index.html','Holiday must-have. Get 100% back in Staples Rewards&reg; on Duracell batteries. Ends 12/26/09. While supplies last.','Learn more.');
fadeImageArray[fadeImageArray.length] = new imageData('/sbd/cre/marketing/centers/holiday2009/images/hero_fafd.gif','http://www.staples.com/sbd/cre/products/perm/merch021044_delivery/index.html','FAST AND FREE DELIVERY!','Learn more.');

/*     functions     */

function addFadeImage() {
	
	var opacityValue = opacity / 100;
	var eA = document.createElement('A');
	eA.setAttribute('id','frontAnchor');
	eA.setAttribute('href',fadeImageArray[fadePosition].url);
	eA.setAttribute('title',fadeImageArray[fadePosition].title);
	
	var eImg = document.createElement('IMG');
	eImg.setAttribute('src',fadeImageArray[fadePosition].name);
	eImg.setAttribute('width', '529');
	eImg.setAttribute('height', '259');
	eImg.setAttribute('border','0');
	eImg.setAttribute('alt',fadeImageArray[fadePosition].alt);
	eImg.style.cssText = 'filter: alpha(opacity=' + opacity + ');';
	eImg.style.KHTMLOpacity = opacityValue;
	eImg.style.MozOpacity = opacityValue;
	eImg.style.opacity = opacityValue;
	var targetDiv = document.getElementById('heroEvent');
	eA.appendChild(eImg);
	targetDiv.insertBefore(eA, targetDiv.firstChild);
	
	fadeIn();
	initializePagination()
}

function addListener(obj, triggerEvent, callFunction, capture) {
	obj.addEventListener ? obj.addEventListener(triggerEvent, callFunction, capture) : obj.attachEvent('on' + triggerEvent, callFunction);
}

function changeFade(event) {
	setEventTargets(event);
	
	if (!eTarget.className) {
		clearTimeout(timeOutId);
		fadePosition = parseInt(eTarget.firstChild.nodeValue) - 1;
	
		var targetDiv = document.getElementById('heroEvent');
		
		while (targetDiv.firstChild) {
			targetDiv.removeChild(targetDiv.firstChild);
		}
		
		var eA = document.createElement('A');
		eA.setAttribute('id','backAnchor');
		eA.setAttribute('href',fadeImageArray[fadePosition].url);
		eA.setAttribute('title',fadeImageArray[fadePosition].title);
		
		var eImg = document.createElement('IMG');
		eImg.setAttribute('src',fadeImageArray[fadePosition].name);
		eImg.setAttribute('width', '529');
		eImg.setAttribute('height', '259');
		eImg.setAttribute('border','0');
	
		eA.appendChild(eImg);
		targetDiv.appendChild(eA);
		initializePagination();
	}
}



function fadeImage() {
	setTimeout(addFadeImage, fadeDelay);
}

function fadeIn() {
	// This function changes the opacity until image is fully visible, then removes previous image.

	if (opacity < 100) {
	
		opacity += 10;
		
		var opacityValue = opacity / 100;
		var targetA = document.getElementById('frontAnchor');
		targetA.firstChild.style.cssText = 'filter: alpha(opacity=' + opacity + ');';
		targetA.firstChild.style.KTHMLOpacity = opacityValue;
		targetA.firstChild.style.MozOpacity = opacityValue;
		targetA.firstChild.style.opacity = opacityValue;
		timeOutId = setTimeout(fadeIn, 50);
		
	} else {
	
		var targetDiv = document.getElementById('heroEvent');
		var targetB = document.getElementById('backAnchor');
		var targetA = document.getElementById('frontAnchor');
		
		targetB.innerHTML = targetA.innerHTML;
		targetB.setAttribute('href', targetA.getAttribute('href'));
		targetB.setAttribute('title', targetA.getAttribute('title'));
		
		targetDiv.removeChild(targetA);
		opacity = 0;
				
		fadePosition < (fadeImageArray.length - 1) ? fadePosition++ : fadePosition = 0;
		
		fadeImage();
		
	}
}

function initializePagination() {

	var pageCount;

	if (document.getElementById('pageCount')) {
		pageCount = document.getElementById('pageCount')
	} else {
	
		pageCount = document.createElement('DIV');
		pageCount.setAttribute('id', 'pageCount');
		
		for (var x = 0, y = 1; x < fadeImageArray.length; x++, y++) {
			var eP = document.createElement('P');
			var ePText = document.createTextNode(y);
			eP.appendChild(ePText);
			eP.fadeIndex = x;
			addListener(eP, 'click', changeFade, false);
			pageCount.appendChild(eP);
		}
	
		document.getElementById('heroEvent').appendChild(pageCount);
	}
	
	for (var x = 0; x < pageCount.childNodes.length; x++) {
		
		if (x == fadePosition) {
			pageCount.childNodes[x].className = 'box'
		} else if (pageCount.childNodes[x].className) {
			pageCount.childNodes[x].className = '';
		}
	}
}

function removeListener(obj, triggerEvent, callFunction, capture) {
	obj.removeEventListener ? obj.removeEventListener(triggerEvent, callFunction, capture) : obj.detachEvent('on' + triggerEvent, callFunction);
}

function setEventTargets(event) {
	event.target ? eTarget = event.target : eTarget = event.srcElement;
	event.relatedTarget ? eRelatedTarget = event.relatedTarget : eRelatedTarget = event.toElement;
	eTargetParent = eTarget.parentNode;
}