/**
 *	@name			flash.js
 *	@type			check
 *	@facility		FLASH出力及びプラグインのチェック
 *	@created date	2003/11/06
 *	@author			so
 *	@version		1.1
 *	@copyright (c) 2003 NATIONAL BASIC DESIGN inc.
 *
 *	[更新履歴]
 *	@v1.1		:	2003/11/06	:	execScriptにて、VBScriptを実行できるように修正
 *	@v1.2		:	2004/12/07	:	wmodeを引数に追加（透過設定）
 *	@v1.3		:	2004/05/13	:	allowScriptAccess, scale, salign, baseを引数に追加
 *	@v1.4		:	2006/10/30	:	flashVarsを引数に追加
 **/

var nUserAgent	= navigator.userAgent;
var nAppVersion	= navigator.appVersion;
var nAppName	= navigator.appName;
var nMimeTypes	= navigator.mimeTypes;

var flashPlugin;
var flashVer;

var fId;
var fWidth;
var fHeight;
var fFile;
var fRequiredVer;		// [4/5/6]
var fBgcolor;
var fLanguage;			// [0(JP)/1(EN)]
var fQuality;			// [LOW/MEDIUM/HIGH/AUTOHIGH/AUTOLOW]
var fPluginspages = new Array()
{
	"http://www.macromedia.com/jp/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash",	// JPN PLUGIN'S PAGES
	"http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash"		// ENG PLUGIN'S PAGES
}
var fWmode				// [window/opaque/transparent]
var fAllowScriptAccess	// [always/never]
var fScale				// [showall/noborder/exactfit/noscale]
var fSalign				// [L/R/T/B/TL/TR/BL/BR]
var fBase				// [./(BASE URL)]

function getFlashPlugin()
{
	return (nMimeTypes && nMimeTypes["application/x-shockwave-flash"]) ? nMimeTypes["application/x-shockwave-flash"].enabledPlugin : 0;
}

function getFlashVer(plugin)
{
	if(plugin)
	{
		return parseInt(plugin.description.substring(plugin.description.indexOf(".")-1));
	}
	else if(nUserAgent && nUserAgent.indexOf("MSIE") != -1 && nAppVersion.indexOf("Win") != -1)
	{
		execScript('on error resume next\nflashVer = IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash." & fRequiredVer))', 'VBScript');
		if(flashVer)
		{
			return fRequiredVer;	// とりあえず fRequiredVer を返す。
		}
	}
	return -1;
}


function hasPlugin()
{
	if(flashVer < fRequiredVer)
	{
		return false;
	}

	return true;
}

function hasAuguments(args)
{
	fId					= args.id;
	fWidth				= args.width;
	fHeight				= args.height;
	fFile				= args.file;
	fRequiredVer		= args.fRequiredVer;
	fBgcolor			= args.bgcolor;
	fLanguage			= args.language;
	fMenu				= args.menu;
	fQuality			= args.quality;
	fWmode				= args.wmode;
	fAllowScriptAccess	= args.allowscriptaccess;
	fScale				= args.scale;
	fSalign				= args.salign;
	fBase				= args.base;
	fVars				= args.vars;

	if(!fId)			fId = "default";
	if(!fRequiredVer)	fRequiredVer = 4;
	if(!fBgcolor)		fBgcolor = "#ffffff";
	if(!fLanguage)		fLanguage = 1;
	if(!fQuality)		fQuality = "AUTOHIGH";
	if(!fMenu)			fMenu = "false";

	if(!fFile || !fWidth || !fHeight)
	{
		return false;
	}
	
	return true;
}

function executeFlash(args)
{
	if(!hasAuguments(args))
	{
		alert("[ ERROR ]\nYOU MUST PUT VALUE INTO fFile, fWidth, fHeight.");
		return;
	}

	flashPlugin			= getFlashPlugin();
	flashVer			= getFlashVer(flashPlugin);

	document.open();

	with(document)
	{
		if(hasPlugin())
		{
			write('<div id="flash">');
			write('<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" ');
			write(' codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab"');
			write(' id="' + fId + '"');
			write(' width="' + fWidth + '"');
			write(' height="' + fHeight + '"');
			write('>');
			write('<param name="movie" value="' + fFile + '">');
			write('<param name="quality" value="' + fQuality + '">');
			write('<param name="bgcolor" value="' + fBgcolor + '">');
			write('<param name="menu" value="' + fMenu + '">');

			if(fWmode) write('<param name="wmode" value="' + fWmode + '">');
			if(fAllowScriptAccess) write('<param name="allowscriptaccess" value="' + fAllowScriptAccess + '">');
			if(fScale) write('<param name="scale" value="' + fScale + '">');
			if(fSalign) write('<param name="salign" value="' + fSalign + '">');
			if(fBase) write('<param name="base" value="' + fBase + '">');
			if(fVars) write('<param name="FlashVars" value="' + fVars + '">');

			write('<embed src="' + fFile + '"');
			write(' quality="' + fQuality + '"');
			write(' bgcolor="' + fBgcolor + '"');
			write(' width="' + fWidth + '"');
			write(' height="' + fHeight + '"');
			write(' menu="' + fMenu + '"');

			if(fVars) write(' FlashVars="' + fVars + '"');

			write(' type="application/x-shockwave-flash"');
			write(' pluginspage="' + fPluginspages + '"');
			write('>');
			write('</embed>');
			write('</object>');
			write('</div>');
		}
		else
		{
			pluginUrl	= "http://www.macromedia.com/jp/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash&Lang=Japanese";
			errMessage	= "この画面をご覧になられている方は、最新のAdobe Flash Player（無料）がインストールされていない可能性があります。下記リンクから、最新のAdobe Flash Playerをインストールして、サイトをご覧ください。";
			jumpMessage = "クリックすると、Adobe社のサイトにとびます。";
			write('<p id="noflash">');
			write('<img src="./img/noflash.jpg" width="760" height="451" alt="' + errMessage + '" border=0 usemap="#nopluginmessage">');
			write('<map name="nopluginmessage" id="nopluginmessage">');
			write('<area shape="rect" coords="336,306,424,337" alt="' + jumpMessage + '" style="cursor:default;" href="' + pluginUrl + '" >');
			write('</map>');
			write('</p>');
		}
	}

	document.close();
}
