function validateForm()
{
    validateEmail(true);
    validatePwd(true);
    validatePwdConf(true);
    if($("input.invalid").length > 0)
        return false;
    return true;
}

function validateCaptcha()
{
    var value = $("#captchaText").get(0).value;
    if (value!="")
        removeError("RegForm", "captcha");
}

function validateEmail(isChange)
{
    validatePwdConf(false);
    var input = $("#email").get(0)
    var value = input.value;
    var valid = true;
    if (value.match(/\S/) != null && value.match(/\s/) == null) {
        valid = value.match(/([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)/) != null;
    }
    else valid = false;
    if(!valid)
    {
        if(isChange || $(input).hasClass("valid") || $(input).hasClass("invalid"))
        {
            $(input).removeClass("valid");
            $(input).addClass("invalid");
            if (value == "") addError("RegForm", "0_email", RegisterErrorNoEMail, 0);
            else addError("RegForm","0_email",RegisterErrorWrongEMail, 0);
        }
    }
    else
    {
        $(input).removeClass("invalid");
        $(input).addClass("valid");
        removeError("RegForm", "0_email");
    }
}

function validatePwd(isChange)
{
    validatePwdConf(false);
    var input = $("#password").get(0);
    var value = input.value;
    if(value=="")//if(value.match(/\S/) == null)
    {
        if(isChange || $(input).hasClass("valid"))
        {
            $(input).removeClass("valid");
            $(input).addClass("invalid");
            addError("RegForm", "1_password", RegisterErrorNoPassword);
        }
    }
    else
    {
        if (value.length <= 7) addError("RegForm", "1_password", RegisterErrorMinPassword);
        if (value.length > 7) {
            $(input).removeClass("invalid");
            $(input).addClass("valid");
            removeError("RegForm", "1_password");
        }
    }
}

function validatePwdConf(isChange)
{
    var input = $("#confirmPassword").get(0);
    var value = input.value;
    var valid = true;
    var checked = $("#confirmPassword").attr("value").length >= $("#password").attr("value").length || $(input).hasClass("valid") || $(input).hasClass("invalid");
    if(checked || isChange)
        valid = $("#confirmPassword").attr("value") == $("#password").attr("value"); 
    
    if((checked || isChange) && !valid)
    {
        $(input).removeClass("valid");
        $(input).addClass("invalid");
        addError("RegForm", "2_pwdConfirm", RegisterErrorPasswordNotMatch);
    }
    else if(checked && value!="")
    {
        $(input).removeClass("invalid");
        $(input).addClass("valid");
        removeError("RegForm", "2_pwdConfirm");
    }
    else if($("#confirmPassword").attr("value") == $("#password").attr("value"))
    {
        $(input).removeClass("invalid");
        $(input).removeClass("valid");
        removeError("RegForm", "2_pwdConfirm");
    }
}


function validateInit()
{
    $("#email").bind("change", function(e){validateEmail(true);});
    $("#email").bind("keyup", function(e){validateEmail(false);});
    $("input.required.pwd").bind("change", function(e){validatePwd(true);});
    $("input.required.pwd").bind("keyup", function(e){validatePwd(false);});
    $("#captchaText").bind("keyup", function(e){validateCaptcha();});
    $("input.required.confirmpwd").bind("keyup", function(e){validatePwdConf(false);});
    $("input.required.confirmpwd").bind("change", function(e){validatePwdConf(true);});
    $("form[name='registration']").get(0).onsubmit = validateForm;
}

$(document).ready(validateInit)
