function containsInvalidCharacter(d) {
    var data = new String(d);
    data = data.toLowerCase();
    var invalidCharacters = "\"\'\\";
    var th;

    for (var i = 0; i < data.length; i++) {
        th = data.substring(i, i + 1);
        if (invalidCharacters.indexOf(th) != -1) {
            return true;
        }
    }

    return false;
}

function getDialCode() {
    var f = document.forms["register"];
    var countryCode = f.country.value;

    var dialCode = "";

    try {
        dialCode = getDataFromServer("/domains/ajax/get_dial_code.jsp?country=" + countryCode + "&rnd=" + Math.random());
    } catch(ex) {
    }

    f.phone_prefix.value = trim(dialCode);
    f.phone_prefix2.value = trim(dialCode);

    f.phone_prefix.disabled = trim(dialCode) != "";
}

function validateForm1() {
    var f = document.forms["register"];

    if (isEmpty(f.email)) {
        alert("Пожалуйста введите E-mail");
        f.email.focus();
        return false;
    }
    if (!isEmpty(f.email)) {
        if (!validateEmail(f.email)) {
            alert("Пожалуйста введите корректный E-mail");
            f.email.focus();
            return false;
        }
    }

    if (isEmpty(f.password)) {
        alert("Пожалуйста введите пароль");
        f.password.focus();
        return false;
    }

    if (isEmpty(f.password2)) {
        alert("Пожалуйста подтвердите пароль");
        f.password2.focus();
        return false;
    }

    if (f.password.value != f.password2.value) {
        alert("Пароли не совпадают");
        f.password2.focus();
        return false;
    }

    if (containsInvalidCharacter(f.password.value)) {
        alert("Введите корректный пароль");
        f.password.focus();
        return false;
    }

    if (f.last_name) {
        if (isEmpty(f.last_name)) {
            alert("Пожалуйста введите фамилию");
            f.last_name.focus();
            return false;
        } else {
            if (!validateString(f.last_name)) {
                alert("Введите корректную фамилию");
                f.last_name.focus();
                return false;
            }
        }
    }

    if (f.first_name) {
        if (isEmpty(f.first_name)) {
            alert("Пожалуйста введите имя");
            f.first_name.focus();
            return false;
        } else {
            if (!validateString(f.first_name)) {
                alert("Введите корректное имя");
                f.first_name.focus();
                return false;
            }
        }
    }

    if (f.middle_name) {
        if (!isEmpty(f.middle_name)) {
            if (!validateString(f.middle_name)) {
                alert("Введите корректное отчество");
                f.middle_name.focus();
                return false;
            }
        }
    }

    if (f.region) {
        if (isEmpty(f.region)) {
            alert("Пожалуйста введите область/регион/штат");
            f.region.focus();
            return false;
        } else {
            if (!validateStringAndDigit(f.region)) {
                alert("Введите корректное значение области/региона/штата");
                f.region.focus();
                return false;
            }
        }
    }

    if (f.city) {
        if (isEmpty(f.city)) {
            alert("Пожалуйста введите город");
            f.city.focus();
            return false;
        } else {
            if (!validateString(f.city)) {
                alert("Введите корректное значение города");
                f.city.focus();
                return false;
            }
        }
    }

    if (f.zip) {
        if (isEmpty(f.zip)) {
            alert("Пожалуйста введите почтовый индекс");
            f.zip.focus();
            return false;
        } else {
            if (!validateStringAndDigit(f.zip)) {
                alert("Введите корректное значение индекса");
                f.zip.focus();
                return false;
            } else {
                if (f.zip.value.length < 3) {
                    alert("Введите корректное значение индекса (не меньше 3 символов)");
                    f.zip.focus();
                    return false;
                }
            }
        }
    }

    if (f.street) {
        if (isEmpty(f.street)) {
            alert("Пожалуйста введите улицу");
            f.street.focus();
            return false;
        } else {
            if (!validateStringAndDigit(f.street)) {
                alert("Введите корректное значение улицы");
                f.street.focus();
                return false;
            }
        }
    }

    if (f.building) {
        if (isEmpty(f.building)) {
            alert("Пожалуйста введите дом");
            f.building.focus();
            return false;
        } else {
            if (!validateStrDigSlash(f.building)) {
                alert("Введите корректное значение дома");
                f.building.focus();
                return false;
            }
        }
    }

    if (!isEmpty(f.phone_prefix)) {
        var prefix = f.phone_prefix.value;
        if (prefix.indexOf("+") != -1) {
            var pref = prefix.substring(1);
            if (!isNumber(pref, true, true)) {
                alert("Пожалуйста введите корректный код страны");
                f.phone_prefix.focus();
                return false;
            }
        } else {
            alert("Пожалуйста введите корректный код страны");
            f.phone_prefix.focus();
            return false;
        }

    }

    if (f.phone) {
        if (isEmpty(f.phone)) {
            alert("Пожалуйста введите телефон");
            f.phone.focus();
            return false;
        } else {
            if (!validateDigit(f.phone)) {
                alert("Введите корректное значение телефона");
                f.phone.focus();
                return false;
            } else {
                if (f.phone.value.length < 9 || f.phone.value.length > 11) {
                    alert("Введите корректное значение телефона");
                    f.phone.focus();
                    return false;
                }
            }
        }
    }

    var errorLogin = "";
    var errorEmail = "";

    try {
        errorLogin = getDataFromServer('/user/ajax/check_user_login.jsp?login=' + f.login.value + '&rnd=' + Math.random());
    } catch(ex) {
    }
    try {
        errorEmail = getDataFromServer('/user/ajax/check_user_email.jsp?email=' + f.email.value + '&rnd=' + Math.random());
    } catch(ex) {
    }


    if (errorLogin != "") {
        var errorLoginTD = document.getElementById('error1');
        errorLoginTD.style.height = '40px';
        errorLoginTD.innerHTML = errorLogin;
        return false;
    }
    if (errorEmail != "") {
        var errorEmailTD = document.getElementById('error1');
        errorEmailTD.style.height = '40px';
        errorEmailTD.innerHTML = errorEmail;
        return false;
    }
    return true;
}