
/* ----------------------------  clase TextoMin  ---------------------------- */

function esTextMinValido()
{
    if (this.value().length<this.minLong)
    {
      alert(this.desc+": "+this.value()+" tiene menos de "+this.minLong+" caracteres.");
      return false;
    }

    return true;;
}

function textoMinValue()
{
  return this.campo.value;
}

/*
 * TextoMin
 */
function TextoMin(campo, desc, formulario, size, minlength, maxlength, value)
{
  document.writeln("<input type='text' name='"+campo+"' size='"+size+"' maxlength='"+maxlength+"' value='"+value+"'>");

  this.desc = desc;
  this.formu = formulario;
  this.minLong = minlength;
  this.campo = document[formulario][campo];

  this.esValido = esTextMinValido;
  this.value = textoMinValue;
}

/* ------------------------  fin de la clase TextoMin  ------------------------ */

/* ----------------------------  clase EnteroPos  ---------------------------- */

function esEnteroPosValido()
{
    var aux = this.n.value;

    while (aux.charAt(0)=='0' && aux.length>1)
      aux = aux.substring(1,aux.length);


    var n = parseInt(aux);
    var r = (""+n)==aux && n>0;

    if (!r)
      alert(this.desc+": "+this.n.value+" no es mayor que cero.");
    else
      this.n.value = aux;

    return r;
}

function enteroPosValue()
{
  return this.n.value;
}

/*
 * EnteroPos
 */
function EnteroPos(entero, desc, formulario, size, maxlength, value)
{

  document.writeln("<input type='text' name='"+entero+"' size='"+size+"' maxlength='"+maxlength+"' value='"+value+"'>");

  this.desc = desc;
  this.formu = formulario;
  this.n = document[formulario][entero];

  this.esValido = esEnteroPosValido;
  this.value = enteroPosValue;
}

/* ------------------------  fin de la clase EnteroPos  ------------------------ */

/* ------------------------------  clase Fecha  ------------------------------ */

/*
 * método de la clase Fecha que retorna true si el año es bisiesto
 */
function bisiesto()
{
  return true;
}

/*
 * retorna el dia
 */
function dameDia()
{
  return this.dias.options[this.dias.selectedIndex].value;
}

/*
 * retorna el mes
 */
function dameMes()
{
  return this.meses.options[this.meses.selectedIndex].value;
}

/*
 * retorna la descripción del mes
 */
function dameDescMes()
{
  return this.meses.options[this.meses.selectedIndex].text;
}

/*
 * método de la clase Fecha que retorna true si la fecha es valida
 */
function comprobar()
{
  if (!this.ano.esValido())
  {
    return false;
  }

  if (this.ano.value()<=0)
  {
    alert(this.ano.desc+": "+this.ano.value()+" no es mayor que 0.");
    return false;
  }

  var mes = this.dameMes();
  var dia = this.dameDia();

  if (mes==2)
  {
    var tope;

    if (this.esBisiesto())
      tope=29;
    else
      tope=28;

    if (dia>tope)
    {
      alert(this.desc+".\n"+"En el año "+this.ano.value()+" Febrero sólo tiene "+tope+" días.");
      return false;
    }
  }
  else if ((mes==4 || mes==6 || mes==9 || mes==11) && dia>30)
  {
    alert(this.desc+".\n"+this.dameDescMes()+" sólo tiene 30 días.");
    return false;
  }

  eval ("document."+this.formu+"."+this.fecha+".value = \""+dia+"/"+mes+"/"+this.ano.value()+"\"")

  return true;
}

/*
 * Constructor
 */
function Fecha(fecha, desc, formulario, defecto)
{
  var defDia = 1;
  var defMes = 1;
  var defAno = "";

  if (defecto != "")
  {
    var sep1 = defecto.indexOf("/");
    defDia = defecto.substring(0,sep1);
    while (defDia.charAt(0)=='0')
      defDia = defDia.substring(1,defDia.length);
    sep1++;
    var sep2 = defecto.indexOf("/",sep1);
    defMes = defecto.substring(sep1,sep2);
    while (defMes.charAt(0)=='0')
      defMes = defMes.substring(1,defMes.length);
    sep2++;
    defAno = defecto.substring(sep2,defecto.length);
    while (defAno.charAt(0)=='0')
      defAno = defAno.substring(1,defAno.length);
  }

  document.writeln("<input type='hidden' name='"+fecha+"' value=''>");

  document.writeln("<select name='"+fecha+"_dia' size='1'>");
  for (i=1 ; i<32 ; i++)
    document.writeln("  <option value='"+i+"'>"+i+"</option>");
  document.writeln("</select>");

  document.writeln(" de ");

  document.writeln("<select name='"+fecha+"_mes' size='1'>");
  document.writeln("  <option value='1'>Enero</option>");
  document.writeln("  <option value='2'>Febrero</option>");
  document.writeln("  <option value='3'>Marzo</option>");
  document.writeln("  <option value='4'>Abril</option>");
  document.writeln("  <option value='5'>Mayo</option>");
  document.writeln("  <option value='6'>Junio</option>");
  document.writeln("  <option value='7'>Julio</option>");
  document.writeln("  <option value='8'>Agosto</option>");
  document.writeln("  <option value='9'>Septiembre</option>");
  document.writeln("  <option value='10'>Octubre</option>");
  document.writeln("  <option value='11'>Noviembre</option>");
  document.writeln("  <option value='12'>Diciembre</option>");
  document.writeln("</select>");

  document.writeln(" de ");

  this.desc = desc;
  this.formu = formulario;
  this.dias = document[formulario][fecha+"_dia"];
  this.dias.selectedIndex = defDia-1;
  this.meses = document[formulario][fecha+"_mes"];
  this.meses.selectedIndex = defMes-1;
  this.ano = new EnteroPos(fecha+"_ano", "año de "+this.desc, formulario, 4, 4, defAno);
  this.fecha = fecha;

  this.esValido = comprobar;
  this.esBisiesto = bisiesto;
  this.dameDia = dameDia;
  this.dameMes = dameMes;
  this.dameDescMes = dameDescMes;
}

/* ---------------------------  clase Pension  -------------------------- */

function Pension(pension, desc, formulario)
{
  document.writeln("<input type='hidden' name='"+pension+"' value=''>");

	  document.writeln("<select name='"+pension+"' size='1'>");
		  document.writeln("  <option value='1'>Sólo alojamiento</option>");
		  document.writeln("  <option value='2'>Alojamiento y desayuno</option>");
	  document.writeln("</select>");

  this.desc = desc;
  this.formu = formulario;
  this.pens = document[formulario][pension];
  this.pens.selectedIndex = 1;
  this.damepension = damepension;
}

function damepension()
{
  return this.pens.options[this.pens.selectedIndex].value;
}

/* ---------------------------  fin de clase Pension  -------------------------- */

function enviarSi (f , valor)
{
  if (valor==true)
    document[f].submit();
}



