var flowplayer_Utilities =
{
    LoadScriptFile:
        function(fileName)
        {
            var fileNameLower = fileName.toLowerCase();
            var head = document.getElementsByTagName("head")[0]
            var allScripts = head.getElementsByTagName("script");
            for (var ii = 0; ii < allScripts.length; ++ii)
                if (allScripts[ii].src && allScripts[ii].src.toLowerCase() == fileNameLower)
                    return;

            var newElt = document.createElement("script");
            newElt.src = fileName;
            newElt.type = "text/javascript";
            head.appendChild(newElt);
        }
};

var g_playerCtls=[];

function LoadFlowplayer() {
    if (window["MoveViewState"])
        MoveViewState();

    var flowSettings = document.getElementById("flowPlayerSettings");
    if (!flowSettings)
        return;

    var allDivs = document.body.getElementsByTagName("DIV");

    for (var ii = 0; ii < allDivs.length; ++ii)
        if (allDivs[ii].className == "titanFlowHolder")
            g_playerCtls[g_playerCtls.length] = allDivs[ii];

    if (g_playerCtls.length == 0)
        return;

    var baseDir = flowSettings.getAttribute("baseDir");
    var js = flowSettings.getAttribute("js"); 
    if (!baseDir || !js)
        return;

    flowplayer_Utilities.LoadScriptFile(baseDir + js); 
    window.setTimeout(TitanFlowPlayer, 100);
}

function TitanFlowPlayer() {
    if (g_playerCtls.length == 0)
        return; 
        
    if (!window["flowplayer"])
        return window.setTimeout(TitanFlowPlayer, 100);

    var flowSettings = document.getElementById("flowPlayerSettings");
    var baseDir = flowSettings.getAttribute("baseDir");
    var swf = baseDir + flowSettings.getAttribute("swf");
    var keyArray = [];
    
    var keyCtl = document.getElementById("flowPlayerKeys"); 
    if (keyCtl) {
        var keys = keyCtl.value.split(' '); 
        for (var jj = 0; jj < keys.length; ++jj) {
            var key = tic_Utilities.Trim(keys[jj]); 
            if (key.length)
                keyArray[keyArray.length] = key;
        }
    }
    
    for (var ii = 0; ii < g_playerCtls.length; ++ii) {
        var settings = { wmode: 'opaque', clip: {}, plugins: { controls: {}} }; 
        if (keyArray.length)
            settings.key = keyArray;

        settings.clip.url = g_playerCtls[ii].getAttribute("filename");
        settings.clip.scaling = g_playerCtls[ii].getAttribute("scaling");
        settings.clip.autoPlay = (g_playerCtls[ii].getAttribute("autoplay") == "1");
        settings.clip.autoBuffering = (g_playerCtls[ii].getAttribute("autobuffering") == "1");
        
        var fadeIn = g_playerCtls[ii].getAttribute("fadin");
        var fadeOut = g_playerCtls[ii].getAttribute("fadeout");
        
        settings.clip.fadeInSpeed = ((fadeIn == 'slow') ? 2000 : ((fadeIn == 'medium') ? 1000 : 500));
        settings.clip.fadeOutSpeed = ((fadeOut == 'slow') ? 2000 : ((fadeOut == 'medium') ? 1000 : 500));
        settings.plugins.controls.stop = (g_playerCtls[ii].getAttribute("stopbutton") == "1");
        settings.plugins.controls.scrubber = (g_playerCtls[ii].getAttribute("progressbar") == "1");
        settings.plugins.controls.fullscreen = (g_playerCtls[ii].getAttribute("fullscreen") == "1");
        
        var template = g_playerCtls[ii].getAttribute("templates"); 
        if (flowSettings.getAttribute(template))
            settings.plugins.controls.url = baseDir + flowSettings.getAttribute(template); 
        
        if (settings.clip.autoPlay)
            g_playerCtls[ii].innerHTML = ""; 
        else if (g_playerCtls[ii].getAttribute("staticimage"))
            settings.clip.autoPlay = true; 
        else
            g_playerCtls[ii].innerHTML = ""; 
            
       flowplayer(g_playerCtls[ii], swf, settings);
    }
}
