function VerificaCheckBoxListChecado( obj )
{
	if( obj.tagName.toLowerCase() == 'input' && obj.type == 'checkbox' )
	{
		return ( obj.checked );
	}
	else if( obj.children.length > 0 )
	{
		for (var i=0; i<obj.children.length; i++)
			if (VerificaCheckBoxListChecado(obj.children[i]))
				return true;
	}
	return false;
}

function VerificaRadioButtonListChecado( obj )
{
	if( obj.tagName.toLowerCase() == 'input' && obj.type == 'radio' )
	{
		return ( obj.checked );
	}
	else if( obj.children.length > 0 )
	{
		for (var i=0; i<obj.children.length; i++)
			if (VerificaCheckBoxListChecado(obj.children[i]))
				return true;
	}
	return false;
}

function ValidaCPF( cpf ) {
	var dac = "", inicio = 2, fim = 10, soma, digito, i, j
	for (j=1;j<=2;j++) {
		soma = 0
		for (i=inicio;i<=fim;i++) {
			soma += parseInt(cpf.substring(i-j-1,i-j))*(fim+1+j-i)
		}
		if (j == 2) { soma += 2*digito }
		digito = (10*soma) % 11
		if (digito == 10) { digito = 0 }
		dac += digito
		inicio = 3
		fim = 11
	}
	return (dac == cpf.substring(cpf.length-2,cpf.length))
}

function ValidaCnpj(cnpj) {
	if ((cnpj.indexOf("-") != -1) || (cnpj.indexOf(".") != -1) || (cnpj.indexOf("/") != -1))
		return false;
  	var df, resto, dac = "";
	df = 5*cnpj.charAt(0)+4*cnpj.charAt(1)+3*cnpj.charAt(2)+2*cnpj.charAt(3)+9*cnpj.charAt(4)+8*cnpj.charAt(5)+7*cnpj.charAt(6)+6*cnpj.charAt(7)+5*cnpj.charAt(8)+4*cnpj.charAt(9)+3*cnpj.charAt(10)+2*cnpj.charAt(11);
	resto = df % 11;
	dac += ( (resto <= 1) ? 0 : (11-resto) );
	df = 6*cnpj.charAt(0)+5*cnpj.charAt(1)+4*cnpj.charAt(2)+3*cnpj.charAt(3)+2*cnpj.charAt(4)+9*cnpj.charAt(5)+8*cnpj.charAt(6)+7*cnpj.charAt(7)+6*cnpj.charAt(8)+5*cnpj.charAt(9)+4*cnpj.charAt(10)+3*cnpj.charAt(11)+2*parseInt(dac);
	resto = df % 11;
	dac += ( (resto <= 1) ? 0 : (11-resto) );
	return (dac == cnpj.substring(cnpj.length-2,cnpj.length));
}

function ValidaNumero( numero ){
	return !isNaN( numero );
}

function ValidaEmail( email ){
	return (email != null && email != '' && email.match("^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$") );
}

function ValidaData( data ){
	var arrData = new Array();
	if( data.indexOf( '/' ) > -1 )
		arrData = data.split('/');
	if( data.indexOf( '-' ) > -1 )
		arrData = data.split('-');
	if( data.indexOf( '.' ) > -1 )
		arrData = data.split('.');

	if( arrData.length != 3 )
		return false;
	
	if( !ValidaNumero( arrData[0] ) || !ValidaNumero( arrData[1] ) || !ValidaNumero( arrData[2] ) )
		return false;
	
	if( arrData[2] < 1700 || arrData[2] > 9999 )
		return false;
	
	if( arrData[1] < 1 || arrData[1] > 12 )
		return false;

	switch( arrData[1] ){
		case "02":
			if( arrData[2] % 4 == 0 ){
				if( arrData[0] < 1 || arrData[0] > 29 )
					return false;
			}
			else{
				if( arrData[0] < 1 || arrData[0] > 28 )
					return false;
			}
			break;
		case "01":
		case "03":
		case "05":
		case "07":
		case "08":
		case "10":
		case "12":
			if( arrData[0] < 1 || arrData[0] > 31 )
				return false;
			break;
		case "04":
		case "06":
		case "09":
		case "11":
			if( arrData[0] < 1 || arrData[0] > 30 )
				return false;
			break;
		default:
			return false;
			break;
	}
	return true;
}