function getObject(n, d) {
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=getObject(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}
var ns6 = document.getElementById && !document.all; 
function detailWindow(evt, status, time, text){
	windowDataOut(evt, status, '<strong>' + time + '</strong><br>' + text, 'subdetail', -100);
}
function reqDetWindow(evt, status, text){
	windowDataOut(evt, status, text, 'reqdetail', -390);
}
function confDetailWindow(evt, status, text){
	windowDataOut(evt, status, text, 'facdetail', -50);
}
function miniHelpWindow(evt, status, msgno){
	var helpmsg = new Array("",
		"予約状況の表示に使用される施設の名前です。<br />既存の名前と重複しても登録できますが、区別できなくなるため、お勧めできません。",
		"施設の予約条件などの詳細を入力します。予約画面などから参照できます。<br />全角400文字以内、タグも有効です。",
		"通常は予約申請後、管理者が認可して正式登録されますが、認可不要にした場合、申し込み順に自動で登録されます。",
		"１回の予約申請で確保できる時間数です。<br />制限しない場合、「0」を入力してください。",
		"予約されている時間を示すためのバーを設定できます。２つまで選択でき、その場合、表示の際は交互に使用されます（１つだけでも問題ありません）。",
		"予約可能な時間帯を曜日ごとに設定できます。<br />0:00〜24:00の範囲で指定します。『分』の指定可能な値は、全般設定の『予約最小単位』の影響を受けます。<br />施設に昼休みなどがあり、予約できない時間帯がある場合は「昼休み他」で設定してください。",
		" ",
		" ",
		" ",
		"コメントは１日に１つのみ記入でき、同じ日付を指定した場合、上書きされます。<br />タグは有効で、予約状況グラフの上部に&lt;p class=\"comment\"&gt; &lt;/p&gt;で囲んで表示されます。",
		"11",
		"『ホームページへ戻る』リンクから戻るページのURLを設定します。",
		"メールを送信する場合に必要です。解らない場合は、プロバイダやサーバー管理者に問い合わせてください。",
		"予約申請のメールを管理者宛に送信するかどうかを設定します。",
		"管理者宛に送信するメールの宛先を入力します。複数の宛先に送信したい場合は、カンマで区切ることで対応可能です（一部サーバー環境に依存します）。",
		"予約状況をグラフ表示する場合の時間帯の範囲を指定します。<br />予約可能な時間帯と表示する時間帯は互いに影響を与えません。",
		"表示可能な年の範囲を指定します。『過去の表示』での制限が優先されます。",
		"何分単位で予約可能か設定します。予約申請時の『分』の分割に適用されます。",
		"予約の申請が何日前から可能かを設定します。0の場合、当日以降であれば無制限に申請が可能です。",
		"過去の予約状況の表示をどの程度可能にするかを設定します。『非表示』の場合、当日以降しか表示できません。",
		"予約状況のグラフの下に施設ごとに分けて文章でリスト表示します。",
		"日付を跨いだ予約を可能にします。『許可』にすると、申請時に終了時間を日付を含めて指定できるようになります。<br />ただし、予約自体は日別に管理されているため、登録の際には、一日ごとに分割されて複数の予約として処理されます。",
		"設置されているURLを入力します。初期値で正しくない場合は入力し直してください。入力ミスがあると、メールで送信される認可URLが機能しません。",
		"日付を移動できるカレンダーです。表示する月数を指定します。<br />『0』で非表示です。",
		"表示されるカレンダーの開始位置。表示された時をベースとし、ここで指定された値で修正して表示します。",
		"カレンダーの表示位置を指定します。CSSでの表示切り替えですので、CSSを書き換えることで任意に変更も可能です。",
		"カレンダーのサイズをある程度変更できます。",
		"カレンダーのデザインをいくつか選択できます。",
		"利用申請ページを表示した際に、ページ下部に何日先の予約状況グラフを表示させるかを設定できます。<br />『0』に設定すると表示しません。",
		"一般の利用者が予約申請を可能にするかを設定します。<br />管理者のみが予約を行え、利用者側には表示のみする場合は、不許可にします。",
		"休業日・時間を設定すると、その時間には予約申請・予約の登録が行えなくなります。<br />ただし、すでに予約が入っている場合は休業の設定が行えませんので、重複する予約を削除するか、休業の時間を調整してください。",
		"この画面から行う予約は、予約申請・認可の処理を経ずに登録されます。<br />また、施設に設定された『予約可能時間数』の制限を受けずに予約が行えます。",
		"「ホームページへ戻る」");
	windowDataOut(evt, status, helpmsg[msgno], 'minihelp', -200);
}
function windowDataOut(evt, status, text, idname, xmod){
	var codewindow = getObject(idname);
	
	codewindow.innerHTML = text;
		
	if (codewindow.style)
	{
		codewindow = codewindow.style;
		if(status == 'show'){
			status = 'visible';
			if ( ns6 ){
				codewindow.top = ( evt.pageY + 20) + 'px';
				codewindow.left = ( evt.pageX + xmod ) + 'px';
			}else{
				var top;
				var left;
				if(document.compatMode == "CSS1Compat"){
					top = document.body.parentNode.scrollTop;
					left = document.body.parentNode.scrollLeft;
				}
				if(document.compatMode == "BackCompat"){
					top = document.documentElement.scrollTop;
					left = document.documentElement.scrollLeft;
				}
				if(document.body.scrollTop) {
					top = document.body.scrollTop;
					left = document.body.scrollLeft;
				}
				codewindow.top = (evt.y + top + 20) + 'px';
				codewindow.left = (evt.x + left + xmod) + 'px';
			}
		}else if(status == 'hide'){
			status = 'hidden';
		}
	}
	codewindow.visibility = status;
}

function showTimeTable(fid){
	window.open('facmng.cgi?p=fati&id=' + fid, '利用可能時間', 'width=250,height=400,toolbar=no,resizable=yes');
}

function delConfirm(name, url){
	if ( confirm('『' + name + '』を削除します。\r\n本当によろしいですか？') ) {
		location = url;
	}
}
function delConfirmNoP(){
	return confirm('削除します。\r\n本当によろしいですか？');
}
function confirmWord(word){
	return confirm('『' + word + '』します。\r\n本当によろしいですか？');
}
function confirmWordKey(event, word){
	if ( event.keyCode == 13 ){
		return confirm('『' + word + '』します。\r\n本当によろしいですか？');
	}
}

function figCheckHour(num){
	if ( num == '' ){
		return true;
	}
	if ( !isNaN(parseInt(num)) && ( 0 <= num && num <= 24) ){
		return true;
	}else{
		alert('時間は半角数字0〜24の範囲で入力してください。');
		return false;
	}
}

function figCheckMin(num){
	if ( num == '' ){
		return true;
	}
	if ( !isNaN(parseInt(num)) && ( 0 <= num && num <= 59) ){
		return true;
	}else{
		alert('分は半角数字0〜59の範囲で入力してください。');
		return false;
	}
}
function figCheckMonth(num){
	if ( num == '' ){
		return true;
	}
	if ( !isNaN(parseInt(num)) && ( 1 <= num && num <= 12) ){
		return true;
	}else{
		alert('月は半角数字1〜12の範囲で入力してください。');
		return false;
	}
}
function figCheckDay(num){
	if ( num == '' ){
		return true;
	}
	if ( !isNaN(parseInt(num)) && ( 1 <= num && num <= 31) ){
		return true;
	}else{
		alert('日は半角数字1〜31の範囲で入力してください。');
		return false;
	}
}

function figCheck(num){
	if ( num == '' ){
		return true;
	}
	if ( !isNaN(parseInt(num)) ){
		return true;
	}else{
		alert('半角数字で入力してください。');
		return false;
	}
}
function restAllDayChange(check){
	var sth = getObject('rst_sth');	var stm = getObject('rst_stm');
	var edh = getObject('rst_edh');	var edm = getObject('rst_edm');
	if ( check ){
		sth.disabled = true;	stm.disabled = true;
		edh.disabled = true;	edm.disabled = true;
		sth.style.backgroundColor = '#D4D0C8';	stm.style.backgroundColor = '#D4D0C8';
		edh.style.backgroundColor = '#D4D0C8';	edm.style.backgroundColor = '#D4D0C8';
	}else{
		sth.disabled = false;	stm.disabled = false;
		edh.disabled = false;	edm.disabled = false;
		sth.style.backgroundColor = '#fff';	stm.style.backgroundColor = '#fff';
		edh.style.backgroundColor = '#fff';	edm.style.backgroundColor = '#fff';
	}
}

function InsTag(name, tag_value) {
	tag_value = '<{' + tag_value + '}>';
	
	var codewindow = getObject(name);
	if (document.selection) {
		codewindow.focus();
		codewindow = document.selection.createRange();
		codewindow.text = tag_value;
	}else if(codewindow.selectionStart || codewindow.selectionStart == '0') {
		var startPos = codewindow.selectionStart;
		var endPos = codewindow.selectionEnd;
		codewindow.value = codewindow.value.substring(0, startPos) + tag_value + codewindow.value.substring(endPos, codewindow.value.length);
	}
	else codewindow.value += tag_value;
}


