// JavaScript Document
function initForm() {
    var nameElt = document.getElementById('name');
    var emailElt = document.getElementById('email');
    var messageElt = document.getElementById('message');
    var sendElt = document.getElementById('send');

    messageElt.value = ' ';
    messageElt.onblur = function () { validText(this); };
    messageElt.onfocus = function () { removeNotifications(this); };

    nameElt.onblur = function () { validText(this); };
    nameElt.onfocus = function () { removeNotifications(this); };

    emailElt.onblur = function () {
        validText(this);
        checkMail(this);
    };
    emailElt.onkeyup = function () {
        validText(this);
        checkMail(this);
    };
    emailElt.onfocus = function () { removeNotifications(this); };
    sendBtn.onclick = sendForm;
}

function sendForm() {
    var nameElt = document.getElementById('name');
    var emailElt = document.getElementById('email');
    var messageElt = document.getElementById('message');
    if (validText(nameElt) && validText(messageElt) && checkMail(emailElt)) {
        alert('Сообщение отправлено!');
        cleanForm();
        return true;
    }
}

function validEmail(email) {
    var invalidChars = " :;/,";
    if (email == '') {
        return false;
    }
    for (var k = 0; k < invalidChars.length; k++) {
        var badChar = invalidChars.charAt(k);
        if (email.indexOf(badChar) > -1) {
            return false;
        }
    }
    var atPos = email.indexOf("@", 1);
    if (atPos == -1) {
        return false;
    }
    if (email.inedexOf("@", atPos + 1) != -1) {
        return false;
    }
    var periodPos = email.indexOf(".", atPos);
    if (periodPos == -1) {
        return false;
    }
    if (periodPos + 3 > email.length) {
        return false;
    }
    return true;
}

function isNotEmpty(element) {
    var valueToTest = element.value;
    if (valueToTest == '' || valueToTest == false)
        return false;
    return true;
}

function validText(element) {
    if (!isNotEmpty(element)) {
        element.style.border = '1px solid #FD796A';
        element.style.color = '#C70000';
        var noteColumn = element.parentNode.nextSibling.nextSibling;
        noteColumn.innerHTML = 'Обязательно к заполнению';
        return false;
    }
    else {
        removeNotifications(element);
        return true;
    }
}

function checkMail(element) {
    if (!isNotEmpty(element)) {
        element.style.border = '1px solid #FD796A';
        element.style.color = '#C70000';
        var noteColumn = element.parentNode.nextSibling.nextSibling;
        noteColumn.innerHTML = 'Обязательно к заполнению';
        return false;
    }
    else if (!validEmail(element.value)) {
        element.style.border = '1px solid #FD796A';
        element.style.color = '#C70000';
        var noteColumn = element.parentNode.nextSibling.nextSibling;
        noteColumn.innerHTML = 'Введите правильный адрес';
        return false;
    }
    else {
        removeNotifications(element); 
        return true;
    }
}

function cleanForm() {
    var elementsToClean = new Array();
    elementsToClean.push(document.getElementById('email'), document.getElementById('name'), document.getElementById('message'));
    for (var i = 0; i < elementsToClean.length; i++) {
        elementsToClean[i].value = '';
    }
}

function removeNotifications(element) {
    element.style.border = '1px solid #999';
    element.style.color = 'Black';
    var noteColumn = element.parentNode.nextSibling.nextSibling;
    noteColumn.innerHTML = '';
}
