function Fcheck(form, fields) {
    var lah = new Fchecker(form);
    if (fields) lah.setCheckFields(fields);
    var wmf = lah.go();
    if (wmf == false) alert(lah.getErrorMessage());
    return wmf;
}

Fchecker = function(form) {
    this.FUNC_MAP = {
        email     : "this.func_email",
        hangul    : "this.func_hangul",
        engonly   : "this.func_engonly",
        number    : "this.func_number",
        residentno: "this.func_residentno",
        jumin     : "this.func_jumin",
        foreignerno:"this.func_foreignerno",
        bizno     : "this.func_bizno",
        phone     : "this.func_phone",
        homephone : "this.func_homephone",
        handphone : "this.func_handphone",
        userid    : "this.func_userid",
        passwd    : "this.func_passwd"
    }
    this.ERR_MSG = {
        system   : "Fchecker Error: ",
        required : "¹Ýµå½Ã ÀÔ·ÂÇÏ¿©¾ß ÇÕ´Ï´Ù.",
        requirenum:"ÀÌ Ç×¸ñµé Áß¿¡ {requirenum}°³ ÀÌ»óÀÇ Ç×¸ñÀÌ ÀÔ·ÂµÇ¾î¾ß ÇÕ´Ï´Ù.",
        notequal : "ÀÔ·ÂµÈ ³»¿ëÀÌ ÀÏÄ¡ÇÏÁö ¾Ê½À´Ï´Ù.",
        invalid  : "ÀÔ·ÂµÈ ³»¿ëÀÌ Çü½Ä¿¡ ¾î±ß³³´Ï´Ù.",
        minbyte  : "ÀÔ·ÂµÈ ³»¿ëÀÇ ±æÀÌ°¡ {minbyte}Byte ÀÌ»óÀÌ¾î¾ß ÇÕ´Ï´Ù.",
        maxbyte  : "ÀÔ·ÂµÈ ³»¿ëÀÇ ±æÀÌ°¡ {maxbyte}Byte¸¦ ÃÊ°úÇÒ ¼ö ¾ø½À´Ï´Ù.",
        mincheck : "{mincheck}°³ÀÇ Ç×¸ñÀÌ»óÀ¸·Î ¼±ÅÃÇÏ¼¼¿ä.",
        maxcheck : "{maxcheck}°³ÀÇ Ç×¸ñÀÌÇÏ·Î ¼±ÅÃÇÏ¼¼¿ä.",
        minselect: "{minselect}°³ÀÇ Ç×¸ñÀÌ»óÀ¸·Î ¼±ÅÃÇÏ¼¼¿ä.",
        maxselect: "{maxselect}°³ÀÇ Ç×¸ñÀÌÇÏ·Î ¼±ÅÃÇÏ¼¼¿ä.",
        imageonly: "ÀÌ¹ÌÁö ÆÄÀÏ¸¸ Ã·ºÎÇÒ ¼ö ÀÖ½À´Ï´Ù."
    }
    this.ERR_DO = {
        text   : "select focus",
        select : "focus",
        check  : "focus",
        radio  : "focus",
        file   : "focus",
        hidden : ""
    }
    this.ERR_SYS = '_SYSERR_';
    this.fields = form.elements;
    this.form = form;
    this.errMsg = "";
}

Fchecker.prototype.setForm = function(form) {
    this.form = form;
}

Fchecker.prototype.setFunc = function(map, func) {
    if (typeof(this.FUNC_MAP[map]) == "string") return;
    this.FUNC_MAP[map] = func;
}

Fchecker.prototype.setCheckFields = function(fields) {
    this.fields = [];
    if(typeof(fields) == 'string')
        this.fields = [this.form.elements[fields]];
    else
        for(var i=0, s=fields.length; i<s; i++)
            this.fields[this.fields.length] = this.form.elements[fields[i]];
}

Fchecker.prototype.setUnCheckFields = function(fields) {
    this.fields = [];
    var _isUnCheckEl;

    if(typeof(fields) == 'string')
        fields = [fields];
    for (var i=0, s=this.form.elements.length; i<s; i++) {
        _isUnCheckEl = false;
        for (var j=0, t=fields.length; j<t; j++) {
            if (this.form.elements[i] == this.form.elements[fields[j]]) {
                _isUnCheckEl = true;
                break;
            }
        }
        if (!_isUnCheckEl) this.fields[this.fields.length] = this.form.elements[i];
    }
}

Fchecker.prototype.setParam = function(el, name, value) {
    el.setAttribute(name, value);
}

Fchecker.prototype.delParam = function(el, name) {
    el.removeAttribute(name);
}

Fchecker.prototype.go = function() {
    for (var i=0,s=this.fields.length; i<s; i++) {
        var el = this.fields[i];
        if (!this.isValidElement(el)) continue;

        var elType = this.getType(el);
        var trim = el.getAttribute("TRIM");
        var required = el.getAttribute("REQUIRED");
        var requirenum = el.getAttribute("REQUIRENUM");
        var minbyte = parseInt(el.getAttribute("MINBYTE"),10);
        var maxbyte = parseInt(el.getAttribute("MAXBYTE"),10);
        var mincheck = parseInt(el.getAttribute("MINCHECK"),10);
        var maxcheck = parseInt(el.getAttribute("MAXCHECK"),10);
        var minselect = parseInt(el.getAttribute("MINSELECT"),10);
        var maxselect = parseInt(el.getAttribute("MAXSELECT"),10);
        var option = el.getAttribute("OPTION");
        var match = el.getAttribute("MATCH");
        var span = el.getAttribute("SPAN");
        var glue = el.getAttribute("GLUE");
        var pattern = el.getAttribute("PATTERN");
        var imageonly = el.getAttribute("IMAGEONLY");

        if (trim != null && (elType == "text" || elType == "hidden")) {
            switch (trim) {
            case "trim":
                el.value = el.value.replace(/^\s+/, "").replace(/\s+$/, "");
                break;
            case "compress":
                el.value = el.value.replace(/\s+/, "");
                break;
            case "ltrim":
                el.value = el.value.replace(/^\s+/, "");
                break;
            case "rtrim":
                el.value = el.value.replace(/\s+$/, "");
                break;
            }
        }

        var elEmpty = this.isEmpty(el, elType);

        if (required != null) {
            if (required == "required") {
                if (elEmpty) return this.raiseError(el, "required");
            } else {
                requirenum = parseInt(requirenum, 10);
                var _num = 0;
                var _name = [];
                if (requirenum > 0) {
                    for (var j=0; j<this.form.elements.length; j++) {
                        var _el = this.form.elements[j];
                        if (required == _el.getAttribute("REQUIRED")) {
                            if(!this.isEmpty(_el, this.getType(_el))) _num++;
                            _name[_name.length] = this.getName(_el);
                        }
                    }
                    if(_num < requirenum)
                        return this.raiseError(el, "requirenum", _name.join(", "));
                }
            }
        }
        if ((minbyte > 0 || maxbyte > 0) && (elType == "text" || elType == "hidden")) {
            var _tmp = el.value;
            var _len = el.value.length;
            for (j=0; j<_tmp.length; j++) {
                if (_tmp.charCodeAt(j) > 128) _len++;
            }
            if (minbyte > 0 && _len < minbyte) return this.raiseError(el, "minbyte");
            if (maxbyte > 0 && _len > maxbyte) return this.raiseError(el, "maxbyte");
        }
        if (match != null && elType != "file") {
            if (typeof this.form.elements[match] == "undefined")
                return this.raiseError(this.ERR_SYS, "Element '"+ match +"' is not found.");
            else if (el.value != this.form.elements[match].value)
                return this.raiseError(el, "notequal");
        }
        if (option != null && !elEmpty && elType != "file") {
            var _options = option.split(" ");
            for (var j in _options) {
                var _func = eval(this.FUNC_MAP[_options[j]]);
                if (span != null) {
                    var _value = [];
                    for (var k=0; k<parseInt(span,10); k++) {
                        try {
                            _value[k] = this.fields[i+k].value;
                        } catch (e) {
                            return this.raiseError(this.ERR_SYS,  (i+k) +"th Element is not found.");
                        }
                    }
                    try {
                        var _result = _func(el, _value.join(glue == null ? "" : glue));
                    } catch (e) {
                        return this.raiseError(this.ERR_SYS,  "function map '"+ _options[j] +"' is not exist.");
                    }
                    if (_result !== true) return this.raiseError(el, _result);
                } else {
                    try {
                        var _result = _func(el);
                    } catch (e) {
                        return this.raiseError(this.ERR_SYS,  "function map '"+ _options[j] +"' is not exist.");
                    }
                    if (_result !== true) return this.raiseError(el, _result);
                }
            }
        }
        if (pattern != null && !elEmpty && elType != "file") {
            try {
                pattern = new RegExp(pattern);
            } catch (e) {
                return this.raiseError(this.ERR_SYS, "Invalid Regular Expression '"+ pattern +"'");
            }
            if (!pattern.test(el.value)) return this.raiseError(el, "invalid");
        }
        if ((mincheck > 0 || maxcheck > 0) && elType == "check") {
            var _checks = this.form.elements[el.name];
            var _num = 0;
            if (typeof _checks.length != "undefined") {
                for (var j=0; j<_checks.length; j++) {
                    if (_checks[j].checked) _num++;
                }
            } else {
                if (_checks.checked) _num++;
            }
            if (mincheck > 0 && _num < mincheck) return this.raiseError(el, "mincheck");
            if (maxcheck > 0 && _num > maxcheck) return this.raiseError(el, "maxcheck");
        }
        if ((minselect > 0 || maxselect > 0) && elType == "multiselect") {
            var _num = 0;
            for (var j=0; j<el.options.length; j++) {
                if (el.options[j].selected) _num++;
            }
            if (minselect > 0 && _num < minselect) return this.raiseError(el, "minselect");
            if (maxselect > 0 && _num > maxselect) return this.raiseError(el, "maxselect");
        }
        if (imageonly != null && elType == "file") {
            var fn = el.value;
            if (fn != "") {
                var dotIndex = fn.lastIndexOf(".");
                var ext = fn.substring(dotIndex+1).toLowerCase();
                if(ext != "jpg" && ext != "jpeg" && ext != "gif" && ext != "png")
                    return this.raiseError(el, "imageonly");
            }
        }
    }
    return true;
}

Fchecker.prototype.isValidElement = function(el) {
    return el.name && el.tagName.match(/^input|select|textarea$/i) && !el.disabled;
}

Fchecker.prototype.isEmpty = function(el, type) {
    switch (type) {
    case "file": case "text": case "hidden":
        if (el.value == null || el.value == "") return true;
        break;
    case "select": case "multiselect":
        if (el.selectedIndex == -1 || el[el.selectedIndex].value == null ||
                el[el.selectedIndex].value == "")
            return true;
        break;
    case "check": case "radio":
        var elCheck = this.form.elements[el.name];
        var elChecked = false;
        if (typeof elCheck.length != "undefined") {
            for (var j=0; j<elCheck.length; j++) {
                if (elCheck[j].checked == true) elChecked = true;
            }
        } else {
            if (elCheck.checked == true) elChecked = true;
        }
        if (elChecked == false) return true;
        break;
    }
    return false;
}

Fchecker.prototype.getType = function(el) {
    switch (el.tagName.toLowerCase()) {
    case "select":
        return el.multiple == true ? "multiselect" : "select";
    case "textarea": return "text";
    case "input":
        switch (el.type.toLowerCase()) {
        case "radio": return "radio";
        case "checkbox": return "check";
        case "file": return "file";
        case "text": case "password": return "text";
        case "hidden": return "hidden";
        }
        break;
    }
}

Fchecker.prototype.raiseError = function(el, type, elName) {
    if (el == this.ERR_SYS) {
        this.errMsg = this.ERR_MSG["system"] + type;
        return false;
    }
    var pattern = /\{([a-zA-Z0-9_]+)\}/i;
    var msg = this.ERR_MSG[type] ? this.ERR_MSG[type] : type;
    var elType = this.getType(el);
    var elName = elName ? elName : this.getName(el);
    var errDo = el.getAttribute("ERRDO") ? el.getAttribute("ERRDO") : this.ERR_DO[elType];
    var _errDos = errDo ? errDo.split(" ") : [];

    if (el.getAttribute("ERRMSG") != null) msg = el.getAttribute("ERRMSG");
    if (pattern.test(msg) == true) {
        while (pattern.exec(msg)) msg = msg.replace(pattern, el.getAttribute(RegExp.$1));
    }
    for (var i in _errDos) {
        switch (_errDos[i]) {
        case "delete": el.value = ""; break;
        case "select": el.select(); break;
        case "focus":  el.focus(); break;
        }
    }
    this.errMsg = "\'"+ elName +"\'\n\n   - "+ msg +"\n";
    return false;
}

Fchecker.prototype.getErrorMessage = function() {
    return this.errMsg;
}

Fchecker.prototype.getName = function(el) {
    return el.getAttribute("HNAME") == null || el.getAttribute("HNAME") == ""
        ? el.name : el.getAttribute("HNAME");
}
/**
* validate functions
*/
Fchecker.prototype.func_email = function(el,value) {
    var value = value ? value : el.value;
    var pattern = /^[_a-zA-Z0-9-\.]+@[\.a-zA-Z0-9-]+\.[a-zA-Z]+$/;
    return pattern.test(value) ? true : "invalid";
}

Fchecker.prototype.func_hangul = function(el) {
    var pattern = /[°¡-Èþ]/;
    return pattern.test(el.value) ? true : "¹Ýµå½Ã ÇÑ±ÛÀ» Æ÷ÇÔÇØ¾ß ÇÕ´Ï´Ù";
}

Fchecker.prototype.func_engonly = function(el) {
    var pattern = /^[a-zA-Z]+$/;
    return pattern.test(el.value) ? true : "invalid";
}

Fchecker.prototype.func_number = function(el) {
    var pattern = /^[0-9]+$/;
    return pattern.test(el.value) ? true : "¹Ýµå½Ã ¼ýÀÚ·Î¸¸ ÀÔ·ÂÇØ¾ß ÇÕ´Ï´Ù";
}

Fchecker.prototype.func_residentno = function(el,value) {
    var pattern = /^(\d{6})-?(\d{5}(\d{1})\d{1})$/;
    var num = value ? value : el.value;
    if (!pattern.test(num)) return "invalid";
    num = RegExp.$1 + RegExp.$2;
    if (RegExp.$3 == 7 || RegExp.$3 == 8 || RegExp.$4 == 9)
        if ((num[7]*10 + num[8]) %2) return "invalid";

    var sum = 0;
    var last = num.charCodeAt(12) - 0x30;
    var bases = "234567892345";
    for (var i=0; i<12; i++) {
        if (isNaN(num.substring(i,i+1))) return "invalid";
        sum += (num.charCodeAt(i) - 0x30) * (bases.charCodeAt(i) - 0x30);
    }
    var mod = sum % 11;
    if(RegExp.$3 == 7 || RegExp.$3 == 8 || RegExp.$4 == 9)
        return (11 - mod + 2) % 10 == last ? true : "invalid";
    else
        return (11 - mod) % 10 == last ? true : "invalid";
}

Fchecker.prototype.func_jumin = function(el,value) {
    var pattern = /^([0-9]{6})-?([0-9]{7})$/;
    var num = value ? value : el.value;
    if (!pattern.test(num)) return "invalid";
    num = RegExp.$1 + RegExp.$2;
    var sum = 0;
    var last = num.charCodeAt(12) - 0x30;
    var bases = "234567892345";
    for (var i=0; i<12; i++) {
        if (isNaN(num.substring(i,i+1))) return "invalid";
        sum += (num.charCodeAt(i) - 0x30) * (bases.charCodeAt(i) - 0x30);
    }
    var mod = sum % 11;
    return (11 - mod) % 10 == last ? true : "invalid";
}
Fchecker.prototype.func_foreignerno = function(el,value) {
    var pattern = /^(\d{6})-?(\d{5}[7-9]\d{1})$/;
    var num = value ? value : el.value;
    if (!pattern.test(num)) return "invalid";
    num = RegExp.$1 + RegExp.$2;
    if ((num[7]*10 + num[8]) %2) return "invalid";

    var sum = 0;
    var last = num.charCodeAt(12) - 0x30;
    var bases = "234567892345";
    for (var i=0; i<12; i++) {
        if (isNaN(num.substring(i,i+1))) return "invalid";
        sum += (num.charCodeAt(i) - 0x30) * (bases.charCodeAt(i) - 0x30);
    }
    var mod = sum % 11;
    return (11 - mod + 2) % 10 == last ? true : "invalid";
}

Fchecker.prototype.func_bizno = function(el,value) {
    var pattern = /([0-9]{3})-?([0-9]{2})-?([0-9]{5})/;
    var num = value ? value : el.value;
    if (!pattern.test(num)) return "invalid";
    num = RegExp.$1 + RegExp.$2 + RegExp.$3;
    var cVal = 0;
    for (var i=0; i<8; i++) {
        var cKeyNum = parseInt(((_tmp = i % 3) == 0) ? 1 : ( _tmp  == 1 ) ? 3 : 7);
        cVal += (parseFloat(num.substring(i,i+1)) * cKeyNum) % 10;
    }
    var li_temp = parseFloat(num.substring(i,i+1)) * 5 + "0";
    cVal += parseFloat(li_temp.substring(0,1)) + parseFloat(li_temp.substring(1,2));
    return parseInt(num.substring(9,10)) == 10-(cVal % 10)%10 ? true : "invalid";
}

Fchecker.prototype.func_phone = function(el,value) {
    var pattern = /^(0[2-8][0-5]?|01[01346-9])-?([1-9]{1}[0-9]{2,3})-?([0-9]{4})$/;
    var pattern15xx = /^(1544|1566|1577|1588|1644|1688)-?([0-9]{4})$/;
    var num = value ? value : el.value;
    return pattern.exec(num) || pattern15xx.exec(num) ? true : "invalid";
}

Fchecker.prototype.func_homephone = function(el,value) {
    var pattern = /^(0[2-8][0-5]?)-?([1-9]{1}[0-9]{2,3})-?([0-9]{4})$/;
    var pattern15xx = /^(1544|1566|1577|1588|1644|1688)-?([0-9]{4})$/;
    var num = value ? value : el.value;
    return pattern.exec(num) || pattern15xx.exec(num) ? true : "invalid";
}

Fchecker.prototype.func_handphone = function(el,value) {
    var pattern = /^(01[01346-9])-?([1-9]{1}[0-9]{2,3})-?([0-9]{4})$/;
    var num = value ? value : el.value;
    return pattern.exec(num) ? true : "invalid";
}

Fchecker.prototype.func_userid = function(el,value) {
    var pattern = /^[a-zA-Z0-9]{4,20}$/;
    return pattern.test(el.value) ? true : "4ÀÚÀÌ»ó 20ÀÚ ÀÌÇÏ·Î ÀÔ·ÂÇÏ½Ê½Ã¿À.\n   - ¿µ¹®, ¼ýÀÚ¸¸ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù";
}

Fchecker.prototype.func_passwd = function(el,value) {
    var pattern = /^[a-zA-Z0-9]{4,20}$/;
    return pattern.test(el.value) ? true : "4ÀÚÀÌ»ó 20ÀÚ ÀÌÇÏ·Î ÀÔ·ÂÇÏ½Ê½Ã¿À.\n   - ¿µ¹®, ¼ýÀÚ¸¸ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù";
}

/**
* direct_javascript function
*/

// È­¸éÁß¾Ó¿¡¼­ Ã¢¿­±â
function nwindow(page,name,w,h,scroll,resize){
var win= null;
  var winl = (screen.width-w)/2;
  var wint = (screen.height-h)/3;
  var settings  ='height='+h+',';
      settings +='width='+w+',';
      settings +='top='+wint+',';
      settings +='left='+winl+',';
      settings +='scrollbars='+scroll+',';
      settings +='resizable='+resize+',';
      settings +='status=no';
  win=window.open(page,name,settings);
  if(parseInt(navigator.appVersion) >= 4){win.window.focus();}
}
//¼ö·® ´õÇÏ±â
function num_plus(num){
	gnum = parseInt(num.value);
	num.value = gnum + 1;
	return;
}
//¼ö·® »©±â
function num_minus(num){
	gnum = parseInt(num.value);
	if( gnum > 0 ){
		num.value = gnum - 1;
	}
	return;
}
/**
 *  text ±âº»°ª
 * <input type="text" name="txtname"  value="default_value" onFocus="txt_default_value('focus', this, 'default_value');" onBlur="txt_default_value('blur', this, 'default_value');">
 */
function txt_default_value(mode, txtObj, default_val)
{
    if (mode == "focus" && txtObj.value == default_val) {
        txtObj.value = '';
    } else if (mode == "blur" && !txtObj.value) {
        txtObj.value = default_val;
    }
}
function only_key() {
 var ek = event.keyCode;
  //¼ýÀÚ
   if((ek >= 48 && ek <= 57) || (ek >= 96 && ek <= 105) || (ek >= 8 && ek <= 9) || (ek >= 45 && ek <= 46) || (ek >= 16 && ek <= 18) || (ek == 13) || (ek == 37) ||(ek == 39) || (ek == 32))
   return 1;
 //¿µ¾î
 if ((ek >= 65 && ek <= 90))
    return 2;
 //Æ¯¼ö±âÈ£
 if ((ek>=33 && ek<=47) || (ek>=58 && ek<=64) || (ek>=91 && ek<=96) || (ek>=123 && ek<=126))
    return 4;
 //ÇÑ±Û
 if ((ek >= 12592) || (ek <= 12687))
    return 3;
 else
    return 0;
}
/**
 *  ¼ýÀÚ¸¸ ÀÔ·Â¹Þ´Â´Ù.
 *
 *  »ç¿ë¹ý : onKeyDown='onlyNumber()'
 *  ¼³ ¸í :  ÇÑ±ÛÀÔ·Â¾ÈµÊ. ¿£ÅÍ¿Í ¹é½ºÆäÀÌ½º,ÅÇÅ°,½ºÆäÀÌ½ºÅ°
 *           delete,insert,home/end/¹æÇâÅ°°ª,±×·¹ÀÌÅ°¼ýÀÚ°ª,Å°º¸µåÀ§¼ýÀÚ°ª¸¸ ÀÔ·Â°¡´ÉÇÏ´Ù.
 */

//ÅØ½ºÆ® ¹Ú½º¿¡ ¼ýÀÚ¸¸ ÀÔ·ÂÇÒ¼ö ÀÖµµ·Ï
/*
function onlyNumber() {
 if(only_key() != 1) {
  event.returnValue = false;
 }
}
*/
function onlyNumber() {
  if((event.keyCode<48) || (event.keyCode>57)){
    event.returnValue=false;
  }
}
function onlyEngnum() {
 if(only_key() != 2) {
  event.returnValue = false;
 }
}

/**
 *  ÇÑ±Û¸¸ ÀÔ·Â¹Þ´Â´Ù.
 *
 *  »ç¿ë¹ý : onKeyDown='onlyHangle()'
 */
function onlyHangle()
{
    var ek = event.keyCode
    if( ek != 13 && ek != 9 && ek != 8 && ek != 32 && ek != 46 && ek != 45 && ((ek < 48) ||(ek > 57)) )
     event.returnValue=false;
}

/**
 *  ¼ýÀÚ¿¡¼­ 3ÀÚ¸®¸¶´Ù ÄÄ¸¶ ºÙÀÌ±â
 *
 *  »ç¿ë¹ý : onKeyUp="numberformat(this)"
 *  ¼³ ¸í :  'onlyNumber()' °ú °°ÀÌ »ç¿ëÇÑ´Ù.
 */
function numberformat(obj)
{
    var num         = "";
    var only_num     = String(obj.value);
    only_num        = only_num.replace(/,|\s+/g, "");

    var len         = only_num.length;
    var pos         = len % 3;

    if (len < 3) {
        obj.value = only_num;
    } else {
        if (pos > 0) {
            num = only_num.substring(0,pos) + ",";
            len -= pos;
        }
        while (len > 3) {
            num += only_num.substring(pos, pos+3) + ",";
            len -= 3;
            pos += 3;
        }
        num += only_num.substring(pos, pos+3);
        obj.value = num;
    }
}

// ÀÚ¸®¼ö³Ñ±â¸é ´ÙÀ½
function move_field(argform,nextfield,chars,currfield) {
  var f = eval('document.'+ argform);
  var x= eval('document.' + argform + '.' +  currfield + '.' + 'value.length;');
  if (x == chars) {
    eval('document.' + argform + '.' + nextfield + '.focus();');
  }
}

/**
 *  ±Ý¾×ÀÔ·Â(3ÀÚ¸®¸¶´Ù ÄÄ¸¶ ºÙÀÌ±â), ÀÔ·ÂµÈ ±Ý¾× ÇÑ±Û·Î Ç¥½Ã
 *
 *  »ç¿ë¹ý : onKeyUp="numberformat(this)"
 *  <input type="text" name="A_EMONEY" size=18 maxLength=15 style="text-align:right"
 *	onkeypress="NUM_HAN(this.value,3,document.form.EMONEY_HAN)"
 *  onkeyup="this.value=numchk(this.value);
 *  NUM_HAN(this.value,3,document.form.EMONEY_HAN)"> ¿ø
 *  <input type="text" name="EMONEY_HAN" readonly style="border:0;" size="50">
 */


//±Ý¾×¿¡ , Âï±â
function numchk(num){
    num=new String(num);
    num=num.replace(/,/gi,"");
    return numchk1(num);
}

function numchk1(num){
    var sign="";
    if(isNaN(num)) {
        alert("¼ýÀÚ¸¸ ÀÔ·ÂÇÒ ¼ö ÀÖ½À´Ï´Ù.");
        return 0;
    }
    if(num==0) {
        return num;
    }

    if(num<0){
        num=num*(-1);
        sign="-";
    }
    else{
        num=num*1;
    }
    num = new String(num)
    var temp="";
    var pos=3;
    num_len=num.length;
    while (num_len>0){
        num_len=num_len-pos;
        if(num_len<0) {
            pos=num_len+pos;
            num_len=0;
        }
        temp=","+num.substr(num_len,pos)+temp;
    }
    return sign+temp.substr(1);
}

// ±Ý¾× ¼ýÀÚ¸¦ ÇÑ±Û·Î
function num_han(num)
{
    if ( num == "1" )       return "ÀÏ";
    else if ( num == "2" )  return "ÀÌ";
    else if ( num == "3" )  return "»ï";
    else if ( num == "4" )  return "»ç";
    else if ( num == "5" )  return "¿À";
    else if ( num == "6" )  return "À°";
    else if ( num == "7" )  return "Ä¥";
    else if ( num == "8" )  return "ÆÈ";
    else if ( num == "9" )  return "±¸";
    else if ( num == "½Ê" ) return "½Ê";
    else if ( num == "¹é" ) return "¹é";
    else if ( num == "Ãµ" ) return "Ãµ";
    else if ( num == "¸¸" ) return "¸¸ ";
    else if ( num == "¾ï" ) return "¾ï ";
    else if ( num == "Á¶" ) return "Á¶ ";
    else if ( num == "0" )  return "";
}

function NUM_HAN(num,mode,return_input)
{
    if ( num == "" || num == "0" ) {
        if ( mode == "3" ) {
            return_input.value = "";
        }
        return;
    }

    num=new String(num);
    num=num.replace(/,/gi,"");

    var len  = num.length;
    var temp1 = "";
    var temp2 = "";

    if ( len/4 > 3 && len/4 <= 4 ) {
        if ( len%4 == 0 ) {
            temp1 = ciphers_han(num.substring(0,4)) + "Á¶"
			+ ciphers_han(num.substring(4,8)) + "¾ï"
			+ ciphers_han(num.substring(8,12)) + "¸¸"
			+ ciphers_han(num.substring(12,16));
        }
        else {
            temp1 = ciphers_han(num.substring(0,len%4)) + "Á¶"
			+ ciphers_han(num.substring(len%4,len%4+4)) + "¾ï"
			+ ciphers_han(num.substring(len%4+4,len%4+8)) + "¸¸"
			+ ciphers_han(num.substring(len%4+8,len%4+12));
        }
    }
    else if ( len/4 > 2 && len/4 <= 3 ) {
        if ( len%4 == 0 ) {
            temp1 = ciphers_han(num.substring(0,4)) + "¾ï"
			+ ciphers_han(num.substring(4,8)) + "¸¸"
			+ ciphers_han(num.substring(8,12));
        }
        else {
            temp1 = ciphers_han(num.substring(0,len%4)) + "¾ï"
			+ ciphers_han(num.substring(len%4,len%4+4)) + "¸¸"
			+ ciphers_han(num.substring(len%4+4,len%4+8));
        }
    }
    else if ( len/4 > 1 && len/4 <= 2 ) {
        if ( len%4 == 0 ) {
            temp1 = ciphers_han(num.substring(0,4)) + "¸¸"
			+ ciphers_han(num.substring(4,len));
        }
        else {
            temp1 = ciphers_han(num.substring(0,len%4)) + "¸¸"
			+ ciphers_han(num.substring(len%4,len));
        }
    }
    else if ( len/4 <= 1 ) {
        temp1 = ciphers_han(num.substring(0,len));
    }

    for (var i=0; i<temp1.length; i++) {
        temp2 = temp2 + num_han(temp1.substring(i, i+1));
    }

    temp3=new String(temp2);
    temp3=temp3.replace(/¾ï ¸¸/gi,"¾ï ");
    temp3=temp3.replace(/Á¶ ¾ï/gi,"Á¶ ");

    if ( mode == 1 ) {
        alert(temp3 + " ¿ø");
    } else if ( mode == 2 ) {
        return temp3;
    } else if ( mode == 3 ) {
        return_input.value = "( " + temp3 + " ¿ø )";
    }
}

function ciphers_han(num)
{
    var len  = num.length;
    var temp = "";

    if ( len == 1 ) {
        temp = num;
    }
    else if ( len == 2 ) {
        temp = num.substring(0,1) + "½Ê"
		+ num.substring(1,2);
    }
    else if ( len == 3 ) {
        temp = num.substring(0,1) + "¹é"
		+ num.substring(1,2) + "½Ê"
		+ num.substring(2,3);
    }
    else if ( len == 4 ) {
        temp = num.substring(0,1) + "Ãµ"
		+ num.substring(1,2) + "¹é"
		+ num.substring(2,3) + "½Ê"
		+ num.substring(3,4);
    }

    num=new String(temp);
    num=num.replace(/0½Ê/gi,"");
    num=num.replace(/0¹é/gi,"");
    num=num.replace(/0Ãµ/gi,"");
    return num;
}

function moncom(mon) {
    var factor = mon.length % 3;
    var su     = (mon.length - factor) / 3;
    var com    =  mon.substring(0,factor);

    for(var i=0; i < su ; i++) {
        if((factor == 0) && (i == 0)) {
            com += mon.substring(factor+(3*i), factor+3+(3*i));
        }
        else {
            com += ","  ;
            com += mon.substring(factor+(3*i), factor+3+(3*i));
        }
    }
    document.write(com);
}

//ÀÎµ¦½º onmoseover(ÀÌ¹ÌÁöº¯°æ)
function premier(n) {
	for(var i = 1; i <= 3; i++) {
		obj = document.getElementById('premier'+i);
		img = document.getElementById('premier_button'+i);
		if ( n == i ) {
			obj.style.display = "block";
			img.height = 22;
			img.src = "/img/btn_0"+i+".gif";
		} else {
			obj.style.display = "none";
			img.height = 22;
			img.src = "/img/btn_r_0"+i+".gif";
		}
	}
}

function CBM(){
  nwindow('/common/cbm.php?form=write&tcbm=total_cbm&tgoods=total_goods&classify=1', 'cbm', '650' , '500' ,'yes','yes');
}
