/**
 * TikiCMS
 * Copyright (C) 2009, Tiki Web Inteligente Ltda.
 * @requires jQuery 1.3.2 or latter
 *
 * $Id: application_controller_fale_conosco.js 146 2010-04-15 13:35:57Z leandro $
 */

Application.Controller.FaleConosco = (function() {

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

    function index() {
    
        // Tooltip do skype e msn
        $('ul.contato li').hover(function(){
            $(this).find('.tooltip').show();
        },function (){
            $(this).find('.tooltip').hide();
        });
        

        var anotherRequestInProgress = false;

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

            if (anotherRequestInProgress) return false;

            $form = $(this);

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

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

            $.ajax({
                type: 'POST',
                url: $(this).attr('action'),
                data: $(this).serialize(),
                beforeSend: function() {
                    anotherRequestInProgress = true;
                    $form.find('.loader').show();
                },
                success: function() {
                    anotherRequestInProgress = false;
                    $form.find('.loader').hide();
                    $form.prevAll('p[class=erro], p[class=ok]').remove();
                    $form.before('<p class="ok">Contato submetido com sucesso.</p>');
                    $form.clearForm();
                    $('select[name=departamento]').val('direcao');
                },
                error: function(XMLHttpRequest, textStatus, errorThrown) {
                    anotherRequestInProgress = false;
                    $form.find('.loader').hide();
                    var errorsStr = '';
                    if (XMLHttpRequest.status == 403) {
                        var jsonErrors = eval('('+XMLHttpRequest.responseText+')');
                        var errors = [];
                        for (field in jsonErrors) {
                            errors.push(jsonErrors[field]);
                        }
                        errorsStr = errors.join('<br />');
                    }
                    else {
                        alert('Um erro inesperado ocorreu no servidor. Seu contato não foi submetido.');
                    }
                    $form.prevAll('p[class=erro], p[class=ok]').remove()
                    $form.before('<p class="erro">'+errorsStr+'</p>');
                }
            });
            return false;
        });
    }

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

