
// todo: remove namespace clutter introduced by Pusher
function MM_preloadImages() { //v3.0
    var d = document;
    if (d.images) {
        if (!d.MM_p) d.MM_p = new Array();
        var i,j = d.MM_p.length,a = MM_preloadImages.arguments;
        for (i = 0; i < a.length; i++)
            if (a[i].indexOf("#") != 0) {
                d.MM_p[j] = new Image;
                d.MM_p[j++].src = a[i];
            }
    }
}

function MM_findObj(n, d) { //v4.01
    var p,i,x;
    if (!d) d = document;
    if ((p = n.indexOf("?")) > 0 && parent.frames.length) {
        d = parent.frames[n.substring(p + 1)].document;
        n = n.substring(0, p);
    }
    if (!(x = d[n]) && d.all) x = d.all[n];
    for (i = 0; !x && i < d.forms.length; i++) x = d.forms[i][n];
    for (i = 0; !x && d.layers && i < d.layers.length; i++) x = MM_findObj(n, d.layers[i].document);
    if (!x && d.getElementById) x = d.getElementById(n);
    return x;
}

function MM_nbGroup(event, grpName) { //v6.0
    var i,img,nbArr,args = MM_nbGroup.arguments;
    if (event == "init" && args.length > 2) {
        if ((img = MM_findObj(args[2])) != null && !img.MM_init) {
            img.MM_init = true;
            img.MM_up = args[3];
            img.MM_dn = img.src;
            if ((nbArr = document[grpName]) == null) nbArr = document[grpName] = new Array();
            nbArr[nbArr.length] = img;
            for (i = 4; i < args.length - 1; i += 2) if ((img = MM_findObj(args[i])) != null) {
                if (!img.MM_up) img.MM_up = img.src;
                img.src = img.MM_dn = args[i + 1];
                nbArr[nbArr.length] = img;
            }
        }
    } else if (event == "over") {
        document.MM_nbOver = nbArr = new Array();
        for (i = 1; i < args.length - 1; i += 3) if ((img = MM_findObj(args[i])) != null) {
            if (!img.MM_up) img.MM_up = img.src;
            img.src = (img.MM_dn && args[i + 2]) ? args[i + 2] : ((args[i + 1]) ? args[i + 1] : img.MM_up);
            nbArr[nbArr.length] = img;
        }
    } else if (event == "out") {
        for (i = 0; i < document.MM_nbOver.length; i++) {
            img = document.MM_nbOver[i];
            img.src = (img.MM_dn) ? img.MM_dn : img.MM_up;
        }
    } else if (event == "down") {
        nbArr = document[grpName];
        if (nbArr)
            for (i = 0; i < nbArr.length; i++) {
                img = nbArr[i];
                img.src = img.MM_up;
                img.MM_dn = 0;
            }
        document[grpName] = nbArr = new Array();
        for (i = 2; i < args.length - 1; i += 2) if ((img = MM_findObj(args[i])) != null) {
            if (!img.MM_up) img.MM_up = img.src;
            img.src = img.MM_dn = (args[i + 1]) ? args[i + 1] : img.MM_up;
            nbArr[nbArr.length] = img;
        }
    }
}
function MM_swapImgRestore() { //v3.0
    var i,x,a = document.MM_sr;
    for (i = 0; a && i < a.length && (x = a[i]) && x.oSrc; i++) x.src = x.oSrc;
}
function MM_swapImage() { //v3.0
    var i,j = 0,x,a = MM_swapImage.arguments;
    document.MM_sr = new Array;
    for (i = 0; i < (a.length - 2); i += 3)
        if ((x = MM_findObj(a[i])) != null) {
            document.MM_sr[j++] = x;
            if (!x.oSrc) x.oSrc = x.src;
            x.src = a[i + 2];
        }
}

// global Rotating Image Stuff
var random_display = 0; // 0 = no, 1 = yes

var intervals = new Array();
intervals["hImage"] = new Array(1.5, 5); // delay between rotating images (in seconds)
intervals["hImage"][0] *= 1000;
intervals["hImage"][1] *= 1000;

intervals["rImage"] = new Array(3, 3); // delay between rotating images (in seconds)
intervals["rImage"][0] *= 1000;
intervals["rImage"][1] *= 1000;
image_lists = new Array();
image_indexes = new Array();


image_indexes["rImage"] = 0;
image_lists["rImage"] = new Array();
image_lists["rImage"][image_indexes["rImage"]++] = new imageItem("/static/images/logos/thumbs/ClientTesimls_1-AAPT.png");
image_lists["rImage"][image_indexes["rImage"]++] = new imageItem("/static/images/logos/thumbs/ClientTesimls_2-AlMills.png");
image_lists["rImage"][image_indexes["rImage"]++] = new imageItem("/static/images/logos/thumbs/ClientTesimls_9-ChanMcL.png");
image_lists["rImage"][image_indexes["rImage"]++] = new imageItem("/static/images/logos/thumbs/ClientTesimls_6-CoCo.png");
image_lists["rImage"][image_indexes["rImage"]++] = new imageItem("/static/images/logos/thumbs/ClientTesimls_8-HPind.png");
image_lists["rImage"][image_indexes["rImage"]++] = new imageItem("/static/images/logos/thumbs/ClientTesimls_7-Reef.png");
image_lists["rImage"][image_indexes["rImage"]++] = new imageItem("/static/images/logos/thumbs/ClientTesimls_4-SnowParkes.png");
image_lists["rImage"][image_indexes["rImage"]++] = new imageItem("/static/images/logos/thumbs/ClientTesimls_5-Street.png");
image_lists["rImage"][image_indexes["rImage"]++] = new imageItem("/static/images/logos/thumbs/ClientTesimls_3-WiseBerry.png");
image_lists["rImage"][image_indexes["rImage"]++] = new imageItem("/static/images/logos/thumbs/ClientTesimls_10-Sanit.png");

MM_preloadImages('/static/images/homeContent0.png'
        , '/static/images/homeContent1.png'
        , '/static/images/homeContent2.png'
        , '/static/images/homeContent3.png'
        , '/static/images/homeContent4.png'
        , '/static/images/homeContent5.png'
        );

image_indexes["hImage"] = 0;
image_lists["hImage"] = new Array();
image_lists["hImage"][image_indexes["hImage"]++] = new imageItem("/static/images/homeContent0.png");
image_lists["hImage"][image_indexes["hImage"]++] = new imageItem("/static/images/homeContent1.png");
image_lists["hImage"][image_indexes["hImage"]++] = new imageItem("/static/images/homeContent2.png");
image_lists["hImage"][image_indexes["hImage"]++] = new imageItem("/static/images/homeContent3.png");
image_lists["hImage"][image_indexes["hImage"]++] = new imageItem("/static/images/homeContent4.png");
image_lists["hImage"][image_indexes["hImage"]++] = new imageItem("/static/images/homeContent5.png");

function imageItem(image_location) {
    this.image_item = new Image();
    this.image_item.src = image_location;
}

function get_ImageItemLocation(imageObj) {
    return(imageObj.image_item.src);
}

function generate(x, y) {
    var range = y - x + 1;
    return Math.floor(Math.random() * range) + x;
}
function getNextImage(place) {
    number_of_images = image_lists[place].length;
    if (random_display) {
        image_indexes[place] = generate(0, number_of_images - 1);
    } else {
        image_indexes[place] = (image_indexes[place] + 1) % number_of_images;
    }

    var new_image = get_ImageItemLocation(image_lists[place][image_indexes[place]]);

    return(new_image);
}

/**
 * New image rotator implementation (incompleted - still using globals above)
 */
(function() {

    var ImageRotator = function(imageElId) {
        this.imageElId = imageElId;
    };

    var proto = ImageRotator.prototype;

    proto.refresh = function() {
        var imgEl = document.getElementById(this.imageElId);
        if (imgEl) {
            imgEl.src = getNextImage(this.imageElId);
        }
    };

    proto.getNextInterval = function() {
        if (image_indexes[this.imageElId] === ( image_lists[this.imageElId].length - 1 )) {
            return intervals[this.imageElId][1];
        } else {
            return intervals[this.imageElId][0];
        }
    };

    proto.start = function() {
        var that = this;

        this.timeoutFunction = function() {
            that.refresh();
            setTimeout(that.timeoutFunction, that.getNextInterval());
        };

        setTimeout(this.timeoutFunction, this.getNextInterval());
    };

    function startAnimation(imageElId) {
        var rotator = new ImageRotator(imageElId);
        rotator.start();
    }

    var init = function() {
        startAnimation('hImage');
        startAnimation('rImage');
        PeopleInsite.login.init();
    };

    YAHOO.util.Event.onDOMReady(init);

}());
