﻿function Validate_CPF(source, arguments) {
	arguments.IsValid = ValidaCpf(arguments.Value);
}

function ValidaCpf(s){
	var i;
	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;
	}
	var nnn = parseInt(s)
	if (nnn % 11111111111 == 0) {
		return false;
	}
	return true;
}

function Validate_CNPJ(oSrc, args){
	s = args.Value;
	if (isNaN(s)) {
		return args.IsValid = false;
	}
	var i;
	var c = s.substr(0,12);
	var dv = s.substr(12,2);
	var d1 = 0;
	for (i = 0; i <12; i++){
		d1 += c.charAt(11-i)*(2+(i % 8));
	}

	if (d1 == 0) 
		return args.IsValid = false;

	d1 = 11 - (d1 % 11);
	if (d1 > 9) d1 = 0;

	if (dv.charAt(0) != d1){
		return args.IsValid = false;
	}

	d1 *= 2;
	for (i = 0; i < 12; i++){
		d1 += c.charAt(11-i)*(2+((i+1) % 8));
	}
	d1 = 11 - (d1 % 11);
	if (d1 > 9) d1 = 0;

	if (dv.charAt(1) != d1){
		return args.IsValid = false;
	}

	return args.IsValid = true;
}

function validateDateEmpty(obj, args) {
	args.IsValid = 
		document.getElementById('DataNascimento_Year').value.length > 0 &&
		document.getElementById('DataNascimento_Month').value.length > 0 &&
		document.getElementById('DataNascimento_Day').value.length > 0;
	return args.IsValid;
}

function validateDate(obj, args) {
	if (!validateDateEmpty(obj,args)) {
		args.IsValid = true;
	} else {
		var strDate = 
			document.getElementById('DataNascimento_Year').value + '/' +
			document.getElementById('DataNascimento_Month').value + '/' +
			document.getElementById('DataNascimento_Day').value;
		args.IsValid = Date.parse(strDate);
	}
}