function trimSpace(str)
{
    var st = 0;
    var ch;
    var len = str.length;

    if(len == 0) return str;

    while(st < len && (ch = str.charAt(st)) == ' ')
        st++;

    while(st < len && (ch = str.charAt(len-1)) == ' ')
        len--;

    return (st > 0 || len < str.length) ? str.substring(st, len) : str;
}

function getBytes(str)
{
	var ch = 0, cnt = 0;

	for(i=0; i < str.length; i++)
	{
		ch = str.charCodeAt(i);
		cnt += (ch > 127) ? 2 : 1;
	}
	return cnt;
}

function checkSize(str, len, null_ok)
{
	str = trimSpace(str);

	if(str.length == 0) return null_ok;

	return (getBytes(str) <= len);
}

function replaceAll(org, s1, s2)
{
	while(org.indexOf(s1) > -1)
		org  = org.replace(s1, s2);

	return org;
}

function isNumeric(str)
{
	var ch;
	if(str.length == 0) return false;

	for(i=0; i < str.length; i++)
	{
		ch = str.charAt(i);
		if(ch < '0' || ch > '9')
			return false;
	}

	return true;
}

function isAlphaNumeric(str)
{
	var ch;
	if(str.length == 0) return false;

	str = str.toLowerCase();

	for(i=0; i < str.length; i++)
	{
		ch = str.charAt(i);
		if( !(ch >= '0' && ch <= '9') && !(ch >= 'a' && ch <= 'z') )
			return false;
	}

	return true;
}

function checkKey()
{
	var code = event.keyCode;

	return ((code >= 48 && code <= 57) || code == 13);
}

function checkPhoneNum(num)
{
	return checkPhoneNum(num, false);
}

function checkPhoneNum(num, onlyMobile)
{
	num = trimSpace(num);
	var len = num.length;
	
	var minSize = onlyMobile ? 10 : 9

	// len = 9, 10, 11
	if(len < minSize || len > 11) return false;

	if(isNaN(num)) return false;

	var preNo = num.substring(0, 3)*1;
	
	if(preNo == 11 || (preNo > 15 && preNo < 20) || preNo == 10)
		return true;

	if(onlyMobile) return false;

	// 02±¹¹ø len = 9, 10
	if(num.indexOf("02") == 0)
		return (len < 11);
	else if(len == 9)
		return false;

	if((preNo >= 31 && preNo <= 33) || (preNo >= 41 && preNo <=43) || (preNo >= 51 && preNo <=55) || (preNo >= 61 && preNo <=64))
		return true;

	return false;
}
