	//Cria as validações
	function ValidarControles(){
		for(var i=0; i<campos.length; i++){
			var controle = document.getElementById(campos[i][0]);
			if (controle == null)
				continue;
			if (campos[i][0]!="Editor"){
				if(controle.value=="" && campos[i][1]!=""){
					alert(campos[i][1]);
					if(controle.type!="hidden")
						controle.focus();
					return false;
				}else if(controle.value!=""){
					switch (campos[i][2]){
						case "EMAIL" : var resul = ValidaEmail(controle.value); if(!resul) { alert(campos[i][3]); controle.focus(); return false; } break;
						case "DATA" : var resul = ValidaData(controle.value); if(!resul) { alert(campos[i][3]); controle.focus(); return false; } break;
						case "DATA2" : var resul = ValidaData(controle.value); if(!resul) { alert(campos[i][3]); controle.focus(); return false; } break;
						case "SENHA" : var resul = ValidaSenha(controle.value); if(!resul) { alert(campos[i][3]); controle.focus(); return false; } break;
						case "LOGIN" : var resul = ValidaLogin(controle.value); if(!resul) { alert(campos[i][3]); controle.focus(); return false; } break;
						case "CPF" : var resul = ValidaCpf(controle.value); if(!resul) { alert(campos[i][3]); controle.focus(); return false; } break;
						case "CNPJ" : var resul = ValidaCNPJ(controle.value); if(!resul) { alert(campos[i][3]); controle.focus(); return false; } break;
						case "MOEDA" : var resul = ValidaMoeda(controle.value); if(!resul) { alert(campos[i][3]); controle.focus(); return false; } break;
						case "NUMERICO" : var resul = Inteiro(controle.value); if(!resul) { alert(campos[i][3]); controle.focus(); return false; } break;
						default : break;
					}
				}
			}else{
				var resul = ValidaEditor(); if(!resul) { alert(campos[i][1]); return false; } break;
			}
		}
/*		controle = document.getElementById('bt_gravar');
		if (controle != null)
			controle.style.display = 'none';		*/
		return true;
	}

	function VerificaLogin(controle, erro) {
		if (!ValidaLogin(controle.value)) {
			if (erro != '')
				alert(erro);
			controle.focus();
			return false;
		}
		return true;
	}

	function ValidaEditor(){
		this.EditorWindow	= Editor___Frame.window.frames[ 'eEditorArea' ] ;
		this.EditorDocument	= this.EditorWindow.document ;
		if (this.EditorDocument.body.innerHTML==""){
			return false;
		}
		return true;
	}

	function RecuperaEditor(){
		this.EditorWindow	= Editor___Frame.window.frames[ 'eEditorArea' ] ;
		this.EditorDocument	= this.EditorWindow.document ;
		return this.EditorDocument.body.innerHTML;
	}

	function RecuperaEditorPop(){
		this.EditorWindow	= window.opener.Editor___Frame.window.frames[ 'eEditorArea' ] ;
		this.EditorDocument	= this.EditorWindow.document ;
		return this.EditorDocument.body.innerHTML;
	}


	function ValidaLogin(valor) {
		var controle = document.getElementById("login");
		if (controle != null) {
			controle = document.getElementById("login_ok");
			if (controle == null)
				return false;
			if (controle.value == "")
				return false;
			return true;
		}
		return false;
	}

	function VerificaEmail(controle, erro) {
		if (controle.value == '' || ValidaEmail(controle.value))
			return true;
		if (erro != '')
			alert(erro);
		controle.focus();
	}


	function ValidaEmail(valor){
		validRegExp = /^[^@]+@[^@]+.[a-z0-9]{2,}$/i;
		if (valor.search(validRegExp) == -1)
			return false;
		else
			return true;
	}

	function VerificaSenha(controle, erro) {
		var control = document.getElementById('senha_ok');
		
		if (controle.value == '') {
			if (control != null && control.value == '') {
				alert(erro);
				return false;
			}
			return true;
		}
		if(ValidaSenha(controle.value)) {
			if (control != null)
				control.value = controle.value;
			return true;
		}

/*		if (erro != '')
			alert(erro);*/
		if (control != null)
			control.value = "";
		controle.focus();	
		return false;
	}

	function ValidaSenha(valor) {
		if(valor.length<6){
			alert('A senha deve ter no minimo 6 digitos');
			if (document.getElementById('v_senha_ok') != null)
				document.getElementById('v_senha_ok').style.display='';
			return false;
		}

		if (!/^[a-zA-Z]{1}[\w\@\&\%\*\-\.\/\:\!\=]{0,250}$/.test(valor)){
			alert('A senha possui caracteres invalidos, ou nao foi iniciada com uma letra !');
			if (document.getElementById('v_senha_ok') != null)
				document.getElementById('v_senha_ok').style.display='';
			return false;
		}

		var i; 
		var num = 0, carac = 0;
		for (i = 0; i < valor.length; i++){
			var c = valor.charAt(i);
			// ha um numero
			if (((c >= "0") && (c <= "9")))
				num++;
			if (((c >= "a") && (c <= "z")) || ((c >= "A") && (c <= "Z")))
				carac++;
		}

		if (num < 3 || carac == 0){
			alert("A senha deve conter letras e numeros (minimo 3 numeros) !"); 
			if (document.getElementById('v_senha_ok') != null)
				document.getElementById('v_senha_ok').style.display='';
			return false;
		}

		if (/(1234|4321)/.test(valor)){
			alert("A senha nao pode conter os seqüenciais 1234 ou 4321!");
			if (document.getElementById('v_senha_ok') != null)
				document.getElementById('v_senha_ok').style.display='';
			return false;
		}

		s = valor
		hoje = new Date()
		ano = hoje.getYear()

		for (f=-2; f<=2; f++){
			n = s.indexOf(ano + f,0)
			if (n > -1){
				alert('Nao e permitido colocar o ano como senha !');
				if (document.getElementById('v_senha_ok') != null)
					document.getElementById('v_senha_ok').style.display='';
				campo.focus();
				return false;
			}
		}
		return true;
	}

	function OnKeyPressData(controle, event) {
		if (!event)
			event = window.event;
		return txtBoxFormat(controle, '99/99/9999', event);
	}

	function VerificaData(controle, erro) {
	    if(controle.value == '')
	    {
	        alert(erro);
	        return false;
	    }
	        
		if (controle.value != '' && !check_date(controle)) {
			if (erro != '')
				alert(erro);
			controle.focus();
			return false;
		}
		
		return true;
	}

	function check_date(field) {

	
		var checkstr = "0123456789"; 
		var DateField = field; 
		var Datevalue = ""; 
		var DateTemp = ""; 
		var seperator = "/"; 
		var day; 
		var month; 
		var year; 
		var leap = 0; 
		var err = 0; 
		var i; 
		err = 0; 
		DateValue = DateField.value; 



	/* Deletando todos os caracteres exceto o 0..9 */ 
		for (i = 0; i < DateValue.length; i++) { 
			if (checkstr.indexOf(DateValue.substr(i,1)) >= 0) { 
				DateTemp = DateTemp + DateValue.substr(i,1); 
			} 
		} 
	
		DateValue = DateTemp; 
	/* Exectutando a data para 8 digitos - string*/ 
	/* if entrada do ano com 2-digitos / exemplo 20xx */ 
	
	year = parseInt(DateValue.substr(DateValue.lastIndexOf("/"),DateField.length-DateValue.lastIndexOf("/")));
	if(year<100)
	year = (parseInt(year) + 2000);
			if (year >= 2000 && year <= new Date().getYear() )
				DateValue = DateValue.substr(0,4) + '20' + DateValue.substr(4,2); 
			else
				DateValue = DateValue.substr(0,4) + '19' + DateValue.substr(4,2); 
	
		if (DateValue.length != 8) { 
			err = 19; 
		} 
	
		/* Se o ano for errado = 0000 */ 
		year = DateValue.substr(4,4); 
		if (year == 0) err = 20;
	
	// Validando o mês
		month = DateValue.substr(2,2); 
		if ((month < 1) || (month > 12)) { 
			err = 21; 
		} 
	
	/* Validando o dia*/ 
		day = DateValue.substr(0,2); 
		if (day < 1) { 
			err = 22; 
		} 
	
		/* Validando ano Bissexto / fevereiro / dia */ 
		leep = 1;
		if ((year % 4 == 0) || (year % 100 == 0) || (year % 400 == 0)) { 
			leap = 0; 
		} 
	
		if ((month == 2) && (day > 29-leep)) { 
			err = 23; 
		} 
	
		/* Validando o mês */ 
		if ((day > 31) && ((month == "01") || (month == "03") || (month == "05") || (month == "07") || (month == "08") || (month == "10") || (month == "12"))) { 
			err = 25; 
		} 
		
		if ((day > 30) && ((month == "04") || (month == "06") || (month == "09") || (month == "11"))) { 
			err = 26; 
		} 
	
		/* if 00 houvendo entrada, sem erros */ 
		if ((day == 0) && (month == 0) && (year == 00)) { 
			err = 0; day = ""; month = ""; year = ""; seperator = ""; 
		} 
	
		/* if sem erros, escrevo a data completa no Input-Field (e.x. 13/12/2001) */ 
		if (err == 0) { 			
			return true;
		} 
	
		/* Mensagem de erro if err != 0 */ 
		else { 
			DateField.value = ""; 
			DateField.focus(); 
			return false;
		} 

	}

	function ValidaData(valor){
		if(valor.indexOf("/")<=0 || valor.split("/").length<3)
			return false;
		else{
			if(valor.split("/")[0].charAt(0)=="0")
				valor=valor.split("/")[0].charAt(1)+"/"+valor.split("/")[1]+"/"+valor.split("/")[2];
			if(valor.split("/")[1].charAt(0)=="0")
				valor=valor.split("/")[0]+"/"+valor.split("/")[1].charAt(1)+"/"+valor.split("/")[2];
			if(parseInt(valor.split("/")[0])>31 || parseInt(valor.split("/")[0])<1 || parseInt(valor.split("/")[1])>12 || parseInt(valor.split("/")[1])<1 || (valor.split("/")[2].length!=4 && valor.split("/")[2].length!=2) || !Inteiro(valor.split("/")[2]))
				return false;
		return true;
		}
	}
	
	function Inteiro(valor){
		for(var i=0; i<valor.length; i++){
			if(isNaN(parseInt(valor.charAt(i))))
				return false;
		}
		return true;
	}

	function VerificaMoeda(controle, erro) {
		if (controle.value != '' && !ValidaMoeda(controle.value)) {
			alert(erro);
			controle.focus();
			return false;
		}
		return true;			
	}
	
	function ValidaMoeda(valor){
		expr1 = /^[0-9]+,+[0-9]{1,2}$/i;
		if((valor.search(expr1) == -1)&&(!Inteiro(valor)))		
			return false;
		return true;
	}
	
	function OnKeyPressNumero(event) {
		if (!event)
			event = window.event;
		var ns4 = (navigator.appName == 'Netscape')? true:false
		if (ns4)
			ieKey = event.which;
		else
  		ieKey = event.keyCode;
		if ((ieKey < 48 && ieKey > 57 && ieKey != 0) || ieKey == 13) {
			if (!ns4)
				event.keyCode = 0;
			return false;
		}
		return true;
	}
	
	function VerificaCPF(controle, erro) {
		if (controle.value == '' || ValidaCpf(controle.value)) {
			return true;
		}
		if (erro != '')
			alert(erro);
		controle.focus();
	}
	
	function ValidaCpf(valor)
	{
		valor = valor.replace(".","").replace(".","").replace("-","");
		if(valor.length!=11)
			return false;
		
		var numeros = valor.split('');
	
		var igual = true;
		for(j=1; j<11; j++)
			if(numeros[j]!=numeros[0])
			{
				igual=false;
				break;
			}
			
		if(igual || valor=="12345678909")
			return false;
			
		var soma = 0;
		for (j=0; j<9 ; j++)
			soma+=(10-j)*numeros[j];
		
		var resultado = soma%11;
		
		if(resultado==1 || resultado==0)
		{
			if(numeros[9]!=0)
				return false;
		}
		else
			if(numeros[9]!=11-resultado)
				return false;
		
		soma = 0;
		for (j=0; j<10 ; j++)
			soma+=(11-j)*numeros[j];
		
		resultado = soma%11;
		
		if(resultado==1 || resultado==0)
		{
			if(numeros[10]!=0)
				return false;
		}
		else
			if(numeros[10]!=11-resultado)
				return false;
		
		return true;
	}

	function VerificaCNPJ(controle, erro) {
		if (controle.value == '' || ValidaCNPJ(controle.value)) {
			return true;
		}
		if (erro != '')
			alert(erro);
		controle.focus();
	}

	
	function ValidaCNPJ(valor)
	{

		valor = valor.replace(".","").replace(".","").replace("-","").replace("/","");
		if(valor.length!=14)
			return false;
		
		var numeros = valor.split('');
	
		var igual = true;
		for(j=1; j<14; j++)
			if(numeros[j]!=numeros[0])
			{
				igual=false;
				break;
			}
			
		if(igual)
			return false;
			
		var soma = 0;
		var fator = 5;
		for (j=0; j<12 ; j++)
		{
			soma+=fator*numeros[j];
			fator--;
			if(fator==1)
				fator=9;
		}
		
		var resultado = soma%11;
		
		if(resultado==1 || resultado==0)
		{
			if(numeros[12]!=0)
				return false;
		}
		else
			if(numeros[12]!=11-resultado)
				return false;
		
		soma = 0;
		fator = 6;
		for (j=0; j<13 ; j++)
		{
			soma+=fator*numeros[j];
			fator--;
			if(fator==1)
				fator=9;
		}
		
		resultado = soma%11;
		
		if(resultado==1 || resultado==0)
		{
			if(numeros[13]!=0)
				return false;
		}
		else
			if(numeros[13]!=11-resultado)
				return false;
		
		return true;
	}
	
	function ValidaGrupo(valor) {
		if (valor == "Usuários" || valor == "Administrador")
			return false;
		return true;
}

	function VALIDA_EDITOR(){
		alert(document.getElementById('Editor').value);
		if(document.getElementById('Editor').value==""){
			alert("Por favor, digite o texto!");
			return (false);
		}
		return (true);
	}
	var canto = false;

function txtBoxFormat(controle, sMask, evtKeyPress) {
	var i, nCount, sValue, fldLen, mskLen,bolMask, sCod, nTecla;

	if(document.all) { // Internet Explorer
		nTecla = evtKeyPress.keyCode; 
	}
	else if(document.layers) { // Nestcape
		nTecla = evtKeyPress.which;
	}

	sValue = controle.value;

// Limpa todos os caracteres de formatação que

// já estiverem no campo.
	while(sValue.indexOf("-") >= 0)
		sValue = sValue.replace("-","");
	while(sValue.indexOf(".") >= 0)
		sValue = sValue.replace(".","");
	while(sValue.indexOf("/") >= 0)
		sValue = sValue.replace("/","");
	while(sValue.indexOf(")") >= 0)
		sValue = sValue.replace(")","");
	while(sValue.indexOf("(") >= 0)
		sValue = sValue.replace("(","");
	while(sValue.indexOf(" ") >= 0)
		sValue = sValue.replace(" ","");

	fldLen = sValue.length;
	mskLen = sMask.length;

	i = 0;
	nCount = 0;
	sCod = "";
	mskLen = fldLen;
	while (i <= mskLen) {
		bolMask = ((sMask.charAt(i) == "-") || (sMask.charAt(i) == ".") || (sMask.charAt(i) == "/"))
		bolMask = bolMask || ((sMask.charAt(i) == "(") || (sMask.charAt(i) == ")") || (sMask.charAt(i) == " "))

		if (bolMask) {
			sCod += sMask.charAt(i);
			mskLen++; 
		}
		else {
			sCod += sValue.charAt(nCount);
			nCount++;
		}

		i++;
	}

	controle.value = sCod;
	
	if (nTecla != 8 && sMask.charAt(i-1) == "9") { // not backspace e apenas numeros
		return ((nTecla > 47) && (nTecla < 58)); 
	} // números de 0 a 9
	else { // qualquer caracter...
		return false;
	}
}

//Help DHTML
var posicaoLeft = 20;
var posicaoTop = 20;

function posicionaLayer(){
	if (document.getElementById('topmsg')) {
		document.getElementById('topmsg').style.left=document.body.scrollLeft+posicaoLeft;
		document.getElementById('topmsg').style.top=document.body.scrollTop+parseInt(document.body.clientHeight)-document.getElementById('topmsg').offsetHeight-posicaoTop;
	}
}


function iniciaHelp(){
	if (document.getElementById('topmsg')) {
		document.getElementById('topmsg').style.left=document.body.scrollLeft+posicaoLeft;
		document.getElementById('topmsg').style.top=document.body.scrollTop+parseInt(document.body.clientHeight)-document.getElementById('topmsg').offsetHeight-posicaoTop;
		window.onscroll=posicionaLayer;
	}
}
window.onload=iniciaHelp;


/*******************************************************
Funções para Verificações de tamanhos
********************************************************/

function FieldCounter(event) {
	if (window.event) {
	  var campo = window.event.srcElement;
    window.event.cancelBubble = true;
	} else 
	  var campo = event.target;

  var blnIncrement = campo.getAttribute("increment") == "1";
  var tamanho = (campo.getAttribute("size") == null ? ((campo.size == null) ? 0 : campo.size) : campo.getAttribute("size"));
  var contador = document.getElementById(campo.id + "_counter");

  if(contador != null)
  	if (window.event)
      contador.innerText = "(" + ((blnIncrement) ? campo.value.length : tamanho - campo.value.length) + ")";
   	else {
      var strHTML = document.createTextNode(((blnIncrement) ? campo.value.length : tamanho - campo.value.length));
      contador.replaceChild(strHTML , contador.childNodes[0]);
    }
}

//=============================================================================
// Delimitador de campo pela quantidade de caracteres
function FieldDelimiter(event) {
	if (window.event)
	  var campo = window.event.srcElement;
	else
	  var campo = event.target;

  var tamanho = (campo.getAttribute("size") == null ? campo.size : campo.getAttribute("size"));
  var blnCounter = true;

  if (tamanho != null && tamanho > 0) {
    blnCounter = (campo.value.length <= tamanho);

    if (blnCounter)
      campo.defaultValue = campo.value;
    else
      campo.value = campo.defaultValue;
  }

	if (window.event) {
    event.returnValue = blnCounter;
    return blnCounter;
  } else
    return blnCounter;
}