	function enviaAssocia() {
		var dados_adicionais;
		var caminho = caminho_externo + '/associe-se';
		get('form-carregando').style.visibility = 'visible';
		var volta = function (res) {
			eval(res);
			get('form-carregando').style.visibility = 'hidden';
		}
		enviaFormulario('f', 'f', dados_adicionais, caminho, volta, true);
	}

	function limpaAssocia() {
		get('form-msg').style.display = 'none';
		get('f').reset();
	}
	
	function enviaComentario(area) {
		var dados_adicionais;
		eval("var caminho = caminho_externo + '/' + area + 's/' + " + area + "_atual");
		get('form-carregando').style.visibility = 'visible';
		var volta = function (res) {
			eval(res);
			get('form-carregando').style.visibility = 'hidden';
		}
		enviaFormulario('f', 'f', dados_adicionais, caminho, volta, true);
	}

	function limpaComentario() {
		get('form-msg').style.display = 'none';
		get('f').reset();
	}

	function enviaContato() {
		var dados_adicionais;
		var caminho = caminho_externo + '/contato';
		get('form-carregando').style.visibility = 'visible';
		var volta = function (res) {
			eval(res);
			get('form-carregando').style.visibility = 'hidden';
		}
		enviaFormulario('f', 'f', dados_adicionais, caminho, volta, true);
	}
	
	function limpaContato() {
		get('form-msg').style.display = 'none';
		get('f').reset();
	}

	function postaAjax(caminho, dados, volta, sincrona) {
		if (!caminho) alert('Caminho não definido!');
		if (!(caminho, dados, volta)) alert('Parâmetros incorretos na função postaAjax(caminho, dados, volta)\n\ncaminho=' + caminho + '\ndados=' + dados + '\nvolta=' + volta);
		var ajax = criar_ajax();
		if (ajax != null) {
			if (!sincrona) {
				ajax.onreadystatechange = function() {
					if (ajax.readyState == 4) {
						volta(ajax.responseText);
					}
				}
			}
			ajax.open('POST', caminho, !sincrona);
			ajax.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');
			ajax.send(dados);
			if (sincrona) {
				volta(ajax.responseText)
			}
		}
	}

	function enviaFormulario(edicao_id, formulario, dados_adicionais, caminho, volta, sincrona) {
		var f = get(formulario);
		var el;
		var valor;
		var dados;
		if (dados_adicionais) {
			dados = dados_adicionais + '&asc=1';
		} else {
			dados = 'asc=1';
		}
		var arrIds = Array();
		getAllIds(f, arrIds);
		for (var i = 0; i < arrIds.length; i++) {
			el = get(arrIds[i]);
			switch (el.type) {
				case 'select-one':
				case 'hidden':
				case 'text':
				case 'textarea':
				case 'password':
					valor = el.value;
					dados += '&' + el.id + '=' + post_encode(valor);
					break; 
				case 'radio':
					if (el.checked) {
						valor = el.value;
						dados += '&' + el.name + '=' + post_encode(valor);
					}
			}
		}
		postaAjax(caminho, dados, volta, sincrona);
	}
	
	// Retorna todos os ids de dentro de um elemento
	function getAllIds(el, arrIds) {
		if (el.childNodes.length > 0) {
			for (var i = 0; i < el.childNodes.length; i++) {
				if (el.childNodes[i] && el.childNodes[i].id) {
					arrIds[arrIds.length] = el.childNodes[i].id;
				}
				if (el.childNodes[i].childNodes.length > 0) {
					getAllIds(el.childNodes[i], arrIds);
				}
			}
		}
	}
	
	function get(id) {
		return(document.getElementById(id));
	}
	
	function criar_ajax(){
		try {
			// Firefox, Opera 8.0+, Safari
			xmlHttp = new XMLHttpRequest();
		} catch (e) {
			// Internet Explorer
			try {
				xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
			} catch (e) {
				try {
					xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
				} catch (e) {
					return false;
				}
			}
		}
		return(xmlHttp);
	}
	
	function valida_url(url){
	    var reg = /^(([\w]+:)?\/\/)?(([\d\w]|%[a-fA-f\d]{2,2})+(:([\d\w]|%[a-fA-f\d]{2,2})+)?@)?([\d\w][-\d\w]{0,253}[\d\w]\.)+[\w]{2,4}(:[\d]+)?(\/([-+_~.\d\w]|%[a-fA-f\d]{2,2})*)*(\?(&?([-+_~.\d\w]|%[a-fA-f\d]{2,2})=?)*)?(#([-+_~.\d\w]|%[a-fA-f\d]{2,2})*)?$/;
	    return (reg.test(url));
	}

	function url_decode(psEncodeString) {
		var lsRegExp = /\+/g;
		return unescape(String(psEncodeString).replace(lsRegExp, " "));
	}	

	function post_encode(campo) {
		return(campo.replace('&', '##[e_comercial]##'));
	}
	