function ValIndex(arr, val)
{
	for(var i=0; i<arr.length; i++) if(val==arr[i]) return i;
	return null;
}

function ValidateByAttribute(form)
{
	var isError=false;
	var msgError="Por favor, complete todos los campos requeridos";
	var arrRadios=new Array();
	var arrStates=new Array();
	var arrObjects=new Array();

	var element;
	for(var i=0; element=form.elements[i]; i++)
	{
		if(element.type=="textarea" || element.type=="text" || element.type=="select-one" || element.type=="select-multiple")
		{
			if(element.getAttribute("required") && !element.value)
			{
				isError=true; element.focus();
				if(element.type.search(/select/i)!=-1) msgError="Por favor, selecione uma op\u00e7\u00e4o da lista";
				break;
			}
		}
		else if(element.type=="radio")
		{
			if(element.getAttribute("required"))
			{
				var idxRadio=ValIndex(arrRadios, element.name);
				if(idxRadio==null)
				{
					arrRadios.push(element.name);
					arrStates.push(element.checked);
					arrObjects.push(element);
				}
				else
				{
					if(!arrStates[idxRadio]) arrStates[idxRadio]=element.checked;
				}
			}
		}
	}

	for(var i=0; i<arrStates.length; i++)
	{
		if(!arrStates[i])
		{
			isError=true; msgError="Selecione por favor uma das op\u00e7\u00f6es";
			arrObjects[i].focus(); break;
		}
	}

	if(isError) alert(msgError);

	return !isError;
}

function ValidateEmail(element)
{
	var reEmail=/\w+@[\w\.]+\.\w+/;
	if(!reEmail.test(element.value))
	{
		alert("Incorpore por favor um endere\u00e7o v\u00e1lido do E-mail");
		element.focus();
		return false;
	}
	return true;
}