function checkRegisterForm(form) {
    if (form.elements['captcha'].value.length == 0) {
        $("captcha-er").innerHTML = "Поле обязательно к заполнению.";
        document.forms['register'].elements['captcha'].className = "text-input";
    } else if (form.elements['captcha'].value.length != 6) {
        $("captcha-er").innerHTML = "Цифры на картинке указаны неверно.";
        document.forms['register'].elements['captcha'].className = "text-input-novalid";
    }
    if (document.forms['register'].elements['nickname'].value.length==0) {
        $("nickname-er").innerHTML = "Поле обязательно к заполнению.";
    }
    if (document.forms['register'].elements['email'].value.length==0) {
        $("email-er").innerHTML = "Поле обязательно к заполнению.";
    }
    if (document.forms['register'].elements['firstname'].value.length==0) {
        $("firstname-er").innerHTML = "Поле обязательно к заполнению.";
    }
    if (document.forms['register'].elements['lastname'].value.length==0) {
        $("lastname-er").innerHTML = "Поле обязательно к заполнению.";
    }
    if (document.forms['register'].elements['password'].value.length==0) {
        $("psswd-er").innerHTML = "Поле обязательно к заполнению.";
    }
    if (document.forms['register'].elements['confpassword'].value.length==0) {
        $("confpsswd-er").innerHTML = "Поле обязательно к заполнению.";
    }
    if (($("nickname-er").innerHTML.length>0) ||
        ($("email-er").innerHTML.length>0) ||
        ($("firstname-er").innerHTML.length>0) ||
        ($("lastname-er").innerHTML.length>0) ||
        ($("psswd-er").innerHTML.length>0) ||
        ($("confpsswd-er").innerHTML.length>0) ||
        ($("captcha-er").innerHTML.length>0)) {
        return false;
    }
    return true;
}

function checkExistLogin() {
    new Ajax.Request('/checklogin.php?login='+document.forms['register'].elements['nickname'].value,
                     { onComplete: function(request) {
                                     if (request.responseText!='true') {
                                         $("nickname-er").innerHTML = "Такое имя пользователя уже существует.";
                                         document.forms['register'].elements['nickname'].className = "text-input-novalid";
                                     }
                                   }
                     });
}

var loginTimer = null;
function checkLoginField(event, element) {
    $("nickname-er").innerHTML = "";
    element.className = "text-input";
    if (element.value.match(/[^a-z0-9\-]+/i)) {
        element.className = "text-input-novalid";
        $("nickname-er").innerHTML = "Имя пользователя содержит недопустимые символы.";
    } else if ((element.value.length<3) && (element.value.length>0) && (event.type=='blur')) {
        element.className = "text-input-novalid";
        $("nickname-er").innerHTML = "Длина имени пользователя должна быть не менее 3 символов.";
    } else {
        $("nickname-er").innerHTML = "";
        if (element.value.length < 3) {
            element.className = "text-input";
        } else {
            element.className = "text-input-valid";
            clearTimeout(loginTimer);
            loginTimer = setTimeout(function() {checkExistLogin()}, 100);
        }
    }
}

function checkFirstnameField(event, element) {
    $("firstname-er").innerHTML = "";
    element.className = "text-input";
    if (element.value.match(/[_+0-9\-]+/i)) {
        element.className = "text-input-novalid";
        $("firstname-er").innerHTML = "Имя пользователя содержит недопустимые символы.";
    } else if ((element.value.length<3) && (element.value.length>0) && (event.type=='blur')) {
        element.className = "text-input-novalid";
        $("firstname-er").innerHTML = "Длина имени пользователя должна быть не менее 3 символов.";
    } else {
        $("firstname-er").innerHTML = "";
        if (element.value.length < 3) {
            element.className = "text-input";
        } else {
            element.className = "text-input-valid";
        }
    }
}

function checkLastnameField(event, element) {
    $("lastname-er").innerHTML = "";
    element.className = "text-input";
    if (element.value.match(/[_+0-9\-]+/i)) {
        element.className = "text-input-novalid";
        $("lastname-er").innerHTML = "Фамилия пользователя содержит недопустимые символы.";
    } else if ((element.value.length<3) && (element.value.length>0) && (event.type=='blur')) {
        element.className = "text-input-novalid";
        $("lastname-er").innerHTML = "Длина фамилии пользователя должна быть не менее 3 символов.";
    } else {
        $("lastname-er").innerHTML = "";
        if (element.value.length < 3) {
            element.className = "text-input";
        } else {
            element.className = "text-input-valid";
        }
    }
}

function checkExistEmail() {
    new Ajax.Request('/checkemail.php?email='+document.forms['register'].elements['email'].value,
                     { onComplete: function(request) {
                                     if (request.responseText!='true') {
                                         $("email-er").innerHTML = "Такй адрес электронной почты уже занят.";
                                         document.forms['register'].elements['email'].className = "text-input-novalid";
                                     }
                                   }
                     });
}

var emailTimer = null;
function checkEmailField(event, element) {
    element.className = "text-input";
    if (element.value.match(/[^a-z0-9\_\.\-\@]+/i)) {
        element.className = "text-input-novalid";
        $("email-er").innerHTML = "Адрес электронной почты содержит недопустимые символы.";
    } else if ((element.value.length>0) && !element.value.match(/^[a-z0-9][a-z0-9_.-]*@[a-z0-9_.-]+\.[a-z]{2,7}$/i)){
        if (event.type=='blur') {
            element.className = "text-input-novalid";
            $("email-er").innerHTML = "Адрес электронной почты указан неверно.";
        }
    } else {
        $("email-er").innerHTML = "";
        element.className = "text-input";
        if (element.value.length > 0) {
            if (element.value.match(/^[a-z0-9][a-z0-9_.-]*@[a-z0-9_.-]+\.[a-z]{2,7}$/i)) {
                element.className = "text-input-valid";
                clearTimeout(emailTimer);
                emailTimer = setTimeout(function() {checkExistEmail()}, 100);
            } else {
                element.className = "text-input";
            }
        }
    }
}

function checkPasswordField(event, element, cpel) {
    element.className = "text-input";
    if ((element.value.length<6) && (element.value.length>0) && (event.type=='blur')) {
        element.className = "text-input-novalid";
        $("psswd-er").innerHTML = "Пароль пользователя должен содержать не менеее 6 символов.";
        cpel.disabled = true;
    } else {
        $("psswd-er").innerHTML = "";
        if (element.value.length >= 6) {
            element.className = "text-input-valid";
        } else {
            element.className = "text-input";
        }
        if (element.value.length < 6) {
            cpel.disabled = true;
            cpel.className = "text-input-disabled";
        } else {
            cpel.disabled = false;
            cpel.className = "text-input";
        }
    }
}

function checkConfPasswordField(event, element, pel) {
    element.className = "text-input";
    if ((element.value.length>0) && (element.value!=pel.value) && (event.type=='blur')) {
        element.className = "text-input-novalid";
        $("confpsswd-er").innerHTML = "Пароль и подтверждение пароля не совпадают.";
    } else if (pel.value.substring(0, element.value.length) != element.value) {
        element.className = "text-input-novalid";
        $("confpsswd-er").innerHTML = "Пароль и подтверждение пароля не совпадают.";
    } else {
        $("confpsswd-er").innerHTML = "";
        if (element.value != pel.value) {
            element.className = "text-input";
        } else {
            element.className = "text-input-valid";
        }
    }
}

function checkServerCaptcha() {
    var url = "";
    var element = "";
    url = '/checkcaptcha.php?captcha='+document.forms['register'].elements['captcha'].value;
    element = document.forms['register'].elements['captcha'];
    new Ajax.Request(url,
                     { onComplete: function(request) {
                                     if (request.responseText != 'true') {
                                         $("captcha-er").innerHTML = "Символы с картинки указаны неверно.";
                                         element.className = "text-input-novalid";
                                     } else {
                                        if (element.value.length == 6) {
                                             $("captcha-er").innerHTML = "";
                                             element.className = "text-input-valid";
                                         } else {
                                             $("captcha-er").innerHTML = "";
                                             element.className = "text-input";
                                         }
                                     }
                                   }
                     });
}

function checkCaptcha(event, element) {
    if ((event.type=='blur') && (element.value.length==0)) {
        $("captcha-er").innerHTML = "Поле обязательно к заполнению.";
        element.form.elements['captcha'].className = "text-input";
        return;
    } else if (element.value.length==0) {
        $("captcha-er").innerHTML = "";
        element.form.elements['captcha'].className = "text-input";
        return;
    }

    //if (element.value.length == 6) {
    if (element.value.length > 0) {
        clearTimeout(loginTimer);
        loginTimer = setTimeout(function() {checkServerCaptcha()}, 100);
    } else {
        $("captcha-er").innerHTML = "";
        element.form.elements['captcha'].className = "text-input";
    }
}

function checkAgreementField(element){
    if (element.checked) {
        $("agreement-er").innerHTML = "";
    }
}

function checkReminderForm(form) {
    if (form.elements['captcha'].value.length == 0) {
        $("captcha-er").innerHTML = "Поле обязательно к заполнению.";
        document.forms['reminder'].elements['captcha'].className = "text-input";
    } else if (form.elements['captcha'].value.length != 6) {
        $("captcha-er").innerHTML = "Цифры на картинке указаны неверно.";
        document.forms['reminder'].elements['captcha'].className = "text-input-novalid";
    }
    if (document.forms['reminder'].elements['reminderdata'].value.length==0) {
        $("nickname-er").innerHTML = "Поле обязательно к заполнению.";
    }
    if (($("nickname-er").innerHTML.length>0) ||
        ($("captcha-er").innerHTML.length>0)) {
        return false;
    }
    return true;
}

var remindType = "nickname";
var onSwitchRemindType = false;

function switchRemindType(to) {
    //alert('switchRemindType');
    onSwitchRemindType = true;
    if (to == 'nickname') {
        $("head-remind-email").innerHTML = 'По email';
        $("head-remind-email").className = "head-remind-ac";
        $("head-remind-nickname").innerHTML = '<a onclick="switchRemindType(\'email\')">По имени пользователя</a>';
        $("head-remind-nickname").className = "head-remind";
        document.forms['reminder'].elements['type'].value = "email";
    } else {
        $("head-remind-email").innerHTML = '<a onclick="switchRemindType(\'nickname\')">По email</a>';
        $("head-remind-email").className = "head-remind";
        $("head-remind-nickname").innerHTML = 'По имени пользователя';
        $("head-remind-nickname").className = "head-remind-ac";
        document.forms['reminder'].elements['type'].value = "nickname";
    }
    $("nickname-er").innerHTML = "";
    $("reminderdata").value = "";
    $("reminderdata").className = "text-input";
}

function checkExistLoginReminder() {
    new Ajax.Request('/register/checklogin?login='+document.forms['reminder'].elements['reminderdata'].value,
                     { onComplete: function(request) {
                                     if (onSwitchRemindType == true) {
                                         onSwitchRemindType = false;
                                         return;
                                     }
                                     if (!(request.responseText!='true')) {
                                         $("nickname-er").innerHTML = "Пользователя с таким именем не существует";
                                         document.forms['reminder'].elements['reminderdata'].className = "text-input-novalid";
                                     } else {
                                        $("nickname-er").innerHTML = "";
                                        document.forms['reminder'].elements['reminderdata'].className = "text-input-valid";
                                     }
                                   }
                     });
}

function checkExistEmailReminder() {
    new Ajax.Request('/register/checkemail?email='+document.forms['reminder'].elements['reminderdata'].value,
                     { onComplete: function(request) {
                                     if (onSwitchRemindType == true) {
                                         onSwitchRemindType = false;
                                         return;
                                     }
                                     if (!(request.responseText=='true')) {
                                        $("nickname-er").innerHTML = "";
                                        document.forms['reminder'].elements['reminderdata'].className = "text-input-valid";
                                     } else {
                                         $("nickname-er").innerHTML = "Адреса с таким именем не существует";
                                         document.forms['reminder'].elements['reminderdata'].className = "text-input-novalid";
                                     }
                                   }
                     });
}

function checkLoginRemindField(event, element) {
    if (onSwitchRemindType == true) {
        onSwitchRemindType = false;
    }

    if ($("reminderdata").value.length == 0) {
        $("reminderdata").className = "text-input";
        return;
    }
    $("nickname-er").innerHTML = "";
    element.className = "text-input";
    if (element.value.match(/[^a-z0-9\-]+/i) && (document.forms['reminder'].elements['type'].value=="nickname")) {
        element.className = "text-input-novalid";
        $("nickname-er").innerHTML = "Имя пользователя содержит недопустимые символы.";
    } else if (element.value.match(/[^a-z0-9\_\.\-\@]+/i) && (document.forms['reminder'].elements['type'].value=="nickname")) {
        element.className = "text-input-novalid";
        $("nickname-er").innerHTML = "Адрес электронной почты содержит недопустимые символы.";
    } else if ((element.value.length>0) && (event.type=='blur')) {
        if (document.forms['reminder'].elements['type'].value == "email") {
            clearTimeout(loginTimer);
            loginTimer = setTimeout(function() {checkExistEmailReminder()}, 100);
        } else {
            clearTimeout(loginTimer);
            loginTimer = setTimeout(function() {checkExistLoginReminder()}, 100);
        }
    } else {
        //$("nickname-er").innerHTML = "";
        element.className = "text-input";
    }
}