	
	function formPost ( idFormulario ) {		
		if ( validar( idFormulario ) ) {
			document.forms[idFormulario].submit();			
		}		
	}
	
	//
	
	function trim(sTexto) {
		var sTextoSemEspacos
		sTextoSemEspacos = lTrim(sTexto);
		sTextoSemEspacos = rTrim(sTextoSemEspacos);
		return sTextoSemEspacos;
	}
	
	function lTrim(sTexto) {
		var objString
		var iCont
		var sTextoSemEspacos
		sTextoSemEspacos = ""
		objString = new String(sTexto);
		for (iCont=0; iCont < objString.length; iCont++) 
		{
			if (objString.charAt(iCont) != " ")
			{
	     		sTextoSemEspacos = objString.substring(iCont,objString.length)
				return sTextoSemEspacos;
			}
		}  
		return sTextoSemEspacos;
	}
	
	function rTrim(sTexto) {
		var objString
		var iCont
		var sTextoSemEspacos
		sTextoSemEspacos = ""
		objString = new String(sTexto);
		for (iCont=objString.length -1; iCont >= 0; iCont--) 
		{
			if (objString.charAt(iCont) != " ")
			{
				sTextoSemEspacos = objString.substring(0, iCont +1);
				return sTextoSemEspacos;
			}
		}  
		return sTextoSemEspacos;
	}
	
	//
	
	function checaValorMinimo ( objetoCampo, valorMinimo ) {
		var objetoValor;
		objetoValor = trim( objetoCampo.value );
		if (objetoValor.length > 0) {
			if (objetoValor.length < valorMinimo) {
				objetoCampo.focus();
			}
		}
	}
	
	//

	function validar ( nomeFormulario ) {			
		var formulario = document.forms[nomeFormulario];
		principal :
		for (i=0;i<formulario.length;i++) {				
			try { 
				var validacoes = formulario.elements[i].validar.split(',');
				switch (formulario.elements[i].tagName) {
					case "TEXTAREA" :						   
						for (j=0;j<validacoes.length;j++) {					
							switch (validacoes[j]) {
								case "vazio" :	
									if (!validarVazio(formulario.elements[i])) {										
										alert("O campo " + formulario.elements[i].label.toUpperCase() + " deve ser preenchido.");
										formulario.elements[i].focus();
										formulario.elements[i].value = "";
										return false;
										break principal;										
									}					
									break;
							}							
						}
						break;
					case "INPUT" :
						for (j=0;j<validacoes.length;j++) {
							switch (validacoes[j]) {
								case "vazio" :
									if (!validarVazio(formulario.elements[i])) {
										alert("O campo " + formulario.elements[i].label.toUpperCase() + " deve ser preenchido.");
										formulario.elements[i].focus();
										formulario.elements[i].value = "";										
										return false;
										break principal;										
									}	
									break;	
								case "numero" :
									if (!validarNumero(formulario.elements[i].value)) {										
										alert("O campo " + formulario.elements[i].label.toUpperCase() + " deve conter um número válido.");
										formulario.elements[i].focus();	   
										formulario.elements[i].value = "";										
										return false;
										break principal;										
									}
									break;		
								case "data" :
									if (!validarData(formulario.elements[i].value)) {										
										alert("O campo " + formulario.elements[i].label.toUpperCase() + " deve conter uma data válida.");
										formulario.elements[i].focus();	   
										formulario.elements[i].value = "";										
										return false;
										break principal;										
									}
									break;		
								case "minimo5" :
									if (!trim(formulario.elements[i].value) == "") {
										if ((trim(formulario.elements[i].value)).length < 5) {
											alert("O campo " + formulario.elements[i].label.toUpperCase() + " deve conter no mínimo 5 caracteres.");
											formulario.elements[i].focus();	 											
											return false;
											break principal;										
										}
									}	
									break;			
							}						
						}
						break;					
					case "SELECT" :
						for (j=0;j<validacoes.length;j++) {
							switch (validacoes[j]) {
								case "vazio" :
								if (!validarVazio(formulario.elements[i])) {									
									alert("O campo " + formulario.elements[i].label.toUpperCase() + " deve ter uma opção selecionada.");
									formulario.elements[i].focus();
									return false;
									break principal;										
								}
								break;
							}
						}
						break;
				}
			} catch (er) {
				//
			}		
		}
		return true;		
	}
	
	function validarVazio ( obj ) {	
		principal :
		switch (obj.tagName) {
			case "TEXTAREA" :		
				if (trim(obj.value) == "") {
					return false;
				} else {
					return true;
				}				
				break principal;	
			case "INPUT" :		
				switch (obj.type) {
					case "text" :	
						if (trim(obj.value) == "") {
							return false;
						} else {
							return true;
						}				
						break;												
					case "password" :	
						if (trim(obj.value) == "") {
							return false;
						} else {
							return true;
						}				
						break;							
				}
				break principal;				
			case "SELECT" :
				if (obj.selectedIndex < 0) {
					return false;
				} else {
					return true;
				}
				break principal;
		}		
	}
	
	function validarNumero ( valor ) {		
		if (isNaN(valor)) {
			return false;
		} else {
			return true;
		}		
	}	
	
	function validarData ( valor ) {	
        var hoje = new Date();
        var anoAtual = hoje.getFullYear();
        var barras = valor.split("/");
        if (barras.length == 3){
			dia = barras[0];
			mes = barras[1];
			ano = barras[2];
			resultado = (!isNaN(dia) && (dia > 0) && (dia < 32)) && (!isNaN(mes) && (mes > 0) && (mes < 13)) && (!isNaN(ano) && (ano.length == 4) && (ano >= 1900));
			if (!resultado) {
				return false;
			} else {
				return true;
			}
        } else {
	        return false;
        }	
	}		
	
	//
	
	function formataData(val)
	{
   		var pass = val.value;
		var expr = /[0123456789]/;
		for(i=0; i<pass.length; i++){
			var lchar = val.value.charAt(i);
			var nchar = val.value.charAt(i+1);
			if(i==0){
			if ((lchar.search(expr) != 0) || (lchar>3)){
				val.value = "";
			}
			}else if(i==1){
				if(lchar.search(expr) != 0){
					var tst1 = val.value.substring(0,(i));
					val.value = tst1;				
 					continue;			
				}
				if ((nchar != '/') && (nchar != '')){
				 		var tst1 = val.value.substring(0, (i)+1);
						if(nchar.search(expr) != 0) 
							var tst2 = val.value.substring(i+2, pass.length);
						else
							var tst2 = val.value.substring(i+1, pass.length);
						val.value = tst1 + '/' + tst2;
				}
			}else if(i==4){
					if(lchar.search(expr) != 0){
						var tst1 = val.value.substring(0, (i));
						val.value = tst1;
						continue;			
					}
					if	((nchar != '/') && (nchar != '')){
						var tst1 = val.value.substring(0, (i)+1);
						if(nchar.search(expr) != 0) 
							var tst2 = val.value.substring(i+2, pass.length);
						else
							var tst2 = val.value.substring(i+1, pass.length);
						val.value = tst1 + '/' + tst2;
					}
   			}
			if(i>=6){
				if(lchar.search(expr) != 0) {
						var tst1 = val.value.substring(0, (i));
						val.value = tst1;			
				}
			}
		}
		if(pass.length>10)
			val.value = val.value.substring(0, 10);
	 		return true;
	}


