﻿/*
    Featured Areas
*/
/* Initialising */

function initspotlight(sid) {
    var bslist = new scrolllist(document.getElementById(sid), 1, false, "horizontal");
}

/*
    Scrollable list
*/

function scrolllist(o, n, pl, or) {
    // Set the pane
    this.scrolllist = o;
    this.show = n;
    this.items = o.getElementsByTagName("LI").length;
    this.lastvisible = Math.min(this.show, this.items);
    this.offset = 0;
    this.marginleft = 0;
    this.marginmultiplier = null;
    if (or == "horizontal") {
        this.marginmultiplier = o.getElementsByTagName("LI")[0].offsetWidth * this.show * -1;
    }
    else {
        this.marginmultiplier = o.getElementsByTagName("LI")[0].offseHeight * this.show * -1;
    }

    this.orientation = or;

    // Preload the images
    if (pl && document.images) {
        var pli = new Array();
        var ims = o.getElementsByTagName("UL")[0].getElementsByTagName("IMG");
        for (var i = 0; i < ims.length; i++) {
            pli[i] = new Image(10, 10);
            pli[i].src = ims[i].getAttribute("src").replace("_spotlight_thumbnails/", "");
        }
    }

    // Set the width of the ul to show all items
    if (this.orientation == "horizontal") {
        o.getElementsByTagName("UL")[0].style.width = (this.items * 12) + "em";
    }
    else {
        o.getElementsByTagName("UL")[0].style.height = (this.items * 12) + "em";
    }

    // Get the arrow divs
    var ldiv = o.firstChild;
    var rdiv = o.firstChild;
    if (this.orientation == "horizontal") {
        while (ldiv.tagName != "DIV" || !ldiv.className.contains("left ")) {
            ldiv = ldiv.nextSibling;
        }
        while (rdiv.tagName != "DIV" || !rdiv.className.contains("right ")) {
            rdiv = rdiv.nextSibling;
        }
    }
    else {
        while (ldiv.tagName != "DIV" || ldiv.className != "up") {
            ldiv = ldiv.nextSibling;
        }
        while (rdiv.tagName != "DIV" || rdiv.className != "down") {
            rdiv = rdiv.nextSibling;
        }
    }
    this.arrowleft = ldiv.getElementsByTagName("A")[0];
    this.arrowleft.scrolllist = this;
    this.arrowright = rdiv.getElementsByTagName("A")[0];
    this.arrowright.scrolllist = this;
    // Initialise left / right links
    this.arrowleft.style.visibility = "hidden";
    if (this.items <= this.lastvisible) {
        this.arrowright.style.visibility = "hidden";
    }
    if (isIE) {
        this.arrowleft.attachEvent("onclick", this.scrollprevious);
    }
    else {
        this.arrowleft.addEventListener("click", this.scrollprevious, false);
    }
    if (isIE) {
        this.arrowright.attachEvent("onclick", this.scrollnext);
    }
    else {
        this.arrowright.addEventListener("click", this.scrollnext, false);
    }
}

scrolllist.prototype.scrollnext = function (e) {
    // get the src object
    var o;
    var ie_var = "srcElement";
    var moz_var = "target";
    // target for Moz, et al. - srcElement for IE
    e[moz_var] ? o = e[moz_var] : o = e[ie_var];

    while (o.tagName != "A") {
        o = o.parentNode;
    }
    var self = o;

    var coffset = self.scrolllist.show;
    // Make sure n items are always displayed
    if ((self.scrolllist.items - (self.scrolllist.offset + coffset)) < self.scrolllist.show) {
        coffset = self.scrolllist.items - self.scrolllist.offset - self.scrolllist.show;
    }

    function scrolllistnext() {
        if (self.scrolllist.marginleft - 10 < ((self.scrolllist.offset + coffset) * self.scrolllist.marginmultiplier)) {
            self.scrolllist.marginleft = ((self.scrolllist.offset + coffset) * self.scrolllist.marginmultiplier);
        }
        else {
            self.scrolllist.marginleft -= 10;
        }
        if (self.scrolllist.orientation == "horizontal") {
            self.scrolllist.scrolllist.getElementsByTagName("UL")[0].style.marginLeft = (self.scrolllist.marginleft / 16) + "em";
        }
        else {
            self.scrolllist.scrolllist.getElementsByTagName("UL")[0].style.marginTop = (self.scrolllist.marginleft / 16) + "em";
        }
        if (self.scrolllist.marginleft > ((self.scrolllist.offset + coffset) * self.scrolllist.marginmultiplier)) {
            self.cscroll = window.setTimeout(scrolllistnext, 30);
        }
        else {
            self.scrolllist.offset += coffset
            if ((self.scrolllist.items - (self.scrolllist.offset + self.scrolllist.show)) == 0) {
                self.scrolllist.arrowright.style.visibility = "hidden";
            }
            if (self.scrolllist.arrowleft.style.visibility == "hidden") {
                self.scrolllist.arrowleft.style.visibility = "";
            }
        }
    }
    this.cscroll = window.setTimeout(scrolllistnext, 30)
};

scrolllist.prototype.scrollprevious = function (e) {
    // get the src object
    var o;
    var ie_var = "srcElement";
    var moz_var = "target";
    // target for Moz, et al. - srcElement for IE
    e[moz_var] ? o = e[moz_var] : o = e[ie_var];

    while (o.tagName != "A") {
        o = o.parentNode;
    }
    var self = o;
    var coffset = self.scrolllist.show;
    // Make sure n items are always displayed
    if ((self.scrolllist.offset - coffset) < 0) {
        coffset = self.scrolllist.items - self.scrolllist.offset - self.scrolllist.show;
    }
    function scrolllistlast() {
        if (self.scrolllist.marginleft + 10 > ((self.scrolllist.offset - coffset) * self.scrolllist.marginmultiplier)) {
            self.scrolllist.marginleft = ((self.scrolllist.offset - coffset) * self.scrolllist.marginmultiplier);
        }
        else {
            self.scrolllist.marginleft += 10;
        }
        if (self.scrolllist.orientation == "horizontal") {
            self.scrolllist.scrolllist.getElementsByTagName("UL")[0].style.marginLeft = (self.scrolllist.marginleft / 16) + "em";
        }
        else {
            self.scrolllist.scrolllist.getElementsByTagName("UL")[0].style.marginTop = (self.scrolllist.marginleft / 16) + "em";
        }
        if (self.scrolllist.marginleft < ((self.scrolllist.offset - coffset) * self.scrolllist.marginmultiplier)) {
            self.cscroll = window.setTimeout(scrolllistlast, 30);
        }
        else {
            self.scrolllist.offset -= coffset
            if (self.scrolllist.offset == 0) {
                self.scrolllist.arrowleft.style.visibility = "hidden";
                self.scrolllist.arrowright.style.visibility = "";
            }
            else if (self.scrolllist.offset < self.scrolllist.items - self.scrolllist.show) {
                self.scrolllist.arrowright.style.visibility = "";
            }
        }
    }
    this.cscroll = window.setTimeout(scrolllistlast, 30)
};


