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

function adicionarMapeamento()
{
	$.post(basepath + 'principal/verificarLogado', 
		function(logado) {
			if(logado == 0)
			{
				//
				$.post(basepath + "scripts/cadmap", { }, 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' : '40%','left' : '50%','width' : '615px','height' : '480px','margin-left' : '-310px','margin-top' : '-240px'};
					
					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' : '282px','margin-top' : '-246px'}
					
					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' : '408px','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");
					});
					
					return false;
				});
				//
			}
			else
			{
				window.location.href = basepath + 'principal/' + logado;
			}
		});
}

function adicionar()
{
    var string_conexao = $('#txtStringConexao').val();
    var tabela_temporaria = $('#txtTabelaTemporaria').val();
    var campo_chave = $('#txtCampoChave').val();
    var sql_pesquisa = $('#txtSqlPesquisa').val();
    var banco_dados = $('#listaBancoDados').val();
    var maps = $('#maps').val();
    
    $('.msgErro').remove();
    var erro = 0;
    
    if(string_conexao == '')
    {
        $('#txtStringConexao').after("<span class='msgErro'> Campo de preenchimento obrigatório. </span>");
        erro++;
    }
    if(tabela_temporaria == '')
    {
        $('#txtTabelaTemporaria').after("<span class='msgErro'> Campo de preenchimento obrigatório. </span>");
        erro++;
    }
    
    if(campo_chave == '')
    {
        $('#txtCampoChave').after("<span class='msgErro'> Campo de preenchimento obrigatório. </span>");
        erro++;
    }
    
    if(sql_pesquisa == '')
    {
        $('#txtSqlPesquisa').after("<span class='msgErro'> Campo de preenchimento obrigatório. </span>");
        erro++;
    }
    
    if(banco_dados == '')
    {
        $('#').after("<span class='msgErro'> Campo de preenchimento obrigatório. </span>");
        erro++;
    }
    
    if (erro == 0)
    {
        var count = $('#increment').val();
        count++;
        var maps = count + '____' + string_conexao + '____' + tabela_temporaria + '____' + campo_chave + '____' + sql_pesquisa + '____' + banco_dados;
        
        if(count > 0)
        {
            $(".usersList table tbody").append('<tr><td height="25" width="28px" align="center" valign="middle"> <input type="checkbox" class="checkbox"' + 'name="' + count + '" id="' + count + '" value="' + maps + '"> </td><td height="25" align="left" valign="middle"> <label for="' + count + '">' + banco_dados + ' - ' + tabela_temporaria + ' - ' + '0' + '</label> </td></tr>');
            //jAlert('Mapeamento incluido com sucesso','Alerta!');
            $('#increment').val(count);
            fechar();
            return false;
        }
    }
    else
    {
        jAlert('Favor preencher todos os campos corretamente.', 'Alerta!');
    }
}

function gravar()
{
	$.post(basepath + 'principal/verificarLogado', 
		function(logado) {
			if(logado == 0)
			{
				//
				var descricao     = $("#txtTituloScript").val();
				var script        = $("#txtScript").val();
				var classe        = $("#txtClasse").val();
				var criacaotabela = $("#txtCriacaoTabela").val();
				var periodicidade = $("#txtPeriodicidade").val();
				var dtinicio      = $("#txtDataInicio").val();
				var dtfim         = $("#txtDataFinal").val();
				var temposleep    = $("#txtTempoSleep").val();
				var regrasnegocio = $("#txtRegrasNegocio").val();
				var modopk        = $("#listaModoPK").val();
				var suspenso      = $("input[name='rdoExecucao']:checked").val();
				
				var mapsArray = new Array();
				$(".checkbox").each(function(){ mapsArray.push($(this).val()); });
				
				var hora_periodicidade = periodicidade.split(':');
				var hora   = hora_periodicidade[0];
				var minuto = hora_periodicidade[1];
				
				$('.msgErro').remove();
				var erro = 0;
				var msg = '';
				
				if(descricao == '')
				{
					$('#txtTituloScript').after("<span class='msgErro'> Campo de preenchimento obrigatório. </span>");
					msg += '\n - Obrigatório informar o <em>Título do Script</em>.';
					erro++;
				}
				
				if(script == '')
				{
					$('#txtScript').after("<span class='msgErro'> Campo de preenchimento obrigatório. </span>");
					msg += '\n - Obrigatório informar o <em>Script C#</em>.';
					erro++;
				}
				
				if(classe == '')
				{
					$('#txtClasse').after("<span class='msgErro'> Campo de preenchimento obrigatório. </span>");
					msg += '\n - Obrigatório informar a <em>Classe</em>.';
					erro++;
				}
				
				if(periodicidade == '')
				{
					$('#txtPeriodicidade').after("<span class='msgErro'> Campo de preenchimento obrigatório. </span>");
					msg += '\n - Obrigatório informar a <em>Periodicidade</em>.';
					erro++;
				}
				
				if(hora > 23 || minuto > 59)
				{
					$('#txtPeriodicidade').after("<span class='msgErro'> Hora inválida. </span>");
					msg += '\n - O tempo não pode ser maior que 23 horas e 59 minutos no campo <em>Periodicidade</em>.';
					erro++;
				}
				
				if(dtinicio == '')
				{
					$('#txtDataInicio').after("<span class='msgErro'> Campo de preenchimento obrigatório. </span>");
					msg += '\n - Obrigatório informar a <em>Data Inicial para execução do Script</em>.';
					erro++;
				}
				
				if(temposleep == '')
				{
					$('#txtTempoSleep').after("<span class='msgErro'> Campo de preenchimento obrigatório. </span>");
					msg += '\n - Obrigatório informar o <em>Tempo Sleep</em>.';
					erro++;
				}
				
				if(modopk == '')
				{
					$('#listaModoPK').after("<span class='msgErro'> Campo de preenchimento obrigatório. </span>");
					msg += '\n - Obrigatório informar o <em>Modo de Pesquisa</em>.';
					erro++;
				}
				
				if (mapsArray == '')
				{
					msg += '\n - Obrigatório incluir <em> um mapeamento</em>.';
					erro++;
				}
				
				if (erro == 0)
				{
					$.post(basepath + "scripts/gravaScript", {
						script : script,
						classe: classe,
						criacaotabela : criacaotabela,
						periodicidade : periodicidade,
						dtinicio : dtinicio,
						dtfim : dtfim,
						temposleep : temposleep,
						regrasnegocio : regrasnegocio,
						modopk : modopk,
						suspenso : suspenso,
						descricao : descricao,
						'maps[]' : mapsArray
					}, function(data){
						if(data == 1)
						{
							jAlert('O Script foi cadastrado com sucesso!', 'Alerta!', function() { window.location.href = basepath + 'scripts/listascripts'; });
						}
						else if(data == 2)
						{
							jAlert('Não...', 'Alerta!', function() { return false });
						}
						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 editarMapeamento()
{
	$.post(basepath + 'principal/verificarLogado', 
		function(logado) {
			if(logado == 0)
			{
				//
				$(".checkbox:checked").each(function(){
					var map = $(this).attr("value");
					var map_info =  map.split('____');
					map_id = map_info[0];
					string_conexao = map_info[1];
					tabela_temporaria = map_info[2];
					campo_chave = map_info[3];
					sql_pesquisa = map_info[4];
					banco_dados = map_info[5];
					return false;
				});
				
				$.post(basepath + "scripts/alteramap", {
					map_id : map_id,
					string_conexao : string_conexao,
					tabela_temporaria : tabela_temporaria,
					campo_chave : campo_chave,
					sql_pesquisa : sql_pesquisa,
					banco_dados : banco_dados
				}, 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' : '40%','left' : '50%','width' : '615px','height' : '480px','margin-left' : '-310px','margin-top' : '-240px'};
					
					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' : '282px','margin-top' : '-246px'}
					
					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="editar()" />';
					var btnOKCSS = {'position' : 'absolute','top' : '100%','left' : '0%','margin-left' : '408px','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(){ $("#user_" + this.id).parent().parent().remove(); });
						
						$('#procurarUsuario').keyup(procurar);
					});
					
					return false;
				});
				//
			}
			else
			{
				window.location.href = basepath + 'principal/' + logado;
			}
		});
}

function editar()
{
    var map_id = $('#txtMapID').val();
    var string_conexao = $('#txtStringConexao').val();
    var tabela_temporaria = $('#txtTabelaTemporaria').val();
    var campo_chave = $('#txtCampoChave').val();
    var sql_pesquisa = $('#txtSqlPesquisa').val();
    var banco_dados = $('#listaBancoDados').val();
    
    var mapsArray = new Array();
	$(".checkbox:checked").each(function(){ mapsArray.push($(this).val()); });
    
    $('.msgErro').remove();
    var erro = 0;
    
    if(string_conexao == '')
    {
        $('#txtStringConexao').after("<span class='msgErro'> Campo de preenchimento obrigatório. </span>");
        erro++;
    }
    if(tabela_temporaria == '')
    {
        $('#txtTabelaTemporaria').after("<span class='msgErro'> Campo de preenchimento obrigatório. </span>");
        erro++;
    }
    
    if(campo_chave == '')
    {
        $('#txtCampoChave').after("<span class='msgErro'> Campo de preenchimento obrigatório. </span>");
        erro++;
    }
    
    if(sql_pesquisa == '')
    {
        $('#txtSqlPesquisa').after("<span class='msgErro'> Campo de preenchimento obrigatório. </span>");
        erro++;
    }
    
    if(banco_dados == '')
    {
        $('#').after("<span class='msgErro'> Campo de preenchimento obrigatório. </span>");
        erro++;
    }
    
    if (erro == 0)
    {
        $(".checkbox:checked").each(function(){
            $(this).parent().parent().remove();
            //jAlert('O Mapeamento foi excluído com sucesso!', 'Alerta!');
        });
        
        var maps = map_id + '____' + string_conexao + '____' + tabela_temporaria + '____' + campo_chave + '____' + sql_pesquisa + '____' + banco_dados;
        
        $(".usersList table tbody").append('<tr><td height="25" width="28px" align="center" valign="middle"> <input type="checkbox" class="checkbox"' + 'name="' + map_id + '" id="' + map_id + '" value="' + maps + '"> </td><td height="25" align="left" valign="middle"> <label for="' + map_id + '">' + banco_dados + ' - ' + tabela_temporaria + ' - ' + '0' + '</label> </td></tr>');
        
        //jAlert('Mapeamento incluido com sucesso','Alerta!');
        desabilitaEditar();
        fechar();
        return false;
    }
    else
    {
        jAlert('Favor preencher todos os campos corretamente.', 'Alerta!');
    }
}

function alterarBD()
{
	$.post(basepath + 'principal/verificarLogado', 
		function(logado) {
			if(logado == 0)
			{
				//
				var scriptid      = $("#txtScriptID").val();
				var descricao     = $("#txtTituloScript").val();
				var script        = $("#txtScript").val();
				var classe        = $("#txtClasse").val();
				var criacaotabela = $("#txtCriacaoTabela").val();
				var periodicidade = $("#txtPeriodicidade").val();
				var dtinicio      = $("#txtDataInicio").val();
				var dtfim         = $("#txtDataFinal").val();
				var temposleep    = $("#txtTempoSleep").val();
				var regrasnegocio = $("#txtRegrasNegocio").val();
				var modopk        = $("#listaModoPK").val();
				var suspenso      = $("input[name='rdoExecucao']:checked").val();
				
				var mapsArray = new Array();
				$(".checkbox").each(function(){ mapsArray.push($(this).val()); });
				
				var maps_excluidosArray = new Array();
				$(".map_excluido").each(function(){ maps_excluidosArray.push($(this).val()); });
				
				var hora_periodicidade = periodicidade.split(':');
				var hora   = hora_periodicidade[0];
				var minuto = hora_periodicidade[1];
				
				$('.msgErro').remove();
				var erro = 0;
				var msg = '';
				
				if(descricao == '')
				{
					$('#txtTituloScript').after("<span class='msgErro'> Campo de preenchimento obrigatório. </span>");
					msg += '\n - Obrigatório informar o <em>Título do Script</em>.';
					erro++;
				}
				
				if(script == '')
				{
					$('#txtScript').after("<span class='msgErro'> Campo de preenchimento obrigatório. </span>");
					msg += '\n - Obrigatório informar o <em>Script C#</em>.';
					erro++;
				}
				
				if(classe == '')
				{
					$('#txtClasse').after("<span class='msgErro'> Campo de preenchimento obrigatório. </span>");
					msg += '\n - Obrigatório informar a <em>Classe</em>.';
					erro++;
				}
				
				if(periodicidade == '')
				{
					$('#txtPeriodicidade').after("<span class='msgErro'> Campo de preenchimento obrigatório. </span>");
					msg += '\n - Obrigatório informar a <em>Periodicidade</em>.';
					erro++;
				}
				
				if(hora > 23 || minuto > 59)
				{
					$('#txtPeriodicidade').after("<span class='msgErro'> Hora inválida. </span>");
					msg += '\n - O tempo não pode ser maior que 23 horas e 59 minutos no campo <em>Periodicidade</em>.';
					erro++;
				}
				
				if(dtinicio == '')
				{
					$('#txtDataInicio').after("<span class='msgErro'> Campo de preenchimento obrigatório. </span>");
					msg += '\n - Obrigatório informar a <em>Data Inicial para execução do Script</em>.';
					erro++;
				}
				
				if(temposleep == '')
				{
					$('#txtTempoSleep').after("<span class='msgErro'> Campo de preenchimento obrigatório. </span>");
					msg += '\n - Obrigatório informar o <em>Tempo Sleep</em>.';
					erro++;
				}
				
				if(modopk == '')
				{
					$('#listaModoPK').after("<span class='msgErro'> Campo de preenchimento obrigatório. </span>");
					msg += '\n - Obrigatório informar o <em>Modo de Pesquisa</em>.';
					erro++;
				}
				
				if (mapsArray == '')
				{
					msg += '\n - Obrigatório incluir <em> um mapeamento</em>.';
					erro++;
				}
				
				if (erro == 0)
				{
					$.post(basepath + "scripts/alterarScriptBD", {
						scriptid : scriptid,
						script : script,
						classe : classe,
						criacaotabela : criacaotabela,
						periodicidade : periodicidade,
						dtinicio : dtinicio,
						dtfim : dtfim,
						temposleep : temposleep,
						regrasnegocio : regrasnegocio,
						modopk : modopk,
						suspenso : suspenso,
						descricao : descricao,
						'maps[]' : mapsArray,
						'maps_excluidos[]' : maps_excluidosArray
					}, function(data){
						if(data == 1)
						{
							jAlert('Script alterado com sucesso!', 'Alerta!', function() { window.location.href = basepath + 'scripts/listascripts'; });
						}
						else alert('Ocorreu um erro:\n ' + data);
					});
				}
				else
				{
					jAlert('Favor informar todos os campos corretamente:\n' + msg, 'Alerta!');
				}
				//
	
			}
			else
			{
				window.location.href = basepath + 'principal/' + logado;
			}
		});
}

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

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

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

function excluir()
{
    var script = $('#gridScript').jqGrid('getGridParam','selrow');
    
    if(script)
    {
		$.post(basepath + 'principal/verificarLogado', 
			function(logado) {
				if(logado == 0)
				{
					//
					jConfirm("Deseja realmente excluir o Script?", 'Confirmação!',
					function(r) {
						if (r == true)
						{
							$.post(basepath + "scripts/excluirscript", {
								script  : script
							}, function(data){
								if(data == 1)
								{
									$("#gridScript").trigger("reloadGrid");
									
									jAlert('Script 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 Script para exclusão!', 'Alerta!', function() { return false; });
    }
}

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

function removerMap()
{
    var mapsArray = new Array();
	$(".checkbox:checked").each(function(){ mapsArray.push($(this).val()); });
    
    jConfirm('Quer mesmo remover o(s) mapeamento(s)?', 'Confirmação de remoção de mapeamento(s)', function(r) {
        if (r == true)
        {
            $(".checkbox:checked").each(function(){
                $(this).parent().parent().remove();
                jAlert('O Mapeamento foi excluído com sucesso!', 'Alerta!');
            });
        }
    });
    
	desabilitaRemover();
}

function removerMapCadastrado()
{
    var mapsArray = new Array();
    $(".checkbox:checked").each(function(){ mapsArray.push($(this).val()); });
    
    jConfirm('Quer mesmo remover o(s) mapeamento(s)?', 'Confirmação de remoção de mapeamento(s)', function(r) {
        if (r == true)
        {
            $(".checkbox:checked").each(function(){
                var map = $(this).attr("id");
                $(this).parent().parent().remove();
                $(".usersList table tbody").append('<input type="hidden" id="' + map + '" class="map_excluido" value="' + map + '" />');
                //jAlert('O Mapeamento foi excluído com sucesso!', 'Alerta!');
            });
        }
    });
    
	desabilitaRemover();
}

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

function desabilitaEditar()
{
	var checar = 0;
	$(".checkbox:checked").each(function(){ checar++; });
	
    if(checar == 0)
    {
		$("#btnEditar").attr("disabled", true);
    }
    
    if(checar > 1)
    {
		$("#btnEditar").attr("disabled", true);
    }
	else if(checar < 2)
    {
		$("#btnEditar").removeAttr("disabled");
    }
    
    if (! $(".checkbox").is(':checked'))
    {
        $("#btnEditar").attr("disabled", true);
    }
}

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

function init()
{
    var increment = 0;
    
    pageWidth = $(window).width();
    pageHeight = $(window).height();
    
    $(".tbUsersList").click(desabilitaRemover);
    $(".tbUsersList").click(desabilitaEditar);
    
    $('#txtPeriodicidade').mask("99:99");
    $('#txtTempoSleep').mask("9?99999",{placeholder:" "});
    // $('#txtDataInicio').mask("99/99/9999 99:99:99",{placeholder:" "});
    // $('#txtDataFinal').mask("99/99/9999 99:99:99",{placeholder:" "});
    
    tabs = $(".tabsDetail").children('ul').children();
    divs = $(".tabsDetail").children('div');
    $(".abaTrocar").click(trocar);
    
    $(".checkbox").each(function(){
        increment = $(".checkbox").attr('id');
        increment++;
        $('#increment').val(increment);
    });

	var pathScripts = basepath + "scripts/listascripts";
	$('#menuContentLeft a').each(function() {
		if(pathScripts == $(this).attr("href")) {
			$(this).css({'color' : '#4084b8', 'font-weight' : 'bold', 'font-style' : 'italic'});
		}
	});
}

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

function DisableBackButton() {
    window.history.forward();
}

DisableBackButton();
window.onload = DisableBackButton;
window.onpageshow = function(evt) { if (evt.persisted) DisableBackButton() }
window.onunload = function() { void (0) }

$(document).ready(init);
