function Validar()
	{if (document.Form.login.value == "")    {alert ('Por favor ingrese su login');	   return false; } 
	 if (document.Form.password.value == "") {alert ('Por favor ingrese su password'); return false; } 
return true; }


function Checa(Temas)
	{
	this.Temas = Temas;
	this.Verifica = _Verifica;
	return this;
	}
	
function _Verifica(Tema)
{
	if (t.Temas.search(Tema)==-1)
		var Str = "<input type=checkbox name=checkbox value="+Tema+">"
	else		
		var Str = "<input type=checkbox name=checkbox value="+Tema+" checked>"	
	document.write(Str);
return true;}	

function ValidarRadio()
{
	P_1 = document.Form.P_1.cheked;
	P_2 = document.Form.P_2.value;
	P_3 = document.Form.P_3.value;
	P_4 = document.Form.P_4.value;
	P_5 = document.Form.P_5.value;
	P_6 = document.Form.P_6.value;
	P_7 = document.Form.P_7.value;
	P_8 = document.Form.P_8.value;

	if (P_1 == "" || P_2 == "" || P_3 == "" || P_4 == "" || P_5 == "" || P_6 == "" || P_7 == "" || P_8 == "" ) 
		{alert ('Por favor conteste todas las preguntas');
		return false;}
return false; // No creo que esté bien. Creo que debería ser return true;
}

function ExFormaCadena(CAMPOS) // No la borré porqie no me acordaba si era llamada por otra función. 3/oct/03
{	var CADENA3 = "";
	for(j=0;j<CAMPOS.length-1;j++)
	{
		if(CAMPOS[j].type == "select-one") 	for(i=0;i<CAMPOS[j].length;i++)	if(CAMPOS[j][i].selected == true) CADENA3 += CAMPOS[j][i].value + "/*/"; 
		if(CAMPOS[j].type == "textarea")	if(CAMPOS[j].value != "") 
			{
			CADENA3 += CAMPOS[j].value+ "/*/";
			}; 
			else CADENA3 += "Vacío"+ "/*/";
		if(CAMPOS[j].type == "radio") 		if(CAMPOS[j].checked) CADENA3 += CAMPOS[j].value+ "/*/";
		if(CAMPOS[j].type == "text")		if(CAMPOS[j].value != "") 
			{
			CADENA3 += CAMPOS[j].value+ "/*/";
			}; 
			else CADENA3 += "Vacío"+ "/*/";
	}
	CAMPOS['CADENA3'].value = CADENA3;
	return true;
}

function FormaCadena(CAMPOS)
{	
	var NFil = CAMPOS[CAMPOS.length-5].value.length/11;
	var CADENA3 = Codifica(NFil);
	for (var j=2; j< 2+3*NFil; j=j+3)
	{
		var Temp = CAMPOS[j].value;
		Temp += CAMPOS[j+1].value;
		if (CAMPOS[j+2].value<10)
			Temp += "00" + CAMPOS[j+2].value;
		else
			if (CAMPOS[j+2].value<100)
				Temp += "0" + CAMPOS[j+2].value;
			else
				Temp += CAMPOS[j+2].value;
		Temp = parseInt(Temp,10);
		var Cad = "";
		var Tmp2 = Temp;
		for (var i=1; i<4; i++)
		{
			var Tmp3 = Tmp2%86;
			Cad = Codifica(Tmp3) + Cad;
			Tmp2 = parseInt(Tmp2/86);
		}
		CADENA3 += Cad;
	}
	Cad = parseInt(CAMPOS[0].value,10);
	Temp = "";
	if (CAMPOS[j].checked) 
		Temp+="1";
	else
		Temp+="0";
	Temp += CAMPOS[j+2].value; 
	Temp = parseInt(Temp,10);
	Cad += Codifica(Temp);
	Cad += Codifica(parseInt(CAMPOS[j+3].value,10));	
	CADENA3 += Cad;
//		alert(CADENA3);
	Nmro = "";
	for (var k=0; k<NFil; k++)
	{
		Nmro += Codifica(Claves(0).search(CAMPOS[j+5].value.substr(k*11,11).substr(0,4))/4);
		Nmro += Codifica(Claves(1).search(CAMPOS[j+5].value.substr(k*11,11).substr(5,2))/4);
		Nmro += Codifica(Claves(2).search(CAMPOS[j+5].value.substr(k*11,11).substr(8,3))/5);
	}
	CADENA3 += Nmro;
	if(CAMPOS[1].value != "")
		CADENA3 += "/*/" + CAMPOS[1].value+ "/*/";
	else
		CADENA3 += "/*/" + "Vacío"+ "/*/";
	if(CAMPOS[j+4].value != "")
		CADENA3 += CAMPOS[j+4].value;
	else
		CADENA3 +=	"Vacío";
	CAMPOS['CADENA3'].value = CADENA3;
	return true;
}


function ValidarPag1(CAMPOS, NoBlancos, NoVacios, Cajas)
// NoBlancos es el no. de variables con radio buttons. Se valida que todas sean contestadas. 
// NoVacios contiene los campos de de radio button que anteceden a un campo de texto que no deben quedar vacíos
// Cajas contiene tripletas(a,b,c). (a,b) es un intervalo de preguntas. c es el número de cajas a contestar 
// entre a y b. Si c es mayor al número de preguntas en el intervalo, quiere decir que no existe una 
// cantidad de preguntas fijas a contestar, pero al menos una sí debe ser contestada.
// En la variable count se cuentan las variables con respuesta. 
// Si esta es menor a NoBlancos, no se avanza.
// Ci es el número de campo que corresponde al radiobutton que está asignado a un otro cuya siguiente variable debe describir a ese otro
{
	var CADENA = "";
	var count=0;    // contabiliza el número de button radio checados
	var count2=0;  // Contabiliza el número de cajitas checadas
	var Guarda = true; // Se hará falsa cuando no se cumpla alguna de las condiciones para avanzar a otra página 
	var	CondicionTxt = true;
	
	for(j=0;j<CAMPOS.length-1;j++)
	{
		if(CAMPOS[j].type == "select-one") 	for(i=0;i<CAMPOS[j].length;i++)	if(CAMPOS[j][i].selected == true) CADENA = CADENA + CAMPOS[j][i].value; //document.write(cadena); //		cadena = "<% Session(\"cadena[ "+ j + "]\") %>";
		if(CAMPOS[j].type == "textarea")	if(CAMPOS[j].value != "") CADENA = CADENA + CAMPOS[j].value;
		if(CAMPOS[j].type == "radio") 		if(CAMPOS[j].checked) {CADENA = CADENA + CAMPOS[j].value;	count++;}
		if(CAMPOS[j].type == "text")
			if(CAMPOS[j].value != "")
			{
		     }
			else CondicionTxt = CondicionTxt && false;
	}// for j
	
	CondiCheckBoxes = true; // Sale verdadera si las respuestas en los CheckBoxes corresponden al número que debe llenarse
	if (arguments.length > 3)
		if (Cajas.length>0)
 			for(j=0;j<Cajas.length-1;j+=3) 
				{for(i=Cajas[j];i<=Cajas[j+1];i++) 
					if(CAMPOS[i].type == "checkbox") 
						if(CAMPOS[i].checked) 
							{CADENA = CADENA + CAMPOS[i].value; count2++};
						if (Cajas[j+2] > Cajas[j+1]-Cajas[j]+1) 
							CondiCheckBoxes = CondiCheckBoxes && (count2 >0); 
						else 
							CondiCheckBoxes = CondiCheckBoxes && (count2 == Cajas[j+2]); // Compara Count2 con el número de cajas que debe llenar en el bloque de cajas respectivo. Si el número de cajas a llenar es mayor que el que puede llenar, entonces debe llenar cualquier número de cajas, excepto cero.
					count2 = 0;	
					}; // Termina aquí el for
					
					
	Condicion = true; // Esta condicion es verdadera si todo cuadro (que sigue a un radio button) que se debe llenar va lleno
	
	if (arguments.length > 2) if (NoVacios.length>0) for(j=0;j<NoVacios.length;j++) Condicion = Condicion && (( CAMPOS[NoVacios[j]].checked && CAMPOS[NoVacios[j]+1].value != "" ) || !CAMPOS[NoVacios[j]].checked);
	if ((count==NoBlancos) && CondiCheckBoxes && Condicion && CondicionTxt)
		{CAMPOS['CADENA'].value = CADENA; return true;} 
	if ((count < NoBlancos) && !CondiCheckBoxes && !Condicion && CondicionTxt)
		alert("Dejó botones y casillas sin seleccionar, y textos sin capturar");
	if ((count < NoBlancos) && !CondiCheckBoxes && Condicion && CondicionTxt)
		alert("Dejó botones y casillas sin seleccionar");
	if ((count < NoBlancos) && CondiCheckBoxes && !Condicion && CondicionTxt)
		alert("Dejó botones sin seleccionar y textos sin capturar");
	if ((count == NoBlancos) && !CondiCheckBoxes && !Condicion && CondicionTxt)
		alert("Dejó casillas sin seleccionar y textos sin capturar");
	if ((count == NoBlancos) && CondiCheckBoxes && !Condicion && CondicionTxt)
		alert("Dejó textos sin capturar");
	if ((count == NoBlancos) && !CondiCheckBoxes && Condicion && CondicionTxt)
		alert("Dejó casillas sin seleccionar");
	if ((count < NoBlancos) && CondiCheckBoxes && Condicion && CondicionTxt) 
		alert("Dejó botones sin seleccionar");
//-------------------------------------------------------------------------------------------
	if ((count < NoBlancos) && !CondiCheckBoxes && !Condicion && !CondicionTxt)
		alert("Dejó botones y casillas sin seleccionar, y textos sin capturar");
	if ((count < NoBlancos) && !CondiCheckBoxes && Condicion && !CondicionTxt)
		alert("Dejó botones y casillas sin seleccionar, y textos sin capturar");
	if ((count < NoBlancos) && CondiCheckBoxes && !Condicion && !CondicionTxt)
		alert("Dejó botones sin seleccionar y textos sin capturar");
	if ((count == NoBlancos) && !CondiCheckBoxes && !Condicion && !CondicionTxt)
		alert("Dejó casillas sin seleccionar y textos sin capturar");
	if ((count == NoBlancos) && CondiCheckBoxes && !Condicion && !CondicionTxt)
		alert("Dejó textos sin capturar");
	if ((count == NoBlancos) && !CondiCheckBoxes && Condicion && !CondicionTxt)
		alert("Dejó casillas sin seleccionar y textos sin capturar");
	if ((count < NoBlancos) && CondiCheckBoxes && Condicion && !CondicionTxt)
		alert("Dejó botones sin seleccionar, y textos sin capturar");
	if ((count==NoBlancos) && CondiCheckBoxes && Condicion && !CondicionTxt)
		alert("Dejó textos sin capturar");

return false;
}

function Activar(CAMPOS,CmpoInicio,CmpoFinal)
{
	Condi2 = false;
	for(j=CmpoInicio;j<CmpoFinal;j++) Condi2 = Condi2 || (CAMPOS[j].checked);
	if (Condi2) {CAMPOS[CmpoFinal+1].value = ""; CAMPOS[CmpoFinal+1].disabled = true;}
  	if (CAMPOS[CmpoFinal  ].checked) CAMPOS[CmpoFinal+1].disabled = false;
return true;
} //del la funcion

function SumarEdit(OBJETO, SUMA, CmpoInicio, CmpoFinal, Actual, Salto, CAMPOS)
/*
Esta función funciona para tres valores o más. Si hay gente latosa, como Caro, que quiera dos, que haga su propia rutina.
SUMA  es el valor maximo que debe ser el resultado de la suma
Incio y Final es el rango de los Edits
Actual es el edit del cual fue llamada la funcion
Salto es la cantidad de columnas. Representa las celdas que deben saltarse porque no se evalúan de acuerdo al propósito de la función.
CmpoInicio, CmpoFinal, Actual deben considerarse a partir de CERO
*/
{
  	var Total = parseInt("0",10);
	for(var j=CmpoInicio;j<=CmpoFinal;j++)
		{if( !(j == Actual || j==CmpoFinal)) 
			{if(CAMPOS[j].value == "") CAMPOS[j].value= parseInt("0",10); Total += parseInt(CAMPOS[j].value,10);}
		j=j+Salto-1; }
  	if (OBJETO.value > 100 - Total )
		if (Actual == CmpoFinal)
			{if (OBJETO.value > 100 - Total + parseInt(CAMPOS[CmpoInicio].value )) {OBJETO.value= 100 - Total + parseInt(CAMPOS[CmpoInicio].value ); CAMPOS[CmpoInicio].value = parseInt(0,10 );} 
			else {CAMPOS[CmpoInicio].value = 100 - Total + parseInt(CAMPOS[CmpoInicio].value ) -OBJETO.value;}}
		else {OBJETO.value= 100 - Total; CAMPOS[CmpoFinal].value = 100 - Total - OBJETO.value;}
    else
		if (Actual == CmpoFinal) CAMPOS[CmpoInicio].value = 100 - Total + parseInt(CAMPOS[CmpoInicio].value) - OBJETO.value; 
		else CAMPOS[CmpoFinal].value = 100 - Total - OBJETO.value; 
}

function ValMinMax(OBJETO, xMin, xMax, CAMPOS)
// Esta función pretende impedir que se introduzcan números menires a xMin y mayores a xMax
{
if (OBJETO.value < xMin) OBJETO.value = xMin;
if (OBJETO.value > xMax) OBJETO.value = xMax;
}

/*
function fecha_de_hoy()
{
var FechaHoy = new Date()
	F_Hoy = "Jueves "
	F_Hoy += FechaHoy.getDate();
	F_Hoy += " de " + FechaHoy.getYear();
	return  F_Hoy;
}

function FnctnSubmit(CAMPOS, Respuesta1, Respuesta2, Solcn1)
	{
	CAMPOS['Prueba1'].value = Respuesta1;
	CAMPOS['Prueba2'].value = Respuesta2;
	CAMPOS['posCrta'].value = Solcn1;
	CAMPOS.submit();
	}
 */   

