
function somenteNumero(e,id_element){
	var key
	if(window.event) {
	// Atenter o IE
		key = e.keyCode; 
		if (( key < 47 )||( key > 58 )) {
				window.event.returnValue = null; 
				return;
		}		
	}
	else if (e.which) {
	//Atender NetScape.
			key = e.which;
			if (( key < 47 )||( key > 58 )) {
					e.preventDefault();
					return ; 
			}		
	}

}

var downStrokeField;

function autojump(fieldName,nextFieldName,fakeMaxLength)
{
var myForm=document.forms[document.forms.length - 1];
var myField=myForm.elements[fieldName];
myField.nextField=myForm.elements[nextFieldName];

if (myField.maxLength == null)
   myField.maxLength=fakeMaxLength;

myField.onkeydown=autojump_keyDown;
myField.onkeyup=autojump_keyUp;
}

function autojump_keyDown()
{
this.beforeLength=this.value.length;
downStrokeField=this;
}

function autojump_keyUp()
{
if (
   (this == downStrokeField) && 
   (this.value.length > this.beforeLength) && 
   (this.value.length >= this.maxLength)
   )
   this.nextField.focus();
downStrokeField=null;
}

function valida_senha(campo) { 
	if(campo.value.length == 0){
		alert('Senha é um campo obrigatório!');
		campo.focus(); 
		return false; 
	}
	if (!/^[a-zA-Z]{1}[\w\@\&\%\*\-\.\/\:\!\=]{0,250}$/.test(campo.value)) { 
		alert('A senha possui caracteres inválidos, ou não foi iniciada com uma letra!'); 
		campo.focus(); 
		return false; 
	} 
	var i;  
	var num = 0, carac = 0; 
	for (i = 0; i < campo.value.length; i++) { 
		var c = campo.value.charAt(i); 
		if (((c >= "0") && (c <= "9"))){ 
			num++; 
		} 
		if (((c >= "a") && (c <= "z")) || ((c >= "A") && (c <= "Z"))){ 
			carac++; 
		} 
	} 
	if (num < 4 || carac == 0) { 
		alert('A senha deve conter letras e números (mínimo 4 números)!');  
		campo.focus(); 	
		return false; 		
	 } 
	if (/(1234|4321)/.test(campo.value)){ 
		alert('A senha não pode conter os seqüenciais 1234 ou 4321!'); 
		campo.focus(); 
		return false; 
	} 
	s = campo.value 
	hoje = new Date() 
	ano = hoje.getYear() 
	for (f = 0; f <= 0; f++){ 
		n = s.indexOf(ano + f, 0) 
		if (n > -1){ 
			alert('Não é permitido colocar o ano como senha!'); 
			campo.focus(); 
			return false; 
		} 
	} 
	return true; 
} 


function valida_CPF(s){	
	var s;
	var i;
	var c = s.substr(0,9);
	var dv = s.substr(9,2);
	var d1 = 0;
	for (i = 0; i < 9; i++){
		d1 += c.charAt(i)*(10-i);
	}
	if (d1 == 0) return false;
	d1 = 11 - (d1 % 11);
	if (d1 > 9) d1 = 0;
	if (dv.charAt(0) != d1){
		return false;
	}
	d1 *= 2;
	for (i = 0; i < 9; i++){
		d1 += c.charAt(i)*(11-i);
	}
	d1 = 11 - (d1 % 11);
	if (d1 > 9) d1 = 0;
	if (dv.charAt(1) != d1){
		return false;
	}
	return
}


function valida_data(pdata)
{
	//if (ltrim(pdata) != '')	{	
	if (pdata != '')	{			
		if (validate_date(pdata)){
			return true;
		}else{
			return false;
		}
	}else{
		return false;
	}
}

//Função para formatação genérica de campos
function Formatar(fsValor, foForm, foNome, fsFormato) { 

	var piLoop; 
	var psPalavra		= '';
	var psResposta	= ''; 
	var piTamanho		= 0; 
	var pParte_i		= '';
	var pParte_f		= '';
	var intDecimais = 2;
	
	intDecimais = 2;
	
	
	
if (window.event.keyCode != 9 && window.event.keyCode != 16){
	if (fsFormato == "cgc") fsFormato = "cnpj";
		if (window.event.keyCode != 8 &&  window.event.keyCode != 37 && window.event.keyCode != 39 && window.event.keyCode != 46) { 
			for(piLoop = 0; piLoop <= (fsValor.length-1); piLoop++) {
				switch (fsFormato) {
					case 'data': 
						if (fsValor.charAt(piLoop) != '/' && fsValor.charAt(piLoop) >= '0' && fsValor.charAt(piLoop) <= '9')
							psPalavra = psPalavra + fsValor.charAt(piLoop); 
						break; 
          case 'hora': 
            if (fsValor.charAt(piLoop) != ':'  && fsValor.charAt(piLoop) >= '0' && fsValor.charAt(piLoop) <= '9') 
              psPalavra = psPalavra + fsValor.charAt(piLoop); 
            break; 
          case 'telefone': 
            if (fsValor.charAt(piLoop) >= '0' && fsValor.charAt(piLoop) <= '9')
							psPalavra = psPalavra + fsValor.charAt(piLoop); 
            break; 
          case 'moeda': 
            if (fsValor.charAt(piLoop) != ',' && fsValor.charAt(piLoop) >= '0' && fsValor.charAt(piLoop) <= '9')
              psPalavra = psPalavra + fsValor.charAt(piLoop); 
	          break; 
          case 'cpf': 
            if (fsValor.charAt(piLoop) != '.' && fsValor.charAt(piLoop) != '-' && fsValor.charAt(piLoop) >= '0' && fsValor.charAt(piLoop) <= '9')
              psPalavra = psPalavra + fsValor.charAt(piLoop); 
            break; 
          case 'cnpj': 
            if (fsValor.charAt(piLoop) >= '0' && fsValor.charAt(piLoop) <= '9')
              psPalavra = psPalavra + fsValor.charAt(piLoop); 
            break; 
          case 'cnpj_filial': 
            if (fsValor.charAt(piLoop) >= '0' && fsValor.charAt(piLoop) <= '9')
              psPalavra = psPalavra + fsValor.charAt(piLoop); 
            break; 
          case 'cep': 
            if (fsValor.charAt(piLoop) != '-' && fsValor.charAt(piLoop) >= '0' && fsValor.charAt(piLoop) <= '9')
              psPalavra = psPalavra + fsValor.charAt(piLoop); 
            break; 
          case 'numero': 
            if (fsValor.charAt(piLoop) >= '0' && fsValor.charAt(piLoop) <= '9'){
              psPalavra = psPalavra + fsValor.charAt(piLoop); 
            }

            if (fsValor.charAt(piLoop) == '-' && psPalavra == ''){
              psPalavra = psPalavra + fsValor.charAt(piLoop); 
            }
              
            break; 

        } 
      } 
      for(piLoop=0; piLoop <= (psPalavra.length-1); piLoop++) {
				switch (fsFormato) {
					case 'data': 
						if (piLoop == 2) psResposta = psResposta + '/' + psPalavra.charAt(piLoop); 
						if (piLoop == 4) psResposta = psResposta + '/' + psPalavra.charAt(piLoop); 
						if (piLoop != 2 && piLoop != 4) psResposta = psResposta + psPalavra.charAt(piLoop); 
						piTamanho = 10; 
		        break; 
					case 'hora': 
						if (piLoop == 2) 
							psResposta = psResposta + ':' + psPalavra.charAt(piLoop) 
						else 
							psResposta = psResposta + psPalavra.charAt(piLoop); 
							piTamanho = 5; 
						break; 
          case 'telefone': 
							psResposta = psResposta + psPalavra.charAt(piLoop); 
							piTamanho = 9; 
							break; 
          case 'moeda': 
						if (psPalavra.length < 14){
							psResposta = psResposta + psPalavra.charAt(piLoop); 
							piTamanho = 14; 
						}else{
							psResposta = psPalavra;
						}
						break; 
					case 'cpf': 
						if (psPalavra.length < 14){
							psResposta = psResposta + psPalavra.charAt(piLoop); 
							piTamanho = 14; 
						}else{
							psResposta = psPalavra;
						}
						break; 
          case 'cnpj': 
							psResposta = psResposta + psPalavra.charAt(piLoop); 
							piTamanho = 19; 
							break; 
          case 'cnpj_filial':
							psResposta = psResposta + psPalavra.charAt(piLoop); 
							piTamanho = 7; 
							break; 
							
          case 'cep': 
            if (piLoop == 5) psResposta = psResposta + '-' + psPalavra.charAt(piLoop); 
            if (piLoop != 5) psResposta = psResposta + psPalavra.charAt(piLoop); 
            piTamanho = 9;
            break; 
          case 'numero': 
            psResposta = psResposta + psPalavra.charAt(piLoop); 
            piTamanho = 50;
            break; 
        } 
      }

	//--- Formata Moeda
	if (fsFormato == 'moeda' && psResposta.length > intDecimais){
		for(piLoop=intDecimais; piLoop < (psResposta.length); piLoop++){
			pParte_i = psResposta.substring(0, psResposta.length- piLoop );
			pParte_f = psResposta.substring(psResposta.length-piLoop, psResposta.length);
			if (piLoop == intDecimais)
			{
				psResposta = pParte_i + ',' + pParte_f ;
			}
			else
			{
				psResposta = pParte_i + '.' + pParte_f ;
			}
			piLoop = piLoop + 3;
		}
	}
	//--- Fim Formata Moeda
			
	//--- Formata CNPJ
	if (fsFormato == 'cnpj' && psResposta.length > 6){
		//psResposta = psResposta.substring(0, 19);
		pParte_i = psResposta.substring(0, psResposta.length - 2 );
		pParte_f = psResposta.substring(psResposta.length - 2, psResposta.length);
		psResposta = pParte_i + '-' + pParte_f ;
		pParte_i = psResposta.substring(0, psResposta.length - 7 );
		pParte_f = psResposta.substring(psResposta.length - 7, psResposta.length);
		psResposta = pParte_i + '/' + pParte_f ;
		for(piLoop=11; piLoop < (psResposta.length); piLoop++){
			pParte_i = psResposta.substring(0, psResposta.length- piLoop );
			pParte_f = psResposta.substring(psResposta.length-piLoop, psResposta.length);
			psResposta = pParte_i + '.' + pParte_f ;
			piLoop = piLoop + 3;
		}
	}
	//--- Fim Formata CNPJ
			
	//--- Formata CNPJ_FILIAL
	if (fsFormato == 'cnpj_filial' && psResposta.length > 4){
		psResposta = psResposta.substring(0, 7);
		pParte_i = psResposta.substring(0, psResposta.length - 2 );
		pParte_f = psResposta.substring(psResposta.length - 2, psResposta.length);
		psResposta = pParte_i + '-' + pParte_f ;
	}
	//--- Fim Formata CNPJ_FILIAL

	//--- Formata Telefone
	if (fsFormato == 'telefone' && psResposta.length > 4){
		psResposta = psResposta.substring(0, 8);
		pParte_i = psResposta.substring(0, psResposta.length - 4 );
		pParte_f = psResposta.substring(psResposta.length - 4, psResposta.length);
		psResposta = pParte_i + '-' + pParte_f ;
	}
	//--- Fim Formata Telefone
		
	//--- Formata CPF
	if (fsFormato == 'cpf' && psResposta.length > 2){
		psResposta = psResposta.substring(0, 11);
		pParte_i = psResposta.substring(0, psResposta.length - 2 );
		pParte_f = psResposta.substring(psResposta.length - 2, psResposta.length);
		psResposta = pParte_i + '-' + pParte_f ;
			
		for(piLoop=6; piLoop < (psResposta.length); piLoop++){
			pParte_i = psResposta.substring(0, psResposta.length- piLoop );
			pParte_f = psResposta.substring(psResposta.length-piLoop, psResposta.length);
			psResposta = pParte_i + '.' + pParte_f ;
			piLoop = piLoop + 3;
		}
	}
	//--- Fim Formata CPF

	if (fsFormato == 'moeda'){
		document.forms[foForm].elements[foNome].value = psResposta.substring(0, psResposta.length);
	}else{
		document.forms[foForm].elements[foNome].value = psResposta.substring(0, piTamanho);
	}
} 
}
} 

function validate_date(sdata)
{
day2 = sdata.substr(0,2);
month2 = sdata.substr(3,2);
year2 = sdata.substr(6,4);

if (year2 < 1900){
	return false;
}


if ((sdata.substr(2,1) != "/") || (sdata.substr(5,1) != "/"))
{
	day2 = "";
	month2 = "";
	year2 = "";
}

var DayArray = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
var MonthArray = new Array("01","02","03","04","05","06","07","08","09","10","11","12");
var inpDate = day2 + month2 + year2;
var filter=/^[0-9]{2}[0-9]{2}[0-9]{4}$/;

//Check ddmmyyyy date supplied
if (! filter.test(inpDate))
  {
  return false;
  }
/* Check Valid Month */
filter=/01|02|03|04|05|06|07|08|09|10|11|12/;
if (! filter.test(month2))
  {
  return false;
  }
/* Check For Leap Year */
var N = Number(year2);
if ( ( N%4==0 && N%100 !=0 ) || ( N%400==0 ) )
  	{
   DayArray[1]=29;
  	}
/* Check for valid days for month */
for(var ctr=0; ctr<=11; ctr++)
  	{
   if (MonthArray[ctr]==month2)
   	{
      if (day2<= DayArray[ctr] && day2 >0 )
        {
        inpDate = day2 + '/' + month2 + '/' + year2;
        return true;
        }
      else
        {
        return false;
        }
   	}
   }
}

