;(function($) {

	jQuery.fn.produtoValorAvista = function(options) {
		if (!this.length) {
			log('ajaxSubmit: skipping submit process - no element selected');
			return this;
		}
		
		return this.each(function() {
			var valor = $(this).attr("data-val-avista-valor");
			if (valor.indexOf("[c]") == -1 && $(options.FormaPagtoText).length > 0)
			{
				$(this).find(options.FormaPagtoDisplay).text($(options.FormaPagtoText).val());
				$(this).show();
			}
		});
	};

	//EXIBIR O BRINDE DO CARRINHO
	jQuery.fn.carrinhoBrinde = function(options) {
		if (!this.length) {
			log('ajaxSubmit: skipping submit process - no element selected');
			return this;
		}
		
		return this.each(function() {
			var brindeAtual = options.BrindeAtual.Titulo.Valor;
			if (brindeAtual)
			{
				$(this).find(options.BrindeAtual.Titulo.Display).text(brindeAtual);
				$(this).find(options.BrindeAtual.Qtde.Display).text(options.BrindeAtual.Qtde.Valor);
				$(this).find(options.BrindeAtual.Limite.Display).text(options.BrindeAtual.Limite.Valor);

				$(this).find(options.BrindeAtual.Display).show();
			}

			var brindeSeguinte = options.BrindeSeguinte.Titulo.Valor;
			if (brindeSeguinte)
			{
				$(this).find(options.BrindeSeguinte.Titulo.Display).text(brindeSeguinte);
				$(this).find(options.BrindeSeguinte.Qtde.Display).text(options.BrindeSeguinte.Qtde.Valor);
				$(this).find(options.BrindeSeguinte.Limite.Display).text(options.BrindeSeguinte.Limite.Valor);

				$(this).find(options.BrindeSeguinte.Display).show();
			}

			if (brindeSeguinte || brindeAtual)
				$(this).show();
		});
	};

	//EXIBIR O BRINDE DO PAGAMENTO
	jQuery.fn.pagamentoBrinde = function(valor) {
		if (!this.length) {
			log('ajaxSubmit: skipping submit process - no element selected');
			return this;
		}
		
		return this.each(function() {
			if (valor)
			{
				$(this).show();
			}
		});
	};

	// EXTENSÃO DO LOGOFF
	jQuery.fn.logoff = function(options) {
		if (!this.length) {
			log('ajaxSubmit: skipping submit process - no element selected');
			return this;
		}
		
		return this.each(function() {
			var logoffBtn = this;
			var chaveContexto = options.chaveContexto;
			var thisUrlPage = window.location.href.replace(/&{1}/gi,"%26");
			var logoffLink = "sair.aspx?cnt=" + chaveContexto + "&pag=" + thisUrlPage;
			
			$(logoffBtn).attr("href", logoffLink);
		});
	};

	// EXTENSÃO DO ATENDIMENTO ONLINE
	jQuery.fn.atendimentoOnline = function(options) {
		if (!this.length) {
			log('ajaxSubmit: skipping submit process - no element selected');
			return this;
		}
		
		return this.each(function() {
			var urlVerificacao = options.urlverificacao;
			var urlAtendimento = options.urlatendimento;
			var container = this;
			
			$.post(urlVerificacao,
				function(data)
				{
					if (data == 1)
						$(container).show();
					
					$(container).click(function() {
						window.open(urlAtendimento, 'janela', 'width=600, height=350, top=100, left=100');
					});
				}
			);
		});
	};
	
	
	// EXTENSÃO DA PAGINAÇÃO
	jQuery.fn.paginacao = function(options) {
		if (!this.length) {
			log('ajaxSubmit: skipping submit process - no element selected');
			return this;
		}
		
		return this.each(function() {
			var paginacaoItem = options.paginacaoItem;
			var itemPorPagina = parseInt(options.itemPorPagina);
			var avancarBtn = this;
			var voltarBtn = options.voltarBtn;
			var totalItem = $(paginacaoItem).length;
			var limite = totalItem - itemPorPagina;
			var primeiroItemVisivel = 0;
			var verificaUltimo = 0;
			
			$(paginacaoItem).eq(primeiroItemVisivel).show().nextAll(paginacaoItem).show();
			
			$(avancarBtn).click(function() {
				verificaUltimo = primeiroItemVisivel;
				verificaUltimo += itemPorPagina;
				
				if (primeiroItemVisivel != limite && verificaUltimo < totalItem)
				{
					primeiroItemVisivel += itemPorPagina;
					$(paginacaoItem).hide();
					$(paginacaoItem).eq(primeiroItemVisivel).show().nextAll(paginacaoItem).show();
				}
			});
			
			$(voltarBtn).click(function() {
				if (primeiroItemVisivel != 0)
				{
					primeiroItemVisivel -= itemPorPagina;
					$(paginacaoItem).hide();
					$(paginacaoItem).eq(primeiroItemVisivel).show().nextAll(paginacaoItem).show();
				}
			});
		});
	};
	
	
	// EXTENSÃO DA BUSCA AVANÇADA
	jQuery.fn.buscaAvancada = function(options) {
		if (!this.length) {
			log('ajaxSubmit: skipping submit process - no element selected');
			return this;
		}
		
		return this.each(function() {
			var busca_avancada_btn = options.busca_avancada_btn;
			var busca_avancada_campo_item = options.busca_avancada_campo_item;
			var busca_avancada_cod_cadastro = options.busca_avancada_cod_cadastro;
			var cod_cadastro_id = options.cod_cadastro_id;
			var campo_item_val = options.campo_item_val;
			var campo_item_sub_opt_val = options.campo_item_sub_opt_val;
			var campo_item = options.campo_item;
			
			url = "";
		
			function tirarParametros(palavra)
			{
				posicao = url.indexOf(palavra);
				urlPalavra = "";
				if (posicao != -1)
				{
					urlInicial = url.substring(0, posicao - 1);
					urlFinal = url.substring(posicao);
					posicaoFinal = urlFinal.indexOf("&");
					
					url = urlInicial;
					urlPalavra = urlFinal;
					if (posicaoFinal != -1)
					{
						urlPalavra = urlFinal.substring(0,posicaoFinal);
						urlFinal = urlFinal.substring(posicaoFinal);
						url = urlInicial + urlFinal;
					}
					
				}
				
				return urlPalavra;
			}
			
			url = window.location.href;
				
			urlBusca = tirarParametros("busca_avancada");
			urlFabricante = tirarParametros("cod_fabricante");
			
			if (urlFabricante != "")
			{
				codFabricante = urlFabricante.substring(urlFabricante.indexOf("=")+1);														  
				$('.select_categoria_fabricante').val(codFabricante);
			}

			if (urlBusca != "")
			{
				parametros = urlBusca.substring(urlBusca.indexOf("="));
				verifica = parametros.indexOf("op");
				while (verifica != -1)
				{
					cad = parametros.substring(1, verifica);
					parametros = parametros.substring(verifica + 2);

					idx = parametros.indexOf("-");
					if (idx !=  -1)
					{
						opcao = parametros.substring(0, idx);
						parametros = parametros.substring(idx);
					}
					else
					{
						opcao = parametros;
					}
					
					$(cod_cadastro_id + cad).val(opcao);
					
					verifica = parametros.indexOf("op");

				}

			}
			
			if ($('.select_categoria_fabricante option').length > 1)
			{
				$('.categoria_busca_fabricante').show();
			}
			
			if ($(".select_categoria_fabricante").is(":visible") || $(".categoria_busca_avancada").length > 1)
			{
				$("#busca_avancada").show();
			}
			
			$(busca_avancada_btn).click(function() {
				var strBusca = "";
				$(busca_avancada_campo_item).each(function() {
					codCadastro = $(this).next(busca_avancada_cod_cadastro).val();
					valor = cod_cadastro_id + codCadastro;
					strOpcao = $(valor).val();
					if (strOpcao != "-1")
					{
						strBusca += "-" + codCadastro + "op" + $(valor).val();
					}
				});

				if (strBusca != "")
				{
					strBusca = "&busca_avancada=" + strBusca.substring(1);
				}
			
				url += strBusca;
				
				strFabricante = $('.select_categoria_fabricante').val();
				if (strFabricante != "-1")
				{
					url += "&cod_fabricante=" + strFabricante;
				}
				
				document.location.href = url;
			});
			
			$(campo_item_val).each(function() {
				valor_item = $(this).val();
				
				if (valor_item != '-1')
				{
					titulo_opcao = $(this).parents(busca_avancada_campo_item).find(campo_item_sub_opt_val + '[value="' + valor_item + '"]').attr("title");
					$(this).parents(busca_avancada_campo_item).find(campo_item).text(titulo_opcao);
				}
			});
		});
	};
	
	// PRAZO OFERTA
	jQuery.fn.prazooferta = function(options) {
		if (!this.length) {
			log('ajaxSubmit: skipping submit process - no element selected');
			return this;
		}
		
		return this.each(function() {
			var paginacaoItem = options.paginacaoItem;
			var itemPorPagina = parseInt(options.itemPorPagina);
			var avancarBtn = this;
			var voltarBtn = options.voltarBtn;
			var totalItem = $(paginacaoItem).length;
			var limite = totalItem - itemPorPagina;
			var primeiroItemVisivel = 0;
			var verificaUltimo = 0;
			
			$(paginacaoItem).eq(primeiroItemVisivel).show().nextAll(paginacaoItem).show();
			
			$(avancarBtn).click(function() {
				verificaUltimo = primeiroItemVisivel;
				verificaUltimo += itemPorPagina;
				
				if (primeiroItemVisivel != limite && verificaUltimo < totalItem)
				{
					primeiroItemVisivel += itemPorPagina;
					$(paginacaoItem).hide();
					$(paginacaoItem).eq(primeiroItemVisivel).show().nextAll(paginacaoItem).show();
				}
			});
			
			$(voltarBtn).click(function() {
				if (primeiroItemVisivel != 0)
				{
					primeiroItemVisivel -= itemPorPagina;
					$(paginacaoItem).hide();
					$(paginacaoItem).eq(primeiroItemVisivel).show().nextAll(paginacaoItem).show();
				}
			});
		});
	};
	
	// FAIXA BANNER
	jQuery.fn.faixabanner = function(options) {
		if (!this.length) {
			log('ajaxSubmit: skipping submit process - no element selected');
			return this;
		}
	
		return this.each(function () {
			var faixa_banner = this;
			var atual = 0;
			var faixa_item = options.faixa_item;
			var tempo = options.tempo;
			var animacao = options.animacao;
			var velocidade = options.velocidade;
			var tamanho = $(faixa_banner).find(faixa_item).length - 1;
			
			$(faixa_banner).css({"overflow": "hidden", "position": "relative"});
			$(faixa_banner).find(faixa_item).css({"position": "absolute", "visibility": "visible"});
			
			switch (animacao)
			{
				case "top":
					var animar = {marginTop: "-100", opacity: 0.0}
					var animar_volta = {marginTop: "100"}
					var animar_centro = {marginTop: "0", opacity: 1.0}
					$(faixa_banner).find(faixa_item).css('margin-top', '100px');
					break;
				
				case "bottom":
					var animar = {marginTop: "100", opacity: 0.0}
					var animar_volta = {marginTop: "-100"}
					var animar_centro = {marginTop: "0", opacity: 1.0}
					$(faixa_banner).find(faixa_item).css('margin-top', '-100px');
					break;
					
				case "right":
					var animar = {marginLeft: "2000", opacity: 0.0}
					var animar_volta = {marginLeft: "-2000"}
					var animar_centro = {marginLeft: "0", opacity: 1.0}
					$(faixa_banner).find(faixa_item).css('margin-left', '-2000px');
					break;
					
				case "left":
					var animar = {marginLeft: "-2000", opacity: 0.0}
					var animar_volta = {marginLeft: "2000"}
					var animar_centro = {marginLeft: "0", opacity: 1.0}
					$(faixa_banner).find(faixa_item).css('margin-left', '2000px');
					break;
			}
			
			$(faixa_banner).find(faixa_item).eq(atual).animate(animar_centro, velocidade);			
			var chamar = window.setTimeout(mudar, tempo);
			
			function mudar ()
			{
				if (tamanho != 0)
				{	
					$(faixa_banner).find(faixa_item).eq(atual).animate(animar, velocidade).animate(animar_volta, velocidade);
					
					if (atual < tamanho)
						atual += 1;
					else 
						atual = 0;
						
					$(faixa_banner).find(faixa_item).eq(atual).animate(animar_centro, velocidade);
					chamar = window.setTimeout(mudar, tempo);
				}
			}
		});
	};

	// EXTENSÃO DO Google Analytics Ecommerce Tracking
	jQuery.fn.analyticsEcommerceTracking = function(options) {
		if (!this.length) {
			log('ajaxSubmit: skipping submit process - no element selected');
			return this;
		}
		
		if ($(this).find(options.UAId).length == 1 && $(this).find(options.Item).length > 0)
		{
			try
			{
				var pageTracker = _gat._getTracker($(this).find(options.UAId).text());
				
				var myOrderId = $(this).find(options.OrderId).text();

				pageTracker._trackPageview();
				pageTracker._addTrans(
				  myOrderId,	// order ID - required
				  $(this).find(options.StoreName).text(),	// affiliation or store name
				  $(this).find(options.Total).text().replace(",", "."),           // total - required
				  $(this).find(options.Tax).text().replace(",", "."),            // tax
				  $(this).find(options.Shipping).text().replace(",", "."),           // shipping
				  $(this).find(options.City).text(),	// city
				  $(this).find(options.State).text(),	// state or province
				  $(this).find(options.Country).text()		// country
				);

				$(this).find(options.Item).each(function(){

					// add item might be called for every item in the shopping cart
				// where your ecommerce engine loops through each item in the cart and
				// prints out _addItem for each 

					pageTracker._addItem(
					  myOrderId,           // order ID - necessary to associate item with transaction
					  $(this).find(options.ItemSku).text(),           // SKU/code - required
					  $(this).find(options.ItemName).text(),        // product name
					  $(this).find(options.ItemCategory).text(),   // category or variation
					  $(this).find(options.ItemUnitPrice).text().replace(",", "."),          // unit price - required
					  $(this).find(options.ItemQuantity).text()               // quantity - required
					);
				});

				pageTracker._trackTrans(); //submits transaction to the Analytics servers

			} catch(err) {}
		}

		return this;
	};
	
})(jQuery);
