function trocaPagina(strNovaPagina){
	top.FraDireita.location.href = 'spfdireita.htm';
	location.href = strNovaPagina;
}

function txtBoxFormat(objForm, strField, sMask, evtKeyPress) {
	var i, nCount, sValue, fldLen, mskLen,bolMask, sCod, nTecla;

	if (navigator.appName=="Netscape") {
		nTecla = evtKeyPress.which;
	} else {
		nTecla = evtKeyPress.keyCode;
	}

	sValue = objForm[strField].value;

	// Limpa todos os caracteres de formatação que
	// já estiverem no campo.
	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( "/", "" );
	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( ")", "" );
	sValue = sValue.toString().replace( ")", "" );
	sValue = sValue.toString().replace( " ", "" );
	sValue = sValue.toString().replace( " ", "" );
	sValue = sValue.toString().replace( " ", "" );
	sValue = sValue.toString().replace( " ", "" );
	sValue = sValue.toString().replace( " ", "" );
	fldLen = sValue.length;
	i = 0;
	nCount = 0;
	sCod = "";
	mskLen = fldLen;

	while (i <= mskLen) {
		bolMask = ((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;
		}
	}

function validaCPF(CPF) {

	var cpf = trimtodigits(CPF);

	// Verifica se o campo e nulo
	if (cpf == "") {
		return false;
	}

	// Aqui comeca a checagem do CPF
	var posicao;
	var digitoVerificador
	var digitoVerificadorInformado;
	var i,  soma;

	var digitos = new Array();

	// Retira os dois últimos digitos do número informado
	digitoVerificadorInformado = cpf.substr(9, 2);

	// Desmembra o numero do CPF no array DIGITOS
	for (i = 0; i <= 8; i++) {
		digitos[i] = cpf.substr(i, 1);
	}

	// Calcula o valor do 10 digito da verificação
	posicao = 10;
	soma = 0;
	for (i = 0; i <= 8; i++) {
		soma = soma + digitos[i] * posicao;
		posicao--;
	}

	digitos[9] = soma % 11;
	if (digitos[9] < 2) {
		digitos[9] = 0;
	} else {
		digitos[9] = 11 - digitos[9];
	}

	// Calcula o valor do 11 digito da verificação
	posicao = 11;
	soma = 0;
	for (i = 0; i <= 9; i++) {
		soma = soma + digitos[i] * posicao;
		posicao--;
	}
	digitos[10] = soma % 11;
	if ( digitos[10] < 2) {
		digitos[10] = 0;
	} else {
		digitos[10] = 11 - digitos[10];
	}

	// Verifica se os valores dos digitos verificadores conferem
	digitoVerificador = digitos[9] * 10 + digitos[10];
	if (digitoVerificador != digitoVerificadorInformado) {
		return false;
	}
	return true;
}

function verificaCGC(scgc) {
	var cgc = trimtodigits(scgc);

	if ((cgc.indexOf("-") != -1) || (cgc.indexOf(".") != -1) || (cgc.indexOf("/") != -1)){
		return( false )
	}

	var df, resto, dac = ""
	df = 5*cgc.charAt(0)+4*cgc.charAt(1)+3*cgc.charAt(2)+2*cgc.charAt(3)+9*cgc.charAt(4)+8*cgc.charAt(5)+7*cgc.charAt(6)+6*cgc.charAt(7)+5*cgc.charAt(8)+4*cgc.charAt(9)+3*cgc.charAt(10)+2*cgc.charAt(11)
	resto = df % 11
	dac += ( (resto <= 1) ? 0 : (11-resto) )
	df = 6*cgc.charAt(0)+5*cgc.charAt(1)+4*cgc.charAt(2)+3*cgc.charAt(3)+2*cgc.charAt(4)+9*cgc.charAt(5)+8*cgc.charAt(6)+7*cgc.charAt(7)+6*cgc.charAt(8)+5*cgc.charAt(9)+4*cgc.charAt(10)+3*cgc.charAt(11)+2*parseInt(dac)
	resto = df % 11
	dac += ( (resto <= 1) ? 0 : (11-resto) )
	return (dac == cgc.substring(cgc.length-2,cgc.length))
}

//Remove todos os caracteres excetos 0-9
function trimtodigits(tstring){
	s="";
	ts=new String(tstring);
	for (x=0;x<ts.length;x++){
		ch=ts.charAt(x);
		if (asc(ch)>=48 && asc(ch)<=57){
			s=s+ch;
		}
	}
	return s;
}

// Retorna o código ASC do caracter passada por parâmetro
function asc(achar){
	var n=0;
	var ascstr = makeCharsetString()
	for (i=0;i<ascstr.length;i++){
		if(achar==ascstr.substring(i,i+1)){
			n=i;
			break;
		}
	}
	return n+32
}

// Gera uma string com os caracteres básicos na sequência de códigos ASC
function makeCharsetString(){
	var astr
	astr = ' !"#$%&\'()*+,-./0123456789:;<=>?@'
	astr+= 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
	astr+= '[\]^_`abcdefghijklmnopqrstuvwxyz'
	astr+= '{|}~'
	return astr
}


