//
//
//
function loadUstreamFunctions(namespace, ci) {
  (function() {
    var contentsIndex = ci;
    var baseDiv;

    // div 要素
    var dispatcher; // ディスパッチャー (swf)
    var ustream;    // プレイヤー (swf)

    //
    //
    //
    function makeHtml(aBaseDiv) {
      //
      baseDiv = aBaseDiv;
      var div = baseDiv;

      var date = new Date();

      // Dispatcher Flash を表示する
      div.append('<div id="dispatcher' + contentsIndex + '"></div>');
      showDispatcherFlash(contentsIndex, '/ustream/UstreamSub.swf', "dispatcher" + contentsIndex, namespace);

      // UI( Flash を表示する
      div.append('<div id="ustream' + contentsIndex + '"></div>');
      ustream = div.find('#ustream' + contentsIndex);
      ustream.html('<table width="600" height="480"><tr><td align="center">USTREAM</td></tr></table>');

      //
      setTimeout(
        function() {
          loaded();
        },
        1000
      );
    }

    //
    var loadCount = 0;
    function loaded(t) {
      loadCount++;
      if (loadCount >= 1) {
        namespace.dispatcher.sendLoaded();
      }
    }

    //
    function showUstreamPlayer(cid) {
      // いったん削除
//    ustream.html('');

      //
      var extname = "External" + contentsIndex + 'UI';
      var date = new Date();

      var attributes = {
        id   : extname,
        name : extname
      };

      var params = {
        allowScriptAccess : 'sameDomain',
        allowfullscreen   : 'true',
        allowscriptaccess : 'always',
        quality           : 'high'
      };

      var flashvars = {
        autoplay       : 'true',
        cid            : cid,
        contents_index  : contentsIndex
      };

      swfobject.embedSWF('http://www.ustream.tv/flash/viewer.swf', 'ustream' + contentsIndex,
        '600', '480', "8", false, flashvars, params, attributes);

      //
      ustream = swfobject.getObjectById(extname);
    }

    // controller -> screen

    //
    function cid(channelid) {
      showUstreamPlayer(channelid);
    }

    // screen -> controller

    // 公開する関数
    namespace.makeHtml = makeHtml;
    namespace.cid      = cid;
  }) (namespace);
}
