function preencheCPF(objeto){
	var valor = objeto.value;
	var tc = objeto.value.length;
	
	objeto.value = objeto.value.replace("..",".");
	objeto.value = objeto.value.replace("--","-");
	objeto.value = objeto.value.replace("//","/");
	
	if((tc<4 || (tc>4 && tc<8) || (tc>8 && tc<12) || tc>12) && (valor.substring(tc-1, tc)=="." || valor.substring(tc-1, tc)=="-")){
		objeto.value = objeto.value.substring(0, tc-1);
		return false;
	}
	if(tc<3 || (tc>3 && tc<7) || (tc>7 && tc<11) || tc>11){
		objeto.value=objeto.value.substring(0, 14);
		return false;
	}
	if(tc<=5 && valor.substring(4,5)=="."){
		return false;
	}else if(tc<=5 && valor.substring(4,5)!="."){
		objeto.value+=".";
		return false;
	}

	if(tc<=9 && valor.substring(8,9)=="."){
		return false;
	}else if(tc<=9 && valor.substring(8,9)!="."){
		objeto.value+=".";
		return false;
	}

	if(tc<=13 && valor.substring(12,13)=="-"){
		return false;
	}else if(tc<=13 && valor.substring(12,13)!="-"){
		objeto.value+="-";
		return false;
	}
}
function validaCPF(objeto){
	var valor = objeto.value;
	if(objeto.form.elements[elementPeloNome(objeto.form.name, 'cnpj')].checked){
		if(valor=="111.111.111-11"||valor=="222.222.222-22"||valor=="333.333.333-33"||valor=="444.444.444-44"||valor=="555.555.555-55"||valor=="666.666.666-66"||valor=="777.777.777-77"||valor=="888.888.888-88"||valor=="999.999.999-99"||valor=="000.000.000-00"){
			alertar(objeto, ' não é um cpf válido', 'Preencha-o corretamente');
			return false;
		}
		var cpfTrat = valor;
			cpfTrat = cpfTrat.replace(".", "").replace(".", "").replace(".", "").replace("-", "");
		var soma = 0, total = 0, resto=0;
		if(valor.indexOf(".") < 0 || valor.lastIndexOf(".") > valor.indexOf("-")){
			if(valor == "" || valor == objeto.defaultValue) return false;
			alertar(objeto, ' não está preenchido corretamente', 'Preencha-o conforme o exemplo:\nxxx.xxx.xxx-xx');
			return false;
		}
		var grupos = valor.split(".");
		grupos[2] = grupos[2].substring(0,3);
		var strCPF = grupos.join();
			strCPF = strCPF.replace(/,/g,"")
			var numeros = strCPF.split("");
		numeros[numeros.length] = 0;
		numeros[numeros.length] = 0;
		for(var i=0; i<numeros.length; i++){
			soma += parseInt(numeros[i]) * (numeros.length - 1 - i);
		}
		total = Math.floor(soma / 11);
		resto = soma - (total * 11);
		if(resto < 2){
			total = 0;
		}else{
			total = 11 - resto;
		}
		numeros[numeros.length - 2] = total;
		soma = 0;
		for(var i=0; i<numeros.length; i++){
			soma += parseInt(numeros[i]) * (numeros.length - i);
		}
		total = Math.floor(soma / 11);
		resto = soma - (total * 11);
		if(resto < 2){
			total = 0;
		}else{
			total = 11 - resto;
		}
		numeros[numeros.length - 1] = total;
		strCPF = numeros.join();
		var a = strCPF.replace(/,/g, "");
		if(a != cpfTrat){
			alertar(objeto, ' não é um cpf válido', 'Preencha-o corretamente');
		}
	}else{

		//11.222.333/0001-00
		if(valor=="11.111.111/1111-11"||valor=="22.222.222/2222-22"||valor=="33.333.333/3333-33"||valor=="44.444.444/4444-44"||valor=="55.555.555/5555-55"||valor=="66.666.666/6666-66"||valor=="77.777.777/7777-77"||valor=="88.888.888/8888-88"||valor=="99.999.999/9999-99"||valor=="00.000.000/0000-00"){
			alertar(objeto, ' não é um cnpj válido', 'Preencha-o corretamente');
			return false;
		}
		var cnpjTrat = valor;
			cnpjTrat = cnpjTrat.replace(".", "");
			cnpjTrat = cnpjTrat.replace(".", "");
			cnpjTrat = cnpjTrat.replace("/", "");
			cnpjTrat = cnpjTrat.replace("-", "");
		var soma = 0, total = 0, resto=0;
		if(valor.indexOf(".") < 0 || valor.lastIndexOf(".") > valor.indexOf("-") || valor.lastIndexOf(".") > valor.indexOf("/") || valor.indexOf("/") > valor.indexOf("-")){
			if(valor == "" || valor == objeto.defaultValue) return false;
			alertar(objeto, ' não está preenchido corretamente', 'Preencha-o conforme o exemplo:\nxx.xxx.xxx/xxxx-xx');
			return false;
		}
		var numeros = cnpjTrat.substring(0,cnpjTrat.length - 2).split("");
		var fatorCalculo = [6,5,4,3,2,9,8,7,6,5,4,3,2];
		for(var i=0; i<numeros.length; i++){
			soma += parseInt(numeros[i]) * fatorCalculo[i+1];
		}
		total = Math.floor(soma / 11);
		resto = soma - (total * 11);
		if(resto < 2){
			total = 0;
		}else{
			total = 11 - resto;
		}
		numeros[numeros.length] = total;
		soma = 0;
		for(var i=0; i<numeros.length; i++){
			soma += parseInt(numeros[i]) * fatorCalculo[i];
		}
		total = Math.floor(soma / 11);
		resto = soma - (total * 11);
		if(resto < 2){
			total = 0;
		}else{
			total = 11 - resto;
		}
		numeros[numeros.length] = total;
		strCnpj = numeros.join("@");
		var strCnpj = strCnpj.replace(/@/g, "");
		alert(strCnpj+"-"+cnpjTrat);
		if(strCnpj != cnpjTrat){
			alertar(objeto.form.elements[elementPeloNome(objeto.form.name, 'cnpj')], ' não é um cnpj válido', 'Preencha-o corretamente');
		}
	}
}
function pEle(obj){
//recebe o ID de um objeto e retorna o objeto
	return document.getElementById(obj);
}
function formPeloNome(formName){
//recebe o nome do form e devolve sua posição dentro do body, para fazer sua validação
	for(var i=0; i< document.forms.length; i++){
		if(document.forms[i].name==formName){
			return i;
		}
	}
}
function elementPeloNome(formIndex, elementName){
//recebe a index do form, o nome do elemento e devolve sua posição dentro do form, para fazer sua validação
	for(var i=0; i< document.forms[formIndex].elements.length; i++){
		if(document.forms[formIndex].elements[i].name==elementName){
			return i;
		}
	}
}
function selecionarTodos(formNome, objetoNome, objId){
//seleciona todos os checkboxes, que possuem o mesmo nome, de uma página
//recebe a index do form na página, o nome do elemento do form
//e o ID da âncora que executa a seleção
	var x = document.forms[formPeloNome(formNome)];
	var el = document.getElementById(objId);
	for(var i=0; i<x.length; i++){
		if(x.elements[i].name == objetoNome){
			if(seleciona == true){
				x.elements[i].checked = true;
			}else{
				x.elements[i].checked = false;
			}
		}
	}
	if(seleciona == true){
		el.innerHTML = "selecionar nenhuma";
		seleciona = false;
	}else{
		el.innerHTML = "selecionar todas";
		seleciona = true;
	}
}
function adicionaOption(formIndex, objetoIndex, opcaoValor, opcaoTexto){
//recebe a index de um formulário, a index de um elemento (deve ser um select-one ou select-multiple)
//e adiciona uma nova opção neste elemento
	var x = document.forms[formIndex];
	var el = x.elements[objetoIndex];
	if(el.type!='select-one' || el.type!='select-multiple') return false;
	var novo = document.createElement('option');
	novo.text = opcaoTexto;
	novo.value = opcaoValor;
	try{
		el.add(novo, null);
	}catch(ex){
		el.add(novo);
	}
}
function limpaOpcoes(formIndex, objetoIndex){
//recebe a index de um formulário, a index de um elemento (deve ser um select-one ou select-multiple)
//e remove todas as opções deste elemento
	var x = document.forms[formIndex];
	var el = x.elements[objetoIndex];
	for(var i=el.length-1; i>=0; i--){
		el.remove(i);
	}
}
function limpa(objeto){
//recebe a index de um form na página e limpa os valores de todos os elementos ou um elemento específico
//de acordo com a index do elemento recebido
//caso seja recebido objectIndex == null, limpa todos os elementos
	if(objeto == null){
		var x = objeto.form
		for(var i=0; i<x.length; i++){
			if(x.elements[i].type == 'text' || x.elements[i].type == 'password' || x.elements[i].type == 'textarea'){
				x.elements[i].value = '';
			}
		}
	}else{
		objeto.value = '';
	}
}
function padrao(objeto){
//recebe um objeto e altera o valor dele de acordo com o preenchido
	if(objeto.value==objeto.defaultValue){
		objeto.value="";
		return false;
	}
	if(objeto.value==""){
		objeto.value=objeto.defaultValue;
		return false;
	}
}
function foca(objeto, limpa){
//recebe a index de um form na página, a index de um elemento no form,
//limpa o valor do campo de acordo com o parâmetro passado
	if(limpa == 'limpa'){
		objeto.value = '';
	}
	objeto.focus();
}
function verificaLogin(formIndex, objetoIndex){
	var objeto = document.forms[formIndex].elements[objetoIndex];
	document.frames[0].location.href='cadastro.asp?act=verificaLogin&login=' + objeto.value;
}
function validarForm(formIndex, textoObrigatorio){
//recebe a index de um form na página e valida todos os campos setados como obrigatórios
//de acordo com o valor setado no atributo title do elemento do form
	var x = document.forms[formIndex];
	var tipo = new String();
	for(var i=0; i<x.length - 1; i++){
		tipo = x.elements[i].type;
		if(x.elements[i].title == textoObrigatorio && (tipo == 'text' || tipo == 'password' || tipo == 'textarea' )){
			if(x.elements[i].value == '' || x.elements[i].value == x.elements[i].defaultValue){
				alertar(x.elements[i], ' é obrigatório', 'Preencha-o');
				return false;
			}
		}else if(x.elements[i].title == textoObrigatorio && (tipo == 'select-one' || tipo == 'select-multiple')){
			if(x.elements[i].selectedIndex <= 0){
				alertar(x.elements[i], ' é obrigatório', 'Selecione algum valor');
				return false;
			}
		}
	}
	x.submit();
}
function comparaCampos(formIndex, objetoUmIndex, objetoDoisIndex){
//recebe a index de um form na página, a index de dois campos diferentes
//e compara se os dois campos tem valores iguais
	var x = document.forms[formIndex];
	var elemUm = x.elements[objetoUmIndex];
	var	elemDo = x.elements[objetoDoisIndex];
	if(elemUm.value != elemDo.value){
		window.alert("O campo " + elemUm.name + " e o campo " + elemDo.name + " devem ser iguais");
		foca(elemDo, 'limpa');
		foca(elemUm, 'limpa');
		return false;
	}
}
function tamanhoCampo(objeto, tamanho){
//recebe um elemento de qualquer form e verifica o número mínimo de caracteres inseridos
	if(objeto.value == objeto.defaultValue) return false;
	if(objeto.value.length < tamanho){
		window.alert("O campo " + objeto.name + " deve ter no mínimo " + tamanho + " caracteres");
		foca(objeto, 'limpa');
		return false;
	}
}
function verificaEmail(objeto){
//recebe um elemento de qualquer form e verifica se é um email válido pela tipologia do valor inserido
//recebe um campo de texto e verifica se é um email válido.
// onblur="validarEmail(this);"
	if(objeto.value==""){
		return false;
	}
	var formatoValido=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i
	if (!formatoValido.test(objeto.value)){
		alertar(objeto, 'precisa ser válido', 'Insira um email válido');
		return false;
	}
}
function alertar(objeto, textoValidar, textoAcao){
//função de apoio à validarForm e valida e-mail
	window.alert('O campo ' + objeto.name + ' ' + textoValidar + '.\n' + textoAcao + ', por favor.');
	foca(objeto, 'Não Limpa');
}
function pegaValor(formIndex, elementIndex){
	return document.forms[formIndex].elements[elementIndex].value;
}
function addEmailFone(act, obj, formName, elementName, elementName_, idAssociado){
	var x = formPeloNome(formName)
	if(document.forms[x].elements[elementPeloNome(x, elementName)].value == ""){
		window.alert("você precisa informar o campo " + elementName);
		document.forms[x].elements[elementPeloNome(x, elementName)].focus();
		return false;
	}else if(document.forms[x].elements[elementPeloNome(x, elementName_)].selectedIndex <=0){
		window.alert("você precisa informar o campo " + elementName_);
		document.forms[x].elements[elementPeloNome(x, elementName_)].focus();
		return false;
	}
	var valor = pegaValor(x, elementPeloNome(x, elementName));
	var tipo = pegaValor(x, elementPeloNome(x, elementName_));
	carregarPagina('cadastro','act=' + act + '&idassociado=' + idAssociado + '&valor=' + valor + '&tipo=' + tipo, obj, 0, false);
}
/*
----------------------------------------------------------------------------------------
AJAX
*/
var loader = '<p>&nbsp;</p><p>&nbsp;</p><center>'
	loader += '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" '
	loader += 'codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" width="73" height="20">\n';
	loader += '<param name="movie" value="../imagens/loader.swf" />\n<param name="quality" value="high" />\n';
	loader += '<embed src="../imagens/loader.swf" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" '
	loader += 'type="application/x-shockwave-flash" width="73" height="20"></embed>\n';
	loader += '</object></center><p>&nbsp;</p><p>&nbsp;</p>';
function insereTextoSimples(objeto, msg){
	var obj = document.getElementById(objeto);
	obj.style.display='block';
	obj.innerHTML = msg;
}
function GetXmlHttpObject(){ 
	var objXMLHttp=null
	if (window.XMLHttpRequest){
		objXMLHttp=new XMLHttpRequest()
	}else if (window.ActiveXObject){
		objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP")
	}
	return objXMLHttp

}
function carregarPagina(pag, param, obj, tempo, verdadeiro){
	if(verdadeiro==true) document.getElementById(obj).innerHTML = loader;
	xmlHttp=GetXmlHttpObject();
	if (xmlHttp==null){
		if(verdadeiro==true){
			var strScript = 'document.getElementById("' + obj
				strScript += '").innerHTML = "Seu navegador n&atilde;o suporta'
				strScript += ' chamadas assincr&ocirc;nicas de HTTP;"'
			setTimeout(strScript, tempo);
			return;
		}else{
			document.getElementById(obj).innerHTML = "Seu navegador n&atilde;o suporta chamadas assincr&ocirc;nicas de HTTP;"
		}
	} 
	var url=pag+".asp?"+param+"&sid="+Math.random();
	xmlHttp.onreadystatechange=function(){ 
		if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete"){ 
			if(verdadeiro==true){
				setTimeout('try{document.getElementById("' + obj + '").innerHTML = xmlHttp.responseText;}catch(ex){document.getElementById("' + obj + '").innerHTML="Houve um erro ao processar sua solicitação<br />Tente novamente mais tarde.";}', tempo);
				//return;
			}else{
				document.getElementById(obj).innerHTML = xmlHttp.responseText;
			}
		}
	}
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}
function trocarPagina(pag, param, obj, tempo, verdadeiro){
	continuaNoticias = false;
	carregarPagina(pag, param, obj, tempo, verdadeiro);
}

