
if (document.getElementById("loginForm")) {
    var form = document.getElementById("loginForm");
    EventUtil.addHandler(form, "submit", function(event) {
        var password = form.elements['password'];
        var challenge = form.elements['challenge'];        
        password.value = HMAC_SHA256_MAC(challenge.value, SHA256_hash(password.value));
        form.submit();
    });
}

if (document.getElementById("registrationForm")) {
    
    var reg = document.getElementById("registrationForm");
    var elements = reg.elements;
    for (i = 0;len = elements.length, i < len; i++) {
        if(elements[i].getAttribute("request")) {
            var name = elements[i].name;            
            switch (elements[i].getAttribute("request").toLowerCase()) {
                case "checkrequired":
                    checkRequiredFieldEvent(reg, name, name+"Status");
                    break;
                case "checklogin":
                    checkLoginEvent(reg, name, name+"Status");
                    break;
                case "checkmail":
                    checkMailEvent(reg, name, name+"Status");
                    break;
                case "checkpassword":
                    checkPasswordEvent(reg, name, name+"Confirm", name+"Status");
                    break;
                case "checkconditionalrequired":
                    if (elements[i].getAttribute("condition")) {
                        checkConditionFieldEvent(reg, name, name+"Status", elements[i].getAttribute("condition"));
                    }
                    break;
                default:
                    break;
            }
        }
    }

    EventUtil.addHandler(reg, 'submit', function(event) {
        if (event.preventDefault()) {
            event.preventDefault();
        } else {
            event.returnValue = false;
        }

        var problem = false;
        var password = reg.elements['password'];
        var passwordConfirm = reg.elements['passwordConfirm'];
        var results = new Array();

        for (i = 0;len = elements.length, i < len; i++) {
            if(elements[i].getAttribute("request")) {
                var name = elements[i].name;
                switch (elements[i].getAttribute("request").toLowerCase()) {
                    case "checkrequired":
                        results.push(checkRequiredField(elements[i], name+"Status").toString());
                        break;
                    case "checklogin":
                        results.push(checkLogin(elements[i], name+"Status").toString());
                        break;
                    case "checkmail":
                        results.push(checkMail(elements[i], name+"Status").toString());
                        break;
                    case "checkpassword":
                        results.push(checkPassword(elements[i], reg.elements[name+"Confirm"], name+"Status").toString());
                        break;
                    case "checkconditionalrequired":
                        if (elements[i].getAttribute("condition")) {
                            var condition = reg.elements[elements[i].getAttribute("condition")];
                            results.push(checkConditionField(elements[i], name+"Status", condition));
                        }
                        break;
                }
            }
        }

        for (var i = 0; len = results.length,i < len; i++) {
            if (results[i] == "false") {
                problem = true;
                break;
            }
        }

        if (problem == true) {
            alert(MESSAGE_FORM_IS_NOT_VALID);
        } else {
            
            password.value = SHA256_hash(password.value);
            passwordConfirm.value = SHA256_hash(passwordConfirm.value);
            reg.submit();
        }
    });
}

if (document.getElementById("changeUserInfoForm")) {
    var changeForm = document.getElementById("changeUserInfoForm");
    var elements = changeForm.elements;
    for (i = 0;len = elements.length, i < len; i++) {
        if(elements[i].getAttribute("request")) {
            var name = elements[i].name;
            switch (elements[i].getAttribute("request").toLowerCase()) {
                case "checkrequired":
                    checkRequiredFieldEvent(changeForm, name, name+"Status");
                    break;
                case "checkpasswordvalidity":
                    checkRequiredFieldEvent(changeForm, name, name+"Status");
                    break;
                case "checklogin":
                    checkLoginEvent(changeForm, name, name+"Status");
                    break;
                case "checkmail":
                    checkMailEvent(changeForm, name, name+"Status");
                    break;
                case "checkpassword":
                    checkPasswordEvent(changeForm, name, name+"Confirm", name+"Status");
                    break;
                case "checkconditionalrequired":
                    if (elements[i].getAttribute("condition")) {
                        checkConditionFieldEvent(changeForm, name, name+"Status", elements[i].getAttribute("condition"));
                    }
                    break;
                default:
                    break;
            }
        }
    }

    EventUtil.addHandler(changeForm, "submit", function(event) {
        EventUtil.preventDefault(event);
        var password = changeForm.elements['password'];
        var problem = false;
        var results = new Array();

        for (i = 0;len = elements.length, i < len; i++) {
            if(elements[i].getAttribute("request")) {
                var name = elements[i].name;
                switch (elements[i].getAttribute("request").toLowerCase()) {
                    case "checkrequired":
                        results.push(checkRequiredField(elements[i], name+"Status").toString());
                        break;
                    case "checkpasswordvalidity":
                        results.push(checkRequiredField(elements[i], name+"Status").toString());
                        break;
                    case "checklogin":
                        results.push(checkLogin(elements[i], name+"Status").toString());
                        break;
                    case "checkmail":
                        results.push(checkMail(elements[i], name+"Status").toString());
                        break;
                    case "checkpassword":
                        results.push(checkPassword(elements[i], changeForm.elements[name+"Confirm"], name+"Status").toString());
                        break;
                    case "checkconditionalrequired":
                        if (elements[i].getAttribute("condition")) {
                            var condition = changeForm.elements[elements[i].getAttribute("condition")];
                            results.push(checkConditionField(elements[i], name+"Status", condition));
                        }
                        break;
                }
            }
        }

        for (var i = 0; len = results.length,i < len; i++) {
            if (results[i] == "false") {
                problem = true;
                break;
            }
        }

        if (problem) {
            alert(MESSAGE_FORM_IS_NOT_VALID);
        } else {
            password.value = SHA256_hash(password.value);
            changeForm.submit();
        }
    });
}

if (document.getElementById("changeUserPasswordForm")) {
    var changePassForm = document.getElementById("changeUserPasswordForm");
    var elements = changePassForm.elements;
    for (i = 0;len = elements.length, i < len; i++) {
        if(elements[i].getAttribute("request")) {
            var name = elements[i].name;
            switch (elements[i].getAttribute("request").toLowerCase()) {
                case "checkrequired" || "checkpasswordvalidity":
                    checkRequiredFieldEvent(changePassForm, name, name+"Status");
                    break;
                case "checkpasswordvalidity":
                    checkRequiredFieldEvent(changePassForm, name, name+"Status");
                    break;
                case "checklogin":
                    checkLoginEvent(changePassForm, name, name+"Status");
                    break;
                case "checkmail":
                    checkMailEvent(changePassForm, name, name+"Status");
                    break;
                case "checkpassword":
                    checkPasswordEvent(changePassForm, name, name+"Confirm", name+"Status");
                    break;
                case "checkconditionalrequired":
                    if (elements[i].getAttribute("condition")) {
                        checkConditionFieldEvent(changePassForm, name, name+"Status", elements[i].getAttribute("condition"));
                    }
                    break;
                default:
                    break;
            }
        }
    }

    EventUtil.addHandler(changePassForm, "submit", function(event) {
        EventUtil.preventDefault(event);
        var oldPassword = changePassForm.elements['oldPassword'];
        var password = changePassForm.elements['password'];
        var passwordConfirm = changePassForm.elements['passwordConfirm'];
        var problem = false;
        var results = new Array();

        for (i = 0;len = elements.length, i < len; i++) {
            if(elements[i].getAttribute("request")) {
                var name = elements[i].name;
                switch (elements[i].getAttribute("request").toLowerCase()) {
                    case "checkrequired":
                        results.push(checkRequiredField(elements[i], name+"Status").toString());
                        break;
                    case "checkpasswordvalidity":
                        results.push(checkRequiredField(elements[i], name+"Status").toString());
                        break;//
                    case "checklogin":
                        results.push(checkLogin(elements[i], name+"Status").toString());
                        break;
                    case "checkmail":
                        results.push(checkMail(elements[i], name+"Status").toString());
                        break;
                    case "checkpassword":
                        results.push(checkPassword(elements[i], changePassForm.elements[name+"Confirm"], name+"Status").toString());
                        break;
                    case "checkconditionalrequired":
                        if (elements[i].getAttribute("condition")) {
                            var condition = changePassForm.elements[elements[i].getAttribute("condition")];
                            results.push(checkConditionField(elements[i], name+"Status", condition));
                        }
                        break;
                }
            }
        }

        for (var i = 0; len = results.length,i < len; i++) {
            if (results[i] == "false") {
                problem = true;
                break;
            }
        }

        if (problem) {
            alert(MESSAGE_FORM_IS_NOT_VALID);
        } else {
            oldPassword.value = SHA256_hash(oldPassword.value);
            password.value = SHA256_hash(password.value);
            passwordConfirm.value = SHA256_hash(passwordConfirm.value);
            changePassForm.submit();
        }
    });
}

if (document.getElementById("changeAddressForm")) {    
    var changeForm = document.getElementById("changeAddressForm");
    var elements = changeForm.elements;
    for (i = 0;len = elements.length, i < len; i++) {
        if(elements[i].getAttribute("request")) {
            var name = elements[i].name;
            switch (elements[i].getAttribute("request").toLowerCase()) {
                case "checkrequired":
                    checkRequiredFieldEvent(changeForm, name, name+"Status");
                    break;
                case "checkpasswordvalidity":
                    checkRequiredFieldEvent(changeForm, name, name+"Status");
                    break;
                case "checklogin":
                    checkLoginEvent(changeForm, name, name+"Status");
                    break;
                case "checkmail":
                    checkMailEvent(changeForm, name, name+"Status");
                    break;
                case "checkpassword":
                    checkPasswordEvent(changeForm, name, name+"Confirm", name+"Status");
                    break;
                case "checkconditionalrequired":
                    if (elements[i].getAttribute("condition")) {
                        checkConditionFieldEvent(changeForm, name, name+"Status", elements[i].getAttribute("condition"));
                    }
                    break;
                default:
                    break;
            }
        }
    }

    EventUtil.addHandler(changeForm, "submit", function(event) {        
        EventUtil.preventDefault(event);
        var problem = false;
        var results = new Array();

        for (i = 0;len = elements.length, i < len; i++) {
            if(elements[i].getAttribute("request")) {
                var name = elements[i].name;
                switch (elements[i].getAttribute("request").toLowerCase()) {
                    case "checkrequired":                        
                        results.push(checkRequiredField(elements[i], name+"Status").toString());
                        break;
                    case "checkpasswordvalidity":
                        results.push(checkRequiredField(elements[i], name+"Status").toString());
                        break;
                    case "checklogin":
                        results.push(checkLogin(elements[i], name+"Status").toString());
                        break;
                    case "checkmail":
                        results.push(checkMail(elements[i], name+"Status").toString());
                        break;
                    case "checkpassword":
                        results.push(checkPassword(elements[i], changeForm.elements[name+"Confirm"], name+"Status").toString());
                        break;
                    case "checkconditionalrequired":
                        if (elements[i].getAttribute("condition")) {
                            var condition = changeForm.elements[elements[i].getAttribute("condition")];
                            results.push(checkConditionField(elements[i], name+"Status", condition));
                        }
                        break;
                }
            }
        }

        for (var i = 0; len = results.length,i < len; i++) {
            if (results[i] == "false") {                
                problem = true;
                break;
            }
        }
        
        if (problem) {            
            alert(MESSAGE_FORM_IS_NOT_VALID);
        } else {
            changeForm.submit();
        }
    });
}


if (document.getElementById("changeAddressForm2")) {
    var changeForm = document.getElementById("changeAddressForm2");
    var elements = changeForm.elements;
    for (i = 0;len = elements.length, i < len; i++) {
        if(elements[i].getAttribute("request")) {
            var name = elements[i].name;
            switch (elements[i].getAttribute("request").toLowerCase()) {
                case "checkrequired":
                    checkRequiredFieldEvent(changeForm, name, name+"Status");
                    break;
                case "checkpasswordvalidity":
                    checkRequiredFieldEvent(changeForm, name, name+"Status");
                    break;
                case "checklogin":
                    checkLoginEvent(changeForm, name, name+"Status");
                    break;
                case "checkmail":
                    checkMailEvent(changeForm, name, name+"Status");
                    break;
                case "checkpassword":
                    checkPasswordEvent(changeForm, name, name+"Confirm", name+"Status");
                    break;
                case "checkconditionalrequired":
                    if (elements[i].getAttribute("condition")) {
                        checkConditionFieldEvent(changeForm, name, name+"Status", elements[i].getAttribute("condition"));
                    }
                    break;
                default:
                    break;
            }
        }
    }

    EventUtil.addHandler(changeForm, "submit", function(event) {
        EventUtil.preventDefault(event);
        var problem = false;
        var results = new Array();

        for (i = 0;len = elements.length, i < len; i++) {
            if(elements[i].getAttribute("request")) {
                var name = elements[i].name;
                switch (elements[i].getAttribute("request").toLowerCase()) {
                    case "checkrequired":
                        results.push(checkRequiredField(elements[i], name+"Status").toString());
                        break;
                    case "checkpasswordvalidity":
                        results.push(checkRequiredField(elements[i], name+"Status").toString());
                        break;
                    case "checklogin":
                        results.push(checkLogin(elements[i], name+"Status").toString());
                        break;
                    case "checkmail":
                        results.push(checkMail(elements[i], name+"Status").toString());
                        break;
                    case "checkpassword":
                        results.push(checkPassword(elements[i], changeForm.elements[name+"Confirm"], name+"Status").toString());
                        break;
                    case "checkconditionalrequired":
                        if (elements[i].getAttribute("condition")) {
                            var condition = changeForm.elements[elements[i].getAttribute("condition")];
                            results.push(checkConditionField(elements[i], name+"Status", condition));
                        }
                        break;
                }
            }
        }

        for (var i = 0; len = results.length,i < len; i++) {
            if (results[i] == "false") {
                problem = true;
                break;
            }
        }

        if (problem) {
            alert(MESSAGE_FORM_IS_NOT_VALID);
        } else {
            changeForm.submit();
        }
    });
}




