/**********************************************************************
project name : xxxxxxxxxxxxxx [ flashcheck.js ]

00.00.00
***********************************************************************
static variable  : ST_FL_XXXXXXX
global variable  : gFl_xxxxxx
functions        : flash_xxxxxx
**********************************************************************/


var gFl_intMode = 0;//1:debug mode 0:display mode


//static variables for browser detection check and plugin detection check
var ST_FL_PARAMERROR   = -3;//parametor error
var ST_FL_BROWSERERROR = -2;//browser error
var ST_FL_PLUGINERROR  = -1;//no Plugins


//static variables for error detection
var ST_FL_SELFREQUESTED = "(任意)";
var ST_FL_REQUIRED      = "(必須)";
var ST_FL_ERROREXP      = "下記の属性値を入力してください。\n";


/* ====================================================================
 Name        : flash_setHTML()
 Description : Flash object,embedタグ生成
 Parameter   : オブジェクト
 Return      : 0:処理終了報告
==================================================================== */
function  flash_setHTML(vastrParam){
	//declare iterator for all the statement in this function
	var i = 0;
	
	//get browser check
	var intNav = flash_checkBrowser();
	
	if (intNav == 0){
		return ST_FL_BROWSERERROR;
	}
	
	//get plugin check
	var intPlg = flash_checkPlugin(vastrParam['FlVersion'],intNav);

	if (intPlg == 0){
		return ST_FL_PLUGINERROR;
	}
	
	//generate param error status
	var strError = "";
	var strErrorStatus = flash_errorStatus(vastrParam);
	
	if (strErrorStatus != ""){
		strError = ST_FL_ERROREXP + strErrorStatus;
		alert(strError);
		return ST_FL_PARAMERROR;
	}
	
	//generate Flash embeded HTML
	var strHTML    = "";
	var strExitTag = "";
	
	strHTML += '<object ';
	strHTML += 'classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" ';
	strHTML += 'codebase="' + vastrParam['codebase'] + '" ';
	strHTML += 'width="' + vastrParam['width'] + '" ';
	strHTML += 'height="' + vastrParam['height'] + '" ';
	strHTML += 'id="' + vastrParam['id'] + '" ';
	strHTML += 'align="' + vastrParam['height'] + '"';
	strHTML += '>\n';
	
	if (vastrParam['typeHTML'] == 1){ strExitTag = " /"; };
	
	for (strTemp in vastrParam){
		if (strTemp != "id" && strTemp !="align" && strTemp != "codebase" && strTemp != "width" && strTemp != "height" && strTemp != "FlVersion"){
			strHTML += '<param name="' + strTemp + '" value="' + vastrParam[strTemp] + '"' + strExitTag + '>\n';
		}
	}
	
	strHTML += '<embed';
	
	for (strTemp in vastrParam){
		if (strTemp != "movie" && strTemp != "id" && strTemp != "codebase" && strTemp != "FlVersion"){
			strHTML +=' '+ strTemp + '="' +  vastrParam[strTemp] + '"';
		}
	}
	
	strHTML += ' src="'+ vastrParam['movie'] +'" ';
	strHTML += 'name="'+ vastrParam['id'] +'" ';
	strHTML += 'pluginspage="http://www.macromedia.com/go/getflashplayer" ';
	strHTML += 'type="application/x-shockwave-flash"';
	strHTML += '>';
	strHTML += '</embed>';
	strHTML += '\n';
	strHTML += '</object>';
	
	//set up debug detection
	if (gFl_intMode == 1){ alert(strHTML); } 
	else                 { document.write(strHTML); }
	
	return 0;
}

/* ====================================================================
 Name        : flash_errorStatus()
 Description : Flash object,embedタグのパラメーターエラーチェック
 Parameter   : なし
 Return      : "":空もしくはパラメーターの属性文字列
==================================================================== */
function flash_errorStatus(vastrError){
	var astrAttri = new Array('movie','id','width','height','codebase','typeHTML','FlVersion');
	var strFlg    = "";
	var intIndex  = 0;
	
	//get error check
	for (strTemp in vastrError){
		if (vastrError[strTemp] == ""){
			strFlg += '・' + i;
			if (!astrAttri[intIndex]){ strFlg += ST_FL_SELFREQUESTED; }
			else                     { strFlg += ST_FL_REQUIRED; }
			strFlg += '\n';
		}
		intIndex++;
	}
	return strFlg;
}

/* ====================================================================
 Name        : flash_checkBrowser()
 Description : ブラウザー判別
 Parameter   : なし
 Return      : 0:"navigator.plugins"無し 1:"navigator.plugins"有り 2:VB
==================================================================== */
function flash_checkBrowser(){
	
	var strAge = navigator.userAgent;
	
	//get OS check
	var strOS;
	if ( strAge.indexOf("Win") >= 0 )  { strOS = "Win"; } 
	else if(strAge.indexOf("Mac") >= 0){ strOS = "Mac"; }
	
	//get browser check
	var strNavType = "";
	var intNavVer  = "";
	
	//this one is to check availability for "navigator.plugins"
	var intRet = 1;//1:Browser has plugins 2:VB
	
	if (strAge.indexOf( "MSIE", 0 ) != -1){
		intNavVer = parseInt((strAge.split("MSIE"))[1].substr(1 , 3));
		if (strOS == "Win" && intNavVer >= 4){
			intRet = 2;
		} else if (strOS == "Win" && intNavVer < 4){
			intRet = 0;
		} else if (strOS == "Mac" && intNavVer < 5){
			intRet = 0;
		}
	} else { intRet = 1; }
	
	return intRet;
}

/* ====================================================================
 Name        : flash_checkPlugin()
 Description : プラグイン判別
 Parameter   : Flash Playerのバージョン、ブラウザー判別参照
 Return      : 0:プラグイン無し 1:プラグイン有り
==================================================================== */
function flash_checkPlugin(vintNum,vintNav){
	var intRet = 0;
	var i      = 0;

	if (vintNav == 1){
		for (i = 0; i < navigator.plugins.length; i++){
			var strPLsch = navigator.plugins[i].description;
			if (strPLsch.indexOf("Flash ") >= 0){
				//var intPLver = parseInt(strPLsch.substr(strPLsch.indexOf("Flash ") + 6 , 1));
				var intPLver = strPLsch.substr(strPLsch.indexOf("Flash ") + 6);
        intPLver = parseInt(intPLver.substr(0,intPLver.indexOf(".")));
        
				if (intPLver >= vintNum){
					intRet = 1;
				}
				break;
			}
		}
	} else if (vintNav == 2){
    eval("try {intRet = new ActiveXObject('ShockwaveFlash.ShockwaveFlash')} catch(e) {error = e};");
    if (intRet) {
        var intPLverwin=new ActiveXObject("ShockwaveFlash.ShockwaveFlash").FlashVersion();
      intPLverwin=Math.floor(intPLverwin / 0x10000);
    }

    ////		var strHTML    = "";
    ////		strHTML += '<SCRIPT LANGUAGE="VB';
    ////		strHTML += 'Script"\>\n';
    ////		strHTML += 'on error resume next \n';
    ////		strHTML += 'Dim intPLverwin \n';
    ////		strHTML += 'intPLverwin=Left(Hex(Int(CreateObject("ShockwaveFlash.ShockwaveFlash").FlashVersion)),1)\n';
    ////		strHTML += '</S';
    ////		strHTML += 'CRIPT\> \n';
    ////		document.write(strHTML);
    ////		//strHTML += 'Msgbox intPLverwin \n';

		if (intPLverwin >= vintNum){
			intRet = 1;
		}
	}
	return intRet;
}



/*********************************************************************/
