/*  
	Desenvolvido por Enjoy Software Ltda.
	Versao 1.0 - 07/04/2001
	www.enjoysoftware.com.br
*/


var reEmail 	= /^.+\@.+\..+$/ 
var reData	= /^(([0][1-9])|([1,2]\d)|([3][0,1]))\W?(([0][1-9])|([1][0-2]))\W?([1-9][0-9]{1,3})$/ 
var fsData	= "$1/$5/$8" 
var feData	= "$1$5$8" 
var reMMAAAA	= /^(([0][1-9])|([1][0-2]))\W?([1-9]\d{3})$/ 
var fsMMAAAA	= "$1/$4" 
var feMMAAAA	= "$1$4" 
var reDDMMAAAA	= /^(([0][1-9])|([1,2]\d)|([3][0,1]))\W?(([0][1-9])|([1][0-2]))\W?([1-9][0-9]{3})$/ 
var fsDDMMAAAA	= "$1/$5/$8" 
var feDDMMAAAA	= "$1$5$8" 
var reDDMMAA	= /^(([0][1-9])|([1,2]\d)|([3][0,1]))\W?(([0][1-9])|([1][0-2]))\W?([0-9][0-9]{1})$/ 
var fsDDMMAA	= "$1/$5/$8" 
var feDDMMAA	= "$1$5$8" 
var reDia	=/^(([0]?[1-9])|([1,2]\d)|([3][0,1]))$/  
var reMes	=/^(([0]?[1-9])|([1][0-2]))$/  
var reAno4	=/^[1-9][0-9]{3}$/ 
var reAno2	=/^[0-9][0-9]{1}$/ 

// usar no onBlur - inpede passagem para outro campo se nao bate com formato 
//  
function impVInput (input,repadrao,msgerr,bFormatar,aIns){ 
	if(repadrao){ 
 		if (input.value!=""){ 
			if(!repadrao.test(input.value)){ 
				if(msgerr){alert(msgerr)} 
				input.select();input.focus(); 
				return false 
			} 
			else{ 
				if(bFormatar){ 
				input.value =impFormat(input.value,repadrao,aIns) 
			    } 
			} 
		} 
		else{
			if(msgerr){
				alert(msgerr);
				return false;
			} 
		}
	} 
	return true 
} 
//substitui todas as ocorrencias de uma string expressão regular por outra 
function impFormat(instr, reBusca, sTroca,umavez,ignorecase) { 
	var x= String(typeof reBusca); // Se vier string - converte em expressão regular para aplicar 'g'=global 
    if (x.toUpperCase().indexOf('STRING')>=0){  
	  	reBusca = new RegExp(reBusca,((ignorecase)?"i":"")+((umavez)?"":"g")) 
	} 
    return instr.replace(reBusca,sTroca); 
} 



// Valida datas 
// true = ok 
// false = com erro 
// 0 = vazio 
  function impValData(field,bmsg,itipo) { 
  	if (field.value==""){
		alert("Informe uma data valida.");
		return false;
	}; 
    var atipo=["data","dd/mm/aa","dd/mm/aaaa"] 
    itipo=(itipo)?itipo:0 //0=qualquer, 1=dmaa,2=dmaaaa    
	var bDDMMAA 	=false 
	var bDDMMAAAA	=false 
	if (itipo==0||itipo==1) bDDMMAA = reDDMMAA.test(field.value) 
	if (itipo==0||itipo==2)bDDMMAAAA = reDDMMAAAA.test(field.value) 
	if ((!bDDMMAA)&&(!bDDMMAAAA)){// formato não reconhecido 
	 	 if(bmsg) alert ("Conteúdo informado não reconhecido como sendo "+atipo[itipo]+"\nVerifique sua digitação") 
		 field.select();field.focus(); 
		 return false  
	 } 
  	var dia0,mes0,ano0 
  	var auxData; 
  	var dData="" 
	if (bDDMMAAAA) dData = impFormat(field.value,reDDMMAAAA,fsDDMMAAAA); 
  	else dData = impFormat(field.value,reDDMMAA,fsDDMMAA); 
  	dma=dData.split("/") 
	if (bDDMMAA){dma[2]= (dma[2]<20)?parseInt(dma[2])+2000:parseInt(dma[2])+1900} // janelamento de data 
  	dData=dma.join("/") 
	var obj = new Date(dma[2], dma[1]-1, dma[0])//cria data no browser 
  	dia0 = "00" + obj.getDate() 
  	mes0 = "00" + (obj.getMonth()+1) 
  	ano0 = "0000" + obj.getFullYear() 
	 
  	dia0 = dia0.substring(dia0.length-2) 
  	mes0 = mes0.substring(mes0.length-2) 
  	ano0 = ano0.substring(ano0.length-4) 
	 
  	auxData = dia0 + "/"+  mes0 + "/"+ ano0 
	if (auxData != dData) { 
		if (bmsg) alert("Data incorreta\nVerifique sua Digitação") 
		field.select();field.focus() 
		return false 
	} 
  	else {  field.value=dia0+"/"+mes0+"/"+((itipo==1)?ano0.substring(ano0,2):ano0) 
			return true} 
  }

// Testa se campo vazio
 
 function impValPreenchido(campo,msg) {  
  	if (campo.value==""){ 
		alert(msg); 
		return false; 
	} else {
		return true;
	}  
  }



