// moock fpi [f.lash p.layer i.nspector]
// version: 1.3.5
// written by colin moock
// code maintained at: http://www.moock.org/webdesign/flash/detection/moockfpi/
// terms of use posted at: http://www.moock.org/terms/



// #############################################
// 2009.03.24 ver10.0対応しました
// 以下はユーザーがカスタマイズできるグローバル変数です。
// 初期値を変更して動作をカスタマイズします。

var requiredVersion = 9;   // サイトを見るのに必要なバージョン番号 (最大 9, 
                           // 最小 2)
var useRedirect = true;    // 検出の結果によって別ページに転送するかどうか
                           // を決定するフラグ。trueの場合は別ページに転送,
						   // つまり転送オプションがオン。
						   // falseの場合はこのページに直接埋め込みFlashまたは
						   // 代替画像を表示する。
                           
// useRedirectがtrueの場合のみ以下の3つの変数を指定
var flashPage = "index.html"     // Flashムービーページ
var noFlashPage = "index1.html"  // 検出不能の場合,あるいはプラグインがない
						   			// 場合に表示するページ
var upgradePage = "index1.html"  // 古いバージョンのプラグインが検出された
									// ときに表示するページ
// #############################################



// *************
// この後,BODYタグが終了するまでは,内部的な処理を行っています。
// この部分は編集しないでください!詳細はBODYタグ終了後のコメントを参照。
// *************

// System globals
var flash2Installed = false;    // Flash 2が入っている場合にtrue
var flash3Installed = false;    // Flash 3が入っている場合にtrue
var flash4Installed = false;    // Flash 4が入っている場合にtrue
var flash5Installed = false;    // Flash 5が入っている場合にtrue
var flash6Installed = false;    // Flash 6が入っている場合にtrue
var flash7Installed = false;    // Flash 7が入っている場合にtrue
var flash8Installed = false;    // Flash 8が入っている場合にtrue
var flash9Installed = false;    // Flash 9が入っている場合にtrue
var maxVersion = 9;             // 検知できる最新のバージョン
var actualVersion = 0;          // 実際に検知されたバージョン
var hasRightVersion = false;    // Flashムービーを安全に表示できる場合にtrue
var jsVersion = 1.0;            // サポートされているJavaScriptバージョン


// ブラウザのチェック(IE/Winかどうか)
var isIE = (navigator.appVersion.indexOf("MSIE") != -1) ? true : false;
// IEの場合true
var isWin = (navigator.appVersion.indexOf("Windows") != -1) ? true : false; // Windowsの場合true

// 以下はjs1.1コードブロック。
jsVersion = 1.1;

// Windows IE用にvbscript検知コードを書き出し。
// Windows IEは通常のjavascript.plugin配列による検知が不可能。
if(isIE && isWin){
  document.write('<SCR' + 'IPT LANGUAGE=VBScript\> \n');
  document.write('on error resume next \n');
  document.write('flash2Installed = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.2"))) \n');
  document.write('flash3Installed = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.3"))) \n');
  document.write('flash4Installed = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.4"))) \n');
  document.write('flash5Installed = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.5"))) \n');
  document.write('flash6Installed = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.6"))) \n');
  document.write('flash7Installed = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.7"))) \n');
  document.write('flash8Installed = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.8"))) \n');
  document.write('flash9Installed = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.9"))) \n');
  document.write('</SCR' + 'IPT\> \n'); // タグを分割することで,SCRIPTタグが
						   // ここで終了してしまうと認識されるのを防ぐ。
}


// ここでは通常のJavascriptによる,navigator.plugins配列を利用したプラグイン
// 検知を行う。検出コードは,ページがロードされる前に,関数として書き出される
// ようにする。

function detectFlash() {  

FlashPlayer= {
	version : (function(){
		var version='0.0.0';
		if(navigator.plugins && navigator.mimeTypes['application/x-shockwave-flash']){
			var plugin=navigator.mimeTypes['application/x-shockwave-flash'].enabledPlugin;
			if (plugin && plugin.description) {
				version=plugin.description.replace(/^[A-Za-z\s]+/, '').replace(/(\s+r|\s+b[0-9]+)/, ".");
			}
		} else { // Win IE
			var x='';
			try {
				var axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");
				x=axo.GetVariable("$version");
			} catch(e) {
				try {
					axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");
					x="WIN 6,0,21,0";
					axo.AllowScriptAccess="always";
					x=axo.GetVariable("$version");
				} catch(e) {
					if (!x.match(/^WIN/)) {
						try {
							axo=null;
							axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
							x=axo.GetVariable("$version");
						} catch(e) {
							if (axo) {
								x="WIN 3,0,18,0";
							} else {
								try {
									axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
									x="WIN 2,0,0,11";
								} catch(e) {
									x="WIN 0,0,0,0";
								}
							}
						}
					}
				}
			}
			version=x.replace(/^WIN /,'').replace(/,[0-9]+$/,'').replace(/,/g,'.');
		}
		
		if (version.match(/^[0-9]+\.[0-9]+\.[0-9]+$/)) {
			return version;
		} else {
			return '0.0.0';
		}
	})()
}

  
  // デバッグ:次のラインをアンコメントすると,実際に検出されたFlashバージョン
  // を見ることができます。
  //alert("Your Flash Plugin Version: " + FlashPlayer.version);
  actualVersion = parseInt(FlashPlayer.version);
  // プラグイン検知をサポートするすべてのブラウザをカバーしたので,今度はその
  // 結果に応じた適切な処理を行う。

  // ユーザーが充分に新しいバージョンをインストールしていたら...
  if (actualVersion >= requiredVersion) {
    // 転送オプションをオンにしている場合は,適切なページに転送する。
    if (useRedirect) {
      // location.replaceを行うためにはJavascript 1.1以上が必要。
      if(jsVersion > 1.0) {
        // replace()が使えるため,「戻る」ボタン機能を損なわずに転送可能。
        // window.location.replace(flashPage);
        // 転送しない。
      } else {
        // Javascriptバージョンが古いので,.locationを使って転送をする。
        // window.location = flashPage;
        // 転送しない。
      }
    }
    
    // ここに処理が来た場合,充分に新しいバージョンがインストールされているが
	// 転送オプションがオフということ。この後の処理でobject/embedタグを生成し,
	// 書き出す。
    hasRightVersion = true;                
  } else {
    // ユーザーが充分に新しいバージョンをインストールしていなかった。
    // 転送オプションがオンの場合,適切な代替ページ(ダウンロードページなど)
	// を表示。
    if (useRedirect) {
      // 上記処理と同様,js1.1以上の場合のみ,.replace() を使って転送を行う。
      if(jsVersion > 1.0) {
        window.location.replace((actualVersion >= 2) ? upgradePage : noFlashPage);
      } else {
        window.location = (actualVersion >= 2) ? upgradePage : noFlashPage;
      }
    }
  }
}


detectFlash();  // 検出スクリプトに,安全にロードされたことを伝える。