///////////////////////////////////////////////////////////////////////////////
//FlashProxyを使ったJS←→SWFの通信はHTMLをコントローラとする
///////////////////////////////////////////////////////////////////////////////

var uid = new Date().getTime();
var flashProxy = new FlashProxy(uid, root+'static/flash/exam/JavaScriptFlashGateway.swf');
var FlashPlayerClient; //FlashProxyに制御を依頼したオブジェクト


/////////////////////////////////////////////////////////////////////////////
//SWF→JavaScript
/////////////////////////////////////////////////////////////////////////////

//PlayListの音声が終了-----------------------------------------------------
function finishQuestionSound(){
  if( FlashPlayerClient.flashComplete ){
    FlashPlayerClient.flashComplete();
  }
}

//パッセージのSWFが終了----------------------------------------------------
function finishMovie(){
  if( FlashPlayerClient.flashComplete ){
    FlashPlayerClient.flashComplete();
  }
}

/////////////////////////////////////////////////////////////////////////////
//JavaScript→SWF
/////////////////////////////////////////////////////////////////////////////

//VolumeControllerをcreateする----------------------------------------------------
/*
function createVolumeController( client , player_area_id){
  FlashPlayerClient = client;
  playerPath = root+"static/flash/exam/"+"VolumeController.swf";
  var so = new SWFObject(playerPath,"VolumeController" , "133", "35", "8", "#336699");
  so.addParam('wmode', 'transparent');
  //alert("[DEBUG]"+playerPath+" -> "+so.getSWFHTML());
  so.write(player_area_id);
}
*/
//FlvPlayerをcreateする----------------------------------------------------
function createFlvPlayer( client , player_area_id , filename ){
  FlashPlayerClient = client;
  playerPath = root+"static/flash/exam/"+"FlvViewer.swf";
  
  var so = new SWFObject(playerPath,"FlvPlayer" , "400", "400", "8", "#FFFFFF");

  so.addParam('wmode', 'transparent');

  so.addVariable('call_back', 'eval(finishMovie())');
  so.addVariable('flv_fln', root+'static/swf/exam/'+filename);
  so.addVariable('lcId', 'FlvPlayer');
  
  so.addVariable('autoplay',true);

  //ReplayTalkのときは制御可能なゲージバーを表示する
  if( c.notify('isReplay') ){
    so.addVariable('controllable', true);
  }
  
  //alert("[DEBUG]"+playerPath+" -> "+so.getSWFHTML());
  so.write(player_area_id);
}

//スライド無しのFlvPlayerをcreateする----------------------------------------------------
function createNonSlideFlvPlayer( client , player_area_id , filename ){
  FlashPlayerClient = client;
  playerPath = root+"static/flash/exam/"+"FlvViewer_nonslide.swf";
  
  var so = new SWFObject(playerPath,"FlvPlayer" , "230", "25", "8", "#FFFFFF");

  so.addParam('wmode', 'transparent');

  so.addVariable('call_back', 'eval(finishMovie())');
  so.addVariable('flv_fln', root+'static/swf/exam/'+filename);
  so.addVariable('lcId', 'FlvPlayer');

  so.addVariable('autoplay',false);

  //制御可能なゲージバーを表示する
  so.addVariable('controllable', true);
  
  so.write(player_area_id);
}

//MP3Playerをcreateする----------------------------------------------------
function createMP3Player( client , playlist ){
  
  if( !playlist ) {
    alert("createMP3Player DEBUG PLAYLIST")
    var playlist = [
      {
        "name" : "list",
        "value": [
          {
             path:root+"static/mp3/exam/sample.mp3"
          },
          {
             path:root+"static/mp3/exam/sample2.mp3"
          }
        ]
      },
      {
          "name" : "autoplay",
          "value": true
      },
      {
          "name" : "loop",
          "value": ""
      }
    ]
  }

  FlashPlayerClient = client;

  var playerPath = root+"static/flash/exam/MP3Player.swf";
  var so = new SWFObject(playerPath,"MP3Player" , "0", "0", "8", "#336699");

  //so.addParam('wmode', 'transparent');

  //playlist-----------------------
  var temp = encodeURIComponent(JSON.stringify(playlist[0].value)); //playlist[0]はプレイリスト
  so.addVariable(playlist[0].name, temp);

  //autoplay-----------------------
  if(playlist[1]){
    var temp = encodeURIComponent(JSON.stringify(playlist[1].value)); //playlist[1]はautoplayパラメーター
    so.addVariable(playlist[1].name, temp);
  }
  
  //loop-----------------------
  if(playlist[2]){
    var temp = encodeURIComponent(JSON.stringify(playlist[2].value)); //playlist[2]はloopパラメーター
    so.addVariable(playlist[2].name, temp);
  }
  so.addVariable('lcId', 'MP3Player');
  so.write("MP3PlayerArea");
}

//VolumeControllerをcreateする----------------------------------------------------
function createVolumeController( client , swf_area_id ){
  FlashPlayerClient = client;
  volumeControllerPath = root+"static/flash/exam/"+"VolumeController.swf";
  
  var so = new SWFObject(volumeControllerPath,"VolumeController" , "133", "35", "8", "#FFFFFF");

  so.addParam('wmode', 'transparent');
  so.addVariable('lcId', 'volume_controller');
  so.write(swf_area_id);
}





//見直しモードのMP3Player（その１）をcreateする
function createMP3PlayerForReview( client , player_area_id ,playlist ){
  
  if( !playlist ) {
    alert("createMP3Player DEBUG PLAYLIST")
    var playlist = [
      {
        "name" : "list",
        "value": [
          {
             path:root+"static/mp3/exam/sample.mp3"
          },
          {
             path:root+"static/mp3/exam/sample2.mp3"
          }
        ]
      },
      {
          "name" : "autoplay",
          "value": true
      },
      {
          "name" : "loop",
          "value": ""
      }
    ]
  }

  FlashPlayerClient = client;

  var playerPath = root+"static/flash/exam/MP3Player.swf";
  var so = new SWFObject(playerPath,"MP3Player" , "230", "25", "8", "#336699");

  so.addParam('wmode', 'transparent');

  //playlist-----------------------
  var temp = encodeURIComponent(JSON.stringify(playlist[0].value)); //playlist[0]はプレイリスト
  so.addVariable(playlist[0].name, temp);

  //autoplay-----------------------
  if(playlist[1]){
    var temp = encodeURIComponent(JSON.stringify(playlist[1].value)); //playlist[1]はautoplayパラメーター
    so.addVariable(playlist[1].name, temp);
  }
  
  //loop-----------------------
  if(playlist[2]){
    var temp = encodeURIComponent(JSON.stringify(playlist[2].value)); //playlist[2]はloopパラメーター
    so.addVariable(playlist[2].name, temp);
  }
  so.addVariable('lcId', 'MP3Player');
  so.write(player_area_id);
}

//見直しモードのMP3Player（その２）をcreateする
//    ※その１と違うのは　so.addVariable('lcId', 'MP3Player2');　の部分だけ
function createMP3PlayerForReview2( client , player_area_id ,playlist ){
  
  if( !playlist ) {
    alert("createMP3Player DEBUG PLAYLIST")
    var playlist = [
      {
        "name" : "list",
        "value": [
          {
             path:root+"static/mp3/exam/sample.mp3"
          },
          {
             path:root+"static/mp3/exam/sample2.mp3"
          }
        ]
      },
      {
          "name" : "autoplay",
          "value": true
      },
      {
          "name" : "loop",
          "value": ""
      }
    ]
  }

  FlashPlayerClient = client;

  var playerPath = root+"static/flash/exam/MP3Player.swf";
  var so = new SWFObject(playerPath,"MP3Player" , "230", "25", "8", "#336699");

  so.addParam('wmode', 'transparent');

  //playlist-----------------------
  var temp = encodeURIComponent(JSON.stringify(playlist[0].value)); //playlist[0]はプレイリスト
  so.addVariable(playlist[0].name, temp);

  //autoplay-----------------------
  if(playlist[1]){
    var temp = encodeURIComponent(JSON.stringify(playlist[1].value)); //playlist[1]はautoplayパラメーター
    so.addVariable(playlist[1].name, temp);
  }
  
  //loop-----------------------
  if(playlist[2]){
    var temp = encodeURIComponent(JSON.stringify(playlist[2].value)); //playlist[2]はloopパラメーター
    so.addVariable(playlist[2].name, temp);
  }
  so.addVariable('lcId', 'MP3Player2');
  so.write(player_area_id);
}



//再生開始-----------------------------------------------------------------
function playSound(){
  flashProxy.call('playSound');
}

//再生一時停止-------------------------------------------------------------
function pauseSound(){
  flashProxy.call('pauseSound');
}


