/*
	Arquivo JS com as funï¿½ï¿½es do Carrinho de Compras 
*/

function FormatarDinheiro(valor)
{
	valor = String(valor);
	var itens = valor.split(".");
	if (itens.length == 1)
	{
		return valor + ".00";
	}
	else
	{
		if (parseInt(itens[1]) < 10)
		{
			return itens[0] +"."+ itens[1] +"0";
		}
		else
		{
			return valor;
		}
	}
}

function Carrinho()
{
	
	
	//BOTÃƒO COMPRAR (colocar no carrinho)
	$('.botaoComprar').click( function()
	{
		var botao = $(this);
		$('#carregando').removeClass("hidden");
		var codigo = botao.attr("codigo");
		
		$.ajax(
		{
			type: "POST",
			url: "./acao/Carrinho.php",
			data: "acao=adicionarItemCarrinho&codigoItem=" + codigo,
			success: function(msg)
			{
				if (msg == "sucesso")
				{
					location.href="./Carrinho01.php"
				}
				else
				{
					$('#carregando').addClass("hidden");
					botao.next().html(MSG43).fadeIn(); // a variável MSG43 está definida no arquivo comum.js
				}
			}
		});
		
		
		//$.post("./acao/Carrinho.php", {acao:"adicionarItemCarrinho",codigoItem:codigo}, function(data){location.href="./Carrinho01.php"});

	});
	
	
	/*
		MÃ©todo para atualizar o valor total da compra,
		atualizar o valor do link CARRINHO DE COMPRAS no topo da pÃ¡gina
		e mostrar a mensagem correta quando o carrinho estiver vazio.
		
		@return void
	*/
	function atualizarValorTotal()
	{
		var subTotal = parseFloat(0);
		// calcular o subtotal que ï¿½ a soma de todos os subtotais de cada produto
		
		var itensCarrinho = $("#hProdutosCarrinho tbody tr").size() / 2;
		
		if (itensCarrinho > 0)
		{
			// atualizo o texto no topo do site no link do carrinho de compras.
			$("#topo > #usuario > #menu-compra").find(".carrinho").children().html("Carrinho de Compras ("+itensCarrinho+" &iacute;tens)");
			
			$("#hProdutosCarrinho tbody tr").each(function(){
				var linhaTabela = $(this);
				if (linhaTabela.children().attr("class") == "vProduto")
				{
					var valor = parseFloat($(this).find("span .vVolorTotal").html());
					subTotal = subTotal + valor;
				}				
			});
			$(".sub-total").children().next().html("R$ "+subTotal.toFixed(2));
			
			var frete = $(".valor-frete").children().next().html();
			frete = parseFloat(frete.replace("R$ ",""));
			
			valorTotal = frete + subTotal;
			valorTotal = valorTotal.toFixed(2);
			
			$(".valor-total-compras").html("R$ "+valorTotal);
		}
		else
		{
			// atualizo o texto no topo do site no link do carrinho de compras.
			$("#topo > #usuario > #menu-compra").find(".carrinho").children().html("Carrinho de Compras (vazio)");
			$("#nav-carrinho").hide();
			$("#bg-table").hide();
			$("#acoes-compra").hide();
			$("#aviso-carrinho-vazio").removeClass("hidden");
		}
	}
	
	
	if ($("#frmCarrinho").length > 0) // declara essas funï¿½ï¿½es sï¿½ na pï¿½gina do carrinho de compras
	{
		//mascaras para os campos da pï¿½gina
		$("#txtCep").mask("99999-999");
		$(".txtQuantidade").numeric("");
		
		/*
			MÃ©todo para limpar o carrinho.
			Faz uma chamada ajax pra limpar a session, e na volta da solicitaï¿½ï¿½o, recarrega apï¿½gina
		*/
		$(".btn-limpar-carrinho").click(function()
		{
			$("#carregando").removeClass("hidden");
			$.ajax(
			{
				type: "POST",
				url: "acao/Carrinho.php",
				data: "acao=limparCarrinho",
				success: function(msg)
				{
					location.href="Carrinho01.php";
				}
			});	
			
		});
		
		$("#btnFecharPedido").click(function()
		{
			var valor = $("#txtCep").val();
			
			if((valor.length > 0) && (!/_/.test(valor))) // se o CEP foi informado...
				if($("#freteCalculado").val()==1) // se o frete foi calculado...
					$("#frmCarrinho").submit();
		});
		
		
		/*
			MÃ©todo para, Alterar a quantidade de um produto.
			Quando o usuario digita um valor, todo o cÃ¡lculo da pÃ¡gina Ã© refeito.
		*/
		$(".txtQuantidade").blur(function()
		{
			var campo = $(this);
			var valor = campo.val();
			var codigo = campo.parent().prev().find("input").attr("id");
			
			// se a quantidade ï¿½ zero ou vazia, 
			// removemos o item do carrinho.
			if (isNaN(valor) || valor == 0 || valor == "")
			{
				excluirItemCarrinho(codigo);
			}
			// se a quantidade nÃ£o Ã© zero fazemos a requisiÃ§Ã£o ajax pra alterar a quantidade na session
			// e recalculamos via javascript os valores para mostrar para o usuario.
			else 
			{
				$("#carregando").removeClass("hidden");
				$.ajax(
				{
					type: "POST",
					url: "acao/Carrinho.php",
					data: "acao=alterarQuantidadeItemCarrinho&codigo="+codigo+"&quantidade="+valor,
					success: function(msg)
					{
						if (msg == "sucesso")
						{
							// achamos o campo valor unitário
							var valorUnitario = campo.parent().next().children().children().html();
							//alert(valorUnitario);
							
							var valorTotal = parseFloat(valor) * parseFloat(valorUnitario);
							//alert(valorTotal.toFixed(2));
							valorTotal = valorTotal.toFixed(2);
							
							// achamos o campo onde aparece o valor total e colocamos o valor lá
							//campo.parent().next().next().children().find(".vVolorTotal").html("teste");
							campo.parent().next().next().children().children().html(valorTotal);
							//alert(campo.parent().next().next().children().children().html());
							
						}
						else if (msg == "0") // o ítem teve que ser removido
						{
							alert(MSG43);
							campo.val(msg);
							excluirItemCarrinho(codigo);
							
						}
						else // a quantidade foi alterada
						{
							alert(MSG42.replace("[ESTOQUE]", msg));
							campo.val(msg);
							
							// achamos o campo valor unitário
							var valorUnitario = campo.parent().next().children().children().html();
							//alert(valorUnitario);
							
							var valorTotal = parseFloat(msg) * parseFloat(valorUnitario);
							valorTotal = valorTotal.toFixed(2);
							
							// achamos o campo onde aparece o valor total e colocamos o valor lá
							campo.parent().next().next().children().children().html(valorTotal);
						}
						
						// chamamos a função que atualiza o valor total do pedido	
						atualizarValorTotal();
						$("#carregando").addClass("hidden");
					}
				});
			}
		});
		
		/**
			MÃ©todo para disparar o calculo do frete de um pedido.
		**/
		$(".btn-ok").click(function()
		{
			if ($("#txtCep").val() !="") {
			var botao = $(this);
			$("#fretes").addClass("hidden");
			$("#carregando").removeClass("hidden");
			var cep = $("#txtCep").val().replace("-","");
			$.ajax({
					type: "POST",
					url: "acao/Carrinho.php",
					data: "acao=calcularCustoFrete&cep="+cep,
					success: function(msg)
					{
						
						if(msg.length > 20)//gamb
						{
							$("#carregando").addClass("hidden");
							$("#fretes").html(msg);
							$("#fretes").removeClass("hidden");
							
							$(".freteItem").click(function()
							{
								var codigoTipoFrete = $(this).val();
								var valorFrete = parseFloat($("#valorFrete"+codigoTipoFrete).val()) - ((parseFloat($("#valorFrete"+codigoTipoFrete).val()) * parseInt($("#hdnPromocaoFreteUF").val())) / 100);
								$(".valor-frete").find(".valor").html("R$ "+FormatarDinheiro(valorFrete.toFixed(2)));
								$("#fretes").addClass("hidden");
								atualizarValorTotal();
								
								// Frete Calculado
								$("#freteCalculado").val(1);
							});
							
							
						} else {
							$("#carregando").addClass("hidden");
							$(".valor-frete").find(".valor").html("R$ "+msg);
							atualizarValorTotal();
						}
						
						
						
					}
				});
			} else {
				alert("Por favor, preencha o campo CEP.");
			}
		})
		
		
		/*
			MÃ©todo para buscar o cep do cliente no site dos correios
		*/
		$(".btn-consulta-cep").click(function(){
			window.open('http://www.correios.com.br/Servicos/cep/cep_loc_log.cfm','buscaCep','');
		});
		
		/*
			MÃ©todo para excluir um Ã­tem do carrinho quando o usuario clicar 
			no botÃ£o EXCLUIR da listagem de produtos do carrinho.
		*/
		$(".btn-excluir").click(function(){
			var valor = $(this).parent().parent().find("input").attr("id");
			excluirItemCarrinho(valor);
		})
		
		
		
		/*
			MÃ©todo para excluir um Ã­tem do carrinho.
			Procura pelo codigo na pagina e exclui o Ã­tem da session e da pï¿½gina.
			ApÃ³s isso atualiza o valor total.
			
			@param $codigo int
			@return void
		*/
		function excluirItemCarrinho(codigo)
		{
			var campo = $("#"+codigo);
			$("#carregando").removeClass("hidden");
			
			$.ajax(
			{
				type: "POST",
				url: "acao/Carrinho.php",
				data: "acao=excluirItemCarrinho&codigo="+codigo,
				success: function(msg)
				{
					//removemos da pÃ¡gina
					campo.parent().parent().next().remove();
					campo.parent().parent().remove();
					
					// chamamos a funÃ§Ã£o que atualiza o valor total do pedido
					atualizarValorTotal();
					$("#carregando").addClass("hidden");
				}
			});
		}
		
	}
	
	/**
	* FunÃ§Ãµes da pÃ¡gina de pagamento
	* 
	**/
	if ($("#frmPagamento").length > 0)
	{
		//alert("tinha que alertar issO quando carrega a pÃ¡gina");
		//$(".table-pagamentos").removeClass("hidden");
		
		/**
		* mostra as tabelas com as condiÃ§Ãµes de cada forma
		* e insere os dados da condiÃ§Ã£o se a forma for padrÃ£o da casa
		**/
		$("input[@name=rdCodigoPagamento]").click(function()
		{
			var codigoMeio = $(this).val();
			var tabelaPagamentos = "#tabela-pagamentos-"+codigoMeio;
			$("#codigo_pagamento").val(codigoMeio);
			
			$(".table-pagamentos").addClass("hidden");// esconde todas as tabelas que mostram as formas de pagamento
			$(tabelaPagamentos).removeClass("hidden");// mostra apenas as condiÃ§Ãµes da forma ativa
			$("#forma_pagamento_ipagare").val("");
			$("#forma_pagamento").val("");
			$("#valor_juros_sobre_total").val("");
			/**
			if ($(this).is(".padrao"))
			{
				$("#forma_pagamento").val($(this).attr("valor"));
				//$("#forma_pagamento_ipagare").val($(this).attr("valor"));
				$("#forma_pagamento_ipagare").val("A01");
				//$("#forma_pagamento").val("A01");			
			}
			**/
		});
		
		/*
		* insere os dados da condiÃ§Ã£o escolhida no formulario
		*/
		$("input[@name=rdFormaPagamento]").click(function()
		{
			var codigoFormaIpagare = $(this).val();
			var codigoForma = $(this).attr("id");
			var valorJuros = $(this).attr("juros");
			codigoForma = codigoForma.replace("forma_pagamento_ipagare_", "");
			
			$("#forma_pagamento_ipagare").val(codigoFormaIpagare);
			$("#forma_pagamento").val(codigoForma);
			$("#valor_juros_sobre_total").val(valorJuros);
		});
		
		/*
			validaÃ§Ã£o do form que guarda os dados com as informaÃ§Ãµes de pagamento
		*/
		$("#frmPagamento").validate
		(
			{
				errorPlacement: function(error, element)
				{
					error.appendTo( $("#erro" + element.attr("id")) );
				},
				errorClass: "erro_form",
				errorElement: "span",
				rules: 
				{
					codigo_pagamento:
					{
						required: true
					},
					forma_pagamento:
					{
						required: true
					}
				},
				messages: 
				{
					codigo_pagamento:
					{
						required: "Informe o Meio de Pagamento"
					},
					forma_pagamento:
					{
						required: "Informe a Forma de Pagamento"
					}
				}
			}
		);		
		
	}
}
