// Muda o atributo display entre none e block.
	function cssDisplayOnOff(obj) {
		if(document.getElementById) {
			menuObj = document.getElementById(obj);
			menuImg = document.getElementById("img" + obj);
			menuImg.src = (menuObj.style.display=="")?"/sim/images/setadireita.gif":"/sim/images/setabaixo.gif";
			menuObj.style.display=(menuObj.style.display=="")?"none":"";
		} else if(document.all) {
			var lista = eval("document.all."+obj);
			for (var i=0; i<lista.length; i++) {
				lista[i].style.display=(lista[i].style.display=="")?"none":"";
			}
		}
	}
	
	function cssFiltrosOnOff(obj) {
		if(document.getElementById) {
			filtros = document.getElementById(obj);
			abre = document.getElementById(obj+ "_abre");
			filtros.style.display=(filtros.style.display=="")?"none":"";
			abre.style.display=(filtros.style.display=="")?"none":"";
		} else if(document.all) {
			var lista = eval("document.all."+obj);
			var lista_abre = eval("document.all."+obj+"_abre");
			for (var i=0; i<lista.length; i++) {
				lista[i].style.display=(lista[i].style.display=="")?"none":"";
				lista_abre[i].style.display=(lista[i].style.display=="")?"none":"";
			}
		}
	}
        
 
	function init() {
		document.forms['formDefault'].focus(); 
	}

	function initi(obj) {
		obj.focus(); 
	}

	var tab = false;
	var sai = false;
	var tam =0;
//	var browser = navigator.appName;
//	var versao = navigator.appVersion.substring(0,navigator.appVersion.indexOf(" "));
	
	function vaiPara(onde) {
		document.forms['formDefault'].EXIBE.value=onde; 
		document.forms['formDefault'].submit();
	}

// Máscara de telefone.
	function formatafone(obj, tecla) {
		if(tab == true) {
			if(tecla >= 48 && tecla <= 57 || tecla >= 96 && tecla <= 105 || tecla == 8) {
				obj.value = ''; }
			tab = false;
		}
//		var vr = obj.value.replace(/[^0-9]/g,"");
		var vr = sodigitos(obj.value);
		tam = vr.length;
		if(tecla >= 48 && tecla <= 57 || tecla >= 96 && tecla <= 105 ) {
			if (tam < 8) {
				tam = tam+1; }
		}
		else if(tecla == 8){
			tam = tam-1; }

		if (tam > 4) {
	 		vr = vr.substr( 0, tam - 4 ) + '-' + vr.substr( tam - 4 ); }

		obj.value = vr;
	}

// Máscara de telefone.
	function formataDDDfone(obj, tecla) {
		if(tab == true) {
			if(tecla >= 48 && tecla <= 57 || tecla >= 96 && tecla <= 105 || tecla == 8) {
				obj.value = ''; }
			tab = false;
		}
//		var vr = obj.value.replace(/[^0-9]/g,"");
		var vr = sodigitos(obj.value);
		tam = vr.length;
		if(tecla >= 48 && tecla <= 57 || tecla >= 96 && tecla <= 105 ) {
			if (tam < 10) {
				tam = tam+1; }
		}
		else if(tecla == 8){
			tam = tam-1; }

		if (tam > 0)
		{
			if (tam < 3) {
				vr = '(' + vr.substr( 0 ); }
			else if (tam < 7) {
				vr = '(' + vr.substr( 0, 2 )  + ') ' + vr.substr( 2 ); }
			else if (tam >= 7) {
				vr = '(' + vr.substr( 0, 2 )  + ') ' + vr.substr( 2, tam-6 ) + '-' + vr.substr( tam-4 ); }

			obj.value = vr;
		}
	}

// Máscara de CEP.
	function formatacep(obj, tecla) {
		if(tab == true) {
			if(tecla >= 48 && tecla <= 57 || tecla >= 96 && tecla <= 105 || tecla == 8) {
				obj.value = ''; }
			tab = false;
		}
//		var vr = obj.value.replace(/[^0-9]/g,"");
		var vr = sodigitos(obj.value);
		tam = vr.length;
		if(tecla >= 48 && tecla <= 57 || tecla >= 96 && tecla <= 105 ) {
			tam = tam+1; }
		else if(tecla == 8){
			tam = tam-1; }

	 	if (tam > 5) {
	 		vr = vr.substr( 0, tam - 3 ) + '-' + vr.substr( tam - 3 ); }

		obj.value = vr;
	}

// Máscara de data.
	function formatadata(obj, tecla) {
		if(tab == true) {
			if(tecla >= 48 && tecla <= 57 || tecla >= 96 && tecla <= 105 || tecla == 8) {
				obj.value = ''; }
			tab = false;
		}
//		var vr = obj.value.replace(/[^0-9]/g,"");
		var vr = sodigitos(obj.value);
		tam = vr.length;
		if(tecla >= 48 && tecla <= 57 || tecla >= 96 && tecla <= 105 ) {
			tam = tam+1; }
		else if(tecla == 8){
			tam = tam-1; }

		var aux= vr.substr(0,2);		
		if(tam > 2) {
		  aux+= '/';
		}
		aux+= vr.substr(2,2);
		if(tam > 4) {
		  aux+= '/';
	    }
		aux+= vr.substr(4);

		obj.value= aux;
		sai = false;
	}

// Verifica se data é válida.
	function verificadata(obj) {
		return verdata(obj,'',''); }

// Verifica se data é válida e maior que 'sdata'.
	function verificadataMaiorQue(obj,sdata) {
		return verdata(obj,'>',sdata); }

// Verifica se data é válida e menor que 'sdata'.
	function verificadataMenorQue(obj,sdata) {
		return verdata(obj,'<',sdata); }

// Verifica se data é válida, e se eh maior ou menor.
	function verdata(obj,tipo,sdata) {
		var ret= true;
		if(obj.value.length > 6) {
//				var array= obj.value.split(/\//);
				var array= separa(obj.value,'/');
				var ano= array[2]*1;
				if(array[2].length <= 2) {
					if(ano < 10) { array[2]= 2000 + ano; }
					else { array[2]= 1900 + ano; }
					obj.value= array[0] + '/' + array[1] + '/' + array[2];
				}
				var data= new Date(array[2],array[1]-1,array[0]);
				if((data.getMonth()!= array[1]-1) || 
				   (((data.getYear()>=2000)?(data.getYear()-1900):(data.getYear()))!=array[2]-1900) || 
				   (data.getDate()!=array[0])) {
						ret= erro(obj,"Data inválida!"); }
				else { 
					obj.value= array[0] + '/' + array[1] + '/' + array[2];
				// Se tiver comparacao de datas
					if (tipo.length > 0) {
//						array= sdata.split(/\//);
						array= separa(sdata,'/');
						ano= array[2]*1;
						if(array[2].length <= 2) {
							if(ano < 10) { array[2]= 2000 + ano; }
							else { array[2]= 1900 + ano; }
							sdata= array[0] + '/' + array[1] + '/' + array[2];
						}
						var data1= new Date(array[2],array[1]-1,array[0]);
						if((data1.getMonth()!= array[1]-1) || 
						   (((data1.getYear()>=2000)?(data1.getYear()-1900):(data1.getYear()))!=array[2]-1900) || 
						   (data1.getDate()!=array[0])) {
								ret= erro(obj,"Data relativa inválida!"); }
						else if ((tipo == ">") && (data < data1)) {
								ret= erro(obj,"Data deve ser maior ou igual que " + sdata + " !"); }
						else if ((tipo == "<") && (data > data1)) {
								ret= erro(obj,"Data deve ser menor ou igual que " + sdata + " !"); }
					}
				}
		}
		else if(obj.value.length > 0) { 
			ret= erro(obj,"Data incompleta!"); }
		return ret;
	}

// Verifica se data e hora é válida e maior que 'sdata'.
	function verificadatahoraMaiorQue(form,obj0,sdata) {
		var data= document.forms[form][obj0 + '_D'].value + " " + document.forms[form][obj0 + '_H'].value;
		return verdatahora(document.forms[form][obj0 + '_D'],'>',data,sdata); }

// Verifica se data e hora é válida e menor que 'sdata'.
	function verificadatahoraMenorQue(form,obj0,sdata) {
		var data= document.forms[form][obj0 + '_D'].value + " " + document.forms[from][obj0 + '_H'].value;
		return verdatahora(document.forms[form][obj0 + '_D'],'<',data,sdata); }

	function verdatahora(obj,tipo,pdata,sdata) {
		var ret= true;
		if(pdata.length > 6) {
				var array= separa(pdata,'/ :');
				array[5]= '00';
				var ano= array[2]*1;
				if(array[2].length <= 2) {
					if(ano < 10) { array[2]= 2000 + ano; }
					else { array[2]= 1900 + ano; }
				}
				var data= new Date(array[2],array[1]-1,array[0],array[3],array[4],array[5]);
				if((data.getMonth()!= array[1]-1) || 
				   (((data.getYear()>=2000)?(data.getYear()-1900):(data.getYear()))!=array[2]-1900) || (data.getDate()!=array[0])) {
						ret= erro(obj,"Data inválida!"); }
				else if((data.getHours()!= array[3]) || 
				   (data.getMinutes()!= array[4]) ||
				   (data.getSeconds()!= array[5])) {
						ret= erro(obj,"Hora inválida!"); }
				else { 
				// Se tiver comparacao de datas
					if (tipo.length > 0) {
//						array= sdata.split(/\//);
						array= separa(sdata,'/ :');
						array[5]= '00';
						ano= array[2]*1;
						if(array[2].length <= 2) {
							if(ano < 10) { array[2]= 2000 + ano; }
							else { array[2]= 1900 + ano; }
						}
						var data1= new Date(array[2],array[1]-1,array[0],array[3],array[4],array[5]);
						if((data1.getMonth()!= array[1]-1) || 
						   (((data1.getYear()>=2000)?(data1.getYear()-1900):(data1.getYear()))!=array[2]-1900) ||  (data1.getDate()!=array[0])) {
								ret= erro(obj,"Data relativa inválida!"); }
						else if((data1.getHours()!= array[3]) || 
						   (data1.getMinutes()!= array[4]) ||
						   (data1.getSeconds()!= array[5])) {
								ret= erro(obj,"Hora relativa inválida!"); }
						else if ((tipo == ">") && (data < data1)) {
								ret= erro(obj,"Data deve ser maior ou igual que " + sdata + " !"); }
						else if ((tipo == "<") && (data > data1)) {
								ret= erro(obj,"Data deve ser menor ou igual que " + sdata + " !"); }
					}
				}
		}
		else if(obj.value.length > 0) { 
			ret= erro(obj,"Data incompleta!"); }
		return ret;
	}

	function formatahora(obj, tecla) {
		if(tab == true) {
			if(tecla >= 48 && tecla <= 57 || tecla >= 96 && tecla <= 105 || tecla == 8) {
				obj.value = ''; }
			tab = false;
		}
//		var vr = obj.value.replace(/[^0-9]/g,"");
		var vr = sodigitos(obj.value);
		tam = vr.length;
		if(tam > 0) {
			var aux = vr*1;
			vr = String(aux);
		}
		else { vr = ''; }
		tam = vr.length;
		if(tecla >= 48 && tecla <= 57 || tecla >= 96 && tecla <= 105 ) {
			tam = tam+1; }
		else if(tecla == 8){
			tam = tam-1; }

/*		var aux= vr.substr(0,2);		
		if(tam > 2) {
		  aux+= ':';
		}
		aux+= vr.substr(2,2);
		obj.value= aux; */

		if (tam == 1)      { vr = '00:0' + vr; }
	 	else if (tam == 2) { vr = '00:' + vr; }
	 	else if (tam == 3) { vr = '0' + vr.substr( 0, 1 ) + ':' + vr.substr( 1, 2 ); }
	 	else if (tam >= 4) { vr = vr.substr( 0, 2 ) + ':' + vr.substr( 2, 2 ); }

		obj.value= vr;
	}

	function verificahora(obj) {
		var ret= true;
		if(obj.value.length > 0) {
//			var array= obj.value.split(/:/);
			var array= separa(obj.value,':');
			if(obj.value.length > 2) {
				while(array[1].length < 2) {
					array[1]= array[1] + '0'; }
			}
			else {
				array[1]= '00'; }
			obj.value= array[0] + ':' + array[1];
			var data= new Date(0,0,0,array[0],array[1]);
			if((data.getHours()!= (array[0])%24) || (data.getMinutes()!=array[1])) {
			  ret= erro(obj,"Hora inválida!"); }
		}
		return ret;
	}

// Máscara de valor.
	function formatavalor(obj, tecla) {
		if(tab == true) {
			if(tecla >= 48 && tecla <= 57 || tecla >= 96 && tecla <= 105 || tecla == 8) {
				obj.value = ''; }
			tab = false;
		}
//		var vr = obj.value.replace(/[^0-9]/g,"");
		var vr = sodigitos(obj.value);
		tam = vr.length;
		if(tam > 0) {
			var aux = vr*1;
			vr = String(aux);
		}
		else { vr = '0'; }

		tam = vr.length;
		if(tecla >= 48 && tecla <= 57 || tecla >= 96 && tecla <= 105 ) {
			tam = tam+1; }
		else if(tecla == 8){
			tam = tam-1; }

		if (tam < 2) { vr = '0,0' + vr; }
	 	else if (tam == 2) { vr = '0,' + vr; }
	 	else if ( (tam > 2) && (tam <= 5) ) {
	 		vr = vr.substr( 0, tam - 2 ) + ',' + vr.substr( tam - 2 ); }
	 	else if ( (tam >= 6) && (tam <= 8) ) {
	 		vr = vr.substr( 0, tam - 5 ) + '.' + vr.substr( tam - 5, 3 ) + ',' + vr.substr( tam - 2 ); }
	 	else if ( (tam >= 9) && (tam <= 11) ) {
	 		vr = vr.substr( 0, tam - 8 ) + '.' + vr.substr( tam - 8, 3 ) + '.' + vr.substr( tam - 5, 3 ) + ',' + vr.substr( tam - 2 ); }
	 	else if ( (tam >= 12) && (tam <= 14) ) {
	 		vr = vr.substr( 0, tam - 11 ) + '.' + vr.substr( tam - 11, 3 ) + '.' + vr.substr( tam - 8, 3 ) + '.' + vr.substr( tam - 5, 3 ) + ',' + vr.substr( tam - 2 ); }
	 	else if ( (tam >= 15) && (tam <= 17) ) {
	 		vr = vr.substr( 0, tam - 14 ) + '.' + vr.substr( tam - 14, 3 ) + '.' + vr.substr( tam - 11, 3 ) + '.' + vr.substr( tam - 8, 3 ) + '.' + vr.substr( tam - 5, 3 ) + ',' + vr.substr( tam - 2 ); }

		obj.value = vr;
		sai = false;
	}

// Máscara de inteiro.
	function formatanumero(obj, tecla) {
		if(tab == true) {
			if(tecla >= 48 && tecla <= 57 || tecla >= 96 && tecla <= 105 || tecla == 8) {
				obj.value = ''; }
			tab = false;
		}
//		obj.value = obj.value.replace(/[^0-9]/g,"");
		obj.value = sodigitos(obj.value);
	}

// Máscara de valor de 4 casas decimais.
	function formatavalor4(obj, tecla) {
		if(tab == true) {
			if(tecla >= 48 && tecla <= 57 || tecla >= 96 && tecla <= 105 || tecla == 8) {
				obj.value = ''; }
			tab = false;
		}
//		var vr = obj.value.replace(/[^0-9]/g,"");
		var vr = sodigitos(obj.value);
		tam = vr.length;
		if(tam > 0) {
			var aux = vr*1;
			vr = String(aux);
		}
		else { vr = '0'; }

		tam = vr.length;
		if(tecla >= 48 && tecla <= 57 || tecla >= 96 && tecla <= 105 ) {
			tam = tam+1; }
		else if(tecla == 8){
			tam = tam-1; }

		if (tam == 1) { vr = '0,000' + vr; }
	 	else if (tam == 2) { vr = '0,00' + vr; }
	 	else if (tam == 3) { vr = '0,0' + vr; }
	 	else if (tam == 4) { vr = '0,' + vr; }
	 	else if ( (tam > 4) && (tam <= 7) ) {
	 		vr = vr.substr( 0, tam - 4 ) + ',' + vr.substr( tam - 4 ); }
	 	else if ( (tam >= 8) && (tam <= 11) ) {
	 		vr = vr.substr( 0, tam - 7 ) + '.' + vr.substr( tam - 7, 3 ) + ',' + vr.substr( tam - 4 ); }
	 	else if ( (tam >= 12) && (tam <= 14) ) {
	 		vr = vr.substr( 0, tam - 10 ) + '.' + vr.substr( tam - 10, 3 ) + '.' + vr.substr( tam - 7, 3 ) + ',' + vr.substr( tam - 4 ); }
	 	else if ( (tam >= 15) && (tam <= 17) ) {
	 		vr = vr.substr( 0, tam - 13 ) + '.' + vr.substr( tam - 13, 3 ) + '.' + vr.substr( tam - 10, 3 ) + '.' + vr.substr( tam - 7, 3 ) + ',' + vr.substr( tam - 4 ); }
	 	else if ( (tam >= 18) && (tam <= 20) ) {
	 		vr = vr.substr( 0, tam - 17 ) + '.' + vr.substr( tam - 17, 3 ) + '.' + vr.substr( tam - 13, 3 ) + '.' + vr.substr( tam - 10, 3 ) + '.' + vr.substr( tam - 7, 3 ) + ',' + vr.substr( tam - 4 ); }

		obj.value = vr;
		sai = false;
	}

// Máscara de CEP.
	function formatacep(obj, tecla) {
		if(tab == true) {
			if(tecla >= 48 && tecla <= 57 || tecla >= 96 && tecla <= 105 || tecla == 8) {
				obj.value = ''; }
			tab = false;
		}
//		var vr = obj.value.replace(/[^0-9]/g,"");
		var vr = sodigitos(obj.value);
		tam = vr.length;
		if(tecla >= 48 && tecla <= 57 || tecla >= 96 && tecla <= 105 ) {
			tam = tam+1; }
		else if(tecla == 8){
			tam = tam-1; }

	 	if (tam > 5) {
	 		vr = vr.substr( 0, 5 ) + '-' + vr.substr( 5 ); }

		obj.value = vr;
	}

// Máscara de CGC
	function formatacgc(obj, tecla) {
		if(tab == true) {
			if(tecla >= 48 && tecla <= 57 || tecla >= 96 && tecla <= 105 || tecla == 8) {
				obj.value = ''; }
			tab = false;
		}
		
//		var vr= obj.value.replace(/[^0-9]/g,"");
		var vr= sodigitos(obj.value);
		tam = vr.length;
		var aux= "";

		if(tecla >= 48 && tecla <= 57 || tecla >= 96 && tecla <= 105 ) {
			tam = tam+1; }
		else if(tecla == 8){
			tam = tam-1; }

		aux= vr.substr(0,2);
		if(tam > 2) {
		  aux+= '.';
		}
		aux+= vr.substr(2,3);
		if(tam > 5) {
		  aux+= '.';
	    }
		aux+= vr.substr(5,3);
		if(tam > 8) {
		  aux+= '/';
	    }
		aux+= vr.substr(8,4);
		if(tam > 12) {
		  aux+= '-';
	    }
		aux+= vr.substr(12);

		obj.value= aux;
		sai = false;
	}

// Retorna true se a string for um CGC válido.
function isCGC(obj) {
	var CGC= obj.value;
	var S1, S2, I, Soma, Digito;
	var Result= false;
	var CalcCGC= '';
	Result= false;

	S1= CGC;
	if (S1.length > 0) {
//		S1= S1.replace(/\./g,"");
//		S1= S1.replace(/-/g,"");
//		S1= S1.replace(/\//g,"");
		S1= substitui(S1,'.-/','');
	}
	if (S1.length == 14) {
		if (S1 != '00000000000000') {
			CalcCGC= S1.substr(0, 12);
		//{ Cálculo do 1º dígito }
			Soma= 0;
			for (I= 0; I < 4; I++) {
				Soma= Soma + (CalcCGC.substr(I, 1) * (5 - I)); }
			for (I= 0; I < 8; I++) {
				Soma= Soma + (CalcCGC.substr(I + 4, 1) * (9 - I)); }
			Digito= 11 - (Soma % 11);
			if ((Digito == 10) || (Digito == 11)) {
				CalcCGC= CalcCGC + '0'; }
			else {
				CalcCGC= CalcCGC + (Digito *1); }

		//{ Cálculo do 2º dígito }
			Soma= 0;
			for (I= 0; I < 5; I++) {
				Soma= Soma + (CalcCGC.substr(I, 1) * (6 - I)); }
			for (I= 0; I < 8; I++) {
				Soma= Soma + (CalcCGC.substr(I + 5, 1) * (9 - I)); }
			Digito= 11 - (Soma % 11);
			if ((Digito == 10) || (Digito == 11)) {
				CalcCGC= CalcCGC + '0'; }
			else {
				CalcCGC= CalcCGC + (Digito *1); }
		}
	}

	if (CalcCGC == S1) {
		Result= true; }
	else { erro(obj,"CNPJ inválido!"); }

	return Result;
}

// Máscara de CPF
	function formatacpf(obj, tecla) {
		if(tab == true) {
			if(tecla >= 48 && tecla <= 57 || tecla >= 96 && tecla <= 105 || tecla == 8) {
				obj.value = ''; }
			tab = false;
		}
		
//		var vr= obj.value.replace(/[^0-9]/g,"");
		var vr= sodigitos(obj.value);
		tam = vr.length;
		var aux= "";

		if(tecla >= 48 && tecla <= 57 || tecla >= 96 && tecla <= 105 ) {
			tam = tam+1; }
		else if(tecla == 8){
			tam = tam-1; }

		aux= vr.substr(0,3);		
		if(tam > 3) {
		  aux+= '.';
		}
		aux+= vr.substr(3,3);
		if(tam > 6) {
		  aux+= '.';
	    }
		aux+= vr.substr(6,3);
		if(tam > 9) {
		  aux+= '-';
	    }
		aux+= vr.substr(9);

		obj.value= aux;
		sai = false;
	}

// Retorna true se a string for um CPF válido.
	function isCPF(obj) {
		var ret= true;
		var CPF= obj.value;
		CPF = CPF+"";
		if(CPF.length > 0) {
//			CPF= CPF.replace(/\./g,"");
//			CPF= CPF.replace(/-/g,"");
			CPF= substitui(CPF,'-.','');
			var I='', Soma='', Digito='', CalcCPF='', S1='', S2='', B='', C='';

			S1 = CPF;
			if(S1.length != 11) { ret = false; } //{ Não é CPF, pois não são 11 dígitos }
			else {
		//  { Teste se os 11 díg. são iguais }
				B = true;
				C = S1.substr(0,1);
				for(I = 1; I < 11; I++) {
				    if((B) && (S1.substr(I,1) == C)) { B = true; }
					else { B = false; }
					C = S1.substr(I,1);	}
				if(B == true) { ret = false; } //{ Todos díg. iguais }
				else {
					CalcCPF = S1.substr(0, 9);
			//  { Cálculo do 1º dígito }
					Soma = 0;
					for(I = 0; I < 9; I++) {
					    Soma = Soma + (CalcCPF.substr(I, 1)*1) * (11 - I - 1); }
					Digito = 11 - (Soma % 11);
					if((Digito == 10) || (Digito == 11)) { CalcCPF = CalcCPF + '0'; }
					else { CalcCPF = CalcCPF + Digito; }

			//  { Cálculo do 2º dígito }
					Soma = 0;
					for(I = 0; I < 10; I++) {
					    Soma = Soma + (CalcCPF.substr(I, 1)*1) * (12 - I - 1); }
					Digito = 11 - (Soma % 11);
					if((Digito == 10) || (Digito == 11)) { CalcCPF = CalcCPF + '0'; }
					else { CalcCPF = CalcCPF + Digito; }

					if(CalcCPF != S1) { ret = false; }
				} //{ Nem todos díg. iguais }
			} //{ É CPF, pois são 11 dígitos }
		} //{ CPF.length > 0 }
		if(ret == false) { erro(obj,"CPF inválido!"); }

		return ret;
	}

// Elimina não-dígitos.
	function filtra(obj, code) {
		if(code == 9) {
			tab = true; }
		var vr = obj.value;
		tam = vr.length;
		var aux = vr.substr(tam-1, 1);
		var tecla1 = aux.charCodeAt(0);
		if(tecla1 < 48 || tecla1 > 57) {
			obj.value = vr.substr(0, tam-1); }
		aux = vr.substr(0, 1);
		if (aux != '(') {
			tecla1 = aux.charCodeAt(0);
			if(tecla1 < 48 || tecla1 > 57) {
				obj.value = vr.substr(1, tam-1); }
		}
	}

// Limita o tamanho do textarea.
	function limite(obj, max) {
		var vr = obj.value;
		tam = vr.length;
		if(tam > max) {
			obj.value = vr.substr(0, max); }
	}

// Retorna somente digitos.
	function sodigitos(str)  
	{
		var digitos = "1234567890";
		var res= '';
		for (i=0; i < str.length; i++) { 
			C= str.substr(i,1);
			if (digitos.indexOf(C,0) >= 0) {
				res = res + C; }  
		}
		return res;
	}

// Substitui todas as ocorrencias de caracteres contidos 'ant' por 'novo'.
	function substitui(str,ant,novo)  
	{
		var res= '';
		for (i=0; i < str.length; i++) { 
			C= str.substr(i,1);
			if (ant.indexOf(C,0) >= 0) {
				res = res + novo; }			
			else {
				res = res + C; }
		}
		return res;
	}

// Retorna um array com os elementos de 'str' separados pelos elementos de 'sep'.
	function separa(str,sep)  
	{
		var ind= 0;
		var n= 0;	// tamanho do array
		for (i=0; i < str.length; i++) { 
			C= str.substr(i,1);
			if (sep.indexOf(C,0) >= 0) {
				n++; }
		}
		var array = new initArray(n+1);
		for (i=0; i < str.length; i++) { 
			C= str.substr(i,1);
			if (sep.indexOf(C,0) >= 0) {
				ind++; }
			else {
				array[ind] = array[ind] + C; }
		}
		return array;
	}

	function initArray(t) {
		this.length = t;
		for (var i=0; i<t; i++) {
			this[i] = '';
		}
	}

// Emite mensagem de erro na primeira vez.	
	function erro(obj,msg) {
		if (!sai) { 
			alert(msg);
			obj.focus(); }
		sai = true;
		return false;		
	}


	function verificaMenorQue(obj, valor) {
		if (numero(obj.value) > valor)
			if (valor==0)
				return erro(obj, "As quantidades previstas para este nível já estão completas. Para inserir mais, altere a quantidade do nível superior.");
			else 
				return erro(obj, "Este número deve ser menor ou igual a "+ valor);
	} 

	function verificaMaiorQue(obj, valor) {
		if (numero(obj.value) < valor)
		return erro(obj, "Este número deve ser maior ou igual a "+ valor);
	} 

	function numero(str) {
		var tmp = str.replace('.', '');
		return eval(tmp.replace(',', '.'));
	}	

	function obrigatorio(campo, name) {	
		if (!document.forms['formDefault'][campo]) {
			return true;
		}
		else {
			if (document.forms['formDefault'][campo].type == "select-one") {
				var sel = document.forms['formDefault'][campo].selectedIndex;
				if (document.forms['formDefault'][campo].options[sel].value == "") {
					window.alert("Preenchimento de "+ name + " obrigatório.");
					document.forms['formDefault'][campo].focus();
					return false;
				} else {
					return true;
				}
			}
			if (document.forms['formDefault'][campo].value == "") {
				window.alert("Preenchimento de "+ name + " obrigatório.");
				document.forms['formDefault'][campo].focus();
				return false;
			}
			if (!document.forms['formDefault'][campo].value) {
				for (var i=0; i<document.forms['formDefault'][campo].length; i++) {
					if (document.forms['formDefault'][campo][i].checked) {
						return true;
					}
				}
				window.alert("Preenchimento de "+ name + " obrigatório.");
				document.forms['formDefault'][campo][0].focus();
				return false;
			}
		}
		return true;
	}

	function obrigatorioForm(form, campo, name) {
		if (form[campo].value == "") {
			window.alert("Preenchimento de "+ name + " obrigatório.");
			form[campo].focus();
			return false;
		}
		return true;
	}

	function restricaoData(campo, name, restricao, dataRefValue) {
		dataUsuarioValue = document.forms['formDefault'][campo].value;
		dataUsuario = new Date(dataUsuarioValue.substring(6), dataUsuarioValue.substring(3,5)-1, dataUsuarioValue.substring(0,2));
		dataRef = new Date(dataRefValue.substring(6), dataRefValue.substring(3,5)-1, dataRefValue.substring(0,2));

		if (restricao == "naoFutura") {
			if (dataRef.getTime() < dataUsuario.getTime()) {
				window.alert("O campo "+ name + " não pode ter uma data mais recente que " + dataRefValue);
				document.forms['formDefault'][campo].focus();
				return false;
			}
		} else 
		if (restricao == "naoPassada") {
			if (dataRef.getTime() > dataUsuario.getTime()) {
				window.alert("O campo "+ name + " não pode ter uma data mais antiga que " + dataRefValue);
				document.forms['formDefault'][campo].focus();
				return false;
			}
		}
		return true;
	}

	function newWindow(url, name, width, height) {
		window.open(url, name, "height="+height+",width="+width+",scrollbars=yes,status=no");
	}

/**
 * Scripts de atualização de campos do Formulário
 */

// Descobre qual a lista procurando pelo código pai
function encontraCampo(list,form) {
	var campo = new Array();
	var length = 0;
	if (form==null) {
		var oform = document.forms['formDefault'];		
	} else {
		var oform = document.forms[form];	
	}
	for (var i=0; i<oform.length; i++) {
		if (oform[i].getAttribute('pai') && oform[i].getAttribute('pai').indexOf(list)>=0) {
			campo.length = length+1;
			campo[length] = oform[i];
			length++;
		}
	}
	return campo;
}

// Adiciona novo ítem na lista
function addItem(list,name,value,form) {
	var campoMutante = encontraCampo(list,form);
	for (var i=0; i<campoMutante.length; i++)
	{
		campoMutante[i].options[campoMutante.length]= new Option(name,value);
	}
}

// Edita Item da Lista
function editItem(list,name,value,form) {
	var campoMutante = encontraCampo(list,form);
	for (var i=0; i<campoMutante.length; i++)
	{
		var selectedindex=campoMutante[i].selectedIndex;
		for (var editedindex=0; editedindex<campoMutante[i].length; editedindex++) {
			if (campoMutante[i].options[editedindex].value==value) {
				campoMutante[i].options[editedindex]= new Option(name,value);
				campoMutante[i].options[selectedindex].selected=true;
			}
		}
	}
}

// Remove Item da Lista
function removeItem(list,value,form)
{
	var campoMutante = encontraCampo(list,form);
	for (var i=0; i<campoMutante.length; i++)
	{
		for (var deletedindex=0;
			 (deletedindex<campoMutante[i].length && campoMutante[i].options[deletedindex].value!=value);
			 deletedindex++);
		campoMutante[i].options[deletedindex]=null;
	}
}

// Abre nova Janela com o Pai
function abrePai(url, campo_pai) {
	var novaJanela = window.open( url, campo_pai, 'status,resizable,scrollbars,width=650,height=500')
}

// Re-cria os componentes de uma lista com os valores Passados
function atualizaLista(list, codigo, valor, form) {
	var campoMutante = encontraCampo(list,form);
	for (var j=0; j<campoMutante.length; j++)
	{
		campoMutante[j].length = codigo.length;
		for (var i=0; i<campoMutante[j].length; i++) {
			campoMutante[j][i] = new Option(valor[i], codigo[i]);
		}
		campoMutante[j].selectedIndex=0;
	}
}

// Re-cria os componentes de uma lista com os valores Passados por Nome.
function atualizaListaPorNome(nome, codigo, valor, form) {
	var oform = document.forms['formDefault'];
	for (var i=0; i<oform.length; i++) {
		if(oform[i].name == nome) {
			var sel = oform[i];
			sel.length = 1;
			for (var j=0; j<codigo.length; j++) {
				sel[j] = new Option(valor[j], codigo[j]);
			}
			sel.selectedIndex=0;
			break;
		}
	}
}

function enableSelects() {
	var divs = document.getElementsByTagName("SELECT");
	for (i=0; i<divs.length; i++){
		elem = divs[i];
		elem.disabled = false;
	}
	return true;
}
// Preenche campos date_between
function preenchedata(campo, option) {
  var x = option.indexOf(":");
  var y = option.lastIndexOf(":");
  document.getElementById(campo+"_INI").value=option.substring(x+1,y);
  document.getElementById(campo+"_FIM").value=option.substring(y+1);
}

  function desfazselect(campo) {
    document.getElementById(campo+"_OPT").options[0].selected = true;
  }

  function showHiddenFiltros() {
    div_mae = document.getElementById("hiddenFiltros");
    botao = document.getElementById("buttonHiddenFiltros");
    if(div_mae.style.display=="none") {
      div_mae.style.display="";
      botao.value="Menos Filtros";
    } else {
      if(div_mae.style.display=="") {
        div_mae.style.display="none";
        botao.value="Mais Filtros";
      }
    }
  }

