/**
 * JS Document.
 * @author Sandro Jordão.
 */
 
function gravar()
{
	$.post(basepath + 'principal/verificarLogado', 
		function(logado) {
			if(logado == 0)
			{
				// 
				var nome = $("#txtNome").val();
				var login = $("#txtLogin").val();
				var senha = $("#txtSenha").val();
				var repetir = $("#txtRepetirSenha").val();
				var perfil = $("#comboPerfil").val();
				var situacao = $('input[name=rdoAtivo]:radio:checked').val();
				var groupArray = new Array();
				$(".checkbox").each(function(){ groupArray.push($(this).val()); });
				
				// Grupos do Clarity
				var clarity = $("#dashboardClarity").val();
				var admClarity = '';
				var groupClarityArray = new Array();
				
				if(clarity == 'T')
				{
					admClarity = $("#checkAdmClarity").val();
					
					$(".grupoClarity:checked").each(function(){ 
						groupClarityArray.push($(this).val()); 
					});
				}

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

				var erro = 0;

				if(nome == '')
				{
					$('#txtNome').after("<span class='msgErro'>Campo de preenchimento obrigat&oacute;rio.</span>");
					erro++;
				}

				if(login == '')
				{
					$('#txtLogin').after("<span class='msgErro'>Campo de preenchimento obrigat&oacute;rio. M&iacute;nimo de 3 caracteres.</span>");
					erro++;
				}
				
				if(perfil == '')
				{
					$('#comboPerfil').after("<span class='msgErro'>Campo de preenchimento obrigat&oacute;rio.</span>");
					erro++;
				}

				if(senha == '')
				{
					$('#txtSenha').after("<span class='msgErro'>Campo de preenchimento obrigat&oacute;rio.</span>");
					erro++;
				}
				else if (senha != repetir)
				{
					$('#txtRepetirSenha').after("<span class='msgErro'>As senhas s&atilde;o diferentes.</span>");
					erro++;
				}

				if (erro == 0)
				{
					$.post(basepath + "cadastros/gravaUsuario", {
						nome  : nome,
						login : login,
						senha : senha,
						perfil : perfil,
						situacao : situacao,
						'grupos[]' : groupArray,
						clarity : clarity,
						admClarity : admClarity,
						'gruposClarity[]' : groupClarityArray
					}, function(data){
						if(data == 1)
						{
							jAlert('Gravado com sucesso!', 'Alerta!', function() { window.location.href = basepath + 'cadastros/usuarios'; });
						}
						else if(data == 2)
						{
							$('#txtLogin').after("<span class='msgErro'>Login já cadastrado!</span>");
							return false;
						}
						else alert('Ocorreu um erro:\n ' + data);
					});
				}
				else
				{
					jAlert('Favor preencher todos os campos corretamente.', 'Alerta!');
				}
				//
			}
			else
			{
				window.location.href = basepath + 'principal/' + logado;
			}
		});
}

function verificaLogin()
{
	var login = $("#txtLogin").val();
	
	$('#txtLogin').next('.msgErro').remove();
	
	if($.trim(login) == '')
	{
		$('#txtLogin').after("<span class='msgErro'>Campo de preenchimento obrigat&oacute;rio. M&iacute;nimo de 3 caracteres.</span>");
	}
	else
	{
		$.post(basepath + "cadastros/verificaLogin", {
			login : login
		}, function(data){
			if(data == 1)
			{
				$('#txtLogin').after("<span class='msgErro'>Login já cadastrado!</span>");
				return false;
			}
		});	
	}
}

function checarSeguranca() 
{
	var senha = $("#txtSenha").val();

	var forca = 0;
	
	$("#seguranca").html('');
	
	$('#txtSenha').next('.msgErro').remove();
	
	if($.trim(senha) != '')
	{
		if ((senha.length >= 5) && (senha.length <= 7)) 
		{
			forca += 10;
		} 
		else if (senha.length > 7)
		{
			forca += 15;
		}
		
		if (senha.match(/[a-z]+/))
		{
			forca += 10;
		}
		
		if (senha.match(/[A-Z]+/)) 
		{
			forca += 20;
		}
		
		if (senha.match (/[0-9]+/))
		{
			forca += 20;
		}
		
		if (senha.match(/\W+/)) 
		{
			forca += 25;
		}
		
		if (forca < 30)
		{
			var html = "<span class='msgErro' style='color: #666;'>A Segurança de sua senha é: <font color='#A04040'><b>MUITO BAIXA</b></font></span>";
			$("#seguranca").html(html);
		}
		else if (forca >= 30 && forca < 60)
		{
			var html = "<span class='msgErro' style='color: #666;'>A Segurança de sua senha é: <font color='#FF5F55'><b>BAIXA</b></font></span>";
			$("#seguranca").html(html);
		}
		else if(forca >= 60 && forca < 90)
		{
			var html = "<span class='msgErro' style='color: #666;'>A Segurança de sua senha é: <font color='#7F7FFF'><b>BOM</b></font></span>";
			$("#seguranca").html(html);
		}
		else
		{
			var html = "<span class='msgErro' style='color: #666;'>A Segurança de sua senha é: <font color='#99C55D'><b>EXCELENTE</b></font></span>";
			$("#seguranca").html(html);
		}
	}
	else
	{
		return false;
	}
}

function alterarBD()
{
	$.post(basepath + 'principal/verificarLogado', 
		function(logado) {
			if(logado == 0)
			{
				//
				var usuario = $("#txtUsuarioID").val();
				var nome 	= $("#txtNome").val();
				var senha 	= $("#txtSenha").val();
				var repetir = $("#txtRepetirSenha").val();
				var perfil = $("#comboPerfil").val();
				var situacao = $('input[name=rdoAtivo]:radio:checked').val();
				var groupArray = new Array();
				$(".checkbox").each(function(){ groupArray.push($(this).val()); });
				
				// Grupos do Clarity
				var clarity = $("#dashboardClarity").val();
				var admClarity = '';
				var groupClarityArray = new Array();
				
				if(clarity == 'T')
				{
					admClarity = $("#checkAdmClarity").val();
					
					$(".grupoClarity:checked").each(function(){ 
						groupClarityArray.push($(this).val()); 
					});
				}

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

				var erro = 0;

				if(nome == '')
				{
					$('#txtNome').after("<span class='msgErro'>Campo de preenchimento obrigatório.</span>");
					erro++;
				}
				
				if(perfil == '')
				{
					$('#comboPerfil').after("<span class='msgErro'>Campo de preenchimento obrigatório.</span>");
					erro++;
				}

				if(senha != '' || repetir != '')
				{
					if (senha != repetir)
					{
						$('#txtRepetirSenha').after("<span class='msgErro'>As senhas são diferentes.</span>");
						erro++;
					}
				}

				if (erro == 0)
				{
					$.post(basepath + "cadastros/alterarUsuarioBD", {
						usuario : usuario,
						nome  	: nome,
						senha 	: senha,
						perfil : perfil,
						situacao : situacao,
						'grupos[]' : groupArray,
						clarity : clarity,
						admClarity : admClarity,
						'gruposClarity[]' : groupClarityArray
					}, function(data){
						if(data == 1)
						{
							jAlert('Usuário alterado com sucesso!', 'Alerta!', function() { window.location.href = basepath + 'cadastros/usuarios'; });
						}
						else 
						{
							jAlert('Ocorreu um erro:\n ' + data, 'Alerta!');
						}
					});
				}
				else
				{
					jAlert('Favor preencher todos os campos corretamente.', 'Alerta!');
				}
				//
			}
			else
			{
				window.location.href = basepath + 'principal/' + logado;
			}
		});
}

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

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

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

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

    if(usuario)
	{
		$.post(basepath + 'principal/verificarLogado', 
			function(logado) {
				if(logado == 0)
				{
					//
					jConfirm("Deseja realmente excluir o usuário?", 'Confirmação!',
						function(r) {
							if (r == true)
							{
								$.post(basepath + "cadastros/excluirUsuario", {
									usuario  : usuario
								}, function(data){
									if(data == 1)
									{
										$("#gridUsuarios").trigger("reloadGrid");
										
										jAlert('Usuário excluído com sucesso!', '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 usuário para exclusão!', 'Alerta!', function() { return false; });
	}
}

function adicionar()
{
	var groups = new Array();
	var count = 0;
	
	$(".groupsCheckbox:checked").each(function(){ 
		groups.push($(this).val()); 
		count++; 
	});
	
	$(".checkbox").each(function(){ 
		groups.push($(this).val()); 
		count++;
	});

	if(count > 0)
	{
		$.post(basepath + "cadastros/montarHtmlGrupos", {
			"grupos[]" : groups
		}, function(data) {
			$(".usersList").html(data);
			$(".checkbox").click(desabilitaRemover);
			fechar();
		});
	}
	else
		fechar();
}

function checkGroups()
{
	var uChecked = $("#group_all").is(':checked');
	$(".groupsCheckbox").attr('checked', uChecked);
}

function msn()
{
	if($('#procurarGrupo').val() == '')
	{
		$('#procurarGrupo').val('Pesquisar grupos...');
		$('#procurarGrupo').removeClass('inputProcurarOff').addClass('inputProcurarOn');
	}
}

function limpar()
{
	if($('#procurarGrupo').val() == 'Pesquisar grupos...')
	{
		$('#procurarGrupo').val('');
		$('#procurarGrupo').removeClass('inputProcurarOn').addClass('inputProcurarOff');
	}
}

function procurar()
{
	var valor = $.trim($("#procurarGrupo").val());
	
	if(valor == 'Pesquisar grupos...') valor = '';
	
	if(valor.length > 2 || valor == '')
	{
		$("#btn_procurar").hide();
		$("#loadingModal").show();

		$.post(basepath + "cadastros/procurarGrupos", {
			valor : valor
		}, function(data) {
			$(".modalList").html(data);
			$(".checkbox").each(function(){ $("#group" + this.id).parent().parent().remove(); });
			$("#loadingModal").hide();
			$("#btn_procurar").show();
		});
	}
}

function adicionarGrupo()
{
	$.post(basepath + "cadastros/adicionarGrupo", { }, function(data){
	
		$("#janela_modal").html('');
		$("#overlay").html('');
		
		var overlay = '<div id="overlay"></div>';
		var overlayCSS = {'width' : pageWidth + 'px','height' : pageHeight + 'px'};
		
		var janela = '<div id="janela_modal"></div>';
		var janelaCSS = {'top' : '50%','left' : '50%','width' : '500px','height' : '350px','margin-left' : '-250px','margin-top' : '-175px'};
		
		var btnFechar = '<a onClick="fechar()"><img id="btnFechar" src="' + basepath + 'www/imagem/close.png" alt="Fechar" title="Fechar" /></a>';
		var btnFecharCSS = {'position' : 'absolute','top' : '50%','left' : '50%','cursor' : 'pointer','margin-left' : '225px','margin-top' : '-180px'}
		
		var btnCancelar = '<input type="image" id="btn_cancelar" name="btn_cancelar" src="' + basepath + 'www/imagem/btn_cancelar.png" onClick="fechar()" />';
		var btnCancelaCSS = {'position' : 'absolute','top' : '100%','left' : '100%','margin-left' : '-115px','margin-top' : '-45px','width' : '100px'}
		
		var btnOK = '<input type="image" id="btn_enviar" name="btn_enviar" src="' + basepath + 'www/imagem/btn_ok.png" onClick="adicionar()" />';
		var btnOKCSS = {'position' : 'absolute','top' : '100%','left' : '0%','margin-left' : '300px','margin-top' : '-45px','width' : '100px'}
		
		$("body").append(overlay);
		$("body").append(janela);
		$("#overlay").css(overlayCSS).fadeIn('fast', function(){
			
			$("#janela_modal").append(data);
			
			$("#janela_modal").append(btnFechar);
			$("#btnFechar").css(btnFecharCSS).fadeIn("slow");
			
			$("#janela_modal").append(btnCancelar);
			$("#btn_cancelar").css(btnCancelaCSS);
			
			$("#janela_modal").append(btnOK);
			$("#btn_enviar").css(btnOKCSS);
			
			$("#janela_modal").css(janelaCSS).fadeIn("slow");
			
			$(".checkbox").each(function(){ $("#group" + this.id).parent().parent().remove(); });
			
			$('#procurarGrupo').keyup(procurar);
		});
		
		return false;
	});
}

function fechar() 
{
    $("#janela_modal").fadeOut();
    $("#overlay").fadeOut();
}

function removerGrupo()
{
	$(".checkbox:checked").each(function(){
		$(this).parent().parent().remove();
	});
	
	desabilitaRemover();
}

function desabilitaRemover()
{
	var count = 0;
	$(".checkbox:checked").each(function(){ count++; });
	if(count == 0) 
		$("#btnRemover").attr("disabled", true); 
	else
		$("#btnRemover").removeAttr("disabled");
}

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 voltar()
{
	window.location.href = basepath + 'cadastros/usuarios';
}

function administradorClarity()
{	
	if( $("#checkAdmClarity").is(':checked') )
	{
		$("#checkAdmClarity").val('S');
		var checkedAll = true;
	}
	else
	{
		$("#checkAdmClarity").val('N');
		var checkedAll = false;
	}
		
	$(".grupoClarity").each(function(){ 
		$(this).attr('checked', checkedAll); 
		$(this).attr('disabled', checkedAll); 
	});
}

function init()
{
	pageWidth = $(window).width();
	pageHeight = $(window).height();
	
	$(".checkbox").click(desabilitaRemover);

	$("#txtLogin").mask("***?***************************", {placeholder:" "});
	
	var pathUsuario = basepath + "cadastros/usuarios";
	$('#menuContentLeft a').each(function() {
		if(pathUsuario == $(this).attr("href")) {
			$(this).css({'color' : '#4084b8', 'font-weight' : 'bold', 'font-style' : 'italic'});
		}
	});
	
	$(".grupoClarity").each(function(){ 
		if( $("#checkAdmClarity").is(':checked') )
			$(this).attr('disabled', $(this).is(':checked')); 
	});
}

$(document).ready(init);