Ext.onReady(function() {
    Ext.get('fe-submit').on('click', function() {          

        
    
    
    
        //Составляем карту валидации !!!редачить нужно здесь!!!
        var vMap = {
            notnull: ['fio', 'email', 'tel'],      //Те поля которые не пустые
            email: ['email'],                      //Те поля которые мыло
            phone: ['tel']                         //Те поля которые телефон
        }
        var feedbackphp = '/feedback/feedback.php';          //Урла пхп скрипта по отправке формы на мыло
      
        
        
        
        
        
        //Ниже ничего редачить не желательно
        var validation = {
            notnull: /\S/,
            phone: /^[+0-9 \(\)\-]+$/,
            email: /^[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]{1,50}@[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]{1,50}$/
        }
        var d = {};
        Ext.select('input,select,textarea', false, 'fe-form').each(function() {
            if (this.getAttribute('type') == 'radio') {
                if (this.getAttribute('checked'))
                    d[this.getAttribute('name')] = this.getValue(); 
            }
            else
                d[this.getAttribute('name')] = this.getValue();
        });  
        var g = null;
        for (var i = 0; i < vMap.notnull.length; i++) {
            var f = vMap.notnull[i];
            if ( !validation.notnull.test(d[f]) ) {
                Ext.get('fe-'+f).show();
                Ext.get('fe-'+f).dom.innerHTML = 'Пожалуйста, заполните поле!';
                g = 'Вы не заполнили все необходимые поля.';  
            }
            else {
                Ext.get('fe-'+f).setStyle('display', 'none');
            } 
        }
        if (!g) {
            for (var i = 0; i < vMap.phone.length; i++) {
                var f = vMap.phone[i];            
                if ( !validation.phone.test(d[f]) ) {
                    Ext.get('fe-'+f).show();
                    Ext.get('fe-'+f).dom.innerHTML = 'Неправильный номер телефона!';
                    g = 'Не все поля зополнены правильно.';  
                }
                else {
                    Ext.get('fe-'+f).setStyle('display', 'none');
                }
            }             
            for (var i = 0; i < vMap.email.length; i++) {
                var f = vMap.email[i];
                if ( !validation.email.test(d[f]) ) {
                    Ext.get('fe-'+f).show();
                    Ext.get('fe-'+f).dom.innerHTML = 'Неправильный электронный адрес!';
                    g = 'Не все поля зополнены правильно.';  
                }
                else {
                    if (!g) Ext.get('fe-'+f).setStyle('display', 'none');
                }
            }
        } 
        if (g) {
            Ext.get('fe-global').show();
            Ext.get('fe-global').dom.innerHTML = g;
        }
        else {
            Ext.get('fe-global').setStyle('display', 'none');
        }

        if (!g) {
            Ext.get('fe-submit').dom.value = 'Отправка...';
            Ext.get('fe-submit').dom.disabled = true;
            Ext.get('fe-submit').setStyle('cursor', 'default');
            var okdelegate = function () {
                Ext.get('fe-ok').show();
                Ext.get('fe-ok').dom.innerHTML = 'Данные отправлены успешно.';
                Ext.get('fe-submit').dom.value = 'Отправлено';
            }
            var errdelegate = function() {
                Ext.get('fe-global').show();
                Ext.get('fe-global').dom.innerHTML = 'Ошибка отправки данных, пожалуйста повторите снова.';
                Ext.get('fe-submit').dom.value = 'Отправить';
                Ext.get('fe-submit').dom.disabled = false;
                Ext.get('fe-submit').setStyle('cursor', 'pointer');                                
            }
            Ext.Ajax.request({
                url: feedbackphp,
                params: d,
                disableCaching: true,
                success: function(conn) {
    				if (conn.statusText != 'OK') {
    					errdelegate();
    					return;
    				}
    				if (conn.responseText == 'ok') {
                        okdelegate();
                    }
                    else {
                        errdelegate();
                    }
                },
                failure: function() {
                    errdelegate();
                }
            });            
        }
    });
    
});
