function submeteOrdenacao(valor) {
	var href = window.location.href;
	href = href.replace(/\/\?.*$/, '').replace(/\/+$/, '');
	var existe = href.replace(/\/ordenador:[^\/]+/, '');
	window.location.href=existe+'/ordenador:'+valor;
};
$(function() {
/******************************************************************
		calculo para o menu suspenso de acordo com a sua altura
		para ir expandindo e ir empurrando os itens adjacentes
*******************************************************************/
	var categoria 	= $('.categorias');
	var menu 		= $('.menuCategorias');
	var qtdLis 		= $('ul.menuCategorias>li').length;
	var altura  		= (qtdLis * 27) ;
	categoria.css({'height':altura});

	//soh por causa do ie7 eh alterado a contagem
	var ieSeven = navigator.userAgent.indexOf('MSIE 7.0') > -1;
	if(ieSeven) {
		altura  	= (qtdLis * 32) ;
		categoria.css({'height':altura});
	}
/********************************************************************************
		funcao para alterar a disposicao dos produtos , lista ou miniatura
********************************************************************************/
	$("a.miniatura").css({'backgroundPosition':'0 -20px','color':"#ff9900"});
	$("a.miniatura").click(function(e) {
		e.preventDefault();
		$.get('iss.php', {
			iss : 'produtos.layout',
			tipo : 'tabela'
		});
		$(this).css({'backgroundPosition':'0 -20px','color':"#ff9900"});
		$("a.lista").css({'backgroundPosition':'0 0','color':"#666"});
		$(".conteudoAbas ul:first").show();
		$(".conteudoAbas ul.lista").hide();
	});
	$("a.lista").click(function(e) {
		e.preventDefault();
		$.get('iss.php', {
			iss : 'produtos.layout',
			tipo : 'lista'
		});
		$("a.miniatura").css({'backgroundPosition':'0 0','color':"#666"})
		$(this).css({'backgroundPosition':'0 -21px','color':"#ff9900"})
		$(".conteudoAbas ul.lista").show();
		$(".conteudoAbas ul:first").hide();
	});

	/*****************************
		FUNcao das ABAS
		troca-troca de categoria
	*****************************/
	$('div.conteudoAbas div').hide();
	$('div.conteudoAbas div:first,div.dados,div.box,div.valores,.bookContent,.produto-esgotado').show();
	$('div.boxAbas ul li:first').addClass('current');
	$("div.boxAbas ul li a[href ^='#']").click(function(e) {
		e.preventDefault();
		$('ul li').removeClass('current')
		$(this).parent().addClass('current')
		var atual = $(this).attr('href');
		$('div.conteudoAbas div').hide();
		$('.conteudoAbas *').children().show();
		$('div.conteudoAbas ul.lista').hide();
		$(atual).show();
	});
	/****metodo pra inserir as estrelas nos inputs de avalia??o*****/
	$("li.avalie form input[name='newrate']").rating();
	/****************************************
		dando zoom nas imagens de destaque
	*****************************************/
	//var path = PATH.basename + '/';
	$('a.destaque').modal({
		largura:'424px',
		altura:'581px',
		background:'#000000',
		posicao: 'right',
		btFecharLargura: '12px',
		btFecharAltura: '12px',
		btOffsetY: '0',
		btOffsetX: '0px'
	});

	$("a.simulacao").modal({
			largura:'484px',
			altura:'270px',
			background:'#000000',
			posicao: 'right',
			btFecharLargura: '12px',
			btFecharAltura: '12px',
			btOffsetY: '-12px',
			btOffsetX: '-12px'
	});

//	$("a:contains('Veja todos autores')").each(function(index, element){
//		console.info(element);
//		$(element).modal({
//			largura:'515px',
//			altura:'233px',
//			background:'#000000',
//			posicao: 'right',
//			btFecharLargura: '12px',
//			btFecharAltura: '12px',
//			btOffsetY: '-12px',
//			btOffsetX: '-12px'
//		});
//	});
//	$("a:contains('Veja todos autores')").nyroModal();

	/******************************
		tabela meus pedidos
		alternando as cores entre
		as linhas
	*******************************/
	$("table.tabela_pedidos tbody tr:even td").css("background","#EDEDED");

	/************************
		too tips do form de
		forma de pagamento
	************************/
	$(".dadosCartao label a.dica").each(function(i) {
		$(this).hover(function() {$(".tootipInfo").eq(i).css("display","block")},function() {$(".tootipInfo").eq(i).css("display","none")});
	});

	/*********************
		Ao passar o mouse sobre
		a imagem de aviso, deverá
		aparecer, a msg de erro.
	**********************/
	$('.warning').hover(
		function(){
			var img 		= $(this);
			var txt 			= img.attr('alt');
			var tooTip		= $('<em>');
			var pai 			= img.parent();

			tooTip.text(txt);
			pai.append(tooTip);

			tooTip.css({
				"border": "3px solid #F9B30C",
				"background":"#EDEDED",
				"display":"block",
				"position": "absolute",
				"textAlign":"center",
				"padding":"10px",
				"color":"#656565"
			});

			img.mousemove(function(e){
				tooTip.css({
					top : e.pageY,
					left : e.pageX + 20
				}).stop(true,true);
			});
			img.mouseleave(
				function() {
					tooTip.css("display","none");
				});
		},
		function(){});

		/**************************
						'JUMPER'
			Quando o input atinhe seu
			maxlength, automaticamente
			pula para o proximo campo
		***************************/
		$.fn.extend({
				Jumper:function(itens) {
					var objeto	= {}
					var me			= $(this);
					var irmao		= me.next("input");
					var tio			= me.parent().next();
					itens				= $.extend(objeto,itens);
						  me.each(function(i) {
								var max = me.attr('maxlength');
								me.keyup(function() {
										if(me.val().length == max) {
											if(irmao.length == 0) {
													tio.find("input:first").focus();
											}
											else {
													irmao.focus();
											}
										}
								});
						  });
				}
		});
		$("#cep1").Jumper();

		/**********
			validando
			cpf e cnpj
		***********/
		var NUM_DIGITOS_CPF  = 11;
		var NUM_DIGITOS_CNPJ = 14;
		var NUM_DGT_CNPJ_BASE = 8;
		/**
		 * Adiciona método lpad() à classe String.
		 * Preenche a String à esquerda com o caractere fornecido,
		 * até que ela atinja o tamanho especificado.
		 */
		String.prototype.lpad = function(pSize, pCharPad) {
			var str = this;
			var dif = pSize - str.length;
			var ch = String(pCharPad).charAt(0);
			for (; dif>0; dif--) str = ch + str;
			return (str);
		}
		/**
		 * Elimina caracteres de formatação e zeros à esquerda da string
		 * de número fornecida.
		 * @param String pNum
		 *      String de número fornecida para ser desformatada.
		 * @return String de número desformatada.
		 */
		function unformatNumber(pNum) {
			return String(pNum).replace(/\D/g, "").replace(/^0+/, "");
		}
		/**
		 * Formata a string fornecida como CNPJ ou CPF, adicionando zeros
		 * à esquerda se necessário e caracteres separadores, conforme solicitado.
		 * @param String pCpfCnpj
		 *      String fornecida para ser formatada.
		 * @param boolean pUseSepar
		 *      Indica se devem ser usados caracteres separadores (. - /).
		 * @param boolean pIsCnpj
		 *      Indica se a string fornecida é um CNPJ.
		 *      Caso contrário, é CPF. Default = false (CPF).
		 * @return String de CPF ou CNPJ devidamente formatada.
		 */
		function formatCpfCnpj(pCpfCnpj, pUseSepar, pIsCnpj) {
			if (pIsCnpj==null) pIsCnpj = false;
			if (pUseSepar==null) pUseSepar = true;
			var maxDigitos = pIsCnpj? NUM_DIGITOS_CNPJ: NUM_DIGITOS_CPF;
			var numero = unformatNumber(pCpfCnpj);

			numero = numero.lpad(maxDigitos, '0');

			if (!pUseSepar) return numero;

			if (pIsCnpj) {
				reCnpj = /(\d{2})(\d{3})(\d{3})(\d{4})(\d{2})$/;
				numero = numero.replace(reCnpj, "$1.$2.$3/$4-$5");
			}
			else {
				reCpf  = /(\d{3})(\d{3})(\d{3})(\d{2})$/;
				numero = numero.replace(reCpf, "$1.$2.$3-$4");
			}
			return numero;
		}

		/**
		 * Calcula os 2 dígitos verificadores para o número-efetivo pEfetivo de
		 * CNPJ (12 dígitos) ou CPF (9 dígitos) fornecido. pIsCnpj é booleano e
		 * informa se o número-efetivo fornecido é CNPJ (default = false).
		 * @param String pEfetivo
		 *      String do número-efetivo (SEM dígitos verificadores) de CNPJ ou CPF.
		 * @param boolean pIsCnpj
		 *      Indica se a string fornecida é de um CNPJ.
		 *      Caso contrário, é CPF. Default = false (CPF).
		 * @return String com os dois dígitos verificadores.
		 */
		function dvCpfCnpj(pEfetivo, pIsCnpj) {
			if (pIsCnpj==null) pIsCnpj = false;
			var i, j, k, soma, dv;
			var cicloPeso = pIsCnpj? NUM_DGT_CNPJ_BASE: NUM_DIGITOS_CPF;
			var maxDigitos = pIsCnpj? NUM_DIGITOS_CNPJ: NUM_DIGITOS_CPF;
			var calculado = formatCpfCnpj(pEfetivo + "00", false, pIsCnpj);
			calculado = calculado.substring(0, maxDigitos - 2);
			var result = "";

			for (j = 1; j <= 2; j++) {
				k = 2;
				soma = 0;
				for (i = calculado.length-1; i >= 0; i--) {
					soma += (calculado.charAt(i) - '0') * k;
					k = (k-1) % cicloPeso + 2;
				}
				dv = 11 - soma % 11;
				if (dv > 9) dv = 0;
				calculado += dv;
				result += dv
			}
			return result;
		}
		/**
		 * Testa se a String pCpf fornecida é um CPF válido.
		 * Qualquer formatação que não seja algarismos é desconsiderada.
		 * @param String pCpf
		 *      String fornecida para ser testada.
		 * @return <code>true</code> se a String fornecida for um CPF válido.
		 */
		function isCpf(pCpf) {
			var numero = formatCpfCnpj(pCpf, false, false);
			if (numero.length > NUM_DIGITOS_CPF) return false;

			var base = numero.substring(0, numero.length - 2);
			var digitos = dvCpfCnpj(base, false);
			var algUnico, i;

			// Valida dígitos verificadores
			if (numero != "" + base + digitos) return false;

			/* Não serão considerados válidos os seguintes CPF:
			 * 000.000.000-00, 111.111.111-11, 222.222.222-22, 333.333.333-33, 444.444.444-44,
			 * 555.555.555-55, 666.666.666-66, 777.777.777-77, 888.888.888-88, 999.999.999-99.
			 */
			algUnico = true;
			for (i=1; algUnico && i<NUM_DIGITOS_CPF; i++) {
				algUnico = (numero.charAt(i-1) == numero.charAt(i));
			}
			return (!algUnico);
		}

		/**
		 * Testa se a String pCnpj fornecida é um CNPJ válido.
		 * Qualquer formatação que não seja algarismos é desconsiderada.
		 * @param String pCnpj
		 *      String fornecida para ser testada.
		 * @return <code>true</code> se a String fornecida for um CNPJ válido.
		 */
		function isCnpj(pCnpj) {
			var numero = formatCpfCnpj(pCnpj, false, true);
			if (numero.length > NUM_DIGITOS_CNPJ) return false;

			var base = numero.substring(0, NUM_DGT_CNPJ_BASE);
			var ordem = numero.substring(NUM_DGT_CNPJ_BASE, 12);
			var digitos = dvCpfCnpj(base + ordem, true);
			var algUnico;

			// Valida dígitos verificadores
			if (numero != "" + base + ordem + digitos) return false;

			/* Não serão considerados válidos os CNPJ com os seguintes números BÁSICOS:
			 * 11.111.111, 22.222.222, 33.333.333, 44.444.444, 55.555.555,
			 * 66.666.666, 77.777.777, 88.888.888, 99.999.999.
			 */
			algUnico = numero.charAt(0) != '0';
			for (i=1; algUnico && i<NUM_DGT_CNPJ_BASE; i++) {
				algUnico = (numero.charAt(i-1) == numero.charAt(i));
			}
			if (algUnico) return false;

			/* Não será considerado válido CNPJ com número de ORDEM igual a 0000.
			 * Não será considerado válido CNPJ com número de ORDEM maior do que 0300
			 * e com as três primeiras posições do número BÁSICO com 000 (zeros).
			 * Esta crítica não será feita quando o no BÁSICO do CNPJ for igual a 00.000.000.
			 */
			if (ordem == "0000") return false;
			return (base == "00000000" || parseInt(ordem, 10) <= 300 || base.substring(0, 3) != "000");
		}

		/**
		 * Testa se a String pCpfCnpj fornecida é um CPF ou CNPJ válido.
		 * Se a String tiver uma quantidade de dígitos igual ou inferior
		 * a 11, valida como CPF. Se for maior que 11, valida como CNPJ.
		 * Qualquer formatação que não seja algarismos é desconsiderada.
		 * @param String pCpfCnpj
		 *      String fornecida para ser testada.
		 * @return <code>true</code> se a String fornecida for um CPF ou CNPJ válido.
		 */
		function validar(pCpfCnpj) {
			var numero = pCpfCnpj.replace(/\D/g, "");
			if (numero.length > NUM_DIGITOS_CPF)
				return isCnpj(pCpfCnpj)
			else
				return isCpf(pCpfCnpj);
		}

		$("input[name='cpf']").keyup(function() {
			var me		= $(this);
			var valor	= me.val().replace(/[-.\/]/g,'');
			if (validar(valor) == true) {
				if(valor.length == 11 && isCpf(valor)) {
					valor = formatCpfCnpj(valor, true, false);
					$(this).val(valor);
				}
				else if(valor.length == 14 && isCnpj(valor)) {
					valor = formatCpfCnpj(valor, true, true);
					$(this).val(valor);
				}
			}
		}).triggerHandler('keyup');

		// Verificação dos Dados no Formulário
		// TODO Melhorar o Código
		$('input[name="emailident"],input[name="cpf"]')
		.focus(function(){
			// Desabilitar Formulário
			$('button[name="cadastrar"]').attr('disabled', true);
		})
		.blur(function(){
			// Botão de Envio
			var email  = $('input[name="emailident"]');
			var cpf    = $('input[name="cpf"]');
			var button = $('button[name="cadastrar"]');
			// Valores
			var params = {
				cpf   : cpf.val(),
				email : email.val()
			};
			$.post('iss.php?iss=cadastro.verificar', params, function(data){
				button.attr('disabled', !data.valid); // Habilita com Dados Válidos
				if (!data.valid) {
					if (!data.result.cpf) {
						cpf.css('border', '1px #F9B30C solid');
						cpf.next().css('display', 'inline');
					} else {
						cpf.css('border', 0);
						cpf.next().css('display', 'none');
					}
					if (!data.result.email) {
						email.css('border', '1px #F9B30C solid');
						email.next().css('display', 'inline');
					} else {
						email.css('border', 0);
						email.next().css('display', 'none');
					}
				} else {
					$([cpf, email]).each(function(index, element){
						element.css('border', 0);
						element.next().css('display', 'none');
					});
				}
			}, 'json');
		});

		/***********************
			exibir e esconder campos
			de acordo com a
			pessoa escolhida
			seja juridica ou fisica
		***********************/
		var pessoa			= $("label[for='pessoa']");
		var filhos				= pessoa.find(":radio");
		var cnpj				= $("label[for='cnpj']").css("display","none");
		var profissional		= $("label[for='profissional']");
		profissional.css("display","none");
		filhos.change(function() {
				if ($(this).attr('checked')) {
					if($(this).val() == "PJ") {
							$("label[for='ocupacao'],label[for='sexo'],label[for='data_de_nascimento'],label[for='cpf']").css("display","none");
							$('#cnpjisento,#isentoLabel').css('display', 'inline');
							$("label[for='rg'] span:first").text("Inscrição estadual:");
							cnpj.css("display","block");
							cnpj.find('input').removeAttr('disabled');
							$('input#cpf').attr('disabled', true);
							profissional.css("display","none");

					}
					else {
						$("#tipo_cliente").triggerHandler('change');
						$("label[for='ocupacao'],label[for='sexo'],label[for='data_de_nascimento'],label[for='cpf']").css("display","block");
						$('#cnpjisento,#isentoLabel').css('display', 'none');
						$("label[for='rg'] span:first").text("RG:");
						$('input#cpf').removeAttr('disabled');
						cnpj.css("display","none");
						cnpj.find('input').attr("disabled", true);
					}
				}
		});
		filhos.trigger('change');

		$("#tipo_cliente").change(function() {
				$("#tipo_cliente option:selected").each(function(i) {
					var s = $(this).val();
					if(s == "OUTROS" && filhos.attr('checked')) {
						profissional.css("display","block");
					}
					else {
						profissional.css("display","none");
					}
				});
		}).trigger('change');

		// Busca - Formulário do Topo
		$('#botao_busca').click(function(event){
			event.preventDefault();
			$('#formulario_busca').submit();
		});
		$('#formulario_busca').submit(function(event){
			// Tipo de Busca na Caixa de Seleção
			var type  = $("#formulario_busca select[name='busca']");
			// Nome do Tipo de Busca
			var name  = type.val();
			// Valor Informado na Caixa
			var value = $("#formulario_busca input[name='q']").val();
			// Elemento Auxiliar para Montagem de Busca
			var set   = $("#formulario_busca input[name='tipo']");
			if (name != '') {
				// Busca por Tópico
				set.attr('name', name);
				set.attr('value', value);
			} else {
				// Busca Completa
				set.attr('name', null);
			}
			// Evita o Envio do Tipo na Pesquisa
			type.attr('name', null);
			return true;
		});
		/***********************
			links com atributo
			rel="external"
		***********************/
		$("a[rel='external']").attr("target","_blank");

		/****identificando quando se tem cupom ou nao visivel****/
		if ($("label[for='cupom']").find("#cupom").length == 0) {
			$("span.cupom").removeClass("cupom").addClass("removerCupom")
		}


		/***********************
			links com atributo
			rel = 'back'
		************************/
		$("a[rel='back']").click(function(e) {
			$(this).attr('href','javascript:history.go(-1)');
		});

	$('a.aviseme').modal({
		largura:'525px',
		altura:'325px',
		background:'#000000',
		posicao: 'right',
		btFecharLargura: '12px',
		btFecharAltura: '12px',
		btOffsetY: '-15px',
		btOffsetX: '-15px'
	});

});

