



var Dom = YAHOO.util.Dom;
var req;
var ssArray = new Array();
var thisImage = 0;
var counter = 1;
var imageIterator;
lastClick = new Date();
var goForward = true;
var ajaxLoaded = false;

                           
// Call the function and add this XML document
loadXMLDoc('/ajax/lmhomepage?numOfItems=6&localeCode=en_US&brand=MD&type=nonflash');
// Onload event handler
addLoadEvent (function() {
    // Create promo div containers
    var promoImgContainer = document.getElementById("promoImg");
    for (i=0; i<ssArray.length; i++) {
        var div = document.createElement("div");
        div.setAttribute("id", "promoImgItem" + i);
        promoImgContainer.appendChild(div);
    }

    // And add each element to each respective div container;
    for (i=0; i<ssArray.length; i++) {
        var promoImgDiv = document.getElementById("promoImgItem" + i);
        var image = "<a href='" + ssArray[i].link + "'><img src='" + ssArray[i].img + "' border='0' /></a>";
        if (promoImgDiv != null){
            promoImgDiv.innerHTML = image;
            promoImgDiv.style.display = "none";
        }
    }
    switchSlideShow(ssArray[0]); //set the first promo to display
});

function loadXMLDoc(url) {
	// branch for native XMLHttpRequest object
	if (window.XMLHttpRequest) {
		req = new XMLHttpRequest();
		req.onreadystatechange = processReqChange;
		req.open("GET", url, true);
		req.send(null);
	// branch for IE/Windows ActiveX version
	} else if (window.ActiveXObject) {
		req = new ActiveXObject("Microsoft.XMLHTTP");
		if (req) {
			req.onreadystatechange = processReqChange;
			req.open("GET", url, true);
			req.send();
		}
	} else {
	// The browser cannot support dynamic loading - say so
		alert('Your browser does not accept dynamic loading');
	}
}
function processReqChange() {
	// only if req shows "loaded"
	if (req.readyState == 4) {
	// only if "OK"
		if (req.status == 200) {
			// ...processing statements go here...
			buildSlideshow();
		} else {
			// We had an error - keep the element disabled and write an error
			alert('Sorry, we had an error trying to load the promotions');
		}
	}
}

function buildSlideshow() {
    var items = req.responseXML.getElementsByTagName('item');

    for (var i = 0; i < items.length; i++) {
        if(items[i].getAttribute('type') == 'nonflash') {
            var imageurl = items[i].getAttribute('imageurl');

            var link = items[i].getElementsByTagName('link');
            link = link[0].childNodes[0].nodeValue;

            ssArray[i] = new ssImage(imageurl, link, "promoImgItem" + i);
        }
    }

    imageIterator = new imageIterator(ssArray);
    ajaxLoaded = true;
}
// Object to easily store image attributes
function ssImage(img, link, divName) {
    this.divName = divName;
	this.img = img;
	//this.caption = caption;
	this.link = link;
}

function switchSlideShow(ssImg) {
    //alert(ssImg.nodeName);

	for (i=0; i<ssArray.length; i++) {
		var imgDiv = document.getElementById(ssArray[i].divName)
		imgDiv.style.display = "none";
	}
	var promoImgDiv = document.getElementById(ssImg.divName);
	promoImgDiv.style.display = '';

    var goBack = document.getElementById('goBack').getElementsByTagName('a');
    var goNext = document.getElementById('goNext').getElementsByTagName('a');

    if(imageIterator.iterator == 0)
        goBack[0].style.color = "#333";
    else
        goBack[0].style.color="#FFF";

    if(!imageIterator.hasMoreElements())
        goNext[0].style.color = "#333";
    else
        goNext[0].style.color="#FFF"; 
}
function goBack() {
	if (ajaxLoaded) {
		lastClick = new Date();
		goForward = false;
		if(!imageIterator.iterator == 0) {
		    switchSlideShow(imageIterator.getPrevious());
		} 
	}
}
function goNext() {
	if (ajaxLoaded) {
		lastClick = new Date();
		goForward = true;
	 	if(imageIterator.hasMoreElements()) {
	 	    switchSlideShow(imageIterator.getNext());
	 	}
	}
}
function goStop() {
	clearTimeout(showtime);
}
function executeInterval() {
	if (ajaxLoaded) {
		var d = new Date();
		var n = d.getTime();
		var duration = (n - lastClick.getTime());
		if (duration > 10000) {
			if (goForward) {
				switchSlideShow(imageIterator.getNext());
			} else {
				switchSlideShow(imageIterator.getPrevious());
			}
		}
	}
}
showtime = setInterval("executeInterval()", 6000);

function imageIterator(a) {
	this.iterator = 0;
	this.array = a;
	this.hasMoreElements = function() { return this.iterator < this.array.length - 1; } 
	this.increment = function() { this.iterator = (this.iterator == (this.array.length - 1)) ? 0 : this.iterator+1; };
	this.decrement = function() { this.iterator = (this.iterator == 0) ? (this.array.length - 1) : this.iterator-1; };
	this.getNext = function() { this.increment(); next = this.array[this.iterator];  return next; };
	this.getPrevious = function() { this.decrement(); previous = this.array[this.iterator];  return previous; };
}
