// 戻る使用不可
// history.forward();

// コンテキストメニュー表示不可
// document.oncontextmenu = Function('return false;');

// F5キーSubmit制御
document.onkeydown=Function('return EnterSubmit();');

// 禁則文字チェック
document.onkeyup=Function('return ChangeEvent();');

//テキストボックスF5キーSUBMIT制御
//F5キーの制御
function EnterSubmit()
{
    //F5キーの制御
    if ( event.keyCode==116 ) {
        event.keyCode = null;
        return false;
    }

	//Ctrl + Dの制御
    if ((event.ctrlKey) && (event.keyCode==68)){
        event.keyCode = null;
        return false;
    }
    
}

//Enter キーを Tabに変換
function funEnter_Click(){
	if( event.keyCode == 0x0d ) {
		event.keyCode = 0x09;
	}
}


// アラート表示
function InputAlert(str){
	alert('' + str + 'を入力してください。');
	return true;
}
function FormatAlert(str){
	alert('' + str + 'が正しくありません。');
	return true;
}

//TEXT項目の未入力チェック
function fncTxtInpChk(str){

	str.value = fncTrim(str.value);
	
	if( str.value==null || fncTrim(str.value)=="" ){
		return false;
	}
	return true;
}

// 禁則文字チェック
function ChangeEvent(){

	if ( event.srcElement.type == 'text' || event.srcElement.type == 'textarea'  ) {
		var obj = event.srcElement;
		var strErr = '<>"%&$?' + "'";
		
		for (i = 0; i < strErr.length; i++) {
			var chk = strErr.substring(i, i+1);
			while ( obj.value.indexOf(chk) != -1 ) {
				obj.value = obj.value.replace(chk, '');
			}
		}
	}

	return true;
}

//禁則文字チェック
function fncMojiCheck( obj ) {

	var strErr = '#＃<>"%&$?' + "'";

	for (i = 0; i < strErr.length; i++) {
	
		var chk = strErr.substring(i, i+1);
		
		while ( obj.value.indexOf(chk) != -1 ) {
			obj.focus();
			alert('禁則文字「< > " % & $ ? ' + "'" + ' # ＃」が含まれています。禁則文字は使用できません。');
			return false;
		}
		
	}
	
	//特殊文字チェック
	if (funTokuMojiCheck(obj.value) == false){
		obj.focus();
		alert('特殊文字が含まれています。特殊文字は使用できません。');
		return false;
	}
	
	return true;

}

// ポップアップ表示
function fncPopupDisp(url, popup) {

	var w, h;
	
	switch ( popup ) {
		case 'window':
			var w = 1024;
			var h = 745;
			break;
			
		case 'big':
			var w = 1000;
			var h = 745;
			break;
			
		case 'bigHalf':
			var w = 1010;
			var h = 500;
			break;
			
		case 'middle':
			var w = 800;
			var h = 620;
			break;
			
		case 'lightmiddle':
			var w = 600;
			var h = 400;
			break;		
			
		case 'small':
			var w = 500;
			var h = 200;
			break;
		
		case 'iraikensaku':
			var w = 450;
			var h = 500;
			//h = h + 32;	//showModalDialogの場合			break;

	}
	
	// CACHE無効化
	var dd = new Date();
	if ( url.indexOf('?') == -1 ) {
		url += '?time=' + dd.toLocaleString();
	} else {
		url += '&time=' + dd.toLocaleString();
	}
	
	if ( popup == 'report') {
		// レポート表示(Ａ４／縦)
		window.showModalDialog(url, window, 'scroll:on; status:off; help:off; dialogWidth:800px; dialogHeight:735px');
	} else if ( popup == 'reportwide' ) {
		// レポート表示(Ａ４／横)
		window.showModalDialog(url, window, 'scroll:on; status:off; help:off; dialogWidth:985px; dialogHeight:650px');
		
	} else {
	
		// ダイアログ表示
		window.showModalDialog(url, window, 'scroll:off; status:off; help:off; dialogWidth:' + w + 'px; dialogHeight:' + h + 'px');
		//sw = window.open(url, popup, "width=" + w + ", height=" + h + ", resizable = yes, status=no, scrollbars = yes, menubar = yes, top=" + y + ", left=" + x);
	
	}
		
}

//戻るボタン押下
function fncModoru_On(){

	// 自画面を閉じる
	self.opener=self;
	self.close();
}

//戻るボタン押下（確認メッセージあり）
function fncModoru_Msg(msg){

	if ( !confirm(msg + 'よろしいですか？') ) {
		return false;
	}

	// 自画面を閉じる
	self.opener=self;
	self.close();
}

// カンマ区切りに変換
function ins_Comma(suji) {
	var destStr = String(suji);
	var tmpStr = "";
	while (destStr != (tmpStr = destStr.replace(/^([+-]?\d+)(\d\d\d)/,"$1,$2"))) {
		destStr = tmpStr;
	}
	return destStr;
}

// カンマ区切りを解除
function del_Comma( inStr ) {
	return inStr.split(',').join('');
}

// TEXT項目の数値チェック
function fncTxtNumChk( obj ) {
	
	tword = obj.value;
	data = tword.match(/[^0-9]/g);
	if (data || !tword) {
		obj.focus();
		return false;
	}
	return true;
	
}

// TEXT項目の数値チェック(value)
function fncTxtNumChkValue( tword ) {
	
	data = tword.match(/[^0-9]/g);
	if (data || !tword) {
		return false;
	}
	return true;
	
}

// メールアドレス形式チェック
function fncTxtMailChkValue( tword ){

	
	data = tword;
	
	//if (!data.match(/^[0-9A-Za-z._]+@[0-9A-Za-z.]+$/)){
	if (!data.match(/^[A-Za-z0-9_\-][A-Za-z0-9_\.\-]*@([A-Za-z0-9_\-]+\.)+[A-Za-z0-9_\-]+$/)) {
		return false
	}
	//if (data || !tword){
	//	return false;
	//}
	return true;
	
}

// TEXT項目の数値チェック('-()'許可 value)
function fncTxtTELChkValue( tword ) {
	
	data = tword.match(/[^0-9\-\(\)]/g);
	if (data || !tword) {
		return false;
	}
	return true;
	
}

// TEXT項目の日付チェック
function fncTxtDateChk( obj ) { 

    // 正規表現による書式チェック 
    if(!obj.value.match(/^\d{4}\/\d{2}\/\d{2}$/)){ 
		obj.focus();
        return false; 
    } 
    
    var vYear = obj.value.substr(0, 4) - 0; 
    var vMonth = obj.value.substr(5, 2) - 1; // Javascriptは、0-11で表現 
    var vDay = obj.value.substr(8, 2) - 0; 
    
    // 月,日の妥当性チェック 
    if(vMonth >= 0 && vMonth <= 11 && vDay >= 1 && vDay <= 31){ 
        var vDt = new Date(vYear, vMonth, vDay); 
        if(isNaN(vDt)){ 
			obj.focus();
            return false; 
        }else if(vDt.getFullYear() == vYear && vDt.getMonth() == vMonth && vDt.getDate() == vDay){ 
            return true; 
        }else{ 
			obj.focus();
            return false; 
        } 
    }else{ 
		obj.focus();
        return false; 
    } 
} 

// 年月チェック
function fncYearMonthChk( obj ) { 

    // 正規表現による書式チェック 
    if(!obj.value.match(/^\d{4}\/\d{2}$/)){ 
		obj.focus();
        return false; 
    } 
    
    var vYear = obj.value.substr(0, 4) - 0; 
    var vMonth = obj.value.substr(5, 2) - 1; // Javascriptは、0-11で表現 
    
    // 月の妥当性チェック 
    if(vMonth >= 0 && vMonth <= 11){ 
        return true; 
    }else{ 
		obj.focus();
        return false; 
    } 
} 

// 半角全角スペース除去
function fncTrim(str){
	str = str.replace(/^[ 　]+/,"");
	str = str.replace(/[ 　]+$/,"");
	return(str);
}

// 桁数取得（全て１桁）
///桁数 計算（英数半角：1桁、カナ半角：2桁、漢字：2桁）
function fncGetLength(str) {
//	var getLen = 0;
//	var iCount = 0;
//	var iCode;
//	
//	for (iCount = 0; iCount < str.length; iCount++) {
//	  	iCode = str.charCodeAt(iCount);
//	if (((32 <= iCode) && (iCode <= 126)) || ((iCode == 10) || (iCode == 13))) {
//			getLen++;
//		}else{
//			getLen += 2;
//		}
//	}
//	return getLen;
	return str.length;
}

// 半角カナチェック
function fncHanKanaCheck(str){
	var iCount;
	var iCode;

	for (iCount=0 ; iCount < str.length ; iCount++){
	  	iCode = str.charCodeAt(iCount);
      	if ((65377 <= iCode) && (iCode <= 65439)){
			return false;
		}
   }
   
	return true;
}

// 全角カナチェック（半角英数字許可）
function fncZenKanaCheck(str){
	var a = str.match(/[^ァ-ヶ0-9０-９A-zＡ-ｚー\- 　]/);
	if(a){
		return false;
	}
	return true;
}	

// 半角カナを全角カナに変換する
function fncHanKanatoZenKana(str){
	txt = "ｱｲｳｴｵｶｷｸｹｺｻｼｽｾｿﾀﾁﾂﾃﾄﾅﾆﾇﾈﾉﾊﾋﾌﾍﾎﾏﾐﾑﾒﾓﾔﾕﾖﾗﾘﾙﾚﾛﾜｦﾝｧｨｩｪｫｬｭｮｯ､｡ｰ｢｣ﾞﾟ";
	zen = "アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヲンァィゥェォャュョッ、。ー「」";
	zen+= "　　　　　ガギグゲゴザジズゼゾダヂヅデド　　　　　バビブベボ　　　　　　　　　　　　　　　　　　　　　　　　　　　　";
	zen+= "　　　　　　　　　　　　　　　　　　　　　　　　　パピプペポ　　　　　　　　　　　　　　　　　　　　　　　　　　　　　";
	retVal = "";
		
	for (i=0; i<str.length; i++){
		c = str.charAt(i);
		cnext = str.charAt(i+1);
		n = txt.indexOf(c,0);
		nnext = txt.indexOf(cnext,0);
		if (n >= 0){
			if (nnext == 60){
				c = zen.charAt(n+60);
				i++;
			}else if (nnext == 61){
				c = zen.charAt(n+120);
				i++;
			}else{
				c = zen.charAt(n);
			}
		}
		if ((n != 60) && (n != 61)){
			retVal += c;
		}
	}
	return retVal;

}


// 確認メッセージ＆submit
function fncConfirm( Action, msg, buttons ) {

	// 確認メッセージ
	if ( !confirm(msg + 'よろしいですか？') ) {
		return false;
	}
	
	// ボタンの非活性化処理	
	fncButtonDisable( buttons )
	
	// サブミット
	Form1.hidAction.value = Action;
	Form1.submit();
	
}

// submit
function fncSubmit( Action, buttons ) {

	
	// ボタンの非活性化処理	
	fncButtonDisable( buttons )
	
	// サブミット
	Form1.hidAction.value = Action;
	Form1.submit();
	
}

// ボタンの非活性化処理

function fncButtonDisable( buttons ) {

	// カーソル砂時計	
	window.document.body.style.cursor = 'wait';
	
	for ( i = 0; i < buttons.length; ++ i ) {
		if ( document.all(buttons[i]) != null ) {
			document.all(buttons[i]).disabled = true;
		}
	}
}


//入力項目数値チェック
// kbn = 0:数値のみ入力可
//	   = 1:数値+[.]
//	   = 2:数値+[-](TEL)
//	   = 3:数値+[/](年月日)
//     = 10:コード系[ !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]],backspace,delete,enterのみ入力可能
function fncCommonInputChk(obj,kbn){

	var code = window.event.keyCode;

	if (kbn == 0 || kbn == 1 || kbn == 2 || kbn == 3 ){
		// 数値系
		
		// 190=[.],110=テンキー[.]
		if (code==190 && !(window.event.shiftKey) || code==110){
			if ((window.event.srcElement.value.indexOf('.',0) != -1) || (window.event.srcElement.value=='')){
				window.event.returnValue = false;
				return false;
			}
		}

		// 2桁目以降の[.]を許す		
		if (kbn == 1 && (code==190 || code==110)){
			return true;
		}
		
		// [-]を許す		
		if (kbn == 2 && (code==189 || code==109)){
			return true;
		}
		
		// [/]を許す		
		if (kbn == 3 && (code==191 || code==111) ){
			return true;
		}
		
		// 65〜90=[A-Z],106=テンキー[*],107=テンキー[+],111=テンキー[/],
		// SHIFT+48〜57=[!"#$%&'()],109=テンキー[-],
		// 110=テンキー[.],13=[ENTER],32=[ ]
		if ((code>=65 && code<=90) || code==106 || code==107 || code==111 || code>127
			|| (code>=48 && code <=57 && window.event.shiftKey) || code == 109
			|| code == 110 || code == 13 || code == 14 || code == 3 || code == 32){
			window.event.returnValue = false;
			return false;
		}
	}else if (kbn == 10) {

		if ((code>=65 && code <=90 && !(window.event.ctrlKey)) || (code==86 && (window.event.ctrlKey))){
			// a-zが入力されていたら,またはctrl+Vで大文字に変換する
			obj.value = obj.value.toUpperCase();
		}
		
	}else{
		window.event.returnValue = false;
		return false;
	}
		
	return true;
}

function funTokuMojiCheck(str) {

	var chkstr
	chkstr = str.replace(/[@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]_`abcdefghijklmnopqrstu~∞ｇョх援括窮欠合紫潤焉ﾟ∫島煤縺ﾛ∠凵諱ｿ∪]/g,"〓");
	chkstr = chkstr.replace(/[\]^_`abcdefghijklmnopqrstuvwxyz{|}~淫戒期釧厚匙囚嘱穿凧諦日琵放愈簾傅哄奧廈戌曉檄滯｡｢｣､･ｦｧｨｩｪｫｬｭｮｯｰｱｲｳｴｵｶｷｸｹｺｻｼｽｾｿﾀﾁﾂﾃﾄﾅﾆﾇﾈﾉﾊﾋﾌﾍﾎﾏﾐﾑﾒﾓﾔﾕﾖﾗﾘﾙﾚﾛﾜﾝﾞﾟ瓏磅糶脣蕣褝踰鋺顫鴾@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]/g,"〓");
	chkstr = chkstr.replace(/[\]^_`abcdefghijklmnopqrstuvwxyz{|}~胤拐棋屑口冊収埴箭蛸蹄乳眉方油練傴哈奬廐戔暾檢漲｡｢｣､･ｦｧｨｩｪｫｬｭｮｯｰｱｲｳｴｵｶｷｸｹｺｻｼｽｾｿﾀﾁﾂﾃﾄﾅﾆﾇﾈﾉﾊﾋﾌﾍﾎﾏﾐﾑﾒﾓﾔﾕﾖﾗﾘﾙﾚﾛﾜﾝﾞﾟ瓔磊糺脯蕘襠踴鍄顯鵆@ABCDEFGHIJK@ABCDEFGHI¬UVW]/g,"〓");

	if ( chkstr.indexOf("〓") < 0) {
		// 特殊文字が無ければ0
		return true;
	}else{
		return false;
	}
}

// 半角英数字入力項目の全角文字、禁則文字チェック処理
function fncHankakuInputCheck( obj , msg) {

	var strErr = '#＃<>"%&$?' + "'";
	var str = '';
	var i = 0;

	//全角文字がある場合falseを返す
	for ( i = 0; i < obj.value.length; i++ ) {
		if ( escape(obj.value.charAt(i)).length >= 4) {
			alert(msg + 'に全角文字が含まれています。全角文字は使用できません。');
			return false;
		}
	}

	for (i = 0; i < strErr.length; i++) {
	
		var chk = strErr.substring(i, i+1);
		
		while ( obj.value.indexOf(chk) != -1 ) {
			obj.focus();
			alert(msg + 'に禁則文字「< > " % & $ ? ' + "'" + ' # ＃」が含まれています。禁則文字は使用できません。');
			return false;
		}
	}
}

// クリップボード禁則文字チェック処理
function fncClipboardInputCheck(obj) {

	if (obj == null) {
		return(obj);
	}

	var strErr = '<>"%&$?' + "'";
	var errMsg = '';
	var i = 0;
			
	for (i = 0; i < strErr.length; i++) {
	
		var chk = strErr.substring(i, i+1);
		
		if ( obj.indexOf(chk) != -1 ) {
			errMsg = errMsg + chk;
			
			while ( obj.indexOf(chk) != -1 ) {
				obj = obj.replace(chk,'');
			}
		}
	}
	
	if ( errMsg != '' ) {
		alert('貼り付け内容に使用できない文字「' + errMsg + '」があるので、取り除いて貼り付けします。');
	}
		
	return(obj);
}


