// =============================================================================
// Flash Player プラグイン判別クラス
// =============================================================================
/*
   FlashDetector クラス

   最終更新日:2005年3月17日(木)
   -----------------------------------------------------------------------------

   コンストラクタの引数
	無し

   -----------------------------------------------------------------------------

   メソッド
	- writeVBChecker()
		VBスクリプト可能な環境で、判別スクリプトを書き出す。
*/
// =============================================================================
if(sniffer.DOMable()) {



// -----------------------------------------------------------------------------
/*
   コンストラクタ
*/
function FlashDetector() {
}
// -----------------------------------------------------------------------------



// -----------------------------------------------------------------------------
/*
   writeVBCheckerメソッド
	Boolean FlashDetector.writeVBChecker();

	引数
		無し
*/
FlashDetector.prototype.writeVBChecker = function() {
	if (navigator.userAgent && navigator.userAgent.indexOf("MSIE")>=0 && (navigator.userAgent.indexOf("Windows 95")>=0 || navigator.userAgent.indexOf("Windows 98")>=0 || navigator.userAgent.indexOf("Windows NT")>=0)) {
		var VBtext = "";
		VBtext += '<script language="VBScript" type="text/vbscript">\n';
		VBtext += 'VB_Enabled = "true" \n';
		VBtext += 'Function VB_FlashDetect(version) \n';
			VBtext += 'Dim i \n';
			VBtext += 'Dim VB_flash_version \n';
			VBtext += 'VB_flash_version = 0 \n';
			VBtext += 'on error resume next \n';
			VBtext += 'For i = 3 to version \n';
				VBtext += 'If Not(IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash." & i))) Then \n';
				VBtext += 'Else \n';
					VBtext += 'VB_flash_version = i \n';
				VBtext += 'End If \n';
			VBtext += 'Next \n';
			VBtext += 'If VB_flash_version = 0 Then \n';
				VBtext += 'VB_FlashDetect = -2 \n';
			VBtext += 'Else \n';
				VBtext += 'If VB_flash_version < version Then \n';
					VBtext += 'VB_FlashDetect = -1 \n';
				VBtext += 'Else \n';
					VBtext += 'VB_FlashDetect = 2 \n';
				VBtext += 'End If \n';
			VBtext += 'End If \n';
		VBtext += 'End Function \n';
		VBtext += '</script>';

		document.open();	
		document.write(VBtext);
		document.close();

		return true;
	}
	else	return false;
}
// -----------------------------------------------------------------------------





// -----------------------------------------------------------------------------
/*
   detectメソッド
	Number FlashDetector.detect();
	
	返値
		Number - 
			-3 : 引数に正しい数字が指定されていない
	
			-2 : Flashプラグインの有無について調査するための機能が実装されているブラウザであり、
			　　 かつその上でFlashプラグインが入っていないことが確認された。
	
			-1 : Flashプラグインの有無について調査するための機能が実装されているブラウザであり、
			　　 かつその上でFlashプラグインが入っていることが確認されたが、バージョンが満たないものであると確認された。
	
			 0 : Flashプラグインの有無について調査するための機能が実装されているブラウザではない。
			 　　Flashプラグインの有無を調べることができない。
	
			 1 : Flashプラグインの有無について調査するための機能が実装されているブラウザであり、
			 　　かつその上でFlashプラグインが入っていることが確認されたが、
			 　　ブラウザにバージョンを確認するための機能が実装されていないため、バージョンを確認することができなかった。
	
			 2 : Flashプラグインの有無について調査するための機能が実装されているブラウザであり、
			 　　かつその上でFlashプラグインが入っていることが確認され、
			 　　かつバージョンが条件を満たすものであると確認された。

	引数
		String or Number version - 判別にかけたいバージョン番号
*/
FlashDetector.prototype.detect = function(version) {
	if(typeof version != "undefined" && version != null && version != "")
	{
		version = parseInt(version);
		if(typeof version == "number")
		{
			var status = 0;
			if(typeof navigator.plugins != "undefined" && typeof navigator.plugins != "unknown" && navigator.plugins.length > 0)
			{
				if(typeof navigator.plugins["Shockwave Flash"] != "undefined")
				{
					var plugins_version = navigator.plugins["Shockwave Flash"].description.charAt(navigator.plugins["Shockwave Flash"].description.indexOf('.')-1);
					status = (plugins_version < version)? -1:2;
				}
				else status = -2;
			}
			else if(typeof navigator.mimeTypes != "undefined" && typeof navigator.mimeTypes != "unknown" && navigator.mimeTypes.length > 0)
			{
				if(typeof navigator.mimeTypes["application/x-shockwave-flash"] != "undefined" && navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin)
				{
					status = 1;
				}
				else {
					status = -2;
				}
			}
			else
			{
				if(typeof VB_Enabled != "undefined" && navigator.userAgent.indexOf("MSIE") >= 0 && navigator.userAgent.toLowerCase().indexOf("win") >= 0)
				{
					status = VB_FlashDetect(version);
				}
				else status = 0;
			}
			return status;
		}
	}
	return -3;
}
// -----------------------------------------------------------------------------



// -----------------------------------------------------------------------------
/*
   writeMenuメソッド
	FlashDetector.writeFlash();

	引数
		無し
*/
FlashDetector.prototype.writeFlash = function() {
	var str = "";

	str += '<div id="flashWrapper">';
	str += '<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" width="100%" height="100%" id="indexFlash" align="middle">';
	str += '<param name="allowScriptAccess" value="sameDomain">';
	str += '<param name="movie" value="index.swf"'+ Math.random() +'>';
	str += '<param name="menu" value="false">';
	str += '<param name="quality" value="high">';
	str += '<param name="scale" value="noscale">';
	str += '<param name="salign" value="t">';
	str += '<param name="bgcolor" value="#330066">';
	str += '<embed src="index.swf?"'+ Math.random() +' menu="false" quality="high" scale="noscale" salign="t" bgcolor="#330066" width="100%" height="100%" name="index" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer">';
	str += '</object>';
	str += '</div>';

	document.open();
	document.write(str);
	document.close();
}
// -----------------------------------------------------------------------------


// -----------------------------------------------------------------------------
/*
   インスタンス化 & VBスクリプト書き出し
*/
var flashDetector = new FlashDetector();
flashDetector.writeVBChecker();
// -----------------------------------------------------------------------------
}
