﻿// The multichannel.swf requires a global initialization method.
function initMultichannel(objectID) {

    var initObjectFlash = function() {
        // Find the MultiChannelMediaPlayer control with the specified ID and initialize it.
        var mcmp = $find(objectID);

        if (mcmp != undefined) {
            mcmp.initializeFlash(objectID);
        }
        else {
            alert(objectID + ' could not be found');
        }
    };

    if ($find(objectID) == undefined)
        // Defer flash initialization until the application is loaded.
        Sys.Application.add_load(initObjectFlash);
    else
        // Initialize flash now.
        initObjectFlash( );
}

Type.registerNamespace('PComCs.MediaGalleries.Controls');

PComCs.MediaGalleries.Controls.MultiChannelMediaPlayer = function(element) {
    PComCs.MediaGalleries.Controls.MultiChannelMediaPlayer.initializeBase(this, [element]);

    this._playlists = null;

    this._getFlashMovie = function(movieName) {
        var verifyMovie = function(element) {
            if (element == undefined)
                return false;
            else if (element.registerPlaylist)
                return true;
            else
                return false;
        };

        var movie;

        if (document.getElementById) {
            movie = document.getElementById(movieName);
            if (verifyMovie(movie))
                return movie;
        }

        movie = document[movieName];
        if (verifyMovie(movie))
            return movie;

        // TODO: Before this last resort, try other methods of retrieving the movie name.
        return window[movieName];
    };
}

PComCs.MediaGalleries.Controls.MultiChannelMediaPlayer.prototype =
{
    get_playlists: function()
    {
        return this._playlists;
    },
    set_playlists: function(value)
    {
        this._playlists = value;
    },

    initializeFlash: function(objectID)
    {
        if (this._playlists)
        {
            // Find the flash movie player.
            var flashMovie = this._getFlashMovie(objectID);

            if (flashMovie)
            {
                // Set object properties.
                flashMovie.setProperty('myPlaylist', 'rowHeight', 63);

                // Set playlists.
                for (var i = 0; i < this._playlists.length; i++)
                {
                    var playlist = this._playlists[i];
                    flashMovie.registerPlaylist(i + 1, playlist.Name, playlist.Xml);
                }

                if (this._playlists.length > 0)
                    flashMovie.setChannel(1);
            }
        }
    }
}

PComCs.MediaGalleries.Controls.MultiChannelMediaPlayer.registerClass('PComCs.MediaGalleries.Controls.MultiChannelMediaPlayer', Sys.UI.Control);
if(typeof(Sys)!=='undefined')Sys.Application.notifyScriptLoaded();