/**
 * TikiCMS
 * Copyright (C) 2009, Tiki Web Inteligente Ltda.
 * @requires jQuery 1.3.2 or latter
 *
 * $Id: application_controller_fale_conosco.js 28 2011-03-10 17:24:39Z caio $
 */

Application.Controller.FaleConosco = (function() {

    // gambiarra enquanto não consigo mandar o objeto jQuery como argumento desta função
    var $ = jQuery;

    function index() {

        $('select[name=id_cidade]').attr('disabled', true);

        $('select[name=uf]').change(function() {
            var uf = $(this).val();
            var $comboCidades = $('select[name=id_cidade]');
            if (uf == 0) {
                $comboCidades
                    .html('<option value="0">Selecione sua cidade</option>')
                    .attr('disabled', true);
                return;
            }
            $.getJSON(Application.build_url('sistema/?c=estados&m=cidades_por_estado'), { uf: uf }, function(data) {
                var options = '<option value="0">Selecione sua cidade</option>'; 
                var dataLength = data.length;
                for (i = 0; i < dataLength; i++) {
                    options += '<option value="'+data[i]['id']+'">'+data[i]['nome']+'</option>';
                }   
                $comboCidades.html(options);
                $comboCidades.attr('disabled', false);
            }); 
        });

        $('form#criar_contato').submit(function() {

            $form = $(this);

            // limpa erros anteriores
            $form.find('.error').removeClass('error');

            $form.find('p.success').hide();

            $.ajax({
                type: 'POST',
                url: $(this).attr('action'),
                data: $(this).serialize(),
                beforeSend: function() {
                    $form.find('.msg.loading').show();
                },
                success: function() {
                    $form.find('.msg.loading').hide();
                    $form.find('.msg.success').show();
                    $form.clearForm();

                    $form.find('p.success').show();

                    $('input[name=nome]').val('Nome');
                    $('input[name=email]').val('E-mail');
                    $('input[name=telefone]').val('Telefone');
                    $('input[name=celular]').val('Celular');
                    $('input[name=assunto]').val('Assunto');
                    $('textarea[name=mensagem]').val('Mensagem');

                    $('input[name=preferencia_contato][value=email]').attr('checked', true);
                    $('select[name=uf]').val(0);
                    $('select[name=id_cidade]')
                        .html('<option value="0">Selecione sua cidade</option>')
                        .attr('disabled', true);

                    $('input[name=nome]').focus();
                },
                error: function(XMLHttpRequest, textStatus, errorThrown) {
                    $form.find('.msg.loading').hide();
                    if (XMLHttpRequest.status == 403) {
                        var jsonErrors = eval('('+XMLHttpRequest.responseText+')');
                        for (field in jsonErrors) {
                            $('[name='+field+']').parent().addClass('error');
                            $('[name='+field+']').val(jsonErrors[field]);
                        }
                    }
                    else {
                        alert('Um erro inesperado ocorreu no servidor. Seu contato não foi submetido.');
                    }
                }
            });
            return false;
        });
    }

    return {
        'index': index
    };
})();

