var  inquireSend  =  new  (function(){

    var _this  =  this;

    this.addField  =  (function(name){

    $('#'+name+'Container').html('<input type="text" class="input"'+
                                  'name="'+name+'Add"'+
                                  'id="'+name+'Add" value="" />');
    $('#'+name+'Add').get(0).focus();
});

    /**
     * Данные для отправки
     */
    this.postData  =  {};

    /**
     * Список полей для отправки
     */
    this.fields  =  ['model', 'concreteModel', 'modelAdd', 'type', 'typeAdd', 'vin',
                     'list', 'kpp', 'engine', 'hidro', 'cond', 'name',
                     'email', 'contacts', 'comments', 'autoDataType', 'catalogNumber', 'destanation'];

    /**
     * Отрисовываем модели для марки
     */
    this.drowModels  =  function(models){
        $('#concreteModel > option').remove();
        $('#concreteModel').removeAttr('disabled');

        $('<option>').text('не важно').appendTo('#concreteModel');

        for(var i in models){
            var year  =  models[i];
            $('<option>').attr('value', i)
                .html(i+' &mdash; '+year)
                .appendTo('#concreteModel');
        }
    }

    this.blockModels  =  (function(){
        $('#concreteModel > option').remove();
        $('#concreteModel').attr('disabled', 'disabled');
        $('<option>').text('Выберите марку').appendTo('#concreteModel');
    });

    this.init  =  (function(){
        $("body").ready(function(){
            $("#inquireSend").click(function(){
                inquireSend.prepareData();
                inquireSend.sendData();
            });

            $("#model").change(function(){

                if(this.value == 1){
                    inquireSend.addField('model');
                    _this.blockModels();
                }
                else if(models[this.value]){
                    _this.drowModels(models[this.value]);
                }
                else{
                    _this.blockModels();
                }
                
                $('#model-year').text(' ');
            });

            $("#type").change(function(){
                $("#type option:selected").each(function(){
                    if(this.value == 1){
                        inquireSend.addField('type');
                    }
                });
            });
            /*
             * Закомментированный код выводил рядом с моделями дату(перенесена
             * в select)
             * Убрано 31.03.2010.
             * Если через месяц не передумают, удалить.
             *
            $('#concreteModel').change(function(){
                if(models[$('#model').attr('value')]
                    && models[$('#model').attr('value')][this.value]){
                    $('#model-year').text(models[$('#model').attr('value')][this.value]);
                }
                else{
                    $('#model-year').text(' ');
                }
            });
            */
            $('#model').change();
        });
    });


    /**
     * Подготавливаем данные для отправки
     */
    this.prepareData  =  (function(){
        for(var i  in  this.fields){
            var  value  =  $("#"+this.fields[i]).attr('value');
            if(!value){
                value = '';
            }

            this.postData[this.fields[i]]  = value;
        }

        if($('#catalogList').css('display') == 'block'){
            this.postData['list']  =  Basket.toString();
        }
    });


    /**
     * Отправляем запрос на сервер для доб. пользователя
     */
    this.sendData  =  (function(){
        var url =  '/zapros/send/';

        this.hideErrors();

        $.ajax(
        {
            type: "POST",
            url:  url,
            dataType: "json",
            data:  this.postData,
            success:  function(data){
                inquireSend.view(data);
            }
        });
    });


    /**
     * Отображаем ошибки или же сообщение что все хорошо
     */
    this.view  =  (function(data){
        if(data['success'] == false){
            this.showErrors(data['errors']);
        }
        else{
            $('#content').html('<p style="text-align: center; margin-top: 4%;">Спасибо за Вашу заявку. В ближайшее время с Вами свяжутся</p>');
        }
    });


    /**
     * Отображаем ошибки
     *
     */
    this.showErrors  =  (function(errors){
        for(var i in errors){
            $('#'+i+'Error').html('<span>'+errors[i]+'</span>').show('fast');
            $('#'+i).attr('class', 'error input');
        }
    });


    /**
     * Скрываем ошибки
     */
    this.hideErrors  =  (function(){
       for(var i in this.fields){
           $('#'+this.fields[i]).attr('class', 'input');
           $('#'+this.fields[i]+'Error').hide('fast');
       }
    });
});

inquireSend.init();
