function validar(forma, showAlert)
{
	var valido = true;
	var elementos = forma.elements;
	var grupos = new Array();
	var selected = new Array();
	var msg = "";
	for( var i = 0; i < elementos.length; i++)
	{
		var elemento = elementos[i];
		var tmpStr = elementos[i].value.replace(" ", "");
		if(elemento.id.indexOf("req") != -1 && elemento.id.indexOf("error") == -1)
		{
			var tmpId = "error" + elemento.id;		
			var elementoError = (document.getElementById)? document.getElementById(tmpId) : document.all[tmpId];			
			elementoError.style.display = "";
			
			if(tmpStr == "")
			{
				elementoError.style.display = "";
				elemento.style.backgroundColor = "#FFFFCC";
				msg += elementoError.innerHTML + "\n";
				valido = false;
			}
			else
			{
				elementoError.style.display = "none";
				elemento.style.backgroundColor = "#FFFFFF";
			}
		}
		if(elemento.id.indexOf("num") != -1  && elemento.id.indexOf("error") == -1)
		{
			var tmpId = "error" + elemento.id;
			var elementoError = (document.getElementById)? document.getElementById(tmpId) : document.all[tmpId];		
			if(isNaN(parseInt(tmpStr)))
			{
				elemento.value = "";
				elementoError.style.display = "";
				elemento.style.backgroundColor = "#FFFFCC";	
				msg += elementoError.innerHTML + "\n";	
				alert(elementoError.innerHTML);		
				valido = false;
			}
			else
			{
				elemento.style.backgroundColor = "#FFFFFF";			
				elementoError.style.display = "none";
			}
		}
		if(elemento.id.indexOf("sel") != -1 && elemento.id.indexOf("error") == -1)
		{
			var indice = parseInt(elemento.id.substring(elemento.id.indexOf("sel") + 3, elemento.id.length));
			if(selected[indice] != true) selected[indice] = false;
			if(elemento.checked == true)
				if(selected[indice] != true) selected[indice] = true;
		}
		if(elemento.id.indexOf("grupo") != -1 && elemento.id.indexOf("error") == -1)
		{
			var indice = parseInt(elemento.id.substring(elemento.id.indexOf("grupo") + 5, elemento.id.length));
			if(grupos[indice] != true) grupos[indice] = false;
			if(tmpStr != "")
				if(grupos[indice] != true) grupos[indice] = true;
		}
	}
	
		
	for(var i = 0; i < grupos.length; i++)
	{
		var tmpId = "errorGrupo" + i;
		var elementoGrupo = (document.getElementById)? document.getElementById(tmpId) : document.all[tmpId];
		if(grupos[i] == false)
		{
			msg += elementoGrupo.innerHTML + "\n";
			valido = false;
			for( var j = 0; j < elementos.length; j++)
			{
				var elemento = elementos[j];		
				if(elemento.id.indexOf("grupo" + i) != -1)	
					elemento.style.backgroundColor = "#FFFFCC";
			}
			if(elementoGrupo)elementoGrupo.style.display = "";
		}
		else
		{
			for( var j = 0; j < elementos.length; j++)
			{
				var elemento = elementos[j];		
				if(elemento.id.indexOf("grupo" + i) != -1)	
					elemento.style.backgroundColor = "#FFFFFF";
			}		
			if(elementoGrupo)elementoGrupo.style.display = "none";
		}
	}
	
	for(var i = 0; i < selected.length; i++)
	{
		var tmpId = "errorsel" + i;
		var elementoSelected = (document.getElementById)? document.getElementById(tmpId) : document.all[tmpId];
		if(selected[i] == false)
		{
			msg += elementoSelected.innerHTML + "\n";
			valido = false;
			for( var j = 0; j < elementos.length; j++)
			{
				var elemento = elementos[j];		
				if(elemento.id.indexOf("sel" + i) != -1)	
					elemento.style.backgroundColor = "#FFFFCC";
			}
			if(elementoSelected)elementoSelected.style.display = "";
		}
		else
		{
			for( var j = 0; j < elementos.length; j++)
			{
				var elemento = elementos[j];		
				if(elemento.id.indexOf("sel" + i) != -1)	
					elemento.style.backgroundColor = "#FFFFFF";
			}	
			if(elementoSelected)elementoSelected.style.display = "none";
		}
		
	}	
	if(msg.length > 0 && showAlert)
	{ 
		alert("Revise los datos ingresados al formulario:\n=========================\n" + msg);
	}
	return valido;
}


// SCRIPT PARA CAMPO SÓLO NUMEROS
function checkIt(evt){
evt =(evt)?evt :window.event
var charCode =(evt.which)?evt.which :evt.keyCode
if (charCode >31 &&(charCode <48 ||charCode >57)){
// alert ("Este campo sólo acepta números")
return false
}
status =""
return true
}
