

	/************************************************
	* function checkField 			       
	* Input: campo a ser verificado
	************************************************/
	function checkField(s) 
	{
	 	if ((s.indexOf("&")>=0) || (s.indexOf("<")>=0) || (s.indexOf(">")>=0) || (s.indexOf("|")>=0) ||
			(s.indexOf("\\")>=0) || (s.indexOf("?")>=0) || (s.indexOf("!")>=0) ||
			(s.indexOf("@")>=0) || (s.indexOf("#")>=0) || (s.indexOf("$")>=0) || (s.indexOf("%")>=0) ||
			(s.indexOf("^")>=0) || (s.indexOf("*")>=0) || (s.indexOf("(")>=0) || (s.indexOf(")")>=0) ||
			(s.indexOf("+")>=0) || (s.indexOf("_")>=0) || (s.indexOf("=")>=0) || (s.indexOf(";")>=0) ||
			(s.indexOf("[")>=0) || (s.indexOf("]")>=0) || (s.indexOf("{")>=0) || (s.indexOf("}")>=0) ||
			(s.indexOf("`")>=0) || (s.indexOf("'")>=0) || (s.indexOf("~")>=0) || (s.indexOf("\"")>=0))
			return false;
	    return true;
	}
			
	// Verificação básica do campo Rua/Av. A mesma funcionalidade da função acima, 
	// desconsiderando o "."
	function checkRuaAv(s) 
	{
	 	if ((s.indexOf("&")>=0) || (s.indexOf("<")>=0) || (s.indexOf(">")>=0) || (s.indexOf("|")>=0) ||
			(s.indexOf("\\")>=0) || (s.indexOf("/")>=0) || (s.indexOf("?")>=0) || (s.indexOf("!")>=0) ||
			(s.indexOf("@")>=0) || (s.indexOf("#")>=0) || (s.indexOf("$")>=0) || (s.indexOf("%")>=0) ||
			(s.indexOf("^")>=0) || (s.indexOf("*")>=0) || (s.indexOf("(")>=0) || (s.indexOf(")")>=0) ||
			(s.indexOf("-")>=0) || (s.indexOf("+")>=0) || (s.indexOf("_")>=0) || (s.indexOf("=")>=0) ||
			(s.indexOf(";")>=0) || (s.indexOf("[")>=0) || (s.indexOf("]")>=0) || (s.indexOf("{")>=0) ||
			(s.indexOf("}")>=0) || (s.indexOf("`")>=0) || (s.indexOf("'")>=0) || (s.indexOf("~")>=0) ||
			(s.indexOf("\"")>=0) || (s.indexOf(".")>=0)) 
			return false;
	    return true;
	}
	
	// Verificação básica do campo Numero.
	function checkNum(s) 
	{
	 	if ((s.indexOf("&")>=0) || (s.indexOf("<")>=0) || (s.indexOf(">")>=0) || (s.indexOf("|")>=0) ||
			(s.indexOf("\\")>=0) || (s.indexOf("?")>=0) || (s.indexOf("!")>=0) ||
			(s.indexOf("@")>=0) || (s.indexOf("#")>=0) || (s.indexOf("$")>=0) || (s.indexOf("%")>=0) ||
			(s.indexOf("^")>=0) || (s.indexOf("*")>=0) || (s.indexOf("(")>=0) || (s.indexOf(")")>=0) ||
			(s.indexOf("-")>=0) || (s.indexOf("+")>=0) || (s.indexOf("_")>=0) || (s.indexOf("=")>=0) ||
			(s.indexOf(";")>=0) || (s.indexOf("[")>=0) || (s.indexOf("]")>=0) || (s.indexOf("{")>=0) ||
			(s.indexOf("}")>=0) || (s.indexOf("`")>=0) || (s.indexOf("'")>=0) || (s.indexOf("~")>=0) ||
			(s.indexOf(",")>=0) || (s.indexOf("\"")>=0))
			return false;
	    return true;
	}
			
	/************************************************
	* function isEmpty
	* Verifica se um campo está vazio
	* Input: campo a ser verificado
	************************************************/               
	function isEmpty(s)
	{
		s = Trim(s);
		return ((s == null) || (s.length == 0));
	}

/****************************************
 * Function limpa String
****************************************/ 	
	function limpa_string(S){
// Deixa so' os digitos no numero
var Digitos = "0123456789";
var temp = "";
var digito = "";
    for (var i=0; i<S.length; i++){
      digito = S.charAt(i);
      if (Digitos.indexOf(digito)>=0){temp=temp+digito}
    }
    return temp
}
/****************************************
 * Function Valida CPF
****************************************/ 
function valida_CPF(s)
{
	var i;
	s = limpa_string(s);
	var c = s.substr(0,9);
	var dv = s.substr(9,2);
	var d1 = 0;
	for (i = 0; i < 9; i++)
	{
		d1 += c.charAt(i)*(10-i);
	}
        if (d1 == 0) return false;
	d1 = 11 - (d1 % 11);
	if (d1 > 9) d1 = 0;
	if (dv.charAt(0) != d1)
	{
		return false;
	}

	d1 *= 2;
	for (i = 0; i < 9; i++)
	{
		d1 += c.charAt(i)*(11-i);
	}
	d1 = 11 - (d1 % 11);
	if (d1 > 9) d1 = 0;
	if (dv.charAt(1) != d1)
	{
		return false;
	}
	if ((s == '00000000000') || (s == '11111111111') || (s == '22222222222') || 
	    (s == '33333333333') || (s == '44444444444') || (s == '55555555555') || 
	    (s == '66666666666') || (s == '77777777777') || (s == '88888888888') || 
	    (s == '99999999999'))
	{	
		return false;
	}		
        return true;
}
/****************************************
 * Function Valida CGC
****************************************/ 
function valida_CGC(s)
{
	var i;
	s = limpa_string(s);
	var c = s.substr(0,12);
	var dv = s.substr(12,2);
	var d1 = 0;
	for (i = 0; i < 12; i++)
	{
		d1 += c.charAt(11-i)*(2+(i % 8));
	}
        if (d1 == 0) return false;
        d1 = 11 - (d1 % 11);
	if (d1 > 9) d1 = 0;
	if (dv.charAt(0) != d1)
	{
		return false;
	}

	d1 *= 2;
	for (i = 0; i < 12; i++)
	{
		d1 += c.charAt(11-i)*(2+((i+1) % 8));
	}
	d1 = 11 - (d1 % 11);
	if (d1 > 9) d1 = 0;
	if (dv.charAt(1) != d1)
	{
		return false;
	}
        return true;
		
}

/****************************************
 * Function Checa irregularidades
****************************************/ 

function checkgeral(s) {

if ((s.indexOf("&")>=0) || (s.indexOf("<")>=0) || (s.indexOf(">")>=0) || (s.indexOf("|")>=0) ||
   (s.indexOf("\\")>=0) || (s.indexOf("/")>=0) || (s.indexOf("?")>=0) || (s.indexOf("!")>=0) ||
   (s.indexOf("@")>=0) || (s.indexOf("#")>=0) || (s.indexOf("$")>=0) || (s.indexOf("%")>=0) ||
   (s.indexOf("^")>=0) || (s.indexOf("*")>=0) || (s.indexOf("(")>=0) || (s.indexOf(")")>=0) ||
   (s.indexOf("-")>=0) || (s.indexOf("+")>=0) || (s.indexOf("_")>=0) || (s.indexOf("=")>=0) ||
   (s.indexOf(";")>=0) || (s.indexOf("[")>=0) || (s.indexOf("]")>=0) || (s.indexOf("{")>=0) ||
   (s.indexOf("}")>=0) || (s.indexOf("`")>=0) || (s.indexOf("'")>=0) || (s.indexOf("~")>=0) ||
   (s.indexOf("\"")>=0) || (s.indexOf(".")>=0)) 
	return false;
	 return true;
}	 

/****************************************
 * Function Valida Numeros
****************************************/ 
function valida_numeros(s)
{
	var i; 
	var dif = 0;
	for (i = 0; i < s.length; i++)
	{
		var c = s.charAt(i);
		if (!((c >= "0") && (c <= "9")))
		{
			dif = 1;
		}
	}
	if (dif == 1)
	{
		return false;
	}
	return true;
}
			
	/************************************************
	* function verificaEmail
	* Verifica se um email é válido
	* Input: email a ser verificado
	************************************************/
	function Emailverify(email) 
	{
	        var s = new String(email);
	        // { } ( ) < > [ ] | \ /
	        if ((s.indexOf("{")>=0) || (s.indexOf("}")>=0) || (s.indexOf("(")>=0) || (s.indexOf(")")>=0) || (s.indexOf("<")>=0) || (s.indexOf(">")>=0) || (s.indexOf("[")>=0) || (s.indexOf("]")>=0) || (s.indexOf("|")>=0) || (s.indexOf("\"")>=0) || (s.indexOf("/")>=0) )
	                return false;
	        if (vogalAcentuada(email))
	                return false;
	        // & * $ % ? ! ^ ~ ` ' "
	        if ((s.indexOf("&")>=0) || (s.indexOf("*")>=0) || (s.indexOf("$")>=0) || (s.indexOf("%")>=0) || (s.indexOf("?")>=0) || (s.indexOf("!")>=0) || (s.indexOf("^")>=0) || (s.indexOf("~")>=0) || (s.indexOf("`")>=0) || (s.indexOf("'")>=0) )
	                return false;
	        // , ; : = #
	        if ((s.indexOf(",")>=0) || (s.indexOf(";")>=0) || (s.indexOf(":")>=0) || (s.indexOf("=")>=0) || (s.indexOf("#")>=0) )
	                return false;
	        // procura se existe apenas um @
	        if ( (s.indexOf("@") < 0) || (s.indexOf("@") != s.lastIndexOf("@")) )
	                return false;
	        // verifica se tem pelo menos um ponto após o @
	        if (s.lastIndexOf(".") < s.indexOf("@"))
	                return false;
	        return true;
	}
	
	// Verifica se o ano é bissexto
	function anobissexto(argAno) 
	{
		if ((argAno % 4) == 0)
			if ((argAno % 100) == 0)
				if ((argAno % 400) == 0)
					return true;
				else
					return false;		
			else
				return true;
		else
			return false;
	}
			
	/************************************************
	* function verificaData
	* Verifica se um campo data é válido.
	* Input: Campo do formulário que contém a data
	* Esta função pega o campo diretamente, pois assim
	* pode dar uma resposta melhor ao usuário.
	*************************************************/
	function Dataverify(argData){
	var Data = new String(argData);
	var DataAtual = new Date();
	var AnoAtual = DataAtual.getYear();
	var Dia = "";
	var Mes = "";
	var Ano = "";
	var i = 0;
	
		for (i=0;((i < Data.length) && (Data.charAt(i) != "/"));i++)
	    	Dia = Dia + Data.charAt(i);
	
	    for (i=i+1;((i < Data.length) && (Data.charAt(i) != "/"));i++)
	    	Mes = Mes + Data.charAt(i);
	
	    for (i=i+1;(i < Data.length);i++)
	        Ano = Ano + Data.charAt(i);
		
		for(i=0;i<Data.length;i++)
		{
			NroAsc = asc(Data.substring(i,i+1));
			if (!(NroAsc >= 47 && NroAsc <= 57)) 
					return false;
	    }  
			
			if ((parseInt(Dia,10) > 31) || (parseInt(Dia,10) < 1))
			return false;
		
	    if ((parseInt(Mes,10) == 2) && (parseInt(Dia,10) == 29) && (!anobissexto(parseInt(Ano,10))))
			return false;
		
		if ((parseInt(Mes,10) == 2) && (parseInt(Dia,10) > 29))
			return false;
		
		if ((parseInt(Mes,10) > 12) || (parseInt(Mes,10) < 1))
			return false;
		
	    if (parseInt(AnoAtual,10)< 2100) 
			AnoAtual = AnoAtual + 1900;					
						
		if((parseInt(Ano,10) < 1900) || (parseInt(Ano,10) >= AnoAtual))
			return false;
				
	    return true;
	}
			
	/************************************************
	* function verificaCEP
	* Verifica se o CEP está no formato correto
	* Input: CEP a ser verificado
	************************************************/
	function CEPverify (cep) 
	{
	        s = new String(cep);
	        if (s.length != 8)
	                return false;
	        if (!isInteger(cep))
	                return false;
	        return true;
	}
			
	// Verifica se o caracter é um dígito de 0 a 9
	function isDigit (c)
	{ 
		return ((c >= "0") && (c <= "9")) 
	}
			
	/************************************************
	* function isInteger
	* Verifica se um campo é inteiro, inclui dígitos de 0 a 9, vírgula, ponto, espaços e -
	* Input: campo a ser verificado
	************************************************/
	function isInteger(s){
		var i;
		if (isEmpty(s)) 
			return false;
		for (i = 0; i < s.length; i++)
		{   
			var c = s.charAt(i);
			if (!isNumber(c)) return false;
		}
		return true;
	}
			
	// Verifica se o caracter pode fazer parte de um número: 0-9 , . ( ) - e espaço
	function isNumber (c)
	{ 
		return ((c >= "0") && (c <= "9") || (c=="-") || (c=="(") || (c==")") || (c==" ") || (c==".") || (c==",")) 
	}
			
	// Gera uma string com os caracteres básicos na sequência de códigos ASC
	function makeCharsetString()
	{
		var astr;
		astr = ' !"#$%&\'()*+,-./0123456789:;<=>?@';
		astr+= 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
		astr+= '[\]^_`abcdefghijklmnopqrstuvwxyz';

		astr+= '{|}~¦ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥Pƒá';
		astr+= 'áóúñÑªº¿¬¯ß±()÷˜·²';
	
		astr+= '{|}~';
		return astr;
	}
			
	// Retorna o código ASC do caracter passada por parâmetro
	function asc(achar) {
	var n=0;
	var ascstr = makeCharsetString()
	
		for(i=0;i<ascstr.length;i++) {
			if(achar==ascstr.substring(i,i+1)){
				n=i;
				break;
			}
		}
		return n+32
	}
	
	// Verifica se uma string tem vogais acentuadas
	function vogalAcentuada(s) {
		ls = s.toLowerCase();
		if ((ls.indexOf("á")>=0) || (ls.indexOf("à")>=0) || (ls.indexOf("ã")>=0) || (ls.indexOf("â")>=0) || (ls.indexOf("é")>=0) || (ls.indexOf("í")>=0) || (ls.indexOf("ó")>=0) || (ls.indexOf("õ")>=0) || (ls.indexOf("ô")>=0) || (ls.indexOf("ú")>=0) || (ls.indexOf("ü")>=0))
			return true;
	}
			
	/************************************************
	* function isNumeric
	* Verifica se um campo é numérico. Se contém apenas dígitos de 0 a 9
	* Input: campo a ser verificado
	************************************************/
	function isNumeric(s) {
	var i;
	var c;
	
		if (isEmpty(s)) 
			return false;
			
		for (i = 0; i < s.length; i++) {   
			c = s.charAt(i);
			if (!isDigit(c)) return false;
		}
		
		return true;
	}
	
	// Elimina espaços em branco
	function Trim(param) {
	var sFinal = "";
		
		for (x=0;x<param.length;x++) {
			if (param.charAt(x) != " ")
				sFinal = sFinal + param.charAt(x);
		}

		return sFinal;
	}
	
	// Completa com zeros os campos de dia e mês
	function compcampo(theField) {
		if (Trim(theField.value) != "")
			if (theField.value.length < 2)
				theField.value = "0" + theField.value;
	}
			
	/************************************************
	* function warnInvalid
	* Gera um alert para o usuário e volta o foco para
	* o campo que está com problema
	* Input: theField - campo do formulário com problema
	*        warnText - texto a ser mostrado no alert
	************************************************/
	function warnInvalid (theField, warnText, temSelect)
	{   
		theField.focus();
	    if (temSelect) {
			theField.select();
		}
	    alert(warnText);
	    return false;
	}
			
	//Completa o campo passado como parâmetro com 0's à esquerda
	function completacampo(theField)
	{
	var i;
	var tam;
						
		tam = theField.value.length;
		if (tam != 0)
			if (tam < 11)
				for (i=1;i<=11-tam;i++)
				 	theField.value = "0" + theField.value;
	}
	
