//====================
// Powered by Ustas
//====================
// Ustas-v@mail.ru
//====================

var invalid = new Array();

var fieldEmpty     = 'Поля, обязательные к заполнению пустые или имеют введенные некорректные символы!';
var familyEmpty    = 'Поле "Фамилия" обязательно к заполнению!';
var familyInvalid  = 'Поле "Фамилия" может содержать символы русского и английского алфавита, символы пробела и символ "-" !';
var nameEmpty      = 'Поле "Имя" обязательно к заполнению!';
var nameInvalid    = 'Поле "Имя" может содержать символы русского и английского алфавита, символы пробела и символ "-" !';
var surnameEmpty   = 'Поле "Отчество" обязательно к заполнению!';
var surnameInvalid = 'Поле "Отчество" может содержать символы русского и английского алфавита, символы пробела и символ "-" !';
var phoneInvalid   = 'Поле "Телефон" может содержать только цифры, символы пробела и символ "-" !';
var townInvalid    = 'Поле "Город" может содержать символы русского и английского алфавита, символы пробела и символ "-" !';
var emailInvalid   = 'Некорректный адрес E-mail! Исправьте на правильный...';
var pagesInvalid   = 'Поле "Кол-во страниц" может содержать только цифры !';

function CheckData(f)
{
    var family  = f.elements['family'];
    var name    = f.elements['name'];
    var surname = f.elements['surname'];
    
    // Обрабатываем Фамилию
    if (family.value == '') {
        ValidField(family, 0);
        Warrning(family.name, familyEmpty, 1);
        AddField(family);
    } else if (!IsRuLat(family.value)) {
        ValidField(family, 0);
        Warrning(family.name, familyInvalid, 1);
        AddField(family);
    } else {
        ValidField(family, 1);
        Warrning(family.name, '', 0);
        DeleteField(family);
    }
    // !-- Фамилия
    // Обрабатываем Имя
    if (name.value == '') {
        ValidField(name, 0);
        Warrning(name.name, nameEmpty, 1);
        AddField(name);
    } else if (!IsRuLat(name.value)) {
        ValidField(name, 0);
        Warrning(name.name, nameInvalid, 1);
        AddField(name);
    } else {
        ValidField(name, 1);
        Warrning(name.name, '', 0);
        DeleteField(name);
    }
    // !-- Имя
    // Обрабатываем Отчество
    if (surname.value == '') {
        ValidField(surname, 0);
        Warrning(surname.name, surnameEmpty, 1);
        AddField(surname);
    } else if (!IsRuLat(surname.value)) {
        ValidField(surname, 0);
        Warrning(surname.name, surnameInvalid, 1);
        AddField(surname);
    } else {
        ValidField(surname, 1);
        Warrning(surname.name, '', 0);
        DeleteField(surname);
    }
    // !-- Имя
    
    if (invalid.length > 0) {
        for (j = 0; j < invalid.length; j++) {
            ValidField(invalid[j], 0);
            Warrning(invalid[j].name, fieldEmpty, 1);
            AddField(invalid[j]);
        }
        return false;
    } else {
        f.elements['go'].disabled = true;
        return true;
    } 
}

function CheckField(e) 
{
    var f = document.orders;
    
    var email   = f.elements['email'];
    var payment = f.elements['payment'];
    var phone   = f.elements['phone'];
    var town    = f.elements['town'];
    var trans   = f.elements['trans'];
    var special = f.elements['special'];
    var discipline = f.elements['discipline'];
    var subject = f.elements['subject'];
    
    if (e.name == 'family') {
        if (e.value == '') {
            ValidField(e, 0);
            Warrning(e.name, familyEmpty, 1);
            AddField(e);
        } else if (!IsRuLat(e.value)) {
            ValidField(e, 0);
            Warrning(e.name, familyInvalid, 1);
            AddField(e);
        } else {
            ValidField(e, 1);
            Warrning(e.name, '', 0);
            DeleteField(e);
            if (e.value != '') {
                SetCookie('orderfamily', e.value);
            }
        }
    }
    
    if (e.name == 'name') {
        if (e.value == '') {
            ValidField(e, 0);
            Warrning(e.name, nameEmpty, 1);
            AddField(e);
        } else if (!IsRuLat(e.value)) {
            ValidField(e, 0);
            Warrning(e.name, nameInvalid, 1);
            AddField(e);
        } else {
            ValidField(e, 1);
            Warrning(e.name, '', 0);
            DeleteField(e);
            if (e.value != '') {
                SetCookie('ordername', e.value);
            }
        }
    }
    
    if (e.name == 'surname') {
        if (e.value == '') {
            ValidField(e, 0);
            Warrning(e.name, surnameEmpty, 1);
            AddField(e);
        } else if (!IsRuLat(e.value)) {
            ValidField(e, 0);
            Warrning(e.name, surnameInvalid, 1);
            AddField(e);
        } else {
            ValidField(e, 1);
            Warrning(e.name, '', 0);
            DeleteField(e);
            if (e.value != '') {
                SetCookie('ordersurname', e.value);
            }
        }
    }
    
    if (e.name == 'phone') {
        if (e.value != '') {
            if (!IsPhone(phone.value)) {
                AddField(phone);
                ValidField(phone, 0);
                Warrning(phone.name, phoneInvalid, 1);
            } else {
                DeleteField(phone);
                ValidField(phone, 1);
                Warrning(phone.name, '', 0);
                if (e.value != '') {
                    SetCookie('orderphone', e.value);
                }
            }
        } else {
            AddField(phone);
            ValidField(phone, 0);
            Warrning(phone.name, phoneInvalid, 1);
        }
    }
    
    if (e.name == 'special') {
        if (e.value != '') {
            if (!IsRuLat(special.value)) {
                AddField(special);
                ValidField(special, 0);
                Warrning(special.name, fieldEmpty, 1);
            } else {
                DeleteField(special);
                ValidField(special, 1);
                Warrning(special.name, '', 0);
            }
        } else {
            AddField(special);
            ValidField(special, 0);
            Warrning(special.name, fieldEmpty, 1);
        }
    }
    
    if (e.name == 'discipline') {
        if (e.value != '') {
            if (!IsRuLat(discipline.value)) {
                AddField(discipline);
                ValidField(discipline, 0);
                Warrning(discipline.name, fieldEmpty, 1);
            } else {
                DeleteField(discipline);
                ValidField(discipline, 1);
                Warrning(discipline.name, '', 0);
            }
        } else {
            AddField(discipline);
            ValidField(discipline, 0);
            Warrning(discipline.name, fieldEmpty, 1);
        }
    }
    
    if (e.name == 'subject') {
        if (e.value != '') {
            if (!IsRuLat(subject.value)) {
                AddField(subject);
                ValidField(subject, 0);
                Warrning(subject.name, fieldEmpty, 1);
            } else {
                DeleteField(subject);
                ValidField(subject, 1);
                Warrning(subject.name, '', 0);
            }
        } else {
            AddField(subject);
            ValidField(subject, 0);
            Warrning(subject.name, fieldEmpty, 1);
        }
    }
    
    if (e.name == 'town') {
        if (e.value != '') {
            if (!IsRuLat(town.value)) {
                AddField(town);
                ValidField(town, 0);
                Warrning(town.name, townInvalid, 1);
            } else {
                DeleteField(town);
                ValidField(town, 1);
                Warrning(town.name, '', 0);
                if (e.value != '') {
                    SetCookie('ordertown', e.value);
                }
            }
        } else {
            AddField(town);
            ValidField(town, 0);
            Warrning(town.name, townInvalid, 1);
        }
    }
    
    if (e.name == 'pages') {
        if (e.value != '') {
            if (!IsNumeric(e.value)) {
                AddField(e);
                ValidField(e, 0);
                Warrning(e.name, pagesInvalid, 1);
            } else {
                DeleteField(e);
                ValidField(e, 1);
                Warrning(e.name, '', 0);
            }
        } else {
            AddField(e);
            ValidField(e, 0);
            Warrning(e.name, pagesInvalid, 1);
        }
    }
    
    if (e.name == 'email') {
        if (e.value != '') {
            if (!IsEmail(email.value)) {
                AddField(email);
                ValidField(email, 0);
                Warrning(email.name, emailInvalid, 1);
            } else {
                DeleteField(email);
                ValidField(email, 1);
                Warrning(email.name, '', 0);
                if (e.value != '') {
                    SetCookie('orderemail', e.value);
                }
            }
         } else {
            AddField(email);
            ValidField(email, 0);
            Warrning(email.name, emailInvalid, 1);
         }
    }
    
    
}

function ValidField(f, v)
{
    if (v) {
        f.style.borderColor = '#00FF00';
        f.style.backgroundColor = '#F2FDF2';
    } else {
        f.style.borderColor = '#FF0000';
        f.style.backgroundColor = '#FDF4F4';
    }
}

function Warrning(f, messg, v)
{
    var warrn = '';
    if (warrn = document.getElementById('w' + f)) {
        if (v) {
            warrn.innerHTML = messg;
            warrn.style.display = '';
            warrn.style.color = '#FF5454';
        } else {
            warrn.innerHTML = '';
            warrn.style.display = 'none';
        }
    }
}

function AddField(f)
{   
    var count = invalid.length;
    var added = true;
    for (i = 0; i < count; i++) {
        if (invalid[i] == f) {
            added = false;
            break;
        }
    }
    if (added) {
        invalid.push(f);
    }
}

function DeleteField(f)
{
    var count = invalid.length;
    for (i = 0; i < count; i++) {
        if (invalid[i] == f) {
            var x = invalid.splice(i, 1);
            break;
        }
    }
}

function GetData(frm)
{
    var val = '';
    var f   = eval('document.' + frm);
    val = GetCookie('orderfamily');
    
    if (val == null) {
        f.family.value = '';
        ValidField(f.family, 0);
    } else {
        f.family.value = val;
        ValidField(f.family, 1);
        DeleteField(f.family);
        Warrning(f.family.name, '', 0);
    }
    val = GetCookie('ordername');
    if (val == null) {
        f.name.value = '';
        ValidField(f.name, 0);
    } else {
        f.name.value = val;
        ValidField(f.name, 1);
        DeleteField(f.name);
        Warrning(f.name.name, '', 0);
    }
    val = GetCookie('ordersurname');
    if (val == null) {
        f.surname.value = '';
        ValidField(f.surname, 0);
    } else {
        f.surname.value = val;
        ValidField(f.surname, 1);
        DeleteField(f.surname);
        Warrning(f.surname.name, '', 0);
    }
    val = GetCookie('orderemail');
    if (val == null) {
        f.email.value = '';
        ValidField(f.email, 1);
    } else {
        f.email.value = val;
        ValidField(f.email, 1);
        DeleteField(f.email);
        Warrning(f.email.name, '', 0);
    }
    val = GetCookie('orderphone');
    if (val == null) {
        f.phone.value = '';
        ValidField(f.phone, 1);
    } else {
        f.phone.value = val;
        ValidField(f.phone, 1);
        DeleteField(f.phone);
        Warrning(f.phone.name, '', 0);
    }
    val = GetCookie('ordertown');
    if (val == null) {
        f.town.value = '';
        ValidField(f.town, 1);
    } else {
        f.town.value = val;
        ValidField(f.town, 1);
        DeleteField(f.town);
        Warrning(f.town.name, '', 0);
    }
}
