//////////////////////////////////////////////////////////////////////////////////////
// uni2kr
// ±â´É : À¯´ÏÄÚµå¸¦ ¹Þ¾Æ¼­ ÇÑ±Û·Î º¯È¯.
//////////////////////////////////////////////////////////////////////////////////////
function uni2kr(u_str)
{
	var TmpUniCode  = '';
	var k_str = '';

	for (var i=0;i<u_str.length;i++ )
	{
		TmpUniCode = '';
		if ((u_str.charAt(i) == '&') && (u_str.charAt(i+1) == '#'))
		{
			i++;i++;
			for (;;i++ ) {
				if (u_str.charAt(i) == ';') break;
				TmpUniCode += u_str.charAt(i);
			}
		}
		if (TmpUniCode == '')
			k_str += u_str.charAt(i);
		else 
			k_str += String.fromCharCode(TmpUniCode);
	}
	return k_str;
}

//////////////////////////////////////////////////////////////////////////////////////
// DateCheck
// ±â´É : ³¯Â¥ 8ÀÚ¸®°¡ Á¤È®ÇÑÁö Ã¼Å©ÇÑ´Ù.
//////////////////////////////////////////////////////////////////////////////////////
function DateCheck(adate)
{
    endDay =new Array( 28, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 );
    re=/(\d\d\d\d)(\d\d)(\d\d)/;
    if( !re.test(adate) ) return false;
    if( eval(RegExp.$2)>12 || eval(RegExp.$3)>endDay[eval(RegExp.$2)] || eval(RegExp.$2)<1 || eval(RegExp.$3)<1 ) return false;    //³¯Â¥ ¿À·ù
    if( eval(RegExp.$2)==2 && eval(RegExp.$3)==29 && ( !(eval(RegExp.$1)%100) || eval(RegExp.$1)%4 ) ) return false;    //³¯Â¥ ¿À·ù
    return true;
}

//////////////////////////////////////////////////////////////////////////////////////
// MoveNext
// »ç¿ëÀÌº¥Æ® : onKeyup
//////////////////////////////////////////////////////////////////////////////////////
function MoveNext(obj1, obj2, maxlen) {
	if ((parseInt(maxlen) <= GetLength(obj1)))
	{
		obj2.focus();
	}
}

//////////////////////////////////////////////////////////////////////////////////////
// isEmail
// ±â´É : ÀÌ¸ÞÀÏ Çü½Ä Ã¼Å©
//////////////////////////////////////////////////////////////////////////////////////

function isEmail(str) {
	if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(str)) return true;
	else return false;
}

//////////////////////////////////////////////////////////////////////////////////////
// LimitAge
// ±â´É : ³ªÀÌÁ¦ÇÑ
//////////////////////////////////////////////////////////////////////////////////////
function LimitAge(idnum,limit_age) {
	idnumStr = new String(idnum);

	// ÁÖ¹Î¹øÈ£ ÂÉ°³±â
	re=/(\d\d)(\d\d)(\d\d)-?([1234])(\d{6})/;
	if(!re.test(idnumStr)) {
		alert('ÀÔ·ÂÇÏ½Å ÁÖ¹Î¹øÈ£ Çü½ÄÀÌ ¸ÂÁö ¾Ê½À´Ï´Ù.');
		return false;
	}

	// »ý³â¿ùÀÏ(YYYYMMDD)
	var jumin_ymd;
	if (eval(RegExp.$4) < 3)
		jumin_ymd = '19'+lpad(String(eval(RegExp.$1)),'0',2);
	else 
		jumin_ymd = '20'+lpad(String(eval(RegExp.$1)),'0',2);

	jumin_ymd = jumin_ymd+lpad(String(eval(RegExp.$2)),'0',2)+lpad(String(eval(RegExp.$3)),'0',2);

	// ¿À´ÃÀÏÀÚ(YYYYMMDD)
	today = new Date();
	var limit_ymd = lpad(String(today.getFullYear()-limit_age),'0',2)+lpad(String(today.getMonth()+1),'0',2)+lpad(String(today.getDate()),'0',2);

	// Á¦ÇÑµÈ »ý³â¿ùÀÏÀÌÀü¿¡ ÅÂ¾î³­ »ç¶÷ÀÌ¸é Çã¿ë
	if (parseInt(limit_ymd) >= parseInt(jumin_ymd)) 
	{
		//alert("Á¦ÇÑ³ªÀÌ"+limit_age+" Á¦ÇÑ³âµµ"+limit_ymd+"ÀÌÀü¿¡ ÅÂ¾î³­ »ç¶÷¸¸ µÈ´Ù >= ´ç½ÅÀÇ³âµµ"+jumin_ymd);
		return true;
	}else {
		alert('¸¸'+limit_age+'¼¼ ÀÌÇÏ´Â µî·ÏÇÏ½Ç ¼ö ¾ø½À´Ï´Ù.');
		return false;
	}
}

function lpad(str,fill,leng) 
{ 
    var n = leng - str.length; 
    var out =""; 
    for (i =0; i < n; i++)  out = out + fill; 
    out=out+str; 
    return out; 
} 

//////////////////////////////////////////////////////////////////////////////////////
// JuminCheck
// ±â´É : ÁÖ¹Î¹øÈ£Ã¼Å©
//////////////////////////////////////////////////////////////////////////////////////
function JuminCheck(idnum)
{
	//	Month	                0    1   2   3    4   5   6    7   8    9  10  11  12
	endDay = new Array( 28, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 );
	idnumStr = new String(idnum);

	// Çü½Ä¿À·ù
	re=/(\d\d)(\d\d)(\d\d)-?([1234]\d{6})/;
	if( !re.test(idnumStr) ) return 2;

	//³¯Â¥ ¿À·ù-¿ù¸»ÀÏÀÚ
	if(  eval(RegExp.$2)>12
	 || eval(RegExp.$3)>endDay[eval(RegExp.$2)] 
	 || eval(RegExp.$2)<1 
	 || eval(RegExp.$3)<1 ) return 1;

	//³¯Â¥ ¿À·ù-À±³âÃ¼Å©
	if(  eval(RegExp.$2)==2 
	&& eval(RegExp.$3)==29 
	&& (!(eval(RegExp.$1)%100) || eval(RegExp.$1)%4)) return 1;

	// Check Sum°úÁ¤
	idnumStr=new String(RegExp.$1+RegExp.$2+RegExp.$3+RegExp.$4);
	idnumArr=idnumStr.split('');
	var sum=0;
	for( var i=0; i<=11; i++ ) {
		sum +=(i%8+2)*eval(idnumArr[i]);
	}
	if( eval(idnumArr[12])!=(11-(sum%11))%10 ) return 3; // CheckSum ¿À·ù.
}

//////////////////////////////////////////////////////////////////////////////////////
// CheckEngNum
// ±â´É : ¿µ¹®°ú ¼ýÀÚ¸¸ ÀÔ·Â¹Þ°Ô ÇÔ
// »ç¿ëÀÌº¥Æ® : onKeyup
//////////////////////////////////////////////////////////////////////////////////////
function CheckEngNum()
{
    var e1  = event.srcElement;
    var str = e1.value;
    var tmp = "";
    var len = str.length;
    for(var i=0;i < len;i++)
    {
         achar = str.substring(i,i+1);
         achar = achar.toUpperCase();
         if( (achar < "A" || achar > "Z") && (achar < "0" || achar > "9")){
             e1.focus();
             alert("¿µ¹®°ú ¼ýÀÚ¸¸ ÀÔ·Â°¡´ÉÇÕ´Ï´Ù.");
			 e1.value = tmp;
             return false;
         }
		 tmp = tmp+str.substring(i,i+1);
    }

    return true;
}

//////////////////////////////////////////////////////////////////////////////////////
// CheckNum
// ±â´É : ¼ýÀÚ¸¸ ÀÔ·Â¹Þ°Ô ÇÔ.
// »ç¿ëÀÌº¥Æ® : onKeyup
//////////////////////////////////////////////////////////////////////////////////////

function CheckNum() {
    var e1  = event.srcElement;
    var num = "0123456789";
    var tmp = "";
    var str_yb = false;
    var first_yb = true;
	
	if (e1.value == "0")
	{
		return;
	}
    for (var i=0;i<e1.value.length;i++) {
        if ((e1.value.charAt(i) == '0') && (first_yb)) {
             // ¾Õ¿¡ '0'ÀÌ ÀÖÀ¸¸é »èÁ¦
            tmp = tmp+e1.value.charAt(i);
            first_yb = false;
        }else if (-1 == num.indexOf(e1.value.charAt(i))) {
             // ÇÏ³ªÀÌ»ó ÀÖÀ¸¸é ¸Þ¼¼Áö
             str_yb = true;
        }else {
            tmp = tmp+e1.value.charAt(i);
            first_yb = false;
        }
    }

    if (str_yb) {
        alert ("¼ýÀÚ¸¸ ÀÔ·ÂÇÏ¼Å¾ß ÇÕ´Ï´Ù.");
        e1.value = tmp;
        return false;
    }

    e1.value = tmp;
    return;
}

//////////////////////////////////////////////////////////////////////////////////////
// CheckLen
// ±â´É : ÀÔ·ÂÃ¢¿¡ ¸Å°³º¯¼ö·Î ¹ÞÀº lenÀÌÇÏÀÇ ¹®ÀÚ¼ö¸¸ µé¾î°¡µµ·Ï ÇÑ´Ù.
// »ç¿ëÀÌº¥Æ® : onKeyup
// ÁÖÀÇ»çÇ× : checklenÇÔ¼ö¸¦ »ç¿ëÇÏ±â À§ÇØ¼­´Â 
//           º¯¼ö(MaxLen)¿Í ÇÔ¼ö(GetLength, CutText)°¡ ÇÊ¿äÇÏ´Ù.
//////////////////////////////////////////////////////////////////////////////////////

var MaxLen;

function CheckLen(len)
{
    // µé¾î¿Â ÄÚµå°¡ '³ª"ÀÏ¶§¸¦ ¸·´Â´Ù.
    if(event.keyCode == 222) { 
        var temp1;
        temp1 = event.srcElement.value;
        event.srcElement.value = temp1;
    }

    MaxLen = parseInt(len);
    templ=GetLength(event.srcElement);
    templ=templ.toString();
    t2=templ.split(",");
    var HanMaxLen = String(Math.floor(MaxLen/2));
    if (t2[0]>MaxLen)
    {
		var enter = "\n";
        alert("ÀÔ·Â»óÀÚ¿¡ Çã¿ë ±æÀÌ ÀÌ»óÀÇ ±ÛÀ» ¾²¼Ì½À´Ï´Ù. "+enter+"º» ÀÔ·Â»óÀÚ¿¡´Â ÇÑ±Û "+HanMaxLen+"ÀÚ, ¿µ¹®"+MaxLen+"ÀÚ±îÁö¸¸ ¾²½Ç ¼ö ÀÖ½À´Ï´Ù.");
        event.returnValue = '';
        event.srcElement.value=CutText(event.srcElement.value);
        return false;
    }

    return true;
}

function ReplaceChars(out,add,entry) {

    temp = "" + entry; // temporary holder

    while (temp.indexOf(out)>-1) {
        pos= temp.indexOf(out);
        temp = "" + (temp.substring(0, pos) + add + temp.substring((pos + out.length), temp.length));
    }

    return temp;
}

function GetLength(obj)
{
    temp2=obj.value;
    temp4=""
    var l=0;
    for (i=0;i<temp2.length;i++)
    {
        temp3 = temp2.charAt(i);
        
        if (escape(temp3).length > 4)
            l+=2;
        else if (temp3!='\r')
            l++;
    }
    
    if (l>MaxLen) return l+","+i;
    temp=""
    return l;
}

function CutText(aquery)
{
    var tmpStr;
    var temp=0;
    var onechar;
    var tcount;
    tcount = 0;
    tmpStr = new String(aquery);
    l = tmpStr.length;

    for(k=0;k<l;k++)
    {
        onechar = tmpStr.charAt(k);
        
        if(escape(onechar).length > 4) {
            tcount += 2;
        }
        else if(onechar!='\r') {
            tcount++;
        }
        if(tcount>MaxLen) {
            tmpStr = tmpStr.substring(0,k);
            break;
        }
    }

    return tmpStr;
}
