/**
* JavaScript Document
* @file: Arquivo com os scripts básicos comuns
* @date: 03/09/2007
* @author: Alisson Douglas (alisson@brivia.com.br)
* @version: 1.0
*/

var MSG42 = "Quantidade de produto seleciona &eacute; inferior a quantidade em estoque, favor adicionar no m&aacute;ximo [ESTOQUE] &iacute;tens!"

var MSG43 = "O produto n&atilde;o encontra-se mais em estoque!";


/**
* Reescreve a function alert utilizando o plugin do jQuery
*
* @author Mauricio Brentano (mauricio@brivia.com.br)
* @return void
*/

function alert(message)
{
	$.prompt(message);
}

/**
* Adiciona _blank para links externos
*
* @author Alisson Douglas (alisson@brivia.com.br)
* @return void
*/
function externalLinks()
{
	$("a[@rel=external]").attr("target", "_blank");
}
/*
function externalLinks()
{
	if (!document.getElementsByTagName) return;
	
	var anchors = document.getElementsByTagName("a");
	
	for (var i=0; i<anchors.length; i++)
	{
		var anchor = anchors[i];
		
		if (anchor.getAttribute("href") && anchor.getAttribute("rel") == "external")
		{
			anchor.target = "_blank";
		}
	}
}
*/

/**
 * Carrega países, estados e cidades na respectivas combos, via ajax
 * 
 * @author Gabriel Fleck Neves (gabriel@brivia.com.br)
 */
function carregarInfoLocalidade(pais, estado, municipio, numcampo)
{
	if (!numcampo)
	{
		numcampo = "";
	}
	
	//Carrega os países
	$.ajax(
	{
		type: "POST",
		url: dirAcao+"acao/Pais.php",
		data: "acao=carregar&pais="+pais,
		success: function(msg)
		{
			$("#selPais"+numcampo).html(msg);
		}
	});
	
	if (estado != "")
	{
		//Carrega os estados
		$.ajax(
		{
			type: "POST",
			url: dirAcao+"acao/Estado.php",
			data: "acao=carregar&pais="+pais+"&estado="+estado,
			success: function(msg)
			{
				$("#selEstado"+numcampo).html(msg);
			}
		});
	}
	else
	{
		$("#selEstado"+numcampo).html("<option value=\"\">Selecione o Estado</option>");
	}
	
	if (municipio != "")
	{
		//Carrega os municipios
		$.ajax(
		{
			type: "POST",
			url: dirAcao+"acao/Municipio.php",
			data: "acao=carregar&pais="+pais+"&estado="+estado+"&municipio="+municipio,
			success: function(msg)
			{
				$("#selMunicipio"+numcampo).html(msg);
			}
		});
	}
	else
	{
		$("#selMunicipio"+numcampo).html("<option value=\"\">Selecione a Cidade</option>");
	}
}

/**
 * Carrega estados na respectiva combo, via ajax
 * 
 * @author João Paulo Duprat Pohlmann (jpaulo@brivia.com.br)
 */
function carregarEstado(estado, numcampo, pais, promocao)
{
	if (!numcampo)
	{
		numcampo = "";
	}
	
	if (!pais)
	{
		pais = "";
	}

	if (promocao)
	{
		promocao = "&promocao=sim";
	}
	else
	{
		promocao = "";
	}

	//Carrega os estados
	$.ajax(
	{
		type: "POST",
		url: dirAcao+"acao/Estado.php",
		data: "acao=carregar&estado="+estado+"&pais="+pais+promocao,
		success: function(msg)
		{
			$("#selEstado"+numcampo).html(msg);
		}
	});
}


/**
 * Carrega tipos de meios de comunicação na respectiva combo, via ajax
 *
 * @author Gabriel Fleck Neves (gabriel@brivia.com.br)
 */
function carregarTiposMeiosComunicacao()
{
	$.ajax(
	{
		type: "POST",
		url: dirAcao+"acao/TipoMeioComunicacao.php",
		data: "acao=carregar",
		success: function(msg)
		{
			$("#selTipoMeioComunicacao").html(msg);
		}
	});
}

/**
 * Carrega os Status.
 *
 * @author Mauricio Brentano (mauricio@brivia.com.br)
 */
function carregarStatus(codigo, idioma)
{
	$.ajax(
	{
		type: "POST",
		url: dirAcao+"acao/Status.php",
		data: "acao=carregar&codigo="+codigo,
		success: function(msg)
		{
			$("#selStatus"+idioma).html(msg);
		}		
	});
}

/**
 * Carrega as Seções/Localizações.
 *
 * @author Gabriel Fleck Neves (gabriel@brivia.com.br)
 */
function carregarSecao()
{
	$.ajax(
	{
		type: "POST",
		url: dirAcao+"acao/Secao.php",
		data: "acao=carregar",
		success: function(msg)
		{
			$("#selSecao").html(msg);
		}		
	});
}

/**
 * Carrega as formas de pagamentos.
 *
 * @author Mauricio Brentano (mauricio@brivia.com.br)
 */
function carregarFormaPagamento(idioma, restricao)
{
	if (!idioma)
	{
		var idioma = '';
	}

	if (!restricao)
	{
		var restricao = '';
	}

	$.ajax(
	{
		type: "POST",
		url: dirAcao+"acao/FormaPagamento.php",
		data: "acao=carregar&restricao="+restricao,
		success: function(msg)
		{
			$("#selCartao"+idioma).html(msg);
		}		
	});
}

/**
 * Carrega os Destaques de produto.
 *
 * @author Mauricio Brentano (mauricio@brivia.com.br)
 */
function carregarProdutoDestaque(codigo)
{
	$.ajax(
	{
		type: "POST",
		url: dirAcao+"acao/ProdutoDestaque.php",
		data: "acao=carregar&codigo="+codigo,
		success: function(msg)
		{
			$("#selDestaque").html(msg);
		}		
	});
}

/**
 * Carrega os idiomas.
 *
 * @author Mauricio Brentano (mauricio@brivia.com.br)
 */
function carregarIdioma(codigo)
{
	$.ajax(
	{
		type: "POST",
		url: dirAcao+"acao/Idioma.php",
		data: "acao=carregar&codigo="+codigo,
		success: function(msg)
		{
			$("#selIdioma").html(msg);
		}		
	});
}

/**
 * Carrega as especificacoes em um combobox.
 *
 * @author Mauricio Brentano (mauricio@brivia.com.br)
 */
function carregarEspecificacao(idioma)
{
	if (!idioma)
	{
		var idioma = '';
	}
	
	$.ajax(
	{
		type: "POST",
		url: dirAcao+"acao/Especificacao.php",
		data: "acao=carregar&idioma="+idioma,
		success: function(msg)
		{
			$("#selEspecificacao"+idioma).html(msg);
		}		
	});
}

/**
 * Carrega os valores de uma determinada especificacao em um combobox.
 *
 * @author Mauricio Brentano (mauricio@brivia.com.br)
 */
function carregarValoresEspecificacao(especificacao, idioma)
{
	if (!idioma)
	{
		var idioma = '';
	}
	
	$.ajax(
	{
		type: "POST",
		url: dirAcao+"acao/EspecificacaoValor.php",
		data: "acao=carregar&especificacao="+especificacao,
		success: function(msg)
		{
			$("#selValorEspecificacao"+idioma).html(msg);
			$("#selValorEspecificacao"+idioma).removeAttr("disabled");
		}		
	});
}

/**
 * Carrega os tipos de apresentação.
 *
 * @author Mauricio Brentano (mauricio@brivia.com.br)
 */
function carregarApresentacao(codigo)
{
	$.ajax(
	{
		type: "POST",
		url: dirAcao+"acao/EspecificacaoApresentacao.php",
		data: "acao=carregar&codigo="+codigo,
		success: function(msg)
		{
			$("#selApresentacao").html(msg);
		}
	});
}

/**
 * Carrega os tipos de modalidade de promoção/alteração de valores de produtos.
 *
 * @author Gabriel Fleck Neves (gabriel@brivia.com.br)
 */
function carregarPromocaoModalidade(codigo)
{
	$.ajax(
	{
		type: "POST",
		url: dirAcao+"acao/PromocaoModalidade.php",
		data: "acao=carregar&codigo="+codigo,
		success: function(msg)
		{
			$("#selPromocaoModalidade").html(msg);
		}
	});
}
 
/**
 * Carregar listagens com o Ingrid (plugin do jQuery).
 *
 * @author Gabriel Fleck Neves (gabriel@brivia.com.br)
 */
function carregarListagem(id_tabela, url_tabela, params, alt_tabela, larg_colunas, largura_rolagem, resize_colunas, regs_pagina, permite_paginacao, permite_ordem, ordem_padrao, funcoes_carregar, regs_total)
{
	
	// Caso não seja setado o total de registros
	regs_total = (regs_total != "") ? regs_total : 0;
	
	var listar = "";
	
	listar+= 'var listagem = $("#div_'+id_tabela+' table").ingrid(';
	listar+= '{';
	listar+= "    url: '"+url_tabela+"',";
	listar+= "    type: 'POST',";
	listar+= "    dataType: 'html',";
	listar+= "    extraParams: { "+params+" },";
	listar+= '    height: '+alt_tabela+',';
	listar+= '    colWidths: ['+larg_colunas+'],';
	listar+= '    scrollbarW: '+largura_rolagem+',';
	listar+= '    resizableCols: '+resize_colunas+',';
	listar+= '    initialLoad : true,';
	listar+= '    savedStateLoad: false,';
	listar+= '    rowSelection: false,';
	listar+= "    rowClasses: ['grid-row-style1','grid-row-style3'],";
	listar+= '    recordsPerPage: '+regs_pagina+',';
	listar+= '    paging: '+permite_paginacao+',';
	listar+= '    totalRecords: '+regs_total+',';
	listar+= '    sorting: '+permite_ordem+',';
	listar+= "    sortDefaultDir: '"+ordem_padrao+"',"
	listar+= "    loadComplete: '"+funcoes_carregar+"'";
	listar+= '});';
	
	//Transforma a string em código executável
	eval(listar);
	
	// Exemplo do original
	/*
	var listagem = $("#tblLista").ingrid(
	{
		url: 'caminho_arquivo', 							// Link que irá carregar os dados da tabela
		type: 'POST',										// Tipo de envio de dados para o servidor (GET ou POST)
		dataType: 'html',									// 'html' ou 'json' - Tipo de dados retornado
		extraParams: { acao: 'listar' },					// Parâmetros para mandar ao servidor (GET ou POST) 				
		height: 350,										// Altura em pixels da área onde os dados serão carregados
		colWidths: [120,175,175,90,100],					// Larguras iniciais das colunas
		scrollbarW: 660,									// Largura total das colunas, em função da rolagem (padrão: 17)
		resizableCols: true,								// Permissão para aumentar/diminuir a largura das colunas
		initialLoad : true,									// Carregar na inicialização o link informado
		savedStateLoad: false,								// Carregar na inicialização dados salvos de um estado anterior
		rowSelection: false,								// Permissão para seleção de linhas
		rowClasses: ['grid-row-style1','grid-row-style3'],  // Classes CSS para exibição das linhas
		recordsPerPage: 20,									// Registros por página
		paging: true,										// Permissão para paginação
		sorting: true,										// Permissão para reordenar lista ao clicar em nome de coluna
		sortDefaultDir: 'asc',								// Ordenação padrão 
		loadComplete: 'eventosListagem();'					// Funções a serem carregadas quando completar a listagem 
	});
	*/
}

/**
 * Seta eventos para serem utilizados pelas listagens do sistema, após o carregamento das mesmas
 *
 * @author Gabriel Fleck Neves (gabriel@brivia.com.br)
 */	
function eventosListagem()
{
	// Marca/desmarca todos os checkbox em uma listagem //
	$(".chkTodos").parent().unbind("click");
	
	// Remove o overflow e borda dos botões/div's onde há opção de exclusão
	$(".chkTodos").parent().css("overflow","hidden");
	$(".chkTodos").css("background","none");

	$(".chkItemGrupo").each( function()
	{
		$(this).css("background","none");
	});

	$(".chkTodos").unbind("click").click(function()
	{	
		var grupo = $(this).attr("selecao");
		
		$(".chkItemGrupo").each( function()
		{
			if ($(this).attr("selecao") == grupo)
			{
				if ($("#chkTodos"+grupo).is(":checked"))
				{
					$(this).attr("checked", "checked");
				}
				else
				{
					$(this).removeAttr("checked");
				}
			}
		});
	});

	$(".chkItemGrupo").unbind("click").click(function()
	{
		var grupo = $(this).attr("selecao");
		
		var totalChecados = 0;

		$(".chkItemGrupo").each( function()
		{
			if ($(this).attr("selecao") == grupo && $(this).is(":checked"))
			{
			  totalChecados++;
			}
		});
		
		if (totalChecados < $(".chkItemGrupo").length)
		{
			$("#chkTodos"+grupo).removeAttr("checked");
		}
		else if (totalChecados == $(".chkItemGrupo").length)
		{
			$("#chkTodos"+grupo).attr("checked", "checked");
		}
	});
	
	// Ação do botão de exclusão de itens selecionados (checkboxes marcadas)
	$(".bt-excluir-listagem").unbind("click").click(function()
	{
		var frmExclusao = $(this).attr("enviar");
		var grupo = $(this).attr("selecao");
		
		var totalChecados = 0;

		$(".chkItemGrupo").each( function()
		{
			if ($(this).attr("selecao") == grupo && $(this).is(":checked"))
			{
			  totalChecados++;
			}
		});
		
		if (totalChecados > 0)
		{
			if (confirm('Excluir registro(s) selecionado(s)?'))
			{
				$("#"+frmExclusao)[0].submit();
			}
		}
		else
		{
			alert('Nenhum registro selecionado.');
			return false;
		}
	});

	// Ação do botão de salvar itens selecionados (checkboxes marcadas)
	$(".bt-salvar-selecionados").unbind("click").click(function()
	{
		//var frmAlteracao = $(this).attr("enviar");
		var grupo = $(this).attr("selecao");
		
		var totalChecados = 0;

		$(".chkItemGrupo").each( function()
		{
			if ($(this).attr("selecao") == grupo && $(this).is(":checked"))
			{
			  totalChecados++;
			}
		});
		
		if (totalChecados > 0)
		{
			if (confirm('Alterar registro(s) selecionado(s)?'))
			{
				//$("#"+frmAlteracao)[0].submit();
				return true;
			}
			else
			{
				return false;
			}
		}
		else
		{
			alert('Nenhum registro selecionado.');
			return false;
		}
	});

	// Redireciona a página para links setados em elementos/objetos HTML com a classe 'aLinkObjeto' //
	$(".linkListagem").unbind("click").click(function() 
	{
		document.location.href = $(this).attr("linkRedir");
	});
	
	/**
	* atualiza o total de registros da página para informar ao usuario
	**/
	$("#totalRegistros").html($(".totalRegistrosPesquisa").attr("total"));
	
	
	/**
	* Habilita o botão de impressão da listagem de Pessoas
	**/
	if ($("#frmExcluirPessoa").length > 0)
	{
		$("#btnImprimir").unbind("click").click(function()
		{
			var total = $("#frmExcluirPessoa").find(".chkItemGrupo:checked").length;
			if (total == 0)
			{
				alert("Selecione ao menos um registro para imprimir.");
			}
			else
			{
				var codigo = "";
				$("#frmExcluirPessoa").find(".chkItemGrupo:checked").each(function(x){
					if (x != 0)
					{
						codigo += "|";
					}
					codigo += $(this).val();
				});
				window.open("PessoaImpressao.php?codigo="+codigo);
			}
		});
	}
}


/**
* Comandos a serem executados antes do envio de um form.
*
* @author Mauricio Brentano
*/
function inicioEnvioForm()
{		
	for (i=0; i < parent.frames.length; ++i )
	{
		if ( parent.frames[i].FCK )
		{
			parent.frames[i].FCK.UpdateLinkedField();
		}
	}

	alert("<img src=\"comum/img/loading.gif\" /> Carregando...");
		
	$("#jqibuttonOk").hide();
}

/**
* Comandos a serem executados caso ocorra algum erro no envio do form.
*
* @author Mauricio Brentano
*/
function erroEnvioForm()
{
	alert("Ocorreu um erro no sistema. Por favor, tente novamente mais tarde.");
	return false;
}

/**
* Comandos a serem executados quando finalizar o envio de um form com sucesso.
*
* @author Mauricio Brentano
*/
function sucessoEnvioForm(msg, acaopagina, idtabela)
{
	var regexp = /^[ \t]+/;
	msg = msg.replace(regexp, '');							
	
	retorno = msg.split("|||");
	
	$(".jqimessage").html(retorno[1]);						
	$("#jqibuttonOk").show();
	
	/*
	/ Atualiza listagens (Ingrid) ou redireciona para a página especificada quando
	/ a submissão do formulário é completada
	*/
	if (acaopagina)
	{		
		$("#jqibuttonOk").unbind("click").click(function()
		{
			if (acaopagina == 'atualizarListagem' && idtabela != '')
			{
				$(".jqibox").hide();
				ifmPostForm.atualizarListagem(idtabela);
			}
			else
			{
				redirecionaEnvioForm(acaopagina);
			}
		});
	}
}

/**
 * Quando finalizar o envio de um determinado form, redireciona para uma página especificada.
 *
 * @author Gabriel Fleck Neves (gabriel@brivia.com.br)
 */
function redirecionaEnvioForm(pagina)
{
	document.location.href = pagina;
}


/**
* Função para inicializar as funções usadas no projeto (baseadas em jQuery)
*
* @author Alisson Douglas (alisson@brivia.com.br)
*/
$(document).ready(function()
{
	externalLinks(); // Função para inserir _blank em links externos
	
	/*
	 * Controle de Formulários
	 * Ações, regras e validações que são comuns a vários arquivos.
	 */
	
	/**
	 * Seta CEP para busca de endereco, via ajax.
	 *
	 * @author Gabriel Fleck Neves (gabriel@brivia.com.br)
	 */
	$(".txtCEP").blur(function()
	{
		if ($(this).attr("numcampo")) { var numcampo = $(this).attr("numcampo"); } else { var numcampo = ""; }
		
		$("#carregandoCep"+numcampo).removeClass("hidden");
		
		var cep = $(this).val();
		
		if (cep != "" && (cep.length == 8 || cep.length == 9))
		{
			cep = cep.replace("-", "");
			$.ajax(
			{
				type: "POST",
				url: dirAcao+"acao/Logradouro.php",
				data: "acao=carregar&cep="+cep,
				success: function(msg)
				{
					var regexp = /^[- \t]+/;
					msg = msg.replace(regexp, '');

					if (msg != "")
					{
						$("#selPais"+numcampo).html("<option value=\"\">Carregando...</option>");
						$("#selEstado"+numcampo).html("<option value=\"\">Carregando...</option>");
						$("#selMunicipio"+numcampo).html("<option value=\"\">Carregando...</option>");
						
						resultados = msg.split("|||");
						
					 	$("#txtEndereco"+numcampo).val(resultados[0]);						
						carregarInfoLocalidade(resultados[1], resultados[2], resultados[3], numcampo);
					}
					else
					{
						//$("#selEstado").html("<option value=\"\">Selecione o Pa&iacute;s</option>");
						//$("#selMunicipio").html("<option value=\"\">Selecione o Estado</option>");
					}
					$("#carregandoCep"+numcampo).addClass("hidden");
				}
			});
		}
	});
	

	/**
	 * Seta país para estados e municípios, via ajax
	 *
	 * @author Gabriel Fleck Neves (gabriel@brivia.com.br)
	 */	
	$(".selPais").change(function()
	{
		if ($(this).attr("numcampo")) { var numcampo = $(this).attr("numcampo"); } else { var numcampo = ""; }
		
		var pais = $(this).val();
		
		if (pais != "")
		{
			$("#selEstado"+numcampo).html("<option value=\"\">Carregando...</option>");
			$("#selMunicipio"+numcampo).html("<option value=\"\">Selecione o Estado</option>");
			$.ajax(
			{
				type: "POST",
				url: dirAcao+"acao/Estado.php",
				data: "acao=carregar&pais="+pais,
				success: function(msg)
				{
					$("#selEstado"+numcampo).html(msg);
				}
			});
		}
		else
		{
			$("#selEstado"+numcampo).html("<option value=\"\">Selecione o Pa&iacute;s</option>");
			$("#selMunicipio"+numcampo).html("<option value=\"\">Selecione o Estado</option>");
		}
	});

	/**
	 * Seta estado para municípios, via ajax
	 *
	 * @author Gabriel Fleck Neves (gabriel@brivia.com.br)
	 */		
	$(".selEstado").change(function()
	{
		if ($(this).attr("numcampo")) { var numcampo = $(this).attr("numcampo"); } else { var numcampo = ""; }
		
		var estado = $(this).val();
		
		if (estado != "")
		{
			$("#selMunicipio"+numcampo).html("<option value=\"\">Carregando...</option>");
			$.ajax(
			{
				type: "POST",
				url: dirAcao+"acao/Municipio.php",
				data: "acao=carregar&estado="+estado,
				success: function(msg)
				{
					$("#selMunicipio"+numcampo).html(msg);
				}
			});
		}
		else
		{
			$("#selMunicipio"+numcampo).html("<option value=\"\">Selecione o Estado</option>");
		}
	});
	
	
	/**
	 * Ordenação de "Meus Pedidos"
	 *
	 * @author Jean Michel Dias (jdias@brivia.com.br)
	 */	
	if($("#selOrdenacao").length > 0)
	{
		// altera ordenação
		$("#selOrdenacao").change(function()
		{
			carregaPaginacaoMeusPedidos();
		});	
		
		// altera nº de registros por página
		$("#selLinhas").change(function()
		{
			carregaPaginacaoMeusPedidos();
		});	
	}
	
});

/**
 * Função para Ordenação de "Meus Pedidos"
 *
 * @author Jean Michel Dias (jdias@brivia.com.br)
 */	
function carregaPaginacaoMeusPedidos()
{
	var codigoPessoa = $("#hdnPessoaCodigo").val(); 
	var ordem = $("#selOrdenacao").val();
	var limite = $("#selLinhas").val();
	var pagina = $("#selPagina").val();
	$.ajax(
	{
		type: "POST",
		url: dirAcao+"acao/Pedido.php",
		data: "acao=carregarListagem&codigoPessoa="+codigoPessoa+"&ordem="+ordem+"&limite="+limite+"&pagina="+pagina,
		success: function(msg)
		{
			$("#listagem").html(msg);
			
			// atualiza o thickbox
			tb_init("a");
		}
	});
}



/**

 * Carrega tipos de meios de comunicao na respectiva combo, via ajax

 *

 * @author Clarice Prto (clarice@brivia.com.br)

 */

function carregarUnidadeFederativa(parametro, unidadefederativa, numcampo, pais, promocao)

{
	if (pais=="")
	{
		numcampo = "";
	}

	if (pais=="")
	{
		pais = "";
	}

	if (promocao!="")
	{
		promocao = "&promocao=sim";
	}
	else
	{
		promocao = "";
	}

	$.ajax(
	{
		type: "POST",
		url:dirAcao+"acao/Estado.php",
		data: "acao=carregar&unidadefederativa="+unidadefederativa+"&pais="+pais+promocao,
		success: function(msg)
		{
			$(parametro+" .selUnidadeFederativa"+numcampo).html(msg);
			if (unidadefederativa=="")
			{
				$(parametro+" .selUnidadeFederativa"+numcampo).val("option:first");
			}
		}
	});

}

/**
 * Marca todos os CheckBox de um determinado valor no atributo "Selecao"
 *
 */
function MarcarTodosCheckBox(Selecao)
{
	$("input[type=checkbox].chkItemGrupo[selecao='Produto']").attr({checked:true});
}