﻿/* ------------------------------------------------------------ */
/* Banner Functionality                                         */
/* ------------------------------------------------------------ */

//  Global vars
var xmlhttp;
var totalNumBanners;
var currentBanner = 0;
var rotateInterval;

// Used on homepage to retrieve homepage banners
function initHomeBanner() {
		xmlhttp = GetXmlHttpObject();
		xmlhttp.onreadystatechange=writeHomeBanners;
		xmlhttp.open("GET", "/xml/home_banners.xml",true);	
		xmlhttp.send(null);
}


// Retreives banner info from XML and output to screen
function writeHomeBanners()
{
	var itemImage, itemURL, itemDescription;
	
    if (xmlhttp.readyState==4) {   
        // 4 = "loaded"
        if (xmlhttp.status==200) {
            // 200 = OK 
            xmlDoc = xmlhttp.responseXML;
            var responseText = "";
            totalNumBanners = xmlDoc.getElementsByTagName("item").length;
            
            // Loop through each item in xml doc (start at 1 to go to first post)
            for (x=0; x<totalNumBanners; x++) {
				itemImage = xmlDoc.getElementsByTagName("image")[x].childNodes[0].nodeValue;
				itemURL = xmlDoc.getElementsByTagName("url")[x].childNodes[0].nodeValue;
				itemDescription = xmlDoc.getElementsByTagName("description")[x].childNodes[0].nodeValue;
				itemTarget = xmlDoc.getElementsByTagName("target")[x].childNodes[0].nodeValue;
				responseText += '<a href="'+itemURL+'" class="homeBanner" id="banner'+x+'" title="'+itemDescription+'" target="'+itemTarget+'" ><img src="'+itemImage+'" alt="'+itemDescription+'" /></a>';
            }
            
			// Only update innerHTML is 'banner' element exists (Fixes IE issue)
            if (document.getElementById("banner")) {
				document.getElementById("banner").innerHTML = responseText; // output banner html to screen
				showBanner(currentBanner); // show first banner
				if (totalNumBanners > 1) {
					rotateInterval = setInterval("rotateBanners()", 5000); // start banner rotation
				}
			}
        }
        else {
            //alert("Problem retrieving XML data");
        }
    }
}

// Show selected banner number
function showBanner(num,stopRotation) {	
	currentBanner = num; // update global var
	updateBannerMenu(num); // update menu
	hideVisibleBanners(); // start by hiding visible banner before
	var bannerToShow = document.getElementById("banner"+num);
	$(bannerToShow).fadeIn("slow");
	// if user clicks on menu, stop banner rotation	and set focus on banner
	if (stopRotation) { 
		bannerToShow.focus(); // (Accessibility - set focus back to banner to read alt text)
		clearInterval(rotateInterval); 
	} 
	
}

// Hide visible banners
function hideVisibleBanners() {
	var currentVisibleBanner;
	for (x=0; x<totalNumBanners; x++) {
		currentVisibleBanner = document.getElementById("banner"+x);
		$(currentVisibleBanner).fadeOut("slow");
	}
}

// Update banner menu, highlighting selected number
function updateBannerMenu(selected) {
	var responseText = "";
	for (x=0; x<totalNumBanners; x++) {
			responseText += '<a href="javascript:showBanner('+x+',true);" title="Banner '+eval(x+1)+'" class="'+((x == selected) ? "active" : "")+'">'+eval(x+1)+'</a>';
	}	
	document.getElementById('banner_menu').innerHTML = responseText;	
}

// Loop through banners, displaying next banner
function rotateBanners() {
	nextBanner = currentBanner; 
	if (nextBanner < totalNumBanners-1) { nextBanner++; }
	else { nextBanner = 0; }
	showBanner(nextBanner);
}

