//
// g1 Standard JavaScript file
//
// All g1 tours should use this
//

// position marker variable
var count = 0;

// advances to the next episode
function nextEpisode(joinUrl) {
    count++;
    if (count > episodes.length -1) {
        // count = 0;
        location.href = joinUrl;
    }
    writeEpisode (count, false, joinUrl);
}
// goes back an episode
function prevEpisode(joinUrl) {
    count = Math.max(0, count-1);
/*
    // it no longer does this:
    count--;
    if (count < 0)
        count = episodes.length - 1;
*/
    writeEpisode (count, false, joinUrl);
}

// measures scroll location
function findTop(obj) {
    var curtop = 0;

    if (obj.offsetParent) {
        curtop = obj.offsetTop;
        while (obj = obj.offsetParent) {
            curtop += obj.offsetTop;
        }
    }

    return curtop;
}

// starts an episode in the player
function writeEpisode(num, top, joinUrl) {
    if (top) {
        scroll(0,findTop(document.getElementById('scrollto')));
    }

    // set count
    count = num;
        
    if (!episodes[num] || !episodes[num].img) {
        location.href = joinUrl;
        return;
    }
        
    var divID = 'flashTrailer';

    // write flash player
    var so = new SWFObject('/g1/tour-trailer-player.swf', divID + '_child', "854", "480", "9", "#000000");
    so.addVariable ('img', episodes[num].img);
    so.addVariable ('bb', episodes[num].vid + '_0750.flv');
    so.addVariable ('dsl', episodes[num].vid + '_0450.flv');
    so.addVariable ('joinPage', joinUrl);
    so.addVariable('joinImage', 'images/join.jpg');
    so.addVariable ('img2257', episodes[num].vid + '_2257.png');
    so.addVariable ('noticeBG', '#FFCC99');
    so.addVariable ('noticeTime', '400');
    so.addVariable('channel', divID);
    so.addParam('AllowScriptAccess', 'always');
    so.addParam('allowFullScreen', 'true');
    so.write(divID);
    // write the name
    if (tname = document.getElementById('trailerName')) {
        tname.innerHTML = episodes[num].name;
    }
    // write minutes
    if (tmin = document.getElementById('trailerMinutes')) {
        tmin.innerHTML = episodes[num].minutes;
    }
    // write clips
    if (tclips = document.getElementById('trailerClips')) {
        tclips.innerHTML = episodes[num].clips;
    }
    // write pics
    if (tpics = document.getElementById('trailerPics')) {
        tpics.innerHTML = episodes[num].pics;
    }
    // write the episode description
    if (tdesc = document.getElementById('trailerDesc')) {
        tdesc.innerHTML = episodes[num].desc;
    }
    // write the dsl wmv url
    if (tdsl = document.getElementById('trailerDSL')) {
        tdsl.href = episodes[num].vid + '_0450.wmv';
    }
    // write the bb wmv url
    if (tbb = document.getElementById('trailerBB')) {
        tbb.href = episodes[num].vid + '_0750.wmv';
    }

}

// for swap functions
var storedImages = new Array();

function swapImage(obj, url, onlyIfCountGreaterThanZero) {
    // do this first, in case
    restoreImage(obj);

    if (count == 0 && onlyIfCountGreaterThanZero) {
        return;
    }

    var i;

    // find a location to store the original src
    for (i = 0; i < storedImages.length; ++i) {
        if (storedImages[i] == null) {
            break;
        }
    }

    // store data
    storedImages[i] = new Object();
    storedImages[i].obj = obj;
    storedImages[i].src = obj.src;

    // change url
    obj.src = url;
}

function restoreImage(obj) {
    for (var i = 0; i < storedImages.length; ++i) {
        if (storedImages[i] && storedImages[i].obj == obj) {
            obj.src = storedImages[i].src;
            storedImages[i] = null;
            break;
        }
    }
}

function preloadImages(/* dynamic argument list: comma-separated image urls */) {
    // store to the document
    if (!document.preloaded) {
        document.preloaded = new Array();
    }

    var pos = document.preloaded.length;

    for (i = 0; i < preloadImages.arguments.length; ++i) {
        document.preloaded[pos] = new Image;
        document.preloaded[pos].src = preloadImages.arguments[i];
        ++pos;
    }
}
