// 必須チェック（空じゃない、スペースのみじゃない）
// 戻り値 0=OK:-1=NG
//-------------------------------------------------------
function js_Str_IsEssential( obj )
{
	var input = obj.value;

	if ( input.length == 0 )
		return -1; 
	else{
		input = input.replace( /^\s+|\s+$/g, "" );	//半角スペースを削除
		input = input.replace( /^[　]+|[　]+$/g, "" );	//全角スペースを削除
		if ( input == "" )
			return -1;
		else
			return 0;
	}	
}


// 右から取得
//-------------------------------------------------------
function js_Str_Right( input, len )
{
	input = input + "";
	len = len - 0;

	len_max = input.length;
	if( len > len_max ) len = len_max;

	return( input.substring( len_max - len, len_max ) );
}


// 文字列が、数値かどうか(カンマは空白に置換)
// 戻り値 0=OK:-1=NG
//-------------------------------------------------------
function js_Str_Check_Num( input )
{
	if( input == undefined )
		return -1;

	var wk = new String(input).replace(/,/g,"")
	if ( wk.match(/[^0-9-]/) )
		return -1;
	else
		return 0;
}


// カンマなし数値を、カンマ付き数値文字列に
//-------------------------------------------------------
function js_Str_CammaNum( input )
{
	var wk = new String(input).replace(/[^0-9-]/g,"");
	while( wk != ( wk = wk.replace(/^(-?\d+)(\d{3})/,"$1,$2") ) );
	return wk;
}

// カンマなし数値を、カンマ付き数値文字列に、ゼロの場合空文字
//-------------------------------------------------------
function js_Str_CammaNum_ZeroEmpty( input )
{
	if( input == 0 )
		return "";
	else
		return js_Str_CammaNum( input );
}


// カンマ付き数値文字列を、カンマ無し数値に
//-------------------------------------------------------
function js_Str_PlainNum( input )
{
	input = input + "";
	if( input == "" )
		return "";
	else if( js_Str_Check_Num(input) == 0 )
		return Number( input.replace(/,/g,"") );
	else
		return input;
}

function js_Str_PlainNum_Zero( input )
{
	return js_Str_PlainNum( input ) - 0;
}


// ゼロ詰め
//-------------------------------------------------------
function js_Str_ZeroPlace( input, place )
{
	input = input + "";
	place = place - 0;

	if( input.length < place )
	{
		input = "0000000000" + input;
		return js_Str_Right( input, place );
	}
	return input;
}


// 和暦を西暦に
//-------------------------------------------------------
function js_Era2AD( era, div )
{	
	era = era - 0;
	div = div - 0;

	if( era > 0 )
	{
		if( div == 3 && era < 50 ) return 1988 + era;
		if( div == 2 && era < 65 ) return 1925 + era;
		if( div == 1 && era < 16 ) return 1911 + era;
	}
	return 0;
}


// 日付作成(文字列)
//-------------------------------------------------------
function js_Str_DateStr( year, month, day )
{
	return( js_Str_ZeroPlace( year, 4 ) + "/" + js_Str_ZeroPlace( month, 2 ) + "/" + js_Str_ZeroPlace( day, 2 ) );
}
// 日付作成
//-------------------------------------------------------
function js_Str_MakeDate( year, month, day )
{
	var input = year - 0;
	if( input < 1900 || 2079 < input )
		return "";

	input = js_Str_DateStr( year, month,day );
	var dt = new Date( year, month-1, day );
	var out = js_Str_DateStr( dt.getFullYear(), (dt.getMonth()+1), dt.getDate() );
	if( input == out )
		return out;
	else
		return "";
}
// 年
//-------------------------------------------------------
function js_Str_Date_Year( input )
{
	input = new Date( input );
	if( isNaN( input.getFullYear() ) )
		return "";
	else
		return input.getFullYear();
}
// 月
//-------------------------------------------------------
function js_Str_Date_Month( input )
{
	input = new Date( input );
	if( isNaN( input.getMonth() ) )
		return "";
	else
		return input.getMonth() + 1;
}
// 日
//-------------------------------------------------------
function js_Str_Date_Day( input )
{
	input = new Date( input );
	if( isNaN( input.getDate() ) )
		return "";
	else
		return input.getDate();
}
// 年(和暦->西暦)
//-------------------------------------------------------
function js_Str_Date_EraYear( eradiv, input )
{
	eradiv = eradiv - 0;
	input = input - 0;

	if( eradiv == 3 && input < 50 ) input += 1988;
	else if( eradiv == 2 && input < 65 ) input += 1925;
	else if( eradiv == 1 && input < 16 ) input += 1911;
	else input = 0;

	return input;
}
// 日付作成(和暦->西暦)
//-------------------------------------------------------
function js_Str_MakeEraDate( div, year, month, day )
{
	return js_Str_MakeDate( js_Str_Date_EraYear( div, year ), month, day );
}


// 日付チェック
// 戻り値：0=OK, -1=エラー
//-------------------------------------------------------
function js_Str_Check_Date( year, month, day )
{
	if( !year && !month && !day )
		return 0;

	if( js_Str_MakeDate( year, month, day) == "" )
		return -1;

	return 0;
}
// 日付チェック
// 戻り値：0=OK, -1=エラー
//-------------------------------------------------------
function js_Str_Check_EraDate( div, year, month, day )
{
	if( !year && !month && !day )
		return 0;

	if( js_Str_MakeEraDate( div, year, month, day) == "" )
		return -1;

	return 0;
}


// パラメータ作成
//-------------------------------------------------------
function js_Str_Parameter( id, input )
{
	var param = "@id=@input";

	if( id == undefined ) id = ""
	if( input == undefined ) input = ""

	param = param.replace( "@id", id );
	return param.replace( "@input", escape(input) );
}

// パラメータ作成(インクリメントキー)
//-------------------------------------------------------
function js_Str_Param_Cnt( id, cnt, input )
{
	var param = "@id=@input";

	if( id == undefined ) id = ""
	if( cnt == undefined ) cnt = ""
	if( input == undefined ) input = ""

	param = param.replace( "@id", id );
	param = param.replace( "@Cnt", cnt );
	return param.replace( "@input", escape(input) );
}

// 文字種チェック
// 戻り値：0=OK, -1=エラー
//-------------------------------------------------------
function js_Str_Check_Type( input, kind )
{
	input = input + "";
	if( kind == 1 ) 
		return ( input.search( /[^0-9-]/g ) == -1 );
	else if( kind == 2 ) 
		return ( input.search( /[^アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヲンァィゥェォヵヶッャュョヮガギグゲゴザジズゼゾダヂヅデドバビブベボパピプペポヴー　 ]/g ) == -1 );
}


