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

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) + " : please fill out.\n";
            wrestFld = fld;
        }
    }
}

function wrestMinlength(fld)
{
    var len = fld.getAttribute("minlength");
    if (fld.value.length < len) {
        if (wrestFld == null) {
			wrestMsg = wrestItemname(fld) + " :  must enter more then " + len + "characters.\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) + " : email address format is incorrect.\n";
            wrestFld = fld;
        }
    }
}

function wrestNospace(fld)
{
    var pattern = /(\s)/g; // \s °ø¹é ¹®ÀÚ
    if (pattern.test(fld.value)) {
        if (wrestFld == null) {
            wrestMsg = wrestItemname(fld) + " : no SPACE character allowed.\n";
            wrestFld = fld;
        }
    }
}

function wrestSubmit()
{
    wrestMsg = "";
    wrestFld = null;

    var attr = null;

    for (var i = 0; i < this.elements.length; i++) {
        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++) {
                this.elements[i].style.backgroundColor = wrestFldDefaultColor;
                if (this.elements[i].getAttribute(arrAttr[j]) != null) {
                    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;
                    }
                }
            }
        }
    }

    if (wrestFld != null) {
        alert(wrestMsg);
        wrestFld.style.backgroundColor = wrestFldBackColor;
        wrestFld.focus();
        return false;
    }

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

    return true;
}

function wrestInitialized()
{
    for (var i = 0; i < document.forms.length; i++) {
        if (document.forms[i].onsubmit) document.forms[i].oldsubmit = document.forms[i].onsubmit;
        document.forms[i].onsubmit = wrestSubmit;
    }
}

wrestInitialized();

