// =========================================
//   vds関連
// =========================================
var vdsPlayBtn = "../vds/vds_read.gif";       // 読み上げボタンのファイル名
var vdsStopBtn = "../vds/vds_stop.gif";       // 停止ボタンのファイル名
var vdsErrBtn = "../vds/vds_mente.gif";       // 中止ボタンのファイル名
var vdsMenteBtn = "../vds/vds_mente.gif";    // メンテナンス中のファイル名
var vdsLoaderImg = "../vds/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 = '<input class="vdsBTN" type="image" id="' + vdsId + '_stopBtn" ';
      setTag += 'src="' + vdsStopBtn + '" alt="停止" ';
      setTag += 'onClick="vdsStop(\'' + vdsId + '\');"/>';
      setTag += '<input class="vdsBTN" type="image" id="' + vdsId + '_playBtn" ';
      setTag += 'src="' + vdsPlayBtn + '" alt="読み上げ" ';
      setTag += 'onClick="vdsRead(\'' + vdsId + '\');" />';	  
	  
//      setTag = '<input class="vdsBTN" type="image" id="' + vdsId + '_playBtn" ';//読上げ、停止ボタンの位置入れ替えのため
//      setTag += 'src="' + vdsPlayBtn + '" alt="読み上げ" ';
//      setTag += 'onClick="vdsRead(\'' + vdsId + '\');" />';
//      setTag += '<input class="vdsBTN" type="image" id="' + vdsId + '_stopBtn" ';
//      setTag += 'src="' + vdsStopBtn + '" alt="停止" ';
//      setTag += 'onClick="vdsStop(\'' + vdsId + '\');"/>';
      break;
    case 2:
      // 停止ボタンの設置
      setTag = '<input class="vdsBTN" type="image" id="' + vdsId + '_stopBtn" ';
      setTag += 'src="' + vdsStopBtn + '" alt="停止" ';
      setTag += 'onClick="vdsStop(\'' + vdsId + '\');"/>';
      break;
    case 3:
      // flashplayer がないことによるエラー
      setTag = '<input class="vdsBTN" type="image" src="' + vdsErrBtn + '" ';
      setTag += 'alt="中止" onClick="alert(\'お使いのAdobe Flash Playerをバージョンアップしてください。\');" />';
      break;
    default:
      // メンテナンス中の設置
      setTag = '<img class="vdsBTN" 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 == "vdsYoyaku1"){
      //vdsobj.setCache(0);
      txt = "予約の方法。";
      txt += "はじめて当院を受診されるかたに。";
      txt += "予約から受診まで。";
      txt += "1　まず予約専用電話にお掛け下さい。";
      txt += "電話番号　044-511-2112(予約センター直通)。";
      txt += "受付時間。";
      txt += "月曜日から金曜日。";
      txt += "午前8時から午後8時。";
      txt += "土曜日。";
      txt += "午前8時から午後5時。";
      txt += "日曜日。";
      txt += "午前8時30分から午後5時。";
      txt += "祝日。";
      txt += "午前9時から午後5時。";
      txt += "直接ご来院頂いても1階窓口にてご予約はできますが、予約の混雑状況によりご希望に添えないこともございますので、電話での事前のご予約をお勧めいたします。";
      txt += "2　ご希望の診療科・日時をお決め下さい。";
      txt += "ご希望の診療科（担当医師）及び、受診日時をオペレーターとお決め下さい。診療科がお分かりにならない場合は、ご相談下さい。 ";
      txt += "3　お名前・ご住所・生年月日・お電話番号等をお伺いいたします。";
      txt += "受診当日の事務手続きのお時間を少しでも減らすために、電話受付時に「お名前・ご住所・生年月日・お電話番号」等をお伺いいたします。";
      txt += "診察券は受診当日にお渡しいたします。";
      txt += "4　ご用意いただくもの。";
      txt += "保険証（お持ちの方は、公費受給者証）。";
      txt += "他院からの「紹介状」がございましたら、受診時にお持ち下さい。";
      txt += "5　交通案内。";
      txt += "JR東海道線 川崎駅西口から徒歩10分、またはJR南武線 矢向駅から徒歩5分。くわしくは、こちらをご参照下さい。";
      txt += "6　来院。";
      txt += "1階の新患受付にお越し下さい。事務手続きをさせて頂き、診察券をお渡しいたします。その後、各診察階へご案内いたします。 ";
      txt += "予約のキャンセル、変更も上記の電話番号（044-511-2112）にてお受けします。";
    }else if(vdsId == "vdsYoyaku2"){
      //vdsobj.setCache(0);
      txt = "診察券をお持ちのかた。";
      txt += "1　予約専用電話にお掛け下さい。";
      txt += "電話番号　044-511-2112(予約センター直通)。";
      txt += "受付時間。";
      txt += "月曜日から金曜日。";
      txt += "午前8時から午後8時。";
      txt += "土曜日。";
      txt += "午前8時から午後5時。";
      txt += "日曜日。";
      txt += "午前8時30分から午後5時。";
      txt += "祝日。";
      txt += "午前9時から午後5時。";
      txt += "直接ご来院頂いても1階窓口にてご予約はできますが、予約の混雑状況によりご希望に添えないこともございますので、電話での事前のご予約をお勧めいたします。";
      txt += "2　ご希望の診療科・日時をお決め下さい。";
      txt += "ご希望の診療科（担当医師）及び、受診日時をオペレーターとお決め下さい。診療科がお分かりにならない場合は、ご相談下さい。 ";
      txt += "3　診察券の登録番号が必要です。";
      txt += "その際、診察券の登録番号（7ケタの数字）が必要になりますので、あらかじめお手許にご用意下さい。";
      txt += "もし、診察券がない場合は、受診される方の「お名前、生年月日」をお伝え下さい。";
      txt += "4　ご用意いただくもの。";
      txt += "保険証（お持ちの方は、公費受給者証）。";
      txt += "5　来院。";
      txt += "受診日時に、直接、各診察室へお越し下さい。ご不明な点がありましたら、フロア職員へおたずね下さい。";
    }else{
      txt = "";
      ttl = $(vdsId + "_title");
      if(ttl){
        txt = ttl.innerHTML + "。";
      }
      txt += $(vdsId + "_text").innerHTML;
      txt = txt.replace(/&nbsp;/g," ");

	// 日付置換え処理

     txt = txt.replace(/(\d{4})\.0([1-9]+)\.0([1-9]+)/g, "$1年$2月$3日");;
     txt = txt.replace(/(\d{4})\.(\d+)\.0([1-9]+)/g, "$1年$2月$3日");;
     txt = txt.replace(/(\d{4})\.0([1-9]+)\.(\d+)/g, "$1年$2月$3日");;
     txt = txt.replace(/(\d{4})\.(\d+)\.(\d+)/g, "$1年$2月$3日");;
	 
	 txt = txt.replace(/(\d{4})\/0([1-9]+)\/0([1-9]+)/g, "$1年$2月$3日");;
     txt = txt.replace(/(\d{4})\/(\d+)\/0([1-9]+)/g, "$1年$2月$3日");;
     txt = txt.replace(/(\d{4})\/0([1-9]+)\/(\d+)/g, "$1年$2月$3日");;
     txt = txt.replace(/(\d{4})\/(\d+)\/(\d+)/g, "$1年$2月$3日");;
     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(/\(日\)|（日）/g, "(日曜日)");;
	 

	// その他置換え処理
	 txt = txt.replace(/歯肉/g, "しにく");;
    }
    vdsret = vdsobj.setRate(2);  // ちょっと早め
	vdsret = vdsobj.setCast("KeikoJPf"); //音声の種類：ケイコ
    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);  // メンテナンス中
        }
      }
    }
  }
}


