if (typeof(VALID_JS) == 'undefined') // ÇÑ¹ø¸¸ ½ÇÇà
{
    var isValidColor = "";
    var isUnValidColor = "#ffcccc";

    var VALID_JS = true;

    // ÀÌ¸ÞÀÏ Ã¼Å©
    function is_email(email) {
        var reg = new RegExp("(^[_0-9a-zA-Z-]+(\.[_0-9a-zA-Z-]+)*@[0-9a-zA-Z-]+(\.[0-9a-zA-Z-]+)*$)");
        if(!reg.test(email)) {
            return false;
        }
        return true;
    }

    // URL Ã¼Å©
    function is_url(url) {
        var reg = new RegExp("^http://","i");
        if(!reg.test(url)) {
            return false;
        }
        return true;
    }

    // ¿µ¹®ÀÚ¸¸
    function is_alpha(str) {
        var reg = new RegExp("(^[a-zA-Z]+$)");
        if(!reg.test(str)) {
            return false;
        }
        return true;
    }

    // È¸¿ø°¡ÀÔ ¾ÆÀÌµð
    function is_member_id(str) {
        var reg = new RegExp("(^[a-zA-Z]{1}[a-zA-Z0-9_]+$)");
        if(!reg.test(str)) {
            return false;
        }
        return true;
    }

    // ¿µ¹®ÀÚ, ¼ýÀÚ¸¸
    function is_alpha_number(str) {
        var reg = new RegExp("(^[a-zA-Z0-9]+$)");
        if(!reg.test(str)) {
            return false;
        }
        return true;
    }

    // ÇÑ±Û¸¸
    function is_korean(str) {
        var reg = new RegExp("(^[°¡-ÆR]*$)");
        if(!reg.test(str)) {
            return false;
        }
        return true;
    }

    // ÇÑ±Û, ¼ýÀÚ¸¸
    function is_korean_number(str) {
        var reg = new RegExp("(^[°¡-ÆR0-9]*$)");
        if(!reg.test(str)) {
            return false;
        }
        return true;
    }

    // ÇÑ±Û, ¼ýÀÚ¸¸
    function is_korean_alpha_number(str) {
        var reg = new RegExp("(^[a-zA-Z°¡-ÆR0-9]*$)");
        if(!reg.test(str)) {
            return false;
        }
        return true;
    }

    // ÀüÈ­¹øÈ£ Ã¼Å©
    function is_phone() {
        var reg = new RegExp("(^[0-9]{2,4}-[0-9]{3,4}-[0-9]{4}$)");

        if (!(arguments.length == 1 || arguments.length == 3))
            return false;

        if (arguments.length == 3)
            var phone = arguments[0].value + "-" + arguments[1].value + "-" + arguments[2].value;
        else
            var phone = arguments[0];

        if(!reg.test(phone)) {
            return false;
        }
        return true;
    }

    // ¼ýÀÚ Ã¼Å©
    function is_number(num) {
        var reg = new RegExp("(^[0-9]*$)");
        if(!reg.test(num)) {
            return false;
        }
        return true;
    }

    // ÁÖ¹Î¹øÈ£ Ã¼Å©
    function is_ssn() {
        if (!(arguments.length == 1 || arguments.length == 2))
            return false;

        if (arguments.length == 2) {
            if(isNaN(arguments[0].value) || arguments[0].value.length != 6) {
                return false;
            }
            if(isNaN(arguments[1].value) || arguments[1].value.length != 7) {
                return false;
            }
            var pin = arguments[0].value + arguments[1].value;
        } else {
            if(isNaN(arguments[0]) || arguments[0].length != 13)
                return false;

            var pin = arguments[0];
        }

        var sum_1 = 0;
        var sum_2 = 0;
        var at=0;

        sum_1 = (pin.charAt(0)*2)+
                (pin.charAt(1)*3)+
                (pin.charAt(2)*4)+
                (pin.charAt(3)*5)+
                (pin.charAt(4)*6)+
                (pin.charAt(5)*7)+
                (pin.charAt(6)*8)+
                (pin.charAt(7)*9)+
                (pin.charAt(8)*2)+
                (pin.charAt(9)*3)+
                (pin.charAt(10)*4)+
                (pin.charAt(11)*5);
        sum_2=sum_1 % 11;

        if (sum_2 == 0) 
            at = 10;
        else {
            if (sum_2 == 1) 
                at = 11;
            else 
                at = sum_2;
        }
        att = 11 - at;

        if (pin.charAt(12) != att || 
            pin.substr(2,2) < '01' ||
            pin.substr(2,2) > '12' ||
            pin.substr(4,2) < '01' ||
            pin.substr(4,2) > '31' ||
            pin.charAt(6) > 4) 
        {
            return false;
        }

        return true;
    }

    // µÎ °ª ºñ±³
    function check_diff_value(obj1, obj2, str) {
        var msg = str + "ÀÌ(°¡) ÀÏÄ¡ÇÏÁö ¾Ê½À´Ï´Ù.";
        if (obj1.value != obj2.value) {
            fill_unvalid_color(obj2, msg);
            return false;
        }
        return true;
    }

    // Æû °ª Ã¼Å©
    function check_input_tag() {
        var obj = arguments[0];
        var nm = arguments[1];
        var opt = arguments[2];
        var min = arguments[3];
        var max = arguments[4];
        try {
            if (obj.type == "text" || obj.type =="password" || obj.type =="textarea" || obj.type =="file" || obj.type == "hidden") {
                if (obj.value =="") {
                    var msg = nm + "Àº(´Â) ÇÊ¼ö ÀÔ·ÂÀÔ´Ï´Ù.";
                    fill_unvalid_color(obj, msg);
                    return false;
                }

                // ¿É¼Ç
                switch (opt) {
                    case 'id' :
                        msg = nm + "´Â(Àº) Ã¹ÀÚ´Â ¿µ¹®ÀÚ, ¿µ¹®ÀÚ, ¼ýÀÚ ¹× Æ¯¼ö±âÈ£(_)·Î¸¸ ÀÛ¼ºµÇ¾î¾ß ÇÕ´Ï´Ù.";
                        if (!is_member_id(obj.value)) {
                            fill_unvalid_color(obj, msg);
                            return false;
                        }
                        break;
                    case 'email' :
                        msg = "À¯È¿ÇÑ ÀÌ¸ÞÀÏ ÁÖ¼Ò¸¦ ÀÔ·ÂÇØ ÁÖ¼¼¿ä.";
                        if (!is_email(obj.value)) {
                            fill_unvalid_color(obj, msg);
                            return false;
                        }
                        break;
                    case 'url' :
                        msg = "À¯È¿ÇÑ URLÀ» ÀÔ·ÂÇØ ÁÖ¼¼¿ä.";
                        if (!is_url(obj.value)) {
                            fill_unvalid_color(obj, msg);
                            return false;
                        }
                        break;
                    case 'phone' :
                        msg = nm + "Çü½ÄÀÌ ¿Ã¹Ù¸£Áö ¾Ê½À´Ï´Ù.";
                        if (!is_phone(obj.value)) {
                            fill_unvalid_color(obj, msg);
                            return false;
                        }
                        break;
                    case 'number' :
                        msg = nm + "Àº(´Â) ¼ýÀÚ·Î¸¸ ÀÛ¼ºµÇ¾î¾ß ÇÕ´Ï´Ù.";
                        if (!is_number(obj.value)) {
                            fill_unvalid_color(obj, msg);
                            return false;
                        }
                        break;
                    case 'alpha' :
                        msg = nm + "Àº(´Â) ¿µ¹®ÀÚ·Î¸¸ ÀÛ¼ºµÇ¾î¾ß ÇÕ´Ï´Ù.";
                        if (!is_alpha(obj.value)) {
                            fill_unvalid_color(obj, msg);
                            return false;
                        }
                        break;
                    case 'alphanum' :
                        msg = nm + "´Â(Àº) ¿µ¹®ÀÚ,¼ýÀÚ·Î¸¸ ÀÛ¼ºµÇ¾î¾ß ÇÕ´Ï´Ù.";
                        if (!is_alpha_number(obj.value)) {
                            fill_unvalid_color(obj, msg);
                            return false;
                        }
                        break;
                    case 'korean' :
                        msg = nm + "Àº(´Â) ÇÑ±Û·Î¸¸ ÀÛ¼ºµÇ¾î¾ß ÇÕ´Ï´Ù.";
                        if (!is_korean(obj.value)) {
                            fill_unvalid_color(obj, msg);
                            return false;
                        }
                        break;
                    case 'koreannum' :
                        msg = nm + "Àº(´Â) ÇÑ±Û, ¼ýÀÚ·Î¸¸ ÀÛ¼ºµÇ¾î¾ß ÇÕ´Ï´Ù.";
                        if (!is_korean_number(obj.value)) {
                            fill_unvalid_color(obj, msg);
                            return false;
                        }
                        break;
                    case 'koreanalphanum' :
                        msg = nm + "Àº(´Â) ÇÑ±Û, ¿µ¹®, ¼ýÀÚ·Î¸¸ ÀÛ¼ºµÇ¾î¾ß ÇÕ´Ï´Ù.";
                        if (!is_korean_alpha_number(obj.value)) {
                            fill_unvalid_color(obj, msg);
                            return false;
                        }
                        break;
                    case 'jumin' :
                        msg = "¿Ã¹Ù¸¥ ÁÖ¹Îµî·Ï¹øÈ£¸¦ ÀÔ·ÂÇØ ÁÖ¼¼¿ä.";
                        if (!is_ssn(obj.value)) {
                            fill_unvalid_color(obj, msg);
                            return false;
                        }
                        break;
                    default :
                        break;
                }

                // ±æÀÌ
                if (min > 0 && max > min) {
                    if (obj.value.length < min || obj.value.length > max) {
                        msg = nm + "Àº(´Â) " + min + "ÀÚ ÀÌ»ó " + max + "ÀÚ ÀÌÇÏ ÀÔ´Ï´Ù.";
                        fill_unvalid_color(obj, msg);
                        return false;
                    }
                } else if (min > 0) {
                    if (obj.value.length < min) {
                        msg = nm + "Àº(´Â)" + min + "ÀÚ ÀÌ»óÀÔ´Ï´Ù.";
                        fill_unvalid_color(obj, msg);
                        return false;
                    }
                }

            } else throw "Object°¡ ÇÊ¿äÇÕ´Ï´Ù. [" + obj.name + "]";
        } catch(e) {
            alert("Error :: " + e);
            return false;
        }
        return true;
    }

    // ¼¿·ºÆ®¹Ú½º ¼±ÅÃ
    function check_select_tag() {
        var obj = arguments[0];
        var nm = arguments[1];
        try {
            if (obj.type == "select-one" || obj.type == "select-multi") {
                if (obj.selectedIndex==0 || obj[obj.selectedIndex].value=="") {
                    var msg = nm + "Àº(´Â) ÇÊ¼ö ¼±ÅÃÀÔ´Ï´Ù.";
                    fill_unvalid_color(obj, msg);
                    return false;
                }
            } else throw "Object°¡ ÇÊ¿äÇÕ´Ï´Ù. [" + obj + "]";
        } catch(e) {
            alert("Error :: " + e);
            return false;
        }
        return true;
    }

    // ¶óµð¿À ¹öÆ°
    function check_radio_tag(obj, nm) {
        var len = obj.length;
        var chk = 0;

        for (i = 0; i < len; i++) {
            if (obj[i].checked == true)
                chk++;
        }

        if (chk == 0) {
            var msg = nm + "À»(¸¦) ¼±ÅÃÇØÁÖ¼¼¿ä.";
            fill_unvalid_color(obj[0], msg, false);
            return false;
        } else
            return true;
    }

    // ¿¡·¯¸Þ¼¼Áö Ãâ·Â ¹× Æ÷Ä¿½º ÀÌµ¿
    function fill_unvalid_color() {
        var obj = arguments[0];
        var msg = arguments[1];
        var flag = arguments[2];

        alert(msg);
        //if (flag) obj.style.backgroundColor = isUnValidColor;
        obj.style.backgroundColor = isUnValidColor;
        obj.focus();
    }

    // ÇÊ¼ö ÀÔ·Â¿¡ ¹è°æÀÌ¹ÌÁö¸¦ ÁØ´Ù.
    function fill_required_init() {
        for(var i = 0; i < document.forms.length; i++) {
            for(var j = 0; j < document.forms[i].elements.length; j++) {
                // ÇÊ¼ö ÀÔ·ÂÀÏ °æ¿ì´Â * ¹è°æÀÌ¹ÌÁö¸¦ ÁØ´Ù.
                if (document.forms[i].elements[j].getAttribute("required") != null) {
                    document.forms[i].elements[j].style.backgroundImage = "url(/js/img/valid.gif)";
                    document.forms[i].elements[j].style.backgroundPosition = "top right";
                    document.forms[i].elements[j].style.backgroundRepeat = "no-repeat";
                }
            }
        }
    }
}