//-----------------------------------------------------------------------------
//　数文字のみで構成されているかの検査
function	isDigit( strNumber ) {
	var		len, i;
	var		numChr;

	len = strNumber.length;
	if( len == 0 ) {
		return false;
	}

	for( i=0 ; i<len ; i++ ) {
		numChr = strNumber.charAt(i);
		if( (numChr < '0' || numChr > '9') ) {
			return false;
		}
	}

	return true;
}

//-----------------------------------------------------------------------------
//　アルファベットのみで構成されているかの検査
function	isAlpha( str ) {
	var		len, i;
	var		chr;

	len = str.length;
	if( len == 0 ) {
		return false;
	}

	for( i=0 ; i<len ; i++ ) {
		chr = str.charAt(i);
		if( (chr < 'a' || chr > 'z') && (chr < 'A' || chr > 'Z') ) {
			return false;
		}
	}

	return true;
}

//-----------------------------------------------------------------------------
//　アルファベットのみで構成されているかの検査
function	isAlphaSp( str ) {
	var		len, i;
	var		chr;

	len = str.length;
	if( len == 0 ) {
		return false;
	}

	for( i=0 ; i<len ; i++ ) {
		chr = str.charAt(i);
		if( (chr < 'a' || chr > 'z') && (chr < 'A' || chr > 'Z')  && (chr != ' ' ) ) {
			return false;
		}
	}

	return true;
}

//-----------------------------------------------------------------------------
//　英数字のみで構成されているかの検査
function	isNumAlpha( str ) {
	var		len, i;
	var		chr;

	len = str.length;
	if( len == 0 ) {
		return false;
	}

	for( i=0 ; i<len ; i++ ) {
		chr = str.charAt(i);
		if( (chr < 'a' || chr > 'z') && (chr < 'A' || chr > 'Z') && (chr < '0' || chr > '9') ) {
			return false;
		}
	}

	return true;
}

//-----------------------------------------------------------------------------
//　数値形式になっているかのチェック
function check_num( str ) {
	var		len, idx, flag;

	if( str == '' )
		return false;

	len = str.length;
	idx = str.charAt(0) == '+' || str.charAt(0) == '-' ? 1 : 0;
	flag = false;

	while( idx < len && str.charAt(idx) >= '0' && str.charAt(idx) <= '9' ) {
//		alert( 'len = ' + len + ', idx = ' + idx + ', char = ' + str.charAt(idx) );
		flag = true;
		idx++;
	}

//	alert( 'len = ' + len + ', idx = ' + idx + ', char = ' + str.charAt(idx) );

	if( flag == false )
		return false;
	else if( idx >= len )
		return true;
	else if( str.charAt(idx) != '.' )
		return false;

	idx++;
	flag = false;

	while( idx < len && str.charAt(idx) >= '0' && str.charAt(idx) <= '9' ) {
//		alert( 'len = ' + len + ', idx = ' + idx + ', char = ' + str.charAt(idx) );
		flag = true;
		idx++;
	}

//	alert( 'len = ' + len + ', idx = ' + idx + ', char = ' + str.charAt(idx) );

	if( flag == true && idx >= len )
		return true;
	else
		return false;
}

//-----------------------------------------------------------------------------
// 数文字を３桁区切りの文字列に変換
function	moneyFormat( strNumber ) {
	var		intLength,i,mod,qnt,strMoney,strUpper,strLower,strSign;
	var		pos, flag = 0;

	intLength = strNumber.length;
	pos = strNumber.indexOf( '.', 0 );


	i = 0;
	strSign = strNumber.charAt(0);
	if( strSign == '+' || strSign == '-' ) {
		i = 1;
	}
	else {
		strSign = "";
	}

	strUpper = strLower = strMoney = "";
	for( ; i<intLength ; i++ ) {
		if( pos == -1 || i < pos ) {
			strUpper += strNumber.charAt(i);
		}
		else {
			strLower += strNumber.charAt(i);
		}
	}

	strMoney = strSign;

	intLength = strUpper.length;
	mod = intLength % 3;
	for( i=0,qnt=0 ; i<intLength ; i++ ) {
		var		strChr = strUpper.charAt(i);
		if( isDigit( strChr ) == false ) {
			return "";
		}

		if( i>0 && i%3 == mod ) {
			strMoney += ',';
			qnt++;
		}

		strMoney += strChr;
	}

	intLength = strLower.length
	for( i=0 ; i<intLength ; i++ ) {
		var		strChr

		if( i > 0 ) {
			strChr = strLower.charAt(i);
			if( isDigit( strChr ) == false ) {
				return "";
			}
		}
		else {
			strChr = '.';
		}
		strMoney += strChr;
	}

	return strMoney;
}
//-----------------------------------------------------------------------------

//-----------------------------------------------------------------------------
//　ドロップダウンリストに指定の値を設定
function	set_listValue( element, val ) {
	var		i

	if( val == null ) {
		return;
	}

	for( i=0 ; i<element.length ; i++ ) {
		if( element.options[i].value == val ) {
			element.options[i].selected = true;
		}
	}
	return( element.selectedIndex );
}

//-----------------------------------------------------------------------------
//　ラジオボタンに指定の値を設定
function	set_radioValue( element, val ) {

	if( val == null ) {
		return true;
	}

	for( i=0 ; i<element.length ; i++ ) {
		if( element[i].value == val ) {
			element[i].checked = true;
			return true;
		}
	}

	return false;
}

//-----------------------------------------------------------------------------
//　文字列のバイト数の取得
//　　IE4.0および、Netscape Communicator4.06以降は文字をUnicodeで扱うために
//　　バイト数が取得できないための対応
function getStringLength( str ) {
	var i,cnt = 0;
	for(i=0; i<str.length; i++) {
		if( escape(str.charAt(i)).length >= 4 ) {
			 cnt+=2;
		}
		else {
		 cnt++;
		}
	}

	return cnt;
}

//-----------------------------------------------------------------------------
//　電話番号検査
//　　指定された文字列が電話番号を現す場合の文字
//　　- 数値、'-', '(', ')'
//　　のみで構成されているかの検査
//　　※日本国内の電話番号のみに対応。国際電話用の電話番号には未対応です。
function isPhoneNumber( strPhone ) {
	var		hCnt = 0			//　ハイフンの個数
	var		i;
	var		kStart = 0,
			kEnd = 0;
	var		prevh = -1;

	for( i=0 ; i<strPhone.length ; i++ ) {
		var		chr = strPhone.charAt(i);

		if( chr == '-' ) {
			if( prevh == (i-1) ) {		// ハイフンの連続の検査
				return false;
			}
			prevh = i;

			hCnt++;
			if( hCnt > 2 || (kStart == 1 && kEnd == 0) ) {
				return false;
			}
		}
		else
		if( chr == '(' ) {
			kStart++;
			if( kEnd > 0 || kStart > 1 ) {
				return false;
			}
		}
		else
		if( chr == ')' ) {
			kEnd++;
			if( kStart == 0 || kEnd > 1 ) {
				return false;
			}
		}
		else
		if( chr < '0' || chr > '9' ) {
			return false;
		}
	}

	if( (kStart == 1 && kEnd == 0) || hCnt == 1 ) {
		return false;
	}

	return true;
}

//-----------------------------------------------------------------------------
//　E-mailアドレスの正当性検査
//　  - 文字が、a-zA-z0-9@.-_で構成されていること
//　  - @は１つのみ存在すること
//　  - @は文字の先頭および終端には来ないこと
function isEmail( strCmp ) {
	var		i;
	var		c;
	var		eml;
	for( i=0 ; i<strCmp.length ; i++ ) {
		c = strCmp.charAt(i);
		if( (c < 'a' || c > 'z') && (c < 'A' || c > 'Z') && (c < '0' || c > '9') &&
			c != '@' && c != '.' && c != '_' && c != '-' ) {
			return false;
		}
	}

	eml = strCmp.split( "@" );
	if( eml.length != 2 ) {
		return false;
	}
	if( eml[0].length == 0 || eml[1].length == 0 ) {
		return false;
	}

	return true;
}
