/** Funo para mascarar valores com casas decimais no formato:
R$ 0,00 e adicionar zero a direita caso o valor final seja por ex.: 10.1
* @param float valor - Valor no formato 0.00 a ser mascarado
* @return string valorFormatado - Valor ja formatado com a mscara: R$ 0,00
**/
function mascaraReal(valor) {

	/** Altera o tipo da variavel 'valor' para String **/
	var valorStr = new String(valor);

	/** Separa a string quando encontra o '.' **/
	var valorSeparado = valorStr.split(".");

	/** Inicia variavel valorFormatado com valor nulo **/
	var valorFormatado = '';

	/** Verifica se existe a posio 1 no array 'valorSeparado'.
	Somente se o valor possuir casas decimais.
	**/
	if(valorSeparado[1])
	{
		/** Se possuir apenas uma casa decimal, adiciona '0'  direita **/
		if(valorSeparado[1].length == 1)
		valorFormatado = 'R$ ' + valorSeparado[0] + ',' + valorSeparado[1] + '0';
		else
		valorFormatado = 'R$ ' + valorSeparado[0] + ',' + valorSeparado[1].substring(0,2);
	} else {
		/** Se no possuir casas decimais, adiciona '00'  direita **/
		valorFormatado = 'R$ ' + valorSeparado[0] + ',00';
	}
	
	return valorFormatado;
}

/**
 * Funo para remover a formatao em reais
 * e transformar o nmero em decimal
 */
function removeMascaraReal(valorReal) {
	
	/**
	 * Expresso regular para encontrar apenas
	 */
	var regex = /\d+\S\d+/g;

	var valorSemMascara = new String(valorReal.match(regex)).replace('.','').replace(",",".");
	
	return valorSemMascara;
}

var testeArray = new Array();

/**	Captura evento 'click' do checkbox para embalagem de presente
e altera os valores: valor unitrio, subtotal e total, do carrinho de compras
* @param valorEmbPresente - valor da embalagem de presente
* @param qtdProduto		  - quantidade de itens do produto selecionado
* @return valorUnitario   - valor final do produto com ou sem embalagem de presente
* @return valorSubtotal   - produto da multiplicao entre o valor unitario e a quantidade de itens
**/
$('.emb_presente').livequery('click', function(e){


	/** Verifica se o atributo 'checked' existe ou no **/
	var verificaClique = $(this).attr("checked");

	if(verificaClique === true)
	testeArray.push($(this).attr("id"));

	//alert(testeArray.length);

	for(x = 0; x < testeArray.length; x++)
	{
		if(verificaClique === false)
		{
			if(testeArray[x] == $(this).attr("id"))
			{
				//testeArray[x] = null;
				testeArray.splice(x, 1);
			}
		}

		//alert(testeArray[x]);
	}



	var valorOriginal = '';
	var valorUnitario = '';
	var valorSubtotal = '';
	/*var valorEmbPresente = 10.25;*/
	var valorEmbPresente = $('#valor_presente').val();
	var qtdProduto = '';
	
	
	/** Vai at o objeto pai com a tag 'tr',
	procura o elemento 'input.qtd_produto'
	e captura o valor do campo **/
	$(this).parents("tr")
	.find('input.qtd_produto').each(function(){
		qtdProduto = $(this).val();
	});
	
	/** Vai at o objeto pai com a tag 'tr',
	procura o elemento 'span.valor_uni'
	e captura o texto com o valor unitrio **/
	$(this).parents("tr").find('span.valor_uni').each(function(){		
		valorUnitario = $(this).html();
		valorUnitario = valorUnitario.replace(/^\s+|\s+$/g,"");
		valorOriginal = valorUnitario;
		valorUnitario = valorUnitario.replace('R$ ', '');
		valorUnitario = valorUnitario.replace(',', '.');
			
		if(verificaClique)
		{
			/**
			Se o checkbox for marcado a variavel 'verificaClique' ser 'true',
			ento soma o valor unitrio com o valor da embalagem para presente
			**/
			valorUnitario = parseFloat(valorUnitario) + parseFloat(valorEmbPresente);
		} else {
			/**
			Se o checkbox for desmarcado a variavel 'verificaClique' ser 'undefined ou false',
			ento subtrai o valor da embalagem para presente do valor unitrio
			**/
			valorUnitario = parseFloat(valorUnitario) - parseFloat(valorEmbPresente);
		}

		/** Mascara o valor final a ser exibido na tela **/
		valorUnitario = mascaraReal(valorUnitario);

		/** Atualiza o valor unitrio (o mesmo que 'innerHtml') **/
		$(this).html(valorUnitario);
		
	});

	/** Vai at o objeto pai com a tag 'tr',
	procura o elemento 'span.valor_sub'
	e atualiza o valor com o produto da
	multiplicao entre quantidade e valor unitario **/
	$(this).parents("tr")
	.find('span.valor_sub').each(function(){
		valorUnitario = valorUnitario.replace('R$ ', '');
		valorUnitario = valorUnitario.replace(',', '.');
		valorSubtotal = parseFloat(valorUnitario) * parseFloat(qtdProduto);

		/** Mascara o valor final a ser exibido na tela **/
		valorSubtotal = mascaraReal(valorSubtotal);

		/** Atualiza o subtotal (o mesmo que 'innerHtml') **/
		$(this).html(valorSubtotal);
	});


	var valorTotal = 0.00;
	$(this).parents("table")
	.find('span.valor_sub').each(function(){
		var valorFormatado = $(this).html();

		var regex = /\d+\S\d+/g;

		var valorFormatado = new String(valorFormatado.match(regex));

		var valorFloat = valorFormatado.replace(',', '.');

		valorTotal = parseFloat(valorFloat) + parseFloat(valorTotal);
	});

	$(this).parents("table")
	.find('span.valor_total').each(function(){
		$(this).html(mascaraReal(valorTotal));
	});

	var novoElemento = '<input type="hidden" value="'+$(this).val()+'" name="presentes[]" >';
	$("#presentes_sel").html(novoElemento);
	
		
	/**
	 * Atualiza valor final da compra:
	 * valorTotalProd 	- Valor total dos produtos
	 * valorDesconto 	- Valor do cupom de desconto (0.00 se for frete gratis)
	 * valorFrete 		- Valor do frete selecionado (0.00 se for frete gratis)
	 */
	var valorTotalProd 	= removeMascaraReal($(".valor_total").text());
	var valorDesconto 	= removeMascaraReal($(".pgto-preco-cupom").text());
	var valorFrete 		= $(".valor_frete").text();
	var valorTotalFinal = 0;
	if(valorFrete == 'FRETE GRATUITO')
		valorFrete = 0.00;
	else
		valorFrete = removeMascaraReal(valorFrete);
	
	valorTotalFinal = (parseFloat(valorTotalProd)+parseFloat(valorFrete))-parseFloat(valorDesconto);
	
	//alert(mascaraReal(valorTotalFinal));
	
	$("#total_end").html(mascaraReal(valorTotalFinal));

});

function clickCheckbox()
{
	$('.emb_presente').parents("table")
	.find('input.emb_presente').each(function(){
		//alert($(this).val());

		for(x = 0; x < testeArray.length; x++)
		{

			if(testeArray[x] == $(this).attr("id"))
			{
				//testeArray[x] = null;
				//testeArray.splice(x, 1);
				//$(this).click();
				$(this).attr("checked", true);
			}
		}


	});
}

/** Captura evento 'change' do campo com a classe 'qtd_produto'.
Ao ser atualizado o javascript exibe um alerta (confirm) avisando
o usurio de que houve uma mudana na quantidade do produto e pergunta
se deseja atualizar os valores do carrinho **/
$('.qtd_produto').livequery('change', function(e){
	if(confirm("Deseja atualizar seu carrinho de compras?"))
	{
		$('#submitAlterarQtd').click();
		return false;
	} else {
		$('#resetAlterarQtd').click();
		clickCheckbox();
		return;
	}
});

/** Auto TAB para o CEP **/
$(document).ready(function() {
	$("#cep1").keyup( function(){
		cep = $(this);
		maxLen = cep.attr("maxlength");
		if(cep.val().length+1 > maxLen){
			$('#cep2').focus();
		}
	});
	
	$("#cep1").mask("99999", {placeholder:""});
	$("#cep2").mask("999", {placeholder:""});

});

/**
*	Recalcula o cupom
**/

function recalculaCupom(){

	var codigo 				= $("#codigo_cupom").val();
	var valorCompraAtual 	= removeMascaraReal($("#total_end").html()); 
	
	if(codigo.length == '0')
	{
		alert("Digite um codigo");
		return false;
	} else {
		
		//$("#img_botao_calcular_cupom").hide();
		
		loadingPanel.teste("Processando...");
		
		$.post(
			"carrinho", 
			{
				acao_carrinho	: "verifica_cupom", 
				cupom			: $("#codigo_cupom").val(),
				valorCompra 	: valorCompraAtual
			},
			function(data)
			{								
				loadingPanel.hide();
				/* Retirando os espaços desnecessários */
				data = data.replace(/^\s+|\s+$/g,"");
				
				if(data == 'invalido'){
					loadingPanel.teste("Processando...");
	
					$.post( 
						"carrinho", 
						{
							acao_carrinho		: "remove_cupom"
						},
						function(data)
						{
							var valorTotal = removeMascaraReal($(".valor_total").text());
							var valorFrete = $(".valor_frete").text();				
								
							if(valorFrete == 'FRETE GRATUITO')
							{				
								$(".valor_frete").html("R$ 0,00");
								$(".pgto-preco-cupom").html("R$ 0,00");
								$("#cep1").removeAttr("disabled");
								$("#cep2").removeAttr("disabled");
								$("#calcular_frete").removeAttr("disabled");
							} else {
							
								valorFrete = removeMascaraReal(valorFrete);
								
								valorFinal = parseFloat(valorTotal)+parseFloat(valorFrete);
								
								
								/* Formatando valor final */
								valorFinal = valorFinal.toFixed(2);
								valorFinal = valorFinal.replace('.',',');
								if(valorFinal.length >= 7){
							
									var vlrSeparado = valorFinal.substr(valorFinal.length-6);
									var primVlrSeparado = valorFinal.substr(0,valorFinal.length-6);
											
									valorFinal = primVlrSeparado+"."+vlrSeparado;
								
								} 
								
								$(".pgto-preco-cupom").html("R$ 0,00");
								$("#total_end").html('R$ '+valorFinal);
							}
							
							$('.erro-cupom').html('Cupom de desconto removido com sucesso!');
							$('#box-erro-cupom').fadeIn();
							$('#carrinho-mensagens').hide();
								
							$('#codigo_cupom').val('');
			
							loadingPanel.hide();
							
							$('.btn-calcular-cupom').show();
							$('#btn-remover-cupom').hide();
						}
					);
				}else{
					/**
					 * Pega valor total (atual) do pedido
					 */
					var valorTotalProdutos  = removeMascaraReal($("#total_produtos").text());
					
					VALORFRETE = $(".valor_frete").text();
					
					if(VALORFRETE == 'FRETE GRATUITO'){
						VALORFRETE = '0.00';
					}
					var valorTotalFrete 	= removeMascaraReal(VALORFRETE);
					
					var valorTotal 			= parseFloat(valorTotalProdutos)+parseFloat(valorTotalFrete);
					
					/**
					 * Fim valor total
					 */				
								
					/**
					 * Separa o resultado obtido
					 */
					var detalhesCupom = data.split("|");
					
					/**
					 * Seta variaveis com os valores separados
					 */
					var tipoCupom 		= detalhesCupom[0].replace("\n", "").replace("\r", "");
					var tipoDesconto 	= detalhesCupom[1];
					var valorDesconto	= detalhesCupom[2];
			
					/** 
					 * Verifica tipo de cupom para atualizar a tela
					 */
					switch (tipoCupom)
					{
						case "DE":
							//alert("DESCONTO PEDIDO");
							
							var descontoCalculado = '';
							
							if(tipoDesconto == 'RS')
							{
								valorDescCalc = valorDesconto.replace('.','').replace(',','.'); 	
								valorFinal 	= parseFloat(valorTotal)-parseFloat(valorDescCalc);
								
								valorFinal = valorFinal.toFixed(2);
								valorFinal = valorFinal.replace('.',',');
								if(valorFinal.length >= 7){
					
									var vlrSeparado = valorFinal.substr(valorFinal.length-6);
									var primVlrSeparado = valorFinal.substr(0,valorFinal.length-6);
									
									valorFinal = primVlrSeparado+"."+vlrSeparado;
								
								} 
								
								$(".pgto-preco-cupom").html('R$ '+valorDesconto);
								$("#total_end").html('R$ '+valorFinal);
								$('#box-erro-cupom').hide();
								
							} else {
								
								
								valorDescCalc = valorDesconto.replace('.','').replace(',','.');
								valorFinal 			= valorTotal-((valorTotal*valorDescCalc)/100);
								descontoCalculado 	= (valorTotal*valorDescCalc)/100;
								
								/* Formatando valor final */
								valorFinal = valorFinal.toFixed(2);
								valorFinal = valorFinal.replace('.',',');
								if(valorFinal.length >= 7){
					
									var vlrSeparado = valorFinal.substr(valorFinal.length-6);
									var primVlrSeparado = valorFinal.substr(0,valorFinal.length-6);
									
									valorFinal = primVlrSeparado+"."+vlrSeparado;
								
								} 
								
								/* Formatando valor do desconto */
								descontoCalculado = descontoCalculado.toFixed(2);
								descontoCalculado = descontoCalculado.replace('.',',');
								
								if(descontoCalculado.length >= 7){
					
									var vlrSeparado = descontoCalculado.substr(descontoCalculado.length-6);
									var primVlrSeparado = descontoCalculado.substr(0,descontoCalculado.length-6);
									
									descontoCalculado = primVlrSeparado+"."+vlrSeparado;
								
								} 
								
								
								$(".pgto-preco-cupom").html('R$ '+descontoCalculado);
								$("#total_end").html('R$ '+valorFinal);
								$('#box-erro-cupom').hide();
							}
							
							$('.btn-calcular-cupom').hide();
							$('#btn-remover-cupom').show();
							break;
						
						case "FG":
							//alert("FRETE GRATIS");
							if(slideOnOff === true)
								$('#pgto-envio').slideToggle("slow");
							slideOnOff = false;
							
							$(".valor_frete").html("<span class='freteVermelho'>FRETE GRATUITO</span>");
							$(".pgto-preco-cupom").html("R$ 0,00");
							/*$("#cep1").attr("disabled", true).val("");
							$("#cep2").attr("disabled", true).val("");
							$("#calcular_frete").attr("disabled", true); */
							//$("#total_end").html($("#total_produtos").text());
							$("#total_end").html($("#total_produtos").text());
							//alert($("#total_produtos").text());
							
							$('.btn-calcular-cupom').hide();
							$('#btn-remover-cupom').show();
							$('#box-erro-cupom').hide();
							break;
					}
				}				
			}
		);		
	}	

}

/**
 *	Verifica cupom de presente.
 */
$("#img_botao_calcular_cupom").livequery('click', function(e){
	var codigo 				= $("#codigo_cupom").val();
	var valorCompraAtual 	= removeMascaraReal($("#total_end").html()); 
	
	if(codigo.length == '0')
	{
		alert("Digite um codigo");
		return false;
	} else {
		
		//$("#img_botao_calcular_cupom").hide();
		
		loadingPanel.teste("Processando...");
		
		$.post(
			"carrinho", 
			{
				acao_carrinho	: "verifica_cupom", 
				cupom			: $("#codigo_cupom").val(),
				valorCompra 	: valorCompraAtual
			},
			function(data)
			{								
				loadingPanel.hide();
				/* Retirando os espaços desnecessários */
				data = data.replace(/^\s+|\s+$/g,"");
				
				if(data == 'invalido'){
				
					$('.erro-cupom').html('O cupom de desconto <strong>'+codigo+'</strong> n&atilde;o existe ou n&atilde;o pode ser utilizado para esta compra!');
					$('#box-erro-cupom').fadeIn();
					$('#carrinho-mensagens').hide();					
				
				}else{
					/**
					 * Pega valor total (atual) do pedido
					 */
					var valorTotalProdutos  = removeMascaraReal($("#total_produtos").text());
					
					VALORFRETE = $(".valor_frete").text();
					
					if(VALORFRETE == 'FRETE GRATUITO'){
						VALORFRETE = '0.00';
					}
					var valorTotalFrete 	= removeMascaraReal(VALORFRETE);
					
					var valorTotal 			= parseFloat(valorTotalProdutos)+parseFloat(valorTotalFrete);
					
					/**
					 * Fim valor total
					 */				
								
					/**
					 * Separa o resultado obtido
					 */
					var detalhesCupom = data.split("|");
					
					/**
					 * Seta variaveis com os valores separados
					 */
					var tipoCupom 		= detalhesCupom[0].replace("\n", "").replace("\r", "");
					var tipoDesconto 	= detalhesCupom[1];
					var valorDesconto	= detalhesCupom[2];
			
					/** 
					 * Verifica tipo de cupom para atualizar a tela
					 */
					switch (tipoCupom)
					{
						case "DE":
							//alert("DESCONTO PEDIDO");
							
							var descontoCalculado = '';
							
							if(tipoDesconto == 'RS')
							{
								valorDescCalc = valorDesconto.replace('.','').replace(',','.'); 	
								valorFinal 	= parseFloat(valorTotal)-parseFloat(valorDescCalc);
								
								valorFinal = valorFinal.toFixed(2);
								valorFinal = valorFinal.replace('.',',');
								if(valorFinal.length >= 7){
					
									var vlrSeparado = valorFinal.substr(valorFinal.length-6);
									var primVlrSeparado = valorFinal.substr(0,valorFinal.length-6);
									
									valorFinal = primVlrSeparado+"."+vlrSeparado;
								
								} 
								
								$(".pgto-preco-cupom").html('R$ '+valorDesconto);
								$("#total_end").html('R$ '+valorFinal);
								$('#box-erro-cupom').hide();
								
							} else {
								
								
								valorDescCalc = valorDesconto.replace('.','').replace(',','.');
								valorFinal 			= valorTotal-((valorTotal*valorDescCalc)/100);
								descontoCalculado 	= (valorTotal*valorDescCalc)/100;
								
								/* Formatando valor final */
								valorFinal = valorFinal.toFixed(2);
								valorFinal = valorFinal.replace('.',',');
								if(valorFinal.length >= 7){
					
									var vlrSeparado = valorFinal.substr(valorFinal.length-6);
									var primVlrSeparado = valorFinal.substr(0,valorFinal.length-6);
									
									valorFinal = primVlrSeparado+"."+vlrSeparado;
								
								} 
								
								/* Formatando valor do desconto */
								descontoCalculado = descontoCalculado.toFixed(2);
								descontoCalculado = descontoCalculado.replace('.',',');
								
								if(descontoCalculado.length >= 7){
					
									var vlrSeparado = descontoCalculado.substr(descontoCalculado.length-6);
									var primVlrSeparado = descontoCalculado.substr(0,descontoCalculado.length-6);
									
									descontoCalculado = primVlrSeparado+"."+vlrSeparado;
								
								} 
								
								
								$(".pgto-preco-cupom").html('R$ '+descontoCalculado);
								$("#total_end").html('R$ '+valorFinal);
								$('#box-erro-cupom').hide();
							}
							
							$('.btn-calcular-cupom').hide();
							$('#btn-remover-cupom').show();
							break;
						
						case "FG":
							//alert("FRETE GRATIS");
							if(slideOnOff === true)
								$('#pgto-envio').slideToggle("slow");
							slideOnOff = false;
							
							$(".valor_frete").html("<span class='freteVermelho'>FRETE GRATUITO</span>");
							$(".pgto-preco-cupom").html("R$ 0,00");
							/*$("#cep1").attr("disabled", true).val("");
							$("#cep2").attr("disabled", true).val("");
							$("#calcular_frete").attr("disabled", true); */
							//$("#total_end").html($("#total_produtos").text());
							$("#total_end").html($("#total_produtos").text());
							//alert($("#total_produtos").text());
							
							$('.btn-calcular-cupom').hide();
							$('#btn-remover-cupom').show();
							$('#box-erro-cupom').hide();
							break;
					}
				}				
			}
		);		
	}	
});


/**
 * Retira cupom de presente
 */
$("#img_botao_remover_cupom").livequery('click', function(e){
	loadingPanel.teste("Processando...");
	
		$.post( 
			"carrinho", 
			{
				acao_carrinho		: "remove_cupom"
			},
			function(data)
			{
				var valorTotal = removeMascaraReal($(".valor_total").text());
				var valorFrete = $(".valor_frete").text();				
					
				if(valorFrete == 'FRETE GRATUITO')
				{				
					$(".valor_frete").html("R$ 0,00");
					$(".pgto-preco-cupom").html("R$ 0,00");
					$("#cep1").removeAttr("disabled");
					$("#cep2").removeAttr("disabled");
					$("#calcular_frete").removeAttr("disabled");
				} else {
				
					valorFrete = removeMascaraReal(valorFrete);
					
					valorFinal = parseFloat(valorTotal)+parseFloat(valorFrete);
					
					
					/* Formatando valor final */
					valorFinal = valorFinal.toFixed(2);
					valorFinal = valorFinal.replace('.',',');
					if(valorFinal.length >= 7){
				
						var vlrSeparado = valorFinal.substr(valorFinal.length-6);
						var primVlrSeparado = valorFinal.substr(0,valorFinal.length-6);
								
						valorFinal = primVlrSeparado+"."+vlrSeparado;
					
					} 
					
					$(".pgto-preco-cupom").html("R$ 0,00");
					$("#total_end").html('R$ '+valorFinal);
				}
				
				$('.erro-cupom').html('Cupom de desconto removido com sucesso!');
				$('#box-erro-cupom').fadeIn();
				$('#carrinho-mensagens').hide();
					
				$('#codigo_cupom').val('');

				loadingPanel.hide();
				
				$('.btn-calcular-cupom').show();
				$('#btn-remover-cupom').hide();
			}
		);
});

/**
 *	Verifica cupom de presente.
 */
$(".emb_presente").livequery('click', function(e){
	
	loadingPanel.teste("Processando...");
		
		$.post( 
			"carrinho", 
			{
				acao_carrinho		: "presente",
				id					: $(this).attr('id')
			},
			function(data)
			{
				loadingPanel.hide();				
			}
		);
});

/**
 * Finalizar compra
 */
/*$("#finalizar_compra").livequery('click', function(e){
	$("form_finaliza").submit();
});*/

/** 
	Cdigo para quando retira o cupom, setar o frete novamente
	$("#recebe_dados_frete")
		.find("input:radio")
		.each( 
			function(e){
    			if($(this).attr("checked") === true)
    			{
        			alert($(this).val());
    			}
			}
		);
		
		---------------
	loadingPanel.teste("Processando...");
	$("#recebe_dados_frete")
		.find("input:radio")
		.each( 
			function(e){
    			if($(this).attr("checked") === true)
    			{
        			$(this).click();
                    loadingPanel.hide();
    			}
			}
		);
		
**/



