// JavaScript Document
// ---------------------------------- FUNÇÕES GERAIS ---------------------------------------------------------- //

function getScrollTop() {
	if (self.pageYOffset) // all except Explorer
	{
		return self.pageYOffset;
	}
	else if (document.documentElement && document.documentElement.scrollTop)
		// Explorer 6 Strict
	{
		return document.documentElement.scrollTop;
	}
	else if (document.body) // all other Explorers
	{
		return document.body.scrollTop;
	}
}

function getViewportHeight() {
	if (window.innerHeight!=window.undefined) return window.innerHeight;
	if (document.compatMode=='CSS1Compat') return document.documentElement.clientHeight;
	if (document.body) return document.body.clientHeight; 

	return window.undefined; 
}

function getViewportWidth() {
	var offset = 17;
	var width = null;
	if (window.innerWidth!=window.undefined) return window.innerWidth; 
	if (document.compatMode=='CSS1Compat') return document.documentElement.clientWidth; 
	if (document.body) return document.body.clientWidth; 
}

function focaCampo(objeto) {
	objeto.focus();
}


function alteraCor(objeto) {
	
	corAtual = objeto.style.color;
	fundoAtual = objeto.style.backgroundColor;
	
	objeto.style.color = "#FFFFFF";
	objeto.style.backgroundColor = "#FF0000";
	
	focaCampo(objeto);
	
	setTimeout(function(){						
						objeto.style.color = corAtual;
						objeto.style.backgroundColor = fundoAtual;						
						}, 2000);
	
}

function AjaxRequest() {

	try	{
		// Firefox, Opera 8.0+, Safari
		Ajax=new XMLHttpRequest();
	}

	catch (e)
	{
		// Internet Explorer
		try
		{
		Ajax=new ActiveXObject("Msxml2.XMLHTTP");
		}
	catch (e)
		{
		try
			{
			Ajax=new ActiveXObject("Microsoft.XMLHTTP");
			}
		catch (e)
		{
			alert("Your browser does not support AJAX!");
			return false;
		}
	}
}
}

function randomico() {
	return "?rnd=" + Math.random();
}


function checaMail(mail){
    var er = new RegExp(/^[A-Za-z0-9_\-\.]+@[A-Za-z0-9_\-\.]{2,}\.[A-Za-z0-9]{2,}(\.[A-Za-z0-9])?/);

	if(typeof(mail) == "string"){
		if(er.test(mail)){ 
			return true;
		}
    } else if(typeof(mail) == "object"){
        if(er.test(mail.value)){
			return true;
		}
    } else {
		return false;
    }
}

function checaCPF(objeto) {
	
var CPF = objeto.value; // Recebe o valor digitado no campo

// Verifica se o campo é nulo
if (CPF == '') {
  alert('Este campo é de preenchimento obrigatório!');
  return false;
   }

// Aqui começa a checagem do CPF
var POSICAO, I, SOMA, DV, DV_INFORMADO;
var DIGITO = new Array(10);
DV_INFORMADO = CPF.substr(9, 2); // Retira os dois últimos dígitos do número informado

// Desemembra o número do CPF na array DIGITO
for (I=0; I<=8; I++) {
  DIGITO[I] = CPF.substr( I, 1);
}

// Calcula o valor do 10º dígito da verificação
POSICAO = 10;
SOMA = 0;
   for (I=0; I<=8; I++) {
      SOMA = SOMA + DIGITO[I] * POSICAO;
      POSICAO = POSICAO - 1;
   }
DIGITO[9] = SOMA % 11;
   if (DIGITO[9] < 2) {
        DIGITO[9] = 0;
}
   else{
       DIGITO[9] = 11 - DIGITO[9];
}

// Calcula o valor do 11º dígito da verificação
POSICAO = 11;
SOMA = 0;
   for (I=0; I<=9; I++) {
      SOMA = SOMA + DIGITO[I] * POSICAO;
      POSICAO = POSICAO - 1;
   }
DIGITO[10] = SOMA % 11;
   if (DIGITO[10] < 2) {
        DIGITO[10] = 0;
   }
   else {
        DIGITO[10] = 11 - DIGITO[10];
   }

// Verifica se os valores dos dígitos verificadores conferem
DV = DIGITO[9] * 10 + DIGITO[10];
   if (DV != DV_INFORMADO) {
	   return false;
   } else {
	   return true;
   }
}



function somenteNumeros(e) {
	
	var cancelar = true;
	
	var tecla = e.keyCode||e.charCode;
	
	if (tecla == 8) {
		cancelar = false;
	}

	if (tecla == 9) {
		cancelar = false;
	}

	if (tecla >= 48 && tecla <= 57) {
		cancelar = false;
	}

	if (tecla >= 96 && tecla <= 105) {
		cancelar = false;
	}
	
	if (tecla == 111) {
		cancelar = true;
	}
	
	if (cancelar == true) {
		return false;
	}
	
}


function autoTab(objeto, size) {
	
	if (size == 0) {	
		var campo = document.getElementsByTagName("input");
		for (i=0; i < campo.length; i++) {
			
			if (campo[i].type != "hidden") {			
				if (campo[i].tabIndex == parseInt(objeto.tabIndex) + 1) {				
					campo[i].focus();				
				}			
			}		
		}
	} else {
		
		if (size == objeto.value.length) {
			var campo = document.getElementsByTagName("input");
			for (i=0; i < campo.length; i++) {
				
				if (campo[i].type != "hidden") {			
					if (campo[i].tabIndex == parseInt(objeto.tabIndex) + 1) {				
						campo[i].focus();				
					}			
				}		
			}
		}
	}
}

function limitaCampo(objeto, total, e) {
	var tecla = e.keyCode||e.charCode;
	if (objeto.value.length >= parseInt(total) && tecla != 8) {
		return false;
	}
}

function formata(val)
{
   	var pass = val.value;
	var expr = /[0123456789]/;
		
	for(i=0; i<pass.length; i++){
		// charAt -> retorna o caractere posicionado no índice especificado
		var lchar = val.value.charAt(i);
		var nchar = val.value.charAt(i+1);
	
		if(i==0){
		   // search -> retorna um valor inteiro, indicando a posição do inicio da primeira
		   // ocorrência de expReg dentro de instStr. Se nenhuma ocorrencia for encontrada o método retornara -1
		   // instStr.search(expReg);
		   if ((lchar.search(expr) != 0) || (lchar>3)){
			  val.value = "";
		   }
		   
		}else if(i==1){
			   
			   if(lchar.search(expr) != 0){
				  // substring(indice1,indice2)
				  // indice1, indice2 -> será usado para delimitar a string
				  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;
}


// --------------------------------- FIM FUNÇÕES GERAIS ------------------------------------------------------ //

