<!--

var _jre = false;
var Platform = PLATFORM_WINDOWS;
var _ocx = false;
var _noPlayer = false;
var AppletName = 'appletPlayer';
//var OCXName = 'ocxPlayer';
var OCXName = 'appletPlayer';
var PlayerWidth = 0;
var PlayerHeight = 0;
var PlaybackWidth = 512;        // these can be changed to allow
var PlaybackHeight = 384;      // control of window mode playback size
var PlayInBrowser = false;
var JavaVersion = "";
var _macLoadedPercentage = 0;
var _IE7 = false;
var _UpdateStarted = false;

var _playlist = null;
var _activePlaylistTrackIdx = 0;

var PLATFORM_OTHER        = 0;
var PLATFORM_WINDOWS      = 1;
var PLATFORM_LINUX        = 2;
var PLATFORM_MACOSX_PPC   = 3;
var PLATFORM_MACOSX_INTEL = 4;
var PLATFORM_MAC          = 5;

if (navigator.platform.indexOf("Win32") != -1)
    Platform = PLATFORM_WINDOWS;
else if (navigator.platform.indexOf("Linux") != -1)
    Platform = PLATFORM_LINUX;
else if (navigator.userAgent.indexOf("Mac OS X") != -1) {
    if(navigator.platform.indexOf("PPC") != -1)
        Platform = PLATFORM_MACOSX_PPC;
    else if(navigator.platform.indexOf("Intel") != -1)
            Platform = PLATFORM_MACOSX_INTEL;
}
else if (navigator.userAgent.indexOf("MSIE 5.2") != -1)
    Platform = PLATFORM_MACOSX_PPC;
else if (navigator.platform.indexOf("Mac") != -1)
    Platform = PLATFORM_MAC;
else
    Platform = PLATFORM_OTHER;

function getPlayerObject()
{
    if(_ocx)
        return document.getElementById(OCXName);
    else {
        if(Platform == PLATFORM_MACOSX_PPC || Platform == PLATFORM_MACOSX_INTEL)
            return document[AppletName];
        else
            return document.getElementById(AppletName);
    } // if
}

function getInspector()
{
    return document.getElementById("inspector");
}

function insertInspectorAppletTag()
{
    // this logic assumes that if the user is running any browser other than IE7 we at least try
    // creating the inspector applet
    // else if we are using IE7, only try the applet tag if we can successfully instantiate the
    // sun jre active control

    if(_IE7) {
        try {
            // only use the jre object tag if we are using IE7 on something other than XP (that is, Vista or Server 2003)

            if(navigator.userAgent.indexOf("NT 5.1") == -1) {
                document.write("<object MAYSCRIPT=true classid='clsid:8AD9C840-044E-11D1-B3E9-00805F499D93' ID='inspector' NAME='inspector' width = '0' height = '0' style='position:absolute'>");
                document.write("<param name = 'code' value = 'InspectorApplet.class' archive = 'player/InspectorApplet.jpeg' >");
                document.write("<param name = 'codebase' value = 'player' >");
                document.write("</object>");
            }
            else {
                document.write("<applet ID='inspector' NAME='inspector' codebase='player' code='InspectorApplet.class' archive = 'InspectorApplet.jpeg' width = '0' height = '0' style='position:absolute'></applet>");
            }
        }
        catch(e) {
        }
    }
    else
        document.write("<applet ID='inspector' NAME='inspector' codebase='player' code='InspectorApplet.class' archive = 'InspectorApplet.jpeg' width = '0' height = '0' style='position:absolute'></applet>");
}

function getPageElement(elementID)
{
    return document.getElementById(elementID);
}

function getRefToDiv(divID)
{
    if( document.layers )                                       //Netscape layers
        return document.layers[divID];
    if( document.getElementById )                               //DOM; IE5, NS6, Mozilla, Opera
        return document.getElementById(divID);
    if( document.all )                                          //Proprietary DOM; IE4
        return document.all[divID];
    if( document[divID] )                                       //Netscape alternative
        return document[divID];

    return false;
}

function startViaPopup(url, windowMode)
{
    window.open("launchclip.html?clipToPlay=" + url + "&windowMode=" + windowMode,
                "",
                "location=no, menubar=no, toolbar=no, status=no, width = 200, height = 30");
}

function playPressedFull(URL, inWindow, startFrame, endFrame, prebufferMS, splashDelay, showEndPrompt, embedded)
{
    try {
        PlayInBrowser = embedded;

        getPlayerObject().terminate();

        if(inWindow)
            getPlayerObject().setFullscreenViewMode(0);
        else
            getPlayerObject().setFullscreenViewMode(1);

        getPlayerObject().setPlaybackDims(PlaybackWidth, PlaybackHeight);
        getPlayerObject().setEmbedded(embedded);
        getPlayerObject().setShowEndPrompt(showEndPrompt);
        getPlayerObject().setStartFrame(startFrame);
        getPlayerObject().setEndFrame(endFrame);
        getPlayerObject().setPrebufferMS(prebufferMS);
        getPlayerObject().setMediaURL(URL);
        getPlayerObject().setSplashDelay(splashDelay);
        //getPlayerObject().playClip();

        // call asynchronously to avoid GDI thread deadlocks...(really)
        var callstring = "getPlayerObject().playClip()";
        setTimeout(callstring, 200);
    }
    catch(except) {
        alert("The Video Player has not finished loading");
    } // try - catch
}

function playPressed(URL, inWindow)
{
    playPressedFull(URL, inWindow, 0, 0, 5000, 0, false, PlayInBrowser);
}

// this is used for pay-per-view tracking

function playPressedPPV(URL, inWindow, startFrame, endFrame, prebufferMS, splashDelay, showEndPrompt, embedded, clientID)
{
    try {
        getPlayerObject().setClientID(clientID);

        getPlayerObject().terminate();

        if(inWindow)
            getPlayerObject().setFullscreenViewMode(0);
        else
            getPlayerObject().setFullscreenViewMode(1);

        getPlayerObject().setPlaybackDims(PlaybackWidth, PlaybackHeight);
        getPlayerObject().setEmbedded(embedded);
        getPlayerObject().setShowEndPrompt(showEndPrompt);
        getPlayerObject().setStartFrame(startFrame);
        getPlayerObject().setEndFrame(endFrame);
        getPlayerObject().setPrebufferMS(prebufferMS);
        getPlayerObject().setMediaURL(URL);
        getPlayerObject().setSplashDelay(splashDelay);
        //getPlayerObject().playClip();

        // call asynchronously to avoid GDI thread deadlocks...(really)
        var callstring = "getPlayerObject().playClip()";
        setTimeout(callstring, 200);
    }
    catch(except) {
        alert("The Video Player has not finished loading");
    } // try - catch
}

function playPressedOpenURL(URL, inWindow, PostPlayURL)
{
    try {
        getPlayerObject().terminate();

        if(inWindow)
            getPlayerObject().setFullscreenViewMode(0);
        else
            getPlayerObject().setFullscreenViewMode(1);

        getPlayerObject().setPlaybackDims(PlaybackWidth, PlaybackHeight);
        getPlayerObject().setEmbedded(PlayInBrowser);
        getPlayerObject().setShowEndPrompt(false);
        getPlayerObject().setStartFrame(0);
        getPlayerObject().setEndFrame(0);
        getPlayerObject().setPrebufferMS(4000);
        getPlayerObject().setMediaURL(URL);
        getPlayerObject().setSplashDelay(0);
        getPlayerObject().setPlaybackParams("/RUN:\"" + PostPlayURL + "\"");
        //getPlayerObject().playClip();

        // call asynchronously to avoid GDI thread deadlocks...(really)
        var callstring = "getPlayerObject().playClip()";
        setTimeout(callstring, 200);
    }
    catch(except) {
        alert("The Video Player has not finished loading");
    } // try - catch
}

function stopPressed()
{
    getPlayerObject().terminate();
}

function pausePressed()
{
    if(getPlayerObject().getPlaybackStatus() != 2) // paused
        getPlayerObject().pause();
}

function resumePressed()
{
    if(getPlayerObject().getPlaybackStatus() == 2) // paused
        getPlayerObject().resume();
}

function fullscreenPressed()
{
    //getPlayerObject().setEscapeExitFullscreen(true);
    //getPlayerObject().toggleFullscreen();
    getPlayerObject().setFullscreenViewMode(1);
}

// notification method provided for OS X applet implementation to call as we can't
// use standard liveconnect calls from JavaScript to Java on that platform

function setMacLoadedPercentage(percent)
{
    _macLoadedPercentage = percent;
}

function loadProgressUpdater() {
    if(_ocx) {
        try {
            if(getPlayerObject().LibDownloadProgress < 100) {
                getRefToDiv("LoadProgress").style.display = "block";
                getRefToDiv("LoadProgress").innerHTML = getPlayerObject().LibDownloadProgress + "% loaded";
                //setTimeout("loadProgressUpdater()", 1000);
            }
            else
                getRefToDiv("LoadProgress").innerHTML = "";
        }
        catch(except) {
            getRefToDiv("LoadProgress").innerHTML = "";
        } // try - catch
    }
    else {
        if(Platform == PLATFORM_MACOSX_PPC || Platform == PLATFORM_MACOSX_INTEL)
            getRefToDiv("LoadProgress").innerHTML = _macLoadedPercentage + "% loaded";
        else {
            try {
                if(getPlayerObject().getLoadedPercentage() < 100) {
                    getRefToDiv("LoadProgress").style.display = "block";
                    getRefToDiv("LoadProgress").innerHTML = getPlayerObject().getLoadedPercentage() + "% loaded";
                    //setTimeout("loadProgressUpdater()", 1000);
                }
                else
                    getRefToDiv("LoadProgress").innerHTML = "";
            }
            catch(except) {
                getRefToDiv("LoadProgress").innerHTML = "";
            } // try - catch
        } // if
    } // if
}

function PreloadDismiss(controlName)
{
    var agent = navigator.userAgent.toLowerCase();

    // even if the final applet is supposed to have zero width and height, MSIE wont
    // recognise the applet tag if they are initially so
    // the solution is to create the original tag with a width and height >= 1 and then
    // later set their true width and height

    try {
        getPlayerObject().width = PlayerWidth;
        getPlayerObject().height = PlayerHeight;
    }
    catch(except) {
        // do nothing
    } // try - catch

    getRefToDiv("PreloadMessage").style.display = "none";
}

function checkLoad()
{
    if(_noPlayer) {
    }
    else {
        if(_ocx) {
            try {
                if(getPlayerObject().LibDownloadProgress > 99) {
                    PreloadDismiss(OCXName);
                }
                else {
                    getRefToDiv("PreloadMessage").style.display = "block";
                    loadProgressUpdater();
                    setTimeout('checkLoad()', 1000);
                } // if
            }
            catch(except) {
                getRefToDiv("PreloadMessage").style.display = "block";
                setTimeout('checkLoad()', 1000);
            } // try - catch
        }
        else {
            try {
                // have to work around a new bug in Safari 1.3
                // which causes applet accesses to lock the browser
                // hard

                if(Platform == PLATFORM_MACOSX_PPC || Platform == PLATFORM_MACOSX_INTEL) {
                    if(_macLoadedPercentage > 99)
                        PreloadDismiss(AppletName);
                    else {
                            getRefToDiv("PreloadMessage").style.display = "block";
                            loadProgressUpdater();
                            setTimeout('checkLoad()', 1000);
                    } // if
                }
                else if(true || JavaVersion.indexOf("1.4.0_01") == -1) {
                        if(getPlayerObject().getLoadedPercentage() > 99) {
                            PreloadDismiss(AppletName);
                        }
                        else {
                            getInspector().style.display = "none";
                            getRefToDiv("PreloadMessage").style.display = "block";
                            loadProgressUpdater();
                            setTimeout('checkLoad()', 1000);
                        } // if
                    }
                else {
                    loadProgressUpdater();
                    PreloadDismiss(AppletName);
                } // if
            }
            catch(except) {
                // the browser appears to handle the security cert acceptance process synchronously when using the JRE
                // so we don't have a problem with calling this while the dialog is pending, while the MSJVM does...
                // so in IE we should leave the progress indicator visible and keep the checking processing running while in mozilla
                // we should simply remove the progress indicator when we get here

                if(_jre) {
                     loadProgressUpdater();
                    PreloadDismiss(AppletName);
                }
                else {
                    // this bit is reached as part of the normal checking process when the client is running
                    // IE + MSJVM

                    getRefToDiv("PreloadMessage").style.display = "block";
                    loadProgressUpdater();
                    setTimeout("checkLoad()", 500);
                } // if
            } // try - catch
        } // if
    } // if
}

function delayedPlay(url, inWindow)
{
    if(_noPlayer) {
    }
    else {
        if (false && _ocx) {
            try {
                document[OCXName].MediaURL;
                playPressed(url, inWindow);
            }
            catch(except) {
                setTimeout("delayedPlay('" + url + "'," + inWindow + ")", 1000);
            } // try - catch
        }
        else {
            try {
                // for older versions
                getPlayerObject().setMediaURL("");

                playPressed(url, inWindow);
            }
            catch(except) {
                setTimeout("delayedPlay('" + url + "'," + inWindow + ")", 1000);
            } // try - catch
        } // if
    } // if
}

function videoPlayerLoaderAutoPlay(autoPlayURL, inWindow, embedded)
{
    var params = "";

    //params = "/NOEND /size:" + PlaybackWidth + "x" + PlaybackHeight

    videoPlayerLoaderAutoPlayFull(autoPlayURL, 0, 0, "", false, 5000, inWindow, embedded, params);
}

function videoPlayerLoaderAutoPlayFull(autoPlayURL, startFrame, endFrame, clientID, showEndPrompt, prebufferMS, inWindow, embedded, params)
{
    setTimeout("checkLoad()", 1000);
    getRefToDiv('VideoPlayerSection').innerHTML = getPlayerScriptFull(autoPlayURL,
                                                                        params,
                                                                        startFrame,
                                                                        endFrame,
                                                                        clientID,
                                                                        showEndPrompt,
                                                                        prebufferMS,
                                                                        inWindow,
                                                                        embedded);
}

function videoPlayerLoaderAutoPlayFromFrame(autoPlayURL, inWindow, withinBrowser, fromFrame)
{
    var params = "";

    PlayInBrowser = withinBrowser;

    if(inWindow)
        params = "/W /NOEND /size:" + PlayerWidth + "x" + PlayerHeight + " /FRAME:" + fromFrame
    else
        params = "/NOEND /size:" + PlayerWidth + "x" + PlayerHeight + " /FRAME:" + fromFrame

    setTimeout("checkLoad()", 1000);
    getRefToDiv('VideoPlayerSection').innerHTML = getPlayerScript(autoPlayURL, params);
}

function getPlayerScript(autoPlayURL, params)
{
    return getPlayerScriptFull(autoPlayURL, params, PlaybackWidth, PlaybackHeight, 0, 0, "", false, 5000, false, false, params);
}

function generateAutoPlayParams(autoPlayURL, isOCX, width, height, startFrame, endFrame, clientID, showEndPrompt, prebufferMS, inWindow, embedded, otherParams)
{
    var TagValue = "";

    if(autoPlayURL != null && autoPlayURL.length > 0) {
        TagValue = TagValue + ('<param name="AUTOPLAY_URL" value="' + autoPlayURL + '">');

        if(otherParams != null && otherParams.length > 0)
            TagValue = TagValue + ('<param name="AUTOPLAY_PARAMS" value="' + otherParams + '">');

        if(inWindow)
            TagValue = TagValue + ('<param name="FULLSCREEN_VIEWMODE" value="' + 0 + '">');
        else
            TagValue = TagValue + ('<param name="FULLSCREEN_VIEWMODE" value="' + 1 + '">');

        TagValue = TagValue + ('<param name="START_FRAME" value="' + startFrame + '">');
        TagValue = TagValue + ('<param name="END_FRAME" value="' + endFrame + '">');
        TagValue = TagValue + ('<param name="CLIENT_ID" value="' + clientID + '">');
        TagValue = TagValue + ('<param name="SHOW_END_PROMPT" value="' + showEndPrompt + '">');
        TagValue = TagValue + ('<param name="PREBUFFER_MS" value="' + prebufferMS + '">');
    }

    TagValue = TagValue + ('<param name="PLAYBACK_WIDTH" value="' + width + '">');
    TagValue = TagValue + ('<param name="PLAYBACK_HEIGHT" value="' + height + '">');

    if(embedded)
        TagValue = TagValue + ('<param name="EMBEDDED" value="true">');

    return TagValue;
}

function getPlayerScriptFull(autoPlayURL, params, startFrame, endFrame, clientID, showEndPrompt, prebufferMS, inWindow, embedded)
{
    var OCXClassID = 'EF732B7C-BFF6-49b1-A32C-3C74C318FDCC';
    var OCXArchive = 'player/player_ocx.jpeg';
    var MSJVMArchive = 'player/player_jni_ms.jpeg';
    var MacJVMArchive = 'player/player_jni_osx.jpeg';
    var MacIA32JVMArchive = 'player/player_jni_osx_ia32.jpeg';
    var SunJVMArchive = 'player/player_jni_win32.jpeg';
    var SunJRE_1_6_Alternate = 'player/player_jni_win32.jar';   // j2se 1.6 doesn't check for certs in archives that don't
                                                               // end in .jar
    var hackWidth = 1;
    var hackHeight = 1;
    var ComponentLoaded = false;
    var FailPageURL = "http://www.vividas.com/support/streamingsupport.html";

    var tailSlash = location.href.substring (0,location.href.length).lastIndexOf('/');
    var tailQuest = location.href.substring (0,location.href.length).lastIndexOf('?');

    var eoURL = 0;

    if(tailQuest != -1 && tailQuest < tailSlash)
        eoURL = location.href.substring(0, tailQuest).lastIndexOf('/');
    else
        eoURL = tailSlash;

    //var BackgroundURL = unescape(location.href.substring(0, eoURL)) + "/images/orientedplayerbg.jpeg";
    var BackgroundURL = "";
    var ResourcesURL = unescape(location.href.substring(0, eoURL)) + "/images/resources.jpeg";
    var SplashURL = unescape(location.href.substring(0, eoURL)) + "/images/splash.jpeg";
    //var SplashURL = "";
    var EndscreenURL = unescape(location.href.substring(0, eoURL)) + "/images/endscreen.jpeg";
    var LibURL = unescape(location.href.substring(0, eoURL))  + "/player/win32lib.jpeg";
    var MSLibURL = unescape(location.href.substring(0, eoURL))  + "/player/win32lib.jpeg";
    var OCXLibURL = unescape(location.href.substring(0, eoURL))  + "/player/ocxlib.jpeg";
    var OSXLibURL = unescape(location.href.substring(0, eoURL))  + "/player/osxlib.jpeg";
    var OSXIA32LibURL = unescape(location.href.substring(0, eoURL))  + "/player/osxia32lib.jpeg";

    var browsername = navigator.appName;
    var TagValue = "";
    var agent = navigator.userAgent.toLowerCase();

    _noPlayer = false;

    if(getInspector() != null) {
        _ocx = false;

        try {
            if(getInspector().isMSJVM()) {
                _jre = false;
            }
            else {
                _jre = true;
            } // if

            JavaVersion = getInspector().getJavaVersion();

            getInspector().style.display = "none";

            if(JavaVersion.indexOf("1.6") != -1)
                SunJVMArchive = SunJRE_1_6_Alternate;
        }
        catch(except) {
            if(agent.indexOf("msie") != -1) {
                _jre = false;
                _ocx = true;
            }
            else
                _jre = true;
        } // try - catch
    }
    else {
            _jre = false;
            _ocx = true;
    } // if

    if(Platform == PLATFORM_WINDOWS) {
        if(agent.indexOf("opera") != -1) {
            TagValue = ('<APPLET MAYSCRIPT=true ID = "' + AppletName + '" NAME = "' + AppletName + '" CODE = PlayerApplet.class WIDTH = "' + PlayerWidth + '" HEIGHT = ' + (PlayerHeight) + '" ARCHIVE = "' + SunJVMArchive + '" >');
            TagValue = TagValue + ('<param name="SPLASH_URL" value="' + SplashURL + '">');
            TagValue = TagValue + ('<param name="RESOURCES_URL" value="' + ResourcesURL + '">');
            TagValue = TagValue + ('<param name="LIB_URL" value="' + LibURL + '">');
            TagValue = TagValue + ('<param name="BACKGROUND_URL" value="' + BackgroundURL + '">');
            TagValue = TagValue + ('<param name="ENDSCREEN_URL" value="' + EndscreenURL + '">');

            TagValue = TagValue + generateAutoPlayParams(autoPlayURL, false, PlaybackWidth, PlaybackHeight, startFrame, endFrame, clientID, showEndPrompt, prebufferMS, inWindow, embedded, params);

            TagValue = TagValue + ('</APPLET>');

            return TagValue;
        }
        else if(agent.indexOf("msie") != -1) {
            //_jre = false;
            //_ocx = true;

            if(_jre) {
                // tag for Sun JRE in IE

                TagValue = ('<object MAYSCRIPT=true classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93" ID = "' + AppletName + '"');
                TagValue = TagValue + ('height="' + hackHeight + '" width="' + hackWidth + '" >');
                TagValue = TagValue + ('<param name="code" value="PlayerApplet.class">');
                TagValue = TagValue + ('<param name = "archive" value = "' + SunJVMArchive + '">');
                TagValue = TagValue + ('<param name="NAME" value="' + AppletName + '">');
                TagValue = TagValue + ('<param name="ID" value="' + AppletName + '">');
                TagValue = TagValue + ('<param name="SPLASH_URL" value="' + SplashURL + '">');
                TagValue = TagValue + ('<param name="RESOURCES_URL" value="' + ResourcesURL + '">');
                TagValue = TagValue + ('<param name="BACKGROUND_URL" value="' + BackgroundURL + '">');
                TagValue = TagValue + ('<param name="ENDSCREEN_URL" value="' + EndscreenURL + '">');
                TagValue = TagValue + ('<param name="LIB_URL" value="' + LibURL + '">');

                TagValue = TagValue + generateAutoPlayParams(autoPlayURL, false, PlaybackWidth, PlaybackHeight, startFrame, endFrame, clientID, showEndPrompt, prebufferMS, inWindow, embedded, params);

                TagValue = TagValue + ('</object>');

                return TagValue;
            }
            else if(_ocx) {
                // tag for ocx

                TagValue = ('<object id="' + OCXName + '"');
                TagValue = TagValue + ('width="' + hackWidth + '"');
                TagValue = TagValue + ('height="' + hackHeight + '"');
                TagValue = TagValue + ('classid="CLSID:' + OCXClassID + '"');
                TagValue = TagValue + ('codebase="' + OCXArchive + '" ');
                TagValue = TagValue + ('MAYSCRIPT=true >');

                TagValue = TagValue + ('<param name="cabinets" value="ocx_play.ocx">');
                TagValue = TagValue + ('<param name="cabbase" value="ocx_play.ocx">');
                TagValue = TagValue + ('<param name="NAME" value="' + OCXName + '">');
                TagValue = TagValue + ('<param name="ID" value="' + OCXName + '">');
                TagValue = TagValue + ('<param name="LIB_URL" value="' + OCXLibURL + '">');
                TagValue = TagValue + ('<param name="SPLASH_URL" value="' + SplashURL + '">');
                TagValue = TagValue + ('<param name="RESOURCES_URL" value="' + ResourcesURL + '">');
                TagValue = TagValue + ('<param name="BACKGROUND_URL" value="' + BackgroundURL + '">');
                TagValue = TagValue + ('<param name="ENDSCREEN_URL" value="' + EndscreenURL + '">');

                TagValue = TagValue + generateAutoPlayParams(autoPlayURL, true, PlaybackWidth, PlaybackHeight, startFrame, endFrame, clientID, showEndPrompt, prebufferMS, inWindow, embedded, params);
                TagValue = TagValue + ('<param name="BACKGROUND_URL" value="' + BackgroundURL + '">');

                TagValue = TagValue + ('</object>');
                return TagValue;
            }
            else {
                // tag for MSJVM

                TagValue = ('<APPLET MAYSCRIPT=true ALIGN="absmiddle" ID = "' + AppletName + '" NAME = "' + AppletName + '" CODE = PlayerApplet.class WIDTH = "' + hackWidth + '" HEIGHT = "' + hackHeight + '" ARCHIVE = "' + MSJVMArchive + '" > ');
                TagValue = TagValue + ('<param name="cabinets" value="' + MSJVMArchive + '"> ');
                TagValue = TagValue + ('<param name="SPLASH_URL" value="' + SplashURL + '">');
                TagValue = TagValue + ('<param name="RESOURCES_URL" value="' + ResourcesURL + '">');
                TagValue = TagValue + ('<param name="BACKGROUND_URL" value="' + BackgroundURL + '">');
                TagValue = TagValue + ('<param name="ENDSCREEN_URL" value="' + EndscreenURL + '">');
                TagValue = TagValue + ('<param name="LIB_URL" value="' + MSLibURL + '">');

                TagValue = TagValue + generateAutoPlayParams(autoPlayURL, false, PlaybackWidth, PlaybackHeight, startFrame, endFrame, clientID, showEndPrompt, prebufferMS, inWindow, embedded, params);

                TagValue = TagValue + ('</APPLET> ');

                //alert(TagValue);

                return TagValue;
            } // if
        }
        else {
            // tag to setup applet in gecko (aka Mozilla) based browsers

            TagValue = ('<APPLET MAYSCRIPT=true ');
            TagValue = TagValue + ('code="PlayerApplet.class" ');
            TagValue = TagValue + ('archive="' + SunJVMArchive + '" ');
            TagValue = TagValue + ('ID = "' + AppletName + '" ');
            TagValue = TagValue + ('height="' + hackHeight + '" ');
            TagValue = TagValue + ('width="'+ hackWidth +'" > ');

            TagValue = TagValue + ('<param name="LIB_URL" value="' + LibURL + '">');
            TagValue = TagValue + ('<param name="SPLASH_URL" value="' + SplashURL + '">');
            TagValue = TagValue + ('<param name="RESOURCES_URL" value="' + ResourcesURL + '">');
            TagValue = TagValue + ('<param name="BACKGROUND_URL" value="' + BackgroundURL + '">');
            TagValue = TagValue + ('<param name="ENDSCREEN_URL" value="' + EndscreenURL + '">');

            TagValue = TagValue + generateAutoPlayParams(autoPlayURL, false, PlaybackWidth, PlaybackHeight, startFrame, endFrame, clientID, showEndPrompt, prebufferMS, inWindow, embedded, params);

            TagValue = TagValue + ('</applet> ');

            return TagValue;
        } // if
    }
    else if(Platform == PLATFORM_MACOSX_PPC) {
        TagValue = '<APPLET MAYSCRIPT=true code = "PlayerApplet.class" archive = "' + MacJVMArchive + '" ID="' + AppletName + '" NAME="' + AppletName + '" WIDTH="' + PlaybackWidth + '" HEIGHT="' + PlaybackHeight + '"> <param name = "archive" value = "' + MacJVMArchive + '"> <param name = "code" value = "PlayerApplet.class">';

        TagValue = TagValue + ('<param name="SPLASH_URL" value="' + SplashURL + '">');
        TagValue = TagValue + ('<param name="RESOURCES_URL" value="' + ResourcesURL + '">');
        TagValue = TagValue + ('<param name = "CODEBASE" value = "' + unescape(location.href.substring(0, eoURL)) +  '">');
        TagValue = TagValue + ('<param name="LIB_URL" value="' + OSXLibURL + '">');
        TagValue = TagValue + ('<param name="BACKGROUND_URL" value="' + BackgroundURL + '">');
        TagValue = TagValue + ('<param name="ENDSCREEN_URL" value="' + EndscreenURL + '">');

        TagValue = TagValue + generateAutoPlayParams(autoPlayURL, false, PlaybackWidth, PlaybackHeight, startFrame, endFrame, clientID, showEndPrompt, prebufferMS, inWindow, embedded, params);

        TagValue = TagValue + 'Java is not enabled in your browser!</APPLET>';

        return TagValue;
    }
    else if(Platform == PLATFORM_MACOSX_INTEL) {
        TagValue = '<APPLET MAYSCRIPT=true code = "PlayerApplet.class" archive = "' + MacIA32JVMArchive + '" ID="' + AppletName + '" NAME="' + AppletName + '" WIDTH="' + PlaybackWidth + '" HEIGHT="' + PlaybackHeight + '"> <param name = "archive" value = "' + MacIA32JVMArchive + '"> <param name = "code" value = "PlayerApplet.class">';

        TagValue = TagValue + ('<param name="SPLASH_URL" value="' + SplashURL + '">');
        TagValue = TagValue + ('<param name="RESOURCES_URL" value="' + ResourcesURL + '">');
        TagValue = TagValue + ('<param name = "CODEBASE" value = "' + unescape(location.href.substring(0, eoURL)) +  '">');
        TagValue = TagValue + ('<param name="LIB_URL" value="' + OSXIA32LibURL + '">');
        TagValue = TagValue + ('<param name="BACKGROUND_URL" value="' + BackgroundURL + '">');
        TagValue = TagValue + ('<param name="ENDSCREEN_URL" value="' + EndscreenURL + '">');

        TagValue = TagValue + generateAutoPlayParams(autoPlayURL, false, PlaybackWidth, PlaybackHeight, startFrame, endFrame, clientID, showEndPrompt, prebufferMS, inWindow, embedded, params);

        TagValue = TagValue + 'Java is not enabled in your browser!</APPLET>';

        //alert(TagValue);

        return TagValue;
    }
    else {
        //document.writeln('Unfortunately, the Operating System you are currently using is unsupported.');
        _noPlayer = true;
        location.href = FailPageURL;
    } // if
}

function videoPlayerLoader()
{
    try {
        getRefToDiv("LoadProgress").style.display = "block";
        getRefToDiv("LoadProgress").innerHTML = "0% loaded";
    }
    catch(except) {
    } // try - catch

    setTimeout("checkLoad()", 1000);
    getRefToDiv("VideoPlayerSection").innerHTML = getPlayerScript("", "");
}

// -- playlist functionality implementation

function Track(URL,
           width,
           height,
           startFrame,
           endFrame,
           showEndPrompt,
           prebufferMS,
           inWindow,
           embedded,
           showSplash,
           splashDelay,
           clientID)
{
    this._url = URL;
    this._width = width;
    this._height = height;
    this._startFrame = startFrame;
    this._endFrame = endFrame;
    this._showEndPrompt = showEndPrompt;
    this._prebufferMS = prebufferMS;
    this._inWindow = inWindow;
    this._embedded = embedded;
    this._showSplash = showSplash;
    this._splashDelay = splashDelay;
    this._clientID = clientID;
}

function appendToPlaylist(URL,
              width,
              height,
              startFrame,
              endFrame,
              showEndPrompt,
              prebufferMS,
              inWindow,
              embedded,
              showSplash,
              splashDelay,
              clientID)
{
    var playTrack = new Track(URL,width,height,startFrame,endFrame,showEndPrompt,prebufferMS,inWindow,embedded,showSplash,splashDelay,clientID);

    if(_playlist == null)
        _playlist = new Array(playTrack);
    else
        _playlist = _playlist.concat(playTrack);
}

function clearPlaylist()
{
    _playlist = null;
}

function playAllTracks()
{
    _activePlaylistTrackIdx = 0;

    if(_playlist.length > 0)
        playTrack(_playlist[_activePlaylistTrackIdx])
}

/*
function playTrack(track)
{
    getPlayerObject().terminate();

    resizePlayer(track._width, track._height);
    getPlayerObject().setShowSplashScreen(track._showSplash);
    playPressedFull(track._url, track._inWindow, track._startFrame, track._endFrame, track._prebufferMS, track._splashDelay, track._showEndPrompt, track._embedded);
    getPlayerObject().setShowSplashScreen(true);

    //var callstring = "playPressedFull(\"" + track._url + "\"," + track._inWindow + "," + track._startFrame + "," + track._endFrame + "," + track._prebufferMS + "," + track._splashDelay + "," + track._showEndPrompt + "," + track._embedded + ")";
    //setTimeout(callstring, 500);
}
*/

function playTrack(track)
{
    getPlayerObject().terminate();

    getPlayerObject().setShowSplashScreen(track._showSplash);
    playPressedFull(track._url, track._inWindow, track._startFrame, track._endFrame, track._prebufferMS, track._splashDelay, track._showEndPrompt, track._embedded);
    getPlayerObject().setShowSplashScreen(true);

    var callstring = "resizePlayer(" + track._width + "," + track._height + ")";
    setTimeout(callstring, 100);
}

function advanceActivePlaylistTrack()
{
    _activePlaylistTrackIdx++;

    if(_playlist != null && _activePlaylistTrackIdx < _playlist.length)
        playTrack(_playlist[_activePlaylistTrackIdx]);
}

function getPlaylistLength()
{
    if(_playlist == null)
        return 0;
    else
        return _playlist.length;
}

function getActivePlaylistTrackIdx()
{
    return _activePlaylistTrackIdx;
}

function getPlaylistEntry(idx)
{
    if(_playlist == null || idx >= _playlist.length)
        return null;
    else
        return _playlist[idx];
}

function onPlayerEOS()
{
    customEOSHandler();

    if(_playlist != null && _playlist.length >  0)
        advanceActivePlaylistTrack();
    else
        _activePlaylistTrackIdx = 0;
}

//-->
