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

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

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

      var date = new Date();

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

      // UI Flash を表示する
      div.append('<div id="tank' + contentsIndex + '"></div>');
      showContentsFlash(contentsIndex, '/tank/TankScreen.swf', 'tank' + contentsIndex , 'UI', '600', '400', namespace, 'tank');
    }

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

    // controller -> screen

    //
    function addTank(id, side, x, y, rotation) {
      namespace.tank.addTank(id, side, x, y, rotation);
    }

    //
    function moveTank(id, x, y, rotation) {
      namespace.tank.moveTank(id, x, y, rotation);
    }

    //
    function attackTank(id, x, y) {
      namespace.tank.attackTank(id, x, y);
    }

    // screen -> controller

    //
    function sendMoveTank(id, x, y, rotation) {
      namespace.dispatcher.sendMoveTank(id, x, y, rotation);
    }

    //
    function sendAttackTank(id, x, y) {
      namespace.dispatcher.sendAttackTank(id, x, y);
    }

    //
    namespace.makeHtml = makeHtml;
    namespace.loaded   = loaded;

    //
    namespace.addTank = addTank;
    namespace.moveTank = moveTank;
    namespace.attackTank = attackTank;
    namespace.sendMoveTank = sendMoveTank;
    namespace.sendAttackTank = sendAttackTank;
  }) (namespace);
}
