/*******************************************
criação  	 : 01/2009
descricao    : Rotinas aplicáveis ao FRAMEWORK
********************************************/

/*******************************************************************************
 * ALTERA DO CONTENT TYPE DA REQUISICAO AJAX NAS CHAMADAS DO .LOAD, PARA NAO
 * HAVER PROBLEMAS DE CODIFICACAO NO IE E FF
 ******************************************************************************/
$.ajaxSetup({contentType: "application/x-www-form-urlencoded; charset=UTF-8"});

/*******************************************************************************
 * CONTROLA ABERTURA E FECHAMENTO DAS SEÇÕES
 ******************************************************************************/
$(function(){
	$(".secaoAberta").each(function() {
		$(this).fadeIn();
	});
	$(".secaoFechada").each(function() {
		$(this).fadeOut();
	});
	$('.secaoControle').click(function(){
		$(this).removeClass('secaoMaximiza');
		$(this).removeClass('secaoMinimiza');
		
		var div = $(this).parent().parent().parent().find('.secaoAbrirFechar');

		if( $(div).is(':visible') ) {
			$(div).slideUp();
			$(this).addClass('secaoMinimiza');
		} else {
			$(div).fadeIn(400);
			$(this).addClass('secaoMaximiza');
		}
		return false;
	});
});

function controlaSecao(divAtual) {
	$(divAtual).removeClass('secaoMaximiza');
	$(divAtual).removeClass('secaoMinimiza');
	
	var div = $(divAtual).parent().parent().parent().find('div');

	if( $(div).is(':visible') ) {
		$(div).slideUp();
		$(divAtual).addClass('secaoMinimiza');
	} else {
		$(div).fadeIn(400);
		$(divAtual).addClass('secaoMaximiza');
	}
	return false;
}

/*******************************************************************************
 * FUNÇÕES PARA O USUÁRIO NEGÓCIO
 ******************************************************************************/
$(function() {
	$("#usuario_complemento").click(function() {
		if ($("#usuarioperfilid").val()=="") {
			jAlert("informe o Perfil");
			$("#_usuarioperfilid").addClass("obrigatorioNaoPreenchido");
			parent.tb_remove();
		}
	});
});

$(function() {
	$("#usuarioperfilid").change(function() {
		var href = $("#usuario_complemento").attr("href");

		var inicioOcorrencia 	= href.lastIndexOf("&usuarioNegocio.usuario.perfil.id=");
		var terminoOcorrencia 	= href.length;
		var variavel			= href.substr(inicioOcorrencia, terminoOcorrencia);

		// atualiza parametros do link
		href = replaceAll(href, variavel,"&usuarioNegocio.usuario.perfil.id="+$(this).val()+"&KeepThis=true&TB_iframe=true&width=700&height=300&modal=false");

		$("#usuario_complemento").attr("href",href);
	});
});

/*******************************************************************************
 * CONTADOS PARA O TEXTAREA
 ******************************************************************************/
$( function() {
	$(".contadorTextarea").keyup(function(){
	var textarea = $(this).attr("id");
	var contador = $("input[type$=text][id^=contador_"+textarea+"]");
	var maximo = $("input[type$=text][id^=contador_"+textarea+"]").attr("maxlength");
	
	contador.val(maximo-$(this).val().length);
	
	if ($(this).val().length>=maximo) {
		jAlert("A quantidade máxima de caracteres foi excedida");
		$(this).val($(this).val().substring(0,maximo));
		contador.val(maximo-$(this).val().length);
		$(this).focus();
		return false;
	}
	});
});
/*******************************************************************************
 * ATUALIZA CAPTCHA
 ******************************************************************************/
$( function() {
	$(".linkGeraCaptcha").bind("click", function() {
		
		$(".imgGeraCaptcha").each( function() {
			$(this).load($(this).attr("id")+"/fmk/geraCaptcha.jsp?" + Math.ceil ( Math.random() * 100000 ));
		});
	});
});

/*
 * data1 - Passar data no formato dd/mm/aaaa data2 - Passar data no formato
 * dd/mm/aaaa dataTipoRetorno = 1 - data1 > data2 dataTipoRetorno = 0 - data1 =
 * data2 dataTipoRetorno = -1 - data1 < data2
 */
function validaEntreData(data1,data2) {
	var data,dia,mes,ano;
	var dataTipoRetorno = "";
	var dataHoje = new Date();
	
	dia = data1.substring(0,2);
	mes = parseInt(data1.substring(4,5)) - parseInt(1);
	ano = data1.substring(6,10);
		
	data1 = new Date(ano,mes,dia);
	data1.setHours(dataHoje.getHours(),dataHoje.getMinutes(),dataHoje.getSeconds(),dataHoje.getMilliseconds());
	
	dia = data2.substring(0,2);
	mes = parseInt(data2.substring(4,5)) - parseInt(1);
	ano = data2.substring(6,10);
	
	data2 = new Date(ano,mes,dia);
	data2.setHours(dataHoje.getHours(),dataHoje.getMinutes(),dataHoje.getSeconds(),dataHoje.getMilliseconds());
	
	if (data1.getTime() > data2.getTime()) {
		dataTipoRetorno = 1;	
	}
		
	if (data1.getTime() < data2.getTime()) {
		dataTipoRetorno = -1;	
	}

	if (data1.getTime() == data2.getTime()) {
		dataTipoRetorno = 0;
	}

	return dataTipoRetorno;
}

/*
 * dataRecebida - Passar data no formato dd/mm/aaaa dataTipoRetorno = 1 -
 * dataRecebida > hoje dataTipoRetorno = 0 - dataRecebida = hoje dataTipoRetorno =
 * -1 - dataRecebida < hoje
 */
function validaDataRecebidaDataHoje(dataRecebida) {
	if (!validaData(dataRecebida)) {
		jAlert('Verifique o preenchimento correto de campos com Data.');
	} else {
		var data,dia,mes,ano;
		var dataHoje = new Date();
		var dataTipoRetorno = "";
		
		dia = dataRecebida.substring(0,2);
		mes = parseInt(dataRecebida.substring(3,5)) - 1;
		ano = dataRecebida.substring(6,10);
			
			
		var dataComparada = new Date(ano,mes,dia);
		dataComparada.setHours(dataHoje.getHours(),dataHoje.getMinutes(),dataHoje.getSeconds(),dataHoje.getMilliseconds());
				
		if (dataComparada.getTime() > dataHoje.getTime()) {
			dataTipoRetorno = 1;	
		}
			
		if (dataComparada.getTime() < dataHoje.getTime()) {
			dataTipoRetorno = -1;	
		}
	
		if (dataComparada.getTime() == dataHoje.getTime()) {
			dataTipoRetorno = 0;
		}
	}

	return dataTipoRetorno;
}

/*******************************************************************************
 * CALCULA IDADE
 ******************************************************************************/
/**
 * nascimento: campo da data de nascimento, ex: this retono: id do elemento de
 * retorno
 */
function calculaIdade(nascimento,retorno) {

  	var idadeCalculada = 0;
  	
  	// habilita o campo de retorno
  	if (retorno!=null)
  		$('#'+retorno).attr("readonly",false);
  	
  	// Valida a data informada
	if (validaData(nascimento.value)) {
		
		var hoje = new Date();
	 	var arrayData = nascimento.value.split("/");
	 
		if (arrayData.length == 3) {

			// Decompoem a data em array
		 	var ano = parseInt( arrayData[2] );
		  	var mes = parseInt( arrayData[1] );
		  	var dia = parseInt( arrayData[0] );
	  
			// Subtrai os anos das duas datas
			var idade = ( hoje.getFullYear() ) - ano;
	
			// Subtrai os meses das duas datas
			var meses = ( hoje.getMonth() + 1 ) - mes;
	  
			// Se meses for menor que 0 entao nao cumpriu anos. Se for maior sim
			// ja cumpriu
			idade = ( meses < 0 ) ? idade - 1 : idade;    

			meses = ( meses < 0 ) ? meses + 12 : meses;
	
			idadeCalculada = idade;  	
		  	}
		}
	else {
		jAlert("Verifique o preenchimento correto de campos com data.");
		return false;
	}
	
	if (retorno!=null) {
		$('#'+retorno).attr("value",idadeCalculada);
		$('#'+retorno).attr("readonly",true);
	}
}

/*******************************************************************************
 * MANIPULA AS ABAS
 ******************************************************************************/
$(function(){
	// oculta todas as abas
	$("div.abaConteudo").hide();
	
	// mostra e seta somente a primeira aba
	$("#abaInterna a:first").addClass("selecionada");
	$("div.abaConteudo:first").show();

		// executa ação ao clicar no link de abas
		$("#abaInterna a").click(function() {
	
			// oculta todas as abas
			$("div.abaConteudo").hide();

			// tira a seleção de todas as abas
			$("#abaInterna a").removeClass("selecionada");
	
			// exibe e seta a aba selecionada
			$(this).addClass("selecionada");
			$($(this).attr("href")).fadeIn(100);
	
			return false;
		});
});
/*******************************************************************************
 * LAYOUT PARA OS FORMULÁRIOS
 ******************************************************************************/
$( function() {
	// seleciona o primeiro input do form
	$(":text:visible:enabled:first").focus();
	
	// retiras as bordas para os campos do tipo RADIO/CHECKBOX
	$('input[type$=radio],[type$=checkbox]').css({ backgroundColor:"#ffffff",border:"none" });
	
	// adiciona efeito para o campo selecionada
	$('input,textarea').focus(function () {
        
        $(this).addClass("campo_selecionado");
        $(this).addClass("campo_selecionado_obrigatorio");
    });
    
	$('input,textarea').blur(function () {
        $(this).removeClass("campo_selecionado");
        $(this).removeClass("campo_selecionado_obrigatorio");
    });
});

/*******************************************************************************
 * VALIDA SE CAPS LOCK ESTA "LIGADO"
 ******************************************************************************/
$( function() {
	$('input.verifica_capslock').keypress(function (e) {

	var w = e.which ? e.which : (e.keyCode ? e.keyCode : -1);
    var s = e.shiftKey ? e.shiftKey : (e.modifiers ? !!(e.modifiers & 4) : false);
    var c = ((w >= 65 && w <= 90) && !s) || ((w >= 97 && w <= 122) && s);
    
    if (c)
        $('span#alerta_capslock').fadeIn(400);
    else 
    	$('span#alerta_capslock').fadeOut(600);
    });
    
    $('input.verifica_capslock').blur(function () {
    	$('span#alerta_capslock').fadeOut(600);
    	});
});

/*******************************************************************************
 * EXIBE/FECHA MENSAGEM
 ******************************************************************************/
$( function() {
	mainmenu();
	if($('div#mensagem'))
		{
		$('div#mensagem').fadeIn("100");

		$('.mensagem_fechar').bind('click', function() {
				$('div#mensagem').fadeOut("500");
		    });
		}
});


/*******************************************************************************
 * MENU
 ******************************************************************************/
function mainmenu() {
	$("#menu_horizontal ul").css({display : "none"});

	$(" #menu_horizontal li").hover( 
		function() {
			$(this).find('ul:first').css({visibility : "visible",display : "none"}).show();
		}, 
		function() {
			$(this).find('ul:first').css({visibility : "hidden"});
		}
	);
}

/*******************************************************************************
 * MASCARAS
 ******************************************************************************/
$( function() {
	$("input:text").setMask();
});

$.mask.masks = $.extend($.mask.options,{attr: "tipo",autoTab:false});
$.mask.masks = $.extend($.mask.masks,{
	fone:{ mask: "(99) 9999-9999" },
	cpf:{ mask: "99999999999" },
	data:{ mask: "99/99/9999" },
	cpf:{ mask: "99999999999" },
	rg:{ mask: "*", type:"repeat"},
	dataHora:{ mask: "99/99/9999 99:99:99"},
	cnpj:{ mask: "99.999.999/9999-99" },
	cep:{ mask: "99999-999" },
	numerico:{ mask: "9",type:"repeat" },
	hora:{ mask: "29:69" },
	moeda : { mask : '99,999.999.999', type : 'reverse', defaultValue : '+000' },
	moeda8 : { mask : '99,999.99', type : 'reverse', defaultValue : '+000' },
	porcento : { mask : '999,999999999', type : 'reverse', defaultValue : '+000' },
	peso:{ mask: "999,999", type : 'reverse' },
	altura:{ mask: "9,99" },
	temperatura:{ mask: "9,9" }
});


$( function() {
	$('input[tipo$=moeda]:not([readonly])').priceFormat({
	    prefix: '',
	    centsSeparator: ',',
	    thousandsSeparator: '.'
	}); 
});

$( function() {
	$('input[tipo$=porcento]:not([readonly])').priceFormat({
	    prefix: '',
	    centsSeparator: ',',
	    thousandsSeparator: '',
	    centsLimit: 3
	    
	}); 
});

/*******************************************************************************
 * CALENDARIO
 ******************************************************************************/
$( function() {
	var caminho = $('.calendario').attr("url");
	caminho += "/fmk/imagem/calendario.gif";
	
	$('.calendario').datepick( {
		showBigPrevNext : true,
		showOn : "button",
		buttonImageOnly : true,
		buttonImage : caminho,
		changeMonth : false,
		changeYear : false,
		showStatus : true

	});
});

/*******************************************************************************
 * MONTA COMBO DE CIDADE DE ACORDO COM O ESTADO
 ******************************************************************************/
function carregarCidadesUF(comboUf,comboCidade,ibgeAtual,caminho,formId) {

	var comboUf				= parent.$("#"+comboUf);
	var comboCidade			= parent.$("#"+comboCidade);
	
	$( function() {
		comboCidade.attr("selectedIndex","0");
		
		if (comboUf.val() == "") {
			$(comboCidade).html("<option value=''>[ selecione a UF ]</option>");
			return false;
		}

		$.getJSON(caminho+"/ibge.listaporuf.ajax.logic",{"ibgeView.uf_codigo" : comboUf.val()},function(dados) {
			$(comboCidade).html("<option value=''>[ selecione uma opção ]</option>");
			
			var options = "";
			
			$.each(dados.listaporuf, function(i, item) {
				
				// na edição, seleciona a cidade atual
				var selecionado = "";
				if (ibgeAtual==item.ibge_codigo)
					selecionado = "selected";
				
				$(comboCidade).append("<option "+selecionado+" value=" + item.ibge_codigo+ ">" + item.ibge_cidade+ "</option>");
				});
			});

	
		});
}

/*******************************************************************************
 * MONTA COMBO DE CIDADE DE ACORDO COM A GVS
 ******************************************************************************/
function carregarCidadesGVS(comboGvs,comboCidade,ibgeAtual, caminho, url) {

	var comboGvs			= $("#"+comboGvs);
	var comboCidade			= $("#"+comboCidade);	
	$( function() {
		comboCidade.attr("selectedIndex","0");
		
		if (comboGvs.val() == "") {
			$(comboCidade).html("<option value=''>[ selecione a GVS ]</option>");
			return false;
		}

		$.ajaxSetup({ cache: false });
		$.getJSON(caminho+"/"+url,{"ibgeRelacaoView.gvs_codigo" : comboGvs.val()},function(dados) {
			$(comboCidade).html("<option value=''>[ selecione uma opção ]</option>");
			
			var options = "";			
			$.each(dados.listaporgvs, function(i, item) {
				
				// na edição, seleciona a cidade atual
				var selecionado = "";
				if (ibgeAtual==item.ibge_codigo)
					selecionado = "selected";
				
				$(comboCidade).append("<option "+selecionado+" value=" + item.ibge_codigo+ ">" + item.ibge_cidade+ "</option>");
				});
			});	
		});
}

/*******************************************************************************
 * RETORNA OS DADOS DO ENDEREÇO DE ACORDCO COM O CEP INFORMADO
 ******************************************************************************/
function carregaEnderecoCep(campoCep,caminho) {

	
	// identifica a chave para os campos que compem o endereço
	var cep = parent.$("#"+campoCep).attr("id");
	
	var chave = replaceAll(cep, 'cep','');

	cep = replaceAll(parent.$("#"+campoCep).val(), '-','');
	cep = replaceAll(cep, '_','');
	
	var cpLogradouro 		= parent.$("#"+chave+"logradouro");
	var cpBairro 			= parent.$("#"+chave+"bairro");
	var cpTipoLogradouro	= parent.$("#"+chave+"tipo_logradouro");
	var cpUf				= parent.$("#"+chave+"uf");
	var cpCidade			= parent.$("#"+chave+"ibge_codigo");
	
	// zera as variáveis
	cpLogradouro.val("");
	cpBairro.val("");
	cpTipoLogradouro.attr("selectedIndex","0");
	cpUf.attr("selectedIndex","0");
	// verifica se existe o campo do estado
	if(cpUf.val() != null) {		
		cpCidade.html("<option value=''>[ selecione a UF ]</option>");
	}
		
	if (typeof cep != 'undefined') {
		
			if (cep.length>="8"){
				$( function() {
					$.getJSON(caminho+"/cep.listacep.ajax.logic",{"cepView.cep" : cep},	function(dados) {
			
						if (dados.listacep!=null) {
							cpLogradouro.val(dados.listacep.logradouro);
							cpBairro.val(dados.listacep.bairro);
							
							// lista os tipos de logradouro disponíveis e
							// seleciona de acordo com o retorno
							parent.$("#"+chave+"tipo_logradouro option").each(function() {
								if (dados.listacep.tipo_logradouro == this.text) {
									$(this).attr("selected","selected");
								}
							});
		
							// lista as UFs disponíveis e seleciona de acordo
							// com o retorno
							parent.$("#"+chave+"uf option").each(function() {
								if (dados.listacep.uf_codigo == this.text) {
									$(this).attr("selected","selected");
									// carrega as cidades de acordo com a UF
									// selecionada
									carregarCidadesUF(chave+'uf',chave+'ibge_codigo','',caminho);
								}
							});
		
							
							// lista as Cidades disponíveis e seleciona de
							// acordo com o retorno
							// timeout necessário para aguardar o combo ser
							// carregado
							setTimeout(function(){
								parent.$("#"+chave+"ibge_codigo option").each(function() {
								if (dados.listacep.ibge_cidade.toUpperCase() == this.text) {
									$(this).attr("selected","selected");
								}
							});
							},500);
						}
					});
				});
			}
	}
}

/*******************************************************************************
 * TROCA TODAS AS OCORRENCIAS DE UMA STRING
 ******************************************************************************/
function replaceAll(string, token, newtoken) {
	var stringFormatada = ""+string; // evita erros se o valor passado for
										// numérico
	
	if (typeof stringFormatada != 'undefined') {
		while (stringFormatada.indexOf(token) != -1) {
			stringFormatada = stringFormatada.replace(token, newtoken);
		}
		
		return stringFormatada;
	} else {
		return "";
	}
}

/*******************************************************************************
 * CAMPOS DE SELEÇÃO MÚLTIPLA
 ******************************************************************************/
$(function() {
if ($('.select_multiplo_dis_cont'))
	{
	$('.select_multiplo_dis_cont').multiSelect('.select_multiplo_sel_cont', {trigger: '#options_direita'});
	$('.select_multiplo_sel_cont').multiSelect('.select_multiplo_dis_cont', {trigger: '#options_esquerda'});

	$('#options_esquerda_todos').click(function()
	{$('.select_multiplo_sel_cont').multiSelect('.select_multiplo_dis_cont', {trigger: '#options_esquerda_todos',todos_esquerda:true});});

	$('#options_direita_todos').click(function()
	{$('.select_multiplo_dis_cont').multiSelect('.select_multiplo_sel_cont', {trigger: '#options_direita_todos',todos_esquerda:true});});
	}
});

/*******************************************************************************
 * CAMPOS DE SELEÇÃO MÚLTIPLA TRIPLA
 ******************************************************************************/
$(function() {
	if ($('.select_multiplo_triplo_dis_cont'))
		{
		$('.select_multiplo_triplo_dis_cont').multiSelect('.select_multiplo_triplo_sel_cont', {trigger: '#options_direita'});
		$('.select_multiplo_triplo_sel_cont').multiSelect('.select_multiplo_triplo_dis_cont', {trigger: '#options_esquerda'});

		$('#options_esquerda_todos').click(function()
		{$('.select_multiplo_triplo_sel_cont').multiSelect('.select_multiplo_triplo_dis_cont', {trigger: '#options_esquerda_todos',todos_esquerda:true});});

		$('#options_direita_todos').click(function()
		{$('.select_multiplo_triplo_dis_cont').multiSelect('.select_multiplo_triplo_sel_cont', {trigger: '#options_direita_todos',todos_esquerda:true});});
		}
	});

function carregarAcoesFuncionalidade(listaFuncionalidades, listaAcoes, perfil, caminho) {
	
	var valorFuncionalidade 	= $("#"+listaFuncionalidades).val();
	var listaAcoes 				= $("#"+listaAcoes);	
	var valorPerfil				= $("#"+perfil).val();
	var array = new Array();
	
	if (valorPerfil=="" || typeof valorPerfil=='undefined') {
		valorPerfil = "";
	}
	
	$(listaAcoes).children().remove();
	$(listaAcoes).append("<option value=''>carregando...</option>");
	$( function() {		
			$.getJSON(caminho+"/acaoFuncionalidadeNegocio.pesquisaAjax.ajax.logic?acaoFuncionalidadeNegocio.funcionalidadeNegocio.id="+valorFuncionalidade+"&perfilId="+valorPerfil, function(dados) {				
				$(listaAcoes).children().remove();
				$.each(dados.acaoFuncionalidadeNegocios, function(i, item) {
						$(listaAcoes).append("<option value=" + item.id+ ">" + item.nome+ "</option>");
                });
             });
		// });
        });
}

/*******************************************************************************
 * CARREGA JANELAS PAI
 ******************************************************************************/
function recarregaPai() {
	/*
	 * carrega a janela pai,ex: window.onunload = recarregaPai; essa função é
	 * desnecessária para o IE, porém no Firefox não aceita que se chame direto
	 * ex: parent.location.reload();
	 */
	parent.location.reload();
}

/*******************************************************************************
 * FUNCIONALIDADE PARA MARCAR E DESMARCAR TODAS AS CHECKBOXES COM A CLASS
 * checkboxes_list
 ******************************************************************************/
$(function() {
	$('#marcar_todas').click(function() {
		$('.checkboxes_list').attr({checked: 'checked'});
	});

	$('#desmarcar_todas').click(function() {
		$('.checkboxes_list').removeAttr('checked');
	});
});

/*******************************************************************************
 * PESQUISA DE CNES
 ******************************************************************************/
/**
 * retorno: id para identificar o elemento de retorno url: caminho do arquivo
 * para pesquisa evento: define se a pesquisa poderá ser feita durante a
 * digitação
 */
function pesquisaCnes(retorno,url,evento) {
	$("#"+retorno+"_resultado").html("");


	if (evento=="" || typeof evento == "undefined") {
		/* um parametro deve ser informado para pesquisa */
		if ($("#"+retorno+"_codigo_pesquisa").val()=="" && $("#"+retorno+"_descricao_pesquisa").val()=="") {
			jAlert("Informe um parâmetro para realizar a pesquisa\n\n- Código com no mínimo 3 caracteres\n- Estabelecimento com no mínimo 5 caracteres ");
			return false;
		}
		
		/* limite mínimo de caracteres */
		if ($("#"+retorno+"_codigo_pesquisa").val().length<3 && $("#"+retorno+"_descricao_pesquisa").val().length<5) {
			jAlert("Informe um parâmetro para realizar a pesquisa\n\n- Código com no mínimo 3 caracteres\n- Estabelecimento com no mínimo 5 caracteres ");
			return false;
		}
	} else {
		/* o nome deve conter 5 caracteres */
		if ($("#"+retorno+"_codigo_pesquisa").val().length<3 && $("#"+retorno+"_descricao_pesquisa").val().length<5) {
			return false;
		}
	}
	
	$("#"+retorno+"_resultado").html("<img src='../fmk/imagem/carregando.gif' border='0' align='center'>");

	$.getJSON(
			url,
			{
			"cnesView.cnes_codigo" : $("#" + retorno + "_codigo_pesquisa").val(),
			"cnesView.cnes_estabelecimento" : $("#" + retorno + "_descricao_pesquisa").val()
			},
		
	function(dados) {
	
		resultado =	"<table border='0' width='100%' class='displaytag'>";
		resultado +=	"<th width='70px' align='left' class='painel_titulo_displaytag'>C&oacute;digo</th>";
		resultado +=	"<th align='left' class='painel_titulo_displaytag'>Estabelecimento</th>";
	
		if (dados.listacnes=="")
			resultado += "<tr><td colspan='2'>A consulta n&atilde;o retornou resultados</td></tr>";
	
		$.each(dados.listacnes, function(i, item) {
			var cor="odd";
			if(i%2 == 1) {
				cor="even";
			}
			resultado +="<tr class='"+cor+"'>";
			resultado +=	"<td><a style='text-decoration:underline;' href='javascript:retornaCnes("+"&quot;"+retorno+"&quot;"+","+"&quot;"+item.cnes_codigo+"&quot;"+","+"&quot;"+item.cnes_estabelecimento+"&quot;"+")'>"+item.cnes_codigo+"</a></td>";
			resultado +=	"<td><a style='text-decoration:underline;' href='javascript:retornaCnes("+"&quot;"+retorno+"&quot;"+","+"&quot;"+item.cnes_codigo+"&quot;"+","+"&quot;"+item.cnes_estabelecimento+"&quot;"+")'>"+item.cnes_estabelecimento+"</a></td>";
			resultado +="</tr>";
		});
		
		resultado += "</table>";
	
		$("#"+retorno+"_resultado").html(resultado);
	});
}

/*******************************************************************************
 * RETORNA CNES
 ******************************************************************************/
/**
 * retorno: id para identificar o elemento de retorno
 */
function retornaCnes(retorno,codigo,descricao) {
	parent.$("#"+retorno+"_codigo").attr("value",codigo);	
	parent.$("#"+retorno+"_descricao").attr("value",descricao);
	
	parent.tb_remove();
}

/*******************************************************************************
 * PESQUISA DE CID
 ******************************************************************************/
/**
 * retorno: id para identificar o elemento de retorno url: caminho do arquivo
 * para pesquisa evento: define se a pesquisa poderá ser feita durante a
 * digitação
 */

function pesquisaCid(retorno,url,evento) {

	$("#"+retorno+"_resultado").html("");

	if (evento=="") {
		/* um parametro deve ser informado para pesquisa */
		if ($("#"+retorno+"_codigo_pesquisa").val()=="" && $("#"+retorno+"_descricao_pesquisa").val()=="") {
			jAlert("Informe um parâmetro para realizar a pesquisa\n\n- Código com no mínimo 3 caracteres\n- Estabelecimento com no mínimo 5 caracteres ");
			return false;
		}
		
		/* limite mínimo para doença e código */
		if ($("#"+retorno+"_codigo_pesquisa").val().length<3 && $("#"+retorno+"_descricao_pesquisa").val().length<5) {
			jAlert("Informe um parâmetro para realizar a pesquisa\n\n- Código com no mínimo 3 caracteres\n- Estabelecimento com no mínimo 5 caracteres ");
			return false;
		}
	} else {
		/* limite mínimo para doença e código */
		if ($("#"+retorno+"_codigo_pesquisa").val().length<3 && $("#"+retorno+"_descricao_pesquisa").val().length<5) {
			return false;
		}
	}
	
	$("#"+retorno+"_resultado").html("<img src='../fmk/imagem/carregando.gif' border='0' align='center'>");

	$.getJSON(
			url,
			{
			"cidView.cid_codigo" : $("#" + retorno + "_codigo_pesquisa").val(),
			"cidView.cid_doenca" : $("#" + retorno + "_descricao_pesquisa").val()
			},
		
	function(dados) {
	
		resultado =	"<table border='0' width='100%'>";
		resultado +=	"<th width='70px' align='left'>C&oacute;digo</th>";
		resultado +=	"<th align='left'>Doença</th>";
	
		if (dados.listacid=="")
			resultado += "<tr><td colspan='2'>A consulta n&atilde;o retornou resultados</td></tr>";
	
		$.each(dados.listacid, function(i, item) {
			resultado +="<tr>";
			resultado +=	"<td><a style='text-decoration:underline;' href='javascript:retornaCid("+"&quot;"+retorno+"&quot;"+","+"&quot;"+item.cid_codigo+"&quot;"+","+"&quot;"+item.cid_doenca+"&quot;"+")'>"+item.cid_codigo+"</a></td>";
			resultado +=	"<td><a style='text-decoration:underline;' href='javascript:retornaCid("+"&quot;"+retorno+"&quot;"+","+"&quot;"+item.cid_codigo+"&quot;"+","+"&quot;"+item.cid_doenca+"&quot;"+")'>"+item.cid_doenca+"</a></td>";
			resultado +="</tr>";
		});
		
		resultado += "</table>";
	
		$("#"+retorno+"_resultado").html(resultado);
	});
}

/*******************************************************************************
 * RETORNA CID
 ******************************************************************************/
/**
 * retorno: id para identificar o elemento de retorno
 */
function retornaCid(retorno,codigo,descricao) {
	parent.$("#"+retorno+"_codigo").attr("value",codigo);	
	parent.$("#"+retorno+"_descricao").attr("value",descricao);
	
	parent.tb_remove();
}

/*******************************************************************************
 * RETORNA NUMERO DO TIPO DE LOGRADOURO
 ******************************************************************************/

function retornaTipoLogradouro(tipo_logradouro) {
	if(tipo_logradouro.toLowerCase() == "av" || tipo_logradouro.toLowerCase() == "avenida") {
		return "5";
	}
	else if (tipo_logradouro.toLowerCase() == "r" || tipo_logradouro.toLowerCase() == "rua") {
		return "34";
	}
	else if (tipo_logradouro.toLowerCase() == "al" || tipo_logradouro.toLowerCase() == "alameda") {
		return "3";
	}
	else if (tipo_logradouro.toLowerCase() == "estrada") {
		return "14";
	}
	else if (tipo_logradouro.toLowerCase() == "rodovia") {
		return "33";
	}
	else if (tipo_logradouro.toLowerCase() == "quadra") {
		return "30";
	}
	else if (tipo_logradouro.toLowerCase() == "travessa") {
		return "37";
	}
	else if (tipo_logradouro.toLowerCase() == "residencial") {
		return "32";
	}
	else if (tipo_logradouro.toLowerCase() == "aeroporto") {
		return "2";
	}
	else if (tipo_logradouro.toLowerCase() == "área" || tipo_logradouro.toLowerCase() == "area") {
		return "4";
	}	
	else if (tipo_logradouro.toLowerCase() == "campo") {
		return "6";
	}
	else if (tipo_logradouro.toLowerCase() == "chácara" || tipo_logradouro.toLowerCase() == "chacara") {
		return "7";
	}
	else if (tipo_logradouro.toLowerCase() == "colônia" || tipo_logradouro.toLowerCase() == "colonia") {
		return "8";
	}	
	else if (tipo_logradouro.toLowerCase() == "condomínio" || tipo_logradouro.toLowerCase() == "condominio") {
		return "value","9";
	}
	else if (tipo_logradouro.toLowerCase() == "conjunto") {
		return "10";
	}
	else if (tipo_logradouro.toLowerCase() == "distrito") {
		return "11";	}
	
	else if (tipo_logradouro.toLowerCase() == "esplanada") {
		return "12";
	}
	else if (tipo_logradouro.toLowerCase() == "estacao" || tipo_logradouro.toLowerCase() == "estação") {
		return "13";
	}
	else if (tipo_logradouro.toLowerCase() == "favela") {
		return "15";
	}	
	else if (tipo_logradouro.toLowerCase() == "fazenda") {
		return "16";
	}
	else if (tipo_logradouro.toLowerCase() == "feira") {
		return "17";
	}
	else if (tipo_logradouro.toLowerCase() == "jardim") {
		return "18";
	}	
	else if (tipo_logradouro.toLowerCase() == "ladeira") {
		return "19";
	}	
	else if (tipo_logradouro.toLowerCase() == "lago") {
		return "20";
	}
	else if (tipo_logradouro.toLowerCase() == "lagoa") {
		return "21";
	}	
	else if (tipo_logradouro.toLowerCase() == "largo") {
		return "22";
	}
	else if (tipo_logradouro.toLowerCase() == "loteamento") {
		return "23";
	}	
	else if (tipo_logradouro.toLowerCase() == "morro") {
		return "24";
	}
	else if (tipo_logradouro.toLowerCase() == "núcleo" || tipo_logradouro.toLowerCase() == "nucleo") {
		return "25";
	}
	else if (tipo_logradouro.toLowerCase() == "parque") {
		return "26";	
	}	
	else if (tipo_logradouro.toLowerCase() == "passarela") {
		return "27";
	}
	else if (tipo_logradouro.toLowerCase() == "pátio" || tipo_logradouro.toLowerCase() == "patio") {
		return "28";
	}	
	else if (tipo_logradouro.toLowerCase() == "praça" || tipo_logradouro.toLowerCase() == "praca") {
		return "29";
	}	
	else if (tipo_logradouro.toLowerCase() == "recanto") {
		return "31";
	}
	else if (tipo_logradouro.toLowerCase() == "setor") {
		return "35";	
	}	
	else if (tipo_logradouro.toLowerCase() == "sítio" || tipo_logradouro.toLowerCase() == "sitio") {
		return "36";
	}	
	else if (tipo_logradouro.toLowerCase() == "trecho") {
		return "38";
	}	
	else if (tipo_logradouro.toLowerCase() == "trevo") {
		return "39";
	}
	else if (tipo_logradouro.toLowerCase() == "vale") {
		return "40";
	}
	else if (tipo_logradouro.toLowerCase() == "vereda") {
		return "41";	
	}	
	else if (tipo_logradouro.toLowerCase() == "via") {
		return "42";
	}
	else if (tipo_logradouro.toLowerCase() == "viaduto") {
		return "43";
	}
	else if (tipo_logradouro.toLowerCase() == "viela") {
		return "44";
	}
	else if (tipo_logradouro.toLowerCase() == "via") {
		return "45";
	}
	else {
		return "1";
	}
}

/*******************************************************************************
 * CONFIGURAÇÕES DE AUTENTICAÇÃO
 ******************************************************************************/
/* controla quais os campos devem ser exibidos */
$(function() {
	
	if ($("input[name='autenticacao.modoAutenticacao']:checked").length > 0) {
		modosDeAutenticacao($("input[name='autenticacao.modoAutenticacao']:checked").val());
	}

	$("input[name='autenticacao.modoAutenticacao']").change(function() {
		modosDeAutenticacao($(this).val());
	});
	
});

function modosDeAutenticacao(tipo) {
	/* controla as divs e campos obrigatórios */
	$('#configuracoes_senha').hide();
	$('#opcoes_autenticacao').hide();
	$('#ldap').hide();
	$('#ad').hide();

	$("#_autenticacaotipoSenhaSistema").removeClass('obrigatorio');
	$("#_autenticacaotipoSenhaSistema").removeClass('obrigatorioNaoPreenchido');
	$("#autenticacaotipoSenhaSistema").removeClass('obrigatorio');

	$("#_autenticacaomodificarDadosPessoais").removeClass('obrigatorio');
	$("#_autenticacaomodificarDadosPessoais").removeClass('obrigatorioNaoPreenchido');
	$("#autenticacaomodificarDadosPessoais").removeClass('obrigatorio');

	$("#_autenticacaosolicitarAcessoSemRede").removeClass('obrigatorio');
	$("#_autenticacaosolicitarAcessoSemRede").removeClass('obrigatorioNaoPreenchido');
	$("#autenticacaosolicitarAcessoSemRede").removeClass('obrigatorio');
	
	$("#_autenticacaoenderecoServidorAd").removeClass('obrigatorio');
	$("#_autenticacaoenderecoServidorAd").removeClass('obrigatorioNaoPreenchido');
	$("#autenticacaoenderecoServidorAd").removeClass('obrigatorio');
	
	$("#_autenticacaodominioServidorAd").removeClass('obrigatorio');
	$("#_autenticacaodominioServidorAd").removeClass('obrigatorioNaoPreenchido');
	$("#autenticacaodominioServidorAd").removeClass('obrigatorio');
	
	$("#_autenticacaoenderecoServidorLdap").removeClass('obrigatorio');
	$("#_autenticacaoenderecoServidorLdap").removeClass('obrigatorioNaoPreenchido');
	$("#autenticacaoenderecoServidorLdap").removeClass('obrigatorio');
	
	$("#_autenticacaodominioServidorLdap").removeClass('obrigatorio');
	$("#_autenticacaodominioServidorLdap").removeClass('obrigatorioNaoPreenchido');
	$("#autenticacaodominioServidorLdap").removeClass('obrigatorio');
	

	
	switch (tipo) {
	case "1": // Framework
		$('#configuracoes_senha').show();
		$("#_autenticacaotipoSenhaSistema").addClass('obrigatorio');
		$("#autenticacaotipoSenhaSistema").addClass('obrigatorio');
		break;
	case "2": // LDAP
		$('#ldap').show();
		$('#opcoes_autenticacao').show();

		$("#_autenticacaomodificarDadosPessoais").addClass('obrigatorio');
		$("#autenticacaomodificarDadosPessoais").addClass('obrigatorio');

		$("#_autenticacaosolicitarAcessoSemRede").addClass('obrigatorio');
		$("#autenticacaosolicitarAcessoSemRede").addClass('obrigatorio');
		
		$("#_autenticacaoenderecoServidorLdap").addClass('obrigatorio');
		$("#autenticacaoenderecoServidorLdap").addClass('obrigatorio');

		$("#_autenticacaodominioServidorLdap").addClass('obrigatorio');
		$("#autenticacaodominioServidorLdap").addClass('obrigatorio');
		break;
	case "3": // AD
		$('#ad').show();
		$('#opcoes_autenticacao').show();

		$("#_autenticacaomodificarDadosPessoais").addClass('obrigatorio');
		$("#autenticacaomodificarDadosPessoais").addClass('obrigatorio');
		
		$("#_autenticacaosolicitarAcessoSemRede").addClass('obrigatorio');
		$("#autenticacaosolicitarAcessoSemRede").addClass('obrigatorio');
		
		$("#_autenticacaoenderecoServidorAd").addClass('obrigatorio');
		$("#autenticacaoenderecoServidorAd").addClass('obrigatorio');
		
		$("#_autenticacaodominioServidorAd").addClass('obrigatorio');
		$("#autenticacaodominioServidorAd").addClass('obrigatorio');
		break;
		
	default:
		$('#configuracoes_senha').show();
		$("#_autenticacaotipoSenhaSistema").addClass('obrigatorio');
	break;
	}
}

function criarSelect() {
	$("#editorSQLcomando").val("SELECT * FROM "+ $("#listaTabelas option[value='"+$("#listaTabelas").val()+"']").text());
}

function resetForm(id) {
	document[id].reset();
}

function recebeMilisegundosRetornaDdMmAaaa (data) {
	var date = new Date(data);
	var dia = date.getDate(data);
	if (dia<10) {
		dia = "0"+dia;
	}
	var mes = date.getMonth(data)+1;
	if (mes<10) {
		mes = "0"+mes;
	}
	var ano = date.getFullYear(data);
	return (dia+"/"+mes+"/"+ano);
}

/*******************************************************************************
 * MENSAGERIA
 ******************************************************************************/

function lerMensagem(mensageriaId,caminho) {
	tb_show('Exibe Mensagem Privada',caminho+'/fmk/mensageria.detalhesMsgPrivada.logic?idMensageria='+mensageriaId+'&KeepThis=true&TB_iframe=true&width=720&height=400&modal=true','true');
}

function lerMensagemPainel(mensageriaId,caminho) {
	tb_show('Exibe Mensagem Privada',caminho+'/fmk/mensageria.detalhesMsgPrivadaPainel.logic?idMensageria='+mensageriaId+'&KeepThis=true&TB_iframe=true&width=720&height=400&modal=true','true');
}

function voltarMensageria(caminho) {
	parent.window.location.href = caminho + '/fmk/mensageria.listaMensageria.logic';
}

function voltarMensageriaPainel(caminho) {
	parent.window.location.href = caminho + '/fmk/controleAcesso.efetuaLogin.jsp';
}

function selecionarDestinatario(nomeRemetente, idRemetente) {
	document.getElementById("mensagerianomeDestinatario").value = nomeRemetente;
	document.getElementById("idsDestinatarios").value = idRemetente;
}

function enviarMsg(texto, id, caminho) {
	if (id == "") {
		jAlert("Selecione na coluna 'De' o nome do Destinatário");
		return;
	}
	if (texto == "") {
		jAlert("Mensagem deve ser preenchida!");
		return;
	}
	
	$("div#divMsgOnline").html("<center><table><tr><td><center><img src='" + caminho + "/fmk/imagem/carregando.gif' border='0' align='center'></center></td></tr></table></center>");
	$("div#divMsgOnline").load(caminho + "/fmk/mensageria.responderMsgOnline.logic", 
		{
			"idsDestinatarios":id,
			"mensageria.texto":texto
		});								
}

function salvarNotas(caminho) {
	$.getJSON(caminho+"/fmk/blocoNotas.atualiza.ajax.logic",
			{"blocoNotas.notas" : $("#blocoNotasnotas").val(),
			"blocoNotas.id" : $("#blocoNotasid").val()}, function(dados) {
				$("#blocoNotasid").val(dados.blocoNotas.id);			
			});

}

function setLinhas() {
	var a=$("textarea.textAreaExpansivel"),c=a.attr("cols"),b=a.val();
	b=b.replace(/\r\n?/,"\n");
	for(var d=2,e=0,f=0;f<b.length;f++){
	var g=b.charAt(f);e++;
		if(g=="\n"||e==c){
			d++;e=0
		}
	}
	a.attr("rows",d);
	a.css({"height":d*12+"px"});
}

function carregaCkeditor(idElemento) {
    var width = $("#"+idElemento+"_width").val();
    var height = $("#"+idElemento+"_height").val();
    var barraFerramenta = $("#"+idElemento+"_barraFerramenta").val();
	
	$("textarea.ckeditor").ckeditor(function(){

    },
    {
        width: width,
        height: height,
        toolbar:barraFerramenta
    });
}


/*******************************************************************************
 * EFEITO DE OPACIDADE PARA OS LINKS
 ******************************************************************************/
//$(function() {
//	$("a").hover(
//			function () {
//				$(this).animate({
//				    opacity: 0.8
//				  }, 150 );
//			  }, 
//			  function () {
//				  $(this).animate({
//				    opacity: 1
//				  }, 50 );
//			  }
//			);
//});
