// 未定義チェック
function isUndef( src ) {
	if ( typeof src == 'undefined' ) {
		return true;
	}

	return false;
}

// Flashの未定義チェック
function isNaN( src ) {
	if ( src == 'NaN' ) {
		return true;
	}

	return false;
}

// nowLeftNum/nowRightNum の存在チェック
function isNowXXXNum( url ) {
	if ( ( url.indexOf( 'nowLeftNum' ) != -1 ) & ( url.indexOf( 'nowRightNum' ) != -1 ) ) {
		return true;
	}

	return false;
}

// url に指定されたパラメータを分解
function getParmFromUrl( url ) {
	var parm = new Object();
	var tmp;
	tmp = url.split( '?' )[1];
	if ( isUndef( tmp ) ) {
		return undefined;
	}
	var cut = new Array();
	// パラメータを分解
	cut = tmp.split('&');
	if( cut.length == 0 ) {
		return undefined;
	}
	for ( var i = 0; i < cut.length; i++ ) {
		parm[(cut[i].split('='))[0]] = (cut[i].split('='))[1];
	}
	return parm;
}

// ダイナミックテキストに値を設定
function swf_setvar( swf_id, name, value ) {
	if ( Mac ) return;
	if ( IE ) {
		window[swf_id].SetVariable( name, value );
	}
	else if ( NN ) {
		window.document[ swf_id ].SetVariable( name, value );
	}
}


// ダイナミックテキストから値を取得
function swf_getvar( swf_id, name ) {
	if ( Mac ) return;
	if ( IE ) {
		return window[swf_id].GetVariable( name );
	}
	else if ( NN ) {
		return window.document[ swf_id ].GetVariable( name );
	}
}


// 指定フレーム番号を再生
function swf_goFrame( swf_id, target, frame ) {
	if ( Mac ) return;
	if ( IE ) {
		return window[swf_id].TGotoFrame( target, frame );
	}
	else if ( NN ) {
		return window.document[ swf_id ].TGotoFrame( target, frame );
	}
}


// 指定フレームラベルを再生
function swf_goLabel( swf_id, target, label ) {
	if ( Mac ) return;
	if ( IE ) {
		return window[swf_id].TGotoLabel( target, label );
	}
	else if ( NN ) {
		return window.document[ swf_id ].TGotoLabel( target, label );
	}
}

// フラッシュのオープン（レギュラーサイズ）
function more_chart( nowLeftNum, nowRightNum, url ) {
//	alert( 'more_chart() nowLeftNum[' + nowLeftNum + '] nowRightNum[' + nowRightNum + ']' );
	var query = '';
	var sw = 888;
	var sh = 640;
	var loc = ( isUndef( url ) ? location.href : url );
	var parm = getParmFromUrl( loc );
	if( isNaN( nowLeftNum  ) ) { nowLeftNum  = 'nodata'; }
	if( isNaN( nowRightNum ) ) { nowRightNum = 'nodata'; }
	query = 'nowLeftNum=' + nowLeftNum + '&nowRightNum=' + nowRightNum;
	if ( ! isUndef( parm ) ) {
		for ( var i in parm ) {
			switch( i ) {
			  case "nowLeftNum":
			  case "nowRightNum":
				// 既存のパラメータは読み捨てる
				break;
			  default:
				query += '&' + i + '=' + parm[i];
			}
		}
	}
	query = loc.split('?')[0] + '?' + query;
	window.open( query, '_blank', 'height=' + sh +',width=' + sw );

	return false;
}

// フラッシュオブジェクトの書き出し
function open_swf( swf, nowLeftNum, nowRightNum, swf_w, swf_h ) {
//	alert( 'open_swf() nowLeftNum[' + nowLeftNum + '] nowRightNum[' + nowRightNum + ']' );
	var parm;
	parm = getParmFromUrl( location.href );
	var nl = -1;
	var nr = -1;
	var arg = '';
	var sh = 640;
	var sw = 888;
	var swf_var;
	if ( ! isUndef( swf_w ) ) { sw = swf_w; }
	if ( ! isUndef( swf_h ) ) { sh = swf_h; }

	// query string をチェック
	if ( ! isUndef( parm ) ) {
		// 指定があれば読み取る
		nl = isUndef( parm['nowLeftNum'] )  ? -1 : parm['nowLeftNum'];
		nr = isUndef( parm['nowRightNum'] ) ? -1 : parm['nowRightNum'];
//	alert( 'uri isUndef nowLeftNum[' + nl + '] nowRightNum[' + nr + ']' );

	}

	// 引数を確認
	// nowLeftNum が指定されていればこっちを優先して設定
	if ( ! isUndef( nowLeftNum  ) & nowLeftNum  != -1 ) { nl = nowLeftNum ; }
	// nowRightNum が指定されていればこっちを優先して設定
	if ( ! isUndef( nowRightNum ) & nowRightNum != -1 ) { nr = nowRightNum; }
//	alert( 'parm isUndef nowLeftNum[' + nl + '] nowRightNum[' + nr + ']' );

	// Flashのnull文字をチェック
	nl = isNaN( nl ) ? -1 : nl;
	nr = isNaN( nr ) ? -1 : nr;
//	alert( 'parm isNaN nowLeftNum[' + nl + '] nowRightNum[' + nr + ']' );

	nl = nl - 1;
	nr = nr - 1;

	// AC_FL_RunContent へ値を設定
	if ( nl <= -1 & nr <= -1 ) {
		// 指定がないとき
		swf_var = 'nowRightNum=nodata&nowLeftNum=nodata';
	}
	else if ( nl <= -1 & nr > -1 ) {
		// 右だけ
		swf_var = 'nowRightNum='+nr+'&nowLeftNum=nodata';
	}
	else if ( nl > -1 & nr <= -1 ) {
		// 左だけ
		swf_var = 'nowRightNum=nodata&nowLeftNum='+nl;
	}
	else {
		// 両方
		swf_var = 'nowRightNum='+nr+'&nowLeftNum='+nl;
	}
	AC_FL_RunContent( 'codebase','http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0','width',sw,'height',sh,'src',swf,'quality','high','pluginspage','http://www.macromedia.com/go/getflashplayer','movie',swf,'FlashVars',swf_var );

	return false;
}


// for object tag  ///////////////////////////////////////////////////////////

//v1.0
//Copyright 2006 Adobe Systems, Inc. All rights reserved.
function AC_AddExtension(src, ext)
{
  if (src.indexOf('?') != -1)
    return src.replace(/\?/, ext+'?'); 
  else
    return src + ext;
}

function AC_Generateobj(objAttrs, params, embedAttrs) 
{ 
  var str = '<object ';
  for (var i in objAttrs)
    str += i + '="' + objAttrs[i] + '" ';
  str += '>';
  for (var i in params) {
    str += '<param name="' + i + '" value="' + params[i] + '" /> ';
//    alert( '<param name="' + i + '" value="' + params[i] + '" /> ');
  }
  str += '<embed ';
  for (var i in embedAttrs)
    str += i + '="' + embedAttrs[i] + '" ';
  str += ' ></embed></object>';

  document.write(str);
}

function AC_FL_RunContent(){
  var ret = 
    AC_GetArgs
    (  arguments, ".swf", "movie", "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
	, "application/x-shockwave-flash"
    );
  AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}

function AC_SW_RunContent(){
  var ret = 
    AC_GetArgs
    (  arguments, ".dcr", "src", "clsid:166B1BCA-3F9C-11CF-8075-444553540000"
	, null
    );
  AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}

function AC_GetArgs(args, ext, srcParamName, classid, mimeType){
  var ret = new Object();
  ret.embedAttrs = new Object();
  ret.params = new Object();
  ret.objAttrs = new Object();
  for (var i=0; i < args.length; i=i+2){
    var currArg = args[i].toLowerCase();    

    switch (currArg){	
	case "classid":
	break;
	case "pluginspage":
	ret.embedAttrs[args[i]] = args[i+1];
	break;
	case "src":
	case "movie":	
	args[i+1] = AC_AddExtension(args[i+1], ext);
	ret.embedAttrs["src"] = args[i+1];
	ret.params[srcParamName] = args[i+1];
	break;
	case "onafterupdate":
	case "onbeforeupdate":
	case "onblur":
	case "oncellchange":
	case "onclick":
	case "ondblClick":
	case "ondrag":
	case "ondragend":
	case "ondragenter":
	case "ondragleave":
	case "ondragover":
	case "ondrop":
	case "onfinish":
	case "onfocus":
	case "onhelp":
	case "onmousedown":
	case "onmouseup":
	case "onmouseover":
	case "onmousemove":
	case "onmouseout":
	case "onkeypress":
	case "onkeydown":
	case "onkeyup":
	case "onload":
	case "onlosecapture":
	case "onpropertychange":
	case "onreadystatechange":
	case "onrowsdelete":
	case "onrowenter":
	case "onrowexit":
	case "onrowsinserted":
	case "onstart":
	case "onscroll":
	case "onbeforeeditfocus":
	case "onactivate":
	case "onbeforedeactivate":
	case "ondeactivate":
	case "type":
	case "codebase":
	ret.objAttrs[args[i]] = args[i+1];
	break;
	case "width":
	case "height":
	case "align":
	case "vspace": 
	case "hspace":
	case "class":
	case "title":
	case "accesskey":
	case "name":
	case "id":
	case "tabindex":
	ret.embedAttrs[args[i]] = ret.objAttrs[args[i]] = args[i+1];
	break;
	default:
	ret.embedAttrs[args[i]] = ret.params[args[i]] = args[i+1];
    }
  }
  ret.objAttrs["classid"] = classid;
  if (mimeType) ret.embedAttrs["type"] = mimeType;
  return ret;
}

