/******************************************************** 
   ÆÄÀÏ¸í : lib.mask.js
   ¼³  ¸í : ºê¶ó¿ìÁ® °øÅëÆ÷¸ä Ã³¸®°ü·Ã °øÅëÇÔ¼ö ¸ðÀ½
            È­¸é´Ü Validation/Filter/Format(won, date, filter¿Ü)±â´ÉÀ» Ã³¸®ÇÑ´Ù.
			»ç¿ëµÇ´Â Mask ÆÐÅÏ
			won : ¿øÈ­ (3ÀÚ¸® ¸¶´Ù "," ÀÔ·Â)
			year : ³âµµ (9999)
			yearmonth : ³â¿ù (9999-99)
			date : ³â¿ùÀÏ (9999-99-99)
			time : ½Ã°£ (99:99)
			jumin : ÁÖ¹Îµî·Ï¹øÈ£ (999999-9999999)
			bizno : »ç¾÷ÀÚµî·Ï¹øÈ£ (999-99-99999)
			corpno : ±â¾÷¹øÈ£ (999999-9999999)
			orgno : ±â°ü¹øÈ£ (99-999999)
			zipcode : ¿ìÆí¹øÈ£ (999-999)
			kor : ÇÑ±Û¸¸ ÀÔ·Â°¡´É
			eng : ¿µ¹®¸¸ ÀÔ·Â°¡´É
			num : ¼ýÀÚ¸¸ ÀÔ·Â°¡´É(´Ü ¼Ò¼öÁ¡ ÀÔ·Â°¡´É, ¿À¸¥ÂÊ Á¤·Ä)
			num2 : ¼ýÀÚ¸¸ ÀÔ·Â°¡´É(¼Ò¼öÁ¡ ¹× °ø¹éÀÔ·Â ºÒ°¡, ¿ÞÂÊ Á¤·Ä)
			numcode : ¼ýÀÚ¸¸ ÀÔ·Â°¡´É (¼Ò¼öÁ¡ ¹× °ø¹éÀÔ·Â ºÒ°¡)
			engcode : ¿µ¹®°ú ¼ýÀÚ ÀÔ·Â (°ø¹éÀÔ·ÂºÒ°¡)
			koreng : ÇÑ±Û°ú ¿µ¹®ÀÔ·Â (¼ýÀÚÀÔ·ÂºÒ°¡)
			kornum : ÇÑ±Û°ú ¼ýÀÚÀÔ·Â (¿µ¹®ÀÔ·ÂºÒ°¡)
			engnum : ¿µ¹®°ú ¼ýÀÚÀÔ·Â
			email : ÀÌ¸ÞÀÏ Æ÷¸ä
			url : URL Æ÷¸ä
			tel : ÀüÈ­¹øÈ£ Æ÷¸ä
			lowerengnum : ¿µ¹®(¼Ò¹®ÀÚ)°ú ¼ýÀÚÀÔ·Â
			spchar : Æ¯¼ö¹®ÀÚÀÔ·Â Á¦¿Ü ÇÑ±Û, ¿µ¹®, ¼ýÀÚ¸¸ ÀÔ·Â°¡´É
            
			»ç¿ë¹æ¹ý 
			<input name="buy_amt" type="text" id="buy_amt" size="14" won> //Á¦ÀÏ ¸¶Áö¸·¿¡ Mask Format("won")À» ÀÔ·ÂÇÑ´Ù.
   ÀÛ¼ºÀÚ : ±èÇö¹è 
   ÀÛ¼ºÀÏ : 2008.08.18 
   ¼öÁ¤ÀÏ : 2008.08.18 
*********************************************************/ 

var TYPE_NONE = 0;
var TYPE_WON = 1;
var TYPE_YEAR = 2;
var TYPE_YEARMONTH = 3;
var TYPE_DATE = 4;
var TYPE_TIME = 5;
var TYPE_JUMIN = 6;
var TYPE_BIZNO = 7;
var TYPE_ORGNO = 8;
var TYPE_CORPNO = 9;
var TYPE_ZIPCODE = 10;
var TYPE_NUMCODE = 11;
var TYPE_ENGCODE = 12;

var TYPE_KOR = 20;
var TYPE_ENG = 21;
var TYPE_NUM = 22;
var TYPE_KORENG = 23;
var TYPE_KORNUM = 24;
var TYPE_ENGNUM = 25;

var TYPE_EMAIL = 30;
var TYPE_URL = 31;
var TYPE_TEL = 32;
var TYPE_LOWERENGNUM = 33;

var TYPE_CAL = 34;
var TYPE_SPCHAR = 35;

function unformat()
{
    for(i = 0; i < document.forms.length; i++)
    {
    	var form = document.forms[i];
        for(j = 0; j < form.elements.length; j++)
        {
            if(form.elements[j].type == "text" || form.elements[j].type == "password") {
                //valdation typeÀ» Á¤ÀÇÇÑ ÇÊµå¿¡ ´ëÇØ¼­¸¸ '-' ºÎÈ£¸¦ Á¦°ÅÇØ ÁØ´Ù.
            	if( form.elements[j].getAttribute("won") != null ||
            		form.elements[j].getAttribute("yearmonth") != null ||
            		form.elements[j].getAttribute("date") != null ||
            		form.elements[j].getAttribute("time") != null ||
            		form.elements[j].getAttribute("jumin") != null ||
            		form.elements[j].getAttribute("bizno") != null ||
            		form.elements[j].getAttribute("orgno") != null ||
            		form.elements[j].getAttribute("zipcode") != null ||
             		form.elements[j].getAttribute("corpno") != null ||
             		form.elements[j].getAttribute("numcode") != null ) 
                {
                    form.elements[j].value = form.elements[j].value.replace(/(\,|\-|\:)/g,"");;
                }
            }        
        }
    }
}  

function __fomat()
{
	switch(this.elementType)
	{
		case TYPE_WON : 
			var sWon = this.value.replace(/(^(0)*|,)/g, ""); // ¾Õ¿¡¼­ ¹ß»ýÇÏ´Â ¹«ÀÇ¹ÌÇÑ 0¿Í Áß°£ÀÇ ,(Comma)¸¦ Á¦°ÅÇÑ´Ù.

			var tWon = "";
			var i;
			var j = 0; 
			var tLen = sWon.length;

			for(i=0; i<tLen; i++)
			{
				if(i != 0 && (i % 3 == tLen % 3))
					tWon += ",";
				if(i < sWon.length)
                {
                    tWon += sWon.charAt(i);
                }
			}

			this.value = tWon;
			break;

		case TYPE_YEAR		: 
			this.value = __fomatMask(this.value, "9999");
			break;

		case TYPE_YEARMONTH : 
			this.value = __fomatMask(this.value, "9999-99");
			break;

		case TYPE_DATE		: 
			this.value = __fomatMask(this.value, "9999-99-99");
			break;

        case TYPE_TIME		: 
			this.value = __fomatMask(this.value, "99:99");
			break;


		case TYPE_JUMIN		: 
			this.value = __fomatMask(this.value, "999999-9999999");
			break;

		case TYPE_BIZNO		: 
			this.value = __fomatMask(this.value, "999-99-99999");
			break;

        case TYPE_ORGNO		: 
			this.value = __fomatMask(this.value, "99-999999");
			break;

		case TYPE_ZIPCODE	: 
			this.value = __fomatMask(this.value, "999-999");
			break;
        
        case TYPE_CORPNO	: 
			this.value = __fomatMask(this.value, "999999-9999999");
			break;
	}                 
}


function __fomatMask(str, mask)
{

	var sStr = str.replace(/(\$|\^|\*|\(|\)|\+|\.|\?|\\|\{|\}|\||\[|\]|-|:)/g,"");
	var tStr = "";
	var i;
	var j=0; 
	var tLen = sStr.length + 1 ;

	for(i=0; i< sStr.length; i++)
	{
		tStr += sStr.charAt(i);
		j++;
		if(j < mask.length && mask.charAt(j) != "9")
			tStr += mask.charAt(j++);
	 }   

	 return tStr;
}

function __onkeypress()
{
    var sKey = String.fromCharCode(event.keyCode); 
	var sFilter;

	switch(this.elementType)
	{
        // ¼ýÀÚ¿Í ¼Ò¼öÁ¡ÀÌ ÀÔ·Â°¡´É
		case TYPE_WON		:
    		sFilter = "[0-9.-]";
            break;

        // ¼ýÀÚ¸¸ ÀÔ·Â°¡´É
		case TYPE_YEAR		: 
		case TYPE_YEARMONTH : 
		case TYPE_DATE		:
		case TYPE_TIME		:
		case TYPE_JUMIN		:
		case TYPE_BIZNO		:
		case TYPE_ORGNO		:
		case TYPE_CORPNO	:

		case TYPE_ZIPCODE	:
    		sFilter = "[0-9]";
            break;

        case TYPE_NUMCODE   :
            sFilter = "[0-9]";
            break;

        case TYPE_ENGCODE   :
            sFilter = "[0-9A-Za-z_-]";
            break;

        case TYPE_KOR       :
            sFilter = "[^0-9A-Za-z ]";
            break;

        case TYPE_ENG       :
            sFilter = "[A-Za-z ]";
            break;

        case TYPE_NUM       :
            sFilter = "[0-9.-]";
            break;

        case TYPE_KORENG    :
            sFilter = "[^0-9 ]";
            break;

        case TYPE_KORNUM    :
            sFilter = "[^A-Za-z ]";
            break;

        case TYPE_ENGNUM    :
            sFilter = "[0-9A-Za-z ]";
            break;

        case TYPE_EMAIL     :
            sFilter = "[0-9A-Za-z@._-]";
            break;

        case TYPE_URL       :
            sFilter = "[0-9a-z:/._&=?]";
            break;

        case TYPE_TEL       :
            sFilter = "[0-9]";
            break;

        case TYPE_LOWERENGNUM   :
            sFilter = "[0-9a-z_-]";
            break;

		case TYPE_CAL :
			sFilter = "[0-9.]";
            break;

		case TYPE_SPCHAR :
			sFilter = "[0-9a-zA-Z¤¡-¤¾¤¿-¤Ó°¡-Èþ]";
            break;
	}	

    if(sFilter)
	{ 
		var re = new RegExp(sFilter);    
    
		if(!re.test(sKey))
        {
			event.returnValue = false;
        }
	}      

    if(this.getAttribute("filter"))
    {
		var re = new RegExp(this.getAttribute("filter"));    

		if(!re.test(sKey))
        {
			window.event.returnValue = false;
        }
    }

    if(this.elementType == TYPE_WON || this.elementType == TYPE_NUM) // TYPE_WON, TYPE_NUMÀÇ °æ¿ì ÄÄ¸¶´Â ÇÑ°³¸¸
    {
        if(sKey == "." && this.value.indexOf(".") != -1)
    	window.event.returnValue = false;                    
    }

    if(this.getAttribute("keyPress"))
    {
        var fn  = eval(this.getAttribute("keyPress"));
    }
}    

function __onkeyup()
{
    var nKeyCode = window.event.keyCode;
    if(nKeyCode == 9 || 
        (nKeyCode >= 33 && nKeyCode <= 40) ||
        nKeyCode == 45 || nKeyCode == 46)
        return;

    switch(this.elementType)
	{
		case TYPE_WON		:
            insertSeperatorByWon(this, ",");	
            break;

		case TYPE_YEAR		: 
            break;

		case TYPE_YEARMONTH : 
            insertSeperatorByYearMonth(this, "-");
            break;

		case TYPE_DATE		:
            insertSeperatorByDate(this, "-");
            break;

		case TYPE_TIME		:
            insertSeperatorByTime(this, ":");
            break;

		case TYPE_JUMIN		:
            insertSeperatorByJumin(this, "-");
            break;

		case TYPE_BIZNO		:
            insertSeperatorByBizno(this, "-");
            break;

		case TYPE_ORGNO		:
            insertSeperatorByOrgno(this, "-");
            break;

		case TYPE_ZIPCODE	:
            insertSeperatorByZipcode(this, "-");
            break;

		case TYPE_CORPNO	:
            insertSeperatorByCorpNo(this, "-");
            break;            

        case TYPE_NUMCODE   :
        case TYPE_ENGCODE   :
        case TYPE_KOR       :
        case TYPE_ENG       :
        case TYPE_NUM       :
        case TYPE_KORENG    :
        case TYPE_KORNUM    :
        case TYPE_ENGNUM    :
        case TYPE_EMAIL     :
        case TYPE_URL       :
        case TYPE_TEL       :
        case TYPE_LOWERENGNUM    :
		case TYPE_CAL    :
		case TYPE_SPCHAR    :
            break;
	}

    if(this.getAttribute("keyUp"))
    {
        var fn  = eval(this.getAttribute("keyUp"));
    }
}

function __onkeydown()
{
    if(this.getAttribute("keyDown"))
    {
        var fn  = eval(this.getAttribute("keyDown"));
    }
}

function __onfocus()
{
	if(this.select)
    {
		this.select(); 
    }

    if(this.getAttribute("focus"))
    {
        var fn  = eval(this.getAttribute("focus"));
    }
}

function __onchange(){
    if(this.getAttribute("change"))
    {
        var fn  = eval(this.getAttribute("change"));
    }
}

function __onclick(){

    if(this.getAttribute("click"))
    {
        var fn  = eval(this.getAttribute("click"));
    }
}

function __onblur()
{
    if(window.event.keyCode == 9)
        return;

    var title = this.getAttribute("title")?this.getAttribute("title"):"ÀÔ·ÂÀÚ·á";
    var name = this.name;

    // ¹üÀ§ °Ë»ç
    if(this.getAttribute("range"))
    {
        var range = this.getAttribute("range").split("-");
        if(range.length == 2)
        {
            var str = trimAll(this.value);

            if(strlen(str) != 0 && !(strlen(str) >= range[0] && strlen(str) <= range[1]))
            {
                if(range[0] == range[1]) {
                    window.alert(title + "Àº(´Â) " + range[0] +"ÀÚ·Î ÀÔ·ÂÇÏ¼¼¿ä.");
                    this.focus();
                } else {
                    window.alert(title + "Àº(´Â) ÃÖ¼Ò " + range[0] +"ÀÚ, ÃÖ´ë " + range[1] + "ÀÚ·Î ÀÔ·ÂÇÏ¼¼¿ä.");
                    this.focus();
                }
                this.value = str;
                this.focus();

                return;
            }

            this.value = str;

        }
    } 

    // À¯È¿¼º °Ë»ç
	switch(this.elementType)
	{
		case TYPE_YEAR		: 
            var str = this.value;

            if(str != "")
            {
                if(str != "" && !(parseInt(str) >= 1900 && parseInt(str) <= 2100))
                {
                    window.alert("[" + str + "]Àº(´Â) À¯È¿ÇÑ " + title + "ÀÌ(°¡) ¾Æ´Õ´Ï´Ù.");
                    this.focus();
                    
                    this.value = str;
                    return;
                }

                this.value = str;
            }
            break;

        case TYPE_YEARMONTH	: 
            var sep = "-" // ±¸ºÐÀÚ
            var str = this.value;

            if(str != "")
            {            
                var arr = new Array(); 

                arr = str.split(sep);

                if(arr.length != 2)
                {
                    window.alert(title + "Àº(´Â) [" + sep + "]·Î ±¸ºÐÇØ¾ß ÇÕ´Ï´Ù.");
                    this.value = str;
                    return;
                }

                if(!ValidYear(arr[0]) || !ValidMonth(arr[1]))
                {
                    window.alert("[" + str + "]Àº(´Â) À¯È¿ÇÑ " + title + "ÀÌ(°¡) ¾Æ´Õ´Ï´Ù.");
                    this.focus();
                    this.value = str;

                    return;
                }

                if(arr[1].length == 1)
                {

                    arr[1] = "0" + arr[1];
                }

                this.value = arr[0] + sep + arr[1];
            }
            break;

		case TYPE_DATE		: 
            var sep = "-";
            var str = this.value;
 
            if(str != "")
            {
                var arr = new Array();
                arr = str.split(sep);

                if(arr.length != 3)
                {
                    window.alert(title + "Àº(´Â) [" + sep + "]·Î ±¸ºÐÇØ¾ß ÇÕ´Ï´Ù.");
                    this.focus();
                    this.value = str;
                    return;
                }

                if(!ValidDate(arr[0], arr[1], arr[2]))
                {
                    window.alert("[" + str + "]Àº(´Â) À¯È¿ÇÑ " + title + "ÀÌ(°¡) ¾Æ´Õ´Ï´Ù.");
                    this.focus();
                    this.value = str;
                    return;
                }

                if(arr[1].length == 1)
                {

                    arr[1] = "0" + arr[1];
                }

                if(arr[2].length == 1)
                {

                    arr[2] = "0" + arr[2];
                }

                this.value = arr[0] + sep + arr[1] + sep + arr[2];
            }
            break;

		case TYPE_TIME		: 
            var sep = ":" // ±¸ºÐÀÚ
            var str = this.value;

            if(str != "")
            {            
                var arr = new Array(); 

                arr = str.split(sep);

                if(arr.length != 2)
                {
                    window.alert(title + "Àº(´Â) [" + sep + "]·Î ±¸ºÐÇØ¾ß ÇÕ´Ï´Ù.");
                    this.focus();
                    this.value = str;
                    return;
                }

                if(!ValidHour(arr[0]) || !ValidMinute(arr[1]))
                {
                    window.alert("[" + str + "]Àº(´Â) À¯È¿ÇÑ " + title + "ÀÌ(°¡) ¾Æ´Õ´Ï´Ù.");
                    this.focus();
                    this.value = str;

                    return;
                }

                if(arr[1].length == 1)
                {

                    arr[1] = "0" + arr[1];
                }

                this.value = arr[0] + sep + arr[1];
            }
            break;

		case TYPE_JUMIN		:
            var sep = "-";
            var str = this.value;

            if(str != "")
            {
                var arr = new Array(); 
                arr = str.split(sep);

                if(arr.length != 2)
                {
                    window.alert(title + "Àº(´Â) [" + sep + "]·Î ±¸ºÐÇØ¾ß ÇÕ´Ï´Ù.");
                    this.focus();
                    this.value = str;
                    return;
                }

                if(!ValidSize(arr[0], 6, 6))
                {
                    window.alert(title + "ÀÇ ¾ÕÀÚ¸®´Â " + 6 + "ÀÚ·Î ÀÔ·ÂÇÏ¼¼¿ä.");
                    this.focus();
                    this.value = str;
                    return;
                }

                if(!ValidSize(arr[1], 7, 7))
                {
                    window.alert(title + "ÀÇ µÞÀÚ¸®´Â " + 7 + "ÀÚ·Î ÀÔ·ÂÇÏ¼¼¿ä.");
                    this.focus();
                    this.value = str;
                    return;
                }

                var year = (parseInt(arr[0].substring(0, 2)) < 5)?"20":"19";
                if(!ValidDate(year + arr[0].substring(0, 2), arr[0].substring(2, 4), arr[0].substring(4, 6)))
                {
                    window.alert(title + "ÀÇ »ý³â¿ùÀÏÀÌ Á¤È®ÇÏÁö ¾Ê½À´Ï´Ù.");
                    this.focus();
                    this.value = str;
                    return;
                }

                var hap = 0;
                for(var i = 0; i < 6; i++)
                {
                    var temp = arr[0].charAt(i) *(i+2);
                    hap += temp;
                }

                if(!(arr[0] == "000000" && arr[1] == "0000000"))
                {
                    var n1 = arr[1].charAt(0);
                    var n2 = arr[1].charAt(1);
                    var n3 = arr[1].charAt(2);
                    var n4 = arr[1].charAt(3);
                    var n5 = arr[1].charAt(4);
                    var n6 = arr[1].charAt(5);
                    var n7 = arr[1].charAt(6);

                    hap += n1*8+n2*9+n3*2+n4*3+n5*4+n6*5;
                    hap %= 11;
                    hap = 11 - hap;
                    hap %= 10;

                    if(hap != n7)
                    {	
                        window.alert(title + "ÀÌ(°¡) À¯È¿ÇÏÁö ¾Ê½À´Ï´Ù. È®ÀÎ ÈÄ ´Ù½Ã ÀÔ·ÂÇÏ¼¼¿ä.");
                        this.focus();
                        this.value = str;
                        return;
                    }
                }

                this.value = str;
            }
            break;

		case TYPE_EMAIL		: 
            //var sep = ":" // ±¸ºÐÀÚ
            re = /^[0-9a-zA-Z]([-_\.]?[0-9a-zA-Z])*@[0-9a-zA-Z]([-_\.]?[0-9a-zA-Z])*\.[a-zA-Z]{2,3}$/i; 
            var str = this.value;

            if(str != "") {
            
                if(!re.test(str)) { 
                    window.alert("e-mail ÁÖ¼Ò°¡ À¯È¿ÇÏÁö ¾Ê½À´Ï´Ù. È®ÀÎ ÈÄ ´Ù½Ã ÀÔ·ÂÇÏ¼¼¿ä.");
                    this.focus();
                    this.value = str;
                    return; 
                }  
            }
            break;
		case TYPE_NONE		: // TYPE_NONEÀÇ °æ¿ì document ³»ÀÇ ¸ðµç element°¡ ÇØ´çµÇ¹Ç·Î validation °Ë»ç¸¦ ÇÏÁö¾Ê´Â´Ù.
            break;
	}

    if(this.getAttribute("blur"))
    {
        var fn  = eval(this.getAttribute("blur"));
    }
}

function notifyWonDomEvent()
{
    for(i = 0; i < document.forms.length; i++)
    {
        var form = document.forms[i];
        for(j = 0; j < form.elements.length; j++)
        {
            switch(form.elements[j].type)
            {
                // ³»ÀåµÈ Å°¿öµå°¡ ÀÖÀ» °æ¿ì ¿À¸¥ÂÊ Á¤·Ä, ¿µ¼ýÀÚ¸¸ ÀÔ·ÂÀÌ °¡´ÉÇÏµµ·Ï ¼³Á¤ÇÑ´Ù.
                case "password"	:
                case "text"		:
                    if(form.elements[j].getAttribute("won") != null)
                    {
                        insertSeperatorByWon(form.elements[j], ","); 
                    }
                    break;
                default:
                    break;            
            }
        }
    }
}

function enableDomEvent()
{
    for(i = 0; i < document.forms.length; i++)
    {
        var form = document.forms[i];

        for(j = 0; j < form.elements.length; j++)
        {
            switch(form.elements[j].type)
            {
                // ³»ÀåµÈ Å°¿öµå°¡ ÀÖÀ» °æ¿ì ¿À¸¥ÂÊ Á¤·Ä, ¿µ¼ýÀÚ¸¸ ÀÔ·ÂÀÌ °¡´ÉÇÏµµ·Ï ¼³Á¤ÇÑ´Ù.
                case "password"	:
                case "text"		:
                    if(form.elements[j].getAttribute("won") != null)
                    {
                        form.elements[j].elementType = TYPE_WON;
                        form.elements[j].style.textAlign = "right";
                        form.elements[j].style.paddingRight = "2px";
                        form.elements[j].style.imeMode = "disabled"; 
						insertSeperatorByWon(form.elements[j], ","); 
                    }
                    else if(form.elements[j].getAttribute("year") != null)
                    {
                        form.elements[j].elementType = TYPE_YEAR;
                        form.elements[j].style.imeMode = "disabled";
                    }
                    else if(form.elements[j].getAttribute("yearmonth") != null)
                    {
                        form.elements[j].elementType = TYPE_YEARMONTH;
                        form.elements[j].style.imeMode = "disabled";
                        insertSeperatorByYearMonth(form.elements[j], "-");
                    }
                    else if(form.elements[j].getAttribute("date") != null)
                    {
                        form.elements[j].elementType = TYPE_DATE;
                        form.elements[j].style.imeMode = "disabled";
                        insertSeperatorByDate(form.elements[j], "-");
                    }
                    else if(form.elements[j].getAttribute("time") != null)
                    {
                        form.elements[j].elementType = TYPE_TIME;
                        form.elements[j].style.imeMode = "disabled";
                        insertSeperatorByTime(form.elements[j], ":");
                    }
                    else if(form.elements[j].getAttribute("jumin") != null)
                    {
                        form.elements[j].elementType = TYPE_JUMIN;
                        form.elements[j].style.imeMode = "disabled";
                        insertSeperatorByJumin(form.elements[j], "-");
                    }
                    else if(form.elements[j].getAttribute("bizno") != null)
                    {
                        form.elements[j].elementType = TYPE_BIZNO;
                        form.elements[j].style.imeMode = "disabled";
                        insertSeperatorByBizno(form.elements[j], "-");
                    }
                    else if(form.elements[j].getAttribute("corpno") != null)
                    {
                        form.elements[j].elementType = TYPE_CORPNO;
                        form.elements[j].style.imeMode = "disabled";
                        insertSeperatorByCorpNo(form.elements[j], "-");
                    }
                    else if(form.elements[j].getAttribute("orgno") != null)
                    {
                        form.elements[j].elementType = TYPE_ORGNO;
                        form.elements[j].style.imeMode = "disabled";
                        insertSeperatorByOrgno(form.elements[j], "-");
                    }
                    else if(form.elements[j].getAttribute("zipcode") != null)
                    {
                        form.elements[j].elementType = TYPE_ZIPCODE;
                        form.elements[j].style.imeMode = "disabled";
                        insertSeperatorByZipcode(form.elements[j], "-");
                    }
                    else if(form.elements[j].getAttribute("kor") != null)
                    {
                        form.elements[j].elementType = TYPE_KOR;
                        form.elements[j].style.imeMode = "active";
                    }
                    else if(form.elements[j].getAttribute("eng") != null)
                    {
                        form.elements[j].elementType = TYPE_ENG;
                        form.elements[j].style.imeMode = "disabled";
                    }
                    else if(form.elements[j].getAttribute("num") != null)
                    {
                        form.elements[j].elementType = TYPE_NUM;
                        form.elements[j].style.textAlign = "right";
                        form.elements[j].style.paddingRight = "2px";
                        form.elements[j].style.imeMode = "disabled";
                    }
                    else if(form.elements[j].getAttribute("num2") != null)
                    {
                        form.elements[j].elementType = TYPE_NUM;
                        form.elements[j].style.textAlign = "left";
                        form.elements[j].style.imeMode = "disabled";
                    }
                    else if(form.elements[j].getAttribute("numcode") != null)
                    {
                        form.elements[j].elementType = TYPE_NUMCODE;
                        form.elements[j].style.imeMode = "disabled";
                    }
                    else if(form.elements[j].getAttribute("engcode") != null)
                    {
                        form.elements[j].elementType = TYPE_ENGCODE;
                        form.elements[j].style.imeMode = "disabled";
                    }
                    else if(form.elements[j].getAttribute("koreng") != null)
                    {
                        form.elements[j].elementType = TYPE_KORENG;
                        form.elements[j].style.imeMode = "active";
                    }
                    else if(form.elements[j].getAttribute("kornum") != null)
                    {
                        form.elements[j].elementType = TYPE_KORNUM;
                        form.elements[j].style.imeMode = "active";
                    }
                    else if(form.elements[j].getAttribute("engnum") != null)
                    {
                        form.elements[j].elementType = TYPE_ENGNUM;
                        form.elements[j].style.imeMode = "disabled";
                    }
                    else if(form.elements[j].getAttribute("email") != null)
                    {
                        form.elements[j].elementType = TYPE_EMAIL;
                        form.elements[j].style.imeMode = "disabled";
                    }
                    else if(form.elements[j].getAttribute("url") != null)
                    {
                        form.elements[j].elementType = TYPE_URL;
                        form.elements[j].style.imeMode = "inactive";
                    }
                    else if(form.elements[j].getAttribute("tel") != null)
                    {
                        form.elements[j].elementType = TYPE_TEL;
                        form.elements[j].style.imeMode = "disabled";
                    }
                    else if(form.elements[j].getAttribute("lowerengnum") != null)
                    {
                        form.elements[j].elementType = TYPE_LOWERENGNUM;
                        form.elements[j].style.imeMode = "disabled";
                    }
					else if(form.elements[j].getAttribute("cal") != null)
                    {
                        form.elements[j].elementType = TYPE_CAL;
                        form.elements[j].style.imeMode = "disabled";
                    }
					else if(form.elements[j].getAttribute("spchar") != null)
                    {
                        form.elements[j].elementType = TYPE_SPCHAR;
                        form.elements[j].style.imeMode = "active";
                    }
                    else
                    {
                        form.elements[j].elementType = TYPE_NONE;
                        form.elements[j].style.imeMode = "active";
                    }
 
                    //All Object Àû¿ëµÇ ¾Ê°í, ÇÁ·ÎÁ§Æ® È¯°æ¿¡ µû¶ó º°µµÀÇ FunctionÀû¿ëÀÌ °¡´ÉÇÏµµ·Ï if ¹®À¸·Î Ã³¸®ÇÔ
	            	if(form.elements[j].onkeypress==undefined ||form.elements[j].onkeypress==null){
                    		form.elements[j].onkeypress = __onkeypress;
					}        
					if(form.elements[j].onkeyup==undefined ||form.elements[j].onkeyup==null){
							form.elements[j].onkeyup = __onkeyup;
					}
					if(form.elements[j].onkeydown==undefined ||form.elements[j].onkeydown==null){
							form.elements[j].onkeydown = __onkeydown;
					}
			//		if(form.elements[j].format==undefined ||form.elements[j].format==null){ 
			//				form.elements[j].format = __fomat;
			//		}
					if(form.elements[j].onfocus==undefined ||form.elements[j].onfocus==null){
							form.elements[j].onfocus = __onfocus;
					}

                    break;            

                default:
                    break;            
            }
        }
    }
}

function amtLimit(ctl, limit, msg){

	var nAmt = 0;

	if(ctl.value == "") ctl.value = "0";

	nAmt = parseInt(del_comma(ctl), 10);
	nAmt = nAmt % limit;
	if (nAmt > 0){
		alert(msg);
		ctl.value="0";
		ctl.focus();
		return false;
	}
	return true;
}

function insertSeperatorByWon(obj, sep)
{
	if(!isObject(obj))
		return false;

	var str = trimAll(obj.value);
	str = removeString(str, sep);

    var signFlag = false;
    if(str.indexOf("-") != -1)
    {
    	str = removeString(str, "-");
        signFlag = true;
    }

    var size = 3;
	var strMain = "";
    var strTail = "";
	var strTemp = "";
	var strSep = sep;

    if(str.indexOf(".") != -1)
    {
        strMain = str.substring(0, str.indexOf("."));
        strTail = str.substring(str.indexOf("."));
    }
    else
    {
        strMain = str;
    }

    if(str.indexOf(".") == -1) // ¼Ò¼öÁ¡ÀÌ ¾øÀ»°æ¿ì -> ,(Comma)·Î ºÐÇÒÇÑ´Ù
    {
        var strMainLength  = strMain.length;

        if(strMainLength > size)
        {
            var divLength = parseInt((strMainLength)/ size);
            var remLength = parseInt((strMainLength)% size);

            if (remLength > 0)
            {
                strTemp = strMain.substring(0, remLength) + strSep;
            }

            for (var i=0; i < divLength; i++)
            {
                if (i == 0)
                {
                    strTemp = strTemp + strMain.substring(remLength, remLength + size);
                }
                else
                {
                    strTemp = strTemp + strSep + strMain.substring(remLength + (size * i), remLength + (size * i) + size);
                }
            }
        }
        else
        {
            strTemp = strMain;
        }

        obj.value = (signFlag?"-":"") + strTemp + strTail;
    }
    else // ¼Ò¼öÁ¡ÀÌ ÀÖÀ» °æ¿ì
    {
        var strMainLength = strMain.length;
        if(strMainLength <= size) // ¼Ò¼öÁ¡ÀÌ ÀÖ°í ¼Ò¼öÁ¡ÀÌ»óÀÌ 3ÀÚ¸®¸¦ ÃÊ°úÇÏÁö ¾ÊÀ»°æ¿ì -> ¼Ò¼öÁ¡ÀÌ»ó ±×´ë·Î º¹»ç
        {
            strTemp = strMain;
        }
        else // ¼Ò¼öÁ¡ÀÌ ÀÖ°í ¼Ò¼öÁ¡ÀÌ»óÀÌ 3ÀÚ¸®¸¦ ÃÊ°úÇÒ °æ¿ì -> ¼Ò¼öÁ¡ÀÌ»ó ,(Comma)·Î ºÐÇÒÇÑ´Ù.
        {
            var divLength = parseInt((strMainLength)/ size);
            var remLength = parseInt((strMainLength)% size);

            if (remLength > 0)
            {
                strTemp = strMain.substring(0, remLength) + strSep;
            }

            for (var i = 0; i < divLength; i++)
            {
                if (i == 0)
                {
                    strTemp = strTemp + strMain.substring(remLength, remLength + size);
                }
                else
                {
                    strTemp = strTemp + strSep + strMain.substring(remLength + (size * i), remLength + (size * i) + size);
                }
            }
        }

        obj.value = (signFlag?"-":"") + strTemp + strTail;
    }
}

function insertSeperatorByYearMonth(obj, sep)
{
	if(!isObject(obj))
		return false;

	var str = trimAll(obj.value);
	str = removeString(str, sep);

	if(str.length == 4)
	{
		obj.value = str.substring(0, 4);
	}
	else if(str.length > 4)
	{
		obj.value = str.substring(0, 4) + sep + str.substring(4, (str.length > 6)?6:str.length);
	}
}

function insertSeperatorBySsn(obj, sep)
{
	if(!isObject(obj))
		return false;

	var str = trimAll(obj.value);
	str = removeString(str, sep);

	if(str.length == 6)
	{
		obj.value =  str.substring(0, 6);
	}
	else if(str.length > 6)
	{
		obj.value =  str.substring(0, 6) + sep + str.substring(6, (str.length > 13)?13:str.length);
	}
}

function insertSeperatorByDate(obj, sep)
{
	if(!isObject(obj))
		return false;

	var str = trimAll(obj.value);
	str = removeString(str, sep);

	if(str.length == 4)
	{
		obj.value = str.substring(0, 4);
	}
	else if(str.length > 4 && str.length < 6)
	{
		obj.value = str.substring(0, 4) + sep + str.substring(4, (str.length>6)?6:str.length);
	}
	else if(str.length == 6)
	{
		obj.value =  str.substring(0, 4) + sep + str.substring(4, 6);
	}
    else if(str.length > 6)
	{
		obj.value =  str.substring(0, 4) + sep + str.substring(4, 6) + sep + str.substring(6, (str.length > 8)?8:str.length);
	}
}

function insertSeperatorByTime(obj, sep)
{
	if(!isObject(obj))
		return false;

	var str = trimAll(obj.value);
	str = removeString(str, sep);

	if(str.length == 2)
	{
		obj.value = str.substring(0, 2);
	}
	else if(str.length > 2)
	{
		obj.value = str.substring(0, 2) + sep + str.substring(2, (str.length > 4)?4:str.length);
	}
}

function insertSeperatorByDay(obj, sep)
{
	return insertSeperatorByDate(obj, sep);
}

function insertSeperatorByJumin(obj, sep)
{
	return insertSeperatorBySsn(obj, sep);
}

function insertSeperatorByCorpNo(obj, sep)
{
	return insertSeperatorBySsn(obj, sep);
}

function insertSeperatorByBrn(obj, sep)
{
	if(!isObject(obj))
		return false;

	var str = trimAll(obj.value);
	str = removeString(str, sep);

	if(str.length == 3)
	{
		obj.value =  str.substring(0, 3);
	}
	else if(str.length > 3 && str.length < 5)
	{
		obj.value =  str.substring(0, 3) + sep + str.substring(3, (str.length>5)?5:str.length);
	}
	else if(str.length == 5)
	{
		obj.value =  str.substring(0, 3) + sep + str.substring(3, 5);
	}
    else if(str.length > 5)
	{
		obj.value =  str.substring(0, 3) + sep + str.substring(3, 5) + sep + str.substring(5, (str.length > 10)?10:str.length);
	}
}

function insertSeperatorByBizno(obj, sep)
{
	return insertSeperatorByBrn(obj, sep);
}

function insertSeperatorByOrgno(obj, sep)
{
	if(!isObject(obj))
		return false;

	var str = trimAll(obj.value);
	str = removeString(str, sep);

	if(str.length == 2)
	{
		obj.value =  str.substring(0, 2);
	}
	if(str.length > 2)
	{
		obj.value =  str.substring(0, 2) + sep + str.substring(2, (str.length>8)?8:str.length);
	}
}

function insertSeperatorByZipcode(obj, sep)
{
	if(!isObject(obj))
		return false;

	var str = trimAll(obj.value);
	str = removeString(str, sep);

	if(str.length == 3)
	{
		obj.value =  str.substring(0, 3);
	}
	else if(str.length > 3)
	{
		obj.value =  str.substring(0, 3) + sep + str.substring(3, (str.length > 6)?6:str.length);
	}
}


/**
 * A-2. Input Object°¡ ½ÇÁ¦·Î ÆäÀÌÁö»ó¿¡ Á¸ÀçÇÏ´Â HTMLObjectÀÎÁö¸¦ °Ë»çÇÑ´Ù.
 *
 * @param obj	Object ID
 * @return
 */
function isObject(obj)
{
	if(typeof(obj) != "object")
	{
//		window.alert("Object°¡ Á¸ÀçÇÏÁö ¾Ê½À´Ï´Ù. ObjectÀÇ Ã¶ÀÚ¸¦ È®ÀÎÇÏ¼¼¿ä.");
		return false;
	}

	return true;
}

/**
 * A-3. Input Object°¡ Array ÇüÅÂÀÎÁö °Ë»çÇÑ´Ù.
 *
 * @param obj	Object ID
 * @return
 */
function isArray(obj)
{
	if((typeof(obj) != "object") || (typeof(obj[0]) != "object"))
	{
//		window.alert("element(checkbox)°¡ Array°¡ ¾Æ´Õ´Ï´Ù.");
		return false;
	}

	return true;
}



/**
 * B-10. Input ¹®ÀÚ¿­ÀÇ ÁöÁ¤¹®ÀÚ¸¦ Á¦°ÅÇÑ´Ù.
 *
 * @param str	¹®ÀÚ¿­
 * @return
 */
function removeString(str, delStr)
{
	var oldVal = str + "";
	var newVal = "";


	var n = oldVal.length;

	for(var i=0; i<n; i++)
	{
		if(oldVal.charAt(i) == delStr)
		{
			continue;
		}
		else
		{
			newVal += oldVal.charAt(i);
		}
	}
	
	return newVal;
}