/*
	Web経審　Capture Enter Javascriptファイル
	ファイル名：captureEnter.js
	バージョン情報：0.0.1
	更新日：2008/02/25
	
	Copyright (C) 2007 Japan Multimedia Equipment, inc. All Rights Reserved.
*/

/* 初期値設定 */
var start = null;			// フォーカス初期ID
var prev = null;			// 現在フォーカスID
var next = null;			// 次のフォーカスID
var submitFlg = false;		// 送信許可フラグ
/* ブラウザチェック */
var moz = navigator.userAgent.indexOf('Gecko')!=-1;		// Mozilla
var nn4 = !!document.layers  							// NN4


/* 改行キー入力処理 */
function capEnter(s) {
	start = s;
	prev = s;
	self.focus();								//フォーカス初期化
	setNext(start);								//次のフォーカスIDをセット
	//document.getElementById(next).focus();		//最初の入力エレメントへフォーカスする
	
	// キー入力処理
	document.onkeypress = focusToNext;
}
/* 次のフォーカスを設定 */
function setNext(id, nid) {
	if(!!arguments[1]) {
		if(checkInputType(prev) == 'text') {
			if(!chkNum(prev)) {
				document.getElementById(prev).focus();
			} else {
		  		prev = id;
		  		next = nid;
			}
		} else {
	  		prev = id;
	  		next = nid;
  		}
	} else {
		next = id;
	}
}

/* フォーカス移動処理 */
function focusToNext(e) {
	if(getKeyCode(e)==13) {
		document.getElementById(next).focus();
		setSubmitFlg(e);
	}
}
/* 改行キー判定 */
function getKeyCode(e){
	var ua = navigator.userAgent;
	if(ua.search('opera(\ |\/)6')!=-1) {	// Opera6不可
		return null;
	} else if(document.layers) {			// NN4用
		return  e.which;
	} else if(document.all) {				// IE4,IE5,IE6,Opera7,Safari1用
		return  event.keyCode;
	} else if(document.getElementById) {	// NN6,NN7,Mozilla用
		return  e.which;
	} else {								//上記以外
		return null;
	}
}
/* 送信許可フラグ判定 */
function setSubmitFlg(e) {
	if((moz||nn4?e.target:event.srcElement).type=='submit') {
		submitFlg= true;
	} else {
		submitFlg= false;
	}
}
/* TabIndex ID検索 */
function findTabID(n) {
	objInput=document.getElementsByTagName('input');
	objSelect=document.getElementsByTagName('select');
	
	for(i=0; i < objInput.length; i++){
		if(objInput[i].tabIndex == n){
			return objInput[i].id;
		}
	}
	for(i=0; i < objSelect.length; i++){
		if(objSelect[i].tabIndex == n){
			return objSelect[i].id;
		}
	}
	return false;
}

/* Input Typeの判定 */
function checkInputType(id) {
	return document.getElementById(id).type;
}

function chkNum(id){
	if(checkId()) {
		var n = document.getElementById(id).value;
		
		if(n != '') {
			//カンマの消去
			n = separatorClear(n);
			var tmp = Number(n);
			if(isNaN(tmp)) {
				return false;
			}
			if(tmp < -99999999999 || tmp > 99999999999 || n.lastIndexOf('.') != -1) {
				return false;
			}
		}
	}
	return true;
}