function maskEvent(field, _mask, event, nMaxLength) {
	var key ='';
	var aux='';
	var len=0;
	var i=0;
	var strCheck = '0123456789';
	var rcode = (window.Event) ? event.which : event.keyCode;
	//alert('key = '+rcode);
	if(rcode == 13 || rcode == 8) {
		//Enter ou BackSpace
		return true;
	}

	//Get key value from key code
	key=String.fromCharCode(rcode);
	
	if(strCheck.indexOf(key)==-1) {
		//Not a valid key
		return false;
	}

	if (field.value.length == nMaxLength){
		return false;
	}
	
	aux=field.value+key;
	//window.alert(aux);
	aux=mask(_mask,aux);
	//window.alert(aux);
	field.value=aux;	
	return false;
}

function mask(_mask, val) {
	var i, mki;
	var aux="";
	
	for(i=mki=0; i<val.length; i++, mki++) {
		if(_mask.charAt(mki)=='' || _mask.charAt(mki)=='#' || _mask.charAt(i)==val.charAt(i)) {
			aux+=val.charAt(i);
		} else {
			aux+=_mask.charAt(mki)+val.charAt(i);
			mki++;
		}
	}
	return aux;
}

function ValidaCPF(strCPF){ 

var i;
var strCheck = "0123456789";
var s = "";

//alert("chegou: "+strCPF);
//considera somente caracteres numéricos!!
for (i = 0; i < strCPF.length; i++) { 
	if (strCheck.indexOf(strCPF.charAt(i)) > -1)
		s += strCPF.charAt(i);
}
//alert("ficou: "+s);

var c = s.substr(0,9);
var dv = s.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; 

}
