/*
 * jQuery swfObject_1.0
 * 2010/02/25 j.ao
 * ao.eleven@gmail.com
 * @param {Object}
 * f: swfファイルURL
 * i: swfのID
 * w: ファイルサイズ 縦
 * h: ファイルサイズ 横
 * v: ファイルバージョン
 * c: 背景色の有無 #FFF-#000 or false
 * b:背景画像URL
 * msg: 古いバージョン検出時
 */

jQuery.fn.extend({
	swfObject : function(options){
		val = jQuery.extend({
		  f : './img/max_movie.swf',
		  i : 'movie',
		  w : '439',
		  h : '247',
		  v : '8',
		  c : false,
		  b : 'url',
		  msg : '最新のフラッシュプレーヤーを<br>ご利用ください。'
		}, options);
	var flashTag = swfObject(val.f, val.i, val.w, val.h, val.v, val.c, val.b, val.msg);
		if (flashTag) {
			jQuery(this).html(flashTag);
			jQuery('div.swfInst').fadeTo(50,0.5);
		}

	//フラッシュプレイヤー有無の検出
	function swfObject(swfFile, fileId, wSize, hSize, varsion, bgColor, bgImg, Text){
		var Flash = function(){
			var o = {installed:0, version:[]}, description, oActiveX, nMajor, nMinor;
			if (navigator.plugins && typeof navigator.plugins['Shockwave Flash'] == 'object') {
				o.pluginType = 'npapi';
				description  = navigator.plugins['Shockwave Flash'].description;
				if (typeof description != 'undefined') {
					description = description.replace(/^.*\s+(\S+\s+\S+$)/, '$1');
					nMajor      = parseInt(description.replace(/^(.*)\..*$/, '$1'), 10);
					nMinor      = /r/.test(description) ? parseInt(description.replace(/^.*r(.*)$/, '$1'), 10) : 0;
					o.version   = [nMajor, nMinor];
					o.installed = 1;
				}
			}
			else if (window.ActiveXObject) {
					o.pluginType = 'ax';
					try {
						oActiveX = new ActiveXObject('ShockwaveFlash.ShockwaveFlash.7');
					} 
					catch (e) {
						try {
							oActiveX    = new ActiveXObject('ShockwaveFlash.ShockwaveFlash.6');
							o.version   = [6, 0];
							o.installed = 1;
							oActiveX.AllowScriptAccess = 'always';
						}
						catch (e) {
							if (o.version[0] == 6) {
								o.installed = 1;
								return;
							}
						}
						try {
							oActiveX = new ActiveXObject('ShockwaveFlash.ShockwaveFlash');
						}
						catch (e) {
						}
					}
					if (typeof oActiveX == 'object') {
						description = oActiveX.GetVariable('$version');
						if (typeof description != "undefined") {
							description = description.replace(/^\S+\s+(.*)$/, '$1').split(',');
							o.version   = [parseInt(description[0], 10), parseInt(description[2], 10)];
							o.installed = 1;
						}
					}
				}
			return o;
		}();
		//バックグラウンドカラーの有無
		var objBg, embBg;
			if (bgColor) {
				objBg = '<param name="bgcolor" value="' + bgColor + '">';
				embBg = 'bgcolor="' + bgColor + '"';
			}
			else {
				objBg = '<param name="bgcolor" value=""><param name="wmode" value="transparent">';
				embBg = 'bgcolor="" wmode="transparent" ';
			}
		//フラッシュのタグ書き出し
		var okTag = '<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" ';
		    okTag = okTag + 'codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=' + varsion + ',0,0,0" ';
		    okTag = okTag + 'width="' + wSize + '" height="' + hSize + '" id="' + fileId + '" align="middle">';
		    okTag = okTag + '<param name="allowScriptAccess" value="sameDomain">';
		    okTag = okTag + '<param name="allowFullScreen" value="false">';
		    okTag = okTag + '<param name="movie" value="' + swfFile + '">';
		    okTag = okTag + '<param name="quality" value="high">';
		    okTag = okTag + '<param name="salign" value="lt">';
		    okTag = okTag + '<param name="base" value=".">';
		    okTag = okTag + objBg;
		    okTag = okTag + '<embed src="' + swfFile + '" ' + 'quality="high" ' + embBg + 'name="' + fileId + '"';
		    okTag = okTag + 'width="' + wSize + '"' + 'height="' + hSize + '"' + 'base="." ' + 'align="middle" ' + 'salign="lt" ';
		    okTag = okTag + 'allowFullScreen="false" ';
		    okTag = okTag + 'type="application/x-shockwave-flash" ';
		    okTag = okTag + 'pluginspage="http://www.macromedia.com/go/getflashplayer">';
		//バージョンが古い時の代替えタグ書き出し
		var ngTag = '<div style="width:' + wSize + 'px;height:' + hSize + 'px;overflow:hidden;position:relative;background-color:#fff;">';
		    ngTag = ngTag + '<div ';
		    ngTag = ngTag + 'class="swfInst" ';
		    ngTag = ngTag + 'style="width:100%;height:100%;background-color:#ccc;background-image:url(' + bgImg + ');">';
		    ngTag = ngTag + '</div>';
		    ngTag = ngTag + '<a ';
		    ngTag = ngTag + 'href="http://www.adobe.com/jp/products/flashplayer/" ';
		    ngTag = ngTag + 'target="blank" ';
		    ngTag = ngTag + 'style="display:block;font-size:13px;font-weight:bold;position:absolute;top:5px;left:5px;line-height:1.2em;color:#00a;text-decoration:underline;">';
		    ngTag = ngTag + Text;
		    ngTag = ngTag + '</a>';
		    ngTag = ngTag + '</div>';
		if (Flash.installed) {
			var htmlTag =  (varsion <= Flash.version[0]) ? okTag: ngTag;
            return htmlTag;
		}
		else{
			return false;
		}
	}
	}
});

