function xhrError(xhrReq) {
    var mssg = 'XHR Error - Code ' + xhrReq.status + ' ';
    switch (xhrReq.status) {
		case 301: mssg += 'Content Moved'; break;
		case 400: mssg += 'Bad Request'; break;
		case 401: mssg += 'Unauthorized'; break;
		case 403: mssg += 'Forbidden'; break;
		case 404: mssg += 'Not Found'; break;
		case 500: mssg += 'Internal Server Error'; break;
		case 503: mssg += 'Service Unavailable'; break;
		case 504: mssg += 'Gateway Timeout'; break;
		case 505: mssg += 'HTTP Version Not Supported'; break;
    }
    mssg += "\n\nPlease clear your browser's cache,\nreload the page and try your request again.";
    alert(mssg);
}

function bodyElement() {
    return (!window.opera && document.compatMode && document.compatMode != "BackCompat") ? document.documentElement : document.body;
}

function fixSafariEncode(fixedString) {
    try {
        fixedString = decodeURI(escape(fixedString));
    }
    catch(err) {}

    return fixedString;
}

function loadXMLDoc(url) {
    new Ajax.Request(url, {
        method: 'get',
        onSuccess: InitializeRotation,
        onFail: xhrError
    });
}


function getElementTextNS(prefix, local, parentElem, index) {
    var result = "";
    if (prefix && isIE) {
        result = parentElem.getElementsByTagName(prefix + ":" + local)[index];
    } else {
        result = parentElem.getElementsByTagName(local)[index];
    }
    if (result) {
        if (result.childNodes.length > 1) {
            return result.childNodes[1].nodeValue;
        } else {
            return result.firstChild.nodeValue;
        }
    } else {
        return "n/a";
    }
}

var isIE = false;
var req;
var grouparray;
var currentgroup = 0;
var currentdrawitem = 0;
var currentclearitem = 0;
var nextfunctioninterval;
var draworder = new Array();
draworder[0] = new Array(1, 2, 3, 4, 5, 6, 7, 8, 9);
var longpause = 5500;
var shortpause = 370;
var largeimageurl;
var largeimagelink;
var hover = 0;

function InitializeRotation(req) {
    grouparray = req.responseXML.getElementsByTagName('displaygroup');
    currentgroup = Math.floor(Math.random() * grouparray.length);
    largeimageurl = getElementTextNS("", "largeimage", grouparray[currentgroup], 0);
    largeimagelink = grouparray[currentgroup].getElementsByTagName('largeimage')[0].getAttribute('url');
    $('marquee').setStyle({
        backgroundImage: 'url(' + largeimageurl + ')'
    });
    ClearSmallImage(1);
}

function DrawSmallImage(init) {
    if (init) {
        currentdrawitem = 0;
        randomval = Math.floor(Math.random() * draworder.length);
        localdraworder = draworder[randomval];
    }
    element = $('area' + localdraworder[currentdrawitem]);
    var smallimagearray = grouparray[currentgroup].getElementsByTagName('smallimage');
    var imageurl = smallimagearray[currentdrawitem].firstChild.nodeValue;
    var imagelink = smallimagearray[currentdrawitem].getAttribute('url');
    element.innerHTML = '<a href="' + imagelink + '"><img border="0" src="' + imageurl + '" width="200" height="133" /></a>';
    if (currentdrawitem >= 8) {
        nextfunctioninterval = setTimeout('ClearSmallImage(1)', longpause);
    } else {
        currentdrawitem++;
        nextfunctioninterval = setTimeout('DrawSmallImage(0)', shortpause);
    }
}

function ClearSmallImage(init) {
    if (init) {
        currentclearitem = 0;
        currentgroup++;
        if (currentgroup >= grouparray.length) {
            currentgroup = 0;
        }
        largeimageurl = getElementTextNS('', 'largeimage', grouparray[currentgroup], 0);
        largeimagelink = grouparray[currentgroup].getElementsByTagName('largeimage')[0].getAttribute('url');
        element = document.getElementById('marquee');
        element.onmouseover = '';
        element.onmouseout = '';
        element.style.backgroundImage = 'url(' + largeimageurl + ')';
        randomval = Math.floor(Math.random() * draworder.length);
        localclearorder = draworder[randomval];
    }
    element = document.getElementById('area' + localclearorder[currentclearitem]);
    element.innerHTML = '<a href="' + largeimagelink + '"><img src="/img/empty.gif" width="200" height="133" /></a>';
    if (currentclearitem >= 8) {
        nextfunctioninterval = setTimeout('DrawSmallImage(1)', longpause);
    } else {
        currentclearitem++;
        nextfunctioninterval = setTimeout('ClearSmallImage(0)', shortpause);
    }
}