function validaCpf(cpf)
{
	if (cpf.length < 11)
	{
		return false;
	}
	
	var nonNumbers = /\D/;
	
	if (nonNumbers.test(cpf))
	{
		return false;
	}
	if (cpf == "00000000000"
		|| cpf == "11111111111" || cpf == "22222222222" || cpf == "33333333333"
		|| cpf == "44444444444" || cpf == "55555555555" || cpf == "66666666666"
		|| cpf == "77777777777" || cpf == "88888888888" || cpf == "99999999999")
	{
		return false;
	}
	
	var a = [];
	var b = new Number;
	var c = 11;
	
	for (i=0; i<11; i++)
	{
		a[i] = cpf.charAt(i);
		
		if (i < 9)
		{
			b += (a[i] * --c);
		}
	}
	
	if ((x = b % 11) < 2)
	{
		a[9] = 0
	}
	else
	{
		a[9] = 11-x
	}
	
	b = 0;
	c = 11;
	
	for (y=0; y<10; y++)
	{
		b += (a[y] * c--);
	}
	
	if ((x = b % 11) < 2)
	{
		a[10] = 0;
	}
	else
	{
		a[10] = 11-x;
	}
	
	if ((cpf.charAt(9) != a[9]) || (cpf.charAt(10) != a[10]))
	{
		return false;
	}
	
	return true;
}

function checkDate(d, m, y)
{
	if (isNaN(d) || isNaN(m) || isNaN(y) || y < 1900 || y > 2005)
	{
		return false;
	}
	
	date = d + '/' + m + '/' + y;
	test1 = (/^\d{2}[\-/]\d{2}[\-/]\d{4}$/.test(date));
	date = date.replace(/[\-/]/g, ',');
	date = date.split(',');
	d = new Date(date[2], date[1] - 1, date[0]);
	
	test2 = (1 * date[0] == d.getDate() && 1 * date[1] == (d.getMonth() + 1) && 1 * date[2] == d.getFullYear());
	
	if (test1 && test2)
	{
		return true;
	}
	else
	{
		return false;
	}
}
