﻿
window.EmbeddedPlayer = {};

var _playerCanvas;

var _playerXaml;

var _playerWidth = 640;

var _playerHeight = 480;

var _playList = [{ mediaUrl: "", placeholderImage: "", chapters: [] }];

function buildPlayListFromUrlString(urls)
{
    var media = urls.split(",");

    for (var x = 0; x < media.length; x++)
    {
        _playList[x] = { mediaUrl: media[x], placeholderImage: "", chapters: [] };
    }
}

function get_mediainfo(mediainfoIndex)
{
    return _playList[mediainfoIndex];
}

EmbeddedPlayer = function(plugIn, parent, mediaIndex, width, height, hostname)
{
    this._hostname = hostname;
    this.plugIn = plugIn;
    var item = plugIn.content.findName("Player");
    this.instance = item;
    this._currentMediainfo = 0;
    _playerHeight = height;
    _playerWidth = width;

    //parent.children.add(this.instance);

    // store away player root canvas
    _playerCanvas = this.instance;

    this._handleLoad(plugIn, null, null, mediaIndex);

    return this;
}

EmbeddedPlayer.prototype= {
    _handleLoad: function(plugIn, userContext, rootElement, mediaIndex) {
        //var host = rootElement.getHost();
        this._player = $create(   ExtendedPlayer.Player,
                                  { // properties
                                    autoPlay    : false,
                                    volume      : 0.5,
                                    muted       : false
                                  },
                                  { // event handlers
                                    mediaEnded: Function.createDelegate(this, this._onMediaEnded),
                                    mediaFailed: Function.createDelegate(this, this._onMediaFailed),
                                    mediaOpened: Function.createDelegate(this, this._onMediaOpened)
                                  },
                                  null,  $get(this._hostname) );

        //this._player.set_mediainfo(_playList[mediaIndex]);
    },

    ChangeVideo: function(videoPath)
    {
      this._player.set_mediaUrl(videoPath);
      //this._player.set_mediainfo(_playList[mediaIndex]);
    },

    Play: function()
    {
      this._player.play();
    },

    Stop: function()
    {
      this._player.stop();
    },

    _onMediaEnded: function(sender, eventArgs)
    {
      this.onMediaEnded(sender, eventArgs);
    },

    onMediaEnded: function()
    {

    },

    _onMediaFailed: function(sender, eventArgs) {
        alert(String.format( Ee.UI.Xaml.Media.Res.mediaFailed, this._player.get_mediaUrl() ) );
    },

    _onMediaOpened: function()
    {
      this._player.play();
    },

    _playNextVideo: function()
    {
      var cVideos = 1;
      if (this._currentMediainfo<cVideos)
        this._player.set_mediainfo( get_mediainfo( this._currentMediainfo++ ) );
    }
}
