/*
	<div id="swfContents">
		<noscript>
			<img src="..."/>
		</noscript>
		<script src="SwfElement.js"></script>
		<script src="densaSwft.js"></script>
	</div>
*/

/* 
var sampleArg = {
	requiredVersion : "5.0.0",
	element : {
		data   : "./image/densa.swf",	//SWFファイル
		width  : "570",	//横幅、省略時は代替imgタグから取得する予定
		height : "220",	//高さ、省略時は代替imgタグから取得する予定
		id     : "densa"	//id、JavaScriptと連動しなければたぶんいらない
	},
	param : {
		bgcolor : "#ffffff",	//背景色
		quality : "high",
		scale   : "noscale",
		salign  : "lt",
		menu    : "false",
		allowScriptAccess : "sameDomain",
		flashvars :{}
	}
};
*/



function SwfElement(arg, id) {

	if (isVersionOk(arg.requiredVersion)) {
		html = buildTag(arg);
		write(html, id);
	}

	/*
		バージョン大丈夫？
	*/
	function isVersionOk(verStr){
		var requiredVer = verStr ? verStr.split(".") : [0,0,0];
		var currentVer  = getSwfVersion();
		for (var i=0; i<requiredVer.length; i++) {
			if (requiredVer[i]*1 > currentVer[i]*1) return false;
		}
		return true;
	}

	/*
		FlashPlayerのバージョン
	*/
	function getSwfVersion(){
		var version = [0,0,0];
		var player = null;
		if(navigator.plugins && navigator.mimeTypes.length){
			var plugin = navigator.plugins["Shockwave Flash"];
			if(plugin && plugin.description){
				version = plugin.description.replace(/([a-zA-Z]|\s)+/,"").replace(/(\s+r|\s+b[0-9]+)/,".").split(".");
			}
		}
		else{
			var name = "ShockwaveFlash.ShockwaveFlash";
			try{
				player = new ActiveXObject(name + ".7");
			}
			catch(e){
				try{
					player = new ActiveXObject(name + ".6");
					version = [6,0,21];
					player.AllowScriptAccess="always";
				}
				catch(e){
					if(version[0]==6) return version;
				}
				try{
					player = new ActiveXObject(name);
				}
				catch(e){
					//
				}
			}
			if(player != null){
				version = player.GetVariable("$version").split(" ")[1].split(",");
			}
		}
		return version;
	}

	/*
		objectタグとその内部のparamタグを生成
	*/
	function buildTag(arg) {
		var objTagStr = "<object";
		arg.element.type = "application/x-shockwave-flash";	//type属性
		for (var name in arg.element) {
			objTagStr += " " + name + "=\""+arg.element[name] + "\"";
		}
		objTagStr += ">";
		arg.param.movie = arg.element.data;
		for (var name in arg.param) {
			if (name == "flashvars") {
				//変数渡す場合の処理
			}
			else {
				objTagStr += "<param name=\"" + name + "\" value=\"" + arg.param[name] + "\"/>";
			}
		}
		objTagStr += "</object>";
		return objTagStr;
	}

	/*
		HTMLへのタグの埋め込み
	*/
	function write(objTag, id) {
		var div = getDiv(id);
		if (div) div.innerHTML = objTag;
	}

	function getDiv(id) {
		var div = document.getElementById(id);
		if (!div) {
			var tags = document.getElementsByTagName("script");
			var tag = tags[tags.length - 1];
			div = tag.parentNode;
			if (/body|head/i.test(div.tagName)) div = null;
		}
		return div;
	}

}



