if (REQUIRE_ONCE == null)
{
    // ÇÑ¹ø¸¸ ½ÇÇàµÇ°Ô
    var REQUIRE_ONCE = true;

    /*
    ** ÀúÀÛ±ÇÀÚ : http://sir.co.kr
    ** e-mail : kagla@sir.co.kr
    ** wrest.js ÀÇ ¼Ò½º´Â ÀúÀÛ±ÇÀÚ(http://sir.co.kr)ÀÇ µ¿ÀÇ¸¦ ¾òÁö ¾Ê°í ¹èÆ÷, ¼öÁ¤ÀÌ ÀÚÀ¯·Ó½À´Ï´Ù.
    ** Ãß°¡µÈ ±â´ÉÀÌ ÀÖ´Ù¸é Àú¿¡°Ôµµ º¸³»ÁÖ½Ê½Ã¿À. ´Ù¸¥ºÐµé¿¡°Ô µµ¿òÀÌ µË´Ï´Ù.
    */

    var wrestMsg = "";
    var wrestFld = null;
    var wrestFldDefaultColor = "f5ffff";
    var wrestFldBackColor = "ffe4e1";
    var arrAttr  = new Array ("required", "trim", "minlength", "email", "nospace");

    // subject ¼Ó¼º°ªÀ» ¾ò¾î return, ¾øÀ¸¸é tagÀÇ nameÀ» ³Ñ±è
    function wrestItemname(fld)
    {
        var itemname = fld.getAttribute("itemname");
        if (itemname != null && itemname != "")
            return itemname;
        else
            return fld.name;
    }

    // ¾çÂÊ °ø¹é ¾ø¾Ö±â
    function wrestTrim(fld) 
    {
        var pattern = /(^\s*)|(\s*$)/g; // \s °ø¹é ¹®ÀÚ
        fld.value = fld.value.replace(pattern, "");
        return fld.value;
    }

    // ÇÊ¼ö ÀÔ·Â °Ë»ç
    function wrestRequired(fld)
    {
        if (wrestTrim(fld) == "") {
            if (wrestFld == null) {
                wrestMsg = wrestItemname(fld) + " : required.\n";
                wrestFld = fld;
            }
        }
    }

    // ÃÖ¼Ò ±æÀÌ °Ë»ç
    function wrestMinlength(fld)
    {
        var len = fld.getAttribute("minlength");
        if (fld.value.length < len) {
            if (wrestFld == null) {
                wrestMsg = wrestItemname(fld) + " :  ÃÖ¼Ò " + len + "ÀÚ ÀÌ»ó ÀÔ·ÂÇÏ¼¼¿ä.\n";
                wrestFld = fld;
            }
        }
    }

    // ÀüÀÚ¸ÞÀÏÁÖ¼Ò Çü½Ä °Ë»ç
    function wrestEmail(fld) 
    {
        if (!wrestTrim(fld)) return;

        //var pattern = /(\S+)@(\S+)\.(\S+)/; ÀüÀÚ¸ÞÀÏÁÖ¼Ò¿¡ ÇÑ±Û »ç¿ë½Ã
        var pattern = /([0-9a-zA-Z_-]+)@([0-9a-zA-Z_-]+)\.([0-9a-zA-Z_-]+)/;
        if (!pattern.test(fld.value)) {
            if (wrestFld == null) {
                wrestMsg = wrestItemname(fld) + " : ÀüÀÚ¸ÞÀÏÁÖ¼Ò Çü½ÄÀÌ ¾Æ´Õ´Ï´Ù.\n";
                wrestFld = fld;
            }
        }
    }

    // °ø¹é °Ë»çÈÄ °ø¹éÀ» "" ·Î º¯È¯
    function wrestNospace(fld)
    {
        var pattern = /(\s)/g; // \s °ø¹é ¹®ÀÚ
        if (pattern.test(fld.value)) {
            if (wrestFld == null) {
                wrestMsg = wrestItemname(fld) + " : °ø¹éÀÌ ¾ø¾î¾ß ÇÕ´Ï´Ù.\n";
                wrestFld = fld;
            }
        }
    }

    // submit ÇÒ ¶§ ¼Ó¼ºÀ» °Ë»çÇÑ´Ù.
    function wrestSubmit()
    {
        wrestMsg = "";
        wrestFld = null;

        var attr = null;

        // ÇØ´çÆû¿¡ ´ëÇÑ ¿ä¼ÒÀÇ °¹¼ö¸¸Å­ µ¹·Á¶ó
        for (var i = 0; i < this.elements.length; i++) {
            // Input tag ÀÇ type ÀÌ text, file, password ÀÏ¶§¸¸
            if (this.elements[i].type == "text" || 
                this.elements[i].type == "file" || 
                this.elements[i].type == "password" ||
                this.elements[i].type == "textarea") {
                // ¹è¿­ÀÇ ±æÀÌ¸¸Å­ µ¹·Á¶ó
                for (var j = 0; j < arrAttr.length; j++) {
                    // ¹è¿­¿¡ Á¤ÀÇÇÑ ¼Ó¼º°ú ºñ±³ÇØ¼­ ¼Ó¼ºÀÌ ÀÖ°Å³ª °ªÀÌ ÀÖ´Ù¸é
                    if (this.elements[i].getAttribute(arrAttr[j]) != null) {
                        // ±âº» »ö»óÀ¸·Î µ¹·Á³õ°í
                        if (this.elements[i].getAttribute("required") != null) {
                            this.elements[i].style.backgroundColor = wrestFldDefaultColor;
                        }
                        switch (arrAttr[j]) {
                            case "required"  : wrestRequired(this.elements[i]); break;
                            case "trim"      : wrestRequired(this.elements[i]); break;
                            case "minlength" : wrestMinlength(this.elements[i]); break;
                            case "email"     : wrestEmail(this.elements[i]); break;
                            case "nospace"   : wrestNospace(this.elements[i]); break;
                            default : break;
                        }
                    }
                }
            }
        }

        // ÇÊµå°¡ null ÀÌ ¾Æ´Ï¶ó¸é ¿À·ù¸Þ¼¼Áö Ãâ·ÂÈÄ Æ÷Ä¿½º¸¦ ÇØ´ç ¿À·ù ÇÊµå·Î ¿Å±è
        // ¿À·ù ÇÊµå´Â ¹è°æ»ö»óÀ» ¹Ù²Û´Ù.
        if (wrestFld != null) {
            alert(wrestMsg);
            wrestFld.style.backgroundColor = wrestFldBackColor;
            wrestFld.focus();
            return false;
        }

        if (this.oldsubmit && this.oldsubmit() == false)  {
            return false;
        }

        return true;
    }

    // ÃÊ±â¿¡ onsubmitÀ» °¡·ÎÃ¤µµ·Ï ÇÑ´Ù.
    function wrestInitialized()
    {
        for (var i = 0; i < document.forms.length; i++) {
            // onsubmit ÀÌº¥Æ®°¡ ÀÖ´Ù¸é ÀúÀåÇØ ³õ´Â´Ù.
            if (document.forms[i].onsubmit) document.forms[i].oldsubmit = document.forms[i].onsubmit;
            document.forms[i].onsubmit = wrestSubmit;
            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.backgroundColor = wrestFldDefaultColor;
                    /*
                    document.forms[i].elements[j].className = "wrest_required";
                    document.forms[i].elements[j].style.backgroundPosition = "top right";
                    document.forms[i].elements[j].style.backgroundRepeat = "no-repeat";
                    */
                }
            }
        }
    }

    wrestInitialized();

}

