/*
 *    Copyright 2004-2006, Boostvision Corporation, All rights reserved.
 */
//-------------------------------------------------------------------------------------------------
// FILE: 20060508_01 common.js Javascript ライブラリ
//
//	20060508_01 新規
//	20061019_01 checkall/uncheckall/checkingall/checklist追加
//	20061027_01 動画コンポーネント設定時、スタイルシート設定プロパティのwidthを表示高、3/4をheightとする：SetMoviesizeを追加。
//	20061105_01 FormPropertiesとForm1の優先順位変更
//	20061107_01 FormPropertiesとForm1の優先順位変更2
//	20061108_01 新スタイルシート設定対応：updateDrawbox():drawarea box更新
//	20061124_02 入出力フォーム対応：isDisplayNarrwsel()追加
//	20061129 コンテンツメニュー入力画面：urlで「:」が入らない
//	20061222_01 動的コンポーネント：テーブル内：同一マスタ参照を可能とする。
//	20070107_01 ウインドーオープン：fullscreenモード追加。
//	20070110_04 コンポーネント設定Windowからスタイルシート設定Windowのプロパティを変更し、プロパティ更新処理を起動する。
//	20070201_01 window.openタイトル。IE7対策。
//	20070205_01 Updaterany追加。
//	20070208_01_w Closeupplayer/getBrowserWidth/getBrowserHeight追加。
//	20070214_01_w 動画再生コンポーネント：loop再生機能をobjectタグに頼らずにCMS制御で実現する：LoopMovie()追加。
//	20070214_01_w 動画再生コンポーネント：loop再生機能をobjectタグに頼らずにCMS制御で実現する。RestartMovie()追加。
//	20070214_05_w window.optnタイトル。IE7対策２．
//	20070216_03_w IE7対策。サブウインドー最善面。
//	20070217_02_w デジタルサイン向け：起動時：F11を催促する。
//	20070220_08_w イメージボタン：動画拡大：ボタン幅指定追加。
//	20070221_07_w 連続動画再生：レコード編集用フィールド追加。ajax_realUpdater追加。
//	20070223_03_w ajaxUpdaterany()：チェック追加。
//	20070303_01_w ajaxContentsUpdate()：追加。
//	20070305_02_w コンテンツメニュー一覧・詳細入力画面非ポップアップ化。
//	20070313_02_w リソースチェック追加。
//	20070322_03_w 動的QRコードコンポーネント：ajaxUpdaterany()：radiobutton/checkbox識別機能追加。
//	20070322_03_w 動的QRコードコンポーネント：OpenCenterWindow()：追加。
//	20070330_01_w ジオコード コンポーネント公開クラス対応。
//	20070406_01_w 位置情報定義：フィールドタイプ「位置情報」追加：keycheck種に"locationgps"を追加。
//	              緯度・経度関連関数追加。
//	20070407_03_w ジオコーダー：追加。
//	20070419_01_w++ Webコンポーネント設定画面：urlで「_」が入らない。
//	20070508_01_w テンプレート編集ダイアログにコンテンツタイプを渡す。
//	20070514_02_w+Moth.floor
//	20070517_02_w 関数名称変更：-openWindow+OpenWindow。
//	20070526_01_w パラメータ：cms_field_edit.php：viewonly追加。
//	20070618_01_w コンポーネント設定域高さの自動調整。
//	20070719_01_w【公開画面入力フォームからの動画アップロード】アップロード中状態表示。
//	20070811_01_w【シーン作成】追加。
//	20070811_01_w【タイムコード】汎用関数追加。
//	20070805_02_w【認証：「公開制限」⇒「閲覧権限」に変更】デフォルト値設定に個々に定義を追加。
//	20070814_01_w【スタイルシート設定：設定域伸縮】間延びしてしまう。
//	20070904_01_w【シーン作成】OUT点指定ボタン:テンプレート読み込み時に移動。
//	20070904_03_w【シーン作成】シーン追加。
//	20070904_04_w【シーン作成】シーン削除。
//	20070904_05_w【シーン作成】テーブル表示入力フォームの表示制御。
//	20070904_06_w【シーン更新】追加・削除後の再描画。
//	20070904_02_w【シーン作成】ショートカットキーの利きがいまいち：ショートカットキーの時はreturn false;を追加。
//	20070906_03_w【ajax状態表示】機能追加。
//	20070904_09_w【シーン作成】sceneSelection--;//こうしないとプレビュー終了時の現在ライン表示が嘘になり、削除で違う行を削除してしまう。20070904_09_w--sceneSelection	=	0;
//	20070904_10_w【シーン作成】動画テーブルID/レコードIDをシーンマスタレコードに登録。
//	20070908_01_w【簡易設定】bookmarkコンポーネント定義時、余計な空白行が入る。
//	20070910_01_w【シーン再生】SWF初期表示：先頭タイトル表示抑制。
//	20070912_10_w【レコード選択画面】動画urlクリックでスクリプトエラー。
//	20070912_11_w【シーン作成】table:通常シーン作成時、プレビュー開始時、入力フォーム表示をoffる。
//	20070918_01_w【シーン作成】プレビュー開始：シーン選択時：動的動画再生に「□自動的に再生を始める」にチェックが入っていないと再生が始まらない。
//	20070919_02_w【シーン作成】新規シーンのin点を現在tcにする。
//	20070919_03_w【シーン作成】追加・削除後の再描画：新規に作成したレコードにフォーカスするが動画選択時も同様に新規シーンにフォーカスする。
//	20070919_04_w【シーン作成】テーブル表示入力フォームを常に表示する。
//	20070919_11_w【シーン作成】TAB連打でフォーカスがVMP中に残ってしまう。
//	20070925_10_w【シーン作成・再生/DIVの親子関係】スタイル：display制御ではコンポーネント表示位置がずれるためvisibility制御に変更。
//	20070927_01_w【FlowPlayer】http://www.boostvision.co.jp/ でページ半分表示しない。FlowPlayerを最後にロードすればOK。
//	20070927_04_w【FlowPlayer】loop再生のためのタグを<form>でなくSESSIONで行う。
//	20071004_01_w【スタイルシート設定】フリーズ対策。
//	20071006_01_w【prototype.js】v1.6対応。
//	20071007_03_w【スタイルシート設定：コンポーネント設定画面ロード】選択中Boxの設定コンパネはリロードしない。
//	20071009_01_w【シーン作成】Flash同期：最後のシーンのdurationを定義できない：最後のシーンのみ【OUT点】アイコンを表示する。
//	20071009_02_w【シーン作成】プレビューステータスを表示。
//	20071009_03_w【シーン作成】開始時：非プレビューモード。
//	20071010_01_w【シーン作成】シーン削除：削除後のゴミが残る。
//	20071010_04_w【シーン作成】+/-1Frame：動画の尺が長いとうまくない。
//	20071010_06_w【シーン作成】操作系のボタンの使用制限を解除。
//	20071011_01_w【シーン作成】out点指定時：pause状態にする。
//	20071021_10_w【シーン作成】デフォルトを新規シーン編集モードにする：in点/out点入力フォーム追加。
//	20071021_11_w【シーン作成】デフォルトを新規シーン編集モードにする：追加ボタンは削除しモード表示切替に。
//	20071021_12_w【シーン作成】デフォルトを新規シーン編集モードにする：削除ボタンは更新時のみ表示。
//	20071021_13_w【シーン作成】デフォルトを新規シーン編集モードにする：新規作成モード追加。
//	20071021_14_w【シーン作成】デフォルトを新規シーン編集モードにする：新規作成モード時はテーブル表示は隠す。
//	20071021_15_w【シーン作成】デフォルトを新規シーン編集モードにする：新規作成モード時はout点指定で新規レコードを作成する。
//	20071024_01_w【ジオコード：複数表示】機能拡張。
//	20071030_01_w【テーブル表示機能改善】テキストエリアtag挿入：テンプレートタイプによる編集時テンプレート挿入。
//	20071119_03_w【シーン作成】ceneDefaultTLID->sceneDefaultTLID.
//	20071207_02_w【シーン作成ベースタイムコード】Cueup処理追加。
//	20071207_03_w【シーン作成ベースタイムコード】Toptc定義追加。
//	20071207_04_w【シーン作成ベースタイムコード】シーン作成コンポーネント：全てのTCをsceneToptcを加算したものにする。
//	20071207_05_w【シーン作成ベースタイムコード】playerとのposition出し入れをsceneToptc対応に。
//	20071207_06_w【シーン作成ベースタイムコード】CUEUP値入力フィールドにフォーカスがあるときはpreroll&playをしない。
//	20071207_07_w【シーン作成ベースタイムコード】シーン登録依頼時：TCフィールドからToptcを引く。
//	20071207_08_w【シーン作成ベースタイムコード】テーブル表示からの【登録】ボタンは全体イベントなのでToptcをサーバに渡す。
//	20071213_01_w【シーン再生】再生開始をPlayer状態から取得。
//	20071228_01_w【コンテンツメニュー一覧】window自動調整。
//	20080127_01_w【ShowFormCondition追加】
//	20080207_01_w【シーン作成:新規シーン作成】シーン数０の時新規シーンが作成できない。
//	20080208_10_w【シーン再生】ジオコードが連動しない。
//	20080208_20_w【動的QRコード：urlお知らせメール】詳細リンクパラメータが付かない。
//	20080211_01_w【ジオコード:シーン再生】初期表示時のコードが空の場合、シーン再生時イベントでGBrowserIsCompatibleオブジェクトエラーが出てしまう。
//	20080227_02_w【mashup：geocode】ターゲット指定追加。
//	20080228_01_w【リソースチェック】非同期版追加。
//	20080302_10_w【シーン再生】同一ページにgeocodingが存在するとJSランタイムエラーが出る。
//	20080303_01_w【ジオコード：吹き出しからの詳細リンク】吹き出しからの詳細リンク機能追加。
//	20080405_01_w【静的url対応】Excluding/Including.
//	20080505_10_w【公開画面からの公開制限値変更】テンプレート編集画面サイズ拡張。
//	20080505_03_w【curser:pointer】
//	20080513_01_w【複数行テキスト文字数チェック】文字チェックからhtmlタグは除外。
//	20080514_10_w【このページの先頭へ】を追加。
//	20080607_10_w【マスタ参照】axRefM()追加。
//	20080805_10_w【集計機能:計算】計算式テンプレート編集画面起動。
//	20081014_01_w【ジオコード：吹き出し：最初はなし】１度別の店舗を表示させたあとは正常な状態になるようなのですが、何が問題かわかりますか？
//	20090701_01_k【RSSテンプレート】RSSテンプレート編集を追加。
//	20091111_05_k【ページングバグ】{選択}を使用するページのページング対応。ごみが混ざっていたため、ページングが動作しなかったので対応した。
//	20100906_01_n Webコンポーネント設定画面：ソート条件：項目を指定：ajax化と多段選択化
//-------------------------------------------------------------------------------------------------

// ユーザチェック
function checkUser()
{
  if ((document.login.usr_name.value.length > 30) || (document.login.usr_name.value.length < 1)) {
    alert("ログインユーザ名が不正です");
    return;
  }
  if ((document.login.usr_passwd.value.length > 30) || (document.login.usr_passwd.value.length < 1)) {
    alert("パスワードが不正です");
    return;
  }

  document.login.submit();


}

// 右の空白除去
function RTrim(strTemp)
{
	var nLoop = 0;
	var strReturn = strTemp;
	while (nLoop < strTemp.length)
	{
		if ((strReturn.substring(strReturn.length - 1, strReturn.length) == " ") || (strReturn.substring(strReturn.length - 1, strReturn.length) == "　"))
		{
			strReturn = strTemp.substring(0, strTemp.length - (nLoop + 1));
		}
		else
		{
			break;
		}
		nLoop++;
	}
	return strReturn;
}
// 左の空白除去
function LTrim(strTemp)
{
	var nLoop = 0;
	var strReturn = strTemp;
	while (nLoop < strTemp.length)
	{
		if ((strReturn.substring(0, 1) == " ") || (strReturn.substring(0, 1) == "　"))
		{
			strReturn = strTemp.substring(nLoop + 1, strTemp.length);
		}
		else
		{
			break;
		}
		nLoop++;
	}
	return strReturn;
}
function selCheckBox(obj1, obj2, obj2val)
{

   // チェックボックスの選択状況チェック
    n = 0;
    cval = "";
    for (i = 0; i < obj1.elements.length; i++ ) {             // フォームのエレメントをすべて網羅
      if (obj1.elements[i].type == "checkbox" ) {  // エレメントがチェックボックス？
        if (obj1.elements[i].checked == true) {    // チェックボックスがON?
          cval = obj1.elements[i].value;           // チェックボックスの値を保存
          n++;
        }  // if
      }  // if
    }  // for

    if (n == 0) {
      alert ("行を選択して下さい");
      exit;
    }
    else if (n > 1) {
      alert ("選択できる行は１つだけです");
      exit;
    }

    obj2val.value = cval;
    obj2.submit();


}

//キャンセル確認
function ConfirmCancel(){
    return confirm("変更内容を破棄します。よろしいですか？");
}

//削除確認
function ConfirmDelete(szFieldname){
    return confirm(szFieldname + " を削除します。よろしいですか？");
}

function ConfirmOverwrite(strFilename){
	return	confirm(strFilename + " は既に存在します。上書きしますか？");
}

//ファイル名の拡張子なし。20070719_01_w++
function cmnShortname(strFullpath){
	var	ex	=	strFullpath.replace(/\\/g, '/').split('/');
	return	ex.length > 0? ex[ex.length - 1]: "";
}

//拡張子。20070719_01_w++
function cmnExtension(strFullpath){
	var	ex	=	strFullpath.split('.');
	return	ex.length > 1? ex[ex.length - 1]: '';
}

//ディレクトリ名、ファイル名からフルパスを作成する。20070719_01_w++
function cmnFullpath(strDirectory, strFilename){
	return	cmnPath(strDirectory) + cmnShortname(strFilename);
}

//ディレクトリ名からパスを作成する。20070719_01_w++
function cmnPath(strDirectory){
	strDirectory	=	strDirectory.replace(/\\/g, '/');
	if(strDirectory.length > 0)
		if(strDirectory.substr(strDirectory.length - 1) != '/')
			strDirectory += '/';
	return	strDirectory;
}

//ウインドーオープン
//	20070107_01 fullscreenモード追加。
//	20070517_02_w 関数名称変更：-openWindow+OpenWindow。
var thisOpenWindow = null;
function OpenWindow(strUrl, strTitle, sizWidth, sizHeight){//20070517_02_w-openWindow+OpenWindow
	//20070912_10_w--CloseWindow();//20070719_01_w++
	strUrl	=	strUrl.replace(/\.txt/i, ".3gp");//20070517_03_w++
	fullscreen = sizWidth == -1 && sizHeight == -1? "yes": "no";//20070107_01++
	var thisOpenWindow = window.open(strUrl, 'openWindow', "width="+sizWidth+",height="+sizHeight+",toolbar=no,location=no,dependent=yes,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,fullscreen="+fullscreen);//20070216_03_w+var w=//20070214_05_w-''+'openWindow' 20070201_01-strTitle+'' 20070107_01++fllscreen
		thisOpenWindow.focus();//20070216_03_w++
}

//ウインドークローズ（iframe-cms_field_edit）
//	20070305_02_w コンテンツメニュー一覧・詳細入力画面非ポップアップ化。
function closeWindowframe(no){//20070526_01_w+no
	window.top.closeWindowframetop("openWindow" + no);//20070526_01_w+ + no
}
function closeWindowframetop(name){
	$(name).style.display	=	'none';
	$(name).src				=	'';
}

//ウインドーオープン（ウインドーフィット）
function fitWindow(obj, strUrl){
	var	width	=	document.body.clientWidth - 40;
	var	height	=	document.body.clientHeight - 90;
	if(obj.style.width != (width+"px") || obj.style.height != (height+"px")){
		obj.style.width		=	width	+	"px";
		obj.style.height	=	height	+	"px";
		obj.src				=	strUrl+"&windowwidth="+width+"&windowheight="+height;
	}
}

//改行キーならtextareaサイズを最適な長さに変える
function Resizetextarea(obj, keyCode, cols, rows){
//	if(keyCode == 13 || keyCode == 8){
		row = ((obj.innerText.length * 2) / cols) + (obj.innerText.split("\n").length / 1.8) + 1;
		if(row > rows)
			row = rows;
		obj.rows = row;
//	}
}

//【公開画面入力フォームからの動画アップロード】アップロード中状態表示。20080127_01_w++
function ShowFormCondition(message, id){
	if($('ConditionBlock'+id)){
		$('ConditionBlock'+id).innerHTML		=	message;
		$('ConditionBlock'+id).style.display	=	'block';
	}
}

//【公開画面入力フォームからの動画アップロード】アップロード中状態表示。20070719_01_w++
function ShowCondition(message){
	if($('ConditionBlock')){
		$('ConditionBlock').innerHTML		=	message;
		$('ConditionBlock').style.display	=	'block';
	}
}
function HideCondition(){
	if($('ConditionBlock'))
		$('ConditionBlock').style.display = 'none';
}
var	thisEID;
function StartProgress(id){
	if($('ConditionBlock')){
		if(id.length){
			thisEID	=	id.split(',');
			if(thisEID.length)
				setTimeout('DisplayProgress()', 1000);
		}
	}
}

function DisplayProgress(){
	if($('ConditionBlock')){
		for(i = 0; i < thisEID.length; i++){
			var result = checkResource({progress_key: 'progress_'+thisEID[i]});
			if(result != 'ok'){
				r	=	result.parseQuery();
				if(r.done != 1)
					if(r.cancel_upload != 1)
						if(r.total > 0)
							if(r.current < r.total){
								$('ConditionBlock').innerHTML = r.filename + ' アップロード中．．．' + ((r.current / r.total ) * 100) + '% ';
								setTimeout('DisplayProgress', 1000);
							}
			}
		}
		$('ConditionBlock').innerHTML = r.filename + ' 保存中．．．';
	}
}

// テンプレート追加サブウィンドウを画面中央に表示する
function addTemplate(tblt_sel, ctype, ttype){//20070508_01_w+, ctype//20071030_01_w++
  wx = 320 * 2;
  wy = 330 * 2;//20080505_10_w-320+330
  x = (screen.width  - wx) / 2;
  y = (screen.height - wy) / 2;
  subWin = window.open("cms_cmp_table_addtemplate.php?tblt_sel="+tblt_sel+"&ctype="+ctype+"&ttype="+ttype,"","left="+x+",top="+y+",width="+wx+",height="+wy);//20070508_01_w++"&ctype="+ctype//20071030_01_w++"&ttype="+ttype
}

//【集計機能:計算】計算式テンプレート編集画面起動。20080805_10_w++
function addTemplateCalc(tblt_sel, ctype, selectedTLID){
  wx = 320 * 2;
  wy = 330 * 1 + 100;
  x = (screen.width  - wx) / 2;
  y = (screen.height - wy) / 2;
  subWin = window.open("cms_cmp_table_addtemplateCalc.php?tblt_sel="+tblt_sel+"&ctype="+ctype+"&selectedTLID="+selectedTLID,"","left="+x+",top="+y+",width="+wx+",height="+wy);
}

//【メール送信：タイトル・本文カスタマイズ】送信するメールテンプレートの変更機能を追加。20080823_21_w++
function addTemplateMail(tblt_sel, ctype, selectedTLID, fname){//20081104_00_w+, fname
  var f = fname && fname.length? fname: '';
  wx = 320 * 2;
  wy = 330 * 1 + 100;
  x = (screen.width  - wx) / 2;
  y = (screen.height - wy) / 2;
  subWin = window.open("cms_cmp_table_addtemplateMail.php?tblt_sel="+tblt_sel+"&ctype="+ctype+"&selectedTLID="+selectedTLID+'&fname='+f,"","left="+x+",top="+y+",width="+wx+",height="+wy);
}

// 【RSSテンプレート】RSSテンプレート編集を追加。20090701_01_k++
function addTemplateRss(id, ctype, ttype){//20090701_01_k++
  wx = 320 * 2;
  wy = 330 * 2;//20080505_10_w-320+330
  x = (screen.width  - wx) / 2;
  y = (screen.height - wy) / 2;
  subWin = window.open("cms_cmp_rssReader_addtemplate.php?id="+id+"&ctype="+ctype+"&ttype="+ttype,"","left="+x+",top="+y+",width="+wx+",height="+wy);
}

//20070322_03_w++
function OpenCenterWindow(p){
  wx = p.width	? p.width	: 320 * 2;
  wy = p.height	? p.height	: 320 * 2;
  x = (screen.width  - wx) / 2;
  y = (screen.height - wy) / 2 - 50;

  //20080208_20_w++
  if(p.u && p.u.length)
  	p.u = encodeURIComponent(p.u);

  window.open(p.m+"?t="+p.t+"&i="+p.i+"&n="+p.n+"&l="+p.c+"&u="+p.u+"&c=x", "", "left="+x+", top="+y+", width="+wx+", height="+wy);
}

function getLayer(layName){

	if(window.opera)			return document.getElementById(layName);
	if(document.getElementById)	return document.getElementById(layName);
	if(document.all)			return document.all(layName);
	if(document.layers)			return document.layers[layName];

	return document.getElementById(layName);
}

function showLayer(idName){

	if(document.getElementById)//NN6,Mozilla,IE5用
		document.getElementById(idName).style.visibility = 'visible';

	else if(document.all)//IE4用
		document.all(idName).style.visibility = 'visible';

	else if(document.layers)//NN4用
		document.layers[idName].visibility = 'show';

	else
		document.getElementById(idName).style.visibility = 'visible';
}

function hideLayer(idName){

	if(document.getElementById) //NN6,Mozilla,IE5用
		document.getElementById(idName).style.visibility = 'hidden';

	else if(document.all)       //IE4用
		document.all(idName).style.visibility = 'hidden';

	else if(document.layers)    //NN4用
		document.layers[idName].visibility = 'hide';

	else
		document.getElementById(idName).style.visibility = 'hidden';
}

function layerVisibility(idName, fShow){
	if(fShow == "visible")
		showLayer(idName);
	else hideLayer(idName);
}

/*
 * keycheck
 *
 *		20070406_01_w 位置情報定義：フィールドタイプ「位置情報」追加：keycheck種に"locationgps"を追加。
 *
 *		if(mode == "decimal")		input type='text'	における数値入力以外をはねる
 *		if(mode == "datetime")		input type='text'	における数値/スペース/コロン/ハイフン以外をはねる
 *		if(mode == "decimala")		textarea			における数値入力以外をはねる ＆ 入力文字数チェック
 *		if(mode == "locationgps")	textarea			における数値+「.」「,」入力以外をはねる
 *		if(mode == "url")			url入力				における不当文字をはねる
 *		if(mode == "textarea")		textarea			における入力文字数チェック
 *
 *		maxLength				url/textarea		における最大入力文字数
 */

function onKeyandlengthcheck(obj, keycode, mode, maxLength){

	//キーチェック
	if(	keycode != 8 && //bs
		keycode != 9 && //tab
		keycode != 16 && //shift
		keycode != 17 && //ctrl
		keycode != 46 && //del
		keycode != 112 && //f1
		keycode != 113 && //f2
		keycode != 114 && //f3
		keycode != 115 && //f4
		keycode != 116 && //f5
		keycode != 117 && //f6
		keycode != 118 && //f7
		keycode != 119 && //f8
		keycode != 120 && //f9
		keycode != 121 && //f10
		keycode != 122 && //f11
		keycode != 123 && //f12
		keycode != 44 && //print screen
		keycode != 37 && //カーソル
		keycode != 38 && //カーソル
		keycode != 39 && //カーソル
		keycode != 40 ){ //カーソル

		if(mode == "datetime"){
			if(48 <= keycode && keycode <= 57)
				return true;
			if(keycode == 32)	return	true;//SP
			if(keycode == 186)	return	true;//:
			if(keycode == 189)	return	true;//-

			return false;
		}
		else
		if(mode == "decimal"){
			if(48 <= keycode && keycode <= 57)
				return true;
			if(96 <= keycode && keycode <= 105)
				return true;
			return false;
		}
		else
		if(mode == "decimala"){
			if(keycode == 13)
				return true;
			if(48 <= keycode && keycode <= 57)
				return true;
			if(96 <= keycode && keycode <= 105)
				return true;
			return false;
		}
		else
		//20070406_01_w++
		if(mode == "locationgps"){//20070406_01_w++
			if(keycode == 188)	return true;//,
			if(keycode == 190)	return true;//.
			if(48 <= keycode && keycode <= 57)
				return true;
			if(96 <= keycode && keycode <= 105)
				return true;
			return false;
		}
		else
		if(mode == "url"){
			if(keycode == 226)	return	true;//_//	20070419_01_w++Webコンポーネント設定画面：urlで「_」が入らない
			if(keycode == 186)	return	true;//://	20061129 コンテンツメニュー入力画面：urlで「:」が入らない
			if(189 <= keycode && keycode <= 192)
				return true;
			if(48 <= keycode && keycode <= 57)
				return true;
			if(96 <= keycode && keycode <= 105)
				return true;
			if(65 <= keycode && keycode <= 90)
				return true;
			if(109 <= keycode && keycode <= 110)
				return true;
			return false;
		}
		else
		//check length.
		if(mode == "textarea")
			if(obj.value.stripTags().length > maxLength)//20080513_01_w+.striptags()
				return	false;

	}

	return true;
}

//チェック：全選択/解除
function checkall(nametop){checkingall(nametop, true);}
function uncheckall(nametop){checkingall(nametop, false);}
function checkingall(nametop, trueorfalse){
	input = document.getElementsByTagName("input");
	for(i = 0; i < input.length; i++)
		if(input[i].name.substr(0, nametop.length + 1) == ("x"+nametop))
			if((trueorfalse && !input[i].checked) || (!trueorfalse && input[i].checked))
				input[i].click();
}

//チェック済みリスト
function checklist(nametop){
	list	=	"";
	input = document.getElementsByTagName("input");
	for(i = 0; i < input.length; i++)
		if(input[i].name.substr(0, nametop.length + 1) == ("x"+nametop))
			if(input[i].checked){
				is	=	input[i].name.split("[");
				is	=	is[is.length - 1].split("]");
				list	+=	(is + "\n");
			}
	return	list;
}

//コンポーネント設定Windowからスタイルシート設定Windowのプロパティを変更し、プロパティ更新処理を起動する。20070110_04
function setPropertysheet(namProperty, setValue){
	if(parent.document.FormProperties){
		parent.document.FormProperties.elements[namProperty].value = setValue;
  		parent.boxSetProperty(namProperty, true);
	}
}

//動画表示枠の設定
//	20061027_01 動画コンポーネント設定時、スタイルシート設定プロパティのwidthを表示高、3/4をheightとする：SetMoviesizeを追加。
//	20061105_01 FormPropertiesとForm1の優先順位変更
//	20061107_01 FormPropertiesとForm1の優先順位変更2
function setMoviesize(strTablename){
	propertywidth	=	parent.document.FormProperties?	parent.document.FormProperties.width.value:
					(	parent.document.Form1?			parent.document.Form1.width.value:	0);
	propertywidth	*=	1;
	if(propertywidth){
		if(isFinite(propertywidth)){
			if(propertywidth > 0){
										settingname = 'in[theExtents]['+strTablename+'][0]';
				if(document.fm.elements[settingname+'[WIDTH]']){
					   width  = document.fm.elements[settingname+'[WIDTH]'].value;
					if(width != propertywidth){
						width = propertywidth;
						document.fm.elements[settingname+'[WIDTH]'	].value	=	width;
						document.fm.elements[settingname+'[HEIGHT]'	].value	=	Math.round(propertywidth * 3 / 4);
					}
				}
			}
		}
	}
}

//20061108_01 新スタイルシート設定対応：updateDrawbox():drawarea box更新
function updateDrawbox(){
	if(parent.document.getElementById("wm_box_no"))
		if(parent.document.getElementById("content"))
			if(parent.document.getElementById("wm_comp_id"))
				if(parent.document.getElementById("wm_comp_no"))
					if(parent.document.getElementById("wm_comp_cls"))
						if(parent.document.getElementById("stylecss")){
							//20071004_01_w--parent.frames["iframe01"].ajax_content_view({box_no:parent.document.getElementById("wm_box_no").value, TBID:parent.document.getElementById("content").value, COMP_ID:parent.document.getElementById("wm_comp_id").value, COMP_NO:parent.document.getElementById("wm_comp_no").value, COMP_CLS:parent.document.getElementById("wm_comp_cls").value, CSS_FNAME:parent.document.getElementById("stylecss").value});
							//20071004_01_w++
							var	loopno						=	0;
							var	looplist					=	new	Array	();
								looplist[loopno]			=	new	Object	();
								looplist[loopno].box_no		=	parent.document.getElementById("wm_box_no"	).value;
								looplist[loopno].TBID		=	parent.document.getElementById("content"	).value;
								looplist[loopno].COMP_ID	=	parent.document.getElementById("wm_comp_id"	).value
								looplist[loopno].COMP_NO	=	parent.document.getElementById("wm_comp_no"	).value;
								looplist[loopno].COMP_CLS	=	parent.document.getElementById("wm_comp_cls").value;
								looplist[loopno].CSS_FNAME	=	parent.document.getElementById("stylecss"	).value
								looplist[++loopno]			=	new	Object();
								looplist[  loopno].box_no	=	-1;
							parent.frames["iframe01"].async_ajax_content_view(looplist, 0, null);
						}
}

//20061124_01 Webコンポーネント設定画面：ajax化
/*
 *	innerHTML更新
 *
 *		20061124_01 新規作成
 *
 *		parameters{
 *			id			:	id name.
 *			php			:	php script name.
 *			event		:	function name.
 *			その他
 *		}
 *	未使用
 *function ajaxUpdatercheck(p){//alert("ajaxUpdatercheck("+$H(p).toQueryString()+")");
 *	var	parameters	=	$H(p).toQueryString();
 *	if(p.id.length){
 *		new Ajax.Updater({success:p.id}, p.php+".php",{
 *			postBody	:parameters,
 *			onFailer	:function(httpObj	){alert("onFailer:ajaxUpdatercheck("+parameters+")"+httpObj.statusText);},
 *			onException	:function(httpObj, e){alert("onException:ajaxUpdatercheck("+parameters+")"+e.message);}
 *		});
 *	}
 *	else	alert("parameter error:ajaxUpdatercheck("+parameters+")");
 *}
 */

//連続動画再生：レコード編集用フィールド追加。20070221_07_w++
function ajax_realUpdater(p){
	var	parameters	=	$H(p).toQueryString();
	new Ajax.Updater({success:p.id}, p.name,{
		postBody	:parameters,
		onFailer	:function(httpObj	){alert("onFailer:ajax_realUpdater("+parameters+")"+httpObj.statusText);},
		onException	:function(httpObj, e){alert("onException:ajax_realUpdater("+parameters+")"+e.message);}
	});
}

//リソースチェック。20070313_02_w++
function ajax_checkResource(p){
	var	parameters	=	$H(p).toQueryString();
	var	httpObj		=	new Ajax.Request('ajax_checkResource.php', {
		asynchronous:false,
		postBody	:parameters});
	if(ajax_responseIsSuccess(httpObj)){//alert(httpObj.transport.responseText);//20071006_01_w--if(httpObj.responseIsSuccess())
		return	httpObj.transport.responseText;
	}
	return	"ok";
}

//【リソースチェック】非同期版追加。20080228_01_w++
function ajax_checkResource_async(p, next){
	var	parameters	=	$H(p).toQueryString();
	var	httpObj		=	new Ajax.Request('ajax_checkResource.php', {
		postBody	:parameters,
		onSuccess	:function(result){
			if(next)next(result.responseText);
		}
	});
}

//【prototype.js】v1.6対応。20071006_01_w++
function ajax_responseIsSuccess(httpObj){
	if(httpObj.responseIsSuccess)
		return	httpObj.responseIsSuccess;

	var		status = httpObj.getStatus();
    return	status == undefined
        ||	status == 0
        || (status >= 200 && status < 300);
}

function ajaxUpdater(p, next){//20071004_01_w+, next
	if($(p.id)){
		var	parameters	=	$H(p).toQueryString();
		var	httpObj		=	new Ajax.Request('ajax_cmsComponentSetting.php', {
			//20071004_01_w--asynchronous:false,
			postBody	:parameters,
			onSuccess	:function(){//alert(httpObj.transport.responseText);//20071004_01_w--if(httpObj.responseIsSuccess())
				$(p.id).innerHTML = httpObj.transport.responseText;
				//20071004_01_w--	else
				//20071004_01_w--		alert("failed:ajaxUpdater("+parameters+")responseIsSuccess() is false");

				if(next)next();//20071004_01_w++
			}
		});
	}
}

function ajaxUpdaterSort(p, next){//20100906_01_n++
	if($(p.id)){
		var	parameters	=	$H(p).toQueryString();
		var	httpObj		=	new Ajax.Request('ajax_cmsComponentSettingSort.php', {
			//20071004_01_w--asynchronous:false,
			postBody	:parameters,
			onSuccess	:function(){//alert(httpObj.transport.responseText);//20071004_01_w--if(httpObj.responseIsSuccess())
				$(p.id).innerHTML = httpObj.transport.responseText;
				//20071004_01_w--	else
				//20071004_01_w--		alert("failed:ajaxUpdaterSort("+parameters+")responseIsSuccess() is false");

				if(next)next();//20071004_01_w++
			}
		});
	}
}

//20070205_01++
//	20070322_03_w radiobutton/checkbox識別機能追加。
function ajaxUpdaterany(p){

	//フォーム中のin[..を取り込む
	for(var i = 0; i < window.document.fm.elements.length; i++)
		if(window.document.fm.elements[i].name.substr(0, 15) == "in[theExtents][")
			if(!p[window.document.fm.elements[i].name])
				if(window.document.fm.elements[i].className == "radiobutton"	&& !window.document.fm.elements[i].checked);else //20070322_03_w++
				if(window.document.fm.elements[i].className == "checkbox"		&& !window.document.fm.elements[i].checked);else{//20070322_03_w++
					p[window.document.fm.elements[i].name] = window.document.fm.elements[i].value;
				}

	var	parameters	=	$H(p).toQueryString();
	var	httpObj		=	new Ajax.Request('ajax_cmsComponentSetting.php', {
		//20071004_01_w--asynchronous:false,
		postBody	:parameters,
		onSuccess	:function(){//20071004_01_w--if(httpObj.responseIsSuccess()){//alert(httpObj.transport.responseText);

			//受信データの配列化
			var	arySplit	=	httpObj.transport.responseText.split("<span id='Depends");
			var	aryResult	=	Object();
			for(var i = 1; i < arySplit.length; i++){
				var	aryS		=	arySplit[i].split("'");
				var	no			=	aryS[0];
					aryS		=	arySplit[i].split("<!--Depends-->");
				aryResult[no]	=	aryS[1];
			}

			//現在表示の入れ替え・追加
			var	no = 0;//20070223_03_w++
			for(no in aryResult){
				if($('Depends' + no))
					$('Depends' + no).innerHTML = aryResult[no];
				else{
					var	newElement 				=	document.createElement("span");//20070908_01_w-div+span
						newElement.id			=	'Depends' + no;
						newElement.innerHTML	=	aryResult[no];
	  					$("i_setting").appendChild(newElement);
				}
			}

			//不要表示の削除
			if(no)//20070223_03_w++
				while($('Depends' + (++no)))
					$("i_setting").removeChild($('Depends' + no));

			//コンポーネント設定域高さの自動調整。20070618_01_w++
			autoHeight_iFrameURL();
		}
		//20071004_01_w--else	alert("failed:ajaxUpdaterany("+parameters+")responseIsSuccess() is false");
	});
}

//コンポーネント設定域高さの自動調整。20070618_01_w++
function autoHeight_iFrameURL(){
	if(parent)
		if(parent.$('iFrameURL'))//20070810_01_w++
			if(document.body.scrollHeight > 0)//20070814_01_w++
				parent.$('iFrameURL').style.height	=	document.body.scrollHeight;
}

//【スタイルシート設定：コンポーネント設定画面ロード】選択中Boxの設定コンパネはリロードしない。20071007_03_w++
//	autoHeight_iFrameURL()のparent版。
function 	 autoHeight_iFrame(){
	if($('iFrameURL'))
		$('iFrameURL').style.height =
			$('iFrameURL').contentWindow? $('iFrameURL').contentWindow.document.body.scrollHeight:
				document.frames['iFrameURL'].document.body.scrollHeight;
}

//コンテンツメニュー一覧の自動調整。20071228_01_w++
function autosizeWindow(id){
	if(parent && parent.$(id)){
		if(document.body.scrollWidth > 0)
			parent.$(id).style.width	=	document.body.scrollWidth;
		if(document.body.scrollHeight > 0)
			parent.$(id).style.height	=	document.body.scrollHeight;
	}
}

//20071004_01_w--//ajax複数ブロック置き換え。20070303_01_w++
//20071004_01_w--var		 ajaxContentsUpdater_currentPosition = 0;
//20071004_01_w--function ajaxContentsUpdater(module, parameters){//alert(parameters);
//20071004_01_w--	new Ajax.Request(module+".php", {
//20071004_01_w--		postBody	:parameters,
//20071004_01_w--		onSuccess	:function(result){//alert(result.responseText);
//20071004_01_w--			var	lines	=	result.responseText.split("<?lf?>");
//20071004_01_w--			for(var i = 0; i < lines.length; i++){
//20071004_01_w--				var	item	=	lines[i].split("<?is?>");
//20071004_01_w--				if($(item[0]))
//20071004_01_w--					if(item[0] == "box3")
//20071004_01_w--						$(item[0]).innerHTML = item[1];
//20071004_01_w--			}
//20071004_01_w--setTimeout("ajaxContentsUpdater('"+module+"', '"+parameters+"')", 10000);
//20071004_01_w--		},
//20071004_01_w--		onFailer	:function(httpObj	){alert("onFailer:ajaxContentsUpdater("+parameters+")"+httpObj.statusText);},
//20071004_01_w--		onException	:function(httpObj, e){alert("onException:ajaxContentsUpdater("+parameters+")"+e.message);}
//20071004_01_w--	});
//20071004_01_w--}

//【マスタ参照】axRefM()追加。20080607_10_w++
function axRefM(p){
	var	parameters	=	$H(p).toQueryString();
	new Ajax.Request('ajax_referMaster.php', {
		postBody	:parameters,
		onSuccess	:function(result){//alert(result.responseText);
			var	resultcode = result.responseText.substr(0,2)
			if(	resultcode.length == 2){
				if(	resultcode == 'ok'){
					resultcode = result.responseText.substr(3);
					if(resultcode.length){
						setTimeout(resultcode, 1);
					}
				}
				else
				if(	resultcode == 'ng')alert('axRefM '+result.responseText);
				else	alert(result.responseText);
			}
			else	alert(result.responseText);

//20091126_01_k++　メソッドの存在チェック後、メソッドを走らせるメソッド追加
			eval_method();
//20091126_01_k++
		},
		onFailer	:function(httpObj	){alert("onFailer:axRefM("+parameters+")"+httpObj.statusText);},
		onException	:function(httpObj, e){if(httpObj.readyState != 0) httpObj.abort(); else alert("onException:axRefM("+parameters+")"+e.message);}
	});
}

//【シーン再生】再生開始をPlayer状態から取得。20071213_01_w++
function sceneGo(player){
	if(sceneReali < sceneRealm){
		var	position	=	scenePlayerControl['GetPosition'][player]()	*	1000;
		var	currentItem	=	scenePlayerControl['currentItem'][player]();

		if(	position	>	0){
			if(	sceneRealbefore	<	position){
				sceneRealbefore	=	position;
				if(sceneRealbefores++){
					var	p	=	sceneReals[sceneReali];
					if(	p < position	&&	sceneReals[sceneReali + 1] == currentItem){
						for(sceneReali += 2; sceneReali < sceneRealm && sceneReals[sceneReali] != -1; sceneReali += 2){
							setTimeout(sceneReals[sceneReali + 1], 1);
						}
						if(sceneReals[sceneReali] == -1)
							sceneReali++;
					}
				}
			}
			else	sceneRealbefore	=	sceneRealbefores	=	0;
		}
		else	sceneRealbefore	=	sceneRealbefores	=	0;

		if(sceneReali < sceneRealm)
			setTimeout("sceneGo('"+player+"');", 100);
	}
}

//【シーン再生】他コンポーネント同期。20070820_03_w++
var	scenePlayerTimer	=	true;
function Excluding(parameters){//alert(parameters);
	if(scenePlayerTimer)
		ajaxThese(parameters);
}

//【シーン作成】シーン追加。20070904_03_w++
function Including(parameters){//alert(parameters);
	ajaxThese(parameters);
}

//【シーン再生】他コンポーネント同期。20070820_03_w++
function ajaxThese(parameters){ajaxTheses(parameters, 'visible');}//20071021_13_w++
function ajaxTheses(parameters, visibility){//20071021_13_w+, visibility
	parameters = parameters.replace('cms_content_view.php?', '');//alert(parameters);

	//パラメータが静的urlになっている場合は、動的パラメータ形式に逆変更。20080405_01_w++
	if(parameters.match(/\/cv\//)){
		var	parametersex = parameters.split('/pc/');
		if(	parametersex.length > 1){
			if((parametersex = parametersex[1].split('/')).length){
				parameters = 'tbid='+parametersex[0];
				for(var i = 1; i < parametersex.length; i += 2){
					parameters += ('&'+parametersex[i]+'='+parametersex[i+1]);
				}
			}
		}
	}

	new Ajax.Request('cms_content_view.php', {
		postBody	:parameters,
		onSuccess	:function(result){//alert(result.responseText);
			var	matches = result.responseText.split('<</div>>');
			var box;
			var	count	= matches.length - 1;//最後は無効

			for(var i = 0; i < count; i++){
				if(matches[i].length && (box = matches[i].split('>>')).length == 2){

					//20091111_05_k++【ページングバグ】{選択}を使用するページのページング対応。ごみが混ざっていたため、ページングが動作しなかったので対応した。
					box[0] = box[0].replace(/<!-- COMP_ID=([0-9]+) -->\n/i, '');
					box[0] = box[0].replace(/<!-- END=([0-9]+) -->\n/i, '');
					//20091111_05_01_k++

					//20080208_10_w++
					if(box[0].length && box[0] == 'javascript'){
						var	script	=	box[1].replace(/<script [^>]+>/i, '').replace(/<\/script>/i, '').replace(/\/\/<\!\[CDATA\[/, '').replace(/\/\/\]\]>/, '').replace("\r\n", '').replace("\n", '');
						if(	script.length)
							setTimeout(script, 1);
					}else

					if(box[0].length && $(box[0]) && $(box[0]).innerHTML != box[1] && !box[1].match(/id=[\"\']map[\"\']/)){//20080302_10_w+ && !box.match(/id=[\"\']map[\"\']/)
						$(box[0]).innerHTML		=	box[1];
						$(box[0]).style.visibility = visibility;//20070925_10_w-display	=	'block';//テーブル表示入力フォームの表示制御。20070904_05_w++//20071021_13_w-'visible'+visibility
					}
				}
			}
		},
		onFailer	:function(httpObj	){alert("onFailer:ajaxThese("+parameters+")"+httpObj.statusText);},
		onException	:function(httpObj, e){if(httpObj.readyState != 0) httpObj.abort(); else alert("onException:ajaxThese("+parameters+")"+e.message);}
	});
}

//20080827_11_w【設問・アンケート】専用テーブル追加。
function axUpdater(url){
	ex			=	url.split('?');
	module		=	ex[0];
	parameters	=	ex[1];
	new Ajax.Request(module, {
		postBody	:parameters,
		onSuccess	:function(result){//alert(result.responseText);
			var	matches = result.responseText.split('<</div>>');
			var box;
			var	count	= matches.length - 1;//最後は無効
			for(var i = 0; i < count; i++){
				if(matches[i].length && (box = matches[i].split('>>')).length == 2){
					if(box[0].length && box[0] == 'javascript'){
						var	script	=	box[1].replace(/<script [^>]+>/i, '').replace(/<\/script>/i, '').replace(/\/\/<\!\[CDATA\[/, '').replace(/\/\/\]\]>/, '').replace("\r\n", '').replace("\n", '');
						if(	script.length)
							setTimeout(script, 1);
					}else
					if(box[0].length && $(box[0]) && $(box[0]).innerHTML != box[1] && !box[1].match(/id=[\"\']map[\"\']/)){
						$(box[0]).innerHTML		=	box[1];
					}
				}
			}
		},
		onFailer	:function(httpObj	){alert("onFailer:axUpdater("+parameters+")"+httpObj.statusText);},
		onException	:function(httpObj, e){if(httpObj.readyState != 0) httpObj.abort(); else alert("onException:axUpdater("+parameters+")"+e.message);}
	});
}

//【シーン再生】SWF同期。20070820_03_w++
function sceneSwfControl(player, label){
	if(scenePlayerTimer){
		if($(player)){
			try{
				if(scenePlayerControl['TGotoLabel'	][player])scenePlayerControl['TGotoLabel'	][player]('/', label);
				if(scenePlayerControl['Play'		][player])scenePlayerControl['Play'			][player]();
				setTimeout("sceneSwfControlDisplayBlock('"+parseInt(player.substr(6))+"')", 1);//20070910_01_w++
			}catch(e){
				//ここは無視！alert("fail!");
			}
		}
	}
}

//【シーン再生】SWF初期表示：先頭タイトル表示抑制。20070910_01_w++
function sceneSwfControlDisplayBlock(boxno){
	if($('box' + boxno))
		$('box' + boxno).style.visibility = 'visible';//20070925_10_w-.display = 'block';
}

//絞り込み有無チェックボックス表示ON/OFF
//20061124_02 入出力フォーム対応：isNarrwsel()追加
function isDisplayNarrowsel(strTablename, strNamesel, maxForm){
	maxForm	*=	1;

	//入力フォーム有無調査
	if($("showNarrowsel")){
		var	isExistinputform	=	false;
		for(var i = 1; i <= maxForm; i++)
			if(	$("in[theExtents]["+strTablename+"]["+i+"][TLID_"+strNamesel+"]")				&&
				$("in[theExtents]["+strTablename+"]["+i+"][TLID_"+strNamesel+"]").value.length	&&
				$("in[theExtents]["+strTablename+"]["+i+"][TFID_"+strNamesel+"]").value.length	&&
			    $("in[theExtents]["+strTablename+"]["+i+"][FTYPE]")	&&
			    1 <= ($("in[theExtents]["+strTablename+"]["+i+"][FTYPE]").value*1)				&&
			   		 ($("in[theExtents]["+strTablename+"]["+i+"][FTYPE]").value*1) <= 3)
				isExistinputform++;
		$("showNarrowsel").style.display	=	isExistinputform >= 2? "block": "none";
	}
}

//カンマ文字列の中を入れ替える
//	20061222_01 動的コンポーネント：テーブル内：同一マスタ参照を可能とする。
function inStringitem(str, index, item){
	var	s			=	str.split(",");
		s[index]	=	item;
	var	o = "";
	for(var i = 0; i < s.length; i++){
		if(o.length)
			o += ",";
		o += s[i];
	}
	return	o;
}

//Closeupplayer 20070208_01_w++
//	20070220_08_w ボタン幅指定追加。
function Closeupplayer(TBID, COMP_ID, top, left, width, height, position, overflow, zIndex, sessionUrl, OPTION1, OPTION2, OPTION3, OPTION4){//20070220_08_w+, OPTION4//<-original size.

	var	phpmode	=	true;//これをtrueにすると、cmsCloseupplayer.phpを使った別ページ処理

	//パラメータ
	if(!phpmode)
		COMP_ID	*= 1;
	top		*= 1;
	left	*= 1;
	width	*= 1;
	height	*= 1;
	zIndex	*= 1;

	//クライアントWindowサイズ取得
	var	windowWidth		=	getBrowserWidth	();if(windowWidth	>	10	)windowWidth	-=	10;
	var	windowHeight	=	getBrowserHeight();if(windowHeight	>	10	)windowHeight	-=	10;

	//ボックスサイズ計算
	var	rwidth	=	windowWidth / width;
	var	rheight	=	windowHeight/ height;
	var	r	=	rwidth < rheight?
				rwidth : rheight;
	//新サイズ
	var	newSize	=	Object();
		newSize.width			=	Math.floor(width	*	r);
		newSize.height			=	Math.floor(height	*	r);

	//ボックススタイルの変更
	if(!phpmode){
		$("box"+COMP_ID+"_container").style.position	=	"absolute";
		$("box"+COMP_ID+"_container").style.overflow	=	"visible";
		$("box"+COMP_ID+"_container").style.zIndex		=	99999;
		$("box"+COMP_ID+"_container").style.top			=	Math.floor((windowHeight	-	newSize.height	) / 2) + "px";//20070514_02_w+Moth.floor
		$("box"+COMP_ID+"_container").style.left		=	Math.floor((windowWidth		-	newSize.width	) / 2) + "px";//20070514_02_w+Moth.floor
		$("box"+COMP_ID+"_container").style.width		=									newSize.width	+ "px";
		$("box"+COMP_ID+"_container").style.height		=									newSize.height	+ "px";
	}

	//ボックスの中...objectおよびembed属性(width/height)をズーム
	if(phpmode)
		location.href	=	location.href.replace(/\/cv\/pc\/\S*$/, "/cmsCloseupplayer.php?TBID="+TBID+"&COMP_ID="+COMP_ID+"&c="+sessionUrl+"&wWidth="+windowWidth+"&wHeight="+windowHeight+"&nWidth="+newSize.width+"&nHeight="+newSize.height+""+"&bposition="+OPTION1+"&bimage="+OPTION2+"&bhover="+OPTION3+"&bwidth="+OPTION4);//20070220_08_w+"&bwidth="+OPTION4//20080405_01_w+location.href.replace(/\/cv\/pc\/\S*$/,
			else
				nowSize	=	Closeupobject(COMP_ID, newSize);

	//戻しの仕込み
	if(!phpmode){
		Closeupplayercloseparams.COMP_ID				=	COMP_ID	;
		Closeupplayercloseparams.top					=   top		;
		Closeupplayercloseparams.left					=   left	;
		Closeupplayercloseparams.width					=   width	;
		Closeupplayercloseparams.height					=   height	;
		Closeupplayercloseparams.position				=   position;
		Closeupplayercloseparams.overflow				=   overflow;
		Closeupplayercloseparams.zIndex					=   zIndex	;
		Closeupplayercloseparams.nowSize				=	nowSize	;
		Closeupplayercloseparams.onmousedown			=	document.onmousedown;
		document.onmousedown							=	Closeupplayerclose;
	}
}

//Closeupplayer...close.
var		 Closeupplayercloseparams	=	Object();
function Closeupplayerclose(){

	var	COMP_ID	=	Closeupplayercloseparams.COMP_ID;

	//ボックスの中...objectおよびembed属性(width/height)を戻し
	Closeupobject(COMP_ID, Closeupplayercloseparams.nowSize);

	//ボックススタイルの戻し
	$("box"+COMP_ID+"_container").style.position	=	Closeupplayercloseparams.position;
	$("box"+COMP_ID+"_container").style.overflow	=	Closeupplayercloseparams.overflow;
	$("box"+COMP_ID+"_container").style.zIndex		=	Closeupplayercloseparams.zIndex;
	$("box"+COMP_ID+"_container").style.top			=	Closeupplayercloseparams.top	+ "px";
	$("box"+COMP_ID+"_container").style.left		=	Closeupplayercloseparams.left	+ "px";
	$("box"+COMP_ID+"_container").style.width		=	Closeupplayercloseparams.nowSize.width	+ "px";
	$("box"+COMP_ID+"_container").style.height		=	Closeupplayercloseparams.nowSize.height	+ "px";
	document.onmousedown							=	Closeupplayercloseparams.onmousedown;
}

//ボックスの中...objectおよびembed属性(width/height)をズーム
function Closeupobject(COMP_ID, newSize){

	var	elements	=	$("box"+COMP_ID);

	//属性を操作するタグ
	var	tagArray	=	Array("embed", "object");

	//現サイズ
	var	nowSize	=	Object();
		nowSize.width			=
		nowSize.height			=	100;

	//ボックスの中...objectおよびembed属性(width/height)をズーム
	var	element, item;
	for(var tag = 0; tag < tagArray.length; tag++)
		if(element	= elements.getElementsByTagName(tagArray[tag]))
			if(element.length)
				if(item = element.item(0))
					for(var name in nowSize)
						if(item[name]){
							nowSize[name] = 	item.getAttribute(name);
												item.setAttribute(name, newSize[name]);
							item[name] = newSize[name];
							if(false){
								var param = item.getElementsByTagName("param");
								for(var i = 0; i < param.length; i++)
									if(param[i].getAttribute("name") == "ShowControls"){
										param[i].setAttribute("value", '0');
								}
							}
						}
	return	nowSize;
}

function Closeupplayerinnerhtml(COMP_ID, newSize){

	var		innerHTML	=	$("box"+COMP_ID).innerHTML;
			innerHTML	=	innerHTML.replace(/ width=([\'\"]?)[0-9]+([\'\"]?)/gi, " width=$1"+newSize.width+"$2");
			innerHTML	=	innerHTML.replace(/ height=([\'\"]?)[0-9]+([\'\"]?)/gi, " height=$1"+newSize.height+"$2");
	return	innerHTML;
}

//getBroserWidth 20070208_01_w++
function getBrowserWidth(){
    if(window.innerWidth)
        return window.innerWidth;
    		else
    			if(document.documentElement && document.documentElement.clientWidth != 0)
			        return document.documentElement.clientWidth;
					    else
					    	if(document.body)
					    		return document.body.clientWidth;
	return 0;
}

//getBroserHeight 20070208_01_w++
function getBrowserHeight(){
    if(window.innerHeight)
        return window.innerHeight;
    		else
    			if(document.documentElement && document.documentElement.clientHeight != 0)
			        return document.documentElement.clientHeight;
					    else
					    	if(document.body)
					    		return document.body.clientHeight;
	return 0;
}

function _d_(obj){
	var lines = Array(typeof(obj));for(key in obj)lines[lines.length] = key + ":" + obj[key];
	alert(lines.join("\n"));
}

//LoopMovie	20070214_01_w 動画再生コンポーネント：loop再生機能をobjectタグに頼らずにCMS制御で実現する。
function LoopMovie(TBID, COMP_ID, duration){
	if(duration > 0)
		window.setTimeout("LoopMoviee("+TBID+","+COMP_ID+","+duration+")", duration * 10 + 6000);
}
function LoopMoviee(TBID, COMP_ID, duration){

	//$("box"+COMP_ID).innerHTML	=	$("box"+COMP_ID+"h").value;//20070927_04_w--
	//【FlowPlayer】loop再生のためのタグを<form>でなくSESSIONで行う。20070927_04_w++
	onloadComponent({TBID:TBID, COMP_ID:COMP_ID});//TBID, COMP_ID

	LoopMovie(TBID, COMP_ID, duration);
}

//RestartMovie 20070214_01_w 動画再生コンポーネント：loop再生機能をobjectタグに頼らずにCMS制御で実現する。
function RestartMovie(COMP_ID){

	var	elements	=	$("box"+COMP_ID);

	//属性を操作するタグ
	var	tagArray	=	Array("embed", "object");

	//ボックスの中...objectおよびsrc属性を再セット
	var	src	=	Object();
		src.Filename	=	true;
		src.src			=	true;
		src.url			=	true;
		src.movie		=	true;
	var	element, item;
	for(var tag = 0; tag < tagArray.length; tag++)
		if(element	= elements.getElementsByTagName(tagArray[tag]))
			if(element.length)
				if(item = element.item(0))
					for(var name in src)
						if(item[name]){
							item.setAttribute(name,	item.getAttribute(name));
						}
}

//デジタルサイン向け：起動時：F11を催促する。
//	20070217_02_w 新規。
var Requestf11counter	=	30;
var	Requestf11index		=	0;
var	Requestf11Message	=	"【Ｆ11】で全画面にして下さい。";
function Requestf11(){
	document.title	=	(Requestf11index == 0? "　": "") + Requestf11Message + (Requestf11index == 1? "　": "");
						 Requestf11index = (Requestf11index + 1) % 2;
	if(--Requestf11counter)
		setTimeout("Requestf11()", 200);
}

//パラメータのデコード。20071024_01_w++
function decodeParams(p){
	for(var i in p){
		try{
			p[i] = p[i].replace(/#039;/g, "'");
		}
		catch(e){}
	}
	return	p;
}

//ジオコード
//Geocoding's function.20070330_01_w++
var map			=	null;
var geocoder	=	null;
function loadGeocoding(	p){/*
						p.address: string, p.marker: true or false.*/

	//パラメータのデコード。20071024_01_w++
	p	=	decodeParams(p);
	for(var no in p.records)
		p.records[no]	=	decodeParams(p.records[no]);

	if(GBrowserIsCompatible()){
		var	defaultcenter				=	geocoder?	false: true;					//20080302_10_w++
		if(!geocoder	)	geocoder	=	new GClientGeocoder();						//20080302_10_w+if(!geocoder	)
							map			=	new GMap2(document.getElementById("map"));
		if(defaultcenter)																//20080302_10_w++
			map.setCenter(new GLatLng(35.6587,139.7454), p.displaySize);

		//複数表示。20071024_01_w++
		var i;
		var	last	=	0;
		for(i in p.records);

		//20081014_01_w++
		showGeocodingAddressLoop(p, i);
		//20081014_01_w--	for(; i >= 0; i--){
		//20081014_01_w--		showGeocodingAddress('DRAW', p, p.records[i], i == 0? true: false);
		//20081014_01_w--	}
		//20081014_01_w--
		//20081014_01_w--	//中心位置指定対応。20071024_01_w++
		//20081014_01_w--	if(p.marker && p.CENTERPOINTIS && p.CENTERPOINT.length){
		//20081014_01_w--		showGeocodingAddress('CENTERPOINT', p, p.records[0], true);	//20081014_01_w-), false+, true)
		//20081014_01_w--	}
		//20081014_01_w--
		//20081014_01_w--	if(p.MAPCONTROL_IS		)map.addControl(new GLargeMapControl	());
		//20081014_01_w--	if(p.OVERVIEWCONTROL_IS	)map.addControl(new GOverviewMapControl	());
		//20081014_01_w--	if(p.TYPECONTROL_IS		)map.addControl(new GMapTypeControl		());
	}
}

//20081014_01_w++
function showGeocodingAddressLoop(p, i){
	showGeocodingAddress('DRAW', p, p.records[i], i == 0? true: false);
	if(--i >= 0){
		setTimeout(function(){showGeocodingAddressLoop(p, i);}, 200);
		return;
	}

	//中心位置指定対応。20071024_01_w++
	if(p.marker && p.CENTERPOINTIS && p.CENTERPOINT.length){
		showGeocodingAddress('CENTERPOINT', p, p.records[0], true);	//20081014_01_w-), false+, true)
	}

	if(p.MAPCONTROL_IS		)map.addControl(new GLargeMapControl	());
	if(p.OVERVIEWCONTROL_IS	)map.addControl(new GOverviewMapControl	());
	if(p.TYPECONTROL_IS		)map.addControl(new GMapTypeControl		());
}

function showGeocodingAddress(mode,	p, record, isLast){/*20071024_01_w+mode,+, record, isLast
								p.address: string, p.marker: true or false.*/
	if(p.mode != 'retry'){
		p.address	=	record[p.addressfield];//複数マーカー表示。20071024_01_w++

		//中心位置指定対応。20071024_01_w++
		if(mode == 'CENTERPOINT')
			p.address	=	p.CENTERPOINT;
	}

	if(geocoder){
		geocoder.getLatLng(
			p.address,
			function(point){
				if(point){
					map.setCenter(point, p.displaySize);
					if(mode == 'DRAW'){
						if(p.marker){
							var	icon	=	null;

							//オリジナルマーカー対応。20071024_01_w++
							if(p.MARKER_TYPE == 1 && p.MARKER_IMAGE.length && p.MARKER_WIDTH > 0 && p.MARKER_HEIGHT > 0){
								icon					=	new	GIcon();
								icon.image				=	p.MARKER_IMAGE;
								icon.iconSize			=	new	GSize(p.MARKER_WIDTH, p.MARKER_HEIGHT);
								//icon.shadow				=	'';//p.MARKER_IMAGE;
								//icon.showdowSize		=	new	GSize(0, 0);//p.MARKER_WIDTH, p.MARKER_HEIGHT);
								icon.iconAnchor			=	new	GPoint(p.MARKER_WIDTH / 2, p.MARKER_HEIGHT / 2);
								icon.infoWindowAnchor	=	new	GPoint(p.MARKER_WIDTH / 2, 0);
							}

							//個別マーカー対応。20071024_01_w++
							if(p.MARKER_TYPE == 2 && p.NAME_MARKER && p.NAME_MARKER.length && record[p.NAME_MARKER] && record[p.NAME_MARKER].length && p.MARKER_WIDTH > 0 && p.MARKER_HEIGHT > 0){
								icon					=	new	GIcon();
								icon.image				=	record[p.NAME_MARKER];
								icon.iconSize			=	new	GSize(p.MARKER_WIDTH, p.MARKER_HEIGHT);
								icon.iconAnchor			=	new	GPoint(p.MARKER_WIDTH / 2, p.MARKER_HEIGHT / 2);
								icon.infoWindowAnchor	=	new	GPoint(p.MARKER_WIDTH / 2, 0);
							}

							var	marker = new GMarker(point, icon);	//20071024_01_w+, icon
							var	iw	=	'';							//20071024_01_w++
							if(p.GUSHES_IS){//20071024_01_w--	marker.openInfoWindowHtml(p.address/* + "(" + point.lat() + "," + point.lng() + ")"*/);

								//吹き出しの中。20071024_01_w++
								if(p.LINKIS)//吹き出しからの詳細リンク。20080303_01_w++
									iw	+=	("<div style='cursor:pointer;' onclick=\"location.href='"+record['href']+"';\""+(record['target']? " target='"+record['target']+"'": '')+">");
								for(var i = 1; p['NAME_SEL'+i]; i++){
									if(iw.length)
										iw	+=	'<br />';
									if(record[p['NAME_SEL'+i]])
										iw	+=	(record[p['NAME_SEL'+i]+'_img']? record[p['NAME_SEL'+i]+'_img']: record[p['NAME_SEL'+i]]);
								}
								if(p.LINKIS)//吹き出しからの詳細リンク。20080303_01_w++
									iw	+=	"</div>";

								//マウスオーバーでインフォWindowを表示。20071024_01_w++
								GEvent.addListener(marker, 'mouseover', function(){
									marker.openInfoWindowHtml(iw);
								});

								//マウスアウトでインフォWindowを削除。20071024_01_w++
								if(p.GUSHES_CLOSEOUT == 1){
									GEvent.addListener(marker, 'mouseout', function(){
										marker.closeInfoWindow();
									});
								}

								//クリックで詳細リンク。20071024_01_w++
								if(p.LINKIS){
									GEvent.addListener(marker, 'click', function(){

										//20080227_02_w++
										if(record['target'])
											frames[record['target']].location.href	=	record['href'];
										else
										location.href	=	record['href'];
									});
								}

								if(p.GUSHES_NOPANE == 1)
									map.getPane(G_MAP_FLOAT_SHADOW_PANE).style.display	=	'none';
	        				}
							map.addOverlay(marker);

							if(p.GUSHES_IS && p.GUSHES_INITNONE != 1 && isLast)
								marker.openInfoWindowHtml(iw);
						}
					}
				}
				else{
					//正常に取得できない場合はスペースとハイフンで区切ってみる
					var	sp;
					if(typeof p.address == 'string' && p.address.length){//20080211_01_w++
						if((sp = p.address.split(' ')).length > 1){
							p.mode 	=	'retry';
							p.address	=	sp.slice(0, sp.length - 1).join(' ');
							showGeocodingAddress(mode, p, record, isLast);//20071024_01_w+mode, +, record
							return;
						}
						if((sp = p.address.split('-')).length > 1){
							p.mode 	=	'retry';
							p.address	=	sp.slice(0, sp.length - 1).join('-');
							showGeocodingAddress(mode, p, record, isLast);//20071024_01_w+mode, +, record
							return;
						}
					}
					//alert(p.address + " \u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3002");
				}
			}
		);
	}
}

//ジオコーダー。20070407_03_w++
function isGeocoding(	p){/*
						p.address: string,*/
	if(GBrowserIsCompatible()){
		if(!geocoder)
			geocoder = new GClientGeocoder();
		isGeocodingAddress(p);
	}
}
function isGeocodingAddress(	p){/*
								p.address: string, p.callback: ...*/
	if(geocoder){
		geocoder.getLatLng(
			p.address,
			function(point){
				if(!point){
					//正常に取得できない場合はスペースとハイフンで区切ってみる
					var	sp;
					if(typeof p.address == 'string' && p.address.length){//20080211_01_w++
						if((sp = p.address.split(' ')).length > 1){
							p.retry 	=	true;
							p.address	=	sp.slice(0, sp.length - 1).join(' ');
							isGeocodingAddress(p);
							return false;
						}
						if((sp = p.address.split('-')).length > 1){
							p.retry 	=	true;
							p.address	=	sp.slice(0, sp.length - 1).join('-');
							isGeocodingAddress(p);
							return false;
						}
					}

					if(p.callback)
						p.callback(-1);
				}
				else
				if(p.callback)
					p.callback(point.lat() + "," + point.lng());
			}
		);
	}
	return	false;
}

//	20070406_02_w 位置情報定義：フィールドタイプ「位置情報」追加：keycheck種に"locationgps"を追加。
//	↓            緯度・経度関連関数追加。

//度→度分秒(ddd.mm.ss.ss)
function toDms(dms){
	var	EH	=	parseInt(dms);
	var	EM	=	parseInt((dms - EH) * 60);
	var	sec	=	(dms - EH - (EM / 60)) * (60*60);
	var	ES	=	Math.floor(sec);
	var	ESS	=	Math.round((sec - ES) * 1000);

	if(EM < 10)
		EM = "0" + EM;

	if(ES < 10)
		ES = "0" + ES;

	if(('' + ESS).length < 3)
		for(var i = ('' + ESS).length; i < 3; i++)
			ESS = "0" + ESS;

	return	EH + '.' + EM + '.' + ES + "." + ESS;
}

//度分秒(ddd.mm.ss.ss)→度
function toDegree(degree){

	var	t = degree.split(".");
	var	t3=	("0."+t[3]) * 1;

	return	parseInt(t[0]) + (parseInt(t[1]) / 60) + (parseInt(t[2]) / (60*60)) + (t3 / (60*60));
}

function toWgs84Lat(degreeTokyoLat, degreeTokyoLng){
	return	degreeTokyoLat - (degreeTokyoLat * 0.00010695) + (degreeTokyoLng * 0.000017464) + 0.0046017;
}

function toWgs84Lng(degreeTokyoLat, degreeTokyoLng){
	return	degreeTokyoLng - (degreeTokyoLat * 0.000046038) - (degreeTokyoLng * 0.000083043) + 0.010040;
}

function toTokyoLng(dmsWgs84Lat, dmsWgs84Lng){
	return	dmsWgs84Lat + (dmsWgs84Lng * 0.00010696) - (dmsWgs84Lng * 0.000017467) - 0.0046020;
}

function toTokyoLat(dmsWgs84Lat, dmsWgs84Lng){
	return	dmsWgs84Lng + (dmsWgs84Lat * 0.000046047) + (dmsWgs84Lng * 0.000083049) - 0.010041;
}

//【認証：「公開制限」⇒「閲覧権限」に変更】デフォルト値設定に個々に定義を追加。20070805_02_w++
function cmsiClicktree(groupname, name, i, thisChecked){
	var	n, nm;
	var namelength = groupname.length;
	for(i++; $('check_' + name + '_' + i); i++)
		if((n = name + '_' + i).length < 3)	break;
			else if($('hidden_' + n).value.length < namelength)	break;
				else if($('hidden_' + n).value.indexOf(groupname) != 0)	break;
					else if($('check_' + n).checked != thisChecked){
						$('check_' + n).checked = thisChecked;
											nm = name.split('_');
						cmsiChecktreebutton(nm[0], i, thisChecked, $('value_' + n).value);
					}
}

//【認証：「公開制限」⇒「閲覧権限」に変更】デフォルト値設定に個々に定義を追加。20070805_02_w++
function cmsiChecktreebutton(name, i, thisChecked, value){
	var n = 'check_' + name + '_' + i;
	var	s;
	if(n.length)
		if($(n))
			if(thisChecked)
				$(name).value += '/'+value+'/';
					else
						$(name).value = $(name).value.replace("\/"+value+"\/", "", $(name).value);
}

//【認証：「公開制限」⇒「閲覧権限」に変更】デフォルト値設定に個々に定義を追加。20070805_02_w++
function cmsiUnchecktreeParentbutton(name, i, j, thisChecked, value){
	var n;
	if($('group_'+name+'_'+i+'_'+j))
		if($('group_'+name+'_'+i+'_'+j).value.length)
			if(n = $('group_'+name+'_'+i+'_'+j).value)
				if($('check_'+name+'_'+n))
					if($('check_'+name+'_'+n).checked)
						cmsiChecktreebutton(name, n, $('check_'+name+'_'+n).checked = false, $('value_'+name+'_'+n).value);
}

//【シーン作成】定周期処理。20070811_01_w++
var	sceneViewer				=	0;		//閲覧モード
var	sceneDefaultMoviepath	=	'';		//動画パス				20071021_15_w++
var	sceneFieldnamInp		=	'';		//ATT_SCENE_in			20071021_15_w++
var	sceneFieldnamOut		=	'';		//ATT_SCENE_out			20071021_15_w++
var	sceneFieldnamDur		=	'';		//ATT_SCENE_duration	20071021_15_w++
var	sceneTLID_WMV			=	0;		//TLID_SEL				20071021_15_w++
var	sceneRCID_WMV			=	0;		//RCID_SEL				20071021_15_w++
var	sceneDefaultCOMP_ID		=	0;		//シーン作成						sceneが定義。
var	sceneDefaultPlayer		=	'';		//動画再生player名(Player99)		sceneが定義。
var	sceneDefaultSwfPlayer	=	'';		//動画再生(SWF)player名(Player99)	sceneが定義。
var	sceneDefaultTBID		=	'';		//コンテンツID						sceneが定義。
var	sceneDefaultTLID		=	'';		//シーンテーブルID					sceneが定義。
var	sceneDefaultformCOMP_ID	=	0;		//テーブル表示（入力フォーム）ID	sceneが定義。20070919_04_w++
var	scenePausing			=	0;		//wmv:Pause要求
var	scenePausingPoint		=	0;		//20071010_04_w++
var	sceneSwfPlaying			=	0;		//swf:Play要求
var	sceneNEWIS				=	0;		//新規シーン作成モードあり。20071021_13_w++
var	scenePlayerControl		=	Array();//各プレイヤーコントロール
	scenePlayerControl['TGotoLabel'	]=	Array();//wmv:シーン頭だし			関数	wmvが定義。
	scenePlayerControl['Play'		]=	Array();//wmv:シーンPlay			関数	wmvが定義。
	scenePlayerControl['Pause'		]=	Array();//wmv:シーンPause			関数	wmvが定義。
	scenePlayerControl['Rate'		]=	Array();//wmv:シーン再生速度		関数	wmvが定義。
	scenePlayerControl['isActivate'	]=	Array();//wmv:シーン動作中？		関数	wmvが定義。
	scenePlayerControl['currentItem']=	Array();//wmv:シーン番号取得		関数	wmvが定義。//20071213_01_w++
	scenePlayerControl['GetPosition']=	Array();//wmv:シーン秒位置取得		関数	wmvが定義。
	scenePlayerControl['SetPosition']=	Array();//wmv:シーン秒位置セット	関数	wmvが定義。
function sceneTimecoding(o, i){
	if($(i)){

		//テンプレート読み込み時に移動。20070904_01_w--
		//テンプレート読み込み時に移動。//OUT点指定ボタン
		//テンプレート読み込み時に移動。if(!$('scene_list_0_OUT') && $('scene_outpoint_'+sceneDefaultCOMP_ID))
		//テンプレート読み込み時に移動。	$('scene_outpoint_'+sceneDefaultCOMP_ID).style.display = 'none';

		//タイムコード表示
		var	tc = strTimecodefromFrame(isFramefromMillisecond(Math.floor(sceneGetPosition(i) * 1000), 'som'), 'som');//20071207_05_w-scenePlayerControl['GetPosition'][i]()+sceneGetPosition(i)
		if($(o))
			if($(o).innerHTML != tc)
				$(o).innerHTML = tc;

		//プレビュー
		if(scenePreview || sceneViewer){
			var	nowtc	=	isFrame(tc, 'som');
			var	thisout	=	isOutFrame(sceneSelection);

			//swf playing...
			if(sceneSwfPlaying)
				if(!--sceneSwfPlaying)
					if($(sceneDefaultSwfPlayer))
						scenePlayerControl['Play'][sceneDefaultSwfPlayer]();

			//現在シーン終了
			if(nowtc > thisout){
				if($('scene_list_'+(++sceneSelection)+'_INP')){//次のシーンあり
					var	nextinp	=	isFrame($('scene_list_'+sceneSelection+'_INP').innerHTML, 'som');

					//wmv
					if((thisout + 1) != nextinp)//シーン間に空きがあればシーク
						sceneSetPosition(i, isMillisecondfromFrame(nextinp) / 1000);//20071207_05_w-scenePlayerControl['SetPosition'][i]+sceneSetPosition(i, )

					//swf
					if($(sceneDefaultSwfPlayer)){
						sceneGotoLabel(sceneDefaultSwfPlayer, sceneSelection);
						if($('scene_list_'+sceneSelection+'_NO2'))
							if(parseInt($('scene_list_'+sceneSelection+'_NO2').innerHTML) > 0)
								sceneSwfPlaying	=	3;
					}

					//table.入力フォームを常に表示。20070919_04_w++
					sceneToform();
				}
				else{//次のシーンなし
					sceneSelection--;//こうしないとプレビュー終了時の現在ライン表示が嘘になり、削除で違う行を削除してしまう。20070904_09_w--sceneSelection	=	0;
					sceneStopPreview();//20071009_02_w--scenePreview	=	false;
					scenePlayerControl['Pause'][i]();
				}
			}
		}

		//停止または一時停止状態なら1倍速にしておく
		if(!scenePlayerControl['isActivate'	][i]()){
			scenePlayerControl['Rate'		][i](1);
			sceneStopPreview();//20071009_02_w--scenePreview = false;
		}

		//カレントライン表示
		if(sceneViewer || scenePreview)
			sceneCurrentline(tc);

		//ショートカット処理
		window.document.onkeydown	=	sceneShortcut;
		$(i).onkeydown				=	sceneShortcut;
		$('scene_timecode_'+sceneDefaultCOMP_ID).focus();//20070919_11_w-window.document+$('scene_timecode_'+sceneDefaultCOMP_ID)

		//Pause
		if(scenePausing)
			if(scenePausingPoint <= sceneGetPosition(i)){//20071010_04_w-!--scenePausing+scenePausingPoint <= (scenePlayerControl['GetPosition'][i]() * 1000)//20071207_05_w-scenePlayerControl['GetPosition'][i]()+sceneGetPosition(i)
				scenePausing = false;//20071010_04_w++
				scenePlayerControl['Pause'][i]();
			}

		if(scenePlayerControl['isActivate'][i]() || scenePausing)
			setTimeout("sceneTimecoding('"+o+"', '"+i+"')", 20);
	}
}

//【シーン作成】OUT点表示なし時：最後のシーンのみ【OUT点】アイコンを表示する。20071009_01_w++
function sceneOutpIcondisplay(sceneno){
	var display	= $('scene_list_0_OUT') || sceneno == -1? 'block': $('scene_list_'+(sceneno + 1)+'_INP')? 'none': 'block';

	if($('scene_outpoint_'+sceneDefaultCOMP_ID))
		$('scene_outpoint_'+sceneDefaultCOMP_ID).style.display = display;
	if($('scene_form_'+sceneDefaultCOMP_ID+'_OUT'))
		$('scene_form_'+sceneDefaultCOMP_ID+'_OUT').style.display = $('scene_list_0_OUT')? display: 'none';//20071021_10_w++
}

//【シーン作成】プレビューステータスを表示。20071009_02_w++
function scenePreviewstatus(){
	if($('scene_previewstatus_'+sceneDefaultCOMP_ID))
		$('scene_previewstatus_'+sceneDefaultCOMP_ID).style.display = scenePreview || sceneViewer? 'block': 'none';
}

//【シーン作成】プレビュー停止。20071009_02_w++
function sceneStopPreview(){
	scenePreview = false;
	scenePreviewstatus();
}

//【シーン作成】プレビュー。20070811_01_w++
var	scenePreview = false;
function scenePreviews(player, swfPlayer){
	if(!$('scene_list_0_INP'))	alert('プレビューするシーンがありません。');else
	if(sceneSelection == -1  )	alert('プレビューするシーンを選択して下さい。');//20071021_13_w++
	else{
		scenePreview		=	true;

		//20070919_04_w--//table:通常シーン作成時、プレビュー開始時、入力フォーム表示をoffる。20070912_11_w++
		//20070919_04_w--if(swfPlayer.length < 6)
		//20070919_04_w--	if($('box' + swfPlayer))
		//20070919_04_w--		$('box' + swfPlayer).style.display = 'none';
		//20070919_04_w++table.入力フォームを常に表示。
		sceneToform();

		//swf
		if(sceneDefaultSwfPlayer){
			sceneGotoLabel(sceneDefaultSwfPlayer, sceneSelection);
			scenePlayerControl['Play'][swfPlayer]();
		}

		//wmv
		//【シーン作成】デフォルトを新規シーン編集モードにする：新規作成モード追加。20071021_13_w++
		if(sceneNEWIS && sceneToform_isnoExecute)
			sceneSetPosition(player, isMillisecondfromFrame(isFrame($('scene_list_'+sceneSelection+'_INP').innerHTML) + isFrame($('scene_list_'+sceneSelection+'_DUR').innerHTML)) / 1000);//20071207_05_w-scenePlayerControl['SetPosition'][player]+sceneSetPosition(player, )
				else
		sceneSetPosition(player, isMillisecondfromFrame(isFrame($('scene_list_'+sceneSelection+'_INP').innerHTML)) / 1000);//20071207_05_w-scenePlayerControl['SetPosition'][player]+sceneSetPosition(player, )
		scenePlayerControl['Play'		][player]();
	}
}

//【シーン作成」プレビュー開始。20070918_01_w++
var	scenePreview1time = 0;
function scenePreview1(COMP_ID, player, swfPlayer){
	sceneStopPreview();//20071009_03_w++

	$('box'+player.substr(6)).style.visibility = 'hidden';//20070925_10_w-display = 'none';
	scenePreview1time = 0;
	scenePreview2(COMP_ID, player, swfPlayer);
}
function scenePreview2(COMP_ID, player, swfPlayer){
	if(scenePreview1time == sceneGetPosition(player)){//20071207_05_w-scenePlayerControl['GetPosition'][player]()+sceneGetPosition(player)
		scenePlayerControl['Play'		][player]();
		setTimeout("scenePreview2("+COMP_ID+", '"+player+"', '"+swfPlayer+"')", 100);
	}
	else{
		scenePreview1time = isMillisecondfromFrame(isFrame($('scene_list_'+sceneSelection+'_INP').innerHTML)) / 1000;
		sceneSetPosition(player, isMillisecondfromFrame(isFrame($('scene_list_'+sceneSelection+'_INP').innerHTML)) / 1000);//20071207_05_w-scenePlayerControl['SetPosition'][player]+sceneSetPosition(player, )
		setTimeout("scenePreview3("+COMP_ID+", '"+player+"', '"+swfPlayer+"')", 1);
	}
}
function scenePreview3(COMP_ID, player, swfPlayer){
	if(scenePreview1time > sceneGetPosition(player)){//20071207_05_w-scenePlayerControl['GetPosition'][player]()+sceneGetPosition(player)
		scenePlayerControl['Play'][player]();
		setTimeout("scenePreview3("+COMP_ID+", '"+player+"', '"+swfPlayer+"')", 100);
	}
	else{
		scenePlayerControl['Pause'][player]();
		$('box'+player.substr(6)).style.visibility = 'visible';//20070925_10_w-display = 'block';
		setTimeout("scenePreview4("+COMP_ID+", '"+player+"', '"+swfPlayer+"')", 500);
	}
}
function scenePreview4(COMP_ID, player, swfPlayer){

	scenePreviews(player, swfPlayer);

	sceneStopPreview();//20071009_03_w++
	sceneTimecoding('scene_timecode_'+COMP_ID, player);

	//【シーン作成】デフォルトを新規シーン編集モードにする：新規作成モード追加。20071021_13_w++
	if(sceneNEWIS)
		if(sceneToform_isnoExecute)
			sceneNewmode();
				else
					scenePlayerControl['Pause'][player]();
	sceneToform_isnoExecute	=	false;//20071021_13_w++
}

//【シーン作成】swf GotoLabel。20070811_01_w++
function sceneGotoLabel(player, sceneno){
	var label;
	if(player.length)
		if($(player)){
			if((label =
				!$('scene_list_'+sceneno+'_NO1')? '':(//ページ番号未定義！
					$('scene_list_'+sceneno+'_NO2') && parseInt($('scene_list_'+sceneno+'_NO2').innerHTML) > 0?
						$('scene_list_'+sceneno+'_NO1').innerHTML + '.' + $('scene_list_'+sceneno+'_NO2').innerHTML://アニメーション
							'L' + $('scene_list_'+sceneno+'_NO1').innerHTML)))										//シーン頭
				scenePlayerControl['TGotoLabel'][player]('/', label);
		}
}

//【シーン作成】カレントライン表示。20070811_01_w++
//	作成モード/閲覧モードを認識。
function sceneCurrentline(currentTimecode){
	var	hear = -1;
	if(sceneViewer)
		for(var i = 0; $('scene_list_'+i); i++)
			if(($('scene_list_'+i).style.backgroundColor =
				($('scene_list_'+i+'_INP').innerHTML <= currentTimecode)
					&&								   (currentTimecode <= strTimecodefromFrame(isFrame($('scene_list_'+i+'_INP').innerHTML, 'som') + isFrame($('scene_list_'+i+'_DUR').innerHTML, 'dur'), 'eom'))?
						'#ddddff': '') == '#ddddff')
							hear = i;
	if(!sceneViewer)
		for(var i = 0; $('scene_list_'+i); i++)
			if(($('scene_list_'+i).style.backgroundColor = i == sceneSelection? '#ddddff': '') == '#ddddff')
				hear = i;

	//シーンリスト自動スクロール
	if(hear != -1 && $('scene_list_box_'+sceneDefaultCOMP_ID) && $('scene_list_'+hear+'_INP'))
		$('scene_list_box_'+sceneDefaultCOMP_ID).scrollTop = hear * parseInt($('scene_list_'+hear+'_INP').offsetHeight);

	//in点/out点入力フォームにコピー。20071021_10_w++
	sceneInoutCopy(hear);

	//OUT点表示なし時：最後のシーンのみ【OUT点】アイコンを表示する。20071009_01_w++
	sceneOutpIcondisplay(hear);

	//プレビューステータスを表示。20071009_02_w++
	scenePreviewstatus();
}

//【シーン作成】シーン選択。20070811_01_w++
var	sceneSelection = 0;
function sceneTo(player, lineno, target){
	sceneSelection = lineno;
	var	inp;
	if($(player))
		if((inp = $('scene_list_'+lineno+'_INP').innerHTML).length){
			sceneCurrentline(inp);

			//wmv
			sceneSeek(player, isMillisecondfromFrame(isFrame(inp, 'som'), 'som') / 1000);
			scenePausing = false;//20071010_04_w-0+false

			//swf
			if(sceneDefaultSwfPlayer.length && target.length){
				sceneGotoLabel(target, lineno);
				scenePlayerControl['Play'][target]();
			}

			//table
			sceneToform();
		}

	sceneStopPreview();//20071009_02_w--scenePreview = false;
}

//【シーン作成】シーン選択（テーブル表示入力フォーム）。20070919_04_w++
var		 sceneToform_isnoExecute	=	false;//20071021_13_w++
function sceneToform(){
	if(	 sceneToform_isnoExecute	== true)	return;
	if(!sceneDefaultSwfPlayer.length){
		var	recordid;
		var	target	=	sceneDefaultformCOMP_ID;
		if($('box'+target)) $('box'+target).style.visibility = 'hidden';//20070925_10_w-display = 'none';//テーブル表示入力フォームの表示制御。20070904_05_w++
		if(sceneSelection == -1)								return ;//新規作成モード時はテーブル表示は隠す。20071021_14_w++
		if(!$('scene_list_'+sceneSelection+'_id'))									alert('正当なシーンではありません。');else
		if(!(recordid  = $('scene_list_'+sceneSelection+'_id').innerHTML).length)	alert('シーンIDがありません。');else
		if(recordid < 1)															alert('シーン'+scendSelection+'は壊れています。');
		else
			setTimeout("Including('cms_content_view.php?tbid="+sceneDefaultTBID+"&c=x&mode=click_scenemaker:0:"+sceneDefaultTLID+":"+recordid+"&inc="+target+sceneToptcparam()+"');", 1);//20071207_08_w+sceneToptcparam()+
	}
}

//【シーン作成】preroll & play。20070811_01_w++
function sceneReopen(player){
	//操作系のボタンの使用制限を解除。20071010_06_w--if(!$('scene_list_0_INP'))	alert('シーンがありません。');else
	if($(player)){

		//-5秒
		scenePlayerControl['SetPosition'][player](scenePlayerControl['GetPosition'][player]() > 4.999999? scenePlayerControl['GetPosition'][player]() - 4.999999: 0);

		//0.7倍速
		scenePlayerControl['Rate'][player](0.7);
		scenePlayerControl['Play'][player]();
	}

	sceneStopPreview();//20071009_02_w--scenePreview = false;
}

//【シーン作成】-1 frame。20070811_01_w++
function scenebeforeframe(player){
	//操作系のボタンの使用制限を解除。20071010_06_w--if(!$('scene_list_0_INP'))	alert('シーンがありません。');else
	if($(player))
		sceneSeek(player, (scenePlayerControl['GetPosition'][player]() > 0.033333? scenePlayerControl['GetPosition'][player]() - 0.033333: 0) + sceneToptc);//20071207_05_w+ sceneToptc
}

//【シーン作成】+1 frame。20070811_01_w++
function sceneNextframe(player){
	//操作系のボタンの使用制限を解除。20071010_06_w--if(!$('scene_list_0_INP'))	alert('シーンがありません。');else
	if($(player))
		sceneSeek(player, scenePlayerControl['GetPosition'][player]() + 0.033333 + sceneToptc);//20071207_05_w+ sceneToptc
}

//【シーン作成ベースタイムコード】Cueup処理追加。20071207_02_w++
function sceneCueup(player, hour, minute, second, frame){
	sceneSeek(player, isMillisecondfromFrame(sceneGetCueupform(player, hour, minute, second, frame), 'som') / 1000);
}
function sceneGetCueupform(player, hour, minute, second, frame){
	var	numFrame	=	0;
	if($(player) && $(hour) && $(minute) && $(second) && $(frame)){
		var	h	=	parseInt($(hour		).value),
			m	=	parseInt($(minute	).value),
			s	=	parseInt($(second	).value),
			f	=	parseInt($(frame	).value);
			numFrame	=	isFrame(h+':'+m+':'+s+':'+f, 'som');
		var	strTimecode	=	strTimecodefromFrame(numFrame, 'som')
		var	a			=	strTimecode.split(':');
		$(hour	).value	=	a[0];
		$(minute).value	=	a[1];
		$(second).value	=	a[2];
		$(frame	).value	=	a[3];
	}

	return	numFrame;
}

//【シーン作成ベースタイムコード】Toptc定義追加。20071207_03_w++
var	sceneToptc	=	0;//秒
function sceneToptcset(player, hour, minute, second, frame){
	sceneToptc = isMillisecondfromFrame(sceneGetCueupform(player, hour, minute, second, frame), 'som') / 1000;
	sceneToptcing();
}

//【シーン作成ベースタイムコード】シーン作成コンポーネント：全てのTCをsceneToptcを加算したものにする。20071207_04_w++
var	sceneToptcbefore	=	0;//秒
function sceneToptcing(){
	sceneToptcingthis('scene_timecode_'	+sceneDefaultCOMP_ID);
	sceneToptcingthis('scene_form_'		+sceneDefaultCOMP_ID+'_INP');
	sceneToptcingthis('scene_form_'		+sceneDefaultCOMP_ID+'_OUT');
	sceneToptcinglist();
	sceneToptcbefore	=	sceneToptc;
}
function sceneToptcingthis(name){
	var	add	=	isFramefromMillisecond(Math.floor(sceneToptc * 1000), 'som') - isFramefromMillisecond(Math.floor(sceneToptcbefore * 1000), 'som');
	if($(name) && $(name).innerHTML.length)
		$(name).innerHTML	=	strTimecodefromFrame(isFrame($(name).innerHTML) + add, 'som');
}
function sceneToptcinglist(name){
	var	add	=	isFramefromMillisecond(Math.floor(sceneToptc * 1000), 'som') - isFramefromMillisecond(Math.floor(sceneToptcbefore * 1000), 'som');
	for(var i = 0; $('scene_list_'+i); i++){
		if($('scene_list_'+i+'_INP') && $('scene_list_'+i+'_INP').innerHTML.length)
			$('scene_list_'+i+'_INP').innerHTML	=	strTimecodefromFrame(isFrame($('scene_list_'+i+'_INP').innerHTML) + add, 'som');
		if($('scene_list_'+i+'_OUT') && $('scene_list_'+i+'_OUT').innerHTML.length)
			$('scene_list_'+i+'_OUT').innerHTML	=	strTimecodefromFrame(isFrame($('scene_list_'+i+'_OUT').innerHTML) + add, 'som');
	}
}

//【シーン作成ベースタイムコード】playerとのposition出し入れをsceneToptc対応に。20071207_05_w++
function sceneGetPosition(player		){return	scenePlayerControl['GetPosition'][player]() + sceneToptc;}
function sceneSetPosition(player, value	){scenePlayerControl['SetPosition'][player](value - sceneToptc);}

//【シーン作成ベースタイムコード】テーブル表示からの【登録】ボタンは全体イベントなのでToptcをサーバに渡す。20071207_08_w++
function sceneToptcparam(){return	sceneToptc > 0? '&sceneToptc='+sceneToptc: '';}

//【シーン作成】シーク。20070811_01_w++
function sceneSeek(player, second){
	if((s = second - 0.01) < 0)						//20071010_04_w++
		s = 0;										//20071010_04_w++
	if((ss = second - 0.03) < 0)					//20071010_04_w++
		ss = 0;										//20071010_04_w++
	sceneSetPosition(player, s);	//20071010_04_w-second+s//20071207_05_w-scenePlayerControl['SetPosition'][player]+sceneSetPosition(player, )
	if(!scenePausing){
		scenePlayerControl['Play'][player]();
		scenePausing		=	true;				//20071010_04_w-2+true
		scenePausingPoint	=	ss;					//20071010_04_w++
	}

	sceneStopPreview();//20071009_02_w--scenePreview = false;
}

//【シーン作成】in点指定。20070811_01_w++
function sceneInpoint(player){scenePoint(player, 'INP');}

//【シーン作成】out点指定。20070811_01_w++
function sceneOutpoint(player){

	//out点指定時：pause状態にする。20071011_01_w++
	scenePlayerControl['Pause'][player]();

	scenePoint(player, 'OUT');

	//デフォルトを新規シーン編集モードにする：新規作成モード時はout点指定で新規レコードを作成する。20071021_15_w++
	if(sceneSelection == -1)
		sceneAdd(sceneDefaultTLID, sceneDefaultMoviepath, sceneFieldnamInp, sceneFieldnamOut, sceneFieldnamDur, sceneDefaultTBID, sceneDefaultformCOMP_ID, sceneTLID_WMV, sceneRCID_WMV);
}

//【シーン作成】??点指定。20070811_01_w++
function scenePoint(player, kind){
	//操作系のボタンの使用制限を解除。20080207_01_w++if(!$('scene_list_0_INP'))	alert('シーンが選択されていません。');else
	if($(player)){

		//【シーン作成】デフォルトを新規シーン編集モードにする：新規作成モード追加。20071021_13_w++
		if(sceneSelection == -1){
			if($('scene_form_'+sceneDefaultCOMP_ID+'_'+kind))
				$('scene_form_'+sceneDefaultCOMP_ID+'_'+kind).innerHTML = strTimecodefromFrame(isFramefromMillisecond(Math.floor(sceneGetPosition(player) * 1000)), 'som');//20071207_05_w-scenePlayerControl['GetPosition'][player]()+sceneGetPosition(player)
		}

		//指定点代入
		if($('scene_list_'+sceneSelection+'_'+kind))
			$('scene_list_'+sceneSelection+'_'+kind).innerHTML = strTimecodefromFrame(isFramefromMillisecond(Math.floor(sceneGetPosition(player) * 1000)), 'som');//20071207_05_w-scenePlayerControl['GetPosition'][player]()+sceneGetPosition(player)
				else//OUT点表示なし時：【OUT点】クリックでduration変更。20071009_01_w++
					if(kind == 'OUT' && $('scene_list_'+sceneSelection+'_INP') && $('scene_list_'+sceneSelection+'_DUR')){
						var	outframe	=	isFramefromMillisecond(Math.floor(sceneGetPosition(player) * 1000));//20071207_05_w-scenePlayerControl['GetPosition'][player]()+sceneGetPosition(player)
						var	duration	=	outframe - isFrame($('scene_list_'+sceneSelection+'_INP').innerHTML, 'som');
							duration	=	duration > 0? duration + 1: 1;
						$('scene_list_'+sceneSelection+'_DUR').innerHTML = strTimecodefromFrame(duration, 'dur');
					}

		//in点によるソート
		if(kind == 'INP')
			sceneSort();

		//duration計算
		sceneRecalculation();

		//in点/out点入力フォームにコピー。20071021_10_w++
		sceneInoutCopy(sceneSelection);
	}

	sceneStopPreview();//20071009_02_w--scenePreview = false;
}

//【シーン作成】in点/out点入力フォームにコピー。20071021_10_w++
function sceneInoutCopy(hear){
	if(hear >= 0){
		if($('scene_form_' +sceneDefaultCOMP_ID+'_INP') && $('scene_list_'+hear+'_INP'))
			$('scene_form_' +sceneDefaultCOMP_ID+'_INP').innerHTML = $('scene_list_'+hear+'_INP').innerHTML;
		if($('scene_form_'+sceneDefaultCOMP_ID+'_OUT') && $('scene_list_'+hear+'_OUT'))
			$('scene_form_'+sceneDefaultCOMP_ID+'_OUT').innerHTML = $('scene_list_'+hear+'_OUT').innerHTML;
	}

	//追加ボタンは更新時のみ表示。20071021_11_w++
	sceneChangemode(hear);

	//削除ボタンは更新時のみ表示。20071021_12_w++
	if($('scene_del_'+sceneDefaultCOMP_ID))
		$('scene_del_'+sceneDefaultCOMP_ID).style.display	=	hear >= 0? 'block': 'none';
}

//【シーン作成】シーンリストソート。20070811_01_w++
function sceneSort(){
	var	itemname	=	Array('NO1','NO2','TTT','TXT','INP','OUT','DUR');
	var	itemnumber	=	itemname.length;
	var	inp, i, j;
	if($('scene_list_'+sceneSelection+'_INP')){
		var	selectedInp	=	$('scene_list_'+sceneSelection+'_INP').innerHTML;//現在選択されているシーンのin点

		//配列へ
		var	list=	Array();
		var	ina	=	Array();
		for(i = 0; $('scene_list_'+i+'_INP'); i++){
			ina[i]	=
			inp		=	$('scene_list_'+i+'_INP').innerHTML;
			list[inp]		= Array();
			list[inp]['id'] = $('scene_list_'+i+'_id').innerHTML;
			for(j = 0; j < itemnumber; j++)
				if($('scene_list_'+i+'_'+itemname[j]))
					list[inp][itemname[j]] = $('scene_list_'+i+'_'+itemname[j]).innerHTML;
		}

		//sort.
		ina = ina.sort();

		//ドキュメントへ
		var	scenenumber = ina.length;
		for(i = 0; i < scenenumber; i++){
			inp	=	ina[i];
			if(inp == selectedInp)
				sceneSelection = i;//シーン選択番号の変更
			$('scene_list_'+i+'_id').innerHTML = list[inp]['id'];
			for(j = 0; j < itemnumber; j++)
				if($('scene_list_'+i+'_'+itemname[j]))
					$('scene_list_'+i+'_'+itemname[j]).innerHTML = list[inp][itemname[j]];
		}

		//選択表示
		sceneCurrentline($('scene_list_'+sceneSelection+'_INP').innerHTML);
	}
}

//【シーン作成】in点/out点/duration計算。20070811_01_w++
function sceneRecalculation(){
	var	existOUT = $('scene_list_0_OUT')? true: false;

	for(var i = 0; $('scene_list_'+i+'_INP'); i++){

		//OUTがある
		if(existOUT){
			if($('scene_list_'+i+'_INP').innerHTML > $('scene_list_'+i+'_OUT').innerHTML)//INP/OUTが逆転
				$('scene_list_'+i+'_OUT').innerHTML = $('scene_list_'+i+'_INP').innerHTML;

			//DUR
			$('scene_list_'+i+'_DUR').innerHTML = strTimecodefromFrame(isFrame($('scene_list_'+i+'_OUT').innerHTML, 'eom') - isFrame($('scene_list_'+i+'_INP').innerHTML, 'som') + 1, 'dur');
		}
		else//OUTがなく、次のシーンがある場合は次のシーンにつなぐ
			if($('scene_list_'+(i+1)+'_INP'))
				$('scene_list_'+i+'_DUR').innerHTML = strTimecodefromFrame(isFrame($('scene_list_'+(i+1)+'_INP').innerHTML, 'som') - isFrame($('scene_list_'+i+'_INP').innerHTML, 'som'), 'dur');
	}
}

//【シーン作成】追加ボタンは更新時のみ表示。20071021_11_w++
function sceneChangemode(hear){
	if($('scene_new_' +sceneDefaultCOMP_ID) && $('scene_edit_'+sceneDefaultCOMP_ID)){
		$('scene_new_' +sceneDefaultCOMP_ID).style.display	=	hear >= 0? 'none'	:'block';
		$('scene_edit_'+sceneDefaultCOMP_ID).style.display	=	hear >= 0? (sceneNEWIS? 'block': 'none'):'none' ;
	}

	sceneOutpIcondisplay(hear);
}

//【シーン作成】デフォルトを新規シーン編集モードにする：新規作成モード追加。20071021_13_w++
function sceneNewmode(){
	sceneSelection	=	-1;
	sceneToform();
	sceneCurrentline('99:99:99:99');
	$('scene_form_'+sceneDefaultCOMP_ID+'_INP').innerHTML = strTimecodefromFrame(isFramefromMillisecond(Math.floor(sceneGetPosition(sceneDefaultPlayer) * 1000)), 'som');//20071207_05_w-scenePlayerControl['GetPosition'][sceneDefaultPlayer]()+sceneGetPosition(sceneDefaultPlayer)
	$('scene_form_'+sceneDefaultCOMP_ID+'_OUT').innerHTML = '';

	sceneChangemode(sceneSelection);
}

//【シーン作成】シーン登録。20070811_01_w++
function sceneEntry(TLID_SCN, strMoviepath, strInp, strOut, strDur, isRealentry, next){//20071004_01_w+, next
	if(!$('scene_list_0_INP'))	alert('登録するシーンがありません。');
	else{
		var	mode = isRealentry? '登録': '保存';
		theConditionOpen('シーン'+mode);			//20070906_03_w++
		theCondition('シーン'+mode+'準備中．．．');	//20070906_03_w++

		//ID/INP/OUT/DUR収集
		var	toptc	=	isFramefromMillisecond(Math.floor(sceneToptc * 1000));//20071207_07_w【シーン作成ベースタイムコード】シーン登録依頼時：TCフィールドからToptcを引く。++
		var	params = 'TLID_SCN='+TLID_SCN+'&strMoviepath='+strMoviepath;
		for(var i = 0; $('scene_list_'+i); i++)
			params += '&r['+i+'][ID]='+$('scene_list_'+i+'_id').innerHTML
				+'&r['+i+']['+strInp+']='+strTimecodefromFrame(isFrame($('scene_list_'+i+'_INP').innerHTML, 'som') - toptc, 'som')//20071207_07_w-$('scene_list_'+i+'_id').innerHTML+strTimecodefromFrame(isFrame($('scene_list_'+i+'_id').innerHTML, 'som') - toptc, 'som')
					+'&r['+i+']['+strOut+']='+strTimecodefromFrame(isOutFrame(i) - toptc, 'eom')//20071207_07_w-strTimecodefromFrame(isOutFrame(i), 'eom')+strTimecodefromFrame(isOutFrame(i) - toptc, 'eom')
						+'&r['+i+']['+strDur+']='+$('scene_list_'+i+'_DUR').innerHTML
							+(!isRealentry? '&csv=no': '');

		//登録
		theCondition('シーンを'+mode+'しています．．．');//20070906_03_w++
		var	httpObj		=	new Ajax.Request('cmsComponentViewer_scenemaker.ajax.php', {
			//20071004--asynchronous:false,
			postBody	:params,
			onSuccess	:function(){//20071004_01_w--if(httpObj.responseIsSuccess()){
				if(httpObj.transport.responseText != 'ok')
					alert(httpObj.transport.responseText);
				theConditionClose();					//20070906_03_w++
				sceneStopPreview();//20071009_02_w--scenePreview = false;//下には行かないためここでも処理。

				if(next)next();//20071004_01_w++
			}
		});
	}

	sceneStopPreview();//20071009_02_w--scenePreview = false;
}

//【シーン作成】シーン追加。20070904_03_w++
function sceneAdd(TLID_SCN, strMoviepath, strInp, strOut, strDur, tbid, targetid, TLID_WMV, RCID_WMV){//20070904_06_w+, TLID_WMV//20070904_10_w+, RCID_WMV
	sceneStopPreview();//20071009_02_w--scenePreview = false;

	if(!strMoviepath.length)	alert('動画を選択して下さい。');
	else{
		if($('box'+targetid)) $('box'+targetid).style.visibility = 'hidden';//20070925_10_w-display = 'none';//テーブル表示入力フォームの表示制御。20070904_05_w++

		//現在の状態を保存
		if($('scene_list_0_INP'))
			sceneEntry(TLID_SCN, strMoviepath, strInp, strOut, strDur, false, sceneAddNext);//20071004_01_w+, null	//20071010_01_w-null+sceneAddNext
				else																								//20071010_01_w++
					sceneAddNext();																					//20071010_01_w++

		//新規シーン作成
		function sceneAddNext(){//関数化。20071010_01_w++

			//デフォルトを新規シーン編集モードにする：新規作成モード時はout点指定で新規レコードを作成する。20071021_15_w++
			//20071021_15_w--新規シーンのin点を現在tcにする。20070919_02_w++
			//20071021_15_w--var	inp	=	strTimecodefromFrame(isFramefromMillisecond(Math.floor(sceneGetPosition(sceneDefaultPlayer) * 1000)));//20071207_05_w-scenePlayerControl['GetPosition'][sceneDefaultPlayer]()+sceneGetPosition(sceneDefaultPlayer)
			//20071021_15_w--var	outp=	strTimecodefromFrame(isFramefromMillisecond(Math.floor(sceneGetPosition(sceneDefaultPlayer) * 1000 + 1000)) - 1);//20071207_05_w-scenePlayerControl['GetPosition'][sceneDefaultPlayer]()+sceneGetPosition(sceneDefaultPlayer)
			//20071021_15_w--var	dur	=	strTimecodefromFrame(isFrame(outp, 'eom') - isFrame(inp, 'som') + 1, 'dur');
			var	inp	=	$('scene_form_'+sceneDefaultCOMP_ID+'_INP').innerHTML;
			var	outp=	$('scene_form_'+sceneDefaultCOMP_ID+'_OUT')? $('scene_form_'+sceneDefaultCOMP_ID+'_OUT').innerHTML: $('scene_form_'+sceneDefaultCOMP_ID+'_INP').innerHTML;
			var	dur	=	strTimecodefromFrame(isFrame(outp, 'eom') - isFrame(inp, 'som') + 1, 'dur');

			//【シーン作成ベースタイムコード】シーン登録依頼時：TCフィールドからToptcを引く。20071207_07_w++
			var	toptc	=	isFramefromMillisecond(Math.floor(sceneToptc * 1000));
			inp			=	strTimecodefromFrame(isFrame(inp , 'som') - toptc, 'som');
			outp		=	strTimecodefromFrame(isFrame(outp, 'eom') - toptc, 'eom');
			dur			=	strTimecodefromFrame(isFrame(outp, 'eom') - isFrame(inp , 'som') + 1);

			var	params = 'isnew=1&TLID_SCN='+TLID_SCN+'&strMoviepath='+strMoviepath
				+'&r[0]['+strInp+']='+inp	//20070919_02_w-($('scene_list_'+sceneSelection+'_INP')? $('scene_list_'+sceneSelection+'_INP').innerHTML: '00:00:00:00')+inp
				+'&r[0]['+strOut+']='+outp	//20070919_02_w-($('scene_list_'+sceneSelection+'_OUT')? $('scene_list_'+sceneSelection+'_OUT').innerHTML: '00:00:00:00')+outp
				+'&r[0]['+strDur+']='+dur	//20070919_02_w-($('scene_list_'+sceneSelection+'_DUR')? $('scene_list_'+sceneSelection+'_DUR').innerHTML: '00:00:00:00')+dur
				+'&mtid='+(TLID_WMV.length && TLID_WMV != TLID_SCN? TLID_WMV: ($('scene_list_0_mtid')? $('scene_list_0_mtid').innerHTML: ''))	//20070904_10_w++
				+'&mrid='+(RCID_WMV.length && TLID_WMV != TLID_SCN? RCID_WMV: ($('scene_list_0_mrid')? $('scene_list_0_mrid').innerHTML: ''));	//20070904_10_w++

			//登録
			var	httpObj		=	new Ajax.Request('cmsComponentViewer_scenemaker.ajax.php', {
				//20071004_01_w--asynchronous:false,
				postBody	:params,
				onSuccess	:function(){//20071004_01_w--if(httpObj.responseIsSuccess()){
					var	result = httpObj.transport.responseText.split(':');
					if(result[0]	!= 'ok') alert(httpObj.transport.responseText);else
					if((newrecordid = result[1]) < 1) alert('新規レコードが作成出来ませんでした。');
					else{
						//投稿フォームのために詳細リンクイベントを作成し呼び出し。$this->isDefaultpage()
						setTimeout("Including('cms_content_view.php?tbid="+tbid+"&c=x&mode=click_scenemaker:0:"+TLID_SCN+":"+newrecordid+"&inc="+targetid+sceneToptcparam()+"');", 1);//20071207_08_w+sceneToptcparam()+

						//追加時は再描画せず、テーブル表示側の【登録】で再描画。20071021_15_w++
						//20071021_15_w--//追加・削除後の再描画：新規に作成したレコードにフォーカスする。20070904_06_w++
						//20071021_15_w--if(TLID_SCN == TLID_WMV)
						//20071021_15_w--	setTimeout("location.href = 'cms_content_view.php?tbid="+tbid+"&c=x&mode=click_scenemaker:0:"+TLID_SCN+":"+result[1]+"'", 10);
						//20071021_15_w--
						//20071021_15_w--else//動画選択時も同様に新規シーンにフォーカスする。20070919_03_w++
						//20071021_15_w--	setTimeout("location.href = 'cms_content_view.php?tbid="+tbid+"&c=x&mode=click_scenemaker:0:"+TLID_WMV+":"+RCID_WMV+"&forcusID="+result[1]+sceneToptcparam()+"'", 10);//20071207_08_w+sceneToptcparam()
					}
				}
			});
		}
	}
}

//【シーン作成】シーン削除。20070904_04_w++
function sceneDel(TLID_SCN, strMoviepath, strInp, strOut, strDur, tbid, targetid, TLID_WMV, RCID_WMV){
	sceneStopPreview();//20071009_02_w--scenePreview = false;

	if(!strMoviepath.length)								alert('動画を選択して下さい。');else
	if(!$('scene_list_'+sceneSelection+'_id'))				alert('シーンが選択されていません。');else
	if( $('scene_list_'+sceneSelection+'_id').innerHTML < 1)alert('シーンは登録されていません。');else
	if(!TLID_WMV.length)									alert('対象を選択して下さい。');else
	if(!RCID_WMV.length)									alert('対象を選択して下さい。');
	else{
		if(ConfirmDelete($('scene_list_'+sceneSelection+'_TXT')? $('scene_list_'+sceneSelection+'_TXT').innerHTML: $('scene_list_'+sceneSelection+'_INP').innerHTML)){

			//現在の状態を保存
			if($('scene_list_0_INP'))
				sceneEntry(TLID_SCN, strMoviepath, strInp, strOut, strDur, false, sceneDelNext);//20071004_01_w+, null	//20071010_01_w-null+sceneDelNext
					else																								//20071010_01_w++
						sceneDelNext();																					//20071010_01_w++

			//シーン削除パラメータ
			function sceneDelNext(){																						//20071010_01_w++
				var	params = 'isdel=1&TLID_SCN='+TLID_SCN+'&RCID_SCN='+$('scene_list_'+sceneSelection+'_id').innerHTML;

				//登録
				if($('box'+targetid)) $('box'+targetid).style.visibility = 'hidden';//20070925_10_w-display = 'none';//テーブル表示入力フォームの表示制御。20070904_05_w++
				var	httpObj		=	new Ajax.Request('cmsComponentViewer_scenemaker.ajax.php', {
					//20071004_01_w--asynchronous:false,
					postBody	:params,
					onSuccess	:function(){//20071004_01_w--if(httpObj.responseIsSuccess()){
						if(httpObj.transport.responseText != 'ok') alert(httpObj.transport.responseText);
						else{
							//【シーン更新】追加・削除後の再描画：削除後は詳細リンクを無効にする。20070904_06_w++
							if(TLID_SCN == TLID_WMV)
								TLID_WMV = RCID_WMV = '';
							//最ロードのために詳細リンクイベントを作成し呼び出し。$this->isDefaultpage()
							location.href = "cms_content_view.php?tbid="+tbid+"&c=x&mode=click_scenemaker:0:"+TLID_WMV+":"+RCID_WMV+sceneToptcparam();//20071207_08_w+sceneToptcparam()
						}
					}
				});
			}
		}
	}
}

//【シーン作成】ミリ秒⇒フレーム。20070811_01_w++
function isFramefromMillisecond(millisecond, kind){
	if(!kind || !kind.length)kind = 'dur';

	return Math.ceil(millisecond / 33.333);
}

//【シーン作成】フレーム⇒ミリ秒。20070811_01_w++
function isMillisecondfromFrame(frame, kind){
	if(!kind || !kind.length)kind = 'dur';

	return frame * 33.333;
}

//【シーン作成】out点frame値取得。20070811_01_w++
function isOutFrame(sceneno){
	if($('scene_list_'+sceneno+'_OUT'))
		return	isFrame($('scene_list_'+sceneno+'_OUT').innerHTML, 'eom');
	else
		if($('scene_list_'+(sceneno+1)+'_INP'))
			return	isFrame($('scene_list_'+(sceneno+1)+'_INP').innerHTML, 'som') - 1;

	return	isFrame($('scene_list_'+sceneno+'_INP').innerHTML, 'som') + isFrame($('scene_list_'+sceneno+'_DUR').innerHTML, 'dur') - 1;
}

//CUEUP値入力フィールドにフォーカスがあるときはpreroll&playをしない。20071207_06_w++
var	sceneDisableShortcut	=	false;

//【シーン作成】ショートカット。20070811_01_w++
function sceneShortcut(){return sceneShortcutthis(event.keyCode);}
function sceneShortcutthis(keyCode){
	switch(keyCode){
		case	0x20://・	スペースキー	スタート、一時停止。
			if(!scenePlayerControl['isActivate'][sceneDefaultPlayer]())
				scenePlayerControl['Play'][sceneDefaultPlayer]();
					else
						scenePlayerControl['Pause'][sceneDefaultPlayer]();
			return	false;//20070904_02_w++
			break;
		//20071021_15_w--
		//20071021_15_w--case	0x0d://・	Enterキー	メタデータ登録。
		//20071021_15_w--	if($('scene_entry_'+sceneDefaultCOMP_ID))
		//20071021_15_w--		$('scene_entry_'+sceneDefaultCOMP_ID).click();
		//20071021_15_w--	return	false;//20070904_02_w++
		//20071021_15_w--	break;
		case	0x09://・	Tabキー	聞きなおしボタン	５秒戻って０．７倍速再生。

			//CUEUP値入力フィールドにフォーカスがあるときはpreroll&playをしない。20071207_06_w++
			if(sceneDisableShortcut)
				return	true;

			//20071021_15_w++
			sceneReopen(sceneDefaultPlayer);
			//20071021_15_w--if($('scene_reopen_'+sceneDefaultCOMP_ID))
			//20071021_15_w--	$('scene_reopen_'+sceneDefaultCOMP_ID).click();
			$('scene_timecode_'+sceneDefaultCOMP_ID).focus();//20070919_11_w++
			return	false;//20070904_02_w++
			break;
	}
}

//【タイムコード】相対フレーム整数からＴｉｍｅＣｏｄｅ文字列を作る。20070811_01_w++
function strTimecodefromFrame(frame, kind){
	var	flag = 0;
	var	h, m, s, f;
	if(!kind || !kind.length)kind = 'dur';

	h	=	Math.floor(frame / 1078920	) * 10;	/* 10H 	*/	frame = frame % 1078920;
	h	+=	Math.floor(frame / 107892	);		/* 1H 	*/	frame = frame % 107892;
	m	=	Math.floor(frame / 17982	) * 10;	/* 10M 	*/	frame = frame % 17982;
	if(frame >= 2){
		frame -= 2; flag=1;
	}
	m	+=	Math.floor(frame / 1798		);		/* 1M 	*/	frame = frame % 1798;
	if(flag)	 frame += 2;
	s	 =	Math.floor(frame / 300		) * 10;	/* 10S 	*/	frame = frame % 300;
	s	+=	Math.floor(frame / 30		);		/* 1S 	*/	frame = frame % 30;
	f	 =	Math.floor(frame /10		) * 10;	/* 10F	*/	frame = frame % 10;
	f	+=	frame;								/* 1F 	*/

	if(String(h).length < 2)	h = '0' + h;
	if(String(m).length < 2)	m = '0' + m;
	if(String(s).length < 2)	s = '0' + s;
	if(String(f).length < 2)	f = '0' + f;

	return	h + ':' + m + ':' + s + ':' + f;
}

//【タイムコード】ＴｉｍｅＣｏｄｅ文字列から相対フレーム整数を作る。
function isFrame(strTimecode, kind){
	if(!kind || !kind.length)kind = 'dur';

	var	a	=	strTimecode.split(':');
		a[0]		*=	1;
		a[1]		*=	1;
		a[2]		*=	1;
		a[3]		*=	1;
			frame	= (a[0] * 3600) + (a[1] * 60) + a[2];
			frame	= (frame * 30) + a[3];
			frame	-=((a[0] * 108) + (2 * (a[1] - Math.floor(a[1] / 10))));
	return	frame;
}

//【ajax状態表示】機能追加。20070906_03_w++
var	theModelessDialog = null;
function theConditionOpen(title){
	theConditionClose();

	if(title.length){
		wx = 400;
		wy = 30;
		theModelessDialog = showModelessDialog("ajaxCondition.php?m="+encodeURIComponent(title), window, "status:no;dialogWidth:"+wx+"px;dialogHeight:"+wy+"px;center:yes;help:no;resizable:no;scroll:no;edge:sunken;");
	}
}
function theConditionClose(){
	if(theModelessDialog){
		theModelessDialog.close();
		theModelessDialog = null;
	}
}
function theCondition(message){
	if(theModelessDialog)
		if(theModelessDialog.document)
			if(theModelessDialog.document.body)
				theModelessDialog.document.body.innerHTML = '<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;'+message;
}

//FlowPlayerを最後にロード。20070927_01_w++
function onloadComponent(p){//TBID, COMP_ID
	var	parameters	=	$H(p).toQueryString();
	new Ajax.Request('cmsComponentviewer_onloadComponent.php?cacheoff='+p.cacheoff, {
		postBody	:parameters,
		onSuccess	:function(result){//alert(result.responseText);
			var	lines	=	result.responseText.split(':');
			var	id;
			if(lines[0] != 'ok')				alert('error ! ' + result.responseText);else
			if((id = parseInt(lines[1])) <= 0)	alert('id error ! ' + id);				else
			if($('box' + id)){
				$('box' + id).innerHTML = result.responseText.substr(lines[0].length + 1 + lines[1].length + 1);
			}
		},
		onFailer	:function(httpObj	){alert("onFailer:onloadComponent("+parameters+")"+httpObj.statusText);},
		onException	:function(httpObj, e){alert("onException:onloadComponent("+parameters+")"+e.message);}
	});
}

//このページの先頭へ。20080514_10_w++
function backToTop() {
	var x1 = x2 = x3 = 0;
	var y1 = y2 = y3 = 0;
	if(document.documentElement){
		x1 = document.documentElement.scrollLeft || 0;
		y1 = document.documentElement.scrollTop || 0;
	}
	if(document.body){
		x2 = document.body.scrollLeft || 0;
		y2 = document.body.scrollTop || 0;
	}
	x3 = window.scrollX || 0;
	y3 = window.scrollY || 0;
	var x = Math.max(x1, Math.max(x2, x3));
	var y = Math.max(y1, Math.max(y2, y3));
	window.scrollTo(Math.floor(x / 2), Math.floor(y / 2));
	if(x > 0 || y > 0){
		window.setTimeout("backToTop()", 25);
	}
}

//20091126_01_k++　メソッドの存在チェック後、メソッドを走らせるメソッド追加
var methods = new Array();

function eval_method(){
	for(i = 0; i < methods.length; i++){
		method = methods[i].replace(/\((.*)/, "");

		if(typeof(method).toLowerCase() != "undefined"){
			setTimeout(methods[i], 1);
		}
	}

	return;

}
//20091126_01_k++

