/*
 * apoio.js
 * WIP:
 * functions e classes jscript reutilizaveis em qualquer projeto
 */

/*
 * --- checkbox ---
 */

/*
 * marca ou desmarca de acordo com o flag (true, false)
 * todos os checkboxes (com nome = name) do form (id) indicado      
 */
function jq_check_all( id, name, flag ){
        
    $("form#" + id + " INPUT[@name=" + name + "][type='checkbox']").attr('checked', flag);
    	
}
    
/*
 * de acordo com um checkbox controlador geral (checkbox_originator)
 * marca ou desmarca todos os checkboxes indicados
 */ 
function checkbox_marca_desmarca(checkbox_originator, form_name, checkbox_destinator){    	
   	var clicked = checkbox_originator.checked;
    	    	
    jq_check_all(form_name, checkbox_destinator, clicked);
    	
}


/*
 * --- Janela Modal ---
 */

/*
 * função q chama uma janela jquery modal
 * com disparo de eventos before_close e pos_close
 * para a pagina chamadora
 */
function jq_janela_modal(nomediv, width, height, botoes_tipo){
    	
    if (botoes_tipo==1){
        dic_botoes = {
    	             'Sim': function() { 
    	                 var bol_fechar=true;
                             
    	                 if(eval("typeof " + nomediv + "_botao1_preclick") == 'function'){
    	                     bol_fechar=eval(nomediv + '_botao1_preclick()');    	                		 
                         }
    	                	 
    	                 if (bol_fechar) $(this).dialog('close');
    	                	 
    	                 if(eval("typeof " + nomediv + "_botao1_posclick") == 'function'){                             
                             ret=eval(nomediv + '_botao1_posclick()');
    	                 }
    	             },
    	             'Não': function() {
    	                 $(this).dialog('close');
    	             }    	            
                     };
    }
    if (botoes_tipo==2){
        dic_botoes = {
	                 'Confirmar': function() {    	                    
                             var bol_fechar=true;
                                                          
    	                     if(eval("typeof " + nomediv + "_botao1_preclick") == 'function'){
    	                		 bol_fechar=eval(nomediv + '_botao1_preclick()');    	                		 
    	                	 }
    	                	 
    	                	 if (bol_fechar) $(this).dialog('close');
    	                	 
    	                	 if(eval("typeof " + nomediv + "_botao1_posclick") == 'function'){                             
                                 ret=eval(nomediv + '_botao1_posclick()');
    	                	 }
	                     },
	                     'Cancelar': function() {
	                     $(this).dialog('close');	                     
	                     $(this).dialog('destroy');	                     
	                     }
	            
		                 };
    	}
    	
    //abre o jq dialog
    $("#"+nomediv).dialog({
            resizable: false,
            width: width,
            height:height,
            autoOpen: false,
            modal: true,
            overlay: {
                     backgroundColor: '#000',
                     opacity: 0.5
                     },
            buttons: dic_botoes
    });
        
    $("#"+nomediv).dialog('open');    	
}

/*
 * TELA GERAL DE PESQUISA (pesq_geral_x)
 * functions classes para a tela geral de pesquisas
 * tela modal q usa um div qualquer como repositório
 * aparece ao usuario para selecionar uma ou mais opções de pesquisa
 * e selecionar um ou mais resultados da lista de resultados
 */

function pesq_geral_modal_submit(nomediv, operacao, pagina, params_url){
	
	var url = '/pesquisa_geral/';	
	var valores = new Object();
	
	url += '?vazio=1';
	if (pagina!=undefined)url += '&page=' + pagina +'&';
	if (params_url!=undefined)url += params_url;
	
	valores = {};
	valores = {'operacao': operacao,
    		   'nomediv': nomediv,
    		   'dados': JSON.stringify($("#frm_filtrar").serializeArray())
              };
    
    $.post(url, valores, function(response) {                    	
        $("#"+nomediv).html(response);
        
    }); 
}

function pesq_geral_modal(nomediv, operacao, width, height, params_url){
	
	pesq_geral_modal_submit(nomediv, operacao, params_url);
	jq_janela_modal(nomediv, width, height, 2);
    
}	

/* faz o submit de um form a um div de acordo com a acao pretendida */
function subm_div1(url, f_nome, acao, div, funcao_extra){
		
	$("#hidAcao").attr('value', acao);

	$.post(url, $('#' + f_nome).serializeArray(), function(response) {
	    $("#"+div).html(response);
	    if (funcao_extra != undefined) funcao_extra();
	});

}
