function validarFormulario()
{
	vArgs = validarFormulario.arguments;
	vRetorno = true;
	
	for (i = 0; i < (vArgs.length - 2); i += 3)
	{
		vTipoTeste = vArgs[i+2];
		vCampo = document.getElementById(vArgs[i]);
		vLabel = vArgs[i+1];
				
					
		if (vTipoTeste.charAt(0) == 'R')
		{
			if (!preenchido(vCampo))
			{
				alert(vLabel +" é requerido.");
				vCampo.value = "";
				vRetorno = false;
			}
		}
		
		if (vTipoTeste.indexOf('isSelect') != -1)
		{
			if (!selecionado(vCampo))
			{
				alert(vLabel +" é requerido.\nSelecione uma opção.");
				vRetorno = false;
			}
		}
		else if (vTipoTeste.indexOf('isEmail') != -1)
		{
			if (!email(vCampo))
			{
				alert(vLabel +" precisa conter um email válido.");
				vCampo.value = "";
				vRetorno = false;
			}
		}
		else if (vTipoTeste.indexOf('isDate') != -1)
		{
			if (!data(vCampo))
			{
				alert(vLabel +" precisa conter uma data válida.");
				vCampo.value = "";
				vRetorno = false;
			}
		}
		else if (vTipoTeste.indexOf('isTrue') != -1)
		{
			if (!verdadeiro(vCampo))
			{
				alert(vLabel);
				vRetorno = false;
				break;
			}
		}
		
		if (!vRetorno)
		{
			vCampo.focus();
			return vRetorno;
		}
	}
	
	return vRetorno;
}

function preenchido(pCampo)
{
	if (pCampo.value == "")
	{
		return false;
	}
	else
	{
		return true;
	}
}

function selecionado(pCombo)
{
	if (pCombo.options[pCombo.selectedIndex].value == "")
	{
		return false;
	}
	else
	{
		return true;
	}
}

function email(pCampo)
{
	vFiltro = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/
		
	if (!vFiltro.test(pCampo.value))
	{
 		return false;
	}
	else
	{
		return true;
	}   
}

function data(pCampo)
{
	vFiltro = /^((0?[1-9]|[12]\d)\/(0?[1-9]|1[0-2])|30\/(0?[13-9]|1[0-2])|31\/(0?[13578]|1[02]))\/(19|20)?\d{2}$/;
	
	if (!vFiltro.test(pCampo.value))
	{
 		return false;
	}
	else
	{
		return true;
	}
}

function verdadeiro(pCampo)
{
	if (pCampo.value != "true")
	{
		return false;
	}
	else
	{
		return true;
	}
}