var slidingStage_leftButtonUrl = '/bin/r/t/pan-left.png';    // path to the left arrow
var slidingStage_rightButtonUrl = '/bin/r/r/pan-right.png';  // path to the right arrow
var slidingStage_imageListXml = '/bin/o/f/sliding-stage.xml';          // source file for the slider specification
var slidingStage_pixelsPerMove = 100;                            // how many pixels to slide per delayMs
var slidingStage_delayMs = 50;                                   // number of seconds to wait in-between pixel moves
var slidingStage_width = 940;                                    // width of one slide image
var slidingStage_height = 270;                                   // height of one slide image


// IMPORTANT--DO NOT MODIFY CODE BELOW--IMPORTANT.

var slidingStage_imagesContainer;
var slidingStage_currentOffset = 0;
var slidingStage_ignoreActions = true;
var slidingStage_leftButton;
var slidingStage_rightButton;
var slidingStage_subhead;
var slidingStage_imageList = [ ];

function slidingStage_showAll() {
    slidingStage_leftButton.style.visibility = 'visible';
    slidingStage_rightButton.style.visibility = 'visible';
    slidingStage_subhead.innerHTML = slidingStage_imageList[slidingStage_currentOffset].subhead;
    slidingStage_subhead.style.visibility = 'visible';
    slidingStage_ignoreActions = false;
}

function slidingStage_hideAll() {
    slidingStage_ignoreActions = true;
    slidingStage_leftButton.style.visibility = 'hidden';
    slidingStage_rightButton.style.visibility = 'hidden';
    slidingStage_subhead.style.visibility = 'hidden';
}

function slidingStage_moveLeft(currentPosition, finalPosition) {
    currentPosition += slidingStage_pixelsPerMove;
    if(currentPosition > finalPosition) currentPosition = finalPosition;
    
    slidingStage_imagesContainer.style.left = '' + currentPosition + 'px';
    if(currentPosition == finalPosition) { slidingStage_showAll(); }
    else setTimeout(function() { slidingStage_moveLeft(currentPosition, finalPosition) }, slidingStage_delayMs);
}

function slidingStage_moveRight(currentPosition, finalPosition) {
    currentPosition -= slidingStage_pixelsPerMove;
    if(currentPosition < finalPosition) currentPosition = finalPosition;
    
    slidingStage_imagesContainer.style.left = '' + currentPosition + 'px';
    if(currentPosition == finalPosition) { slidingStage_showAll(); }
    else setTimeout(function() { slidingStage_moveRight(currentPosition, finalPosition) }, slidingStage_delayMs);
}

function slidingStage_left() {
    if(slidingStage_ignoreActions) return;
    if(slidingStage_currentOffset < 1) slidingStage_currentOffset = slidingStage_imageList.length - 1;
    
    slidingStage_hideAll();
    
    --slidingStage_currentOffset;
    slidingStage_moveLeft(
        -((slidingStage_currentOffset + 1) * slidingStage_width),
        -(slidingStage_currentOffset * slidingStage_width)
    );
}

function slidingStage_right() {
    if(slidingStage_ignoreActions) return;
    if(slidingStage_currentOffset >= slidingStage_imageList.length - 1) slidingStage_currentOffset = 0;
    
    slidingStage_hideAll();
    
    ++slidingStage_currentOffset;
    slidingStage_moveRight(
        -((slidingStage_currentOffset - 1) * slidingStage_width),
        -(slidingStage_currentOffset * slidingStage_width)
    );
}

function slidingStage_loadXml() {
	var xmlHttpRequest;
    try { xmlHttpRequest = new XMLHttpRequest(); }
    catch(e) {
        try { xmlHttpRequest = new ActiveXObject('Msxml2.XMLHTTP'); }
        catch(e) {
            try { xmlHttpRequest = new ActiveXObject('Microsoft.XMLHTTP'); }
            catch(e) { return; }
        }
    }
    
    xmlHttpRequest.onreadystatechange = function() {
        if(xmlHttpRequest.readyState == 4 && xmlHttpRequest.status == 200) {
            var slides = xmlHttpRequest.responseXML.getElementsByTagName('slide');
            for(var i = 0; i < slides.length; ++i) {
                if(
                    slides[i].attributes &&
                    slides[i].attributes.getNamedItem('src') && slides[i].attributes.getNamedItem('src').nodeValue &&
                    slides[i].attributes.getNamedItem('alt') && slides[i].attributes.getNamedItem('alt').nodeValue &&
                    slides[i].attributes.getNamedItem('subhead') && slides[i].attributes.getNamedItem('subhead').nodeValue
                ) {
                    slidingStage_imageList.push({
                        src: slides[i].attributes.getNamedItem('src').nodeValue,
                        alt: slides[i].attributes.getNamedItem('alt').nodeValue,
                        subhead: slides[i].attributes.getNamedItem('subhead').nodeValue
                    });
                }
            }
            
            slidingStage_initialize();
        }
    }
    xmlHttpRequest.open('GET', slidingStage_imageListXml, true);
    xmlHttpRequest.send('');
}

function slidingStage_initialize() {
    var stageContainer = document.getElementById('pageStage');
    var bannerContainer = document.getElementById('pageStageBanner');
    slidingStage_subhead = document.getElementById('pageStageContentsSubhead');
    
    if(!stageContainer || !bannerContainer || !slidingStage_subhead || !slidingStage_imageList || slidingStage_imageList.length < 1) return;
    
    slidingStage_imageList.push(slidingStage_imageList[0]);
    
    slidingStage_imagesContainer = document.createElement('div');
    slidingStage_imagesContainer.id = 'pageStageSlider';
    slidingStage_imagesContainer.style.width = '' + (slidingStage_imageList.length * slidingStage_width) + 'px';
    slidingStage_imagesContainer.style.height = '' + (slidingStage_height) + 'px';
    
    for(var i = 0; i < slidingStage_imageList.length; ++i) {
        var newImage = document.createElement('img');
        newImage.width = slidingStage_width;
        newImage.height = slidingStage_height;
        newImage.alt = '[' + slidingStage_imageList[i].alt + ']';
        newImage.src = slidingStage_imageList[i].src;
        slidingStage_imagesContainer.appendChild(newImage);
    }
    
    var panImage;
    
    panImage = document.createElement('img');
    panImage.src = slidingStage_leftButtonUrl;
    panImage.alt = '<';
    panImage.width = 20;
    panImage.height = 30;
    
    slidingStage_leftButton = document.createElement('a');
    slidingStage_leftButton.title = 'Move Backward';
    slidingStage_leftButton.href = 'javascript:slidingStage_left()';
    slidingStage_leftButton.id = 'pageStageBannerLeft';
    slidingStage_leftButton.appendChild(panImage);
    bannerContainer.appendChild(slidingStage_leftButton);
    
    panImage = document.createElement('img');
    panImage.src = slidingStage_rightButtonUrl;
    panImage.alt = '>';
    panImage.width = 20;
    panImage.height = 30;
    
    slidingStage_rightButton = document.createElement('a');
    slidingStage_rightButton.title = 'Move Forward';
    slidingStage_rightButton.id = 'pageStageBannerRight';
    slidingStage_rightButton.href = 'javascript:slidingStage_right()';
    slidingStage_rightButton.appendChild(panImage);
    bannerContainer.appendChild(slidingStage_rightButton);
    
    stageContainer.insertBefore(slidingStage_imagesContainer, stageContainer.firstChild);
    stageContainer.style.backgroundImage = 'none';
    slidingStage_ignoreActions = false;
}

if(window.addEventListener)  window.addEventListener('load', slidingStage_loadXml, false);
else if(window.attachEvent)  window.attachEvent('onload', slidingStage_loadXml);

