
function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_validateForm() { //v4.0
	var i, p, q, nm, test,
		num, min, max, errors='', 
		args=MM_validateForm.arguments;
	
	for (i=0; i<(args.length-2); i+=3) { 
	
		test = args[i+2]; 
		val = MM_findObj(args[i]);
		
		if (val) { 
			nm = val.id; 
			if ((val=val.value)!="") {
				if (test.indexOf('isEmail') != -1) { 
					p = val.indexOf('@');
					if (p<1 || p==(val.length-1)) errors += '- ' + nm + ' digitado é inválido.\n';
				} 
				//alteração para validar cpf
				else if (test.indexOf('isCpf') != -1) { 
					if(! isCPF(val)) errors += '- ' + nm + ' digitado é inválido.\n';
				}

				else if (test != 'R') { 
					num = parseFloat(val);
		        	if (isNaN(val)) errors+='- '+nm+' deve conter apenas números.\n';
    		    	if (test.indexOf('inRange') != -1) { 
						p=test.indexOf(':');
						min=test.substring(8,p); max=test.substring(p+1);
						if (num<min || max<num) errors+='- '+nm+' deve estar entre '+min+' e '+max+'.\n';
					} 
				}
			} 	
			else if (test.charAt(0) == 'R') errors += '- '+nm+' deve ser preenchido(a).\n'; 
		}
	} 
	
	if (errors) alert('Por favor, verifique o(s) seguinte(s) erro(s) encontrado(s):\n\n'+errors);
	
	document.MM_returnValue = (errors == '');
}

function radioAlgumMarcado(campo){
		
	for (var i=0; i < campo.length; i++) {
		if(campo[i].checked)
			return true;
	}
	return false;
}

/* Funções p/ validação de CPF eCNPJ
   Autor : Wellington Pérez Valdez <wpvaldez@consultant.com
   Criado em : 01/12/2003 */

function padl(str, tam, caracter) {
	/* Acrescenta o $caracter na string pela esquerda até que o tamanho seja == $tam */
	var resto, i;
	var junta = '';

	resto = tam - str.length;
	// Verifica se a string é maior que o tam especificado
	if (resto < 0) {
		// Se sim, devolve a string sem editar
		return str;
	}
	for (i = 0; i < resto; i++) {
		junta = junta.concat('0');
	}

	str = junta.concat(str);

	return str;
}

function padr(str, tam, caracter) {
	/* Acrescenta o $caracter na string pela esquerda até que o tamanho seja == $tam */
	var resto, i;
	var junta = '';

	resto = tam - str.length;
	// Verifica se a string é maior que o tam especificado
	if (resto < 0) {
		// Se sim, devolve a string sem editar
		return str;
	}
	for (i = 0; i < resto; i++)	{
		junta = junta.concat('0');
	}

	str = str.concat(junta);

	return str;
}

function DeixaDigitos(cText){
	cNewValue = "";
	for ( nI=0; nI<cText.length; nI++){
		cChar = cText.substring(nI, nI+1);
		if ( cChar >= "0" && cChar <= "9" ) cNewValue += cChar;
	}
	return cNewValue;
}

function isCPF(cpf_num) {
//	cpf_num = padl(DeixaDigitos(cpf_num), 11, '0');
	cpf_num = DeixaDigitos(cpf_num);
	if ( cpf_num.length != 11 ) return false;
	var dg1 = parseInt(cpf_num.charAt(0));
	var dg2 = parseInt(cpf_num.charAt(1));
	var dg3 = parseInt(cpf_num.charAt(2));
	var dg4 = parseInt(cpf_num.charAt(3));
	var dg5 = parseInt(cpf_num.charAt(4));
	var dg6 = parseInt(cpf_num.charAt(5));
	var dg7 = parseInt(cpf_num.charAt(6));
	var dg8 = parseInt(cpf_num.charAt(7));
	var dg9 = parseInt(cpf_num.charAt(8));
	var dg10 = parseInt(cpf_num.charAt(9));
	var dg11 = parseInt(cpf_num.charAt(10));
	// Verificação do 10.o digito
	var dc10 = (dg9*2) + (dg8*3) + (dg7*4) + (dg6*5) + (dg5*6) + (dg4*7) + (dg3*8) + (dg2*9) + (dg1*10);
	var rdiv = dc10 % 11;
	//
	rdiv = ( (rdiv == 0) || (rdiv == 1) ? 0 : 11 - rdiv );
	// Verifica se o resultado é igual ao décimo digito
	if ( rdiv != dg10 ) return false;

	// Verificacao do 11.o digito
	var dc11 = (dg10*2) + (dg9*3) + (dg8*4) + (dg7*5) + (dg6*6) + (dg5*7) + (dg4*8) + (dg3*9) + (dg2*10) + (dg1*11);
	rdiv = dc11 % 11;
	rdiv = ( (rdiv == 0) || (rdiv == 1) ? 0 : 11 - rdiv );
	return ( rdiv == dg11 );
}

function isCNPJ(cnpj_num) {
//	cnpj_num = padl(DeixaDigitos(cnpj_num), 14, '0');
	cnpj_num = DeixaDigitos(cnpj_num);
	if ( cnpj_num.length != 14 ) return false;
	var dg1 = parseInt(cnpj_num.charAt(0));
	var dg2 = parseInt(cnpj_num.charAt(1));
	var dg3 = parseInt(cnpj_num.charAt(2));
	var dg4 = parseInt(cnpj_num.charAt(3));
	var dg5 = parseInt(cnpj_num.charAt(4));
	var dg6 = parseInt(cnpj_num.charAt(5));
	var dg7 = parseInt(cnpj_num.charAt(6));
	var dg8 = parseInt(cnpj_num.charAt(7));
	var dg9 = parseInt(cnpj_num.charAt(8));
	var dg10 = parseInt(cnpj_num.charAt(9));
	var dg11 = parseInt(cnpj_num.charAt(10));
	var dg12 = parseInt(cnpj_num.charAt(11));
	var dg13 = parseInt(cnpj_num.charAt(12));
	var dg14 = parseInt(cnpj_num.charAt(13));
	// Verificação do 13o digito
	var dc13 = (dg12*2) + (dg11*3) + (dg10*4) + (dg9*5) + (dg8*6) + (dg7*7) + (dg6*8) + (dg5*9) + (dg4*2) + (dg3*3) + (dg2*4) + (dg1*5);
	var rdiv = dc13 % 11;
	//
	rdiv = ( (rdiv == 0) || (rdiv == 1) ? 0 : 11 - rdiv );
	// Verifica se o resultado é igual ao 13o digito
	if ( rdiv != dg13 ) return false;
	
	// Verificacao do 14o digito
	var dc14 = (dg13*2) + (dg12*3) + (dg11*4) + (dg10*5) + (dg9*6) + (dg8*7) + (dg7*8) + (dg6*9) + (dg5*2) + (dg4*3) + (dg3*4) + (dg2*5) + (dg1*6);
	rdiv = dc14 % 11;
	rdiv = ( (rdiv == 0) || (rdiv == 1) ? 0 : 11 - rdiv );
	return ( rdiv == dg14 );
}
