// cria data a partir de uma string (dd/mm/aaaa) //
function toDate(data) {
	if(isDate(data)) {
		dia = parseInt(data.substr(0, 2), 10);
		mes = parseInt(data.substr(3, 2), 10);
		ano = parseInt(data.substr(6, 4), 10);
		return new Date(ano, mes - 1, dia);
	}
	else
		return new Date();
}

// completa com zeros à esquerda //
function Zeros(texto, tamanho) {
	while(texto.length < tamanho)
		texto = '0' + texto;
	return texto;
}

// convert data para string (dd/mm/aaaa) //
function toDateStr(data) {
	dia = Zeros(data.getDate().toString(10), 2);
	mes = Zeros((data.getMonth() + 1).toString(10), 2);
	ano = data.getFullYear();
	return dia + '/' + mes + '/' + ano;
}

// retorna tamanho do mes //
function monthLen(mes, ano) {
	switch(mes) {
		// meses com 30 dias //
		case 4:
		case 6:
		case 9:
		case 11:
			return 30;
			break;
		// fevereiro //
		case 2:
			// se ano não for bisexto //
			if(ano % 4)
				return 28;
			else
				return 29;
			break;
		// meses com 31 dias //
		default:
			return 31;
	}
}

// adiciona em uma parte da data um número //
function dateAdd(parte, numero, data) {
	dia = data.getDate();
	mes = data.getMonth() + 1;
	ano = data.getFullYear();
	switch(parte) {
		// acrescenta dias na data //
		case 'd':
			dia += numero;
			while(dia > monthLen(mes, ano)) {
				dia -= monthLen(mes, ano);
				mes += 1;
				if(mes > 12) {
					mes = 1;
					ano += 1;
				}
			}
			break;
		// acrescenta meses na data //
		case 'm':
			mes += numero;
			while(mes > 12) {
				mes -= 12;
				ano += 1;
			}
			if(dia > monthLen(mes, ano))
				dia = monthLen(mes, ano);
			break;
		// acrescenta anos na data //
		case 'y':
			ano += numero;
			if(mes == 2 && dia == 29 && ano % 4)
				dia = 28;
			break;
		default:
			// erro de parâmetro (retorna a mesma data) //
	}
	return new Date(ano, mes - 1, dia)
}

// compara duas datas //
function compareDate(data1, data2) {
	if(data1 < data2)
		return -1;
	else if(data1 > data2)
		return 1;
	else
		return 0;
}

// compara duas datas como string (dd/mm/aaaa) //
function compareDateStr(data1, data2) {
	d1 = toDate(data1);
	d2 = toDate(data2);
	return compareDate(d1, d2);
}

// converte texto para valor numerico
function toNumber(valor) {
	return parseFloat(valor.replace(',', '.').replace('.', ''));
}

// aceita a digitação somente de números com ou sem máscara (keypress) //
function maskNumber(ev, campo, mask) {
	if(ev.keyCode) {
		if((ev.keyCode < 48 || ev.keyCode > 57) && ev.keyCode != 13) {
			ev.returnValue = false;
			return false;
		}
	}
	else if((ev.charCode < 48 || ev.charCode > 57) && ev.charCode != 13) {
		ev.preventDefault(false);
		ev.stopPropagation();
		return false;
	}
	if(campo && mask) {
		i = campo.value.length;
		if(i < mask.length && i < campo.maxLength) {
			c = mask.charAt(i);
			if(c != '9')
				campo.value += c;
		}
	}
}

// coloca mascara em campo data (dd/mm/aaaa) [keypress] //
function maskDate(ev, campo) {
	return maskNumber(ev, campo, '99/99/9999 99:99:99');
}

// calcula módulo //
function modulo(numero, mod, x) {
	total = 0;
	for(i = 0; i < numero.length; i++)
		total += parseInt(numero.substr(numero.length - (i + 1), 1)) * ((i % 8) + 2);
	digito = mod - (total % mod);
	return (digito > 9) ? x : digito;
}

// apaga todos os itens de um select //
function clearSel(select) {
	while(select.options.length)
		select.remove(0);
}

// adiciona itens em um select //
function addOptSel(value, text, select) {
	var Opt = new Option();
	Opt.text = text;
	Opt.value = value;
	for(var i = 0; i < select.options.length; i++)
		if(Opt.text < select.options[i].text)
			break;
	if(i < select.options.length)
		select.options.add(Opt, i);
	else
		select.options.add(Opt);
}

// copia itens de um select para outro //
function copySel(origem, destino) {
	tam = origem.options.length;
	for(var j = 0; j < tam; j++) {
		if(origem.options[j].selected) {
			addOptSel(origem.options[j].value, origem.options[j].text, destino)
			origem.remove(j);
			tam--;
			j--;
		}
	}
}

/* Funcao que exibe os campos de resposta para cadastro */

function mostraRespostas(sq_pergunta){

	var tipo = $("#st_tipo").val();
	
	if(tipo == 0 || tipo == 3){
	
		if(sq_pergunta != 0){
			
			if(confirm('Tem certeza que deseja mudar o tipo da pergunta? As respostas cadastradas serão excluídas.')){
		
				$("#respostas").attr("style", "display:none;");
				$("#resp_edit").attr("style", "display:none;");
				$("#insere_resp").attr("style", "display:none;");
			
			}else{
			
				$("#st_tipo").val($("#st_tipo_hid").val());
			
			}
		
		}else{
		
			$("#respostas").attr("style", "display:none;");
			$("#resp_edit").attr("style", "display:none;");
			$("#insere_resp").attr("style", "display:none;");
			
		}
	
	}else{
	
		$("#respostas").attr("style", "display:block;");
		$("#resp_edit").attr("style", "display:block;");
		$("#insere_resp").attr("style", "display:block;");
	
	}

}

/* Funcao que exibe o campo de edicao da resposta */

function exibeEdicaoResposta(sq_resposta_pesq, tag_resposta){

	$.post('exibe_edicao_respostas.php', {sq_resposta_pesq:sq_resposta_pesq}, function (xml){
	
			var sq_resposta_pesq_up = [
			
				$("sq_resposta_pesq", xml).text()
			
			];
			
			var tx_descricao_up = [
			
				$("tx_descricao", xml).text()
			
			];
			
			$("#"+tag_resposta).html("<input type='hidden' name='sq_resposta_pesq_up' value='"+sq_resposta_pesq_up+"' /><input type='text' name='tx_descricao_up' id='tx_descricao_up' value='"+tx_descricao_up+"' />&nbsp;<input type='button' value='Salvar' onclick='editaResposta(\""+sq_resposta_pesq+"\", \""+tag_resposta+"\")' /><br /><br />");
	
		}
	
	);
	
}


/* Funcao que edita a resposta */

function editaResposta(sq_resposta_pesq, tag_resposta){

	tx_descricao = $("#tx_descricao_up").val();
	
	if(tx_descricao != '' || tx_descricao == 'null'){
	
		$.post('edita_respostas.php', {sq_resposta_pesq:sq_resposta_pesq, tx_descricao:tx_descricao}, function (xml){
		
				var sq_resposta_pesq_up = [
				
					$("sq_resposta_pesq", xml).text()
				
				];
				
				var tx_descricao_up = [
				
					$("tx_descricao", xml).text()
				
				];
				
				$("#"+tag_resposta).html(tx_descricao_up+"&nbsp;&nbsp;<a href='javascript:exibeEdicaoResposta("+sq_resposta_pesq_up+",\""+tag_resposta+"\")'>Editar</a>&nbsp;<a href='javascript:excluirResposta("+sq_resposta_pesq_up+",\""+tag_resposta+"\")'>Excluir</a><br />");
		
			}
		
		);
	
	}else{
	
		alert('Descrição da resposta não pode ser vazia');
	
	}
	
}

/* Funcao que exclui a resposta */

function excluirResposta(sq_resposta_pesq, tag_resposta){

	if(confirm('Deseja realmente excluir essa resposta?\nEssa operação não poderá ser desfeita.')){
	
		$.post('excluir_respostas.php', {sq_resposta_pesq:sq_resposta_pesq}, function (xml){
			
				var retorno = [
				
					$("retorno", xml).text()
				
				];
				
				$("#"+tag_resposta).html(retorno);
		
			}
		
		);
	
	}
	
}


/* Funcao que exibe campos de insercao da nova resposta */

function exibeInsercaoResposta(id_pergunta, tag_insercao, id_pesquisa){

	$("#"+tag_insercao).html("<input type='hidden' name='id_pergunta_up' value='"+id_pergunta+"' /><input type='text' name='tx_descricao_nw' id='tx_descricao_nw' value='' />&nbsp;<input type='button' value='Salvar' onclick='insereResposta(\""+id_pergunta+"\", \""+id_pesquisa+"\")' /><br /><br />");
	
}

/* Funcao que insere a nova resposta */

function insereResposta(id_pergunta, id_pesquisa){
	
	tx_descricao = $("#tx_descricao_nw").val();
	
	if(tx_descricao != '' || tx_descricao == 'null'){
	
		$.post('insere_nova_resposta.php', {id_pergunta:id_pergunta, tx_descricao:tx_descricao}, function (xml){
		
				window.location='perguntas.php?sq_pergunta='+id_pergunta+'&sq_pesquisa='+id_pesquisa;		
		
			}
		
		);
	
	}else{
	
		alert('Descrição da resposta não pode ser vazia');
	
	}
	
}

function filtraArea(sq_area, tp_conteudo){
	
		$.post("filtra_area.php", {sq_area: sq_area, tp_conteudo:tp_conteudo}, function(xml) {
			// formata o resultado
			
			var qtde_retorno = [
				$("qtde_retorno", xml).text()
			];
						
			$("select[@name=conteudo]").html('<option value="">//Selecione//</option>');
			
			for(i = 0; i < qtde_retorno; i++){
				
				//variaveis
				
				var id_conteudo = [
				
					$("id_conteudo_"+i, xml).text()
				
				];
				
				var title = [
				
					$("title_"+i, xml).text()
				
				];
				
				// saída do resultado
				$("select[@name=conteudo]").append('<option value="'+id_conteudo+'">'+title+'</option>');
			
			}
			
		});
}

function retirarVinculo(id_conteudo, sq_arquivo){
	
		$.post("retira_vinculo.php", {id_conteudo: id_conteudo, sq_arquivo:sq_arquivo}, function(xml) {
			// deleta o vinculo entre conteudo e arquivo
			
			var retorno = [
				$("retorno", xml).text()
			];

			if(retorno){
			
				$("#tx_nome_conteudo").val('');
				$("#id_conteudo").val('');
				$("#link_vinculo").html('');
				return;
			
			}
						
		});
}

function selecionaConteudo(valor, tp_conteudo, id_area){
	
	//gera a url para o conteudo / noticia / evento
	
	switch(tp_conteudo){
	
		case "noticia":
		
			url = "/portalmdic/sitio/interna/noticia.php?area="+id_area+"&noticia="+valor;
		
		break;
		
		case "conteudo":
		
			url = "/portalmdic/sitio/interna/interna.php?area="+id_area+"&menu="+valor;
		
		break;
		
		case "evento":
		
			url = "/portalmdic/sitio/interna/evento.php?area="+id_area+"&evento="+valor;
		
		break;
		
		default:
		break;
	
	}
	
	opener.document.getElementById('ds_url').value=url;
	window.close();
}


function selecionaArquivoBd(sq_arquivo, field){
	$.post("dados-arquivo.php", {sq_arquivo:sq_arquivo}, function(xml) {
		var ds_arquivo = [
			$("ds_arquivo", xml).text()
		];
		if(ds_arquivo) {
			url = "../../arquivos/" + ds_arquivo;
			opener.editor.document.forms[0].elements[field].value = url;
			window.close();
			return;
		}
	});
}


function selecionaConteudoArquivo(id_conteudo,nome_conteudo){
	
	opener.document.getElementById('tx_nome_conteudo').value=nome_conteudo;
	opener.document.getElementById('id_conteudo').value=id_conteudo;
	window.close();
}

function limparVinculo(){

	$("#tx_nome_arquivo").val('');
	$("#id_conteudo").val('');
	return;

}

function filtraUsuario(sq_area){
	
		$.post("filtra_usuario.php", {sq_area: sq_area}, function(xml) {
			// formata o resultado
			
			var qtde_retorno = [
				$("qtde_retorno", xml).text()
			];
						
			$("select[@name=id_usuario]").html('<option value="">//Selecione//</option>');
			
			for(i = 0; i < qtde_retorno; i++){
				
				//variaveis
				
				var id_usuario = [
				
					$("id_usuario_"+i, xml).text()
				
				];
				
				var title = [
				
					$("title_"+i, xml).text()
				
				];
				
				// saída do resultado
				$("select[@name=id_usuario]").append('<option value="'+id_usuario+'">'+title+'</option>');
			
			}
			
		});
}


function limitaTextArea(campo, tamanho){

	var txt = campo.value;
	
	if(txt.length > 50){
	
		campo.value = campo.value.substring(0, tamanho-1);
	
	}

}