//-----------------------------------------------------------------------------------------------
// 認証内共通JavaScript   = CIBMUS01.js =
//                    Version                 Date                  history
//                    Version  1.0            2002.3.19            新規開発
//                    Version  1.1            2002.3.24            半角カナチェック機能変更
//                    Version  1.2            2002.4.5             日付比較チェック機能
//                    Version  1.3            2002.4.11            Ｅメールアドレスチェック機能変更
//                                                                 (CIBMUS01_AlphaNum2の変更)
//                    Version  1.4            2002.4.17            トリム機能
//                    Version  1.5            2002.4.22            ゼロ埋削除機能
//                    Version  1.6            2002.5.20            暗証番号チェック機能変更
//                                                                 ("&"：入力可能文字→禁止文字）
//                                                                 半角カナチェック機能変更
//                                                                 ("ｦｧｨｩｪｫｬｭｮｯｰ"：禁止文字→入力可能文字）
//                    Version  1.7            2002.6.7             日付比較チェック機能引数修正
//                    Version  1.8            2002.7.26            入力可能文字範囲指定の文字チェック機能追加
//-----------------------------------------------------------------------------------------------

//半角カナ文字(英数カナ記号)の範囲内ならtrue
//半角カナ文字(英数カナ記号)の範囲外ならfalse
function CIBMUS01_KanaCheck(s) {
var i;
var c;
var strstart;
var strend;
var str;

	// 以下の範囲にある文字(半角英数字と半角空白、半角のｱ〜ﾝとｦｧｨｩｪｫｧｬｭｮｯｰ
	// 半角の下記の特殊記号【ﾞﾟ\-*/｢｣().】)はＯＫ
	// 入力文字がすべてスペースの場合はＮＧ
	// 先頭および末尾がスペースの場合はスペース削除
	strstart = 0;
	strlen = s.length;
	strend = s.length;
	for (i = 0; i < strlen; i++) {
		if (s.substring(i,i+1)==' '){
			strstart++;
		} else {
    			break;
		}
	}
	for (i = strlen; i >= 0; i--) {
		if (s.substring(i-1,i)==' '){
			strend--;
		} else {
			break;
		}
	}
	if ( strstart == strlen ) {
		return false;
	}
	str = s.substring(strstart,strend);
	re = new RegExp("[^\\x5c a-z0-9A-Zｦ-ﾟ-*/｢｣().]");
	if ( str.match(re) == null) {
		return true;
	} else {
		return false;
	}
}


//全角文字の範囲ならtrue
//半角文字の範囲ならfalse
function CIBMUS01_ZenkakuCheck1(s) {
var i;
var c;

	for(i=0;i<s.length;i++) {
		c = s.charCodeAt(i);
		if(c > 128) {
			// 0xFF61〜0xFF9Fの範囲にある文字は半角
			if( ( c >= 65377 && c <= 65439 ) ){
				return false;
			}
		} else { 
			return false;
		}
	}
	if( ( CIBMUS01_ZenkakuCheck2(s) == false ) ) {
		return false;
	}
	return true;
}


//入力可能文字の範囲ならtrue
//上記以外の範囲ならfalse
function CIBMUS01_ZenkakuCheck2(s) {
var i;
var c;
var j;
	for(i=0;i<s.length;i++) {
		c = s.charCodeAt(i);
		j = i+1;

		// 0x0080() までの範囲にある文字はＯＫ
		// 0x00A7(§)〜0x00F7(÷) の範囲にある文字はＯＫ
		// 0x2010(‐)〜0x2103(℃) の範囲にある文字はＯＫ
		// 0x212B(Å) の範囲にある文字はＯＫ
		// 0x2170(@)〜0x220B(∋) の範囲にある文字はＯＫ
		// 0x221A(√)〜0x221E(∞) の範囲にある文字はＯＫ
		// 0x2220(∠)〜0x222C(∬) の範囲にある文字はＯＫ
		// 0x2234(∴)〜0x22A5(⊥) の範囲にある文字はＯＫ
		// 0x2312(⌒) の範囲にある文字はＯＫ
		// 0x25A0(■)〜0x3015(〕) の範囲にある文字はＯＫ
		// 0x3041(ぁ)〜0x30FE(ヾ) の範囲にある文字はＯＫ
		// 0x4E00(一)〜0x9FA0(龠) の範囲にある文字はＯＫ
		// 0xF929()〜0xFFE5(￥) の範囲にある文字はＯＫ
		// 0xFFFD(　) ブラウザ依存文字はＯＫ

		if( ! ( (  c <= 128  ) ||
				( (c >= 167) && (c <= 247) ) ||
				( (c >= 8208) && (c <= 8451) ) ||
				(  c == 8491  ) ||
				( (c >= 8560) && (c <= 8715) ) ||
				( (c >= 8730) && (c <= 8734) ) ||
				( (c >= 8736) && (c <= 8748 ) ) ||
				( (c >= 8756) && (c <= 8869) ) ||
				(  c == 8978  ) ||
				( (c >= 9632) && (c <= 12309) ) ||
				( (c >= 12353) && (c <= 12542) ) ||
				( (c >= 19968) && (c <= 40864) ) ||
				( (c >= 63785) && (c <= 65509) ) ||
				(  c == 65533 ) ) ) {
			return false;
		}
	}
	return true;
}


//半角英数字の範囲内ならtrue
//半角英数字の範囲外ならfalse
function CIBMUS01_AlphaNum(s) {
var i;
var c;

	for(i=0;i<s.length;i++) {
		c = s.charCodeAt(i);
		// 0x30(0)〜0x39(9)  0x41(A)〜0x5A(Z)の範囲にある文字はＯＫ
		if( ! ( ( (c >= 48) && (c <= 57) ) ||
				( (c >= 65) && (c <= 90) ) ||
				( (c >= 97) && (c <= 122) ) ) ) {
			return false;
		}

	}
	return true;
}



//パスワード文字の範囲ならtrue
//パスワード文字の範囲外ならfalse
function CIBMUS01_PassCheck(s) {
var i;
var c;

	for(i=0;i<s.length;i++) {
		c = s.charCodeAt(i);
		// 0x23(#)  0x25(%)  0x28(()〜0x5A(Z)  0x5F(_)〜0x7B({)  0x7D(})の範囲にある文字はＯＫ
		if( ! ( (c == 35) ||
				(c == 37) ||
				( (c >= 40) && (c <= 90) ) ||
				( (c >= 95) && (c <= 123) ) ||
				(c == 125) ) ) {
			return false;
		}
	}
	return true;
}



//Ｅメールアドレス“abc@xyz”形式ならtrue
//半角英数字以外の文字や＠マークが複数存在時はfalse
function CIBMUS01_EmailCheck(s) {
var a = s.indexOf('@');

	if( ( CIBMUS01_AlphaNum2( s.substring(0,a) ) == false )  ||  CIBMUS01_AlphaNum2( s.substring(a+1) ) == false ) {
		return false;
	}
	else if ( ( a>0 && (s.length-a)>1 && s.substring(a+1).indexOf('@')==-1) == false) { 
		return false;
	}
	return true;
}

function CIBMUS01_AlphaNum2(s) {
var i;
var c;

	for(i=0;i<s.length;i++) {
		c = s.charCodeAt(i);
		// 
		if( ! ( ( c == 35) ||
			( c == 37) ||
			( (c >= 40) && (c <= 43) ) ||
			( (c >= 45) && (c <= 59) ) ||
			( c == 61) ||
			( (c >= 63) && (c <= 90) ) ||
			( (c >= 95) && (c <= 123) ) ||
			( c == 125) ) ) {
			return false;
		}
	}
	return true;
}



/* 金額比較チェック(等号は認めない：手数料用) */
// min < maxなら true
// min >= maxは false
function CIBMUS01_Comparison(vmin,vmax) {
	var max;
	var min;
	var imax;
	var imin;

	min = CIBMUS01_ZeroCut(vmin);
	max = CIBMUS01_ZeroCut(vmax);

	if(  min.length >14  &&  ( min.length==max.length )  ){
		if(  min.substring(0,14) > max.substring(0,14)  )  {
			return false;
		} else if ( min.substring(0,14) == max.substring(0,14) ) {
			if( min.substring(14,19) >= max.substring(14,19) ) {
				return false;
			}
		}
	} else {
		imin = parseInt(min);
		imax = parseInt(max);
		if( imin >= imax ){
			return false;
		}
	}
	return true ;
}



/* 金額比較チェック(等号は認める：限度額用) */
// min <= maxなら true
// min > maxは false
function CIBMUS01_Comparison2(vmin,vmax) {
	var max;
	var min;
	var imax;
	var imin;

	min = CIBMUS01_ZeroCut(vmin);
	max = CIBMUS01_ZeroCut(vmax);

	if(  min.length >14  &&  ( min.length==max.length )  ){
		if(  min.substring(0,14) > max.substring(0,14)  )  {
			return false;
		} else if ( min.substring(0,14) == max.substring(0,14) ) {
			if( min.substring(14,19) > max.substring(14,19) ) {
				return false;
			}
		}
	} else {
		imin = parseInt(min);
		imax = parseInt(max);
		if( imin > imax ){
			return false;
		}
	}
	return true ;
}



/* ボタン連打チェック */
// ボタン押下状態でなければ true
// ボタン押下状態であれば false
function CIBMUS01_ContHitCheck( status ) {

	if(status==false){
		return true;
	}else{
		return false;
	}
}

/* 日付比較チェック */
// 開始範囲 <= 終了範囲であれば true
// 開始範囲 >  終了範囲であれば false
function CIBMUS01_DateComparison(sdate,edate) {
	var syear;
	var smonth;
	var sday;
	var shour;
	var sminute;
	var ssec;
	var eyear;
	var emonth;
	var eday;
	var ehour;
	var eminute;
	var esec;
	var tstime;
	var tetime;

	syear = sdate.substring(0,4);
	if ( sdate.substring(4,5) == "0" ){
		smonth = sdate.substring(5,6);
	} else {
		smonth = sdate.substring(4,6);
	}
	if ( sdate.substring(6,7) == "0" ){
		sday = sdate.substring(7,8);
	} else {
		sday = sdate.substring(6,8);
	}
	if ( sdate.substring(8,9) == "0" ){
		shour = sdate.substring(9,10);
	} else {
		shour = sdate.substring(8,10);
	}
	if ( sdate.substring(10,11) == "0" ){
		sminute = sdate.substring(11,12);
	} else {
		sminute = sdate.substring(10,12);
	}
	if ( sdate.substring(12,13) == "0" ){
		ssec = sdate.substring(13,14);
	} else {
		ssec = sdate.substring(12,14);
	}

	eyear = edate.substring(0,4);
	if ( edate.substring(4,5) == "0" ){
		emonth = edate.substring(5,6);
	} else {
		emonth = edate.substring(4,6);
	}
	if ( edate.substring(6,7) == "0" ){
		eday = edate.substring(7,8);
	} else {
		eday = edate.substring(6,8);
	}
	if ( edate.substring(8,9) == "0" ){
		ehour = edate.substring(9,10);
	} else {
		ehour = edate.substring(8,10);
	}
	if ( edate.substring(10,11) == "0" ){
		eminute = edate.substring(11,12);
	} else {
		eminute = edate.substring(10,12);
	}
	if ( edate.substring(12,13) == "0" ){
		esec = edate.substring(13,14);
	} else {
		esec = edate.substring(12,14);
	}

	tstime = Date.UTC(syear,smonth,sday,shour,sminute,ssec);
	tetime = Date.UTC(eyear,emonth,eday,ehour,eminute,esec);
	tstime = tstime/1000;
	tetime = tetime/1000;

	if ( tstime > tetime ) {
		return false;
	} else {
		return true;
	}
}


//トリム機能
function CIBMUS01_TrimFunction(s) {
var i;
var c;
var strstart;
var strend;
var str;

	// 先頭および末尾が全角半角スペースの場合はスペース削除
	strstart = 0;
	strlen = s.length;
	strend = s.length;
	for (i = 0; i < strlen; i++) {
		c = s.charCodeAt(i)
		if (( c == 32 ) || ( c == 12288 )){
			strstart++;
		} else {
    			break;
		}
	}
	if ( strstart == strlen ) {
		return "";
	}
	str = s.substring(strstart,strend);

	return str;
}

//ゼロ埋削除機能
function CIBMUS01_ZeroCut(s) {
	var	strstart = 0;
	var	strlen = s.length;
	var	amount="";

	if ( strlen == 0 ) {
		return amount;
	}

	for (i = 0; i < strlen; i++) {
		if (s.substring(i,i+1)=='0'){
			strstart++;
		} else {
    			break;
		}
	}
	amount = s.substring( strstart , strlen );
	if ( amount.length == 0 ) {
		amount = "0";
	}
	return amount;
}

// end of line

