function valida(form)
{
	x = form.elements.length -1
	for (i = 0; i <= x; i++)
	{
 		tipo = form.elements[i].name
		tipo = tipo.substring(0, 5)
		tipo = tipo.toUpperCase()
		campo = form.elements[i].name
		campo = campo.substring(5)
		switch (tipo)
		{
			case 'V_REQ': //REQUERIDO
				if (!isNotEmpty(form.elements[campo], form.elements[i].value))
					return false;
				break;
			case 'V_INT': //DOUBLE - NÃO REQUERIDO
				if (!isInteger(form.elements[campo], form.elements[i].value))
					return false;
				break;
			case 'V_NUM': //NÚMERO - NÃO REQUERIDO
				if (isNaN(form.elements[campo], form.elements[i].value))
					return false;
				break;						
			case 'V_DBL': //DOUBLE - NÃO REQUERIDO
				if (!isDouble(form.elements[campo], form.elements[i].value))
					return false;				
				break;			
			case 'V_EMA': //EMAIL - NÃO REQUERIDO
				if (!isEmail(form.elements[campo], form.elements[i].value))
					return false;
				break;			
			case 'V_CPF': //CPF - NÃO REQUERIDO
				if (!isCPF(form.elements[campo], form.elements[i].value))
					return false;
				break;			
			case 'V_CGC': //CGC - NÃO REQUERIDO
				if (!isCGC(form.elements[campo], form.elements[i].value))
					return false;
				break;
			case 'V_DTA': //DATA
				sDia = campo + '_dia'
				sMes = campo + '_mes'
				sAno = campo + '_ano'
				if (!isDate(form.elements[sDia], form.elements[sMes], form.elements[sAno], form.elements[i].value))
					return false;
				break;
			case 'V_DT2':
				if (!isDate_Function(form.elements[campo].value)) {
					//alert(form.elements[i].value);
					form.elements[campo].focus();
					return false;
				}
				break;
			case 'V_AVA':
				if(!avaliacao(form.elements[campo], 0, 5))
					return false;
				break;
			case 'V_ENU':
				if(!enumeracao(form.elements[campo]))
					return false;
				break;
			case 'V_RAD':
				if(!selecionaRadio(form.elements[campo]))
					return false;
				break;
			case 'V_CHK':
				if(!selecionaCheck(form.elements[campo]))
					return false;
				break;
		}
	}
	return true;
}

function isNotEmpty(campo, mensagem)
{
	var i;
	if (campo.type == 'select-one')	{
		if (campo.selectedIndex == 0)		{
			alert(mensagem);
			campo.focus();
			return false;
		}
	}else if(campo.type == undefined) {
		if(campo.item(0).type == "text") {
			for(i=0;i<campo.length;i++) {
				if (campo.item(i).value == '') {
					alert(mensagem);
					campo.item(i).focus();	
					return false;
				}
			}
		} else if(campo.item(0).type == "checkbox") {
		}
	} else {
		if (campo.value == '') {
			alert(mensagem);
			campo.focus();	
			return false;
		}
	}
	return true;
}

function isDouble(campo, mensagem)
{
	sValor = campo.value;
	sValor = sValor.toString();
	sValor = sValor.replace(',','.');
	if (isNaN(sValor) && sValor != '')
	{
		alert(mensagem);
		campo.focus();	
		return false;
	}
	return true;
}

function isInteger(campo,mensagem) {
	var j, i;
	if (campo.type == undefined) {
		for(j=0; j<campo.length; j++) {
			sValor = campo.item(j).value;
			sValor = sValor.toString();
			tamanho = sValor.length
			for (i=0; i<tamanho; i++) {
				sAux = sValor.charAt(i);
				if (sAux < '0' || sAux > '9') {
					alert(mensagem);
					campo.item(j).focus();
					return false;
				}
			}
		}
	} else {
		sValor = campo.value;
		sValor = sValor.toString();
		tamanho = sValor.length
		for (i = 0; i < tamanho; i++) {
			sAux = sValor.charAt(i);
			if (sAux < '0' || sAux > '9') {
				alert(mensagem);
				campo.focus();
				return false;
			}
		}
	}
	return true;
}

function isEmail(campo,mensagem)
{
	if (isNotEmpty(campo))
	{
		var i = 1;
		sValor = campo.value
		sLength = sValor.length;

		while ((i < sLength) && (sValor.charAt(i) != '@'))
			i++
		if ((i >= sLength) || (sValor.charAt(i) != '@')) 
		{
			alert(mensagem);
			campo.focus();
			return false;
		}
		else
			i += 2;
		while ((i < sLength) && (sValor.charAt(i) != '.'))
			i++
		if ((i >= sLength - 1) || (sValor.charAt(i) != '.')) 
		{
			alert(mensagem);
			campo.focus();
			return false;
		}
	}
	return true;
}

function isCPF(campo,mensagem)
{
	sValor1 = campo.value;
	sValor1 = sValor1.toString();
	sValor = '';
	xpqp = sValor1.length
	for (iputo = 0; iputo < xpqp; iputo++)
	{
		sAux = sValor1.charAt(iputo);
		if (sAux < '0' || sAux > '9')
		{
			if (sAux != '.' && sAux != '-' && sAux != '/')
			{
				alert(mensagem);
				campo.focus();
				return false;
			}
		}
		else
		{
			sAux = sAux.toString();
			sValor = sValor + '' + sAux;
		}
	}
	if (sValor != '')
	{
		if (isNaN(sValor) || sValor.length != 11)
		{
			alert(mensagem);
			campo.focus();
			return false;
		}
		if(sValor == '00000000000' || sValor == '11111111111' || 
		   sValor == '22222222222' || sValor == '33333333333' || 
		   sValor == '44444444444' || sValor == '55555555555' || 
		   sValor == '66666666666' || sValor == '77777777777' || 
		   sValor == '88888888888' || sValor == '99999999999') {
			alert(mensagem);
			campo.focus();
			return false;
		}
		soma = (sValor.substr(0,1) * 10) + (sValor.substr(1,1) * 9) + (sValor.substr(2,1) * 8) + (sValor.substr(3,1) * 7) + (sValor.substr(4,1) * 6) + (sValor.substr(5,1) * 5) + (sValor.substr(6,1) * 4) + (sValor.substr(7,1) * 3) + (sValor.substr(8,1) * 2);
		dv1 = (soma % 11);
		if (dv1 == 0 || dv1 == 1) 
			dv1 = 0;
		else
			dv1 = 11 - dv1;
		soma = (sValor.substr(0,1) * 11) + (sValor.substr(1,1) * 10) + (sValor.substr(2,1) * 9) + (sValor.substr(3,1) * 8) + (sValor.substr(4,1) * 7) + (sValor.substr(5,1) * 6) + (sValor.substr(6,1) * 5) + (sValor.substr(7,1) * 4) + (sValor.substr(8,1) * 3) + (dv1 * 2);
		dv2 = (soma % 11);
		if (dv2 == 0 || dv2 == 1) 
			dv2 = 0;
		else
			dv2 = 11 - dv2;
		if (sValor.substr(9,1) != dv1 || sValor.substr(10,1) != dv2)
		{
			alert(mensagem);
			campo.focus();
			return false;
		}
	} 
	else 
	{
	     campo.value = "";
	}
	return true;
}

function isCGC(campo,mensagem)
{
	sValor1 = campo.value;
	sValor1 = sValor1.toString();
	sValor = '';
	xpqp = sValor1.length
	for (iputo = 0; iputo < xpqp; iputo++)
	{
		sAux = sValor1.charAt(iputo);
		if (sAux < '0' || sAux > '9')
		{
			if (sAux != '.' && sAux != '-' && sAux != '/')
			{
				alert(mensagem);
				campo.focus();
				return false;
			}
		}
		else
			sValor = sValor + sAux
	}
	if(sValor.length == 15) sValor = sValor.substr(1, 15);
	if (sValor != '')
	{
		if (isNaN(sValor) || sValor.length != 14)
		{
			alert(mensagem);
			campo.focus();
			return false;
		}
		soma = (sValor.substr(0,1) * 5) + (sValor.substr(1,1) * 4) + (sValor.substr(2,1) * 3) + (sValor.substr(3,1) * 2) + (sValor.substr(4,1) * 9) + (sValor.substr(5,1) * 8) + (sValor.substr(6,1) * 7) + (sValor.substr(7,1) * 6) + (sValor.substr(8,1) * 5) + (sValor.substr(9,1) * 4) + (sValor.substr(10,1) * 3) + (sValor.substr(11,1) * 2)
		dv1 = (soma % 11);
		if (dv1 == 0 || dv1 == 1) 
			dv1 = 0;
		else
			dv1 = 11 - dv1;
		soma = (sValor.substr(0,1) * 6) + (sValor.substr(1,1) * 5) + (sValor.substr(2,1) * 4) + (sValor.substr(3,1) * 3) + (sValor.substr(4,1) * 2) + (sValor.substr(5,1) * 9) + (sValor.substr(6,1) * 8) + (sValor.substr(7,1) * 7) + (sValor.substr(8,1) * 6) + (sValor.substr(9,1) * 5) + (sValor.substr(10,1) * 4) + (sValor.substr(11,1) * 3)  + (dv1 * 2)
		dv2 = (soma % 11);
		if (dv2 == 0 || dv2 == 1) 
			dv2 = 0;
		else
			dv2 = 11 - dv2;
		if (sValor.substr(12,1) != dv1 || sValor.substr(13,1) != dv2)
		{
			alert(mensagem);
			campo.focus();
			return false;
		}
	}
	return true;
}
function Voltar(pagina)
{
	if (confirm('Deseja abandonar as alterações?'))
	{		
		document.location=pagina;
	}
}		
	
function isDate(objDia, objMes, objAno, mensagem)
{
	if (objDia.type == 'select-one')
		dia = objDia.options[objDia.selectedIndex].value;
	else
		dia = objDia.value;
	
	if (objMes.type == 'select-one')
		mes = objMes.options[objMes.selectedIndex].value;
	else
		mes = objMes.value;
	if (objAno.type == 'select-one')
		ano = objAno.options[objAno.selectedIndex].value;
	else
	{		
		ano = objAno.value;
	}
	if (dia == '' && mes == '' && ano == '')
	{
		return true;
	}
	if (ano < 1000 && ano != '')
	{
		alert('O ano deve conter 4 digitos!');
		objAno.focus();
		return false;
		
	}
	if (isNaN(dia) || isNaN(mes) || isNaN(ano))
	{
		alert(mensagem);
		objDia.focus();
		return false;
	}
	diaAux = 0;
	dia = parseInt(dia,10)
	mes = parseInt(mes,10)
	ano = parseInt(ano,10)
		
	switch (mes)
	{
		case 2 :
			if (((ano % 400) == 0) || ((ano % 4) == 0 && (ano % 100) != 0))
				diaAux = 29;
			else
				diaAux = 28;
			break;
		case 1  :
		case 3  :
		case 5  :
		case 7  :
		case 8  :
		case 10 :
		case 12 :
			diaAux = 31;
			break;
		case 4 :
		case 6 :
		case 9 :
		case 11:
			diaAux = 30;
			break;
		default:
			diaAux = 0;
	} 
	if (dia > diaAux || dia < 1)
	{
		alert(mensagem);
		objDia.focus();
		return false;
	}
	else
		return true;
}

function TamanhoMaximo (objeto, maximo)
{
	if (objeto.value.length >  maximo)
		objeto.value = objeto.value.substring(0,maximo);
}	

function FormataCPF(objCPF)
	{
		sAux = '';
		if( objCPF.value != '')
		{
			objCPF.value = objCPF.value.replace('.', '');
			objCPF.value = objCPF.value.replace('.', '');
			objCPF.value = objCPF.value.replace('-', '');
			for (i = 0; i < objCPF.value.length; i++)
			{
				if ((i == 3) || (i == 6))
				{
					sAux = sAux + '.';
				}
				if (i == 9)
				{
					sAux = sAux + '-';
				}
				sAux = sAux + objCPF.value.substr(i, 1)
			}
			objCPF.value = sAux;
		}
	}

	function FormataCGC(objCGC)
	{
		sAux = '';
		if(objCGC.value != '')
		{
			objCGC.value = objCGC.value.replace('.', '');
			objCGC.value = objCGC.value.replace('.', '');
			objCGC.value = objCGC.value.replace('-', '');
			objCGC.value = objCGC.value.replace('/', '');
			for (i = 0; i < objCGC.value.length; i++)
			{
				if ((i == 2) || (i == 5) )
				{
					sAux = sAux + '.';
				}
				if (i == 8)
				{
					sAux = sAux + '/';
				}
				if (i == 12)
				{
					sAux = sAux + '-';
				}
				sAux = sAux + objCGC.value.substr(i, 1)
			}
			objCGC.value = sAux;
		}
	}

function isDate_Function(objData)
{
	if(objData.length == 0) return true;
	if (/*objData.length < 10 || */objData.length == 0 || objData.substring(2,3) != "/" || objData.substring(5,6) != "/")
	{alert('Data deve ser preenchida no formato dd/mm/aaaa !');
	return false;
	}
	var dia,mes,ano
	dia=objData.substring(0,2);
	mes=objData.substring(3,5);
	ano=objData.substring(6,10);
	if (dia == '' && mes == '' && ano == '')
	{
		return true;
	}
	if (ano < 1000 && ano != '')
	{
		alert('O ano deve conter 4 digitos!');
		return false;
	}
	if (isNaN(dia) || isNaN(mes) || isNaN(ano))
	{
		alert('Favor Digitar a Data Corretamente');
		return false;
	}
	diaAux = 0;
	dia = parseInt(dia,10)
	mes = parseInt(mes,10)
	ano = parseInt(ano,10)
		
	switch (mes)
	{
		case 2 :
			if (((ano % 400) == 0) || ((ano % 4) == 0 && (ano % 100) != 0))
				diaAux = 29;
			else
				diaAux = 28;
			break;
		case 1  :
		case 3  :
		case 5  :
		case 7  :
		case 8  :
		case 10 :
		case 12 :
			diaAux = 31;
			break;
		case 4 :
		case 6 :
		case 9 :
		case 11:
			diaAux = 30;
			break;
		default:
			diaAux = 0;
	} 
	if (dia > diaAux || dia < 1)
	{
		alert('Favor Digitar a Data Corretamente');
		return false;
	}
	else
		return true;
}

function avaliacao(c, min, max) {
	var veri = "";
	if(c.type == "text") { //Só tem um campo
		if(isNotEmpty(c.value)) {
			if(c.value >= min && c.value <= max) 
				return true;
			else {
				alert("O campo deve ser preenchido com o intervalo de "+min+" até "+max+"!");
				c.focus();
				return false;
			}
		} else return true;
	} else { //Muito campos para preenchimento
		var i;
		for(i=0;i<c.length;i++) {
			if(c.item(i).value != "" ) 
				veri += c.item(i).value + ",,"
		}
		if(veri.split(",,").length-1 != 0) {
			for(i=0;i<c.length;i++) {
				if(c.item(i).value < min || c.item(i).value > max || c.item(i).value == "" || isNaN(c.item(i).value)) {
					alert("O campo deve ser preenchido com o intervalo de "+min+" até "+max+"!");
					c.item(i).focus();
					return false;
				}				
			}
			return true;
		} else 
			return true;
	}
}	

function enumeracao(c) {
	var veri = "";
	if(c.type == "text") { //Só tem um campo
		if(isNotEmpty(c.value)) {
			if(c.value == 1) 
				return true;
			else {
				alert("O campo deve ser preenchido com o valor 1!");
				c.focus();
				return false;
			}
		} else return true;
	} else { //Muito campos para preenchimento
		var i;
		for(i=0;i<c.length;i++) {
			if(c.item(i).value != "" ) 
				veri += c.item(i).value + ",,"
		}
		if(veri.split(",,").length-1 > 0) {
			if(veri.split(",,").length-1 < c.length) {
				alert("Os campos devem ser preenchido com números na ordem de 1 até " +c.length+"!");
				c.item(0).focus();
				return false;
			} else {
				veri = ",," + veri
				for(i=1;i<=c.length;i++) {
					if(veri.indexOf(",,"+i+",,") < 0) {
						alert("Os campos devem ser preenchido com números na ordem de 1 até " +c.length+"!");
						c.item(0).focus();
						return false;
					}
				}
				return true;
			}
		} else 
			return true;
	}
}

function selecionaRadio(c) {
	var i;
	if(c.type == "radio") {
		if(c.checked == false) {
			alert("Selecione um dos campos!");
			c.focus();
			return false;			
		} else return true;
	} else {
		for(i=0;i<c.length;i++) {
			if(c.item(i).checked == true) {
				return true;
			}
		}
		alert("Selecione um dos campos!");
		c.item(0).focus();
		return false;					
	}
}

function selecionaCheck(c) {
	var i;
	if(c.type == "checkbox") {
		if(c.checked == false) {
			alert("Selecione um dos campos!");
			c.focus();
			return false;			
		} else return true;
	} else {
		for(i=0;i<c.length;i++) {
			if(c.item(i).checked == true) {
				return true;
			}
		}
		alert("Selecione uma das opções!");
		c.item(0).focus();
		return false;					
	}
}
