/*
 * @(#)stringUtil.js
 * ----------------------------------------------
 * ???X????
 * 2004/03/08 ?V?K????
 * 2004/05/25 5?????X?????i?????L?[?F5?????X?????j
 * ----------------------------------------------
 */
function zeroFill(obj, frm, len)
{
    objindex = getObjectNo(obj,frm);
    var s = frm.elements[objindex].value;
//  if (s == '' || isNaN(s))
    if (s == '')
    {
//      frm.elements[objindex].value = '';
		var tmp = '';
		for(var i = 0; i < len; i++) {
		  tmp = tmp + ' ';
		}
		frm.elements[objindex].value = tmp;
        return;
    }
    var ret='' + frm.elements[objindex].value;
    for (var i = s.length; i < len; i++)
    {
        ret = '0' + ret;
    }
    frm.elements[objindex].value = ret;
}

function getReplaceString(p,r1,r2){
    var r=''; var s='';
    for(var i=0;i<p.length;i++){
        s=p.substring(i,i+1);
        if(s==r1){r=r+r2;}
        else{r=r+s;}}
    return r;
}

function getToNumber(p){
    var t=p;
    var r=''; var s='';
    for(var i=0;i<t.length;i++){
        s=t.substring(i,i+1);
        if(s=='0'||s=='1'||s=='2'||s=='3'||s=='4'||s=='5'||s=='6'||s=='7'||s=='8'||s=='9') {
            r=r+s;
        } else {
            r=r+' ';
        }
    }
    return r;
}

function delNotPureNumber(p){
    var t=p;
    var r=''; var s='';
    for(var i=0;i<t.length;i++){
        s=t.substring(i,i+1);
        if(s=='0'||s=='1'||s=='2'||s=='3'||s=='4'||s=='5'||s=='6'||s=='7'||s=='8'||s=='9') {
            r=r+s;
        }
    }
    return r;
}

function getToNumberWithHihun(p){
    var t=p;
    var r=''; var st='';
    for(var i=0;i<t.length;i++){
        st=t.substring(i,i+1);
        if(st=='0'||st=='1'||st=='2'||st=='3'||st=='4'||st=='5'||st=='6'||st=='7'||st=='8'||st=='9'){
            r=r+st;
        }
        else if(st!='-'){
            r = '';
            return r;
        }
    }
    return r;
}

function getObjectNo(obj, setform)
{
    for (i = 0; i < setform.elements.length; i++)
    {
        if(setform.elements[i] == obj)
        {
            return i;
        }
    }
    return -1;
}

function editKanma(value){
    var str = value;
    var i = 0;
    var ret = "";
    var temp = "";
    var c = "";
    var dot = "";
    
    if(str.length > 0){
        if(str.substring(0, 1) == '-'){
            str = str.substring(1);
            c = "-";
        }
        if(str.substring(0, 1) == '.'){
            ret = "0";
        }
    }
    if(str.indexOf('.', 0) > -1){
        dot = "." + delNotPureNumber(str.substring(str.indexOf('.', 0)));
        str = str.substring(0,str.indexOf('.', 0));
    }
    
    str = delNotPureNumber(str);
    if(str.length == 0 && dot.length < 2){
        return "";
    }
    
    if(str.length > 1){
        while(str.substring(0, 1) == '0'){
            str = str.substring(1);
            if(str.length == 1){
                break;
            }
        }
    }

    if(str.length > 3){
        if(str.length % 3 != 0){
            temp = str.substring(0, str.length % 3) + ',';
            str = str.substring(str.length % 3, str.length);
        }
        while(str.length > 3){
            ret += str.substring(0, 3);
            ret += ',';
            str = str.substring(3, str.length);
        }
        ret = temp + ret;
    }
    ret += str.substring(0, str.length+1);
    ret = c + ret + dot;
    if(ret.substring(ret.length-1, ret.length) == '.'){
    	   ret = ret.substring(0, ret.length-1);
    }

    return ret;
}
function editKanma2(value){
    var str = value;
    var i = 0;
    var ret = "";
    var temp = "";
    var c = "";
    var dot = "";
   	var end = "";

    if(str.length > 0){
        if(str.substring(0, 1) == '-'){
            str = str.substring(1);
            c = "-";
        }
        if(str.substring(0, 1) == '.'){
            ret = "0";
        }
      		if(str.indexOf('.') != -1 && str.substring(0, 1) != '.'){
			         if(str.substring(str.length-1, str.length) == '.'){
                str=str.substring(0,str.length-1);
            }
         			if(str.substring(str.length-2, str.length) == '.0'){
                str=str.substring(0,str.length-2);
            }
      		}
    }

    if(str.indexOf('.', 0) > -1){
        dot = "." + delNotPureNumber(str.substring(str.indexOf('.', 0)));
        str = str.substring(0,str.indexOf('.', 0));
    }
    
    str = delNotPureNumber(str);
    if(str.length == 0 && dot.length < 2){
        return "";
    }

    if(str.length > 1){
        while(str.substring(0, 1) == '0'){
            str = str.substring(1);
            if(str.length == 1){
                break;
            }
        }
    }
    
    if(str.length > 3){
        if(str.length % 3 != 0){
            temp = str.substring(0, str.length % 3) + ',';
            str = str.substring(str.length % 3, str.length);
        }
        while(str.length > 3){
            ret += str.substring(0, 3);
            ret += ',';
            str = str.substring(3, str.length);
        }
        ret = temp + ret;
    }
    
    ret += str.substring(0, str.length+1);
    
    ret = c + ret + dot;
    
    return ret;
}
// ??2004/05/25 ?????i5?????X?????j??
function getByte(text) {
    var count = 0;
    for (var i = 0; i < text.length; i++) {
        if(isCharOfByte(text.charAt(i)) == true) {
        	count += 1;
        } else{
        	count += 2;
        }
    }
    return count;
}
function isCharOfByte(c) {
	var ARG_BYTE = new Array( ' ', '!', '"', '#', '$', '%', '&', '\'', '(', ')',
            '*', '+', ',', '?', '-', '.', '/', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
            ':', ';', '<', '=', '>', '?', '@', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J',
            'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '[',
            '\\', ']', '^', '_', '`', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l',
            'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '{', '|', '}',
            '~', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?',
            '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?',
            '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?', '?',
            '?', '?', '?', '?', '?', '?', '?', '?', '?' );
            
    var ARG_CNTL = new Array('\b', '\f', '\n', '\r', '\t');

    for (var i = 0; i < ARG_CNTL.length; i++) {
        if (ARG_CNTL[i] == c) {
            return true;
        }
    }
    
    for (var i = 0; i < ARG_BYTE.length; i++) {
        if (ARG_BYTE[i] == c) {
            return true;
        }
    }
    return false;
}


/*
'*****************************************************
' Purpose: delete left and right space of a string by RegExp
'
'
' Inputs:
'	str: a string need to be trimed
'
' Returns: string
'*****************************************************
*/
function regTrim(strVal)
{
  return strVal.replace(/^\s+/g, '').replace(/\s+$/g, '');
}

/*
'*****************************************************
' Purpose: validate string value by RegExp
'
'
' Inputs:
'	str: string value need to be validate
'
'	strPattern: pattern string
'
' Returns: if pass validate return true, no pass return false
'*****************************************************
*/
function checkStringByRegExp(strVal, strPattern){
	var regEx = new RegExp(strPattern,"i");
	if ( regEx.test(strVal) )
	{
		return true;
	}
	else
	{
		return false;
	}

}

/*
'*****************************************************
' Purpose: validate strVal (Date) by RegExp
'
'
' Inputs:
'	strVal: a date string value
'
'	intStyle:	1 = pattern "yyyy"
'				2 = pattern "yyyy/mm" or "yyyy-mm"
'				3 = pattern "yyyy/mm/dd" or "yyyy-mm-dd"
'
' Returns: if pass validate return true, no pass return false
'*****************************************************
*/
function checkDate(strVal, intStyle)
{
	var strDate = regTrim(strVal);
	if ( intStyle == 1 ) // yyyy
	{
		var reg = /^\d{4}$/;
		return reg.test(strDate);
	}
	else if ( intStyle == 2 ) // yyyy/mm or yyyy-mm
	{
		var reg = /^\d{4}(\/|\-)([1-9]|0[1-9]|1[0-2])$/;
		return reg.test(strDate);
	}
	else if ( intStyle == 3 )	// yyyy/mm/dd or yyyy-mm-dd
	{
		var reg = /^\d{4}(\/|\-)([1-9]|0[1-9]|1[0-2])(\/|\-)([1-9]|0[1-9]|1[0-9]|2[0-9]|3[0-1])$/;
		return reg.test(strDate);
	}
	return false;
}

/*
'*****************************************************
' Purpose: validate ?????????? register1.jsp
'
'
' Returns: if pass validate return true, no pass return false
'*****************************************************
*/
function checkSpec(strTemp){
	//========== check nickName ==========
	var strTemp1 = /^.*[(&<>~\$%\^\(\)\"')+].*$/;
	//if (checkStringByRegExp(strTemp,strTemp1) == false)
        if (strTemp1.test(strTemp) == true)
	{
		return false;
	}
	return true;
}
