function onEventsDneExec(pk, model) {

    $('html, body').animate({
        scrollTop: $('#dne' + pk ).offset().top - window.innerHeight / 5
    }, 300);

    refreshDatePicker()

    $('#dne'+pk+" #button-id-submit-form").click(onSubmitEditForm);
    $('#dne'+pk+" .btn-close-container").click(function(){
        $(this).closest('.dne-nota').removeClass('dne-nota');
        $(this).closest('.dne-form').html('');
    });

    if (model == 'nota') {
        $('#dne'+pk+" select[name='tipo']").change(function(event) {
            var url = '';
            url = 'text/'+pk+'/nota/create?action=modelo_nota&id_tipo='+this.value;
            $.get(url).done(function( data ) {
                $('#dne'+pk+" textarea[name='texto']").val(data);
            });
        });
    }
    else if (model == 'vide') {
        $('#dne'+pk+" select[name='tipo_ta']").change(function(event) {
            var url = '';
            url = 'text/'+pk+'/vide/create?action=get_tipos&tipo_ta='+this.value;

            $('#dne'+pk+" label[for='id_tipo_model']").html('Tipos de ' + this.children[this.selectedIndex].innerHTML);


            var select = $('#dne'+pk+" select[name='tipo_model']");
            select.empty();
            $('<option value="">Carregando...</option>').appendTo(select);

            $.get(url).done(function( data ) {
                select.empty();
                for(var item in data) {
                    for (var i in data[item])
                          $('<option value="'+i+'">'+data[item][i]+'</option>').appendTo(select);
                }


            });
        });
        $('#dne'+pk+" input[name='num_norma'], "
            + '#dne'+pk+" input[name='ano_norma'], "
            + '#dne'+pk+" input[name='busca_dispositivo']"
        ).change(onChangeParamNorma);

        $('#dne'+pk+" .btn-busca").click(onChangeParamNorma);

        onChangeParamNorma();
    }
}
var onChangeParamNorma = function(event) {
    var tipo_ta = $("select[name='tipo_ta']").val();
    var tipo_model = $("select[name='tipo_model']").val();
    var num_ta = $("input[name='num_ta']").val();
    var ano_ta = $("input[name='ano_ta']").val();
    var busca_dispositivo = $("input[name='busca_dispositivo']").val();
    var dispositivo_ref = $("#id_dispositivo_ref").val();
    $('#id_dispositivo_ref').remove();

    if (dispositivo_ref == null)
        dispositivo_ref = ''

    var url = '';
    var pk = $("select[name='tipo_ta']").closest('.dne').attr('pk')

    var formData = {
        'tipo_ta'            : tipo_ta,
        'tipo_model'            : tipo_model,
        'num_ta'             : num_ta,
        'ano_ta'             : ano_ta,
        'busca'                   : busca_dispositivo,
        'tipo_form'             : 'radio',
        'initial_ref'           : dispositivo_ref
    };

    url = 'text/search';
    $('.container-busca').html('');
    insertWaitAjax('.container-busca')
    $.get(url, formData).done(function( data ) {
        $('.container-busca').html(data);
        $("input[name='dispositivo_ref']").first().prop('checked', true);
    });
}

var onSubmitEditForm = function(event) {

    var url = '';
    var model = 'nota';
    var id_edit = null;
    var id_dispositivo = $('#id_dispositivo').val();

    if (id_dispositivo == null) { // trata-se de um vide
        $('#id_dispositivo_ref').remove();
        id_dispositivo = $('#id_dispositivo_base').val();
        model='vide';
    }

    id_edit = $('#id_pk').val();
    url = 'text/'+id_dispositivo+'/'+model+'/'
    if (id_edit == null || id_edit == '')
        url += 'create';
    else
        url += id_edit+'/edit';

    console.log($('#dne'+id_dispositivo+" form").serialize());

    $.post( url, $('#dne'+id_dispositivo+" form").serialize(), function(data) {

            if (typeof data == "string") {
                if (data.indexOf('<form') >= 0) {
                    $('#dne'+id_dispositivo+' .dne-form').html(data);
                    onEventsDneExec(id_dispositivo, model);
                }
                else {
                    $('#dne'+id_dispositivo+' .dne-form').closest('.dpt').html(data)
                    onReadyNotasVides();
                    try {
                        $('html, body').animate({
                        scrollTop: $('#dne' + id_dispositivo ).offset().top - window.innerHeight / 3
                        }, 300);
                    }
                    catch(err) {
                        console.log(err.message);
                    }

                }
            }
        }
    );
}
var onDelete = function(event) {

    var model = $(event).attr('model');

    var id_dispositivo =  $(event).closest('.dn').attr('pk');
    var id_delete = $(event).attr('pk');
    var url = 'text/'+id_dispositivo+'/'+model+'/'+id_delete+'/delete';

    $.get( url, function(data) {
        $('#dne'+id_dispositivo+' .dne-form').closest('.dpt').html(data)
        onReadyNotasVides();
        }
    );
}

function getForm(_this) {

    var url = '';
    var model = $(_this).attr('model');
    var id_dispositivo = $('.dne-nota .dne-form').closest('.dne').attr('pk');
    if (id_dispositivo != null) {
        $('#dne'+id_dispositivo).removeClass('dne-nota');
        $('#dne'+id_dispositivo+' .dne-form').html('');
    }

    if (_this.className.indexOf('create') >= 0 ) {
        id_dispositivo = $(_this).attr('pk');
        url = 'text/'+id_dispositivo+'/'+model+'/create';
    }
    else if (_this.className.indexOf('edit') >= 0 ) {
        var id_edit = $(_this).attr('pk');
        id_dispositivo = $(_this).closest('.dn').attr('pk');
        url = 'text/'+id_dispositivo+'/'+model+'/'+id_edit+'/edit'
    }

    $('#dne'+id_dispositivo).addClass('dne-nota');

    $.get(url).done(function( data ) {
        $('#dne'+id_dispositivo+' .dne-form').html(data);
        onEventsDneExec(id_dispositivo, model);
    }).fail(function() {
        onReadyNotasVides();
    });
}

function onReadyNotasVides() {

        $('.dne-nota').removeClass('dne-nota');
        $('.dne-form').html('');

        $('.dne .btn-action').off();
        $('.dn .btn-action').off();

        $('.dne .btn-action, .dn .btn-action').not('.btn-nota-delete').not('.btn-vide-delete').click(function(){
            getForm(this);
        });

        $('.dn .btn-nota-delete, .dn .btn-vide-delete').click(function(){
            onDelete(this);
        });
}
$(document).ready(function() {
    onReadyNotasVides()
});