﻿/**
 *	@name			flash.js
 *	@type			check
 *	@facility		FLASH出力及びプラグインのチェック
 *	@created date	2003/11/06
 *	@author			so
 *	@version		1.1
 *	@copyright (c) 2003 COCONOE 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 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)]
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
}

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(ver)
{
	fRequiredVer = ver;
	flashPlugin = getFlashPlugin();
	flashVer = getFlashVer(flashPlugin);

	if(flashVer < fRequiredVer)
	{
		return false;
	}

	return true;
}

function setAuguments(args)
{
	fId					= args.id;
	fWidth				= args.width;
	fHeight				= args.height;
	fFile				= args.file;
	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(!fBgcolor)		fBgcolor = "#ffffff";
	if(!fLanguage)		fLanguage = 1;
	if(!fQuality)		fQuality = "AUTOHIGH";
	if(!fMenu)			fMenu = "false";
}

function getFlashTag(args)
{
	setAuguments(args);
	
	var rtnStr =

	'<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" '+
	' codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab"'+
	' id="' + fId + '"'+
	' width="' + fWidth + '"'+
	' height="' + fHeight + '"'+
	'>'+
	'<param name="movie" value="' + fFile + '">'+
	'<param name="quality" value="' + fQuality + '">'+
	'<param name="bgcolor" value="' + fBgcolor + '">'+
	'<param name="menu" value="' + fMenu + '">';

	if(fWmode) rtnStr += '<param name="wmode" value="' + fWmode + '">';
	if(fAllowScriptAccess) rtnStr += '<param name="allowscriptaccess" value="' + fAllowScriptAccess + '">';
	if(fScale) rtnStr += '<param name="scale" value="' + fScale + '">';
	if(fSalign) rtnStr += '<param name="salign" value="' + fSalign + '">';
	if(fBase) rtnStr += '<param name="base" value="' + fBase + '">';
	if(fVars) rtnStr += '<param name="FlashVars" value="' + fVars + '">';

	rtnStr +=
	'<embed src="' + fFile + '"'+
	' align="middle"'+
	' quality="' + fQuality + '"'+
	' bgcolor="' + fBgcolor + '"'+
	' width="' + fWidth + '"'+
	' height="' + fHeight + '"'+
	' menu="' + fMenu + '"';

	if(fVars) rtnStr += ' FlashVars="' + fVars + '"';

	rtnStr +=
	' type="application/x-shockwave-flash"' +
	' pluginspage="' + fPluginspages[isJpn()] + '"' +
	'>'+
	'</embed>'+
	'</object>';
	
	return rtnStr;
}

function isJpn()
{
	if(!navigator.userLanguage) return 1;
	if(navigator.language && (navigator.language.indexOf("ja") != -1 || navigator.userLanguage.indexOf("ja") != -1)) return 0;
	return 1;
}
