	
	//esconde ou mostra o loading do ajax. para ser usado antes e no final de uma requisição ajax.
	//se a img tiver com id="ajax_loader", basta chamar a função como ajax()
	function ajax(elemento){
		if (elemento == null)
			elemento = "ajax_loader";
		div_ajax = document.getElementById(elemento);
		if (div_ajax != null){
			if (div_ajax.style.display == "")
				div_ajax.style.display = "none";
			else
				div_ajax.style.display = "";
		}
	}
	
	//esconde um elemento de forma elegante. requer scriptaculous
	function smart_fade(elemento){
		elemento = typeof(elemento) == "string" ? document.getElementById(elemento) : elemento;
		if (elemento.style.display == ""){
			Effect.Fade(elemento, {duration:0.3});
			Effect.SlideUp(elemento, {duration:0.3});
		}
	}
	
	//muda a cor do fundo de um campo se estiver com algum erro
	function campo_com_erro(id, com_erro){
		campo = document.getElementById(id);
		if (campo != null){
			if (com_erro){
				campo.style.backgroundColor = "FFF5F5";
			}
			else{
				campo.style.backgroundColor = "white";
			}
		}
	}
	
	function select_color(elemento){
		elemento.style.color = elemento.value == '0' ? '#AAAAAA' : '#000000';
	}
	
	function increment(elemento, valor){
		e = document.getElementById(elemento);
		if (e.value.length == 0)
			e.value = 0;
		e.value = parseInt(e.value) + parseInt(valor);
	}
	
	//remove os espaços no início e no fim de uma string
	function trim(str){
		return str.replace(/^\s+|\s+$/g,"");
	}
	
	//copia o valor do hidden field da página pai e para o elemento user_id da janela atual
	function get_user_id(){
		document.getElementById("user_id").value = parent.document.getElementById("user_id").value;
	}
	
	//corrige o tamanho das miniaturas das fotos do pedidos
	function redimensiona_imagem(id_imagem){
		imagem = document.getElementById(id_imagem);
		if (imagem != null){
			var newImg = new Image();
			newImg.src = imagem.src;
			altura = newImg.height;
			largura = newImg.width;
			nova_largura = (largura / altura >= 1.333) ? 160 : parseInt(120 * largura / altura);
			nova_altura = (nova_largura != 160) ? 120 : parseInt(nova_largura * altura / largura);
			imagem.style.height = nova_altura;
			imagem.style.width = nova_largura;
			imagem.style.marginTop = parseInt((120-nova_altura) / 2);
		}
	}
	
	//abre o link passado na página pai, fora do iframe
	function abrir_link_pagina_pai(url){
		parent.location.href = url;
	}
	
	//seleciona o menu do joomla que tenha o rótulo igual a "menu"
	function selecionar_menu_joomla(menu){
		links = document.getElementsByTagName("a");
		for (i=0; i<links.length; i++){
			if (links[i].className == "mainlevel-nav")
				links[i].id = links[i].innerHTML == menu ? "active_menu-nav" : "";
		}
	}
	
	//exibe e define a posição do marcador do menu selecionado
	function marcador_menu(posicao){
		var marker = document.getElementById("menu_marker");
		marker.style.backgroundPosition = posicao+"px 0";
	}
	
	function enter_detectado(evt)
	{
		var key_code = evt.keyCode  ? evt.keyCode  :
					   evt.charCode ? evt.charCode :
					   evt.which    ? evt.which    : void 0;
		return key_code == 13;
	}
