openPlaylist = function(channelId, dirId, fileId) {
    var playerElementId = window.playerElementId ? window.playerElementId : "FlexStreamPlayer";
    var player = document.getElementById(playerElementId);
    if (player && !player.openPlaylist) { player = player.getElementsByTagName("embed")[0]; }
    
    var playlistUrl = getPlaylistUrl(channelId, dirId, fileId);
    
    if (player && player.openPlaylist && playlistUrl) {
        player.openPlaylist(playlistUrl);
    }
}

getPlaylistUrl = function(channelId, dirId, fileId) {
    if (playlistHandlerUrl && channelId) {
        var playlistUrl = playlistHandlerUrl + "?channelId=" + channelId;
        
        playlistUrl += dirId ? "&dirId=" + dirId : ""
        playlistUrl += fileId ? "&fileId=" + fileId : ""
        
        return playlistUrl;
    } else {
        return false;
    }
}

handlePlayerEvent = function(eventName, objectParams) {
    var paramsStringPattern = window.paramsStringPattern ? window.paramsStringPattern : "#channelId={channelId}&dirId={dirId}[&fileId={fileId}]";
    paramsStringPattern = (/^#|\?|\&/.test(paramsStringPattern) ? "" : "#") + paramsStringPattern;
    
    switch (eventName) {
        case "TAB_SELECTED":
        case "FOLDER_SELECTED":
        case "BACK":
            var paramsStringValue = paramsStringPattern.replace(/\[.*\]/, "").replace(/\{channelId\}/i, objectParams.channelId).replace(/\{dirId\}/i, objectParams.dirId);
            document.location.href = paramsStringValue;
            break;
        case "FILE_SELECTED":
            var paramsStringValue = paramsStringPattern.replace(/\[|\]/g, "").replace(/\{channelId\}/i, objectParams.channelId).replace(/\{dirId\}/i, objectParams.dirId).replace(/\{fileId\}/i, objectParams.fileId);
            document.location.href = paramsStringValue;
            break;
    }
}
