/******************************************************************************
  Calcula la fecha de salida dependiendo de la fecha de entrada y
  del numero de noches
  fentrada = fecha de entrada (entra en formato dd-mm-aaaa)
  nnoches = numero de noches
******************************************************************************/
function calcula_fecha_salida(fentrada,nnoches){

  //Creo un objeto de tipo fecha
  var myDate = new Date();
  var dd = 0;     //dia
  var mm = 0;     //mes
  var aaaa = 0;   //año

  dd = fentrada.substr(0,2);
//  mm = fentrada.substr(3,2) - 1;  //-1 porque coge un mes de más
  mm = fentrada.substr(3,2);
  aaaa = fentrada.substr(6,4);

  //Establece la fecha de entrada al hotel en formato aaaa,mm,dd
  myDate.setFullYear(aaaa,mm,dd);

  //Le sumo el numero de noches
  myDate.setDate(myDate.getDate() + nnoches);

  //Devuelve la fecha correcta
  //return myDate.toLocaleString();   //Esto lo pone en formato Español
  //return myDate.toString();
  
  return fentrada;
}

//document.write(calcula_fecha_salida('29-03-2006',3));



//inicio calcular días

  var aFinMes = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);

  function finMes(nMes, nAno){
   return aFinMes[nMes - 1] + (((nMes == 2) && (nAno % 4) == 0)? 1: 0);
  }

   function padNmb(nStr, nLen, sChr){
    var sRes = String(nStr);
    for (var i = 0; i < nLen - String(nStr).length; i++)
     sRes = sChr + sRes;
    return sRes;
   }

   function makeDateFormat(nDay, nMonth, nYear){
    var sRes;
    sRes = padNmb(nDay, 2, "0") + "-" + padNmb(nMonth, 2, "0") + "-" + padNmb(nYear, 4, "0");
    return sRes;
   }

  function incDate(sFec0){
   var nDia = parseInt(sFec0.substr(0, 2), 10);
   var nMes = parseInt(sFec0.substr(3, 2), 10);
   var nAno = parseInt(sFec0.substr(6, 4), 10);
   nDia += 1;
   if (nDia > finMes(nMes, nAno)){
    nDia = 1;
    nMes += 1;
    if (nMes == 13){
     nMes = 1;
     nAno += 1;
    }
   }
   return makeDateFormat(nDia, nMes, nAno);
  }

  function decDate(sFec0){
   var nDia = Number(sFec0.substr(0, 2));
   var nMes = Number(sFec0.substr(3, 2));
   var nAno = Number(sFec0.substr(6, 4));
   nDia -= 1;
   if (nDia == 0){
    nMes -= 1;
    if (nMes == 0){
     nMes = 12;
     nAno -= 1;
    }
    nDia = finMes(nMes, nAno);
   }
   return makeDateFormat(nDia, nMes, nAno);
  }

  function addToDate(sFec0, sInc){
   var nInc = Math.abs(parseInt(sInc));
   var sRes = sFec0;
   if (parseInt(sInc) >= 0)
    for (var i = 0; i < nInc; i++) sRes = incDate(sRes);
   else
    for (var i = 0; i < nInc; i++) sRes = decDate(sRes);
   return sRes;
  }

  function recalcF1(){
   with (document.forms[4]){
    fsalida.value = addToDate(fentrada.value, snumnoches.value);
   }
  }

//fin calcular días





/*****************************************************************************
  Hace que se muestren y oculten las capas de las habitaciones
******************************************************************************/
function mostrarcapas(numerohab){
  if(numerohab!=""){

    //muestra las capas seleccionadas
    for(i=2;i<=numerohab;i++){
      document.getElementById('habitacion'+i).style.display="block";
	  document.getElementById('capaEdadesMenoresHotel'+i).style.display="block";
	}

    //oculta el resto de capas
    for(i=9;i>numerohab;i--){
      document.getElementById('habitacion'+i).style.display="none";
	  document.getElementById('capaEdadesMenoresHotel'+i).style.display="none";
    }

  }
  else{
    ocultarcapas();
  }
}


function ocultarcapas(){

  //oculta todas las capas
  for(j=1;j<=9;j++){
    document.getElementById('habitacion'+j).style.display="none";
    document.getElementById('capaEdadesMenoresHotel'+j).style.display="none";
  }
}




/*****************************************************************************
  Hace que se muestren y oculten las capas de las edades
******************************************************************************/
function mostrarcapas_edades(numerohab,numchild){



  //alert('numero de habitación: ' + numerohab + ' || numero de niños: ' + numchild);
  document.getElementById('capaEdadesMenoresHotel'+numerohab).style.display='block';

  if(numchild!=""){

    //muestra las capas seleccionadas
    if(numchild == 1){
//	document.getElementById('column_menor'+numerohab).style.display="block";
       document.getElementById('edades_hab'+numerohab+'A').style.display="block";
       document.getElementById('edades_hab'+numerohab+'B').style.display="none";
//      document.getElementById('edades_hab'+numerohab+'B').value="";
       document.getElementById('edades_hab'+numerohab+'C').style.display="none";
//      document.getElementById('edades_hab'+numerohab+'C').value="";
    }
    if(numchild == 2){
//	document.getElementById('column_menor'+numerohab).style.display="block";
      document.getElementById('edades_hab'+numerohab+'A').style.display="block";
      document.getElementById('edades_hab'+numerohab+'B').style.display="block";
      document.getElementById('edades_hab'+numerohab+'C').style.display="none";
//      document.getElementById('edades_hab'+numerohab+'C').value="";
    }
    if (numchild == 3){
//	document.getElementById('column_menor'+numerohab).style.display="block";
      document.getElementById('edades_hab'+numerohab+'A').style.display="block";
      document.getElementById('edades_hab'+numerohab+'B').style.display="block";
      document.getElementById('edades_hab'+numerohab+'C').style.display="block";
    }

  }
  else{
    ocultarcapas_edades(numerohab);
  }
}

function ocultarcapas_edades(numerohab){

  //oculta todas las capas
  //document.getElementById('column_menor'+numerohab).style.display="none";

  document.getElementById('capaEdadesMenoresHotel'+numerohab).style.display='none';


  document.getElementById('edades_hab'+numerohab+'A').style.display="none";
//  document.getElementById('edades_hab'+numerohab+'A').value="";
  document.getElementById('edades_hab'+numerohab+'B').style.display="none";
//  document.getElementById('edades_hab'+numerohab+'B').value="";
  document.getElementById('edades_hab'+numerohab+'C').style.display="none";
//  document.getElementById('edades_hab'+numerohab+'C').value="";

}





/*****************************************************************************
  Mete el número de adultos dependiendo de la selección de la habitación
******************************************************************************/
function meter_adultos(numerohab,tipoh){

  //caso individual
  if(tipoh == '10'){
    document.getElementById('adulto'+numerohab).value = "1";
  }
  //caso doble
  if(tipoh == '9'){
    document.getElementById('adulto'+numerohab).value = "2";
  }
  //caso triple
  if(tipoh == '7'){
    document.getElementById('adulto'+numerohab).value = "3";
  }


//  alert("Habitación " + numerohab + " || tipo: " + tipoh);
//  alert("Habitación " + numerohab + " || Adultos: " + document.getElementById('adulto'+numerohab).value);

}



/*****************************************************************************
  Valida los datos del index y si son correctos los manda a procesar.php
******************************************************************************/
function comprobar_datos_index_hoteles(){


  var todo_correcto;  //comprueba si los datos son correctos
  var cadena_error;   //almacena la cadena con los errores para mostrarla posteriormente
  var num_error;      //cuentra el nº de errores encontrados

  //variables para generar la cadena de paso de parámetros
  var cadena;         //almacena la cadena con los datos para pasar via GET
  var jpais;
  var jciudad;
  var jfentrada;
  var jnumnoches;
  var jfsalida;
  var jnumhab;
  var jcategoria;
  
  todo_correcto = true;
  cadena_error = "Se han encontrado los siguientes errores: \n\n";
  num_error = 1;


  if(document.forms[4].spaises.value == ''){
    todo_correcto = false;                                //establezco la variable a FALSE
    //alert("Debe introducir el nombre de la ciudad.");   //muestro mensaje de error
    cadena_error += num_error + ". Debe introducir el nombre de la ciudad\n";
    num_error++;
    //document.miform.spaises.focus();                      //pongo el foco en el campo que falla

  }

  if(document.forms[4].shabitaciones.value == ''){
    todo_correcto = false;
    //alert("Debe seleccionar al menos una habitación.");
    cadena_error += num_error + ". Debe seleccionar al menos una habitación\n";
    num_error++;
    //document.miform.shabitaciones.focus();
  }
  else{

    var tipohab = new Array();
    var adulto =  new Array();
    var menores = new Array();

    //almaceno los datos en un array
    for(i=1;i<=document.forms[4].shabitaciones.value;i++){

      tipohab[i] = document.getElementById('tipohab'+i).value;
      adulto[i] = document.getElementById('adulto'+i).value;

      menores[i] = new Array();

      menores[i][0] = document.getElementById('schild'+i).value;

      //si vienen niños meto la edad de estos
      if(document.getElementById('schild'+i).value != ''){

        menores[i][1] = document.getElementById('edadchild'+i+'A').value; //posición 1 para la edad del niño 1
        menores[i][2] = document.getElementById('edadchild'+i+'B').value; //posición 2 para la edad del niño 2
        menores[i][3] = document.getElementById('edadchild'+i+'C').value; //posición 3 para la edad del niño 3

        if(document.getElementById('schild'+i).value == "1"){
          if(menores[i][1] == ''){
            todo_correcto = false;
            //alert("Debe seleccionar la edad del niño.");
            cadena_error += num_error + ". Debe seleccionar la edad del niño en la habitación " + i + "\n";
            num_error++;
          }
        }
        else if(document.getElementById('schild'+i).value == "2"){
          if(menores[i][1] == '' || menores[i][2] == ''){
            todo_correcto = false;
            //alert("Debe seleccionar la edad de los niños.");
            cadena_error += num_error + ". Debe seleccionar la edad de los niños en la habitación " + i + "\n";
            num_error++;
          }
        }
        else if(document.getElementById('schild'+i).value == "3"){
          if(menores[i][1] == '' || menores[i][2] == '' || menores[i][3] == ''){
            todo_correcto = false;
            //alert("Debe seleccionar la edad de los niños.");
            cadena_error += num_error + ". Debe seleccionar la edad de los niños en la habitación " + i + "\n";
            num_error++;
          }
        }


      }
      else{

        menores[i][0] = '' //posición 0 para el número de niños
        menores[i][1] = ''; //posición 1 para la edad del niño 1
        menores[i][2] = ''; //posición 2 para la edad del niño 2
        menores[i][3] = ''; //posición 3 para la edad del niño 3

      }

    }

  }


/*
  //muestra todos los datos que me llegan
  alert("Pais: " + document.miform.pais.value + "\n" +
        "Ciudad: " + document.miform.spaises.value + "\n" +
        "Fecha de entrada: " + document.miform.fentrada.value + "\n" +
        "Nº noches: " + document.miform.snumnoches.value + "\n" +
        "Fecha de salida: " + document.miform.fsalida.value + "\n" +
        "Nº habitaciones: " + document.miform.shabitaciones.value + "\n" +
        "Categoría: " + document.miform.estrellas.value);


  for(i=1;i<=document.miform.shabitaciones.value;i++){
    alert("Habitación " + i + "  Tipo de habitación: " + tipohab[i] + " || Nº adultos: " + adulto[i] + " || Nº de niños: " + menores[i][0] + " || Edad menor 1: " + menores[i][1] +  " || Edad menor 2: " + menores[i][2] +  " || Edad menor 3: " + menores[i][3]);
  }
*/



  /*DATOS PARA GENERAR LA CADENA DE ENVIO*/

  jpais = document.forms[4].pais.value
  jciudad = document.forms[4].spaises.value
  jfentrada = document.forms[4].fentrada.value
  //jnumnoches = document.forms[4].snumnoches.value
  jfsalida = document.forms[4].fsalida.value
  //jnumhab = document.forms[4].shabitaciones.value
  //jcategoria = document.forms[4].estrellas.value; 
  //si no hay errores genera la cadena y la pasa via GET
  if(todo_correcto == true){

    cadena = "index_datos.php?";

    cadena += "pais="+jpais+"";                             //código del país
    cadena += "&ciudad="+jciudad+"";                        //ciudad
    cadena += "&fentrada="+jfentrada+"";                    //fecha de entrada
    cadena += "&fsalida="+jfsalida+"";                      //fecha de salida
    //cadena += "&numero_noches="+jnumnoches+"";              //número de noches
    //cadena += "&numero_habitaciones="+jnumhab+"";           //número de habitacion

    /*for(i=1;i<=jnumhab;i++){

      cadena += "&tipo_habitacion"+i+"="+tipohab[i]+"";     //tipo de habitación
      cadena += "&adultos"+i+"="+adulto[i]+"";              //número de adultos de cada habitación

      if(menores[i][0] != ''){
        cadena += "&menores"+i+"="+menores[i][0]+"";        //número de menores de cada habitación
      }

      if(menores[i][1] != ''){
        cadena += "&edad_menor"+i+"A="+menores[i][1]+"";    //edades de los menores
      }
      if(menores[i][2] != ''){
        cadena += "&edad_menor"+i+"B="+menores[i][2]+"";
      }
      if(menores[i][3] != ''){
        cadena += "&edad_menor"+i+"C="+menores[i][3]+"";
      }
    }

    cadena += "&categoria="+jcategoria+"";
*/
    //alert(cadena);
    document.location.href = cadena;

  }
  //si hay errores los muestra
  else{
    alert(cadena_error);
  }

}

