jQuery(document).ready(function($) {

    var month_sel = $("select[name$='_month']"),
        year_sel = $("select[name$='_year']"),
        default_month, default_year;

    var now = new Date();
    var current_month = now.getMonth() + 1; //jan = 0
    //Usually, export concerns previous month, so we select it as the default

    if (current_month == 1) {
        default_month = 12;
        default_year = now.getFullYear() - 1;
    } else {
        default_month = current_month - 1;
        default_year = now.getFullYear();
    }

    month_sel.find("option[value='" + default_month + "']").attr('selected', 'selected');
    year_sel.find("option[value='" + default_year + "']").attr('selected', 'selected');

    function wait_for_odoo_export_file (export_id, url) {
        openWaiting('La demande de génération du document Odoo avec toutes les lignes comptables est lancée.<br/>Cela peut prendre plusieurs minutes.');
        $.ajax({url : url + '?phase=1&export_id='+export_id,
            dataType :'json'
        })
            .done(function(rData) {
                if (rData.response) {
                    newWaitingMessage('Le document Odoo est terminé.<br/>Les ventes journalières sont compilées et les identifiants de coop. substitués.');
                    $.ajax({url : url + '?phase=2&export_id='+export_id+ '&final_format=' + $('[name="final_format"]').val(),
                        dataType :'json'
                    })
                        .done(function(rData) {
                            if (rData.response && rData.response.file_path) {
                                var download_link = $('<a>').attr('href', '/' + rData.response.file_path)
                                    .text('Télécharger le fichier');

                                $('form').hide();
                                if (rData.response.sells_total) {
                                    var preambule = $('<p>').html('A titre indicatif:');
                                    var vente_ht = $('<p>').html('Ventes H.T: <strong>' + parseFloat(rData.response.sells_total).toFixed(2) + '</strong> € ');
                                    var tva = $('<p>').html('TVA sur ventes: <strong>' + parseFloat(rData.response.vat_total).toFixed(2) + '</strong> € ');

                                    $('body')
                                        .append(preambule)
                                        .append(vente_ht)
                                        .append(tva)
                                        .append(download_link);
                                } else {
                                    $('body').append(download_link);
                                }
                            }
                            closeWaiting();
                        });
                }

            });
    }

    $('form').submit(function() {
        var form = $(this);
        var month = month_sel.val();
        var year = year_sel.val();

        if (month > 0 && year > 0 && is_time_to('request_compta', 120000)) {
            month = new String(month).pad('0', 2);
            data = {'from': year + '-' + month + '-01',
                'to': year + '-' + month + '-' + new Date(year, month, 0).getDate()
            };
            url = form.attr('action');
            post_form(url, data, function(error, rData) {
                if (rData.response && !isNaN(rData.response))
                    wait_for_odoo_export_file(rData.response, url);
                else
                    alert("L'export ne peut pas se faire, merci de contacter le service informatique.");
            });

        } else {
            if (month > 0 && year > 0) {
                alert('Délai trop court entre 2 demandes...');
            } else {
                alert('La sélection du mois n\'est pas valable');
            }
        }
        //always return false because form is processed through ajax call
        return false;

    });
});
