// =========================================
//   vds関連
// =========================================
var vdsPlayBtn = "/image/vds_read.gif";       // 読み上げボタンのファイル名
var vdsStopBtn = "/image/vds_stop.gif";       // 停止ボタンのファイル名
var vdsErrBtn = "/image/vds_mente.gif";       // 中止ボタンのファイル名
var vdsMenteBtn = "/image/vds_mente.gif";    // メンテナンス中のファイル名
var vdsLoaderImg = "/image/vds_loading.gif";  // 作成中のファイル名
var vdsplay;  // vds Playerオブジェクト
var vdsobj;   // vds オブジェクト
var vdsNowReadID = "";    // 現在、読み上げ中のID

function $(id) {
  return document.getElementById(id);
}

// 読み上げボタンの設置
function vdsSetButton(vdsId,flg){
  var setTag = "";
  var vdsArea = $(vdsId);
  if(vdsArea == null){
    return false;
  }
  switch (flg){
    case 1:
      // 再生可能なボタンの設置
      setTag = '<table><tr><td>';
      setTag += '<input type="image" id="' + vdsId + '_playBtn" ';
      setTag += 'src="' + vdsPlayBtn + '" alt="読み上げ" ';
      setTag += 'onClick="vdsRead(\'' + vdsId + '\');" /></td>';
      setTag += '<td><input type="image" id="' + vdsId + '_stopBtn" ';
      setTag += 'src="' + vdsStopBtn + '" alt="停止" ';
      setTag += 'onClick="vdsStop(\'' + vdsId + '\');"/></td></tr></table>';
      break;
    case 2:
      // 停止ボタンの設置
      setTag = '<input type="image" id="' + vdsId + '_stopBtn" ';
      setTag += 'src="' + vdsStopBtn + '" alt="停止" ';
      setTag += 'onClick="vdsStop(\'' + vdsId + '\');"/>';
      break;
    case 3:
      // flashplayer がないことによるエラー
      setTag = '<input type="image" src="' + vdsErrBtn + '" ';
      setTag += 'alt="中止" onClick="alert(\'お使いのAdobe Flash Playerをバージョンアップしてください。\');" />';
      break;
    default:
      // メンテナンス中の設置
      setTag = '<img src="' + vdsMenteBtn + '" alt="メンテナンス中" />';
      break;
  }
  vdsArea.innerHTML = setTag;
  return true;
}

/*
   読み上げ処理
       読み上げ中の文章があれば停止する。
       読み上げボタンを「作成中」に変更し、音声合成を行う。
*/
function vdsRead(vdsId){
  var ttlbtn,txt,vdsret;
  if(typeof(vdsplay) != "undefined"){
    vdsStop(vdsNowReadID);  // 音声作成または再生中の場合のための停止処理
    if(vdsId == vdsNowReadID){
      return;  // 同じ音声を作成中のときには無視する
    }
    if(vdsId == "vdsRyakureki"){
      //vdsobj.setCache(0);
      txt = "衆議院議員。田中かずのり。自由民主党。神奈川第１０選挙区（川崎市川崎区・幸区・中原区）支部長。";
      txt += "略歴。";
      txt += "衆議院財務金融委員長。";
      txt += "財務副大臣。";
      txt += "外務大臣政務官。財務大臣政務官。国土交通大臣政務官。";
      txt += "衆議院予算委員会理事。衆議院テロ・イラク特別委員会理事。";
      txt += "衆議院教育基本法に関する特別委員会理事。";
      txt += "党副幹事長。党国会対策副委員長（現・再任）。党財務金融部会長。自由民主党川崎市支部連合会会長。";
      txt += "公共物境界確定推進議員連盟会長（現）。";
      txt += "更生保護を考える議員の会会長（現）。";
      txt += "街の酒屋さんを守る国会議員の会会長（現）。";
      txt += "日本アフリカ連合友好(AU)議員連盟副会長（現）。";
      txt += "神奈川県日華親善協会会長（現）";
      txt += "川崎市日華親善協会会長（現）";
      txt += "川崎市サッカー協会会長（現）";
      txt += "川崎市ボウリング協会会長（現）";
      txt += "川崎市陸上競技協会会長（現）";
      txt += "川崎市釣連合会会長（現）";
      txt += "川崎ドッヂボール連盟会長（現）";
      txt += "日本マーシャル諸島共和国協会名誉会長（現）";
      txt += "神奈川県議会議員。川崎市議会議員。";
      txt += "昭和24年1月21日、山口県下関市出身。";
      txt += "法政大学法学部卒業。";
      txt += "近未来政治研究会（山崎派）所属。";
      txt += "衆議院議員５期連続当選。";
    }else{
      txt = "";
      ttl = $(vdsId + "_title");
      if(ttl){
        txt = ttl.innerHTML + "。";
      }
      txt += $(vdsId + "_text").innerHTML;
      txt = txt.replace(/&nbsp;/g," ");
	 

	// その他置換え処理
     txt = txt.replace(/甘利明/g, "あまりあきら");;
     txt = txt.replace(/理森/g, "ただもり");;
     txt = txt.replace(/義家弘介/g, "よしいえひろゆき");;
     txt = txt.replace(/世耕弘成/g, "せこうひろしげ");;
     txt = txt.replace(/僅かな/g, "わずかな");;
     txt = txt.replace(/ＰＬＵＭ/g, "プラム");;
     txt = txt.replace(/２トップ/g, "ツートップ");;
     txt = txt.replace(/k-tanaka/g, "ケーハイフンティーエーエヌエーケーエー");;
     txt = txt.replace(/\.or\.jp/g, "ドットオーアールドットジェイピー");;
     txt = txt.replace(/２−２−１/g, "２の２の１");;
     txt = txt.replace(/５０４号室/g, "５ゼロ４号室");;
     txt = txt.replace(/芹洋子/g, "せりようこ");;
     txt = txt.replace(/〜/g, "から");;
     txt = txt.replace(/(\d+)\:(\d+)/g, "$1時$2分");;
     txt = txt.replace(/滋（しげる）/g, "しげる");;
     txt = txt.replace(/早紀江（さきえ）様/g, "さきえさま");;
     txt = txt.replace(/家族会前代表/g, "家族会ぜん代表");;
     txt = txt.replace(/麻布支部/g, "あざぶ支部");;
     txt = txt.replace(/菅副総理/g, "かん副総理");;
     txt = txt.replace(/梅雨/g, "つゆ");;
     txt = txt.replace(/COP１０/g, "コップテン");;
     txt = txt.replace(/幸文化センター/g, "サイワイブンカセンター");;
     txt = txt.replace(/直一/g, "ナオカズ");;
     txt = txt.replace(/創エネ/g, "ソウエネ");;
     txt = txt.replace(/未曾有/g, "みぞう");; 
     txt = txt.replace(/紅葉の時期/g, "こうようの時期");; 
     txt = txt.replace(/大迫力/g, "だい迫力");; 
     txt = txt.replace(/最小催行人数/g, "さいしょうさいこうにんずう");;
     txt = txt.replace(/古市場/g, "ふるいちば");;
     txt = txt.replace(/◆/g, "");; }
    vdsret = vdsobj.setRate(2);  // ちょっと早め
    if(vdsret == 0){
      vdsret = vdsobj.setString(txt);
    }
    if(vdsret == 0){
      $(vdsId + "_playBtn").src = vdsLoaderImg;
      $(vdsId + "_playBtn").alt = "作成中";
      vdsNowReadID = vdsId;
      vdsobj.setFinishCallback("vdsServerCallbak(\"" + vdsId + "\")");
      vdsobj.speak();
    }else{
      vdsSetButton(vdsId,0);
    }
  }
}

/*
   音声合成作成後の処理
       正常終了：読み上げボタンが「作成中」のときには「停止」に変更
       エラー  ：読み上げボタンを「中止」に変更
*/
function vdsServerCallbak(vdsId){
  var ret = vdsobj.getServerError();
  var vdsBtn = $(vdsId + "_playBtn");
  if(ret == 0){
    vdsBtn.src = vdsPlayBtn;
    vdsBtn.alt = "読み上げ";
  }else{
    vdsSetButton(vdsId,0);    // 音声作成エラー
  }
  vdsNowReadID = "";
}

/*
   読み上げ停止処理
*/
function vdsStop(vdsId){
  if(typeof(vdsplay) == "undefined" ){ return;}
  vdsplay.speakStop();
  if(vdsNowReadID != ""){
    var vdsBtn = $(vdsId + "_playBtn");
    vdsBtn.src = vdsPlayBtn;
    vdsBtn.alt = "読み上げ";
  }
  vdsNowReadID = "";
}


/*
   vdsの準備処理(onloadイベントで行う）
       vdsの準備処理を行い、読み上げボタンを設置する
*/
function vdsSetup(){
  var flg = 0;
  var errcd;
  try{
    flg = 1;
    vdsplay = new VoiceDeliveryPlayer("vdsSetFlash");
    flg = 2;
    vdsobj = new VoiceDelivery(vdsplay,"vdsobj");
    flg = 3;
//    vdsobj.setCache(0);   // テスト用に常に音声合成
  }catch (errcd) {
    // エラー処理があれば入れる
    //alert("vdsObjectError=" + errcd);
  }
  if(navigator.appName == "Microsoft Internet Explorer"){
    initBtn4IE(flg,errcd);
  }else{
    initBtn4FF(flg,errcd);
  }
}

// ＩＥ用読み上げボタンの初期セット処理
//   各読み上げボタンのセットとハイライトのための読み上げ文章の分割処理
function initBtn4IE(setFlg,err){
  var ret;
  var ii;
  var vdsBtnList = document.getElementsByTagName("div");
  cnt = vdsBtnList.length - 1;
  // ボタンの設置とvdsobjの生成
  for(ii=0;ii<=cnt;ii++){
    ret = false;
    if(vdsBtnList[ii].name == "vdsReadBtn"){
      vdsID = vdsBtnList[ii].id;
      if(vdsID != ""){
        if(err == "-701"){
          ret = vdsSetButton(vdsID,3);    // メンテナンス中（Flash対応）
        }else{
          if(setFlg == 3){
            ret = vdsSetButton(vdsID,1);  // 読み上げボタン
          }else{
            ret = vdsSetButton(vdsID,0);  // メンテナンス中
          }
        }
      }
    }
  }
}


// ＦＦなど（ＩＥ以外）用読み上げボタンの初期セット処理
//   各読み上げボタンのセット処理
function initBtn4FF(setFlg,err){
  var ret;
  var ii;
  var vdsBtnList = document.getElementsByName("vdsReadBtn");
  cnt = vdsBtnList.length - 1;
  // ボタンの設置とvdsobjの生成
  for(ii=0;ii<=cnt;ii++){
    ret = false;
    vdsID = vdsBtnList[ii].id;
    if(vdsID != ""){
      if(err == "-701"){
        ret = vdsSetButton(vdsID,3);    // メンテナンス中（Flash対応）
      }else{
        if(setFlg == 3){
          ret = vdsSetButton(vdsID,1);  // 読み上げボタン
        }else{
          ret = vdsSetButton(vdsID,0);  // メンテナンス中
        }
      }
    }
  }
}


