<!--
/*******************************************************************************
* システム名：Ace JAPAN
* 著作権：Copyright(C) Ace JAPAN
* プログラム名：common.js
* 説明：共通JavaScriptファイル
*******************************************************************************/


	/****************************************************************
	* 機能：ボタン２度押し抑止
	* 引数：フォームオブジェクト
	*
	* 使用方法
	* ボタン２度押し制御を有効にする場合、ボタンのonClickイベントに
	* sendCheck(this)をセットする
	* 2パターンの制御方法があります。
	* ▼イメージ制御
	* 下記のタグを制御したいソースに埋め込みます。
	* <div id="CoverIMG" style="position:absolute;top:0px;left:0px;z-index:-1;">
	* 	<img src="./spacer.gif" width="100%" alt="">
	* </div>
	* ▼各ボタン制御
	* sendCheck(this)をセットするだけです。
	****************************************************************/
	var ahref = new Array();
	function sendCheck(form){

		// イメージ画像が見つかった場合は、画像制御を行う
		if (document.getElementById('CoverIMG') == null) {
			// まずはリンク情報を格納する
			var aobj = document.getElementsByTagName('A');
			for (i = 0; aobj.length>i; i++) {
				ahref[i] = aobj[i].getAttribute('href');
			}

			len = document.forms.length;
			for (j = 0; j < len; j++) {
				formex = document.forms[j];
				// フォーム内の各要素をチェックする
				for (i = 0; i < formex.elements.length; i++) {
					type = formex.elements[i].type;
					// 要素のタイプが｢submit｣｢button｣｢reset｣の場合、抑止にする
					if (type == "submit" || type == "button" || type == "reset") {
						formex.elements[i].disabled = true;
					}
					// 要素のタイプが｢radio｣｢checkbox｣の場合、抑止にする
					else if (type == "radio" || type == "checkbox") {
//						formex.elements[i].disabled = true;
					}
					// 要素のタイプが｢text｣｢textarea｣｢select-one｣｢select-multiple｣の場合、抑止にする
					else if (type == "text" || type == "textarea" || type == "select-one"
							|| type == "select-multiple") {
						formex.elements[i].readOnly = true;
						formex.elements[i].style.color = "#999999";
					}
				}
			}

			// リンクを無効にする
			var aobj = document.getElementsByTagName('A');
			for (i = 0; aobj.length>i; i++) {
				aobj[i].removeAttribute('href');
			}
		} else {
			// 画像で制御を行う
			document.getElementById('CoverIMG').style.zIndex = "3";
		}

		form.submit();
	}



	/****************************************************************
	* 機能：キー操作による制御を行う
	* 引数：なし
	* 使用方法
	* 各制御説明を参照
	****************************************************************/
	function nextForm(){

		// -------------------------------------------------
		// Enterキーによる誤送信防止 
		// 使用方法
		// Enterキーを有効にしたい場合は、id='none'にする
		// TEXTAREAとボタンはデフォルトでスルーされる
		// -------------------------------------------------
		// TEXTAREAの場合のみ、Enter処理を実行させる
		if (event.keyCode == 13 && document.activeElement.type != "textarea"
				&& document.activeElement.id != "none"
				&& document.activeElement.type != "button"
				&& document.activeElement.type != "submit") {
			return false;

		// -------------------------------------------------
		// Escキーによるボタン２度押し抑止解除
		// Escキーを押下されたらボタン２度押し抑止を解除する
		// 使用方法
		// このファイルを設置するだけで動作する
		// -------------------------------------------------
		} else if (event.keyCode == 27) {
			// イメージ画像が見つかった場合は、画像制御の解除を行う
			if (document.getElementById('CoverIMG') == null) {
				len = document.forms.length;
				for (j = 0; j < len; j++) {
					formex = document.forms[j];
					// フォーム内の各要素をチェックする
					for (i = 0; i < formex.elements.length; i++) {
						type = formex.elements[i].type;
						// 要素のタイプが｢submit｣｢button｣｢reset｣の場合、抑止にする
						if (type == "submit" || type == "button" || type == "reset") {
							formex.elements[i].disabled = false;
						}
						// 要素のタイプが｢radio｣｢checkbox｣の場合、抑止にする
						else if (type == "radio" || type == "checkbox") {
							formex.elements[i].disabled = false;
						}
						// 要素のタイプが｢text｣｢textarea｣｢select-one｣｢select-multiple｣の場合、抑止にする
						else if (type == "text" || type == "textarea" || type == "select-one"
								|| type == "select-multiple") {
							formex.elements[i].readOnly = false;
							formex.elements[i].style.color = "#000000";
						}
					}
				}
				// リンクを有効にする
				var aobj = document.getElementsByTagName('A');
				for( i = 0; aobj.length>i; i++) {
					aobj[i].setAttribute('href',ahref[i]);
				}
			} else {
				// 画像で制御を解除する
				document.getElementById('CoverIMG').style.zIndex = "-1";
			}
		}
		return true;
	}
	window.document.onkeydown = nextForm;



	/****************************************************************
	* 機能：日付リストの日付の制御を行う
	* 引数：obj				this
	*
	* 使用方法
	* 年・月のリストボックスにonChangeイベントをセットする
	* onChange='setDay(this);'
	****************************************************************/
	function setDay(obj){
		obj = obj.form;
		var years = parseInt(obj.years.options[obj.years.selectedIndex].value);
		var months = obj.months.options[obj.months.selectedIndex].value;
		var lastday = monthday(years,months);
		var itemnum = obj.days.length;
		if (lastday - 1 < obj.days.selectedIndex) {
			obj.days.selectedIndex = lastday - 1;
		}
		obj.days.length = lastday;
		for (cnt = itemnum + 1;cnt <= lastday;cnt++) {
			obj.days.options[cnt - 1].text = cnt;
		}
	}
	function monthday(years,months){
		var lastday = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
		if (((years % 4 == 0) && (years % 100 != 0)) || (years % 400 == 0)){
			lastday[1] = 29;
		}
		return lastday[months - 1];
	}



	/****************************************************************
	* 機能：テーブルなど選択された背景色を変更する
	* 引数：obj				this
	*     ：id				変更id番号
	*     ：Cnt				変更項目id数
	*     ：color			元のカラー
	*
	* 使用方法
	* 背景変更をする部分に｢id='(テーブル数)rowxx'｣をセットする
	* change_bgcolor(this,"(id:位置番号)","テーブル数")
	****************************************************************/
	function change_bgcolor(obj, id, Cnt, color) {
		form = obj.form;
		idnumber = "id"+id;
		for(var i = 0; i < Cnt; i++) {
			tdnumber = i+"row"+id;
			if (form.document.all(idnumber).checked == false) {
				form.document.getElementById(tdnumber).style.backgroundColor = color;
			} else {
				form.document.getElementById(tdnumber).style.backgroundColor = "#FFFF99";
			}
		}
	}



	/****************************************************************
	* 機能：スタートページ設定
	* 引数：setUrl			ステートぺージにするURL
	*
	* 使用方法
	* href="javascript:setStartPage('http://kmgr.info');"
	****************************************************************/
	function setStartPage(setUrl){
		document.body.style.behavior="url(#default#homepage)";
		document.body.setHomePage(setUrl);
	}



	/****************************************************************
	* 機能：画面を非表示にする
	* 引数：ch			チャンネル名
	*
	* 使用方法
	* 表示/非表示の切り替えを行う記述を<SPAN id='ID名'></SAPN>で
	* 囲み、表示/非表示切り替えを行うコントロールをボタンなどに埋め込む
	* <A href="javascript:checkExpand('ID名');">閉じる</A>
	****************************************************************/
	function checkExpand(ch) {
		var obj=document.all && document.all(ch) || document.getElementById && document.getElementById(ch);
		if (obj && obj.style) {
			obj.style.display = "none" == obj.style.display ?"" : "none"
		}
	}



	/****************************************************************
	* 機能：クリップボードにコピー 
	* 引数：arg			対象テキスト名
	*
	* 使用方法
	* <input type='button' name='Copy' value='コピー' onClick='CopyText("Text");'>
	****************************************************************/
	function CopyText(arg){
		var obj=document.all && document.all(arg) || document.getElementById && document.getElementById(arg);
		if (obj.value) {
			var doc = document.body.createTextRange();
			doc.moveToElementText(obj);
			doc.execCommand("copy");
			alert('クリップボードにコピーしました。');
		} else {
			alert('コピーするデータがありません。');
		}
	}
// -->
