//troca o class do obj quando este está em 'edição'
var classAnterior;
var	bOkDataHora = true;
var contPonto = 0;

//Constante para validação de data
var CONST_VALIDAR_DATA = true;

var dateMask = "E";

///////////////////////////Referenciando as informações do menu
/*var stringMenu = "";

if (top.fraMenu) {
	stringMenu = "top.fraaMenu";
} else if (parent.top.fraMenu) {
	stringMenu = "parent.top.fraMenu";
} else if (parent.parent.top.fraMenu) {
	stringMenu = "parent.parent.top.fraMenu";
} else if (parent.parent.top.fraMenu) {
	stringMenu = "parent.parent.top.fraMenu";
}
if (opener) {
	if (opener) {
		stringMenu = "opener";
	}
	if (opener.top) {
		if (opener.top.fraMenu) {
			stringMenu = "opener.top.fraMenu";
		} else if (parent.opener.top.fraMenu) {
			stringMenu = "parent.opener.top.fraMenu";
		} else if (parent.parent.opener.top.fraMenu) {
			stringMenu = "parent.parent.opener.top.fraMenu";
		} else if (parent.parent.opener.top.fraMenu) {
			stringMenu = "parent.parent.opener.top.fraMenu";
		}
	}
	if (opener.parent.top) {
		if (opener.parent.top.fraMenu) {
			stringMenu = "opener.parent.top.fraMenu";
		} else if (parent.opener.parent.top.fraMenu) {
			stringMenu = "parent.opener.parent.top.fraMenu";
		} else if (parent.parent.opener.parent.top.fraMenu) {
			stringMenu = "parent.parent.opener.parent.top.fraMenu";
		} else if (parent.parent.opener.parent.top.fraMenu) {
			stringMenu = "parent.parent.opener.parent.top.fraMenu";
		}
	}

}

if (stringMenu != "") {
	var linguagem = eval(stringMenu+".language");
	var decimalSeparator = eval(stringMenu+".decimalSeparator");
	var dateMask = eval(stringMenu+".dateMask");;

	var msgDeleteUnique = eval(stringMenu+".msgDeleteUnique");;
	var msgMultipleDeleteBegin = eval(stringMenu+".msgMultipleDeleteBegin");
	var msgMultipleDeleteEnd = eval(stringMenu+".msgMultipleDeleteEnd");
	var msgDeleteFailed = eval(stringMenu+".msgDeleteFailed");

	var msgDisableUnique = eval(stringMenu+".msgDisableUnique");
	var msgMultipleDisableBegin = eval(stringMenu+".msgMultipleDisableBegin");
	var msgMultipleDisableEnd = eval(stringMenu+".msgMultipleDisableEnd");
	var msgDisableFailed = eval(stringMenu+".msgDisableFailed");
    var msgSelectFailed = eval(stringMenu+".msgSelectFailed");
	var msgSelectMark = eval(stringMenu+".msgSelectMark");
    var msgLocalityNotInformed = eval(stringMenu+".msgLocalityNotInformed");

	var invalidField = eval(stringMenu+".invalidField");
	var invalidDate = eval(stringMenu+".invalidDate");

	var msgFieldRequired = eval(stringMenu+".msgFieldRequired");
	var msgConfirm = eval(stringMenu+".msgConfirm");
	var msgInvalidNumber = eval(stringMenu+".msgInvalidNumber");
	var msgDateInitialMinorFinal = eval(stringMenu+".msgDateInitialMinorFinal");
	var msgDateGreaterThanActual = eval(stringMenu+".msgDateGreaterThanActual");
	var noFlowsFound = eval(stringMenu+".noFlowsFound");
	var recalcFreightPrice = eval(stringMenu+".recalcFreightPrice");
    var invalidPasswords = eval(stringMenu+".invalidPasswords");
	var serviceRequestDate = eval(stringMenu+".serviceRequestDate");
	var newRequestDate = eval(stringMenu+".newRequestDate");
	var eventRegRequestDate = eval(stringMenu+".eventRegRequestDate");
	var msgNoRecordsExport = eval(stringMenu+".msgNoRecordsExport");
	var msgSelectOnlyReverse = eval(stringMenu+".msgSelectOnlyReverse");
	var msgSelectOneRecord = eval(stringMenu+".msgSelectOneRecord");
	var msgSelectOnlyInbound = eval(stringMenu+".msgSelectOnlyInbound");
	var msgStShipment = eval(stringMenu+".msgStShipment");

    var msgMultipleValidateBegin = eval(stringMenu+".msgMultipleValidateBegin");
    var msgMultipleValidateEnd = eval(stringMenu+".msgMultipleValidateEnd");
    var msgValidateFailed = eval(stringMenu+".msgValidateFailed");
    var msgValidateUnique = eval(stringMenu+".msgValidateUnique");

	var msgWeightFreightRangeCannot = eval(stringMenu+".msgWeightFreightRangeCannot");
	var contractNotExistForThisLocality = eval(stringMenu+".contractNotExistForThisLocality");
	var confirmSendShipment	= eval(stringMenu+".confirmSendShipment");

	var msgYouMustSaveIt = eval(stringMenu+".msgYouMustSaveIt");
	var collectRequestDateActualDate = eval(stringMenu+".collectRequestDateActualDate");
	var scheduledRequestDateActualDate = eval(stringMenu+".scheduledRequestDateActualDate");
	var scheduledRequestDateCollectRequestDate = eval(stringMenu+".scheduledRequestDateCollectRequestDate");
	var scheduledDeliveryDateActualDate = eval(stringMenu+".scheduledDeliveryDateActualDate");
	var scheduledDeliveryDateScheduledRequestDate = eval(stringMenu+".scheduledDeliveryDateScheduledRequestDate");
	var scheduledDeliveryDateCollectRequestDate = eval(stringMenu+".scheduledDeliveryDateCollectRequestDate");
	var effectiveCollectDateRegisterDate = eval(stringMenu+".effectiveCollectDateRegisterDate");
	var selectDestiny = eval(stringMenu+".selectDestiny");
	var effectiveDeliveryDateEffectiveCollectDate = eval(stringMenu+".effectiveDeliveryDateEffectiveCollectDate");

}*/
///////////////////////////////////////////////////////////////
function objFocus(campo){
	//alert("objFocus "+campo.className);
	if (campo.className.indexOf("Focus") == -1) {
		classAnterior	= campo.className;
		campo.className = eval("'"+campo.className+'Focus'+"'");
	} else {
		campo.className = eval("'"+campo.className+"'");
	}
}

//troca o class do obj quando este não está mais em 'edição'
function objBlur(campo){
	campo.className = classAnterior;
}


function mask(obj,event,tipo){
//NETSCAPE: APARTIR DA VERSÃO 5.0
	var tecla;
	if(IsIE()){
		tecla = event.keyCode;
	}else{
		tecla = event.which;
	}
	isNumberDate(obj,event);

	if(IsIE()){	//VALIDAÇÕES PARA INTERNET EXPLORER
		switch (tipo){
			case 'DATA':{
				obj.maxLength = 10;

				if(obj.value.length!=2 && obj.value.length!=5 && !validaNumerico(String.fromCharCode(tecla))){
					return;
				}
				if(tecla != 8){
					if(obj.value.length==2){
						if(tecla!=47){
							obj.value += "/";
						}
					}else if(obj.value.length==5){
						obj.value += "/";
					}
				}
				break;
			}

			case 'DATAHORA':{
				obj.maxLength = 18;

				if(obj.value.length!=2 && obj.value.length!=5 && !validaNumerico(String.fromCharCode(tecla))){
					return;
				}
				if(tecla != 8){
					if(obj.value.length==2){
						if(tecla!=47){
							obj.value += "/";
						}
					}else if(obj.value.length==5){
						obj.value += "/";
					}

					if (obj.value.length == 10){
						obj.value += " - ";
					}
					if (obj.value.length == 15){
						obj.value += ":";
					}
				}
				break;
			}

			case 'CPF':{
				obj.maxLength=11;
				if(tecla != 8){
					isNumber(obj, event);
				}
				obj.maxLength=14;
				if(tecla != 8){
					isNumber(obj,event);
					if(obj.value.length==3){
						obj.value += ".";
					}else if(obj.value.length==7){
						obj.value += ".";
					}else if(obj.value.length==11){
						obj.value += "-";
					}
				}
				break;
			}
			case 'CNPJ':{
                obj.maxLength=18;
                if(tecla != 8 && tecla!=0 ){
                    isNumber(obj,event);
                    formatCnpj(obj);
                }
                break;				
			}
			case 'CEP':{
				obj.maxLength=10;
				if(tecla != 8){
					isNumber(obj,event);
					if(obj.value.length==2){
						obj.value += ".";
					}else if(obj.value.length==6){
						obj.value += "-";
					}
				}
				break;
			}
			case 'HORA':{
				obj.maxLength=5;
				if(tecla != 8){
					isNumber(obj,event);
					if(obj.value.length==2){
						obj.value += ":";
					}
				}
				break;
			}
			case 'COMPETENCIA':{
				obj.maxLength=7;
				if(tecla != 8){
					isNumber(obj,event);
					if(obj.value.length==2){
						obj.value += "/";
					}
				}
				break;
			}
			case 'PLACA':{
				obj.maxLength=8;
				if(tecla != 8){
					if(obj.value.length==3){
						obj.value += "-";
					}
				}
				break;
			}
		}
	}else if((IsNetscape() && GetVersion()>=5)){
		switch (tipo){
			case 'DATA':{
				obj.maxLength = 10;

				if(obj.value.length!=2 && obj.value.length!=5 && !validaNumerico(String.fromCharCode(tecla))){
					return;
				}

				if(tecla != 8 && tecla != 0){
					if(obj.value.length==2){
						if(tecla!=47){
							obj.value += "/";
						}
					}else if(obj.value.length==5){
						obj.value += "/";
					}
				}
				break;
			}
			case 'CPF':{
				obj.maxLength=14;
				if(tecla != 8 && tecla!=0){
					isNumber(obj,event);
					formatCpf(obj);
				}
				break;
			}
			case 'CNPJ':{
				obj.maxLength=18;
				if(tecla != 8 && tecla!=0 ){
					isNumber(obj,event);
					formatCnpj(obj);
				}
				break;
			}
			case 'CEP':{
				obj.maxLength=18;
				if(tecla != 8 && tecla != 0){
					isNumber(obj,event);
					formatCep(obj);
				}
				break;
			}
			case 'HORA':{
				obj.maxLength=5;
				if(tecla != 8){
					isNumber(obj,event);
					formatHora(obj);
				}
				break;
			}
			case 'COMPETENCIA':{
				obj.maxLength=7;
				if(tecla != 8){
					isNumber(obj,event);
					formatCompetencia(obj);
				}
				break;
			}
		}
	}
}

function maskPlaca(obj,event){
//NETSCAPE: APARTIR DA VERSÃO 5.0
	var tecla;
	if(IsIE()){
		tecla = event.keyCode;
	}else{
		tecla = event.which;
	}

    obj.maxLength=8;
    if(tecla != 8){
        if(obj.value.length==3){
            obj.value += "-";
        }
    }

}

function isNumberDate(campo,event) {
//NETSCAPE: APARTIR DA VERSÃO 5.0
	var tecla;
	var caracter;
	if(IsIE()){
		tecla = event.keyCode;
	}else{
		tecla = event.which;
	}
	caracter = (String.fromCharCode(tecla));

	if (((tecla < 48) || (tecla > 57)) && (tecla != 0)){
		event.returnValue = false;
	}
}

function validaNumerico( value ){
//NETSCAPE: YES
	var strValidos = "0123456789";
	var valor= new String(value);
	for( var i=0; i< valor.length; i++){
		if( strValidos.indexOf(valor.charAt(i)) == -1)
			return false;
	}
	return true;
}

function isNumber(campo,event) {
	var tecla;
	var caracter;
	if(IsIE()){
		tecla = event.keyCode;
	}else{
		tecla = event.which;
	}
	caracter = (String.fromCharCode(tecla));

	if (((tecla < 48) || (tecla > 57)) && (tecla != 0)){
		event.returnValue = false;
		if(!IsIE()){
			caracter = (String.fromCharCode(tecla));
			campo.value = limpaParaMascara(campo.value,'numeros');
		}
	}
}

function isCodigo(campo,event) {
	var tecla;
	var caracter;
	if(IsIE()){
		tecla = event.keyCode;
	}else{
		tecla = event.which;
	}
	caracter = (String.fromCharCode(tecla));

	//if (((tecla < 48) || (tecla > 57) || (tecla > 57)) && (tecla != 0)){
	if (!(((tecla>=97 && tecla<=122)||(tecla>=65 && tecla<=90)||(tecla>=48 && tecla<=57))&&(tecla != 0))){
		event.returnValue = false;
	}
}

function isIP(campo,event){
	var tecla = event.keyCode;
	var tcampo = campo.value;
	if(((tecla >= 48) && (tecla <=57)) || (tecla==46)){
		if(tcampo!=""){
			octetos = tcampo.split(".");
			ultimo = (octetos.length) - 1;
			if(tecla==46){
				tamanho = (octetos[ultimo].length);
			}else{
				tamanho = (octetos[ultimo].length)+1;
			}

			if(ultimo>=3){
				if(tecla==46){
					event.keyCode = 0;
				}
				if(tamanho==3){
					//campo.maxLength=(tcampo.length)+1;
				}
			}else{
				campo.maxLength=15;
			}
			if(tamanho>3){
				if(ultimo<3){
					campo.value+= ".";
				}
			}
		}
	}else{
		event.keyCode = 0;
	}
}

function limpaParaMascara(sujeira,filtro,tipo){
//NETSCAPE: YES
// Descrição: Recebe um string e retorna somente os caracteres que pertencem ao filtro. Usar tipo = 1 para valores positivo/negativo.
// limpaParaMascara('12.3ABC -def456','valores') -> 123456
// limpaParaMascara('12,3ABC -def456','valores') -> 12,3456
// limpaParaMascara('-12,3ABC -def456','valores') -> -12,3456
// limpaParaMascara('12,3ABC -def456','letras') -> 12,3ABC -def456
// limpaParaMascara('12,3ABC -def456','numeros') -> 123456
// limpaParaMascara('0','numeros') -> 0
//  ******
//  Filtros:
	numeros = "0123456789";
	valores = "0123456789.";
	//valores = "0123456789.";
	datahora = "0123456789/: ";
    telefone = "0123456789/:-.() ";
	letras  = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzÁÉÍÓÚÀÈÌÒÙÄËÏÖÜÂÊÎÔÛÃÕáéíóúàèìòùäëïöüâêîôûãõçÇ&ªº'\"\|@_<>!#$%&*()={[}]?:+-.,;/\\0123456789 ";
//  ******
	retorno2 = '';
	if (tipo == 1) {
		if (sujeira.substring(0,1) == "-") ind = 1;
		else ind = 0;
	}
	else ind = 0;
	switch (filtro){
		case 'numeros': {
			for ( i=ind; i < sujeira.length; i++ ) {
				if( numeros.indexOf(sujeira.charAt(i))>-1 ) {
					retorno2 += sujeira.charAt(i);
				}
			}
		break;	}
		case 'valores': {
			for ( i=ind; i < sujeira.length; i++ ) {
				if( valores.indexOf(sujeira.charAt(i))>-1 ) {
					retorno2 += sujeira.charAt(i);
				}
			}
			if (sujeira.charAt && sujeira.charAt(0)=='-') {
				retorno2 = "-"+retorno2;
			}
		break;	}
		case 'letras': {
			for ( i=0; i < sujeira.length; i++ ) {
				if( letras.indexOf(sujeira.charAt(i))>-1 ) {
					retorno2 += sujeira.charAt(i);
				}
			}
		break;	}
		case 'datahora': {
			for ( i=0; i < sujeira.length; i++ ) {
				if( datahora.indexOf(sujeira.charAt(i))>-1 ) {
					retorno2 += sujeira.charAt(i);
				}
			}
		break;	}
		case 'telefone': {
			for ( i=0; i < sujeira.length; i++ ) {
				if( telefone.indexOf(sujeira.charAt(i))>-1 ) {
					retorno2 += sujeira.charAt(i);
				}
			}
		break;	}
	}
	if (tipo == 1) {
		if (sujeira.substring(0,1) == "-") retorno2 = "-" + retorno2;
	}
	return retorno2;
}


function formatCpf(obj){
//NETSCAPE: YES
	retorno = limpaParaMascara(obj.value,'numeros');
	if (retorno.length >= 3) { retorno = retorno.substr(0,3)+"."+retorno.substr(3); }
	if (retorno.length >= 7) { retorno = retorno.substr(0,7)+"."+retorno.substr(7); }
	if (retorno.length >= 11) { retorno = retorno.substr(0,11)+"-"+retorno.substr(11); }
	retorno = retorno.substr(0,14);
	obj.value = retorno;
}

function formatCnpj(obj){
//NETSCAPE: YES
	retorno = limpaParaMascara(obj.value,'numeros');
	if (retorno.length >= 2) { retorno = retorno.substr(0,2)+"."+retorno.substr(2); }
	if (retorno.length >= 6) { retorno = retorno.substr(0,6)+"."+retorno.substr(6); }
	if (retorno.length >= 10) { retorno = retorno.substr(0,10)+"/"+retorno.substr(10); }
	if (retorno.length >= 15) { retorno = retorno.substr(0,15)+"-"+retorno.substr(15); }
	retorno = retorno.substr(0,18);
	obj.value = retorno;
}

function formatCep(obj){
//NETSCAPE: APARTIR DA VERSÃO 5.0
	var retorno = "";
	if(obj.value == ""){
		return;
	}
	retorno = limpaParaMascara(obj.value,'numeros');
	if (retorno.length >= 2) { retorno = retorno.substr(0,2)+"."+retorno.substr(2); }
	if (retorno.length >= 6) { retorno = retorno.substr(0,6)+"-"+retorno.substr(6); }
	retorno = retorno.substr(0,10);
	obj.value = retorno;
}

function formatHora(obj){
	var retorno = "";
	if(obj.value == ""){
		return;
	}
	retorno = limpaParaMascara(obj.value,'numeros');
	if (retorno.length >= 2) { retorno = retorno.substr(0,2)+":"+retorno.substr(2); }
	retorno = retorno.substr(0,5);
	obj.value = retorno;
}

function formatCompetencia(obj){
	var retorno = "";
	if(obj.value == ""){
		return;
	}
	retorno = limpaParaMascara(obj.value,'numeros');
	if (retorno.length >= 2) { retorno = retorno.substr(0,2)+"/"+retorno.substr(2); }
	retorno = retorno.substr(0,7);
	obj.value = retorno;
}


function validaNumber(obj){
	if(VALIDA_VALORES_ONBLUR){
		obj.value = limpaParaMascara(obj.value,'numeros');
	}
}



///////////////////////////////////////////////////////////////////////
//Método: formataDate( obj )
//Funcionalidade: Formata e valida campos do tipo data
//Descrição:	-Recebe um objeto com a data digitada
//		-Se possível insere / e acrescenta caracteres
//		-Validade data gerada, impedindo que o campo seja deixado
//		se não for preenchido corretamente
///////////////////////////////////////////////////////////////////////
var nome = "";
function validaDate( el ){
	if(VALIDA_VALORES_ONBLUR){
		//NETSCAPE: YES
		if(!CONST_VALIDAR_DATA){
			return true;
		}

		var valor= new String(limpaParaMascara(el.value,'numeros'));
		LAST_FIELD= el;
		if (nome == "" || el.name == nome){
			vr = el.value;
			//minimo 6, maximo 10
			if (vr.length >= 6 && vr.length <= 10){
				token = new Array();
				i = 0;
				j = 0;
				nBar = 0;
				nDig = 0;

				while (i < vr.length)
				{
					if (vr.substring(i, i+1) >= '0' && vr.substring(i, i+1) <= '9'){
						str = "" + vr.substring(i, i+1);
						i++;
						while (vr.substring(i, i+1) >= '0' && vr.substring(i, i+1) <= '9' && i < vr.length)
						{

							str = str + vr.substring(i, i+1);
							i++;
						}
						token[j] = str;
						j++;
						nDig++;
					}else
					if (vr.substring(i, i+1) == "/"){
						str = "" + vr.substring(i, i+1);
						token[j] = str;
						j++;
						i++;
						nBar++;

					}
					else{
						i++;
					}
				}

				//verifica quantas barras e digitos foram reconhecidos
				//nBar == 0 e nDig == 1  - formato 01012000
				//nBar == 2 e nDig == 3  - formato 01/10/2000
				//para quaisquer outros formatos não faz formatação, ocasionando em erro
				if ((nBar == 0 && nDig == 1) || (nBar == 2 && nDig == 3)){
					//alert("numero de tokens: " + token.length);

					if (token.length == 1){ //um token de tamanho minimo 6, maximo 8
						dia = token[0].substring(0, 2);
						mes = token[0].substring(2, 4);

						if (token[0].length == 6){
							if (eval(token[0].substring(4, 6)) < 30)
								ano = "20" + token[0].substring(4, 6);
							else
								ano = "19" + token[0].substring(4, 6);
						}
						else
						if (token[0].length == 8)
							ano = token[0].substring(4, 8);
						else
							ano = token[0].substring(4, token[0].length);

						//alert(dia + "/" + mes + "/" + ano);
						el.value = dia + "/" + mes + "/" + ano;
					}else
					if (token.length == 5){ //5 tokens indicam data no formato dd/mm/aa
						if (token[0].length == 1 && eval(token[0]) < 10)
							dia = "0" + token[0];
						else
							//pega os dois primeiros digitos e ignora o restante se houver
							dia = token[0].substring(0, 2);
						barra1 = token[1]; //pega barra
						if (token[2].length == 1 && eval(token[2]) < 10)
							mes = "0" + token[2];
						else
							//pega os dois primeiros digitos e ignora o restante se houver
							mes = token[2].substring(0, 2);

						barra2 = token[3]; //pega barra

						if (token[4].length == 2){
							if (eval(token[4]) < 30)
								ano = "20" + token[4];
							else
								ano = "19" + token[4];
						}
						else
							ano = token[4];

						//alert(dia + barra1 + mes + barra2 + ano);

						el.value = dia + barra1 + mes + barra2 + ano;
					}
				}
			}

			var err=0;
			var psj=0;
			a = el.value;

			if (a.length != 10)
				err=4;
			else{

				dia = a.substring(0, 2); // day
				barra1 = a.substring(2, 3); // '/'
				mes = a.substring(3, 5); // month
				barra2 = a.substring(5, 6); // '/'
				ano = a.substring(6, 10); // year

				//basic error checking
				if (mes < 1 || mes >12) err = 1;
				if (barra1 != '/') err = 4;
				if (dia < 1 || dia > 31) err = 2;
				if (barra2 != '/') err = 4
				if (ano < 1900 || ano > 2100) err = 3
				if (mes == 4 || mes == 6 || mes == 9 || mes == 11){
					//advanced error checking
					// months with 30 days
					if (dia == 31) err=4
				}
				if (mes == 2){
					// february, leap year
					// feb
					var g = parseInt(ano/4)
					if (isNaN(g)) {
						err=4
					}
					if (dia > 29) err=4

					if (dia == 29 && ((ano/4)!=parseInt(ano/4))) err=4
				}
			}

			if (err > 0 && a.length > 0){
				alert('Data inválida!');
				nome = el.name;
				el.value = "";
				el.focus();
				objFocus(el);
                el.select();
                el.focus();
				return;
			}
			else
				nome = "";
		}
		ERRO= false;
	}
}



/*****************************************************
**		VALIDAÇÕES DE CAMPOS MONETÁRIO				**
*****************************************************/

function moeda(objEmFoco, tamanho1, tamanho2, event){
	var campo		= objEmFoco;
	var tammax		= tamanho1;
	var tamdeci		= tamanho2;
	var teclapres	= event;

	var tecla = teclapres.keyCode;
	vr = campo.value;
	vr = vr.replace( "/", "" );
	vr = vr.replace( "/", "" );
	vr = vr.replace( ",", "" );
	vr = vr.replace( ".", "" );
	vr = vr.replace( ".", "" );
	vr = vr.replace( ".", "" );
	vr = vr.replace( ".", "" );
	tam = vr.length;

	var iTamDec = parseInt(tamdeci);

	if ((tam >= iTamDec - 1) && (tecla != 8)){
		tam = vr.length + 1 ;
	}
	if (tecla == 8){
		tam = tam - 1;
		//alert(tam+'--'+iTamDec);
	}
	//alert(tecla+'');
	if ((tecla == 8) || (tecla >= 48 && tecla <= 57) || (tecla >= 96 && tecla <= 105 )){
		if (tam < iTamDec){
			campo.value = vr;
		}else if(tam == iTamDec){
			campo.value = "."+vr;
		}else{
			if(iTamDec>0){
				campo.value = vr.substr(0, tam - iTamDec)+'.'+vr.substr(tam - iTamDec, tam);
			}else{
				campo.value = vr;
			}
		}
	}

//NETSCAPE: SÓ APARTIR DA VERSÃO 5.0
/*    var tecla;
	if(IsIE()){
		tecla = event.keyCode;
	}else{
		tecla = event.which;
	}


	if ((tecla == 8) || (tecla == 13) || (tecla == 37) || (tecla == 39) || (tecla == 46) || (tecla == 16) || (tecla == 17))return ;
	retorno = '';
	retorno = objEmFoco.value;
	if (tamanho1+tamanho2 >0) {
		objEmFoco.maxLength = tamanho1 + 1 + tamanho2 + Math.floor(tamanho1/3);
	}
	var isNeg = false;
	if (retorno.charAt(0) == '-') {
		isNeg = true;
		retorno = retorno.substring(1);
		objEmFoco.maxLength++;
	}
	retorno = limpaParaMascara(retorno,'valores');

	var posPrimVirgula = retorno.indexOf(",");
	retorno = limpaParaMascara(retorno,'numeros');
	if (posPrimVirgula > 0) {
		valorInteiro = retorno.substr(0,posPrimVirgula);
		valorCentavo = retorno.substring(posPrimVirgula);
		if (retorno.charAt(0) == '0') {
			retorno = "0,"+valorCentavo.substr(0,tamanho2);
		} else {
			valorInteiro = retornaFormatoMonetarioInteiro(valorInteiro);
			valorCentavo = valorCentavo.substr(0,tamanho2);
			retorno = valorInteiro+","+valorCentavo;
		}
	} else {
		retorno = retorno.substr(0,tamanho1);
		retorno = retornaFormatoMonetarioInteiro(retorno);
	}

	if (retorno == "" && (event.keyCode == 48 || event.keyCode == 96)) {
		retorno = '0';
	}
	if (isNeg) {
		retorno = "-"+retorno;
	}

	if(IsIE()){
		objEmFoco.value = retorno;
	}else if(IsNetscape() && GetVersion() >=5){
		objEmFoco.value = retorno;
	}*/
}


function validaMoney(oque,tipo){
	if(VALIDA_VALORES_ONBLUR){
		//NETSCAPE: YES
		if (oque.value == "-" || oque.value == "") {
			oque.value = ""
			return;
		}
	    retorno = '';

		for (contador=0;contador < oque.value.length;contador++) {
	    	if( (oque.value.charAt(contador) != ".")) {
				retorno += oque.value.charAt(contador);
			}
	    }
	    procurado = /,/;
		retorno = retorno.replace(procurado, ".");

		retorno = retornaFormatoMonetario(retorno-0,tipo);
	    oque.value = retorno;
	}
}

function retornaFormatoMonetario(valor,tipo) {
	if(VALIDA_VALORES_ONBLUR){
		//NETSCAPE: YES
		valorNegativo = false;
		retorno = '';
		valor = toFloat(valor);

		if (valor < 0) {
			valorNegativo = true;
			valor = valor*(-1);
		}
	    if(valor != 0 || (tipo == 1 && valor == 0) ) {
			retorno = parteInteira(Math.floor(valor) + '') + parteFracao(valor);

			if (valorNegativo) {
				retorno = '-'+retorno;
			}
		}
		return retorno;
	}
}

function retornaQtdInteira(valor){
  var d = 0;
  var vlAux = '';

  vlAux = new String(valor / 1);
  for(var i = 0; i <= vlAux.length + 1; i++){
  	if (vlAux.charAt(i) != '.'){
    	d++;
    } else if (vlAux.charAt(i) == '.') {
        break
    }
  }
  return d;
}

function retornaQtdDecimal(valor){
  var z = 0;
  var vlAux = '';

  vlAux = new String(valor / 1);
  for(var i = vlAux.length - 1; i >= 0; i--){
     if (vlAux.charAt(i) != '.'){
        z++;
     } else if (vlAux.charAt(i) == '.') {
        break
     }
  }
  return z;
}

function parteInteira(valor) {
//NETSCAPE: YES
    if (valor.length <= 3)
        return (valor == '' ? '0' : valor);
    else {
		vezes = valor.length % 3;
        retorno = (vezes == 0 ? '' : (valor.substring(0,vezes)));
        for (i=0 ; i < Math.floor(valor.length/3) ; i++) {
            if ( (vezes ==0) && (i ==0) )
                retorno += valor.substring(vezes + 3 * i,vezes + 3 * i + 3);
            else
                retorno += '.' + valor.substring(vezes + 3 * i,vezes + 3 * i + 3);
        }
		retorno = retorno.replace(/-\./,"-");
        return (retorno);
    }
}
function parteFracao(resto) {
//NETSCAPE: YES
    resto = Math.round( ( (resto) - Math.floor(resto) ) *100);
	return (resto < 10 ? ',0' + resto : ',' + resto);
}

function retornaFormatoMonetarioInteiro(valor) {
//NETSCAPE: YES
    if((valor-0) != 0) {
		return parteInteira(Math.floor(valor-0) + '');
	}
	else return '';
}


function toFloat( strValor ) {
//NETSCAPE: YES

// Descrição: Garante retorno numérico para entradas de strings
// toFloat('-12,345') -> -12.345
// toFloat('') -> 0
// toFloat('12.3') -> 12.3
// toFloat('-12.3') -> -12.3
// toFloat() -> 0
// toFloat('12,3') -> 12.3
// toFloat('-12,3') -> -12.3
// toFloat('abc') -> 0
	if ( (strValor == null) || (strValor.length == 0) ) {
		return 0;
	}
	if (!isNaN(strValor)) {
		return parseFloat(strValor);
	}
	retorno = limpaParaMascara(strValor,'valores');
    procurado = /,/;
    retorno = retorno.replace(procurado, ".");
	if ( (retorno == "") || (isNaN(retorno)) ) {
		return 0;
	}
	return parseFloat(retorno);
}

/*****************************************
********** 	VALIDAÇÃO DE CPF	**********
*****************************************/

function getVerificationDigit(S){
//NETSCAPE: YES
	// Retorna o digito verificador (entrar com S "limpo")
	var invertido = invertStr(limpaParaMascara(S,'numeros'));
	var soma = 0;
   for (var i=0; i<invertido.length; i++){
        soma=soma+(i+2)*parseInt(invertido.charAt(i))
   }
   soma*=10;
   return ((soma % 11) % 10)
}


/**********************************************
************* VALIDAÇÃO DE CNPJ	***************
**********************************************/

function validaCnpj(obj){
	if(VALIDA_VALORES_ONBLUR){
		//NETSCAPE: YES
		formatCnpj(obj);
		if(obj.value == ""){
			return true;
		}
		if (!validaCGC(obj.value)) {
           alert("O CNPJ informado não é válido!");//mensagem definida no arquivo source.jsp
           obj.value = "";
           objFocus(obj);
           obj.select();
           obj.focus();
           return false;
		}
		return true;
	}
}

function validaCGC(field) {
//NETSCAPE: YES
// Descrição: Função de validação de CGC.
// Data: 04/01/2001
   field = limpaParaMascara(field,'numeros');
   if ( (field == "") || (field == " ") || (field == '00000000000000')) return false;
   if (field.length != 14) {
        return false;
    }
	first_digit  = field.charAt(12);
	second_digit = field.charAt(13);
	field = field.substring(0,12);
	first_verified  = calcMod11(field,5,2);  // Através do modulo 11 descobre qual é o primeiro digito do final
	second_verified = calcMod11(field + first_verified,6,2);  // Através do modulo 11 descobre qual é o segundo digito do final
    /*
        Se os dois digitos gerados pelo modulo11 forem iguais aos dois últimos
        digitos digitados pelo usuário, validação de CGC OK.
    */
	if( (first_verified == first_digit) && (second_verified==second_digit) ) { return true; }
	else {
        return false;
	}
}


function calcMod11(field,start, finish) {
//NETSCAPE: YES
// Descrição : Cálculo do Módulo 11. Requerida pela validação de CGC.
// Data: 04/01/2001
	t_i      = 0;
	t_sum    = 0;
	t_aux    = 0;
	t_digito = 0;
	t_peso   = 0;
	t_tam    = 0;
	t_char   = 'z';
	t_peso = start;
	t_tam = field.length >= 13 ? t_tam = 13 : t_tam = 12;
	for(t_i=0 ; t_i< t_tam ; t_i++) {
		t_char = field.charAt(t_i);
		t_sum = t_sum + ( (parseInt(t_char)) * t_peso);
		t_peso = t_peso > finish ? --t_peso : (start + (9 - start));
	}
	t_aux = t_sum % 11;
	t_aux = 11 - t_aux;
	t_digito = (t_aux >= 10 ? 0 : t_aux);
	return t_digito;
}


/*******************************
***** VALIDAÇÃO DE CEP	********
*******************************/
function validaCep(obj){

    formatCep(obj);
    var retorno = "";
    if(obj.value == ""){
        return false;
    }

    retorno = limpaParaMascara(obj.value,'numeros');
    if(retorno.length == 8){
        if (retorno.length >= 2) { retorno = retorno.substr(0,2)+"."+retorno.substr(2); }
        if (retorno.length >= 6) { retorno = retorno.substr(0,6)+"-"+retorno.substr(6); }
        retorno = retorno.substr(0,10);
        obj.value = retorno;
        return true;
    }else{
        if(IsIE()){
            alert("CEP Inválido !");
            obj.select();
            return false;
        }else{
            alert("CEP Inválido !");
            obj.value="";
            obj.focus();
            return false;
        }
    }
}


/**********************************
***  VALIDAÇÃO DE COMPETÊNCIA   ***
**********************************/
function validaCompetencia(obj){
	formatCompetencia(obj);
	if (obj.value.length > 0){
		if (obj.value.length < 7 && obj.value.length > 4) {
			var texto = obj.value;
			if (texto.substring(3) > 29){
				obj.value = obj.value.substring(0,3) + "19" +obj.value.substring(3);
			} else {
				obj.value = obj.value.substring(0,3) + "20" +obj.value.substring(3);
			}
		}
		var stringData = limpaParaMascara(obj.value,'numeros');
		if (!(parseInt(stringData.substring(0,2),10)>0 && parseInt(stringData.substring(0,2),10)<13)){
			alert("Competência Inválida !"); //mensagem definida no arquivo source.jsp
			if(IsIE()){
				obj.select();
			}else{
				obj.value="";
				obj.focus();
			}
		} else {
			if (!(parseInt(stringData.substring(2),10)>1899 && parseInt(stringData.substring(2),10)<2101)){
				alert("Competência Inválida !"); //mensagem definida no arquivo source.jsp
				if(IsIE()){
					obj.select();
				}else{
					obj.value="";
					obj.focus();
				}
			}
		}
	}
}


/*******************************
***** VALIDAÇÃO DE HORA	********
*******************************/
function validaHora(obj){
	if(VALIDA_VALORES_ONBLUR){
		formatHora(obj);
		var retorno = "";
		if(obj.value == ""){
			return;
		}
		retorno = limpaParaMascara(obj.value,'numeros');
		if(retorno.length==4){
			var hora 	=  parseFloat(retorno.substring(0,2));
			var minuto 	=  parseFloat(retorno.substring(2,4));
			if(hora >23){
				alert("Hora inválida !");
				bOkDataHora = false;
				if(IsIE()){
					obj.select();
				}else{
					obj.value="";
					obj.focus();
				}

				return;
			}
			if(minuto>59){
				alert("Hora inválida !");
				bOkDataHora = false;
				if(IsIE()){
					obj.select();
				}else{
					obj.value="";
					obj.focus();
				}

				return;
			}
		}else{
			alert("Hora Inválida !");
			bOkDataHora = false;
			if(IsIE()){
				obj.select();
			}else{
				obj.value="";
				obj.focus();
			}
		}
	}
}


/*******************************
***** VALIDAÇÃO DE DATAHORA	********
*******************************/
function validaDateHora(obj,padrao){
	if(VALIDA_VALORES_ONBLUR){
	    //obj chega no formato mm/dd/yyyy - hh:mm

	    var datahora = "", data = "", hora = "";
		if(obj.value == ""){
			return;
		}
		//verifica data
	    hora = obj.value.substring(10, obj.value.lenght);
		var aux = obj.value.substring(0,10);
		obj.value = aux.substring(0,10);
		validaDate(obj,padrao);
		datahora = obj.value+hora;

		//verifica hora
		data = datahora.substring(0,13);
		hora = datahora.substring(13, datahora.lenght);
		obj.value = hora;
		validaHora(obj);
		hora = obj.value;
		obj.value = data + hora;

		if(!bOkDataHora){
			bOkDataHora = true;
			if(IsIE()){
				obj.select();
			}else{
				obj.value="";
				obj.focus();
			}

			// obj.select();
		}
	}
}


/*****************************************
**	FUNCAO QUE FAZ O "SALTO" DO CAMPO	**
*****************************************/

function saltaCampo( el,tamanho,event){
//NETSCAPE: APARTIR DO 5.0
	if((IsNetscape() && GetVersion()>=5) || IsIE()){
		var tecla;
		if(IsIE()){
			tecla = event.keyCode;
		}else{
			tecla = event.which;
		}
		if ( el.value.length >= tamanho && tecla >= 48 )
			AutoSkip(el.name);
	}
}


function AutoSkip( NomeCampo ){
//NETSCAPE: YES
	for(i=0; i < document.forms[0].elements.length; i++){
		if ( NomeCampo == document.forms[0].elements[i].name )
		break;
	}
	if( ( typeof document.forms[0].elements[i+1]) == "undefined"){
		document.forms[0].elements[i].blur();
		return;
	}

	while ( document.forms[0].elements[i+1].type == "hidden" ||document.forms[0].elements[i+1].disabled == true ||document.forms[0].elements[i+1].style.display == "none"){
		i = i +1;
		if ( i == document.forms[0].elements.length - 1)
		i = 0;
	}
	document.forms[0].elements[i+1].focus();
	return;
}


function invertStr(str){
//NETSCAPE: YES
	// Inverte o string S
	var temp="";
	for (var i=0; i<str.length; i++){
		temp=str.charAt(i)+temp
	}
	return temp;
}


function isHora(campo,event) {
	var tecla;
	var caracter;
	if(IsIE()){
		tecla = event.keyCode;
	}else{
		tecla = event.which;
	}
	caracter = (String.fromCharCode(tecla));

	if (((tecla < 48) || (tecla > 57)) && (tecla != 0)){
		event.returnValue = false;
		if(!IsIE()){
			caracter = (String.fromCharCode(tecla));
			campo = limpaParaMascara(campo,'numeros');
		}
	}
}


function validaNumeros(num){
	num.value = limpaParaMascara(num.value,'numeros');
	if(!validaNumerico(num.value)) {
		return num.value.substring(0,num.value.length-1);
	}
	return
}


///////////////////////////////////////////////////////////////////////////////////////////////
//Método: formataBank( obj, casasDecimais )
//Funcionalidade: Formata campos de valor e peso
//Descrição: Recebe um conjunto de valores tipo 1234567 e retorna
//           outro tipo 1.234,567
//Nota : É usado em conjunto com a funçao reformataValor
//////////////////////////////////////////////////////////////////////////////////////////////

function criaObjeto(valor){
criaObjeto.value = valor;
}


function formataBank(num, qtdCasasDecimais){
	num.value = num.value / 1;
    validaNumeros(num);
	var valor ,decimal, i ,cont;
	var chars = ".,"
	var aux = "";
	var	inteiro="";
	var milharSeparator="";

	if (decimalSeparator == '.') {
	    milharSeparator = ",";
	} else {
        milharSeparator = ".";
	}

	if(num.value.length >= (qtdCasasDecimais+1)){
		if(num.value.length == (qtdCasasDecimais+1)){
			valor = num.value.substring(0,1)+decimalSeparator+num.value.substring(1,qtdCasasDecimais+1);
			num.value = valor;
		}else{
		    valor = "";
		    decimal = num.value.substring(num.value.length-(qtdCasasDecimais), num.value.length+1);// pega os últimos dígitos
			for(i = 0; i<num.value.length-(qtdCasasDecimais);i++){//  varre até as casas antes do fim
				if(chars.indexOf(num.value.charAt(i)) == -1){//pega somente valores numericos
					inteiro += num.value.charAt(i);
				}
			}
			if((inteiro.length%3 == 1) && (inteiro.length > 1)){//verifica se terá o caracter ","
				inteiro = reformataValor(inteiro);
			}else if(inteiro.length > 4){
				inteiro = reformataValor(inteiro);
			}
			valor = inteiro;
			if(valor.indexOf(milharSeparator) == 0){
				inteiro = "";
				for(i = 1; i<valor.length;i++)
					inteiro += valor.charAt(i);
			}
			num.value = inteiro+decimalSeparator+decimal;
		}
	}
}

///////////////////////////////////////////////////////////////////////////////////////////////
//Método: formataNumber( obj, casasDecimais, maxIntegerLength )
//Funcionalidade: Formata campos de valor e peso
//Descrição: Recebe um conjunto de valores tipo 1234567 e retorna outro tipo 1.234,567
//           Não deixa o usuário exceder o valor maximo definido pelo maxIntegerlength e qtdCasasDecimais
//Nota : É usado em conjunto com as funções reformataValor, insereDecimais, verificaSeNaoExcedeu
//////////////////////////////////////////////////////////////////////////////////////////////
decimalSeparator = '.'
function formataNumber(num, maxIntegerLength, qtdCasasDecimais){
	var valor ,decimal, i ,cont;
	var chars = ".,"
	var aux = "";
	var	inteiro="";
	var milharSeparator="";
	var valorAnterior;

    // Verifica se foi digitado o separador decimal (para nao exclui-lo)
    if (num.value.indexOf(decimalSeparator) != -1){// se o decimal ja foi digitado
		// executa a rotina para inserir os decimais
		insereDecimais(num, qtdCasasDecimais);
		return;
    }

    // Verifica se foi digitado o separador decimal (para nao exclui-lo)
    if (num.value.substring(num.value.length-1, num.value.length) != decimalSeparator){
    	validaNumeros(num);
    } else {
        return;
    }

	if (decimalSeparator == '.') {
	    milharSeparator = "";
	} else {
        milharSeparator = "";
	}

	inteiro = num.value;
	valorAnterior = num.value.substring(0,maxIntegerLength);
	if((inteiro.length%3 == 1) && (inteiro.length > 1)){//verifica se terá o caracter ","
		inteiro = reformataValor(inteiro);
		valorAnterior = reformataValor(num.value.substring(0,maxIntegerLength));
	}else if(inteiro.length > 4){
		inteiro = reformataValor(inteiro);
		valorAnterior = reformataValor(num.value.substring(0,maxIntegerLength));
	}
	valor = inteiro;

	if (verificaSeNaoExcedeu(valor, maxIntegerLength) == true){
		// verifica se o primeiro caracter do valor nao é o milharSeparator
		if (valorAnterior.substring(0,1) == milharSeparator){
		    num.value = valorAnterior.substring(1,valorAnterior.length);
		}else{
		    num.value = valorAnterior;
		}
		return;
	}

	if(valor.indexOf(milharSeparator) == 0){
		inteiro = "";
		for(i = 1; i<valor.length;i++)
			inteiro += valor.charAt(i);
	}
	num.value = inteiro;
}

///////////////////////////////////////////////////////////////////////////////////////////////
//Método: insereDecimais(obj, qtdCasasDecimais)
//Funcionalidade: Insere valores decimais em um numero inteiro.
//Nota : É usado em conjunto com a funçao formataNumber
//////////////////////////////////////////////////////////////////////////////////////////////
function insereDecimais(num, qtdCasasDecimais){
	var valor;
	var posicaoSeparadorDecimal=0;
	var valoresDecimais;

	valor = num.value;
	// acha o separador decimal ...
	posicaoSeparadorDecimal = valor.indexOf(decimalSeparator);
	valoresDecimais = valor.substring(posicaoSeparadorDecimal+1, valor.length);
    // retira todos os caracteres que não forem 0123456789
	valoresDecimais = limpaParaMascara(valoresDecimais, 'numeros');
	if (valoresDecimais.length > qtdCasasDecimais) {
	    // valor decimal excedeu o limite
		valoresDecimais = valoresDecimais.substring(0,qtdCasasDecimais);
	}
	num.value = valor.substring(0,posicaoSeparadorDecimal+1)+valoresDecimais;
}

///////////////////////////////////////////////////////////////////////////////////////////////
//Método: verificaSeNaoExcedeu( obj, casasDecimais, maxLength )
//Funcionalidade: Verifica se o valor passado como parametro não excedeu o
//                limite especificado.
//Nota : É usado em conjunto com a funçao formataNumber
//////////////////////////////////////////////////////////////////////////////////////////////
function verificaSeNaoExcedeu(num, maxIntegerLength){
	var valor ,decimal, i ,cont, milharSeparator;

	valor = num;
	cont = 0;
	if (decimalSeparator == '.') {
	    milharSeparator = "";
	} else {
        milharSeparator = "";
	}

	for(i = 1; i <= valor.length; i++) {
		if (valor.substring(i-1,i) != milharSeparator)
		    cont=cont+1;
	}

	if (cont > maxIntegerLength) {
	    return true; // excedeu
	} else {
	    return false; // nao excedeu
	}
}

///////////////////////////////////////////////////////////////////////////////////
//Método: reformataValor( obj )
//Funcionalidade: Retorna a parte inteira de valores e pesos é usada em conjunto
//                com a função formataBank
///////////////////////////////////////////////////////////////////////////////////
function reformataValor(inteiro){
   	var cont=0;
	var i =0;
	var aux="";
	var milharSeparator="";

	if (decimalSeparator == '.') {
	    milharSeparator = "";
	} else {
        milharSeparator = "";
	}

	for(i = inteiro.length-1; i>=0;i--){
		cont++;
		if(cont == 3){
			aux += inteiro.charAt(i)+milharSeparator;
			cont = 0;
		}else
			aux += inteiro.charAt(i);
	}
	inteiro = "";
	for(i = aux.length-1; i>=0;i--) inteiro += aux.charAt(i);
	return inteiro;
}

function clearFieldNum(obj) {
    if (decimalSeparator == ".") {
        while(obj.indexOf(",") > -1) {
            obj = obj.replace(",", "");
        }
    } else {
        while(obj.indexOf(".") > -1) {
            obj = obj.replace(".", "");
        }
        if (obj.indexOf(",") > -1) {
            obj = obj.replace(",", ".");
        }
    }
    return obj;
}

function isEmailValido(who) {
	var email=/^[A-Za-z0-9]+([_\.-][A-Za-z0-9]+)*@[A-Za-z0-9]+([_\.-][A-Za-z0-9]+)*\.([A-Za-z]){2,4}$/i;
	return(email.test(who));
}

//***********************************************************
// funções que valida e-mail
//***********************************************************
function validaEmail(objMail){
	if(VALIDA_VALORES_ONBLUR){
		if(objMail.value!=""){
			if(!isEmailValido(objMail.value)){
				alert('O e-mail informado é inválido!');
				objMail.focus();
				objMail.select();
			}
		}
	}
}

function maskTelefone(obj,event){
    obj.value = limpaParaMascara(obj.value,'telefone');
    if (event.keyCode != 48 && // tecla "0"
        event.keyCode != 49 && // tecla "1"
        event.keyCode != 50 && // tecla "2"
        event.keyCode != 51 && // tecla "3"
        event.keyCode != 52 && // tecla "4"
        event.keyCode != 53 && // tecla "5"
        event.keyCode != 54 && // tecla "6"
        event.keyCode != 55 && // tecla "7"
        event.keyCode != 56 && // tecla "8"
        event.keyCode != 57 && // tecla "9"
        event.keyCode != 46 && // tecla "."
        event.keyCode != 45 && // tecla "-"
        event.keyCode != 40 && // tecla "("
        event.keyCode != 41 && // tecla ")"
        event.keyCode != 47 && // tecla "/"
        event.keyCode != 32 ){ // tecla " "
        event.returnValue = false;
    }
}

//******************************************************//
// Function: checa_nomesala                             //
// Descrip : valida se o nome da sala de chat esta ok   //
// Return  : se OK retorna true                         //
//******************************************************//
function checa_nomesala (nomesala) {
	if(VALIDA_VALORES_ONBLUR){
		var achou_erro=false;

	 	if (nomesala.value == '') {
			return true;
		}

		re = /^[a-zA-Z0-9\-\_]{1,30}$/;
		if (re.test(nomesala.value)) { return true; }

		alert("O campo Nome da Sala está preenchido incorretamente. Usar até 30 caracteres, dentre os seguintes: 0-9, a-z, A-Z, (-) e (_). ");
		nomesala.focus();
		nomesala.select();
		return false;
	}
}


//******************************************************//
// Function: checa_nome_BD                              //
// Descrip : valida se o nome do banco de dados esta ok //
// Return  : se OK retorna true                         //
//******************************************************//
function checa_nome_BD (url) {
 	if(VALIDA_VALORES_ONBLUR){
	 	if (url.value == '') {
			return true;
		}

		if (url.value.length > 12) {
			url.focus();
			alert("O campo Nome do Banco de Dados deve ter no máximo 12 caracteres.");
			return false;
		}

		if (url.value.length < 3) {
			url.focus();
			alert("O campo Nome do Banco de Dados deve ter no mínimo 3 caracteres.");
			return false;
		}

		re = /^[0-9].*$/;
		if (re.test(url.value)) {
			url.focus();
			alert("Não pode existir números no começo do nome do Banco de Dados.");
			return false;
		}

		re = /^[a-z0-9]+$/;
		if(re.test(url.value) ) {
			return true;
		}

		url.focus();
		alert("O Nome do Banco de Dados está preenchido incorretamente.");

		return false;
	}
}


//******************************************************//
// Function: checa_dominio                              //
// Descrip : valida se dominio esta correto             //
// Return  : se OK retorna true                         //
//******************************************************//
function checa_dominio (dominio) {
	if(VALIDA_VALORES_ONBLUR){
		var achou_erro=false;

		if (dominio.value == '') {
			return true;
		}

		if (dominio.value.length < 2) {
			dominio.focus();
			alert("O campo Dominio dever ter no mínimo 2 caracteres.");
			return false;
		}

		re = /http:\/\//;
		if (re.test(dominio.value)) {
			dominio.focus();
			alert("Nao pode existir http:// no Dominio.");
			return false;
		}

		re = /http:/;
			if (re.test(dominio.value)) {
			dominio.focus();
			alert("Nao pode existir http: no Dominio.");
			return false;
		}

		re = /^\..*$/;
			if (re.test(dominio.value)) {
			dominio.focus();
			alert("Nao pode existir . (ponto) no comeco do Dominio.");
			return false;
		}

		re = /^.*\.$/;
			if (re.test(dominio.value)) {
			dominio.focus();
			alert("Nao pode existir . (ponto) no final do Dominio.");
			return false;
		}

		re = /\s/;
			if (re.test(dominio.value)) {
			dominio.focus();
			alert("Nao pode existir espacos no Dominio.");
			return false;
		}

		re = /^www[0-9]*\..*$/;
			if (re.test(dominio.value)) {
			dominio.focus();
			alert("O Dominio nao pode comecar com www.");
			return false;
		}

		re = /^[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$/;
			if (re.test(dominio.value)) {
			return true;
		}

		dominio.focus();
		alert("O Dominio está preenchido incorretamente.");

		return false;
	}
}


//******************************************************//
// Function: nnTestaUser                        //
// Descrip : valida username                    //
// Return  : se OK retorna 0                    //
//******************************************************//
function nnTestaUser(user){
	if(VALIDA_VALORES_ONBLUR){
		user.value = user.value.toLowerCase();

		if (user.value == '') {
			return true;
		}

		var c;
		if(user.value.length < 3) {
			user.focus();
			alert("Username inválido (muito curto).  Mínimo 3 caracteres.");
			user.select();
			return 1;
		}
		if(user.value.length > 20) {
			user.focus();
			alert("Username inválido (muito longo).  Máximo 20 caracteres.");
			user.select();
			return 1;
		}

		// Se nao comecar por numero ou a-z eh invalido...
		var valor = /[a-z0-9]/;
		valor = valor.exec(user.value.substring(0,1));
		if(valor ==null){
			c = user.value.substring(0, 1 );
			user.focus();
			alert("Username inválido.  Não pode iniciar por " + c + ".");
			user.select();
			return 1;
		}
		var usval = /[^a-z0-9_.]/.exec(user.value);
		if(usval != null) {
			user.focus();
			alert("Username inválido. Possui caracteres inválidos.");
			user.select;
			return 1;
		}

		return 0;
	}
}


//******************************************************//
// Function: checa_url                                  //
// Descrip : valida se URL esta correta                 //
// Return  : se OK retorna true                         //
//******************************************************//
function checa_url (url) {
	if(VALIDA_VALORES_ONBLUR){
		var achou_erro=false;

		if (url.value == '') {
			return true;
		}

		re = /http:\/\//;
		if (re.test(url.value)) {
			url.focus();
			alert("Nao pode existir http:// na URL.");
			return false;
		}

		re = /http:/;
		if (re.test(url.value)) {
			url.focus();
			alert("Nao pode existir http: na URL.");
			return false;
		}

		re = /^\..*$/;
		if (re.test(url.value)) {
			url.focus();
			alert("Nao pode existir .(ponto) no comeco da URL.");
			return false;
		}

		re = /^.*\.$/;
		if (re.test(url.value)) {
			url.focus();
			alert("Nao pode existir .(ponto) no final da URL.");
			return false;
		}

		re = /^.*\.{2,}.*$/;
		if (re.test(url.value)) {
			url.focus();
			alert("Nao pode existir mais de um .(ponto) na URL.");
			return false;
		}

		re = /\s/;
		if (re.test(url.value)) {
			url.focus();
			alert("Nao pode existir espacos na URL.");
			return false;
		}

		re = /^www[0-9]*\..*$/;
		if (!re.test(url.value)) {
			url.focus();
			alert("A URL deve comecar com www.");
			return false;
		}

		re = /^[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$/;
		if (re.test(url.value)) {
			return true;
		}

		url.focus();
		alert("A URL está preenchida incorretamente.");

		return false;
	}
}

//******************************************************//
// Function: remover caracteres especiais               //
//******************************************************//
function removeEspeciais(obj){
    var entrada;
    var tecla;
    var retorno;
    var i;
    var letras;

    retorno = '';
    entrada = obj.value;

    letras  = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzÁÉÍÓÚÀÈÌÒÙÄËÏÖÜÂÊÎÔÛÃÕáéíóúàèìòùäëïöüâêîôûãõçÇªº|_<>()={[}!]?:+-.,/0123456789 ";

    for ( i=0; i < entrada.length; i++ ) {
        if( letras.indexOf(entrada.charAt(i))>-1 ) {
            retorno += entrada.charAt(i);
        }
    }
    obj.value = retorno;
}

//******************************************************//
// Function: remover caracteres especiais               //
//******************************************************//
function removeEspeciaisCodigo(obj){
    var entrada;
    var tecla;
    var retorno;
    var i;
    var letras;

    retorno = '';
    entrada = obj.value;

    letras  = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";

    for ( i=0; i < entrada.length; i++ ) {
        if( letras.indexOf(entrada.charAt(i))>-1 ) {
            retorno += entrada.charAt(i);
        }
    }
    obj.value = retorno;
}

//******************************************************//
// Function: remover letras                             //
//******************************************************//
function removeLetras(obj){
    obj.value = limpaParaMascara(obj.value,'numeros');
}


function isCPF( cpf){
    //NETSCAPE: YES
    var result = "";
    var OK = false;
    var temp = limpaParaMascara(cpf,'numeros');

    if (temp.length>10) {
        var work=temp.substring(0,(temp.length)-2)
        var resto = getVerificationDigit(work);
        OK = (resto==parseInt(temp.charAt((temp.length)-2)));
        if (OK) {
            work=work+resto;
            resto= getVerificationDigit(work);
            OK = (resto==parseInt(temp.charAt((temp.length)-1)));
        }
    }
    return (OK)
}

function validaCpf(objEmFoco){
    //NETSCAPE: YES
    //formatCpf(objEmFoco);
    if(objEmFoco.value == ""){
        return true;
    }
    if (!isCPF(objEmFoco.value) || objEmFoco.value == '00000000000000') {
        if(IsIE()){
            objEmFoco.select();
        }else{
            objEmFoco.value="";
            objEmFoco.focus();
        }
        alert("O CPF informado não é válido!");//mensagem definida no arquivo source.jsp
        objEmFoco.value = "";
        objFocus(objEmFoco);
        objEmFoco.select();
        objEmFoco.focus();
        return;
    }
}

