/*
	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");
		}
	});
}

function Inverter(valor)
{
	var retorno = "";
	valor = valor.reverse();
	return valor.join("");
}

function ConverterPontoVirgula(valor)
{
	return valor.replace(".",",");
}


/*
	MÃ©todo para atualizar o valor total da compra,
	@return void
*/
function atualizarValorTotal()
{
	var totalItensCarrinho = 0;
	
	var valorDescontoAssociado;
	var quantidadeDescontoAssociado;
	var totalDescontoAssociado = 0;
	var codigoAssociado;
	
	var descontoAcimaDe;
	var valorTotalCarrinho = 0;
	var percentualDescontoPacote;
	var totalDescontoPacote = 0;
	
	var subtotalCarrinho = 0;
	var totalCarrinho = 0;
	
	//calcular total de itens no carrinho e subtotal do carrinho	
	var itensCarrinho = $("#areaItems").size();
	if(itensCarrinho > 0)
	{
		$(".trCarrinho").each(function()
		{
			var linhaTabela = $(this);
			var quantidade = parseInt($(this).find(".txtQuantidade").val());
			totalItensCarrinho = totalItensCarrinho + quantidade;
			var valorItem = parseFloat(linhaTabela.find(".valorUnitario").val());			
			var subtotalItem = valorItem * quantidade;
			$(this).find(".vValorTotal").text(ConverterPontoVirgula(subtotalItem.toFixed(2)));
			subtotalCarrinho = subtotalCarrinho + subtotalItem;
			
		});
	}
	
	//DESCONTOS
	//Cálculo de desconto por associado
	quantidadeDescontoAssociado = parseInt($("#associadoQuantidade").val());
	if(quantidadeDescontoAssociado > 0)
	{
		valorDescontoAssociado = parseFloat($("#associadoValor").val());
		totalDescontoAssociado = valorDescontoAssociado * quantidadeDescontoAssociado;
	}
	
	//Cálculo de desconto por pacote
	descontoAcimaDe = parseInt($("#descontoAcimaItens").val());
	percentualDescontoPacote = parseFloat($("#porcentagemDesconto").val());
	if(totalDescontoAssociado > 0)
	{
		if((totalItensCarrinho - quantidadeDescontoAssociado) >= descontoAcimaDe)
		{
			totalDescontoPacote = (subtotalCarrinho * (percentualDescontoPacote/100)) / totalItensCarrinho * (totalItensCarrinho - quantidadeDescontoAssociado);	//??? cálculo percentual
		}
		else
		{
			totalDescontoPacote = 0;
		}
	}
	else
	{
		if(totalItensCarrinho >= descontoAcimaDe)
		{
			totalDescontoPacote = subtotalCarrinho * (percentualDescontoPacote/100);//??? cálculo Percentual
		}
		else
		{
			totalDescontoPacote = 0;
		}
	}
	
	totalCarrinho = subtotalCarrinho - totalDescontoAssociado - totalDescontoPacote;
	
	//atualizar os valores na página
	$(".sub-total").children().html("R$ "+ ConverterPontoVirgula(subtotalCarrinho.toFixed(2)));
	$(".valor-total-compras").html("R$ "+ConverterPontoVirgula(totalCarrinho.toFixed(2)));
	$("#valorDesconto").html("R$ "+ConverterPontoVirgula(totalDescontoPacote.toFixed(2)));
	$("#spanDescontoAssociado").children().html("R$ "+ConverterPontoVirgula(totalDescontoAssociado.toFixed(2)));
	
	if(totalDescontoPacote > 0)
	{
		$("#rowDesconto").removeClass("hidden");
	}
	else
	{
		$("#rowDesconto").addClass("hidden");
	}
	
}



function Carrinho(){

	//BOTÃƒO COMPRAR (colocar no carrinho)
	$('.botaoComprar').click( function()
	{
		//$('#carregando').removeClass("hidden");
		var codigo = $(this).attr("codigo");
		$.post("./acao/Carrinho.php", 
		{
			acao:"adicionarItemCarrinho",
			codigoItem:codigo
		}, function(data)
		{
			location.href="./InscricaoLista.php"
		});
	});
	
	if ($("#frmCarrinho").length > 0) // declara essas funções só na página do carrinho de compras
	{
		/*
			Calcular desconto por associado
		*/
		$(".btnAssociado").click(function()
		{
			var codigoCupom = $("#txtCodigoValeDesconto").val();
			$.ajax(
			{
				type: "POST",
				url: "acao/Carrinho.php",
				data: "acao=calcularValeDesconto&codigoValeDesconto="+codigoCupom,
				success: function(msg)
				{
					if(msg == "sucesso")
					{
						location.href="./InscricaoLista.php";
					} else {
						alert("Código Vale-Desconto não encontrado");
					}
				}
			});
			
		});
		
		
		
		/*
			Método para excluir um ítem do carrinho quando o usuario clicar 
			no botão EXCLUIR da listagem de produtos do carrinho.
		*/
		$(".lk-remover").click(function(){
			var valor = $(this).parent().parent().find("input").attr("id");
			excluirItemCarrinho(valor);
		});
		
		$("#btnFecharPedido").click(function()
		{
			$("#frmCarrinho").submit();
			return false;
		});
		
		/*
			MÃ©todo para, Alterar a quantidade de um produto.
			Quando o usuario digita um valor, todo o cÃ¡lculo da pÃ¡gina Ã© refeito.
		*/
		$(".txtQuantidade").numeric();
		$(".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)
					{
						// achamos o campo valor unitário
						var valorUnitario = campo.parent().next().children().html();
						
						var valorTotal = eval(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("sei lah");
						//campo.parent().next().next().next().children().children().html(ConverterPontoVirgula(valorTotal));
						// VALOR TOTAL
						//alert(campo.parent().next().next().children().children().html());
						// chamamos a funÃ§Ã£o que atualiza o valor total do pedido
						atualizarValorTotal();
						$("#carregando").addClass("hidden");
					}
				});
			}
		});
		
		
		
		
		
	}
	
	if(("#frmNovoCliente").length > 0)
	{
		
		$("#radFisica").attr("checked", "checked");
		
		$(".juridica").hide();
		$("#liEmpresa").hide();
		$("#liCnpj").hide();
		
		
		
		$("#radFisica").click(function(){
			$("#liEmpresa").hide();
			$("#liCnpj").hide();
			//$("#liNome").show();
			$("#liCpf").show();
			$(".fisica").show();
			$(".juridica").hide();
		});
		
		$("#radJuridica").click(function(){
			$("#liEmpresa").show();
			$("#liCnpj").show();
			//$("#liNome").hide();
			$("#liCpf").hide();
			$(".fisica").hide();
			$(".juridica").show();
		});
		
		$(".bt-prosseguir").click(function()
		{
			$("#frmNovoCliente").submit();
			return false;
		});
		
		$(".cpf").mask("999.999.999-99");
		$(".cnpj").mask("99.999.999/9999-99");
		
		$("#txtTelefone-ddd").mask("99");
		$("#txtTelefone-numero").mask("9999-9999");
		$("#txtCelular-ddd").mask("99");
		$("#txtCelular-numero").mask("9999-9999");
		
		
		//buscar as informações do internauta após ele preencher o CPF
		$(".cpf").blur(function()
		{
			var cpf = $(this).val();
			if (cpf != "")// && (cep.length == 8 || cep.length == 9))
			{
				$("#carregandoCpf").removeClass("hidden");
	
				$.ajax(
				{
					type: "POST",
					url: "acao/Pessoa.php",
					data: "acao=carregar&cpf="+cpf,
					success: function(msg)
					{
						//var regexp = /^[- \t]+/;
						//msg = msg.replace(regexp, '');
						
						if (msg != "")
						{
							if (msg != "404") //404 == Não encontrado
							{
								resultados = msg.split(";");
								
								for(indice in resultados)
								{
									campoValor = resultados[indice].split(":");
									campo = campoValor[0];
									valor = campoValor[1];
									
									if(campo.substring(0,3) == 'rad')
									{
										$(".radInscricao").each(function()
										{
											if($(this).attr("name") == campo && $(this).val() == valor)
											{
												$(this).attr("checked","checked");
											}
										});
									}
									else
									{
										$("#"+campo).val(valor);
									}
								}
							}
						}
						$("#carregandoCpf").addClass("hidden");
					}
					
				});
			}
			
		});
		
		
		//buscar as informações do internauta após ele preencher o CPF
		$(".cnpj").blur(function()
		{
			var CNPJ = $(this).val();
			if (CNPJ != "")
			{
				$("#carregandoCNPJ").removeClass("hidden");
	
				$.ajax(
				{
					type: "POST",
					url: "acao/Pessoa.php",
					data: "acao=carregarJuridica&CNPJ="+CNPJ,
					success: function(msg)
					{
						$("#carregandoCNPJ").addClass("hidden");
						//var regexp = /^[- \t]+/;
						//msg = msg.replace(regexp, '');
						
						if (msg != "")
						{
							if (msg != "404") //404 == Não encontrado
							{
								resultados = msg.split(";");
								
								for(indice in resultados)
								{
									campoValor = resultados[indice].split(":");
									campo = campoValor[0];
									valor = campoValor[1];
									
									if(campo.substring(0,3) == 'rad')
									{
										$(".radInscricao").each(function()
										{
											if($(this).attr("name") == campo && $(this).val() == valor)
											{
												$(this).attr("checked","checked");
											}
										});
									}
									else
									{
										$("#"+campo).val(valor);
									}
								}
							}
						}
						$("#carregandoCpf").addClass("hidden");
					}
					
				});
			}
		});
		
		
		$("#frmNovoCliente").validate
		(
			{
				errorPlacement: function(error, element)
				{
					error.appendTo( $("#erro" + element.attr("id")) );
				},
				errorClass: "erro_form",
				rules: 
				{
					radPessoa:
					{
						required: true
					},
					selNascimentoDia:
					{
						"dataCombo": true
					},
					txtNome:
					{
						required: true
					},
					txtNomeFantasia:
					{
						required: function ()
						{
							if($("#radJuridica").attr("checked") == true)
							{
								return true;
							}
							else
							{
								return false;
							}
						}
					},
					txtCpf:
					{
						required: function ()
						{
							if($("#radFisica").attr("checked") == true)
							{
								return true;
							}
							else
							{
								return false;
							}
						}
					},
					txtCnpj:
					{
						required: function ()
						{
							if($("#radJuridica").attr("checked") == true)
							{
								return true;
							}
							else
							{
								return false;
							}
						},
						"cnpj": true
					},
					txtEmail:
					{
						required: true,
						email: true
					}
				},
				messages: 
				{
					radPessoa:
					{
						required: "Campo Tipo é obrigatório seu preenchimento!"
					},
					selNascimentoDia:
					{
						"dataCombo": "Campo Data de Nascimento é obrigatório!"
					},
					txtNome:
					{
						required: "Campo Nome é obrigatório seu preenchimento!"
					},
					txtNomeFantasia:
					{
						required: "Campo Empresa é obrigatório seu preenchimento!"
					},
					txtCpf:
					{
						required: "Campo CPF é obrigatório seu preenchimento!"
					},
					txtCnpj:
					{
						required: "Campo CNPJ é obrigatório!",
						"cnpj": "CNPJ inv&aacute;lido"
					},
					txtEmail:
					{
						required: "Campo Email é obrigatório seu preenchimento!",
						email: "Email inv&aacute;lido"
					}
				}
			}
		);
		
	}

}