/*	CONTROLE DAS PAGINAS
	voltar, aumentar/diminuir fonte
*/
$(function(){
	var font  = $(".font-control li a");
	var alvos = $("#conteudo p, #conteudo li, #conteudo a");
	
	font.toggle(function(){									
		alvos.css("font-size","16px");
		font.css("background-position","-24px 0");
		font.attr("title","Diminuir fonte");
		
		return false;
	},
	function(){
		alvos.css("font-size","12px");
		font.css("background-position","0");
		font.attr("title","Aumentar fonte");
		return false;
	});
});

/* FUNÃ‡ÃƒO PARA APARECER O CONTEÃšDO DO BOTÃƒO DA DÃšVIDA */

function mostra(x){
divz = document.getElementById(x);
divz.style.visibility = "visible";
}
function esconde(x){
divz = document.getElementById(x);
divz.style.visibility = "hidden";
}

/* FUNÃ‡ÃƒO PARA AUMENTAR E DIMINUIR FONTE */

function TamFonte(num, id){
document.getElementById(id).className = "fonte"+num;
}

function apenasNumero(e) {
	
	var key;
	var keychar;
	var reg;

	if(window.event) {
	  // Para IE, e.keyCode ou window.event.keyCode pode ser usado
	  key = e.keyCode;
	} else if(e.which) {
	  // Netscape
	  key = e.which;
	} else {
	  // Se nao tiver evento, entao passa direto
	  return true;
	}
	if(key != 8){
		keychar = String.fromCharCode(key);
		reg = /\d/;
		// return !reg.test(keychar); ===> para tirar números é necessário tirar o exclamação (!)
		return reg.test(keychar);
	} else {
		return true;
	}
}

function FormataCIC (numCIC) {
	numCIC = String(numCIC);
	switch (numCIC.length){
		case 11 :
 			return numCIC.substring(0,3) + "." + numCIC.substring(3,6) + "." + numCIC.substring(6,9) + "-" + numCIC.substring(9,11);
		case 14 :
 			return numCIC.substring(0,2) + "." + numCIC.substring(2,5) + "." + numCIC.substring(5,8) + "/" + numCIC.substring(8,12) + "-" + numCIC.substring(12,14);
		default :
 			alert("Tamanho incorreto do CNPJ!");
 			return false;
	}
}

//########################################################
//##													##
//##	    Autor: DM Tecnologia de Informacao  		##
//##													##
//##		    Validação de CPF e CNPJ					##
//##													##
//##  Usar: onchange="ConfereCIC(this)"				    ##
//##													##
//########################################################
function DigitoCPFCNPJ(numCIC) {
	var numDois = numCIC.substring(numCIC.length-2, numCIC.length);
	var novoCIC = numCIC.substring(0, numCIC.length-2);
	
	switch (numCIC.length) {
 		case 11 :
  			numLim = 11;
  			break;
 		case 14 :
  			numLim = 9;
  			break;
 		default : return false;
	}
	
	var numSoma = 0;
	var Fator = 1;
	
	for (var i=novoCIC.length-1; i>=0 ; i--) {
 		Fator = Fator + 1;
 		if (Fator > numLim) {
  			Fator = 2;
 		}
 		numSoma = numSoma + (Fator * Number(novoCIC.substring(i, i+1)));
	}
	
	numSoma = numSoma/11;
	var numResto = Math.round( 11 * (numSoma - Math.floor(numSoma)));
   	if (numResto > 1) {
 		numResto = 11 - numResto;
   	} else {
 		numResto = 0;
   	}
   	
   //-- Primeiro digito calculado.  Fara parte do novo calculo.
   var numDigito = String(numResto);
   novoCIC = novoCIC.concat(numResto);
   //--
   numSoma = 0;
   Fator = 1;
   
   for (var i=novoCIC.length-1; i>=0 ; i--) {
   		Fator = Fator + 1;
 		if (Fator > numLim) {
  			Fator = 2;
 		}
 		numSoma = numSoma + (Fator * Number(novoCIC.substring(i, i+1)));
	}
	
	numSoma = numSoma/11;
	numResto = numResto = Math.round( 11 * (numSoma - Math.floor(numSoma)));
   	if (numResto > 1) {
 		numResto = 11 - numResto;
   	} else {
 		numResto = 0;
   	}
   	
	//-- Segundo digito calculado.
	numDigito = numDigito.concat(numResto);
	if (numDigito == numDois) {
 		return true;
	} else {
 		return false;
	}
}

//-- Retorna uma string apenas com os numeros da string enviada
function ApenasNum(strParm) {
	strParm = String(strParm);
	var chrPrt = "0";
	var strRet = "";
	var j=0;
	
	for (var i=0; i < strParm.length; i++) {
 		chrPrt = strParm.substring(i, i+1);
 		if ( chrPrt.match(/\d/) ) {
  			if (j==0) {
   				strRet = chrPrt;
   				j=1;
  			} else {
   				strRet = strRet.concat(chrPrt);
  			}
 		}
	}
	return strRet;
}

///-- Remove os sinais, deixando apenas os numeros e reconstroi o CPF ou CNPJ, verificando a validade
//-- Recebe como parametros o numero do CPF ou CNPJ, com ou sem sinais e o atualiza com sinais validado.
function ConfereCIC(objCIC,tipo) {
	if (objCIC.value == null) {
 		alert("Preenchimento obrigatório do"+tipo);
 		objCIC.value='';
 		objCIC.focus();
 		return false;
	}
	var strCPFPat  = /^\d{3}\.\d{3}\.\d{3}-\d{2}$/;
	var strCNPJPat = /^\d{2}\.\d{3}\.\d{3}\/\d{4}-\d{2}$/;
	numCPFCNPJ = ApenasNum(objCIC.value);

	if (!DigitoCPFCNPJ(numCPFCNPJ)) {
 		alert("Atenção: Dígito verificador do "+tipo+" é inválido!");
 		objCIC.value='';
 		objCIC.focus();
 		return false;
	}

	objCIC.value = FormataCIC(numCPFCNPJ);

	if (objCIC.value.match(strCNPJPat)) {
 		return true;
	}
	else if (objCIC.value.match(strCPFPat)) {
 		return true;
	} else {
 		alert("Digite um "+tipo+" válido!");
 		objCIC.value='';
 		objCIC.focus();
 		return false;
	}
}
