/**
 * JS Document.
 * @author Sandro Jordão.
 */

function gravar()
{
	$.post(basepath + 'principal/verificarLogado', 
		function(logado) {
			if(logado == 0)
			{
				//
				var nome = $("#nomePerfil").val();
				var descricao = $("#descricaoPerfil").val();
				var administrador = $('#checkAdm').val();
				
				var permission = new Array(); 
				$(".checkbox:checked").each(function(){ permission.push($(this).val()); });
				
				var tables = new Array();
				$(".tableSet:checked").each(function(){ tables.push($(this).val()); });

				$('.msgErro').remove();

				var erro = 0;
				var msg = '';

				if(nome == '')
				{
					$('#nomePerfil').after("<span class='msgErro'> Campo de preenchimento obrigatório. </span>");
					msg += '\n - Obrigatório informar o <em>Nome do perfil</em>.';
					erro++;
				}
				
				if (erro == 0)
				{
					$("#btnVoltar").before('<span class="imgLoading"><img src="' + basepath + 'www/imagem/loadingModal.gif" align="absmiddle" /> Gravando dados, por favor aguarde...</span>');
					
					$.post(basepath + "cadastros/gravaPerfil", {
						nome : nome,
						descricao : descricao,
						administrador : administrador,
						'permissoes[]' : permission,
						'tabelas[]' : tables
					}, function(data) {
						$(".imgLoading").remove();
						
						if(data == 1) {
							jAlert('Gravado com sucesso!', 'Alerta!', function() { window.location.href = basepath + 'cadastros/perfil'; });
						} else {
							jAlert(data, 'Alerta!', function() { return false; });
						}
					});
				}
				else
				{
					jAlert('Favor informar todos os campos corretamente:\n' + msg, 'Alerta!');
				}
				//
			}
			else
			{
				window.location.href = basepath + 'principal/' + logado;
			}
		});
}

function alterarBD()
{
	$.post(basepath + 'principal/verificarLogado', 
		function(logado) {
			if(logado == 0)
			{
				//
				var perfil = $("#perfil").val();
				var nome = $("#nomePerfil").val();
				var descricao = $("#descricaoPerfil").val();
				var administrador = $('#checkAdm').val();
				
				var permission = new Array();
				$(".checkbox:checked").each(function(){ permission.push($(this).val()); });
				
				var tables = new Array();
				$(".tableSet:checked").each(function(){ tables.push($(this).val()); });
				$('.msgErro').remove();

				var erro = 0;
				var msg = '';

				if(nome == '')
				{
					$('#nomePerfil').after("<span class='msgErro'> Campo de preenchimento obrigatório. </span>");
					msg += '\n - Obrigatório informar o <em>Nome do perfil</em>.';
					erro++;
				}

				if (erro == 0)
				{
					$("#btnVoltar").before('<span class="imgLoading"><img src="' + basepath + 'www/imagem/loadingModal.gif" align="absmiddle" /> Gravando dados, por favor aguarde...</span>');
					
					$.post(basepath + "cadastros/alterarPerfilBD", {
						perfil : perfil,
						nome : nome,
						descricao : descricao,
						administrador : administrador,
						'permissoes[]' : permission,
						'tabelas[]' : tables
					}, function(data) {
						$(".imgLoading").remove();
						
						if(data == 1) {
							jAlert('Perfil alterado com sucesso!', 'Alerta!', function() { window.location.href = basepath + 'cadastros/perfil'; });
						} else {
							jAlert('Ocorreu um erro:\n ' + data, 'Alerta!', function() { return false; });
						}
					});
				}
				else
				{
					jAlert('Favor informar todos os campos corretamente:\n' + msg, 'Alerta!');
				}
				//
			}
			else
			{
				window.location.href = basepath + 'principal/' + logado;
			}
		});
}

function buscaPerfil()
{
	var perfil = $("#comboPerfil").val();
	
	if(perfil != '')
	{	
		$("#comboPerfil").after('<img src="' + basepath + 'www/imagem/loadingModal.gif" class="imgLoading" align="absmiddle" />');
		
		$.post(basepath + "cadastros/buscaDadosPerfil", {
			perfil : perfil
		}, function(data) {
			dados = eval('(' + data + ')'); 
			$("#nomePerfil").val(dados.nome);
			$("#descricaoPerfil").val(dados.descricao);
			$("#divPermissoes").html(dados.permissoes);
			$("#divTabelas").html(dados.tabelas);
			$(".imgLoading").remove();
			$(".checkbox").click(validaPermissao);
			
			$("#checkAdm").val(dados.administrador);
			if(dados.administrador == 'S')
				$("#checkAdm").attr('checked', true);
			else
				$("#checkAdm").removeAttr('checked');
			
			verificarAdministrador();
		});
	}
	else
	{
		$("#nomePerfil, #descricaoPerfil").val('');
		$(".checkbox, .tableSet").removeAttr('checked');
		return false;
	}
}

function incluir()
{
	window.location.href = basepath + 'cadastros/cadperfil';
}

function alterar()
{
	var perfil = $('#gridPerfil').jqGrid('getGridParam','selrow');

    if(perfil) {
		window.location.href = basepath + 'cadastros/alterarPerfil/' + perfil;
	} else {
		jAlert('Selecionar um perfil para alteração!', 'Alerta!', function() { return false; });
	}
}

function excluir()
{
	var perfil = $('#gridPerfil').jqGrid('getGridParam','selrow');

    if(perfil)
	{
		$.post(basepath + 'principal/verificarLogado', 
			function(logado) {
				if(logado == 0)
				{
					//
					jConfirm("Deseja realmente excluir o perfil?", 'Confirmação!',
						function(r) {
							if (r == true)
							{
								$.post(basepath + "cadastros/excluirPerfil", {
									perfil : perfil
								}, function(data){
									if(data == 1) {
										$("#gridPerfil").trigger("reloadGrid");
										jAlert('Perfil excluído com sucesso!', 'Alerta!');
									} else if(data == 2) {
										jAlert('Não foi possível excluir o perfil!', 'Alerta!');
									} else {
										jAlert('Ocorreu um erro:\n ' + data, 'Alerta de erro!');
									}
								});
							}
							else
							{
								return false;
							}
						});
						//
				} 
				else
				{
					window.location.href = basepath + 'principal/' + logado;
				}
			});
	}
    else
	{
		jAlert('Selecionar um perfil para exclusão!', 'Alerta!', function() { return false; });
	}
}

function trocar()
{
	var aba = this.id;
	
	tabs.removeClass('inDetail');
	$(tabs[aba]).addClass('inDetail');
		
	divs.hide();
	$(divs[aba]).fadeIn('slow');
}

function mostraPerfis()
{
	var opcao = $('input[name=rdoPerfil]:radio:checked').val();
	
	if(opcao == 'E')
		$("#comboPerfil").removeAttr("disabled");
	else {
		$("#comboPerfil").attr("disabled", true).val("");
		$("#nomePerfil, #descricaoPerfil").val('');
		$(".checkbox, .tableSet").removeAttr('checked');
	}
}

function administrador()
{
	if($("#checkAdm").is(':checked'))
	{
		$("#checkAdm").val('S');
		
		$("#tb_All").attr('checked', true);
		$("#tb_All").attr('disabled', true);
	}
	else
	{
		$("#checkAdm").val('N');
		
		$("#tb_All").attr('checked', false);
		$("#tb_All").attr('disabled', false);
	}
		
	var checkedAll = ($("#checkAdm").is(':checked')) ? true : false;
		
	$(".checkbox").each(function(){ 
		$(this).attr('checked', checkedAll); 
		$(this).attr('disabled', checkedAll); 
	});
	
	$(".tableSet").each(function(){ 
		$(this).attr('checked', checkedAll); 
		$(this).attr('disabled', checkedAll); 
	});
	
	$(".checkboxAll").each(function(){ 
		$(this).attr('checked', checkedAll); 
		$(this).attr('disabled', checkedAll); 
	});
}

function verificarAdministrador()
{
	if($("#checkAdm").is(':checked')) 
	{
		$(".checkbox").each(function(){ 
			$(this).attr('checked', true); 
			$(this).attr('disabled', true); 
		});
		
		$(".tableSet").each(function(){ 
			$(this).attr('checked', true); 
			$(this).attr('disabled', true); 
		});
		
		$(".checkboxAll").each(function(){ 
			$(this).attr('checked', true); 
			$(this).attr('disabled', true); 
		});
		
		$("#tb_All").attr('checked', true);
		$("#tb_All").attr('disabled', true);
	}
}

function checkTabelas()
{
	var checked = $("#tb_All").is(':checked');

	$(".tableSet").attr('checked', checked);
}

function selectAll(i)
{
	$(".class" + i).attr('checked', $("#menu_" + i).is(':checked'));
}

//	function accordion(indice)
//	{
//		var imgMais = basepath + "www/imagem/tree/mais.png";
//		var imgMenos = basepath + "www/imagem/tree/menos.png";
//		
//		$("#tree_" + indice).toggle('slow', function(){ 
//			if( $("#tree_" + indice).is(':visible') )
//				$("#img_" + indice).attr({src: imgMenos});
//			else
//				$("#img_" + indice).attr({src: imgMais});
//		});
//	}
//
//	function checkMenu()
//	{
//		var MenuID = this.value;	
//		var MenuChecked = $(this).is(':checked');
//		$(".sMenu_" + MenuID).attr('checked', MenuChecked);
//	}
//	
//	function checkSubMenu()
//	{
//		var valor = this.value;
//		valor = valor.split("-");
//		var MenuID = valor[0];
//		var count = 0;
//		$(".sMenu_" + MenuID).each(function() { if($(this).is(':checked') == true) count++ });
//		if(count == 0) $(".menu_" + MenuID).attr('checked', false); else $(".menu_" + MenuID).attr('checked', true);
//	}
//	
//	function tableSet()
//	{
//		var id = this.id;
//		var valor = id.split('_');
//		
//		if( $(this).is(':checked') )
//			$("#btn_" + valor[1]).removeAttr("disabled").removeClass('opacitySet');
//		else
//			$("#btn_" + valor[1]).attr("disabled", true).addClass('opacitySet');
//	}
//
//	function modalSet()
//	{
//		return false;
//	}

function gerarDashboard(id, tipo)
{
	jConfirm("Deseja realmente incluir o relatório no dashboard?", 'Confirmação!',
		function(r) {
			if (r == true)
			{
				$.post(basepath + "principal/inserirDashboard", {
					relatorio : id
				}, function(data) {
					if (data == 1)
						window.location.href = basepath + 'principal/dashboard';
					else
						jAlert('Não foi possível incluir o relatório!', 'Alerta!');
				});
			}
			else
			{
				return false;
			}
		});
}

function validaPermissao()
{
	var checked = $(this).is(':checked');
	
	var valor = $(this).val();
	var arrayValor = valor.split("_");

	var menu = arrayValor[0];
	var permissao = arrayValor[1];
	
	if(permissao == 1)
	{
		var contador = 0;
		if( $("input[value="+ menu +"_2]:checkbox").is(':checked') ) contador++;
		if( $("input[value="+ menu +"_3]:checkbox").is(':checked') ) contador++;
		if( $("input[value="+ menu +"_4]:checkbox").is(':checked') ) contador++;
		
		if(contador > 0) 
			$(this).attr("checked", true);
	}
	else
	{
		if(checked) 
			$("input[value="+ menu +"_1]:checkbox").attr("checked", true);
	}
}

function voltar()
{
	window.location.href = basepath + 'cadastros/perfil';
}

function init()
{
	pageWidth = $(window).width();
	pageHeight = $(window).height();
	
	tabs = $(".tabsDetail").children('ul').children();
	divs = $(".tabsDetail").children('div');
	$(".abaTrocar").click(trocar);
	
	$(".checkbox").click(validaPermissao);
	
	var count = 0;
	$("#comboPerfil option").each(function() { count++ });
	if(count < 2){
		$("#existePerfil").attr("disabled", true);
		$("#comboPerfil, #lblExistePerfil").css({'color' : '#999'});
	}
	
	verificarAdministrador();
	
	var pathPerfil = basepath + "cadastros/perfil";
	$('#menuContentLeft a').each(function() {
		if(pathPerfil == $(this).attr("href")) {
			$(this).css({'color' : '#4084b8', 'font-weight' : 'bold', 'font-style' : 'italic'});
		}
	});
}

$(document).ready(init);