
// requerido
// min
// mask
// msg
// tipo

function ValidarFormulario (Formulario)
{
	var Aux  = '';
	var i    = 0;
	var l    = Formulario.elements.length;
	var item = null;
	var Msg  = '';
	var Req  = false;

	for (i = 0; i < l; i++)
	{	item = Formulario.elements [i];
		if (item.type == 'text');
		{	Msg = item.getAttribute ('msg');
			if (! Msg) Msg = item.name;
// requerido			
			Aux = item.getAttribute ('requerido');
			if (Aux && Aux.asBoolean ())
			{	Req = true;
				if (item.value.Vacio ()) 
				{	alert ('Tiene que indicar el siguiente dato: ' + Msg);
					item.focus ();
					return false;
				}
			}
// min
			Aux = item.getAttribute ('min');
			if (Aux && Aux.asInteger () && item.value.length < Aux.asInteger ())
			{	alert ('El dato ' + Msg + ' tiene que tener un mínimo de ' + Aux + ' caracteres.');
				item.focus ();
				return false;
			}
// mask
			Aux = item.getAttribute ('mask');
			if (Aux && ! item.value.Vacio () && ! ValidarMascara (item, Aux, Req)) return false;
// tipo
			Aux = item.getAttribute ('tipo');
			if (Aux && ! item.value.Vacio ())
			{	switch (Aux.toUpperCase ())
				{	case 'FLOAT': 
						if (isNaN (item.value.asFloat ()))
						{	alert ('El valor del campo ' + Msg + ' no es correcto.');
							item.focus ();
							return false;
						}
						break;
					case 'INT':
						if (isNaN (item.value.asFloat ()))
						{	alert ('El valor del campo ' + Msg + ' no es correcto.');
							item.focus ();
							return false;
						}
						break;
					default:
						alert ('El tipo ' + Tipo + ' indicado en ' + Msg + ' es incorrecto.');
						return false;
				}
			}
		}
	}
	return true;
}


function ValidarMascara (Item, Mascara, Req)
{
	var Email  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	var Msg    = Item.getAttribute ('msg');
	
	if (! Msg) Msg = Item.name;
	switch (Mascara.toUpperCase ())	
	{	case 'EMAIL':
			if (Email.test (Item.value.Trim ())) return (true);
			alert ('El campo ' + Msg + ' no es correcto.');
			Item.focus ();
			return (false);
	}
	return (false);
}


//////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////


function ActivarControles (oForm, sClase)
{
	var i       = 0;
	var Control = null;

	for (i = oForm.elements.length -1; i >= 0; i--)
	{	Control = oForm.elements [i];
		if (Control.type == 'text')
		{	Control.className = 'txt' + sClase;
			Control.readOnly  = false;
		} else if (Control.type == 'button')
		{	Control.className = 'btn' + sClase;
		}
	}

}


function RadioValue (RadioButton)
{
	var Result = "";
	var i = _RadioIndex (RadioButton);

	if (i >= 0) Result = RadioButton [i].value;
	return (Result);
}

function _RadioIndex (RadioButton)
{
	var i = 0;
	var Result = -1;
	
	while (i < RadioButton.length && Result == -1)
	{	if (RadioButton [i].checked) { Result = i; }
		i++;
	}
	return (Result);
}

