// JavaScript Document

//Verifica o Browser do cliente
var browser = navigator.appName;
var displayTabl = 'block';
var displayTablRow = 'block';
var displayTablCell = 'block';

//Se for "Netscape" então o browser é FF e o valor do display é diferente
if(browser == 'Netscape'){
    displayTabl = 'table';
    displayTablRow = 'table-row';
    displayTablCell = 'table-cell';
}

//validaCpf(campo) - Valida o cpf informado
function validaCpf(campo){
	//Exemplo: if(!validaCpf(document.form.campo)) erro = true;
	
	campo = campo.replace(/\./g, '');
	campo = campo.replace(/\-/g, '');

	if(isNaN(campo)) return false;

	var i;
	var c = campo.substr(0, 9);
	var dv = campo.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 true;
}

//validaEmail(campo) - Valida o e-mail informado
function validaEmail(campo) {
    var A 					= campo.indexOf('@');
    var AA 					= campo.indexOf('@', A + 1) != -1;
    var ponto 				= campo.indexOf(".") < 1;
    var espaco 				= campo.indexOf(" ") != -1;
    var pontoAntesDoA 		= campo.indexOf(".@") > 0;
    var pontoDepoisDoA 		= campo.indexOf("@.") > 0;
    var pontoDepoisDoBr 	= campo.indexOf(".com.br.") > 0;
    var barra 				= campo.indexOf("/") > 0;
    var abreColchete 		= campo.indexOf("[") > 0;
    var fechaColchete 		= campo.indexOf("]") > 0;
    var abreParentese 		= campo.indexOf("(") > 0;
    var fechaParentese 		= campo.indexOf(")") > 0;
    var pontoConsecutivo 	= campo.indexOf("..") > 0;
    var aspas				= campo.indexOf('"') > 0;
	
    if(A < 2 || AA || ponto || espaco || pontoAntesDoA || pontoDepoisDoA || pontoDepoisDoBr || barra || abreColchete || fechaColchete || abreParentese || fechaParentese || pontoConsecutivo || aspas) {
        return false;
    }
	
    return true;
}	  

//function txtBoxFormat(objeto, sMask, evtKeyPress) - Formata o campo de acordo com a mascara (data, hora, telefone, cpf, cnpj)
function txtBoxFormat(objeto, sMask, evtKeyPress){
	//ex: onkeypress="javascript: txtBoxFormat(this, '999.999.999-99', event);"

	var nTecla;
		
	if(document.all){
		nTecla = evtKeyPress.keyCode;
	}else if(document.layers){
		nTecla = evtKeyPress.which;
	}
	
	sValue = objeto.value;
	
	// Limpa todos os caracteres de formatacao que ja 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( " ", "" );
	
	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++;
	}
	
	objeto.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;
	}
}

