function SetCookie(cookieName,cookieValue,nDays) {
    var today = new Date();
    var expire = new Date();
    if (nDays==null || nDays==0) nDays=1;
    expire.setTime(today.getTime() + 3600000*24*nDays);
    document.cookie = cookieName+"="+escape(cookieValue)
    + ";expires="+expire.toGMTString();
}
function ReadCookie(cookieName) {
    var theCookie=" "+document.cookie;
    var ind=theCookie.indexOf(" "+cookieName+"=");
    if (ind==-1) ind=theCookie.indexOf(";"+cookieName+"=");
    if (ind==-1 || cookieName=="") return "";
    var ind1=theCookie.indexOf(";",ind+1);
    if (ind1==-1) ind1=theCookie.length;
    return unescape(theCookie.substring(ind+cookieName.length+2,ind1));
}
function insertWaitAjax(element) {
    //jQuery(element).append('
');
}
function DispostivoSearch(opts) {
    $(function() {
        var container_ds = $('body').children("#container_ds");
        if (container_ds.length > 0)
            $(container_ds).remove();
        container_ds = $('
');
        $('body').prepend(container_ds);
        var fields = $("[data-sapl-ta='DispositivoSearch']");
        fields.each(function() {
            var field = $(this);
            var data_type_selection = field.attr('data-type-selection');
            var data_field = field.attr('data-field');
            var data_function = field.attr('data-function');
            var onChangeFieldSelects = function(event) {
                if (data_type_selection == 'checkbox') {
                    var tas = field.find('input[name="ta_select_all"]'); //tas - Textos Articulados
                    tas.off();
                    tas.on('change', function(event) {
                        $(this).closest('ul').find('input[name="'+data_field+'"]').prop("checked", this.checked);
                        //$(this).prop("checked", false);
                    });
                }
                else {
                    var dpts = field.find('input');
                    dpts.off()
                    dpts.attr('type', 'hidden');
                    $('')
                        .insertBefore(dpts)
                        .append($('
');
            field.prepend(button_ds);
            var btn_open_search = $('')
                .text(opts['text_button'])
                .attr('type','button')
                .attr('class','btn btn-sm btn-modal-open');
            button_ds.append(btn_open_search);
            btn_open_search.on('click', function() {
                $.get(opts['url_form'], function(data) {
                    container_ds.html(data);
                    var modal_ds = $('#modal-ds');
                    modal_ds.find("select[name='tipo_ta']").change(function(event) {
                        var url = '';
                        url = '/ta/search_fragment_form?action=get_tipos&tipo_ta='+this.value;
                        modal_ds.find("label[for='id_tipo_model']").html('Tipos de ' + this.children[this.selectedIndex].innerHTML);
                        var select = modal_ds.find("select[name='tipo_model']");
                        select.empty();
                        $('Carregando... ').appendTo(select);
                        $.get(url).done(function( data ) {
                            select.empty();
                            for(var item in data) {
                                for (var i in data[item])
                                    select.append($("").attr('value',i).text(data[item][i]));
                            }
                            //select.change(onChangeParamTA)
                        });
                    });
                    /*modal_ds.find("input[name='num_ta'], "
                        +"input[name='ano_ta'], "
                        +"select[name='tipo_model'], "
                        +"input[name='texto_dispositivo'], "
                        +"input[name='dispositivos_internos'], "
                        +"input[name='rotulo_dispositivo']"
                    ).change(onChangeParamTA);*/
                    modal_ds.find("input[name='texto_dispositivo'], "
                        +"input[name='rotulo_dispositivo']")
                        .on('keyup', onKeyPressRotuloBuscaTextual)
                    modal_ds.find(".btn-busca").click(onChangeParamTA);
                    modal_ds.find("#btn-modal-select").click(function() {
                        // limpar selecionados se o tipo é radio
                        var listas = field.find('ul');
                        if (data_type_selection == 'radio')
                            listas.remove();
                        // adicionar itens selecionados na caixa modal
                        var selecionados = modal_ds.find('[name="'+data_field+'"]:checked');
                        // com base nos selecionados, limpa seus ta's removendo os não selecionados
                        selecionados.closest('ul').find('input:not(:checked)').filter('[name!="ta_select_all"]').closest('li').remove();
                        selecionados.closest('ul').each(function() {
                            //insere na lista de selecionados os ta's não presentes
                            var ul_lista = field.find('#'+this.id);
                            if (ul_lista.length == 0) {
                                field.append(this);
                                return;
                            }
                            //insere os dispositivos não presentes
                            var inputs_for_this = $(this).find('input');
                            inputs_for_this.each(function() {
                                if (ul_lista.find("#"+this.id).length > 0)
                                    return;
                                ul_lista.append($(this).closest('li'));
                            });
                        });
                        onChangeFieldSelects();
                        modal_ds.modal('hide');
                    });
                    modal_ds.modal('show');
                    onChangeParamTA();
                })
            });
        });
    });
}