﻿//***********************************************************
//*** BGM Player Version 2.00
//***  Copyright by ☆Tomoaki Ueda☆ (2010)
//***  Powered by Web Agent Miku with Hologram Memory at Neo-Tech-Lab.co.uk
//***  ■Web Sensor Probe技術 ■Hologram Memory ■(Web MikuLoid実験開始2011/12/07予定)
//***　このコードは殆どWeb Toolの実験を行う為のダミーです。
//***********************************************************

   //*****************************************************
   //【動画フレーム関連の変数】
   //*****************************************************
   var NTL_Path = "../"; //【相対パス】
   var NTL_PageMessage = "tl=jp&このページには、まだメッセージが与えられていません。";
   var NTL_MMDAds      = "MikuMikuDance/Article.files/"; //【MikuMikuDance宣伝へのパス】
   var NTL_WallPaperBG = "b/Wallpaper1.jpg"; //【概ね横585px縦278pxの壁紙】
   var NTL_ThumbnailBG = "b/Wallpaper2.png"; //【概ね横585px縦70pxのThumbnail Bar】
   var NTL_StopButton  = "b/Shield.png";     //【『停止ボタン』用の透明な画像】伸縮するので画素数は適当で良い
   var NTL_CryingMiku  = "b/CryingMiku.png"; //【動画を停止されて泣くミク】
   var NTL_StopComment = "【YouTube動画を停止します】";
   var NTL_fmtRemarks  = "<font size='1'><a title='埋め込みBGM一覧' href='" + NTL_Path + "NTL_BGMList.htm' target='_blank'  onClick='showPopup(this.href);return(false);'>埋め込みBGM一覧</a>　■ランダム再生　●リロードまたはサムネールのクリックで曲が変わります。　■各YouTube動画の著作権はアップロード者に帰属します。実写動画は<b><a title='YouTube 徳間ジャパン・コミュニケーションズさんのチャンネルへ' href='http://www.youtube.com/user/TOKUMAJAPAN'>『徳間ジャパン』さんのチャンネル</a></b>の動画を埋込み利用しています。"
             + "●<a title='ドラム少女 川口千里ちゃん(14)のチャンネルへ 祝復活 １年前と比べてめちゃくちゃうまくなった。凄～い！　実は私は高校時代は軽音部。それもパートはドラムだったのでこの動画に感動しました。' href='http://www.youtube.com/user/tkmdr'>ドラム少女 川口千里ちゃん(14)</a>も追加　●右側に20秒間表示されるCG画像は<a title='樋口優氏のVPVP(MikuMikuDanceダウンロードサイト)へ' href='http://www.geocities.jp/higuchuu4/index.htm' target='_blank'>樋口優氏製作のフリーウェアMikuMikuDance ver.7.04</a>で作製しました。【Chrome推奨】</font>";
   var NTL_fmtRemarks_en  = "<font size='1'><a title='Play List' href='" + NTL_Path + "NTL_BGMList.htm' target='_blank'  onClick='showPopup(this.href);return(false);'>BGM Play List</a>　■Random Play　●You can change music by reloading or clicking a thumbnail.　■Owner has the copyright of the uploaded movie on YouTube. I am using the embeded real movies of <b><a title='Jump to Tokuma Japan Channel on YouTube' href='http://www.youtube.com/user/TOKUMAJAPAN'>『Tokuma Japan』 Channel</a></b>."
             + "●The girl on the Drum Movies is <a title='Jump to Drum girl, Senri Kawaguchi (14) Channel on YouTube.' href='http://www.youtube.com/user/tkmdr'>Senri Kawaguchi (14)</a>.　●CG images are created by <a title='Jump to VPVP of Mr. Yu Higuchi for downloading MikuMikuDance' href='http://www.geocities.jp/higuchuu4/index.htm' target='_blank'>MikuMikuDance ver.7.04</a> which Mr. Yu Higuchi has developed. 【I recommend Google Chrome.】</font>";

   var NTL_DeveloperKey = 'AI39si5VJgipMTHsm7_tR4eEbioJpCKUS5ApbRfZoS17VE7WrpFN-f8y5Zd-uS6Aa0PNxFrk623g9Lv3zwMnsb0Tr2VfowZDpw'; //【ディベロッパーキー】
   var NTL_MovieList;  //【外部プレイリストから読み込む】
   var NTL_HighPriority = [ //【優先再生曲リスト】
         "MDkf-9lNawo", //②【第6回MMD杯本選】 LIFE 【MMD-PV】[HD1080p]
         "sHkuK9hpdJQ", //③【MMD】Melody Line MMDPV
         "X_Gz1ElFuHU", //[MMD CUP 7] 'Bad Apple!!' english &amp; romaji subbed [Miku Teto]
         "F2n1zJXG8GU", //⑨【初音ミクAppend DARK】Lost Memories【MMD-PV HD】 RE-UPLOADED
         "0WfVWB5rr3I", //MMD MIKI MIKI DANCE
         "1ZR0juN7NK4", //⑩【MMD-DMC2】YOUTHFUL DAYS' GRAFFITI【MME】
         "hh0HQvat6Y4", //④【MMD】時報ちゃん Project Dance Ver. [HD1080p](日本語歌詞付)
         "PNFzPBpL46o", //⑫【MMD】ミクで「トリノコシティ」
         "hAkQ1zZJI1c", //⑧【MMD】Lat式ミク(v2.2)で「教えて!!魔法のLyric」(HD)
         "MO-7YxoE-pc", //[ミクの日感謝祭 39's Giving Day] 裏表ラバーズ (feat. 初音ミク) / wowaka
         "mlo4GN7lffg", //【X-mas】⑳【初音ミク】「金の聖夜霜雪に朽ちて」PV ディレクターズカット版
         "gucD0aURXv0", //[ミクの日感謝祭 39's Giving Day] 愛言葉 (feat. 初音ミク) / DECO*27
         "y2oTcAtAsNc"  //[ミクの日感謝祭 39's Giving Day] 恋スルVOC@LOID (feat. 初音ミク) / OSTER Project
    //     "lOY4CB0_AOI", //⑮【MMD】Gravity=Reality (REUPLOAD)
    //     "3ZaQx7S0nrU", //⑯【MMD】Mikuが炉心でZIGG-ZAGG 初音ミク
    //     "MfnFKZ5nBQU", //⑰【MMD】Packaged Lat Model Miku
    //     "g0GqIE5Lvno", //【初音ミク】「ヤリたいの。」【オリジナルPV】 [HD1080p]
    //     "ndSrA9Fi4Lw", //【MMD】Pironモデル ミク・メイコ・ルカで「BREEZE」
    //     "lOY4CB0_AOI", //⑮【MMD】Gravity=Reality (REUPLOAD)
    //     "7jje5-3tE-U", //【Hatsune Miku】 What's up? -どういうことなの！？-
     //    "8MaCsyE1gqg", //【初音ミク】ラストエフェクト【オリジナル】
     //    "30HYkpcosw8", //【けいおん！】K-ON!! ED NO, Thank You! drum cover 叩いてみた
     //    "82s49jskATU", //【けいおん！】けいおん！K-ON! 田井中律 Girly Storm 疾走 Stick 叩いてみた
     //    "EIKc4MedKnY", //田村ゆかり 'この指とまれ' 叩いてみた Yukari Tamura 'Kono-yubi Tomare' (cover)
     //     "mlo4GN7lffg"  //【X-mas】⑳【初音ミク】「金の聖夜霜雪に朽ちて」PV ディレクターズカット版
     //    "1R-fu2jHvrw", //①【Perfume】スパイス
     //    "8fHLMLwZQno", //⑤【MMD】ゴスロリン★炉心リンでマトリョシカ【HD】
     //    "Cw_2_xmfKNA", //⑥【MMD】Sweet Devil [HD1080p]
     //    "CUrNY2wseRo", //⑦【MMD】可能世界のロンド【3DPV】
     //    "SsqxLzuB-aQ", //⑪【第7回MMD杯本選】裏表ラバーズ ダンスPV風
     //    "3ZaQx7S0nrU", //⑬【MMD】Mikuが炉心でZIGG-ZAGG 初音ミク
     //    "I4rMrUzK9lk", //⑭【MMD】裏表ラバーズ【 初音ミク】
     //    "oK41ga5_qXw", //⑱【MMD】SWEETDEVIL
     //    "jXC7HLM-18E", //⑲【MMD】「バイビーベイビーサヨウナラ」【Jihou-chan+N】
     //    "oK41ga5_qXw"  //⑱【MMD】SWEETDEVIL
        ];

   var NTL_MovieCntTimer; //【再生時間管理タイマー】
   var NTL_MovieTime;    //【再生時間】配列
   var NTL_MovieAds;     //【広告付きか】'A'なら最下行に広告表示有
   var NTL_MovieInfo;    //【テロップの色】
   var NTL_MovieTitle;   //【動画題名】デフォルト情報
   var NTL_MovieOption;  //【Web Agent選択情報】
   var NTL_MovieIcon;    //【動画情報欄に表示するIcon】
   var NTL_Language = "ja"; //【動画情報欄の表示言語選択オプション】'ja': 日本語 'en': 英語
   var NTL_Movie = 0;    //【動画番号】上記動画ID配列(NTL_MovieList)の要素番号
   var NTL_MovieID;      //【動画ID】  YouTubeの動画ID
   var NTL_MovieCount=0; //【視聴した動画の数】
   var NTL_PlayerObj;        //【Player APIによる操作を行う為のオブジェクト】
   var NTL_Tour = 19;    //【PlayListのdefaultツアー番号】【第19番目の動画ツアーを選択】

   //【YouTube動画に稀に発生する現象に対する対策】動画が記録時間の一歩手前で再生終了するため次の動画に進めないバグに対応 2011/05/22
   var NTL_PastMovieTime; //【前回検出された再生時刻】
   var NTL_DetectedCount; //【同じ時刻が再生された回数】

   var YT_AuthorName;    // = Feed.feed.entry[0].author[0].name.$t;
   var YT_Published;     // = Feed.feed.entry[0].updated.$t;
   var YT_Title;         // = Feed.feed.entry[0].title.$t;
   var YT_ViewCount;     // = Feed.feed.entry[0].yt$statistics.viewCount;
   var YT_FavoriteCount; // = Feed.feed.entry[0].yt$statistics.favoriteCount;

   var NeoTechLab = "<font face=\"Times New Roman\"><b><i><font color=\"yellow\" size=\"5\"><a title=\"私設研究所Neo-Tech-Lab\" href=\"http://www.neo-tech-lab.co.uk/\"><font color=\"red\">Neo</font>-<font color=\"lime\">Tech</font>-<font color=\"deepskyblue\">Lab</font>.<font color=\"magenta\">com</font></a></font>　<font size=\"4\" color=\"white\">BGM playerⅡ</font></i></b></font>";

   var NTL_Time; //【日付・時計表示の管理タイマー】

   var NTL_MikuRTimer;  //【YouTube巡回結果の報告】
   var NTL_MikuRFlag = true; //【メッセージ表示先】true:ON_Screen  false:UserInfo
   var NTL_AgentTimer1; //【Agent表示の管理タイマー】まばたき間隔の管理
   var NTL_AgentTimer2; //【Agent表示の管理タイマー】消えるタイミング
   var NTL_AgentTimer3; //【Agent表示の管理タイマー】泣いているミクの消えるタイミング
   var NTL_AgentNumber; //【選択中のAgent番号】
   var NTL_AgentURL = "http://phosmega.net/Agent/"; // "http://www.geocities.jp/phosmega/Agent/"; //【AgentのダウンロードURL】
   var NTL_AgentImg;                                //【AgentのImageオブジェクト配列】
   var NTL_Agent = [ "Haku1.png", "Haku2.png", "ChibiMiku1.png", "ChibiMiku2.png", "Meiko1.png", "Meiko2.png",        "Nel1.png",        "Nel2.png",
                     "Luka1.png", "Luka2.png",      "Miku1.png",      "Miku2.png",  "Luka3.png",  "Luka4.png", "ChibiMiku13.png", "ChibiMiku14.png",
                     "ChibiMiku9.png", "ChibiMiku10.png", "Luka5.png", "Luka6.png", "ChibiMiku11.png", "ChibiMiku12.png", "Rhea1.png", "Rhea2.png",
                     "Mariel1.png", "Mariel2.png", "UsaUsa1.png", "UsaUsa2.png", "Sakine01.png", "Sakine02.png", "pironMiku01.png", "pironMiku02.png",
                     "Miki01.png", "Miki02.png"     ];

   //*******************************************************
   //【Web Sensor Probe関連変数】
   //*******************************************************
   var NTL_Domain ="www.neo-tech-lab.co.uk"; //【Neo－Tech-Lab.comのサーバー】
   var NTL_IPService = "info"; //【IPアドレス取得時のパス】 ファイル名称は'IP**************.js'となる。    
   var NTL_ProbeURL = "b/p.gif";   //【Web Sensor ProbeのURL】例: 'b/p.gif' or 'http://www.neo-tech-lab.co.uk/b/p.gif'
   var NTL_WebSensor;        //【Web Sensor Probe格納バッファ】Image()オブジェクト
   var NTL_KeyCord = 'none'; //【Web Sensor Probeによる２回目以降の送信に用いるKeyCord】
   var NTL_Content = 'normal'; //【通知するコンテンツ名】
   var NTL_IPTimer;          //【IP Address取得に用いるタイマー】
   var NTL_WSTimer;          //【Web Sensor Probeのインターバルタイマー】
   var NTL_YourIPAddress;    //【IP Address : 企業の場合同一IPアドレス下に複数ユーザーがいるのでKeyCordで判断する】
   var NTL_YourDomainName;   //【Domain Name】
   var NTL_TimeCount=0;      //【経過時間】単位：分

   //*******************************************************
   //【Google Text-To-Speech関連変数】
   //*******************************************************
   var NTL_VoiceTimer; //【音声合成オブジェクト】
   var NTL_VoiceURL = "http://translate.google.com/translate_tts";

   //**********************************************************
   //【ポップアップメニュー関連変数】
   //**********************************************************
   var YouTubeWindow; //【YouTubeはiframeではJavaScriptで開くことができないので、Windowsで開く】
   var website = {
   Remark: "<span style='background-color: #FFFF00'><font face='ＭＳ Ｐゴシック' size='2'> ←ﾁｪｯｸで表示</font></span>",
   Copyright: "<font size='1' face='Times New Roman'><i>powered by</i>&nbsp;&nbsp;<a title='私設研究所Neo-Tech-Lab.com' href='http://www.neo-tech-lab.co.uk'><font size='3'><i><b><font color='#FF0000'>Neo</font></b></i>-<i><b><font color='#00FF00'>Tech</font></b></i>-<i><b><font color='#0000FF'>Lab</font></b></i>.<i><b>com</b></i></font></font><a>",
   database: [
   { window_id: "popup0", width: "1020px", height: "550px", url: "http://www.google.co.jp",                       title: "<font color='white'>Google検索</font>"},
   { window_id: "popup1", width: "1020px", height: "550px", url: "http://search.yahoo.co.jp/",                    title: "<font color='white'>Yahoo検索</font>"},
   { window_id: "popup2", width: "1020px", height: "850px", url: "http://www.youtube.com",                        title: "<a href='http://www.google.co.jp/#hl=ja&xhr=t&q=Youtube'><font color='white'>YouTube</font></a>"},
   { window_id: "popup3", width: "1020px", height: "650px", url: "http://www.google.com/language_tools?hl=ja",    title: "<a href='http://www.google.com/language_tools?hl=ja'><font color='white'>Google翻訳</font></a>"},
   { window_id: "popup4", width: "1020px", height: "650px", url: "http://www.alc.co.jp/",                         title: "<a href='http://www.alc.co.jp/'><font color='white'>英辞郎</font></a>"},
   { window_id: "popup5", width: "1020px", height: "650px", url: "http://jp.rs-online.com/web/",                  title: "<a href='http://jp.rs-online.com/web/'><font color='white'>RSｺﾝﾎﾟｰﾈﾝﾂ</font></a>"},
   { window_id: "popup6", width: "1020px", height: "650px", url: "http://akizukidenshi.com/catalog/default.aspx", title: "<a href='http://akizukidenshi.com/catalog/default.aspx'><font color='white'>秋月電子通商</font></a>"},
   { window_id: "popup7", width: "1020px", height: "650px", url: "http://neotechlab.bbs.fc2.com",                 title: "<a href='http://neotechlab.bbs.fc2.com'><font color='white'>NeoTechLab掲示板</font></a>"}
  ]}; 

   //**********************************************************
   //【指定要素(id)に指定色(color)で現在時刻を表示する】
   //**********************************************************
   function DisplayClock() {
      clearTimeout(NTL_Time);
      var jpntime=new Date();
      jpntime.setTime(new Date().getTime() + 9*3600*1000);
      var JpnTim = jpntime.toUTCString().replace(" UTC", " JST");
      JpnTim = JpnTim.replace(" GMT", " JST");
      var JTime = "<font face='Times New Roman' color='yellow' size='4'><b><i>Terra : " + JpnTim + "</i></b></font>";
      document.getElementById("NTL_Clock").innerHTML = JTime;
      NTL_Time = setTimeout('DisplayClock()', 500); 
   }

   //*******************************************************
   //【onload時に実行するべき初期化関数】
   //*******************************************************
   function init() {
 //   initPopup();              //【ポップアップメニュー】
 //▲過去のしがらみでポップアップメニューの対処が遅れたページが存在するためonloadで対応中
      if (NTL_Language == 'en') { NTL_fmtRemarks = NTL_fmtRemarks_en; } //【表示言語オプション】  
      PreloadAgent();           //【Web Agent画像データのプリロードを行う】
      GetCurrentPlayListInfo(); //【playlistの旧形式データを読み込む】
      CreateFrame('youtube');   //【BGM playerの骨格構造を作る】
      PlayVoice(NTL_PageMessage, 0); //【ページのご挨拶】
      SelectInitialMovie();     //【最初に再生される動画を選択】
      loadPlayer();             //【NTL_Movieを再生】
      IntervalWebSensor();      //【Web Sensor起動】
   }

   //*******************************************************
   //【最初に再生される動画を選ぶ関数】9割の確率で優先再生リストを使う。
   //*******************************************************
   function SelectInitialMovie() {
      NTL_Movie = Math.floor( Math.random() * (NTL_MovieList.length - 1) ); //【基本は乱数】
      if ( (NTL_MovieCount == 0) && (Math.random() < 1.1) ) { //【9割の確率で優先決定】
         var mn = Math.floor( Math.random() * (NTL_HighPriority.length - 1) );
         var id = NTL_HighPriority[mn]; //【優先的に選択された動画ID】
         for ( var i = 0; i < NTL_MovieList.length; i++ ) {
            if ( id == NTL_MovieList[i] ) { NTL_Movie = i; break; } //【同じ動画IDが発見できたらその動画を再生する】
         }
      }
   }

   //*******************************************************
   //【11パターンのWeb Agentを選ぶ関数】
   //*******************************************************
   function SelectAgent() {
      var iAsel;
      NTL_AgentNumber = Math.floor(Math.random()*17)*2; // 検索エンジンからはAgent表示は不可視。Shield.png(透明)が初期状態
 //     return(0); //【Agent表示見直しのため以下を一旦無効にする】2011/05/26
  //▲----------------------------------------------------------------------
 //    if ( NTL_MovieOption[NTL_Movie] == 'Meiko' ) { NTL_AgentNumber = 4; } // Meikoの出番
 //     if ( NTL_MovieOption[NTL_Movie] == 'Nel' )   { NTL_AgentNumber = 6; } // ネルの出番
 //     if ( NTL_MovieOption[NTL_Movie] == 'Luka' || NTL_Movie==4 )  {
 //        iAsel = Math.floor(Math.random()*3); NTL_AgentNumber = 12;
 //        if (iAsel==1) { NTL_AgentNumber = 18; }
 //        if (iAsel==2) { NTL_AgentNumber = 8; } 
 //     } // Lukaデラックスの出番
 //     if ( NTL_MovieOption[NTL_Movie] == 'Miku' )  {
 //        iAsel = Math.floor(Math.random()*5); NTL_AgentNumber = 10;
 //        if (iAsel==1) { NTL_AgentNumber = 2; }
 //        if (iAsel==2) { NTL_AgentNumber = 14; } 
 //        if (iAsel==3) { NTL_AgentNumber = 16; } 
 //        if (iAsel==4) { NTL_AgentNumber = 20; } 
 //     } // Miku
 //     if ( NTL_MovieOption[NTL_Movie] == 'Chibi' ) {
 //        iAsel = Math.floor(Math.random()*4); NTL_AgentNumber = 2;
 //        if (iAsel==1) { NTL_AgentNumber = 14; } 
 //        if (iAsel==2) { NTL_AgentNumber = 16; } 
 //        if (iAsel==3) { NTL_AgentNumber = 20; } 
 //     } // ちびミクの出番
   }



   //*******************************************************
   //【動画情報欄に表示するIconを選択する関数】
   //*******************************************************
   function SelectInfoZoneIcon() {
      NTL_MovieIcon = "<a title='YouTubeの動画ページに遷移します。' href='http://www.youtube.com/watch?v=" + NTL_MovieID + "' target='_blank'>"
                    + "<img border='0' src='http://i1.ytimg.com/vi/" + NTL_MovieID + "/default.jpg' width='120px' height='90px' /></a><br><br>";
      if ( NTL_MovieOption[NTL_Movie] == "P" ) {
//         NTL_MovieIcon = "<a title='Perfume『レーザービーム/微かなカオリ』2011/05/18(水) Release!!　オフィシャルサイトへ' href='http://www.perfume-web.jp/'>"
//                       + "<img border='0' src='http://blog.amuse.co.jp/media/29/20110414-20110414-Limited.jpg' height='165px' /></a><br>";
         if (Math.random()<0.5) {
            NTL_MovieIcon = "<a title='【Perfume】『スパイス』2011/11/2(水) Release!!　オフィシャルサイトへ' href='http://www.perfume-web.jp/'>"
                          + "<img border='0' src='http://www.perfume-web.jp/upload/media/3/20110926-tsujo_h２.jpg' height='180px' /></a><br>";
         } else {
            NTL_MovieIcon = "<a title='【Perfume】『スパイス』2011/11/2(水) Release!!　オフィシャルサイトへ' href='http://www.perfume-web.jp/'>"
                          + "<img border='0' src='http://www.perfume-web.jp/upload/media/3/20110926-shokai_h２.jpg' height='180px' /></a><br>";
         }
      }
      if ( NTL_MovieOption[NTL_Movie] == "Senri" ) {
         NTL_MovieIcon = "<a title='YouTubeの川口千里ちゃんのチャンネルへ' href='http://www.youtube.com/user/tkmdr'>"
                       + "<img border='0' src='http://i3.ytimg.com/bg/NKONcy9suN-n9zu1Kitoyg/102.jpg' width='230px' /></a><br>";
      }
      if ( NTL_MovieOption[NTL_Movie] == "SEGA" ) {
         NTL_MovieIcon = "<a title='SEGA Project Diva' href='http://miku.sega.jp/'>"
                       + "<img border='0' src='http://sega.jp/images/diva_link.jpg' height='165px' /></a><font size='5' color='blue'><b>SEGA</b></font><br>";
      }
      if ( NTL_MovieOption[NTL_Movie] == "Crypton" ) {
         NTL_MovieIcon = "<a title='YouTubeの動画ページに遷移します。' href='http://www.youtube.com/watch?v=" + NTL_MovieID + "' target='_blank'>"
                       + "<img border='0' src='http://i1.ytimg.com/vi/" + NTL_MovieID + "/default.jpg' width='140px' height='105px' /></a> "
                       + "<a title='CryptonFuturesOfficialChannel' href='http://www.youtube.com/user/HatsuneMiku'>"
                       + "<img border='0' src='http://i3.ytimg.com/i/JwGWV914kBlV4dKRn7AEFA/1.jpg' height='105px' /></a><br><font size='5' color='orange'><b>Crypton</b></font><br>";
      }
      if ( NTL_MovieOption[NTL_Movie] == "Michelle" ) {
         NTL_MovieIcon = "<a title='Michelle Phan' href='http://www.michellephan.com/'>"
                       + "<img border='0' src='http://albums.eqal.com/6/10008/10008_alb_xlarge_600x335_76176_1305160726.png' width='235px' /></a><br>";
      }
      if ( NTL_MovieOption[NTL_Movie] == "M" || NTL_MovieOption[NTL_Movie] == "Chibi" ) {
         var ithumb = Math.floor(Math.random()*7) + 1; // 乱数でthumbnailを決定する。
         if ( NTL_Language == "ja" ) {
            NTL_MovieIcon = " <a title='フリーウェア『MikuMikuDance』の作者 樋口優さんのページへ' href='http://www.geocities.jp/higuchuu4/index.htm'>"
                   //     + "<img border='0' src='" + "http://www.geocities.jp/phosmega/MMD/" + "MikuMikuDance" + ithumb.toString() + ".png' width='255px' /></a><br>";
                          + "<img border='0' src='" + NTL_Path + NTL_MMDAds + "MikuMikuDance" + ithumb.toString() + ".png' width='255px' /></a><br>";
         } else {
            NTL_MovieIcon = " <a title='Jump to the web page for downloading MikuMikuDance' href='http://www.geocities.jp/higuchuu4/index_e.htm'>"
                   //     + "<img border='0' src='" + "http://www.geocities.jp/phosmega/MMD/" + "MikuMikuDance" + ithumb.toString() + ".png' width='255px' /></a><br>";
                          + "<img border='0' src='" + NTL_Path + NTL_MMDAds + "MikuMikuDance" + ithumb.toString() + ".png' width='255px' /></a><br>";
         }
      }
   }

   //*******************************************************
   //【外部プレイリストから動画情報を得る】【旧形式データを読み込む】
   //*******************************************************
   function GetCurrentPlayListInfo() {
      var n = playlist.tour[NTL_Tour].movie_data.length;
      NTL_MovieTime   = new Array(n); //【再生時間】
      NTL_MovieList   = new Array(n); //【MovieID】
      NTL_MovieAds    = new Array(n); //【広告付きか】'A'なら最下行に広告表示有
      NTL_MovieInfo   = new Array(n); //【テロップの色】
      NTL_MovieTitle  = new Array(n); //【動画題名】デフォルト情報
      NTL_MovieOption = new Array(n); //【Web Agent選択情報】
      for (var i = 0; i < NTL_MovieList.length; i++ ) {
         NTL_MovieTime[i]   = playlist.tour[NTL_Tour].movie_data[i].time_length + 3000; //【3秒長くする】
         NTL_MovieList[i]   = playlist.tour[NTL_Tour].movie_data[i].movie_id;
         NTL_MovieTitle[i]  = playlist.tour[NTL_Tour].movie_data[i].title;
         NTL_MovieInfo[i]   = playlist.tour[NTL_Tour].movie_data[i].info;
         NTL_MovieAds[i]    = playlist.tour[NTL_Tour].movie_data[i].ads;
         NTL_MovieOption[i] = playlist.tour[NTL_Tour].movie_data[i].option;
      }
   }

   //*****************************************************
   //【Agentをプリロードする】
   //*****************************************************
   function PreloadAgent() {
      NTL_AgentImg = new Array(NTL_Agent.length);
      for ( i = 0; i < NTL_AgentImg.length; i++ ) { NTL_AgentImg[i] = new Image(); NTL_AgentImg[i].src = NTL_AgentURL + NTL_Agent[i]; }
   }
   //*****************************************************
   //【指定Agentを表示する】眼を開けた状態で表示
   //*****************************************************
   //【Agent表示】ウィンク：眼を開けた状態で表示
   function DisplayAgent1() {
      clearTimeout(NTL_AgentTimer1);
      document.images.NTL_AgentImage.src = NTL_AgentImg[NTL_AgentNumber].src;
      var wink = 500+Math.floor(Math.random()*4000);
      NTL_AgentTimer1 = setTimeout('DisplayAgent2()', wink);
   }
   //*****************************************************
   //【指定Agentを表示する】ウィンク：眼を閉じた状態で表示
   //*****************************************************NTL_AgentImage
   function DisplayAgent2() {
      clearTimeout(NTL_AgentTimer1);
      document.images.NTL_AgentImage.src = NTL_AgentImg[NTL_AgentNumber + 1].src;
      var wink = 100+Math.floor(Math.random()*150);
      if (NTL_AgentNumber!=4 && Math.random()<0.3) { wink=750; }
      NTL_AgentTimer1 = setTimeout('DisplayAgent1()', wink);
   }
   //*****************************************************
   //【Agent消去】２０秒経過したのでAgentを消す
   //*****************************************************
   function DisplayAgent3() {
      clearTimeout(NTL_AgentTimer1);
      clearTimeout(NTL_AgentTimer2);
      var timg = new Image(); timg.src = NTL_Path + NTL_StopButton;
      document.images.NTL_AgentImage.src = timg.src;
   }
   //*****************************************************
   //【泣いているミクを消去する】
   //*****************************************************
   function DisplayAgent4() {
      clearTimeout(NTL_AgentTimer1);
      clearTimeout(NTL_AgentTimer2);
      clearTimeout(NTL_AgentTimer3);
      var timg = new Image(); timg.src = NTL_Path + NTL_StopButton;
      document.images.NTL_AgentImage.src = timg.src;
      document.getElementById('NTL_FrmMedium').innerHTML = "";
   }



   //*****************************************************
   //【動画サムネールを選択中の動画を先頭に全部表示する】NTL_Movie:選択された動画配列インデックス番号
   //*****************************************************
   function DisplayMovieThumbnails()
   {  var j = NTL_Movie;               //【IE8のバグ対策】marqueeタグのサムネールイメージの前後に必ずテキストが必要。
      var sTML="<marquee behavior='scroll' direction='left' width='585' overflow='visible'><font color='blue'>【サムネール】</font>";
      if (NTL_Language == 'en') { sTML="<marquee behavior='scroll' direction='left' width='585' overflow='visible'><font color='blue'>【Thumbnails Start】</font>"; }
      for ( var i = 0; i < NTL_MovieList.length; i++ )
      {  sTML += "<a title='" + NTL_MovieTitle[j] + "' alt='" + NTL_MovieTitle[j] + "'>";
         sTML += "<input type='image' src='http://i1.ytimg.com/vi/" + NTL_MovieList[j] + "/default.jpg' width='90px' height='70px' onclick='ChangeMovie(" + j + ");' />"; 
         sTML += "</a>";
         j++; if(j==NTL_MovieList.length) { j=0; }
      }
      if (NTL_Language == 'ja') {
         sTML += "<font color='blue'>【ここまで】</font></marquee>";
      } else {
         sTML += "<font color='blue'>【Thubnails End】</font></marquee>";
      }
      document.getElementById("NTL_Thumbnails").innerHTML = sTML;
   }
   //*****************************************************
   //【動画サムネールのクリックイベント】mIndex:選択された動画配列インデックス番号, Music_timer:再生時間
   //*****************************************************
   function ChangeMovie(sel_movie) { NTL_Movie=sel_movie; loadPlayer(); }


   //*****************************************************
   //【動画終了判定】
   //*****************************************************
   function ChangeNextMovie() {
      //【ランダム選曲】
      var pastMovie = NTL_Movie;
      while ( pastMovie == NTL_Movie ) { NTL_Movie = Math.floor( Math.random() * (NTL_MovieList.length - 1) ); }
      if ( NTL_Movie == NTL_MovieList.length ) { NTL_Movie = 0; }
      loadPlayer();
   }

   //【動画情報の表示】
   function DisplayDynamicVideoInfo() {
      NTL_PlayerObj = document.getElementById("ytPlayer");
      if (NTL_PlayerObj) {
         var ct = NTL_PlayerObj.getCurrentTime();
         var tl = NTL_PlayerObj.getDuration();
         var rem = "【Time】" + ct + " / " + tl + " [sec]<br>"; //
      } else {
         var rem = "【Time】--- / --- [sec]<br>"; //
         var ct = 0.1;
         var tl = 1.0;
      }
      if ( (ct != undefined) || (ct<1.0) ) {
          document.getElementById("NTL_FrmCur").innerHTML = rem;
          if ( ct==tl || NTL_DetectedCount > 10 ) {  //【５秒以上進展しなければ次の曲に遷移する】
      //   NTL_Movie++; //【曲順に再生する場合】
      //【ランダム選曲】
            var pastMovie = NTL_Movie;
            while ( pastMovie == NTL_Movie ) { NTL_Movie = Math.floor( Math.random() * (NTL_MovieList.length - 1) ); }
            if ( NTL_Movie == NTL_MovieList.length ) { NTL_Movie = 0; }
            CreateFrame('youtube');   //【BGM playerの骨格構造を作る】
            loadPlayer();
         } else { //【５秒間進展なしなら次の動画に行くためのカウント】
            if (tl > 1.0) {
               if (NTL_PastMovieTime == ct) { NTL_DetectedCount++; } else { NTL_DetectedCount = 0; }
            }
            if (tl > 1.0) { NTL_PastMovieTime = ct; }
         }
      }
   }
   //*****************************************************
   //【動画情報の表示】
   //*****************************************************
   function DisplayStaticVideoInfo() {
      var rem = "";
      rem += NTL_MovieIcon; //【動画情報欄に表示するIcon】
      if (NTL_Language == 'ja') {
         rem += "【タイトル】<a title='YouTubeの動画ページに遷移します。' href='http://www.youtube.com/watch?v=" + NTL_MovieID + "' target='_blank'>" + YT_Title +"</a><br>";
         rem += "【動画ID】<a title='YouTubeの動画ページに遷移します。' href='http://www.youtube.com/watch?v=" + NTL_MovieID + "' target='_blank'>" + NTL_MovieID + "</a><br>";
         rem += "【所有者】<a title='YouTubeの所有者のチャンネルに遷移します。' href='http://www.youtube.com/user/" + YT_AuthorName + "' target='_blank'>" + YT_AuthorName +"</a><br>";
         rem += "【アップロード日時】" + YT_Published.substring(0,16) +"<br>";
         rem += "【再生回数】" + YT_ViewCount + "　　【評価】" + YT_FavoriteCount + "<br>";
      } else { // 'en': 英語表示モード
         rem += "【Title】<a title='Jump to Movie Page in YouTube' href='http://www.youtube.com/watch?v=" + NTL_MovieID + "' target='_blank'>" + YT_Title +"</a><br>";
         rem += "【YouTube_Movie_ID】<a title='Jump to Movie Page in YouTube' href='http://www.youtube.com/watch?v=" + NTL_MovieID + "' target='_blank'>" + NTL_MovieID + "</a><br>";
         rem += "【Owner】<a title='Jump to Owner_Channel in YouTube' href='http://www.youtube.com/user/" + YT_AuthorName + "' target='_blank'>" + YT_AuthorName +"</a><br>";
         rem += "【Published Date】" + YT_Published.substring(0,16) +"<br>";
         rem += "【View Count】" + YT_ViewCount + "　【Favorite Count】" + YT_FavoriteCount + "<br>";
      }
      document.getElementById('NTL_FrmInfo').innerHTML = rem;
   }
   //*****************************************************
   //【動画の再生停止に伴う消去処理】
   //*****************************************************
   function StopMovie() {
      clearTimeout(NTL_MovieCntTimer);
      document.getElementById('NTL_FrmMedium').innerHTML =  "<img border='0' src='" + NTL_Path + NTL_CryingMiku + "' height='278px' />"; //【YouTube Playerを消去】
      document.getElementById('NTL_MessageL1').innerHTML = ""; //【Neo-Tech-Lab.comロゴを消去】
      document.getElementById('NTL_FrmInfo').innerHTML = "";   //【動画情報欄を消去】
      document.getElementById('NTL_FrmCur').innerHTML = "";    //【動画情報欄を消去】時間
      NTL_AgentNumber = 0; //【弱音ハク】
      DisplayAgent1();
      NTL_AgentTimer2 = setTimeout('DisplayAgent3()', 10000); //【10秒後弱音ハクを消す】
      NTL_AgentTimer3 = setTimeout('DisplayAgent4()', 15000); //【15秒後ミクを消す】
      RegretMessage(); //【Google Chromeの人に残念メッセージ】
      NTL_MovieID = "Stop_Movie!";
   }


   //*****************************************************
   //【NTL_Movieで指定された動画の再生を開始する】
   //*****************************************************
   //【My Developper Key】: 'AI39si5VJgipMTHsm7_tR4eEbioJpCKUS5ApbRfZoS17VE7WrpFN-f8y5Zd-uS6Aa0PNxFrk623g9Lv3zwMnsb0Tr2VfowZDpw'
   function loadPlayer() {
      clearTimeout(NTL_MovieCntTimer);

 //     NTL_DetectedCount=0;
 //     NTL_PastMovieTime = 0.0; 
      document.getElementById('NTL_FrmLarge').style.zIndex = 0; //【FrmLargeの奥行きを変更】
      NTL_MovieID = NTL_MovieList[ NTL_Movie ]; // The video to load

      document.getElementById('NTL_FrmMedium').innerHTML = "<div id='videodevice'></div>";

      DisplayYouTubeMovieMiddle(NTL_MovieID, 0);

//      var params = { allowScriptAccess: "always", allowFullScreen: "true", wmode: "transparent" };  //
//      var atts = { id: "ytPlayer", name: "ytPlayer" };
//      var URL = "http://www.youtube.com/v/" + NTL_MovieID
//              + "&version=3&enablejsapi=1&playerapiid=player1&fs=1&rel=0&autoplay=1&key=" + NTL_DeveloperKey;
//      swfobject.embedSWF(URL, "videodevice", "320", "278", "8", null, null, params, atts);


      RequestYouTubeMovieRecord(NTL_MovieID); //【JSONデータ要求】
      DisplayMovieThumbnails();
      document.getElementById('NTL_MessageL1').innerHTML = NeoTechLab; //【Neo-Tech-Lab.comのロゴ】
      document.getElementById('NTL_MessageL2').style.zIndex = 0; //【FrmLargeの奥行きを変更】
      document.getElementById('NTL_MessageL3').style.zIndex = 0; //【FrmLargeの奥行きを変更】
 //     document.getElementById('NTL_MessageL4').style.zIndex = 0; //【FrmLargeの奥行きを変更】
      document.getElementById('NTL_MessageL5').style.zIndex = 0; //【FrmLargeの奥行きを変更】
      document.getElementById('NTL_MessageL6').style.zIndex = 0; //【FrmLargeの奥行きを変更】
      document.getElementById('NTL_MessageL7').style.zIndex = 0; //【FrmLargeの奥行きを変更】
      SelectInfoZoneIcon(); //【動画情報欄のIconを選択】
      SelectAgent();   //【担当Web Agentを選ぶ】
      DisplayAgent1();
      NTL_AgentTimer2 = setTimeout('DisplayAgent3()', 20000);
      NTL_MovieCount++;
      NTL_MovieCntTimer = setTimeout('ChangeNextMovie()', NTL_MovieTime[NTL_Movie]);  //【動画終了時刻】
      if(NTL_MovieCount==7) { //７曲目以降ツアー18に変更*****************************************************************/2011/10/30/変更
         NTL_Tour = 18;
         GetCurrentPlayListInfo(); //【playlistの旧形式データを読み込む】
      }
   }

   //*****************************************************
   //【イベント：Playerの準備が整った】
   //*****************************************************
   function DisplayYouTubeMovieMiddle(YUID, flag) {
     if (flag==1) { var Repeat="&amp;loop=1"; } else { var Repeat=""; }
     var com = "<object width='320' height='278'>"
       + "<param name='movie' value='http://www.youtube.com/v/" + YUID + "?version=3&amp;hl=ja_JP&amp;autoplay=1" + Repeat + "&amp;fs=1'></param>"
       + "<param name='allowFullScreen' value='true'></param>"
       + "<param name='allowscriptaccess' value='always'></param>"
       + "<param name='wmode' value='transparent'></param>"
       + "<embed src='http://www.youtube.com/v/" + YUID + "?version=3&amp;hl=ja_JP&amp;autoplay=1" + Repeat + "&amp;fs=1' type='application/x-shockwave-flash' width='320' height='278' allowscriptaccess='always' allowfullscreen='true' wmode='transparent'></embed></object>";
     //【メモ】2011-11-07
     //　　●今更だがYouTube動画の設定方法を最新方式に変更した。自動スタートはソースURLの動画IDの直後にパラメータで与える。
     //　　　だがここでYouTubeの罠を発見。wmodeをtransparentに設定できないようだ。元に戻す。
     //　　　swfobjectの方は動画がスクリーン外に出ると相変わらず再生不具合あり。バグはブラウザのせいのようだが治っていない。
     // var com = "<iframe width='320' height='278' src='http://www.youtube.com/embed/" + YUID + "?autoplay=1' frameborder='0' allowfullscreen></iframe>";
     document.getElementById("videodevice").innerHTML = com;
   }

   //*****************************************************
   //【イベント：Playerの準備が整った】
   //*****************************************************
   function onYouTubePlayerReady(playerId) {
      NTL_PlayerObj.addEventListener("onError", "onFoundDeletedMovie");
   }

   //*****************************************************
   //【イベント：エラーが発生した】
   //*****************************************************
   // 100: 削除または非公開  101: 埋め込み非許可 150: 埋め込み非許可
   function onFoundDeletedMovie(errorcode) {
      DeletedMovieMessage(); //【Google Chromeだけ音声合成メッセージ】
      DeletedWebSensor();    //【Web Sensor Probeによる通報】
      NTL_MovieList[NTL_Movie]   = "sPB9-dkzuC4"; //【削除メッセージ】
      NTL_MovieTitle[NTL_Movie]  += "【削除された模様】";
      NTL_MovieInfo[NTL_Movie]   = "red";
      NTL_MovieAds[NTL_Movie]    = "";
      NTL_MovieOption[NTL_Movie] = "";
      loadPlayer();
   }





   //*****************************************************
   //【指定IDのdivタグ内にBGM playerのFrameを構成する】
   //*****************************************************
   function CreateFrame(tagID) {
      var frm  = "<font size='2'>";
          frm += "<div style='position:relative;top:0px;left:0px;z-index:0;'>"; //【z-indexの1～9までは未使用】
          frm += "<div style='position:absolute;top:0px;left:0px;z-index:10;width:585px;height278px;'>";
          frm +=   "<img border='0' src='" + NTL_Path + NTL_WallPaperBG + "' width='585px' height='278px' />"; //【概ね横585px縦278pxの壁紙】
          frm += "</div>";
          frm += "<div style='position:absolute;top:278px;left:0px;z-index:10;width:585px;height:70px;'>";
          frm +=   "<img border='0' src='" + NTL_Path + NTL_ThumbnailBG + "' width='585px' height='70px' />";  //【概ね横585px縦70pxのサムネールバー】
          frm += "</div>";
          frm += "<div id='NTL_FrmMedium' style='position:absolute;top:0px;left:0px;z-index:11;width:330px;height:278px;'></div>"; //【YouTube動画MediumSize】
          frm += "<div id='NTL_FrmInfo'   style='position:absolute;top:0px;left:325px;z-index:11;width:260px;height:278px;'></div>"; //【YouTube動画情報欄】
          frm += "<div id='NTL_FrmCur'    style='position:absolute;top:264px;left:325px;z-index:12;width:260px;height:14px;'></div>"; //【YouTube動画情報欄】
          frm += "<div id='NTL_StopMovie' style='position:absolute;top:250px;left:0px;z-index:12;width:60px;height:30px;'>";
          frm +=   "<a title='" + NTL_StopComment + "' href='javascript:void(0);' onclick='StopMovie();' />";  //【】
          frm +=     "<img border='0' src='" + NTL_Path + NTL_StopButton + "' width='60px' height='30px' />";  //【横60px縦30pxのpng形式透明画像】
          frm +=   "</a>";
          frm += "</div>";  //【YouTube動画停止ボタン】
          frm += "<div id='NTL_MessageL1' style='position:absolute; top:0px;  left:0px;z-index:12;width:330px;height:40px;'></div>"; //【メッセージ１行目】
          frm += "<div id='NTL_MessageL2' style='position:absolute; top:35px; left:0px;z-index:12;width:330px;height:40px;'></div>"; //【メッセージ２行目】
          frm += "<div id='NTL_MessageL3' style='position:absolute; top:70px; left:0px;z-index:12;width:330px;height:40px;'></div>"; //【メッセージ３行目】
          frm += "<div id='NTL_MessageL4' style='position:absolute; top:105px;left:0px;z-index:12;width:330px;height:40px;'></div>"; //【メッセージ４行目】
          frm += "<div id='NTL_MessageL5' style='position:absolute; top:140px;left:0px;z-index:12;width:330px;height:40px;'></div>"; //【メッセージ５行目】
          frm += "<div id='NTL_MessageL6' style='position:absolute; top:175px;left:0px;z-index:12;width:330px;height:40px;'></div>"; //【メッセージ６行目】
          frm += "<div id='NTL_MessageL7' style='position:absolute; top:207px;left:0px;z-index:12;width:330px;height:40px;'></div>"; //【メッセージ７行目】
          frm += "<div id='NTL_FrmLarge'  style='position:absolute;top:0px;left:0px;z-index:20;width:600px;height:400px;'></div>";   //【YouTube動画LargeSize】
          frm += "<div id='NTL_WebAgent1' style='position:absolute;top:55px;left:305px;z-index:30;'>"
          frm += "<img id='NTL_AgentImage' name='NTL_AgentImage' border='0' src='" + NTL_Path + NTL_StopButton + "' />"
          frm += "</div>"; //【エージェント１】
          frm += "<div id='NTL_WebAgent2' style='position:absolute;top:55px;left:305px;z-index:3;'></div>"; //【エージェント２】
          frm += "<div id='NTL_Thumbnails' style='position:absolute; top:278px; left:0px; z-index:19;' width='585px' height='70px'></div>"; //【RollingThumbnails】
          frm += "<div id='NTL_Remarks'    style='position:absolute; top:350px; left:0px; z-index:10; background-color:lightgray; width:585px; height:50px;line-height:110%;' ></div>"; //【RollingThumbnails】
          frm += "<div id='NTL_Voice'      style='position:absolute; top:0px;   left:585px; z-index:0; visibility:hidden;' width='350px' height='100px'></div>"; //【Google翻訳TTS】
          frm += "</div>"; //【relative】
          frm += "</font>";
      document.getElementById(tagID).innerHTML = frm;
      document.getElementById("NTL_Remarks").innerHTML = NTL_fmtRemarks;
   } 


   //%%% Google YouTube Data API %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   //【変数】
   // YT_AuthorName    :【動画所有者】
   // YT_Published     :【アップロード日付】
   // YT_Title         :【題名】
   // YT_ViewCount     :【再生回数】
   // YT_FavoriteCount :【評価】
   //*******************************************************
   //【Request YouTube Movie Record】callback=GetYouTubeMovieRecord
   //*******************************************************
   //指定動画IDの動画情報をJSONデータ形式で要求する
   function RequestYouTubeMovieRecord(id) {   
      YT_AuthorName = "";   //【要求するデータの全項目をクリアする】
      YT_Published  = "";   //
      YT_Title      = "";   //
      YT_ViewCount  = 0;    //
      YT_FavoriteCount = 0; //
      var STag = document.createElement("script"); //【scriptタグ要素を用意してJSONを要求するURLをsrcとする】
      STag.charset = "utf-8";                      // エンコードをutf-8とし、型をテキスト/JavaScriptとする
      STag.type = "text/javascript";               // JSONデータ受取の為のfunction[GetYouTubeMovieRecord]をcallbackで定義する
      STag.src = "http://gdata.youtube.com/feeds/api/videos?alt=json&q=" + id + "&callback=GetYouTubeMovieRecord";
      document.body.appendChild(STag);             //【上記JSONデータを要求する要素をbodyにappendする】
   }
   //*******************************************************
   //【Get YouTube Movie Record】【callback】
   //*******************************************************
   //指定動画IDの動画情報をJSONデータ形式で受け取る
   function GetYouTubeMovieRecord(Feed) {          //【Googleから返送されたJSONデータを構造体データとして引き数Feedで受け取る】
      YT_AuthorName    = Feed.feed.entry[0].author[0].name.$t;       //【動画所有者名】YouTubeチャンネルの名称
      YT_Published     = Feed.feed.entry[0].published.$t;            //【アップロード日時】
      YT_Title         = Feed.feed.entry[0].title.$t;                //【題名】
      YT_ViewCount     = Feed.feed.entry[0].yt$statistics.viewCount; //【再生回数】　　（他に評価や動画説明等のデータもある。）
      YT_FavoriteCount = Feed.feed.entry[0].yt$statistics.favoriteCount; //【評価】
      YT_Published = YT_Published.replace(/-/g, "/");
      YT_Published = YT_Published.replace(/T/, " ");
      DisplayStaticVideoInfo();
      NTL_MovieTitle[NTL_Movie] = YT_Title; //【最新の題名に変更】
   }



   //####################################################################
   //【ここより下はBGM playerには直接関係しないモジュールです。】
   //####################################################################

   //%%% New Window Open %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   //【変数】
   // YouTubeWindow : NewWindowオブジェクト
   //*******************************************************
   //【新規ウィンドウを指定URLで開く】
   //*******************************************************
   //⇒JavaScriptを実行するのでGoogle検索, YouTube, Google翻訳のページでも開くことができる
   function showPage(url) { 
      var newwindow = window.open(url,'NeoTechLab','height=1000,width=600,top=200,left=80,status=yes,scrollbars=yes,directories=yes,menubar=yes,resizable=yes,toolbar=yes'); 
      if (window.focus) { newwindow.focus(); } 
      return( newwindow );
   }
   //*******************************************************
   //【Open YouTube Window】指定動画IDのページを開く
   //*******************************************************
   //⇒YouTubeの指定ID動画ページを別ウィンドウで開く
   function OpenYouTubeWindow(id) {
      YouTubeWindow = showPage( 'http://www.youtube.com/watch?v=' + id );
   }
   //*******************************************************
   //【Close YouTube Window】開いている動画ページを閉じる
   //*******************************************************
　 function CloseYouTubeWindow() {
      YouTubeWindow.close();
   }
   //*******************************************************
   //【ポップアップ処理】メニュー
   //*******************************************************
   function Popup(chkbx) { if(chkbx.checked) { showURL(chkbx.value); } else { hideURL(chkbx.value); } }
   function hideURL(pid) {
      if (pid==0 || pid==2 || pid==3) { YouTubeWindow.close(); } else { var base=document.getElementById(website.database[pid].window_id); base.innerHTML=""; }
   }
   function showURL(pid) { 
      if (pid==0 || pid==2 || pid==3) { YouTubeWindow = showPage(website.database[pid].url);
      } else {
         var base=document.getElementById(website.database[pid].window_id); base.innerHTML="<font size='1'><hr></font>";
         var obj=document.createElement("iframe"); obj.setAttribute("border", "0"); obj.setAttribute("frameborder", "0");
         obj.style.width = website.database[pid].width; obj.style.height = website.database[pid].height; obj.src=website.database[pid].url; base.appendChild(obj);
      }
   }
   function initPopup() {
     var PEM = ""; for (i = 0; i < website.database.length; i++) { PEM +="<INPUT type='checkbox' onClick='Popup(this);' value=" + i + ">" + website.database[i].title + "&nbsp;&nbsp;&nbsp;"; }
     document.getElementById("PopExtMenu").innerHTML = PEM + website.Remark;
   }


   //*******************************************************
   //【Web Sensor Probe】削除動画発見につきミクに通報
   //*******************************************************
   //【Miku-net】サーバー側ではYouTube Data APIによる１時間毎の巡回調査を実施している。
   //            しかし、クライアント側で発見した場合にはミクに通知する。
   function DeletedWebSensor() {
      SendWebSensorInfo(NTL_Path + NTL_ProbeURL, NTL_KeyCord, 'DELETED_Movie=' + NTL_Movie + '&DELETED_MovieID=' + NTL_MovieID );
   }
   //*******************************************************
   //【Web Sensor Probe】１分間隔
   //*******************************************************
   function IntervalWebSensor() {
      clearTimeout(NTL_WSTimer);
      if (NTL_TimeCount == 0) { RequestYourIPAddress(); }
      SendWebSensorInfo(NTL_Path + NTL_ProbeURL, NTL_KeyCord, 'content=' + NTL_Content + '&tc=' + NTL_TimeCount + '&mid=' + NTL_MovieID + '&mc=' + NTL_MovieCount );
      NTL_WSTimer = setTimeout('IntervalWebSensor()', 60000);
      NTL_TimeCount++;
   }
   //%%% Web Sensor Probe %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   //【変数】
   // NTL_WebSensor : 通信用イメージのプリロードオブジェクト
   // NTL_KeyCord   : Web Agent認識の為のKeyCord
   // NTL_IPTimer   : IPアドレス取得の為のタイマー
   // NTL_Domain    : 'www.neo-tech-lab.co.uk'
   //*******************************************************
   //【Web Sensor Probe】【Public】
   //*******************************************************
   //■ NTL_WebSensor : 外部object変数 Image()
   //● url     : １画素画像ファイルが最適。クロスドメイン可能。
   //     例：NTL_ProbeURL, 'b/p.bmp' or 'http://www.neo-tech-lab.co.uk/b/p.gif'
   //● id      : 識別用ID (最初は'none'、２回目以降はNTL_KeyCordを使用)
   //● message : 送信情報　区切りコードは半角'&'
   //【利用方法】例：　SendWebSensorInfo(NTL_ProbeURL, NTL_KeyCord, 'param=Size&value=Big');
   function SendWebSensorInfo(url, id, message) {
      var number = new Date().getTime(); //【Web Agent 'Miku'のNTL_KeyCordとしても利用】
      NTL_WebSensor = new Image();       //【Imageオブジェクトのpreload機能を利用する】
      NTL_WebSensor.src = url + "?dummy=" + number + "&id=" + id + "&" + message; //【preload開始⇒送信】
      return(number);                    //【戻り値】NTL_KeyCordとして使う。
   }
   //*******************************************************
   //【Request Your IP Address】
   //*******************************************************
   function RequestYourIPAddress() {
      NTL_KeyCord = SendWebSensorInfo(NTL_Path + NTL_ProbeURL, 'none', 'tag=IPAddress');
      if(location.hostname == NTL_Domain || location.hostname == "192.168.0.2" ) { //【 www.neo-tech-lab.co.uk or 『ローカル』で以下を実行】
         NTL_IPTimer = setTimeout('GetYourIPAddress()', 5000); //【５秒間待機】
      }
   }
   //*******************************************************
   //【Get Your IP Address】【callback】
   //*******************************************************
   function GetYourIPAddress() {
      clearTimeout(NTL_IPTimer);
      if(location.hostname == NTL_Domain) { //【ローカルでなければ以下を実行】【Mikuを改良するため、Miku ReportJavaScript実行処理を一旦外す】2011/05/21
         if (NTL_Content != "CentipedeBite") { //【『ムカデ治療法』コンテンツはMiku-net対象外とする】IPアドレスが出るとたまげる一般人が多いので。
//         var element = document.createElement("script");
//         element.type = "text/javascript";
//         element.src = "http://" + NTL_Domain + "/" + NTL_IPService + "/IP" + NTL_KeyCord + ".js";
//         document.body.appendChild(element); //【Neo-Tech－Lab.co.ukのサーバーからIPアドレス認識時のJavaScriptを受取実行】
         }
      }
      //【ミクレポート】
      if (NTL_MikuRFlag) {
         document.getElementById("NTL_MessageL4").style.zIndex = 12;
         document.getElementById("NTL_MessageL4").innerHTML = "<marquee behavior='scroll' loop='1' width='320px'><font size='5' color='red'><b>" + MikuReport + "</b></font><font size='5' color='skyblue'>【Google DATA APIを利用】</font></marquee>";
         NTL_MikuRTimer = setTimeout('EraseMikuReport()', 25000); //【25秒間でレポートを消す】
      } else {
         document.getElementById("UserInfo").innerHTML += "<H3><font color='red'>【Miku Report】</font><br>　" + MikuReport + "<font size='3' color='blue'>【Google DATA APIを利用】</font></H3>";
         NTL_MikuRTimer = setTimeout('EraseMikuReport()', 10000); //【10秒間でレポートを消す】
      }
   }
   function EraseMikuReport() {
      clearTimeout(NTL_MikuRTimer);
      if (NTL_MikuRFlag) {
         document.getElementById("NTL_MessageL4").innerHTML = "";
         document.getElementById("NTL_MessageL4").style.zIndex = 0;
      } else {
         document.getElementById("UserInfo").innerHTML = "";
      }
   }


   //*******************************************************
   //【残念メッセージ】
   //*******************************************************
    function DeletedMovieMessage() {
      var msg1;
      if ( Math.random() > 0.5 ) { msg1="tl=ja&q=残念ながら、この動画は削除されたようです。"; } //【日本語の場合】
      else                       { msg1="tl=en&q=Oh,+my+God.+I+have+found+a+deleted+movie."; }  //【英語の場合】
      PlayVoice(msg1, 0);
    }
   //*******************************************************
   //【残念メッセージ】
   //*******************************************************
    function RegretMessage() {
      var msg1;
      if ( Math.random() > 0.5 ) { msg1="tl=ja&q=えっええー?。わたしのうた + きいてくれないのね。ちょっと、残念だな?"; } //【日本語の場合】
      else                       { msg1="tl=en&q=Oh,+my+God.+Do+you+dislike+my+song,+don't+you?"; }                      //【英語の場合】
      PlayVoice(msg1, 0);
    }
   //*******************************************************
   //【Google Text-To-Speech】
   //*******************************************************
   function PlayVoice2(language, message, milliseconds) {
      var ua = navigator.userAgent; //【ブラウザのユーザーエージェントを取得】
      if (ua.match(/Chrome\/([\.\d]+)/)) { //【Google Chrome】
         var msg = "tl=" + language + "q=" + message;
         PlayVoice( msg, milliseconds ); //【20秒でVoiceオブジェクトを消去】元々visibility:hiddenなので余り意味はない。
      }
   }
   //*******************************************************
   //【Google Text-To-Speech】
   //*******************************************************
   function PlayVoice( message, milliseconds ) { //【Language Code】'en':英語 'ja':日本語 'es':スペイン語 'fr':フランス語 'de':ドイツ語 'it':イタリア語
      var ua = navigator.userAgent; //【ブラウザのユーザーエージェントを取得】
      if (ua.match(/Chrome\/([\.\d]+)/)) { //【Google Chrome】
         var base=document.getElementById("NTL_Voice");
         base.innerHTML="<font size=\"1\">【Google翻訳の音声合成を用いたアナウンス】</font>";
         var obj=document.createElement("iframe");
         obj.setAttribute("border", "0");
         obj.setAttribute("frameborder", "0");
         obj.style.width = 300;
         obj.style.height = 20;
         obj.src=NTL_VoiceURL + "?" + message;
         obj.type = "audio/mpeg";
         base.appendChild(obj);
         if ( milliseconds > 0 ) {
            NTL_VoiceTimer = setTimeout('RemoveVoice()', milliseconds); //【20秒でVoiceオブジェクトを消去】元々visibility:hiddenなので余り意味はない。
         }
      }
   }
   //*******************************************************
   //【Google Text-To-Speech】【remove】
   //*******************************************************
   function RemoveVoice() {
      clearTimeout(NTL_VoiceTimer);
      document.getElementById("NTL_Voice").innerHTML = "";
   }

   //*******************************************************
   //【updateHTML】【HTMLを更新する】
   //*******************************************************
   function updateHTML(elmId, value) {
      document.getElementById(elmId).innerHTML = value;
   }

















