var Contact = new function() {
    this.fullpath = '/';
    
    this.send = function() {
        var form = document.forms.send_form;
        if (form == null) return false;
        
        var param = {
            'fio':   form.fio.value,
            'email': form.email.value,
            'tel':   form.tel.value,
            'theme': form.theme.value,
            'message': form.message.value,
        };
        
        this.showMess('Отправка данных.', true);
        
        JsHttpRequest.query(
            this.fullpath+'?action=ajaxSend&cache='+Utils.getCacheValue(),
            param,
            function(result, error) {
                if (error) alert(error);
                if (result['error'].length > 0) {
                    var form = document.forms.send_form;
                    for(var i in result['error']) {
                        var err = result['error'][i];
                        switch (err) {
                            case 'fio':
                                var elem = form.fio;
                                Utils.addClassName(elem.parentNode, 'error');
                                Contact.showMess('Пожалуйста, проверьте правильность ввода');
                                break;
                            case 'email':
                                var elem = form.email;
                                Utils.addClassName(elem.parentNode, 'error');
                                Contact.showMess('Пожалуйста, проверьте правильность ввода');
                                break;
                            case 'tel':
                                var elem = form.tel;
                                Utils.addClassName(elem.parentNode, 'error');
                                Contact.showMess('Пожалуйста, проверьте правильность ввода');
                                break;
                            case 'theme':
                                var elem = form.theme;
                                Utils.addClassName(elem.parentNode, 'error');
                                Contact.showMess('Пожалуйста, проверьте правильность ввода');
                                break;
                            case 'message':
                                var elem = form.message;
                                Utils.addClassName(elem.parentNode, 'error');
                                Contact.showMess('Пожалуйста, проверьте правильность ввода');
                                break;
                            case 'send':
                                Contact.showMess('Отправка данных в данный момент невозможна');
                                break;
                        }
                    }
                } else {
                    Contact.resetForm();
                    Contact.showMess('Ваше письмо успешно отправлено.', true);
                }
            }
        );
        
        return false;
    }
    
    this.showMess = function(str) {
        var is_mess = false;
        if (arguments.length > 1) {
            if (arguments[1] == true) is_mess = true;
        }
        var div = document.getElementById('contact_mess');
        if (is_mess == true) {
            Utils.addClassName(div, 'send');
        } else {
            Utils.removeClassName(div, 'send');
        }
        div.innerHTML = str;
    }
    
    this.resetForm = function() {
        var form = document.forms.send_form;
        if (form == null) return false;
        
        form.fio.value   = this.getDefault('fio');
        form.fio.className = 'input';
        form.email.value = this.getDefault('email');
        form.email.className = 'input';
        form.tel.value   = this.getDefault('tel');
        form.tel.className = 'input';
        form.theme.value = this.getDefault('theme');
        form.theme.className = 'input';
        form.message.value = this.getDefault('message');
        form.message.className = 'textarea';
    }
    
    this.focusInput = function(elem) {
        var name = elem.name;
        var value = elem.value;
        if (value == this.getDefault(name)) {
            elem.value = '';
            elem.className = ((name == 'message') ? 'textarea2' : 'input2');
        }
        Utils.removeClassName(elem.parentNode, 'error');
    }
    
    this.blurInput = function(elem) {
        var name = elem.name;
        var value = elem.value;
        if (value == '') {
            elem.value = this.getDefault(name);
            elem.className = ((name == 'message') ? 'textarea' : 'input');
        }

    }
    
    this.getDefault = function(name) {
        if (name == 'fio') {
            return 'Вас зовут';
        }
        if (name == 'email') {
            return 'Эл. ящик';
        }
        if (name == 'tel') {
            return 'Телефон (необязательно)';
        }
        if (name == 'theme') {
            return 'Тема (необязательно)';
        }
        if (name == 'message') {
            return 'Письмо';
        }
        return '';
    }
    
    return this;
}();