/* Layout ************************************************************************************** */
	function ckDominioFapesp() {
		inicio = document.contrato.dominio.value;
		inistr = inicio.indexOf("www.");
		if (inistr != -1)
		{
			tam = inicio.length;
			inicio = inicio.substring(4,tam);
		}
		document.contrato.dominio.value = inicio;

	}
/* tratamentowww() ****************************************************************************** */
	function tratamentowww()
	{
		inicio = document.consulta.inicio.value;
		inistr = inicio.indexOf("www.");
		if (inistr != -1)
		{
			tam = inicio.length;
			inicio = inicio.substring(4,tam);
		}
		document.consulta.inicio.value = inicio;
		document.consulta.submit();
	}
/* criaVetor(tamanho) ************************************************************************************** */
	function criaVetor(tamanho)
	{
		this.length=tamanho;
		for (i=1; i<=tamanho; i++)
			this[i]=null;
		return this;
	}
/* gravaCampo(n,v) ************************************************************************************** */
	function gravaCampo(n,v)
	{
		this.nome  = n;
		this.valor = v;
	}
/* ckCampos(formulario) *********************************************************************************** */
	function ckCampos(formulario)
	{
		// Netscape
		if (document.layers)
			formu = document.eval(formulario); 
		// I Explorer
		else if (document.all)
			formu = eval(formulario);
		else
			document.eval(formulario).submit();
		var obj,str,pat,er,vr;
		var qtd = formu.elements.length;
		for (var i=0; i<=qtd-1; i++)
		{
			obj = (formu.elements[i].type).toLowerCase();
			str = formu.elements[i].name;
			vr  = formu.elements[i].value;
			pat = "document."+formulario+"."+str;
			// validar os campos de Opcao - RADIO / CHECKBOX
			if ( (obj == "radio") || (obj == "checkbox") )
			{
				er = ckButtonOpcoes(formulario,str);
				if ( !(ckErro(str,er)) )
				{
					eval(pat+"[0]").focus();
					return;
				}
			}
			// validar os campos de FILE
			if (obj == "file")
			{
				if (vr.length == 0)
				{
					ckErro("Arquivo",1)
					eval(formulario).file1.select();
					return;
				}
			}
			// validar os campos de SELECT-ONE
			if (obj == "select-one")
			{
				er = ckCampoSelect(formulario,str);
				if ( !(ckErro(str,er)) )
				{
					eval(pat).focus();
					return;
				}
			}
			// validar os campos de TEXT E TEXTAREA
			if (obj == "text" || obj == "textarea")
			{
				er = ckCampoText(formulario,str);
				if (str == "rg")
					str = ckCnpjRg(formulario,"dominiotipo");
				if ( !(ckErro(str,er)) )
				{
					eval(pat).focus();
					eval(pat).select();
					return;
				}
			}
			// validar os campos de PASSWORD
			if (obj == "password")
			{
				if (vr.length == 0)
					er = 1;			//campo de preenchimento obrigatório, deixado vazio
				else
					er = 0
				if ( !(ckErro(str,er)) )
				{
					eval(pat).focus();
					eval(pat).select();
					return;
				}
			}
		}
		formu.submit();
		return true;
	}
/* ckCampoText(formula,nome) ******************************************************************************* */
	function ckCampoText(formula,nome)
	{
		var carac = "";
		var pat   = "";
		var qtd   = "";
		var str   = "";
		var tipo = "";
		str = eval("document."+formula+"."+nome).value;
		for (var i=0; i<=validar.length-1; i++)
		{
			if (validar[i].nome == nome)
			{
				tipo = validar[i].valor;
				break;
			}
			if (nome == "rg")
			{
				tipo = ckCnpjRg(formula,"dominiotipo");
				break;
			}
		}
		// Validação pelo valor inteiro
		// Campo não obrigatório
		if ( tipo.length == 0 )
			return 0;				
		// Campo obrigatório deixado em branco
		nVazio = str.length;
		if (nVazio == "0")
			return 1;
		// Tipos de campos exigidos
		if (tipo == "rg")
			return validarRg(str);
		if (tipo == "cnpj")
			return validarCnpj(str);
		if (tipo == "telefone")
			return ckTelefone(formula,nome);
		if (tipo == "email")
			return ckEmail(formula,nome);
		// O campo do tipo texto foi deixado vazio
		if ( (tipo == "texto") && (str == 0) )
			return 1;
		// Ok. O campo do tipo texto está preenchido
		if ( (tipo == "texto") && (str != 0) )
			return 0;
		else
		{
			// campo de preenchimento obrigatório, deixado vazio
			str = str.length;
			if (str == "0")
				return 1;
			str = eval("document."+formula+"."+nome).value;
			// dados incorretos
			if (ckEspaco(str) == false)
				return 2;
			else
			{
				str = "";
				qtd = eval("document."+formula+"."+nome).value.length;
				carac = eval("document."+formula+"."+nome).value;
				// Validação por caractere
				for (var i=0; i<=qtd-1; i++)
				{
					str = carac.charAt(i);
					// para campos com caracteres diversos
					if ( (tipo == "geral") && !(ckGeral(str)) )
						return 5;
					// para campos com apenas letras
					if ( (tipo == "letra") && !(ckLetra(str)) )
						return 5;
					// para campos com apenas numeros
					if ( (tipo == "numero") && !(ckNumero(str)) )
						return 3;
				}
			}
		}
		return 0;
	}
	function ckCnpjRg(f,n)
	{
		str = eval("document."+f+"."+n+"[0]").checked;
		if (str)
			return "rg";
		str = eval("document."+f+"."+n+"[1]").checked;
		if (str)
			return "cnpj";
	}
/* ckButtonRadio(f,n) ******************************************************************************* */
	function ckButtonOpcoes(f,n)
	{
		for (var i=0; i<=validar.length-1; i++)
		{
			if (validar[i].nome == n)
			{
				for (j=0; j<=eval("document."+f+"."+n).length-1; j++)
				{
					if (eval("document."+f+"."+n+"["+j+"]").checked)
						return 0
				}
				return 7
			}
		}
		return 0
	}
/* ckCampoSelect(f,n) ******************************************************************************* */
	function ckCampoSelect(f,n)
	{
		var tipo, erro, indice;
		tipo = "";
		for (var i=0; i<=validar.length-1; i++)
		{
			if (validar[i].nome == n)
				tipo = validar[i].valor;
		}
		//campo não obrigatório
		if ( tipo.length == 0 )
			return 0;
		else
		{
//			indice = eval(f+"."+n+".selectedIndex");
//alert("indice");
			indice = eval("document."+f+"."+n+".selectedIndex");
//alert(indice);
return 0;
			if (indice == 0)
				return 7;
			else
				return 0;
		}
	}
/* ckEmail(f,n)****************************************************************************************** */
	function ckEmail(f,n)
	{
		var ch, str;
		str = eval("document."+f+"."+n).value;
		if ( str.length == 0 )
			return 1;
		if ( str.length <= 4 )
			return 2;
		else
		{
			ch = str.lastIndexOf(".")
			if ( (ch == -1) || (ch == str.length-1 ) )
				return 2;
			else
			{
				ch = str.lastIndexOf("@",ch);
				if ( (ch == -1) || (ch == str.length-1 ) )
					return 2;
				else
				{
					if (ch == 0)
						return 2;
					else
						return 0;
				}
			}
		}
	}
/* ckTelefone(f,n)/ckTelefoneAux(ch)****************************************************************************************** */
	function ckTelefone(f,n)
	{
		var vr,tam, aStr, bStr, cStr;
		vr = eval("document."+f+"."+n).value;
		if ( vr.length == 0 )
			return 1;
		tam = vr.length;
		aStr = vr.indexOf("(");
		bStr = vr.indexOf(")");
		cStr = vr.indexOf("-");
		str = eval("document."+f+"."+n).value;
		for (i=0; i<=vr.length-1; i++)
		{
			ch = vr.charAt(i);
			if (!ckTelefoneAux(ch))
				return 2
		}
		// digitou apenas o primeiro parenteses
		if ( (aStr != -1) && (bStr == -1) )
			return 2;
		// digitou apenas o segundo parenteses
		if ( (aStr == -1) && (bStr != -1) )
			return 2;
		// digitou os dois parenteses
		if ( (aStr != -1) && (bStr != -1) )
		{
			aux1 = vr.indexOf("(",aStr+1)
			aux2 = vr.indexOf(")",bStr+1)
			aux3 = vr.indexOf("-",cStr+1)
			// digitou duas vezes um caractere de máscacara
			if ( (aux1 != -1) || (aux2 != -1) || (aux3 != -1) )
				return 2
			aStr += 3;		//	(-1) numero de caracteres entre os parênteses
			if (bStr < aStr)
				return 2;
			// digitou o hifen
			if (cStr != -1)
			{
				bStr += 4; 	//	(-1) numero de caracteres antes do hífen
				if (cStr < bStr)
					return 2;
				cStr += 5;	//	(-1) numero de caracteres depois do hífen
				if (tam < cStr)
					return 2;
			}
			// nao digitou hifen
			else
			{
				bStr += 8;	//	(-1) numero de caracteres depois do parenteses
				if (tam < bStr)
					return 2;
			}
		}
		// nao digitou nenhum parenteses
		else
		{
			// digitou o hifen
			if (cStr != -1)
			{
				bStr += 4;	//	(-1) numero de caracteres antes do hífen
				if (cStr < bStr)
					return 2;
				cStr += 5;	//	(-1) numero de caracteres depois do hífen
				if (tam < cStr)
					return 2;
			}
			// nao digitou hifen
			else
			{
				bStr += 7;	//	(-1) numero de caracteres digitados
				if (tam < bStr)
					return 2;
			}
		}
		return 0;
	}
/* ckTelefoneAux(ch) ******************************************************************************* */
	function ckTelefoneAux(ch)
	{
		if (ckNumero(ch))
			return true;
		else
		{
			if ( ( ch == "(" ) || ( ch == ")" ) || ( ch == "-" ) )
				return true;
		}
	}
/* ckErro(n,r) ************************************************************************************** */
	function ckErro(n,r)
	{
		if (r == 0) { return true; }
		if (r == 1) { alert("O campo " +n+ " é de preenchimento obrigatório"); return false; }
		if (r == 2) { alert("Certifique-se de que os dados no campo "+n+" estejam corretos"); return false; }
		if (r == 3) { alert("O campo "+n+" pode conter apenas valores numéricos"); return false; }
		if (r == 4) { alert("O campo "+n+" não pode conter valores numéricos e caracteres especiais"); return false; }
		if (r == 5) { alert("O campo "+n+" possui formato incorreto"); return false; }
		if (r == 6) { alert("O campo "+n+" possui caracteres inválidos"); return false; }
		if (r == 7) { alert("Selecione uma opção no campo "+n); return false; }
	}
/* ckEspaco(v) ************************************************************************************** */
	function ckEspaco(v)
	{
		var espaco = 0;
		for (var i=0; i<=v.length-1; i++)
		{
			if (v.charAt(i) == " ")
				espaco++;
			else
			{
				if ( !(espaco == 0))
					espaco--;
			}
		}
		if (espaco == v.length || espaco >= 3)
			return false;
	}
/* ckGeral(v) ************************************************************************************** */
	function ckGeral(v)
	{
		if ( (ckNumero(v)) || (ckLetra(v)) )
			return true;
		else
		{
			if ( ( v == "-" ) || ( v == "," ) || ( v == "'" ) || ( v == "." ) )
				return true;
		}
	}
/* ckLetra(l) ************************************************************************************** */
	function ckLetra(l)
	{
		l = l.toLowerCase();
		if (l == "a" || l == "b" || l == "c" || l == "d" ||
			l == "e" || l == "f" || l == "g" || l == "h" ||
			l == "i" || l == "j" || l == "k" || l == "l" ||
			l == "m" || l == "n" || l == "o" || l == "p" ||
			l == "q" || l == "r" || l == "s" || l == "t" ||
			l == "u" || l == "v" || l == "x" || l == "y" ||
			l == "z" || l == "w" || l == " ")
			return true;
		else if (l == "à" || l == "è" || l == "ì" || l == "ò" || l == "ù" ||
				 l == "á" || l == "é" || l == "í" || l == "ó" || l == "ú" ||
				 l == "â" || l == "ê" || l == "î" || l == "ô" || l == "û" ||
				 l == "ã" || l == "õ" || l == "ç")
				return true;
	}
/* ckNumero(n) ************************************************************************************** */
	function ckNumero(n)
	{
		if (n == "1" || n == "2" || n == "3" || n == "4" ||
			n == "5" || n == "6" || n == "7" || n == "8" ||
			n == "9" || n == "0" )
			return true;
	}

function validarCnpjAux(vr)
{
	if ( ckNumero(vr) )
		return true;
	else
	{
		if ( ( vr == "-" ) || ( vr == "." ) || ( vr == "/" ) )
			return true;
	}
}
function validarCnpj(vr)
{
	if (vr.length > 18)
		return 2;
	aStr = vr.indexOf(".");
	bStr = vr.indexOf(".",aStr+1);
	cStr = vr.indexOf("/",bStr+1);
	dStr = vr.indexOf("-",cStr+1);
	if (aStr != "2")
		return 2;
	if (bStr != "6")
		return 2;
	if (cStr != "10")
		return 2;
	if (dStr != "15")
		return 2;
	for (var i=0; i<=vr.length-1; i++)
	{
		c = vr.charAt(i);
		if ( !(validarCnpjAux(c)) )
			return 2
	}
	aStr = vr.indexOf(".");
	bStr = vr.indexOf(".",aStr+1);
	cStr = vr.indexOf(".",bStr+1)
	if ( cStr != -1 )
		return 2;
	aStr = vr.indexOf("/")
	bStr = vr.indexOf("/",aStr+1)
	if ( bStr != -1 )
		return 2;
	aStr = vr.indexOf("-")
	bStr = vr.indexOf("-",aStr+1)
	if ( bStr != -1 )
		return 2;
	return 0;
}
function validarRgAux(vr)
{
	if ( (ckNumero(vr)) || (ckLetra(vr)) )
		return true;
	else
	{
		if ( ( vr == "-" ) || ( vr == "." ) )
			return true;
	}
}
function validarRg(vr)
{
	nPontos = 0;
	contLetra = 0;
	if (vr.length > 14)
		return 2;
	for (var i=0; i<=vr.length-1; i++)
	{
		c = vr.charAt(i);
		if (c.indexOf(".") != -1)
			nPontos++;
		if ( !(validarRgAux(c)) )
			return 2
		if (ckLetra(c))
			contLetra++;
	}
	if ( contLetra > 1 )
		return 2
	// digitou duas vezes um caractere de máscacara
	aStr = vr.indexOf("-");
	bStr = vr.indexOf("-",aStr+1);
	if ( bStr != -1 )
		return 2;
	aStr = vr.indexOf(".");
	if ( nPontos > 3 )
		return 2;
	return 0;
}






// FIM DO SCRIPT

