$( document ).ready(function() {
	$.jMaskGlobals.watchDataMask= true;
	$('.ANY-ANOTHER').mask('');
	$( "body" ).append( "<input id='nao_duplicar_requisicao' value='0' style='display: none;'></input>" );
});	


function atualizaSeletor(url,seletor)
{
	$(seletor).html("<center> <img src='css/load.gif' /></center>");
	$(seletor).load(url);
}

function abrirFormulario(url)
{
	$(".formulario_esquerda").load(url);
}

function desabilitarComponente(componente)
{
	 $(componente).prop("disabled",true);
}
function habilitarComponente(componente)
{
	 $(componente).prop("disabled",false);
}

function salvarDados(formulario, exibir_load = false, seletor_load = "", nao_utilizado = false, fechar_modal = "", form_filtro ="", resultado_filtro ="")
{	
	
	if(exibir_load)
	{	
		var htmlAnt = $(seletor_load).html();
		width = $(seletor_load).innerWidth()
		height = $(seletor_load).innerHeight()
		padding = parseInt($(seletor_load).css('padding-top').replace("px",""))
		$(seletor_load).css("width", width+"px");
		$(seletor_load).css("height", height+"px");
		$(seletor_load).css("padding", padding+"px");
		$(seletor_load).html("<center><img src='css/load.gif' style='height: "+(height-(padding*2))+"px' /></center>");
	}
	retornoInclusao = false;
	bloqueio_form = false;
	$("#"+formulario + ' input[required]').each(function() {
		
		if ($(this).val() == ""  )
		{
			bloqueio_form = true;
			$(this).css("border-color","red");
		}	
		else
		{
			$(this).css("border-color","#6b8dae");
		}	
	});
	
	$("#"+formulario+' select[required]').each(function() {
		
		if ($(this).val() == ""  )
		{
			bloqueio_form = true;
			$(this).css("border-color","red");
			
			if($(this).attr("name"))
			{
				//alert($(this).attr("name"))
				//select2
				name_select = $(this).attr("name");
				$("#"+formulario+' span').each(function() {
					if($(this).attr("aria-labelledby"))
					{
						if($(this).attr("aria-labelledby").split("-")[1] == name_select) 
						{
							//alert(name_select+ " - "+$(this).attr("aria-labelledby").split("-")[1])
							$(this).css("border-color","red");
						}
					}
				});
			}
		}	
		else
		{
			$(this).css("border-color","#6b8dae");
			
			if($(this).attr("name"))
			{
				//alert($(this).attr("name"))
				//select2
				name_select = $(this).attr("name");
				$("#"+formulario+' span').each(function() {
					if($(this).attr("aria-labelledby"))
					{
						if($(this).attr("aria-labelledby").split("-")[1] == name_select) 
						{
							$(this).css("border-color","#6b8dae");
						}
					}
				});
			}
		}
		
	});
	
	if (! bloqueio_form)
	{	
		dadosJson = $("#"+formulario).serialize(); 
		$.post($("#"+formulario).attr("action"),dadosJson, function (retorno)
		{
			if(exibir_load)
			{
				$(seletor_load).html(htmlAnt);
				//$(seletor_load).css("width", "auto");
				//$(seletor_load).css("height", "auto");
				$(seletor_load).css("width", width+"px");
				$(seletor_load).css("height", height+"px");
				$(seletor_load).css("padding", padding+"px");
			}
			alert(retorno.mensagem);
			if(retorno.status)
			{
				retornoInclusao = true;
				//fechar modal
				if(fechar_modal != "")
				{
					$(fechar_modal).css("display","none");
				}
				//atualizar lista
				if(form_filtro != "")
				{	
					filtraDados(form_filtro, resultado_filtro);
				}	
			}
			
		},'json'
		);
	}
	else
	{
		alert("Verifique campos obrigatórios!");
	}	
	return retornoInclusao;
}
function salvarDadosErecarregarApagina(formulario, exibir_load, seletor_load, pagina_anterior = true, exibe_alert_ok = true)
{
	retornoInclusao = false;
	bloqueio_form = false;
	$("#"+formulario + ' input[required]').each(function() {
		
		if ($(this).val() == ""  )
		{
			bloqueio_form = true;
			$(this).css("border-color","red");
		}	
		else
		{
			$(this).css("border-color","#6b8dae");
		}	
	});
	
	$("#"+formulario+' select[required]').each(function() {
		
		if ($(this).val() == ""  )
		{
			bloqueio_form = true;
			$(this).css("border-color","red");
			
			if($(this).attr("name"))
			{
				//alert($(this).attr("name"))
				//select2
				name_select = $(this).attr("name");
				$("#"+formulario+' span').each(function() {
					if($(this).attr("aria-labelledby"))
					{
						if($(this).attr("aria-labelledby").split("-")[1] == name_select) 
						{
							//alert(name_select+ " - "+$(this).attr("aria-labelledby").split("-")[1])
							$(this).css("border-color","red");
						}
					}
				});
			}
		}	
		else
		{
			$(this).css("border-color","#6b8dae");
			
			if($(this).attr("name"))
			{
				//alert($(this).attr("name"))
				//select2
				name_select = $(this).attr("name");
				$("#"+formulario+' span').each(function() {
					if($(this).attr("aria-labelledby"))
					{
						if($(this).attr("aria-labelledby").split("-")[1] == name_select) 
						{
							$(this).css("border-color","#6b8dae");
						}
					}
				});
			}
		}
		
	});
	
	if (! bloqueio_form)
	{	
		
		if(exibir_load)
		{	
			var htmlAnt = $(seletor_load).html();
			width = $(seletor_load).innerWidth()
			height = $(seletor_load).innerHeight()
			padding = parseInt($(seletor_load).css('padding-top').replace("px",""))
			$(seletor_load).css("width", width+"px");
			$(seletor_load).css("height", height+"px");
			$(seletor_load).css("padding", padding+"px");
			$(seletor_load).html("<center><img src='css/load.gif' style='height: "+(height-(padding*2))+"px' /></center>");
		}	
		
		dadosJson = $("#"+formulario).serialize(); 
		$.post($("#"+formulario).attr("action"),dadosJson, function (retorno)
		{
			if(exibe_alert_ok)
			{	
				alert(retorno.mensagem);
			}	
			if(retorno.status)
			{
				if(pagina_anterior)
				{	
					aLink = window.location.href.split("?");
					window.location.href = aLink[0];
				}
				else
				{
					location.reload();
				}
			}
			else
			{
				if(exibir_load)
				{
					$(seletor_load).html(htmlAnt);
					$(seletor_load).css("width", "auto");
					$(seletor_load).css("height", "auto");
				}	
				if(! exibe_alert_ok)
				{	
					alert(retorno.mensagem);
				}	
			}
		},'json'
		);
	}
	else
	{
		alert("Verifique campos obrigatórios!");
	}	
	return retornoInclusao;
	
}


function logar(formulario)
{	
	
		dadosJson = $("#"+formulario).serialize(); 
		$.post($("#"+formulario).attr("action"),dadosJson, function (retorno)
		{
			if (retorno.status)
			{
				//window.location.href = "index.php";
				//javascript:history.back(-2);
				aLink = window.location.href.split("?");
				window.location.href = aLink[0];
			}
			else
			{
				alert(retorno.mensagem);
			}
		},'json'
		);
	
}

function filtraDados(formulario,seletorRetorno)
{	
	executou = false;
	bloqueio_form = false;
	$("#"+formulario+' input[required]').each(function() {
		
		if ($(this).val() == ""  )
		{
			bloqueio_form = true;
			$(this).css("border-color","red");
		}	
		else
		{
			$(this).css("border-color","#6b8dae");
		}	
	});
	
	$("#"+formulario+' select[required]').each(function() {
		
		if ($(this).val() == ""  )
		{
			bloqueio_form = true;
			$(this).css("border-color","red");
			
			if($(this).attr("name"))
			{
				//alert($(this).attr("name"))
				//select2
				name_select = $(this).attr("name");
				$("#"+formulario+' span').each(function() {
					if($(this).attr("aria-labelledby"))
					{
						if($(this).attr("aria-labelledby").split("-")[1] == name_select) 
						{
							//alert(name_select+ " - "+$(this).attr("aria-labelledby").split("-")[1])
							$(this).css("border-color","red");
						}
					}
				});
			}
		}	
		else
		{
			$(this).css("border-color","#6b8dae");
			
			if($(this).attr("name"))
			{
				//alert($(this).attr("name"))
				//select2
				name_select = $(this).attr("name");
				$("#"+formulario+' span').each(function() {
					if($(this).attr("aria-labelledby"))
					{
						if($(this).attr("aria-labelledby").split("-")[1] == name_select) 
						{
							$(this).css("border-color","#6b8dae");
						}
					}
				});
			}
		}
		
	});
	
	if (! bloqueio_form)
	{	
		if($("#nao_duplicar_requisicao").val() == "0")
		{
			//jquery_postar.abort();
			$("button").prop("disabled",true);
			$("#nao_duplicar_requisicao").val("1");
			$( "body" ).append( "<div id='bloquear_pagina' style='position: fixed; width: 100%; height: 100%;  z-index:99999; top:0; left: 0;'></div>" );
			$("#"+seletorRetorno).html("<center><img src='css/load.gif'/></center>");
			dadosJson = $("#"+formulario).serialize(); 
			executou = true
			statusInicioRequisicao();
			jquery_postar = $.post($("#"+formulario).attr("action"),dadosJson, function (retorno)
				{
					$("#"+seletorRetorno).html(retorno);
					//alert(retorno.mensagem);
					$("#nao_duplicar_requisicao").val("0");
					$("button").prop("disabled",false);
					$( "#bloquear_pagina" ).remove();
					statusFimRequisicao();
				}
			).fail(function(xhr, status, error) {
				// error handling
				$("#nao_duplicar_requisicao").val("0");
				$("button").prop("disabled",false);
				$("#"+seletorRetorno).html("");
				$( "#bloquear_pagina" ).remove();
				statusFimRequisicao();
				alert("Ocorreu um erro de comunicação com o servidor! Tente novamente.");
			});
			
		}
		
	}	
	return executou;
}

function excluirDados(url)
{	
	if (confirm("Tem certeza?"))
	{	
		$.post(url, function (retorno)
		{
			alert(retorno.mensagem);
		},'json'
		);
	}
}

function executar(url)
{	
	$.post(url, function (retorno)
	{
		alert(retorno.mensagem);
	},'json'
	);
}


function salvarTabela(formulario) { 
	
	if (! validarForm(formulario))
	{	
		dadosJson = $("#"+formulario).serialize(); 
		statusInicioRequisicao();
		$.post($("#"+formulario).attr("action"),dadosJson, function (retorno)
		{
			atualizaSeletor('src/controller/Tabelas_bd.php?mod=listar','.formulario_direita'); 
			atualizaSeletor('src/controller/Tabelas_bd.php?mod=novo','.formulario_esquerda');
			statusFimRequisicao();
			alert(retorno.mensagem);
		},'json'
		);
	}
	else
	{
		alert("Verifique campos obrigatórios!");
	}	
}
function salvarColuna(formulario, idTabela) { 
	
	if (! validarForm(formulario))
	{	
		statusInicioRequisicao();
		dadosJson = $("#"+formulario).serialize(); 
		$.post($("#"+formulario).attr("action"),dadosJson, function (retorno)
		{
			abrirFormulario('src/controller/Colunas_bd.php?mod=novo&idTabela='+idTabela); 
			atualizaSeletor('src/controller/Colunas_bd.php?mod=listar&idTabela='+idTabela,'#colunas_bd'+idTabela);
			statusFimRequisicao();
			alert(retorno.mensagem);
		},'json'
		);
	}
	else
	{
		alert("Verifique campos obrigatórios!");
	}	
}
function salvarCargaTabela(formulario, idTabela) { 
	
	if (! validarForm(formulario))
	{	
		statusInicioRequisicao();
		dadosJson = $("#"+formulario).serialize(); 
		$.post($("#"+formulario).attr("action"),dadosJson, function (retorno)
		{
			abrirFormulario('src/controller/Carga_tabela_bd.php?mod=novo&idTabela='+idTabela); 
			atualizaSeletor('src/controller/Carga_tabela_bd.php?mod=listar&idTabela='+idTabela,'#carga_tabela'+idTabela); 
			statusFimRequisicao();
			alert(retorno.mensagem);
		},'json'
		);
	}
	else
	{
		alert("Verifique campos obrigatórios!");
	}	
}
function excluirColuna(url, idTabela)
{	
	if (confirm("Tem certeza?"))
	{	
		statusInicioRequisicao();
		$.post(replaceAll(url," ","%20"), function (retorno)
		{
			abrirFormulario('src/controller/Colunas_bd.php?mod=novo&idTabela='+idTabela); 
			atualizaSeletor('src/controller/Colunas_bd.php?mod=listar&idTabela='+idTabela,'#colunas_bd'+idTabela);
			statusFimRequisicao();
			alert(retorno.mensagem);
		},'json'
		);
	}
}
function excluirCargaTabela(url, idTabela)
{	
	if (confirm("Tem certeza?"))
	{	
		statusInicioRequisicao();
		$.post(replaceAll(url," ","%20"), function (retorno)
		{
			abrirFormulario('src/controller/Carga_tabela_bd.php?mod=novo&idTabela='+idTabela); 
			atualizaSeletor('src/controller/Carga_tabela_bd.php?mod=listar&idTabela='+idTabela,'#carga_tabela'+idTabela); 
			statusFimRequisicao();
			alert(retorno.mensagem);
		},'json'
		);
	}
}
function excluirTabela(url)
{	
	if (confirm("Tem certeza?"))
	{	
		statusInicioRequisicao();
		$.post(replaceAll(url," ","%20"), function (retorno)
		{
			atualizaSeletor('src/controller/Tabelas_bd.php?mod=listar','.formulario_direita'); 
			atualizaSeletor('src/controller/Tabelas_bd.php?mod=novo','.formulario_esquerda');
			statusFimRequisicao();
			alert(retorno.mensagem);
		},'json'
		);
	}
}


function validarForm(formulario)
{
	bloqueio_form = false;
	$('input[required]').each(function() {
		
		if ($(this).val() == ""  )
		{
			bloqueio_form = true;
			$(this).css("border-color","red");
		}	
		else
		{
			$(this).css("border-color","#6b8dae");
		}	
	});
	
	$("#"+formulario+' select[required]').each(function() {
		
		if ($(this).val() == ""  )
		{
			bloqueio_form = true;
			$(this).css("border-color","red");
			
			if($(this).attr("name"))
			{
				//alert($(this).attr("name"))
				//select2
				name_select = $(this).attr("name");
				$("#"+formulario+' span').each(function() {
					if($(this).attr("aria-labelledby"))
					{
						if($(this).attr("aria-labelledby").split("-")[1] == name_select) 
						{
							//alert(name_select+ " - "+$(this).attr("aria-labelledby").split("-")[1])
							$(this).css("border-color","red");
						}
					}
				});
			}
		}	
		else
		{
			$(this).css("border-color","#6b8dae");
			
			if($(this).attr("name"))
			{
				//alert($(this).attr("name"))
				//select2
				name_select = $(this).attr("name");
				$("#"+formulario+' span').each(function() {
					if($(this).attr("aria-labelledby"))
					{
						if($(this).attr("aria-labelledby").split("-")[1] == name_select) 
						{
							$(this).css("border-color","#6b8dae");
						}
					}
				});
			}
		}
		
	});
	return bloqueio_form;
}


function statusInicioRequisicao()
{
	$("#statusRequisicao").css("z-index", "9999");
	$("#statusRequisicao").html("<center><div id=\"statusRequisicaoTop\" style='z-index: 9999;'><div id=\"statusRequisicaoContent\" >Aguarde...</div></div></center>");
}
function statusFimRequisicao()
{
	$("#statusRequisicao").html("");
}


function replaceAll(str, needle, replacement) {
    return str.split(needle).join(replacement);
}
