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]);

		if ((parm[i][0] == "_swf") && (parm[i].length > 2) || (parm[i][0] == "_vars") && (parm[i].length > 2)) {
			for (j=2; j<parm[i].length; j++) {
				parm[i][1] += "=" + parm[i][j];
			}

			var d_now = new Date();
			parm[i][1] += "&" + d_now.getTime();
		}

		//有効な属性名があれば属性値で変数化( 無効な名前は無視 )
		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='https://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='https://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(!!_wmode)   tagStr += " wmode='"   + _wmode   + "'";
		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>";
			}
		} else {
			tagStr = '<a href="http://www.adobe.com/shockwave/download/index.cgi?Lang=Japanese&P1_Prod_Version=ShockwaveFlash"><img src="img/top_photo_noplayer.jpg" width="561" height="326" border="0" alt="フォトアルバム" /></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, "");
}


function isWinInvalid() {
	var jb = new JudgeBrowser();

	if ((jb.os == "mac") && jb.ie) {
		return true;
	} else {
		return false;
	}
}


function JudgeBrowser() {
	this.ua = navigator.userAgent.toLowerCase ();
	this.ap = navigator.appName.toLowerCase ()

	// OSの取得
	this.os = this.ua.match(/(win|mac|x11)/)?RegExp.$1:'other';

	// Macバージョンの取得 (10以降かどうか）
	// ※ただしMacIEが使用された場合、取得不可
	this.macver = this.ua.match(/mac/)?this.ua.match(/os\sx/)?'x':'older':false;

	// ブラウザの種類（該当するブラウザのバージョンが格納される）
	this.ie       = this.ua.match(/opera[\/\s](\d+\.\d+)/)?false:this.ua.match(/msie[\/\s](\d+\.\d+);/)?RegExp.$1:false;
	this.firefox  = this.ua.match(/firefox\/(\d+\.\d+)/)?RegExp.$1:false;
	this.opera    = this.ua.match(/opera[\/\s](\d+\.\d+)/)?RegExp.$1:false;
	this.safari   = this.ua.match(/safari\/(\d+\.\d+)/)?RegExp.$1:false;
	this.mozilla  = (this.ua.match(/^mozilla[\/\s](\d+\.\d+)/)&&this.ua.match(/gecko/)&&!this.ua.match(/netscape/))?this.ua.match(/^mozilla[\/\s](\d+\.\d+)/)?RegExp.$1:false:false;
	this.netscape = this.ua.match(/netscape\/(\d+\.\d+)/)?RegExp.$1:this.ap.match(/netscape/)?this.ua.match(/^mozilla[\/\s](\d+\.\d+)/)?RegExp.$1:false:false;
}

