var plg_carrinho_lista = 
{
	"opcaoInserir": "simples",
	"qtdeMinima": 1,
	"recarregarCarrinho": function(p_contexto)
	{
		var myself = this;
		$.post(
				"ajax.aspx?cnt=" + p_contexto + "&form=frm_", 
				{ 
					frm_html: "carrinho_lista",
					frm_cmd: "carrinho"
				},
				function(data) 
				{
					$(".plg_carrinho_lista").replaceWith(data);
					
					if ($(".plg_carrinho_ultimo_produto").length > 0)
					{
					
						if ($(".plg_carrinho_ultimo_produto").html().indexOf('[c]titulo_produto_idioma[/c]') != -1)
						{
							$(".plg_carrinho_ultimo_produto").html("Sem produtos no carrinho.");
						}
						
						if ($(".plg_carrinho_ultimo_produto").val().indexOf('[c]titulo_produto_idioma[/c]') != -1)
						{
							$(".plg_carrinho_ultimo_produto").val("Sem produtos no carrinho.");
						}
					}
					
					var itens_carrinho = $(".plg_carrinho_itens").val();

					if ($(".plg_carrinho_lista_item").length > 0)
						$(".plg_carrinho_btn_finalizar_multiplo").show();
					else
						$(".plg_carrinho_btn_finalizar_multiplo").hide();

					
					$(".plg_carrinho_btn_comprar").each(function(){
						var cod =  "#" + $(this).parents(".plg_carrinho_item").find(".plg_carrinho_produto").val() + "#";
						if (itens_carrinho.indexOf(cod) > -1)
							$(this).addClass("plg_carrinho_btn_comprado").removeClass("plg_carrinho_btn_comprar");
					});

					$(".plg_carrinho_btn_comprado").each(function(){
						var cod =  "#" + $(this).parents(".plg_carrinho_item").find(".plg_carrinho_produto").val() + "#";
						if (itens_carrinho.indexOf(cod) == -1)
							$(this).addClass("plg_carrinho_btn_comprar").removeClass("plg_carrinho_btn_comprado");
					});
					
					$(".plg_carrinho_item_comprado").each(function(){
						var cod =  "#" + $(this).parents(".plg_carrinho_item").find(".plg_carrinho_produto").val() + "#";
						if (itens_carrinho.indexOf(cod) == -1)
							$(this).addClass("plg_carrinho_item_comprar").removeClass("plg_carrinho_item_comprado");
					});

					$(".plg_carrinho_item_comprar").each(function(){
						var cod =  "#" + $(this).parents(".plg_carrinho_item").find(".plg_carrinho_produto").val() + "#";
						if (itens_carrinho.indexOf(cod) > -1)
							$(this).addClass("plg_carrinho_item_comprado").removeClass("plg_carrinho_item_comprar");
					});
					
					
					
					$(".plg_carrinho_lista_excluir").click(function(){
						$(".plg_carrinho_lista_ajax_loader").show();
						var idx = $(this).parents(".plg_carrinho_lista_item").find(".plg_carrinho_lista_numero").val();
						var contexto = $(".chave_contexto").val();
						
						$.post(
							"ProdutoInserir.aspx", 
							{ 
								cnt: contexto, 
								index: idx,
								acao: "x"
							},
							function(data) {
								switch (data) {
									case "0":
										//document.location.reload();
										myself.recarregarCarrinho(contexto);
										
										break;
									default:
										alert(data);

								}
							}
						);
					});
					
					$(".plg_carrinho_lista_ajax_loader").hide();
				}
				
		);
		
	},
	"carregar": function()
	{
		var myself = this;
		
		if ($(".plg_carrinho_qtde").length > 0)
		{
			this.qtdeMinima =  parseInt($(".plg_carrinho_qtde").eq(0).val());
			if (isNaN(this.qtdeMinima))
				this.qtdeMinima = 1;
			
		}

		$(".plg_carrinho_btn_mais").click(function(){
			var qtde =  parseInt($(this).parents(".plg_carrinho_item").find(".plg_carrinho_qtde").val()) + 1;
			if (isNaN(qtde))
				qtde = plg_carrinho_lista.qtdeMinima;
			
			$(this).parents(".plg_carrinho_item").find(".plg_carrinho_qtde").val(qtde);	
		});
		
		$(".plg_carrinho_btn_menos").click(function(){
			var obj_qtde = 	$(this).parents(".plg_carrinho_item").find(".plg_carrinho_qtde");
			var qtde =  parseInt($(this).parents(".plg_carrinho_item").find(".plg_carrinho_qtde").val()) - 1;
			if (isNaN(qtde) || qtde < plg_carrinho_lista.qtdeMinima)
				qtde = plg_carrinho_lista.qtdeMinima;
			
			$(this).parents(".plg_carrinho_item").find(".plg_carrinho_qtde").val(qtde);	
		});
		
	
		this.recarregarCarrinho($(".chave_contexto").val());

		$(".plg_carrinho_lista").after("<div class='plg_carrinho_lista_ajax_loader'></div>");

		$(".plg_carrinho_btn_comprar, .plg_carrinho_btn_comprado").click(function(){
			
			var botao_atual = this;
			$(this).hide();
			$(this).parents(".plg_carrinho_item").find(".plg_carrinho_btn_loading").show();

			//$(".plg_carrinho_lista_ajax_loader").show();
			var produto = $(this).parents(".plg_carrinho_item").find(".plg_carrinho_produto").val();
			var urlDetalhe = $(this).parents(".plg_carrinho_item").find(".plg_carrinho_url_detalhe").val();
			var quantidade = $(this).parents(".plg_carrinho_item").find(".plg_carrinho_qtde").val();
			var contexto = $(".chave_contexto").val();
			
			if (isNaN(quantidade))
				quantidade = 1;
						
			$.post(
				"ProdutoInserir.aspx", 
				{ 
					prod: produto, 
					cnt: contexto, 
					qtde: quantidade,
					acao: "i",
					opc: plg_carrinho_lista.opcaoInserir
				},
				function(data) {
					switch (data) {
						case "0":
							
							$(botao_atual).addClass("plg_carrinho_btn_comprado").removeClass("plg_carrinho_btn_comprar");
							
							$(botao_atual).parents(".plg_carrinho_item").find(".plg_carrinho_btn_loading").hide();
							$(botao_atual).show();
							
							myself.recarregarCarrinho(contexto);
							break;
						case "1":
							document.location.href = urlDetalhe;
							break;
						default:
							$(botao_atual).parents(".plg_carrinho_item").find(".plg_carrinho_btn_loading").hide();
							$(botao_atual).show();
							alert(data);
							//$(".plg_carrinho_lista_ajax_loader").hide();
					}
				}
			);
		});

		if ($(".plg_carrinho_item").length > 0)
			$(".plg_carrinho_btn_comprar_multiplo").show();

		if ($(".plg_carrinho_btn_comprar_multiplo").length > 0)
		{
			//integração com a paginação
			$(".paginacao_label_paginas > a").each(function(){
				$(this).attr("original_href", $(this).attr("href"));
				$(this).attr("href", "#");

				$(this).click(function(){
					var continuar = ($(".plg_carrinho_qtde[value!='0']").length == 0);

					if (!continuar)
						continuar = confirm("Existe um ou mais produtos com a quantidade informada \n" + "que não foi adicionado/alterado no carrinho. \n\n Deseja mesmo continuar? \n");

					if (continuar)
						document.location.href = $(this).attr("original_href");
					
				});


			});
		};

		$(".plg_carrinho_btn_comprar_multiplo").click(function(){
			var valores = "";

			$(".plg_carrinho_item").each(function(){
				var obj_qtde = $(this).find(".plg_carrinho_qtde");
				var obj_prod = $(this).find(".plg_carrinho_produto");
				if (isNaN($(obj_qtde).val()) || $(obj_qtde).val() == "")									  
					$(obj_qtde).val("0");
				
				if ($(obj_qtde).val() != "0")
				{
					var valor = $(obj_qtde).val() + "#" + $(obj_prod).val();
					if (valores == "")
						valores = valor
					else
						valores = valores + "|" + valor;

					$(obj_qtde).val("0");
				};
			});
			
			if (valores == "")
				alert("Informe a quantidade desejada de pelo menos um produto para compra.");
			else
			{
				var contexto = $(".chave_contexto").val();
				$(".plg_carrinho_lista_ajax_loader").show();

				$.post(
					"ProdutoInserir.aspx", 
					{ 
						prods: valores, 
						cnt: contexto, 
						acao: "im",
						opc: plg_carrinho_lista.opcaoInserir
					},
					function(data) {
						switch (data) {
							case "0":
								myself.recarregarCarrinho(contexto);
								break;
							default:
								alert("Não foi possível a inclusão de alguns produtos no carrinho.");
								$(".plg_carrinho_lista_ajax_loader").hide();
								break;
						}
					}
				);
			}
		});
	
	}
}



$(function(){  
	plg_carrinho_lista.carregar();
});
