

var timed = 0;
var scrollGo = false;
var delay=100; 
var space=100;

function changeCase(frmObj) {
	var index;
	var tmpStr;
	var tmpChar;
	var preString;
	var postString;
	var strlen;
	tmpStr = frmObj.value.toLowerCase();
	strLen = tmpStr.length;
	if (strLen > 0)  {
		for (index = 0; index < strLen; index++)  {
			if (index == 0)  {
				tmpChar = tmpStr.substring(0,1).toUpperCase();
				postString = tmpStr.substring(1,strLen);
				tmpStr = tmpChar + postString;
			}
			else {
				tmpChar = tmpStr.substring(index, index+1);
				if (tmpChar == " " && index < (strLen-1))  {
					tmpChar = tmpStr.substring(index+1, index+2).toUpperCase();
					preString = tmpStr.substring(0, index+1);
					postString = tmpStr.substring(index+2,strLen);
					tmpStr = preString + tmpChar + postString;
				 }
			}
		}
	}
	frmObj.value = tmpStr;
}


function ChecaEmail(EMAIL) {
	size=EMAIL.value.length;
	i=1;
	flag=0;
	flagA=0;
	depoisA=0;
	depoisP=0;
	flagP=0;
	while (i<=size)
	{
		if (EMAIL.value.charAt(i)=="@")	{
			flagA=1;
		}
		if (flagA==1)	{
			depoisA++;
		}
		if ((EMAIL.value.charAt(i)==".") && flagA==1) {
			flagP=1;
		}
		if (flagP==1)	{
			depoisP++;
		}
		i++;
	}
	if ( flagA==1 && flagP==1 && (depoisA > 3) && (depoisP > 3) )	{
		flag=1;
		return false
		}

	if (flag==0) {
		return true
	}
}

function fun_TestaDoc (s) {
	var vaRetCPF = fun_ValidarCPF(s); 
	var vaRetCGC = fun_ValidarCGC(s); 
	if( ( vaRetCPF==false) && ( vaRetCGC==false) )  {
	   alert("Campo CGC/CPF inválido ! Entre valores corretos." ); 
	   return false; 
	} 
} 

function fun_CamposIguais(s,r,parCampo) {        
	 if ( s != r ) 
		{ return false; }  
	 else   
		{ return true;  } 
 } 

function fun_ValidarRG(s) 
{ 
 for (var vaAux =0; vaAux <s.length-1; vaAux ++) 
 { 
   var c = s.charAt(vaAux); 
   var vaAux1 = ( (c >= "0") && (c <= "9") ); 
   if( ! vaAux1 ) 
     { alert("Entrada inválida ! Digite o RG corretamente."); return false; } 
 }
 return true; 
} 

function fun_ValidarCGC(s)  
{  
 if (s.length < 6) { return false; }
 var varFirstChr = s.charAt(0);  
 var vlMult,vlControle,s1, s2 = ""; 
 var i,j,vlDgito,vlSoma = 0; 
 var vaCharCPF=false;
 for ( var i=0; i<=13; i++ )  
 {   
   var c = s.charAt(i);  
   if( ! (c>="0")&&(c<="9") ) { return false; } 
   if( c!=varFirstChr ) { vaCharCPF = true; } 
 }   
 if( ! vaCharCPF ){ return false; }  
 s1 = s.substring(0,12);  
 s2 = s.substring(12,15); 
 vlMult = "543298765432"; 
 vlControle = ""; 
 for ( j=1; j<3; j++ )   
 {  
  vlSoma = 0; 
  for ( i=0; i<12; i++ ) 
    { vlSoma += eval( s1.charAt(i) )* eval( vlMult.charAt(i) );} 
    if( j == 2 ){ vlSoma += (2 * vlDgito); }  
    vlDgito = ((vlSoma*10) % 11); 
    if( vlDgito == 10 ){ vlDgito = 0; } 
    vlControle = vlControle + vlDgito; 
    vlMult = "654329876543"; 
 }   
 if( vlControle != s2 ) 
 { return false }  
 else 
 { return true }  
}  

function fun_ValidarCPF(s) 
{ 
 var vaCharCPF=false;
 var varFirstChr = s.charAt(0); 
 if (s.length < 6) { return false; }
 for ( var i=0; i<=10; i++ ) 
 {  
   var c = s.charAt(i); 
   if( ! (c>="0")&&(c<="9") ) 
   { return false; } 
   if( c!=varFirstChr ) vaCharCPF = true;  
 }  
 if( ! vaCharCPF ){ return false; } 
 soma=0; 
 for ( i=0; i<9; i++ ) { soma += (10-i) * ( eval(s.charAt(i)) ); }  
 digito_verificador = 11-(soma % 11); 
 if ( (soma % 11) < 2 ) digito_verificador = 0; 
 if ( eval(s.charAt(9)) != digito_verificador ) 
 { return false; }  
 soma=0; 
 for ( i=0; i<9; i++ ) { soma += (11-i) * ( eval(s.charAt(i)) ); } 
 soma += 2 * ( eval(s.charAt(9)) ); 
 digito_verificador = 11-(soma % 11); 
 if ( (soma % 11) < 2 ) digito_verificador = 0; 
 if ( eval(s.charAt(10)) != digito_verificador ) 
 { return false; }  
 return true; 
} 




function fun_CampoVazio(s,parCampo) 
{        
  for (var vaAux=0; vaAux<s.length; vaAux++) 
  { var c = s.charAt(vaAux); if ( c!=" " ) return false; }  
  return true; 
} 



function notSelected(s) 
{   
	//alert(s.selectedIndex);
	if (s.selectedIndex == -1 || s.selectedIndex == 0) return true
	else return false
} 


function fun_SomenteTexto(s) 
{ 
 for (var vaAux =0; vaAux <s.length; vaAux ++) 
 { 
  var c = s.charAt(vaAux); 
  var vaAux1 = ( (c>="a") && (c<="z") ); 
  var vaAux2 = ( (c>="A") && (c<="Z") ); 
  var vaAux3 = ( (c==" ") );  
  if( ( vaAux1 || vaAux2 || vaAux3 ) == false )  
  { alert("Entrada inválida ! Não utilize acentuação, pontuação, números ou quaisquer caracter especial diferente de letra."); return false; }  
 }        
 return true; 
} 
function fun_TextoNumero(s) 
{ 
 for (var vaAux =0; vaAux <s.length; vaAux ++) 
 { 
  var c = s.charAt(vaAux); 
  var vaAux1 = ( (c>="a") && (c<="z") ); 
  var vaAux2 = ( (c>="A") && (c<="Z") ); 
  var vaAux3 = ( (c == " ") || (c == ",") || (c == ".") || (c == "-") ); 
  var vaAux4 = ( (c >= "0") && (c <= "9") );  
  if( ( vaAux1 || vaAux2 || vaAux3 || vaAux4 ) == false )  
  { alert("Entrada inválida ! Não utilize acentuação, pontuação ou quaisquer caracter especial diferente de letra."); return false; }  
 }        
 return true; 
} 


function fun_ValidarTamanho(s,n)
{
	if (s.length < n) return true
	else return false
}


function fun_SomenteNumero(s) 
{ 
 for (var vaAux =0; vaAux <s.length; vaAux ++) 
 { 
  var c = s.charAt(vaAux); 
  var vaAux1 = ( (c >= "0") && (c <= "9") );        
  if( ! vaAux1 )  
  { alert("Entrada inválida ! Utilize somente dígitos."); return false; }  
 }        
 return true; 
} 


function fun_TextoSemEspaco(s) 
{ 
 for (var vaAux =0; vaAux <s.length; vaAux ++) 
 { 
   var c = s.charAt(vaAux); 
   var vaAux1 = ( (c>="a") && (c<="z") ); 
   var vaAux2 = ( (c>="A") && (c<="Z") ); 
   var vaAux3 = ( (c >= "0") && (c <= "9") ); 
   if( ( vaAux1 || vaAux2 || vaAux3 ) == false )  
   { alert("Entrada invalida"); 
     return false; 
   }  
 }        
 return true; 
} 


function isCreditCard(st)  {
 var valert = 0
 if (st.length > 4) 
 {
  var filtro = (st.charAt(0))+(st.charAt(1))+(st.charAt(2))+(st.charAt(3)) 
  if ( (filtro == 4775) || (filtro == 4943) || (filtro == 4552) || (filtro ==  5901) || (filtro ==  4154) || (filtro == 4547) || (filtro == 5906) || (filtro == 5016) || (filtro == 4407) || (filtro == 4938) || (filtro == 4552) || (filtro == 4644) ) 
  { valert = 1; return false; } 
 } 
 if (st.length > 19)
 return (false);
 sum = 0; mul = 1; l = st.length;
 for (i = 0; i < l; i++)
 {digit = st.substring(l-i-1,l-i);
  tproduct = parseInt(digit ,10)*mul;
  if (tproduct >= 10)
   sum += (tproduct % 10) + 1;
  else
   sum += tproduct;
   if (mul == 1)
     mul++;
   else
     mul--;
  }
  if ((sum % 10) == 0)
    return (true);
  else
    { valert = 1; return false; }  

  if(valert == 1)
  { alert("O número de cartão digitado nao e válido, tente novamente!"); return false; }  
}


function fun_ValidarData(s)  {        
 var vaErro = false; 
 for (var vaAux =0; vaAux <s.length; vaAux ++) 
 { 
   var c = s.charAt(vaAux); 
   var vaAux1 = ( (c >= "0") && (c <= "9") ); 
   var vaAux2 = ( (c == "/") ); 
   if( ! ( vaAux1 || vaAux2 ) )  
   { alert("Data inválida, utilize o formato dd/mm/aaaa !");
     return false; 
   } 
   if (s.length < 10 || s.length > 10) 
   { alert("Data inválida, utilize o formato dd/mm/aaaa !");
     return false; 
   } 
   
 }        
 var vaBarraD = s.indexOf("/"); 
 var vaBarraM = s.substring(vaBarraD+1,s.length).indexOf("/"); 
 vaBarraM = 1 + vaBarraD + vaBarraM       
 if( (vaBarraD!=1)&&(vaBarraD!=2) || (s.length<6) || (vaBarraM-vaBarraD<2) ) 
 { vaErro = true; }       
 else 
 { 
 var vaDia = s.substring(0,vaBarraD);   

 if((vaDia == "08") || (vaDia == "09"))
 {vaErro = false;}
 else
 { 
  if((eval(vaDia) < 1) || (eval(vaDia) > 31))
  {vaErro = true;}
 }

 var vaMes = s.substring(vaBarraD+1,vaBarraM);

 if ((vaMes == "08") || (vaMes == "09"))
 {vaErro = false;}
 else
 {
  if((eval(vaMes) < 1) || (eval(vaMes) > 12))
  {vaErro = true;}
 }    
} 

if( vaErro )  
 { alert("Data inválida, utilize o formato dd/mm/aaaa !"); 
   return false;
 }  
else 
 {
  return true;
 } 
} 


function fun_Data_Card(s, t) 
{
    for (var vaAux =0; vaAux <s.length; vaAux ++) 
    { 
      var c = s.charAt(vaAux); 
      var vaAux1 = ( (c >= "0") && (c <= "9") );        
      if( ! vaAux1 )  
      { alert("Utilizar apenas números"); return false; }  
    } 
    if ( s.length != 4 ) 
         { alert("Digite o mês e o ano"); return false; }  
    var mes = ( (s.charAt(0)) )  +  ( (s.charAt(1)) ) 
    if ( ( eval(mes) == 00 ) || ( eval(mes) > 12 ) ) 
         { alert("O mês digitado não é válido"); return false; }  
    var ano = ( (s.charAt(2)) )  +  ( (s.charAt(3)) ) 
    if ( eval(ano) > 90 ) 
       { ano = eval(ano) + 1900 } 
    else 
       { ano = eval(ano) + 2000 } 
    var varDATA = ano + mes 
    if ( (eval(varDATA)) < t ) 
       { alert("A data de vencimento não pode ser menor que a data atual"); return false; } 
return true; 
} 

function alertaPreenchimento(campo,nome) {
    alert("Preencha o campo '" + nome + "'.");
	getObject(campo).focus();
	getObject(campo).select();
	return;
}

function alertaErro(campo,nome) {
    alert("O campo '" + nome + "' foi preenchido incorretamente!");
	getObject(campo).focus();
	getObject(campo).select();
	return;
}

function completaZeroEsquerda( campo, tamanho) {
	
	//captura do texto
	var strText = campo;
	
	/*verifica se o campo está vazio e pede
	a confirmação do valor*/
	
	if (strText == "" ) {
		for (i=0; i<tamanho;i++)
		campo += "0";
	}else{ //há alguma string no campo
		//tamanho da string
		//alert(strText);
		var intTamStr = strText.length;
		//alert(intTamStr);
		/*verifica se o tamanho da string eh 
		menor ou igual ao tamanho que eh pedido
		na funcão*/
		if (intTamStr <= tamanho){//executa a adaptação do texto
			//quantos zeros serão incluídos no texto
			var intTam = parseInt(tamanho) - intTamStr;
			//preenchimento do campo
			for (i=0; i<intTam; i++){
				strText = "0" + strText;
			}
			//atribuição da variável ao campo
			return strText;
		}else{ 
			// o texto eh maior do que eh pedido na função
			return "invalido";
		}
	}

}

// ******************************************************
function mascaraCep(objeto, e){
	// objeto é o objeto do formulario ex: formulario.nomecampo
	// e = evento passa como event
	// Ex: mascaraCep(this, event)
	
	var whichCode = (window.Event) ? e.which : e.keyCode;
	var alphaCheck = " abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ/-";
	if (alphaCheck.indexOf(objeto) >= 1) {
		if (isNav4) {
			objeto.value = "";
			objeto.focus();
			objeto.select();
			return false;
		} else {
			objeto.value = objeto.value.substr(0, (objeto.value.length-1));
			return false;
	   }

	}
			
	var strCheck = '47,48,49,50,51,52,53,54,55,56,57,58,59,95,96,97,98,99,100,101,102,103,104,105,9,16,17,18,19,20';
	//9 = TAB
	//16 = SHIFT
	//17 = CTRL
	//18 = ALT
	//20 caps lock
	
	if (strCheck.indexOf(whichCode) != -1) { 
	// valido
	} else { //if (strCheck.indexOf(whichCode) != -1) { 
		// If the value is not in the string return the string minus the last
		// key entered.
		if (isNav4) {
			objeto.value = "";
			objeto.focus();
			objeto.select();
			return false;
		} else {
			objeto.value = objeto.value.substr(0, (objeto.value.length-1));
			return false;
		}
	} //end if (strCheck.indexOf(whichCode) != -1) { 
	
	if (objeto.value.indexOf("-") == -1 && objeto.value.length > 5){ objeto.value = ""; }
	if (objeto.value.length == 5){
		objeto.value += "-";
	}
	if (objeto.value.length >= 10){
		objeto.value = objeto.value.substr(0, (objeto.value.length-1));
	}	
}


// ******************************************************
function SaltaCampo(form, el, tam)  {
// ******************************************************
	// salta para campo posterior a EL quando for inserido TAM caracteres em EL
	// trabalhando somente com o formulario form
	var idx = 0;
	var caso = 1;
	aux = el.property;
	if (aux == undefined) {
		aux = el.name;
		caso = 1;
	} else {
		caso = 2;
	}
	for (i=0; i <= form.elements.length-1; i++) {
		if ( (caso == 2 && aux == form.elements[eval(i)].property) || 
		     (caso == 1 && aux == form.elements[eval(i)].name)
			) {
			idx = i;
		} 
	}
	aux = form.elements[eval(idx)].value;
	if (aux.length == tam) {
		form.elements[eval(idx+1)].focus();
	}
}


//**************************
 function upperCase(obj) {
	 obj.value = obj.value.toUpperCase();
 }

//*****************************


/*

Descrição.: formata um campo do formulário de
acordo com a máscara informada...
Parâmetros: - objForm (o Objeto Form)
- strField (string contendo o nome do textbox)

* - sMask (mascara que define o
* formato que o dado será apresentado,
* usando o algarismo "9" para
* definir números e o símbolo "!" para
* qualquer caracter...
* - evtKeyPress (evento)
* Uso.......: <input type="textbox"
* name="xxx".....
* onkeypress="return txtBoxFormat(document.rcfDownload, 'str_cep', '99999-999', event);">
* Observação: As máscaras podem ser representadas como os exemplos abaixo:
* CEP -> 99.999-999
* CPF -> 999.999.999-99
* CNPJ -> 99.999.999/9999-99
* Data -> 99/99/9999
* Tel Resid -> (99) 999-9999
* Tel Cel -> (99) 9999-9999
* Processo -> 99.999999999/999-99
* C/C -> 999999-!
* E por aí vai...
***/

function txtBoxFormat(objForm, strField, sMask, evtKeyPress) {
	var i, nCount, sValue, fldLen, mskLen,bolMask, sCod, nTecla;
	if(window.event) { // Internet Explorer
		nTecla = evtKeyPress.keyCode; }
	else if(evtKeyPress.which) { // Nestcape / firefox
		nTecla = evtKeyPress.which;
	}
	//se for backspace não faz nada
	if (nTecla != 8) {
		//sValue = document.getElementById(strField).value; // adaptacao para firefox
		sValue = objForm[strField].value;  // funciona no IE
	} else {
		return true;
	}


	// Limpa todos os caracteres de formatação que
	// já estiverem no campo.
	sValue = limpaCampo(sValue);

	fldLen = sValue.length;
	mskLen = sMask.length;

	i = 0;
	nCount = 0;
	sCod = "";
	mskLen = fldLen;

	while (i <= mskLen) {
		bolMask = ((sMask.charAt(i) == "-") || (sMask.charAt(i) == ":") || (sMask.charAt(i) == ".") || (sMask.charAt(i) == "/"))
		bolMask = bolMask || ((sMask.charAt(i) == "(") || (sMask.charAt(i) == ")") || (sMask.charAt(i) == " "))

		if (bolMask) {
			sCod += sMask.charAt(i);
			mskLen++; }
		else {
			sCod += sValue.charAt(nCount);
			nCount++;
		}
		i++;
	}

	objForm[strField].value = sCod;
	if (nTecla != 8) { // backspace
		if (sMask.charAt(i-1) == "9") { // apenas números...
			return ((nTecla > 47) && (nTecla < 58)); } // números de 0 a 9
		else { // qualquer caracter...
		return true;
		}
	} else {
		return true;
	}
}

//Fim da Função Máscaras Gerais txtBoxFormat




/***
* AUTO TAB - ao prencher o campo, automaticamente manda o foco para o próximo!
***/
var isNN = (navigator.appName.indexOf("Netscape")!=-1);

function autoTab(input,len, e) {
	var keyCode = (isNN) ? e.which : e.keyCode;
	var filter = (isNN) ? [0,8,9] : [0,8,9,16,17,18,37,38,39,40,46];
	if(input.value.length >= len && !containsElement(filter,keyCode)) {
		input.value = input.value.slice(0, len);
		input.form[(getIndex(input)+1) % input.form.length].focus();
	}

	function containsElement(arr, ele) {
		var found = false, index = 0;
		while(!found && index < arr.length)
		if(arr[index] == ele)
			found = true;
		else
			index++;
		return found;
	}

	function getIndex(input) {
		var index = -1, i = 0, found = false;
		while (i < input.form.length && index == -1)
			if (input.form[i] == input)index = i;
			else i++;
		return index;
	}
return true;
}
//Fim da Função AutoTab

function limpaCampo(sValue) {
	/* 
	sValue = sValue.toString().replace( "-", "" );
	sValue = sValue.toString().replace( "-", "" );
	sValue = sValue.toString().replace( ".", "" );
	sValue = sValue.toString().replace( ".", "" );
	sValue = sValue.toString().replace( "/", "" );
	sValue = sValue.toString().replace( "/", "" );
	sValue = sValue.toString().replace( "(", "" );
	sValue = sValue.toString().replace( "(", "" );
	sValue = sValue.toString().replace( ")", "" );
	sValue = sValue.toString().replace( ")", "" );
	sValue = sValue.toString().replace( " ", "" );
	sValue = sValue.toString().replace( " ", "" );
	*/

	expressao = /[\.\/\-\(\) ]/gi;
	sValue = sValue.toString().replace(expressao, '');
	return sValue;
}
