//	2004.04.12	I.HIROSAWA
//	文字列を日付形式に編集する
function setFormatDate( value ){
	var		str	= "" + value;
	var		n	= "";
	var		x;
	var		yy	= 0
	var		mm	= 0;
	var		dd	= 0;
				
	if( str.indexOf( "/", 0 ) != -1 ){
		str = "0/0/" + str;
		x = str.split( "/" );
		hh = "0000" + x[ x.length - 3 ];
		mm = "0000" + x[ x.length - 2 ];
		dd = "0000" + x[ x.length - 1 ];
		n = hh.slice(-4) + "/" + mm.slice(-2) + "/" + dd.slice(-2);
		
	}else if( str.length == 8 ){
		n = "00000000";
		for ( var i = 0; i < str.length; i++ )
		{
			if( str.charAt(i) != "/" ){
				n = n + str.charAt(i);
			}
		}
		n = n.slice(-8);
		n = n.substr( 0, 4) + "/" + n.substr( 4, 2) + "/" + n.substr( 6, 2);
		
	}else{
		n = value;
	}
	return n;
}

//	2004.04.12	I.HIROSAWA
//	テキストコントロールの文字列を日付形式に編集する
function setFormatDateControl( ctl ){
	var		s = setFormatDate( ctl.value );
	if( ctl.value != s )	ctl.value = s;
}

//	2004.04.12	I.HIROSAWA
//	数値文字列をカンマ区切りの文字列に変換する
//	2004.06.17	I.HIROSAWA
//	小数点に対応
function addComma( value, p )
{
//	if( isNaN( value ) )	return	value;

	var		v   = parseInt( value, 10 );
	var		v2	= Math.abs( value - v );
	var		s   = 1;
	if( v < 0 ){
		v = -v; 
		s = -1;
	}

	var		str = "" + v;
	var		cnt = 0;
	var		n   = "";
	for ( var i = str.length - 1; i >= 0; i-- )
	{
		n = str.charAt(i) + n;
		cnt++;
		if (((cnt % 3) == 0) && (i != 0)) n = "," + n;
	}
	
	if( s == -1 )	n = "-" + n;
	
	if( p > 0 ){
//		while( true ){
//			if( v2 == parseInt( v2, 10 ) )	break;
//			v2 *= 10;
//		}
//		for( var p2 = 0; p2 < p; p2++ ){
//			v2 += "0";
//		}
//		n += "." + v2.substr( 0, p );
		v2 = "" + v2 + "00000";
		n += "." + v2.substr( 2, p );
	}
	
	return n;
}

//	2004.04.12	I.HIROSAWA
//	テキストボックスの数値文字列をカンマ区切りに変換する
function addCommaControl( ctl )
{
	if( ! isNaN2( ctl.value ) ){
		var x = addComma( Val( ctl.value ) );
		if( ctl.value != x )	ctl.value = x;
	}
}

//	2004.04.13	I.HIROSAWA
//	文字列を数値化する
function Val( value )
{
	str = "" + value;
	n   = "";
	for ( i = 0; i < str.length; i++ )
	{
		if( str.charAt(i) != ',' ){
			n = n + str.charAt(i);
		}
	}
	if( n == "" )	n = "0";

//	if( isNaN( n ) )	return	value;

	return parseFloat( n );
}		

//	2004.04.13	I.HIROSAWA
//	文字列を時分形式に編集する		
function setFormatTime( value )
{
	if( value == "" )		return 0;
	var		x = value.replace( ":", "" );
	var		s = parseInt( x, 10 );
	var		h = parseInt( String( s / 100 ), 10 );
	var		m = s % 100;
	while( m >= 60 ){
		m -= 60;
		h += 1;
	}
//	h = "00" + h;
	h = "" + h;
	m = "00" + m;
	return	h.slice(-2) + ":" + m.slice(-2);
}
		
//	2004.04.13	I.HIROSAWA
//	テキストボックスの値を時分形式に編集する
function setFormatTimeControl( ctl )
{
	if( ctl.value != '' ){
		if( ! isTime2( ctl.value ) )	return;
		var		v = setFormatTime( ctl.value );
		if( ctl.value != v )	ctl.value = v;
	}
}

//	2004.04.13	I.HIROSAWA
//	時分形式の文字列から分数を求める
function getHm2Min( value )
{
	var		s = "0:0:" + value;
	var		c = s.split(":");
	var		h = parseInt( c[ c.length - 2 ], 10 );
	var		m = parseInt( c[ c.length - 1 ], 10 );
	return	h * 60 + m;
}

//	2004.04.13	I.HIROSAWA
//	分数から時分形式の文字列に変換する
function getMin2Hm( value )
{
	if( isNaN( value ) || value == 'NaN' || '' + value == '' ){
		return '';
	}
	var		m = parseInt( "" + value, 10 );
	var		h = 0;
	while( m >= 60 ){
		m -= 60;
		h += 1;
	}
//	h = "00" + h;
	h = "" + h;
	m = "00" + m;
	return	h.slice(-2) + ":" + m.slice(-2);
}

//	半角カタカナを全角カタカナに変換する
function toZenkaku( motoText ){
	txt = "ｱｲｳｴｵｶｷｸｹｺｻｼｽｾｿﾀﾁﾂﾃﾄﾅﾆﾇﾈﾉﾊﾋﾌﾍﾎﾏﾐﾑﾒﾓﾔﾕﾖﾗﾘﾙﾚﾛﾜｦﾝｧｨｩｪｫｬｭｮｯ､｡ｰ｢｣ﾞﾟ";
	zen = "アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヲンァィゥェォャュョッ、。ー「」";
	zen+= "　　　　　ガギグゲゴザジズゼゾダヂヅデド　　　　　バビブベボ　　　　　　　　　　　　　　　　　　　　　　　　　　　　　";
	zen+= "　　　　　　　　　　　　　　　　　　　　　　　　　パピプペポ　　　　　　　　　　　　　　　　　　　　　　　　　　　　　";
	str = "";
	for (i=0; i<motoText.length; i++){
		c = motoText.charAt(i);
		cnext = motoText.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)){
			str += c;
		}
	}
	return str;
}
function toZenkakuControl( ctl ){
	var		s = toZenkaku( ctl.value );
	if( ctl.value != s )	ctl.value = s;
}

//	2004.05.17	I.HIROSAWA
//	リピーター内にあるチェックボックスのうち、選択されているものに応ずるTextBoxまたはSPANの合計を得る。
function SumIfChecked( ReperterName, CheckBoxName, ValueBoxName ){
	var		v = 0;
	for( var i = 0; i < document.Form1.elements.length; i++ ){
		var		ctl = document.Form1.elements[i];
		var		s   = ctl.id;
		if( s.indexOf( ReperterName ) == -1 )	continue;
		if( s.indexOf( CheckBoxName ) == -1 )	continue;
		if( ! ctl.checked )						continue;
		var		p	= s.lastIndexOf("_")+1;
		var		c   = s.substr(0,p) + ValueBoxName;
		var		x   = document.all.item(c);
		if( x.tagName == "SPAN" ){
			v += Val( x.innerText );
		}
		//	TextBoxは...?
	}
	return	v;
}

//	2004.05.19	I.HIROSAWA
//	文字列の長さをバイトで求める
function getByte(text){
	var	count = 0;
	for( i = 0; i < text.length; i++ )
	{
		n = escape( text.charAt( i ) );
		if( n.length < 4) count++;
		else count += 2;
	}
	return count;
}

//	2004.05.24	I.HIROSAWA
//	時分形式の文字列として正しいかチェックする
function isTime2( value ){
	var		h = null;
	var		m = null;
	if( value.indexOf(":") >= 0 ){
		var	v  = value + ":00:00";
		var	tx = v.split(":");
		if( tx.length > 0 )	h = tx[0];
		if( tx.length > 1 )	m = tx[1];
	}else{
//		var	tx = value + "0000";
		var	tx = "0000" + value;
		h = tx.substr( tx.length - 4, 2);
		m = tx.substr( tx.length - 2, 2);
	}
	
	if( isNaN( h ) )	return false;
	if( isNaN( m ) )	return false;
	
	h = parseInt( h );
	m = parseInt( m );
	
	if( h < 0 || h >= 24 )	return false;
	if( m < 0 || m >= 60 )	return false;
	
	return	true;
}

//	2004.06.16 EMIX HIROSAWA
//	時分形式の文字列を時分（数値）に変換する
function CnvHm2Num( value ){
	if( value.indexOf(":") >= 0 ){
		var		s = value;
		var		c = s.split(":");
		var		h = parseInt( c[0], 10 );
		var		m = parseInt( c[1], 10 );
		return	h * 100 + m;
	}else{
		return parseInt( value, 10 );
	}
}

//	2004.07.01 EMIX HIROSAWA
//	右端のスペース(全角も半角も)取り除く
function RTrim( s ){
	var		ws = s;
	while(true){
		if( ws.length == 0 )	break;
		if( ws.charAt( ws.length - 1 ) != " " )	break;
		ws = ws.substring( 0, ws.length - 1 );
	}
	return	ws;
}

//	２つの時間からその間の分数を求める
function getTimeDiff( SHM, EHM, HMS )
{
	if( SHM.value == '' || EHM.value == '' ){
		HMS.value = '';
		return;
	}

	var		wSHM = getHm2Min( setFormatTime( SHM.value ) );
	var		wEHM = getHm2Min( setFormatTime( EHM.value ) );

	if( wSHM > wEHM )	wEHM += 1440;

	var		wHMS = wEHM - wSHM;
	HMS.value = wHMS;
}

//	リピータのアイテムIDを得る
function getRID( id ){
	var		p = id.lastIndexOf("_");
	var		rid = id.substring(0,p+1);
	return	rid;
}

//	リピータ内のチェックボックスの値を一括設定する			
function DoCheckALL( rpt, id, value ){
	var		i	=	1;
	while(true){
		var		s = rpt + "__ctl" + i + "_" + id;
		var		c = document.Form1.item( s );
		if( c ){
			c.checked = ( value == "1" );
		}else{
			return;
		}
		i++;
	}
}

