var CONTENTS_VERSION = 8;
var isValid = false;

// Plug-inの取得
var plugin = (navigator.mimeTypes && navigator.mimeTypes["application/x-shockwave-flash"]) ? navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin : 0;

// Plug-inがInstallされている場合
if ( plugin ) {
	// Plug-inのバージョンを取得
	var plugin_version = getPluginVer();

	// バージョンチェック
	isValid = plugin_version >= CONTENTS_VERSION;
	// Netscape 5.0 未満の場合、Flash未対応とする
	if (!isValidBrowser()) isValid = false;

// Windows IE の場合、Javascriptでは判断できないため、VBScriptにて判断
} else if (navigator.userAgent && navigator.userAgent.indexOf("MSIE")>=0 && (navigator.appVersion.indexOf("Win") != -1)) {
	document.write('<scr' + 'ipt type="text/vbscript"\> \n'); //FS hide this from IE4.5 Mac by splitting the tag
	document.write('on error resume next \n');
	document.write('isValid = ( IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash." & CONTENTS_VERSION)))\n');
	document.write('<\/scr' + 'ipt\> \n');
}


/***************************************************************************************************
 Flash表示タグ(Flash非対応の場合代替画像)の書き出し
***************************************************************************************************/
function writeFlash() {
	var parm   = [];
	var tagStr = "";

	for (i = 0 ; i < arguments.length ; i++) {
		parm[i] = arguments[i].split('=');
		parm[i][0] = trim(parm[i][0]);
		parm[i][1] = trim(parm[i][1]);

		//有効な属性名があれば属性値で変数化( 無効な名前は無視 )
		switch (parm[i][0]) {
			// Flash用パラメータ
			case '_swf'     : var _swf     = parm[i][1]; break; // FLASHのURL
			case '_bgcolor' : var _bgcolor = parm[i][1]; break; // 背景色
			case '_quality' : var _quality = parm[i][1]; break; // 画質
			case '_loop'    : var _loop    = parm[i][1]; break; // 繰り返し
			case '_wmode'   : var _wmode   = parm[i][1]; break; // 背景透明(WinIEのみ)
			case '_play'    : var _play    = parm[i][1]; break; // 自動再生
			case '_menu'    : var _menu    = parm[i][1]; break; // 右クリックメニュー
			case '_scale'   : var _scale   = parm[i][1]; break; // 幅高さが%の時の縦横比等
			case '_salign'  : var _salign  = parm[i][1]; break; // 表示領域内表示位置
			case '_height'  : var _height  = parm[i][1]; break; // ムービーの高さ
			case '_width'   : var _width   = parm[i][1]; break; // ムービーの幅
			case '_hspace'  : var _hspace  = parm[i][1]; break; // まわりの余白(水平方向)
			case '_vspace'  : var _vspace  = parm[i][1]; break; // まわりの余白(垂直方向)
			case '_align'   : var _align   = parm[i][1]; break; // 表示位置
			case '_class'   : var _class   = parm[i][1]; break; // クラス
			case '_id'      : var _id      = parm[i][1]; break; // ID名
			case '_name'    : var _name    = parm[i][1]; break; // ムービー名
			case '_style'   : var _style   = parm[i][1]; break; // スタイル
			case '_allows'  : var _allows  = parm[i][1]; break; // Scriptへのアクセス許可
			case '_declare' : var _declare = parm[i][1]; break; // 読み込まれるだけで実行しない

			// 代替画像用パラメータ
			case '_sub_img'         : var sub_img         = parm[i][1]; break; // 代替画像のURL
			case '_sub_img_width'   : var sub_img_width   = parm[i][1]; break; // 代替画像の幅
			case '_sub_img_height'  : var sub_img_height  = parm[i][1]; break; // 代替画像の高さ
			case '_sub_img_id'      : var sub_img_id      = parm[i][1]; break; // 代替画像のID
			case '_sub_img_class'   : var sub_img_class   = parm[i][1]; break; // 代替画像のクラス
			case '_sub_img_style'   : var sub_img_style   = parm[i][1]; break; // 代替画像のスタイル
			case '_sub_img_alt'     : var sub_img_alt     = parm[i][1]; break; // 代替画像のALT
			case '_sub_href'        : var sub_href        = parm[i][1]; break; // 代替画像のURL
			case '_sub_href_target' : var sub_href_target = parm[i][1]; break; // 代替画像のターゲット
			case '_sub_href_id'     : var sub_href_id     = parm[i][1]; break; // 代替画像のID
			case '_sub_href_class'  : var sub_href_class  = parm[i][1]; break; // 代替画像のクラス
			case '_sub_href_style'  : var sub_href_style  = parm[i][1]; break; // 代替画像のスタイル

			default:;
		}
	}

	// Flash対応の場合
	if (isValid) {
		// OBJECTタグ(開始)の生成
		tagStr += "<object classid='clsid:d27cdb6e-ae6d-11cf-96b8-444553540000' codebase='http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab'";
		if(!!_width)   tagStr += " width='"  + _width  + "'";
		if(!!_height)  tagStr += " height='" + _height + "'";
		if(!!_hspace)  tagStr += " hspace='" + _hspace + "'";
		if(!!_vspace)  tagStr += " vspace='" + _vspace + "'";
		if(!!_align)   tagStr += " align='"  + _align  + "'";
		if(!!_class)   tagStr += " class='"  + _class  + "'";
		if(!!_id)      tagStr += " id='"     + _id     + "'";
		if(!!_name)    tagStr += " name='"   + _name   + "'";
		if(!!_style)   tagStr += " style='"  + _style  + "'";
		if(!!_declare) tagStr += " " + _declare  ;
		tagStr += ">";

		// PARAMETERタグ(開始)の生成
		if(!!_swf)     tagStr += "<param name='movie'   value='" + _swf     + "'>";
		if(!!_quality) tagStr += "<param name='quality' value='" + _quality + "'>";
		if(!!_loop)    tagStr += "<param name='loop'    value='" + _loop    + "'>";
		if(!!_bgcolor) tagStr += "<param name='bgcolor' value='" + _bgcolor + "'>";
		if(!!_play)    tagStr += "<param name='play'    value='" + _play    + "'>";
		if(!!_menu)    tagStr += "<param name='menu'    value='" + _menu    + "'>";
		if(!!_scale)   tagStr += "<param name='scale'   value='" + _scale   + "'>";
		if(!!_salign)  tagStr += "<param name='salign'  value='" + _salign  + "'>";
		if(!!_wmode)   tagStr += "<param name='wmode'   value='" + _wmode   + "'>";
		if(!!_allows)  tagStr += "<param name='allowScriptAccess' value = '" + _allows + "'>";
		tagStr+="";

		// EMBEDタグの生成
		tagStr += "<embed pluginspage='http://www.macromedia.com/go/getflashplayer' type = 'application/x-shockwave-flash' ";
		if(!!_width)   tagStr += " width='"   + _width   + "'";
		if(!!_height)  tagStr += " height='"  + _height  + "'";
		if(!!_hspace)  tagStr += " hspace='"  + _hspace  + "'";
		if(!!_vspace)  tagStr += " vspace='"  + _vspace  + "'";
		if(!!_align)   tagStr += " align='"   + _align   + "'";
		if(!!_class)   tagStr += " class='"   + _class   + "'";
		if(!!_id)      tagStr += " id='"      + _id      + "'";
		if(!!_name)    tagStr += " name='"    + _name    + "'";
		if(!!_style)   tagStr += " style='"   + _style   + "'";
		if(!!_swf)     tagStr += " src='"     + _swf     + "'";
		if(!!_quality) tagStr += " quality='" + _quality + "'";
		if(!!_loop)    tagStr += " loop='"    + _loop    + "'";
		if(!!_bgcolor) tagStr += " bgcolor='" + _bgcolor + "'";
		if(!!_play)    tagStr += " play='"    + _play    + "'";
		if(!!_menu)    tagStr += " menu='"    + _menu    + "'";
		if(!!_scale)   tagStr += " scale='"   + _scale   + "'";
		if(!!_salign)  tagStr += " salign='"  + _salign  + "'";
		if(!!_allows)  tagStr += " allowScriptAccess='" + _allows  + "'";
		if(!!_declare) tagStr += " " + _declare  ;
		tagStr += "></embed>";

		// OBJECTタグ(終了)の生成
		tagStr += "</object>";

	// Flash非対応の場合
	} else {
		if(!!sub_img) {
			// IMAGEタグの生成
			tagStr += "<img src='" + sub_img + "'";
			if (!!sub_img_width)  tagStr += " width='"  + sub_img_width  + "'";
			if (!!sub_img_height) tagStr += " height='" + sub_img_height + "'";
			if (!!sub_img_id)     tagStr += " id='"     + sub_img_id     + "'";
			if (!!sub_img_class)  tagStr += " class='"  + sub_img_class  + "'";
			if (!!sub_img_style)  tagStr += " style='"  + sub_img_style  + "'";
			if (!!sub_img_alt)    tagStr += " alt='"    + sub_img_alt    + "'";
			tagStr += " />";

			// Aタグの生成
			if (!!sub_href) {
				var href_str = "";

				// 開始タグ
				href_str += "<a href='" + sub_href + "'";
				if (!!sub_href_target) href_str += " target='" + sub_href_target + "'";
				if (!!sub_href_id)     href_str += " id='"     + sub_href_id     + "'";
				if (!!sub_href_class)  href_str += " class='"  + sub_href_class  + "'";
				if (!!sub_href_style)  href_str += " style='"  + sub_href_style  + "'";
				href_str += ">";

				// 終了タグ
				tagStr = href_str + tagStr + "</a>";
			}
		}
	}

	//書き出し処理
	document.write(tagStr)
}


/***************************************************************************************************
 Plug-in Versionの取得
***************************************************************************************************/
function getPluginVer() {
	var version = 0;

	var plugin = (navigator.mimeTypes && navigator.mimeTypes["application/x-shockwave-flash"]) ? navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin : 0;
	if (plugin) {
		var a_version = navigator.plugins["Shockwave Flash"].description.split(" ");
		for (var i=0; i<a_version.length; i++) {
			if (!isNaN(parseInt(a_version[i]))) {
				version = a_version[i];
				break;
			}
		}
	}

	return version;
}


/***************************************************************************************************
 Flash対応ブラウザかどうかの判断
***************************************************************************************************/
function isValidBrowser() {
	var userAgent = navigator.userAgent.toLowerCase();
	var browser   = navigator.appName.toLowerCase();

	var netscape_version = "";

	if (userAgent.match(/netscape\/(\d+\.\d+)/)) {
		netscape_version = RegExp.$1;
	} else if (browser.match( /netscape/)) {
		if ( userAgent.match( /^mozilla[\/\s](\d+\.\d+)/ ) ) {
			netscape_version = RegExp.$1;
		}
	}

	if (eval(netscape_version.charAt(0)) < 5)
		return false;
	else
		return true;
}


/***************************************************************************************************
 TRIM
***************************************************************************************************/
function trim(src) {
	return src.replace(/^\s+|\s+$/g, "");
}
