//seznam hotelu (v zadavci dokumentaci se trochu lisi od toho, co je na webu), pocet pokoju, pocet dospelych osob, pocet deti a maximlani vek ditete
//zatim posledni polozka v poli je cast url, podle ktere se pak kontroluje shoda s realnou url a nastavuje v selectu hotel podel url
var HOTEL = new Array(
    new Array('Moscow – Spa Hotel Pokrovka', 'HAMOWPOK', 'RU-XX', 'SVO001', 'moscow-pokrovka'),
    new Array('Prague – Riverside Hotel', 'HAPRGRIV', 'CZ-XX', 'PRG001', 'prague-riverside-hotel-prague'),
    new Array('Prague – Pachtuv Palace', 'HAPRGPAC', 'CZ-XX', 'PRG001', 'prague-pachtuv-palace-prague'),
    new Array('Prague – Residence Belgicka', 'HAPRGBEL', 'CZ-XX', 'PRG001', 'prague-residence-belgicka-prague'),
    new Array('Warsaw – Residence Diana', 'HAWAWDIA', 'PL-XX', 'WAW000', 'warsaw-diana'),
    new Array('Warsaw – Hotel Le Regina', 'HAWAWREG', 'PL-XX', 'WAW000', 'warsaw-leregina-hotel'),
    new Array('Budapest – Hotel Andrassy', 'HABUDAND', 'HU-XX', 'BUD001', 'budapest-andrassy-hotel'),
    new Array('Budapest – Residence Izabella', 'HABUDIZA', 'HU-XX', 'BUD001', 'budapest-residence-izabella'),
    new Array('Bratislava – Residence Sulekova', 'HABTSSUL', 'SK-XX', 'BTS001', 'bratislava-sulekova'),
    new Array('Ostrava – Hotel Imperial', 'HAOSROST', 'CZ-XX', 'PRG004', 'ostrava-hotel-imperial')
    );
var POCET_POKOJU = 1;
var POCET_OSOB = 6;
var POCET_DETI = 2;
var MAXIMALNI_VEK_DITETE = 12;
//nactu si do promenne url
var URL = window.location.href;
//do pole rozdelim url na casti oddelene lomitkem 
var separatorURL = URL.split("/");
//ulozim si do promenne posledni prvek pole, podle ktereho budu vybirat hotel do selectu
var endURL = separatorURL[(separatorURL.length - 1)];
//vygeneruje mi vyklopny seznam s hotelama
function getHotels()
{
  var opts = '<label for="hotelid">Lokalita / hotel</label><br /><select name="hotelid" id="hotelid"><option value="-1">Vyberte hotel</option>';
  for (var i = 0; i < HOTEL.length; ++i)
  {
      if (endURL.match(HOTEL[i][4]) != null)
      {
          opts += '<option value="' + i + '" selected="selected">' + HOTEL[i][0] + '</option>';
      }
      else
      {
          opts += '<option value="' + i + '">' + HOTEL[i][0] + '</option>';
      }
  }
  opts += '</select>';
  document.getElementById('hotel_list').innerHTML = opts;
}
function getRooms()
{
  if (POCET_POKOJU > 1)
  {
    var opts = '<label for="rooms">Pokoje</label><br /><select id="rooms" name="rooms" onchange="getRows(\'rooms\');">';
    for (var i = 1; i <= POCET_POKOJU; ++i)
    {
      opts += '<option value="' + i + '">' + i + '</option>';
    }
    opts += '</select>';
    document.getElementById('room_list').innerHTML = opts;
  }
}
function getAdults(numb)
{
  var number = '';
    if(numb)
    {
      number = numb;
    }
    else
    {
      number = 1;
    }
  var opts = '';
  for (var i = 1; i <= number; ++i)
  {
    opts += '<label for="adults'+ i +'">Dospělí</label> <select id="adults'+ i +'" name="adults'+ i +'">';
    for (var j = 1; j <= POCET_OSOB; ++j)
    {
      opts += '<option value="' + j + '">' + j + '</option>';
    }
    opts += '</select>';
    //opts += getChildren(i) + '<div id="age_list'+ i +'"></div>';
  }
  
  document.getElementById('adult_list').innerHTML = opts + '<div id="age_list'+ number +'"></div>';
 }
function getChildren(numb)
{
  var number = '';
    if(numb)
    {
      number = numb;
    }
    else
    {
      number = 1;
    }
  var opts = '';
  opts += '<label for="children'+ number +'">Děti</label> <select id="children'+ number +'" name="children'+ number +'" onchange=getRows("children'+ number +'");>';
  for (i = 0; i <= POCET_DETI; i++)
  {
    opts += '<option value="' + i + '">' + i + '</option>';
  }
  opts += '</select>';

  document.getElementById('children_list').innerHTML = opts;
  //return opts;
}
function getAges(numb, id)
{
  document.getElementById('age_list' + id).innerHTML = '';
  var optsAges = 'Věk dětí';
  if (numb > 0)
  {
    for (var i = 0; i < numb; ++i)
    {
      optsAges += '<label for="age_child' + id + '_' + (i+1) +'" style="display: none;">Věk dítěte' + (i+1) + '</label> <select id="age_child' + id + '_' + (i+1) +'" name="age_child' + id + '_' + (i+1) +'">';
        for (var j = 0; j <= MAXIMALNI_VEK_DITETE; j++)
        {
          optsAges += '<option value="' + j + '">' + j + '</option>';
        }
      optsAges += '</select>';
    }
    document.getElementById('age_list' + id).innerHTML += optsAges;
    document.getElementById('adult_list').style.paddingBottom = '18px';
  }
  else
  {
    document.getElementById('age_list' + id).innerHTML += '';
    document.getElementById('adult_list').style.paddingBottom = '0px';
  }
}
function getRows(id)
{
  var rows = '';
  
  if(id == 'rooms')
  {
    rows = row(id);
    getAdults(rows);
  }
  if (id.match(/^children[1-9]+[0-9]*$/) != null)
  {
      rows = row(id);
      var a = id.split('children')[1];
      getAges(rows, a);
  }
}
//vrati mi cislo, ktere bylo zadano z vyklopneho seznamu
function row(id)
{
    var i = document.getElementById(id).selectedIndex;
    var rows = document.getElementById(id)[i].value;
  
  return rows;    
}
function checkInputDateFormat(el)
{
  var testFormat = el.value;
  if (testFormat.match(/^\d{2}\-\d{2}\-\d{4}$/))
  {
    return true;
  }
}
function urlDate(val, act) 
{
  var DateField = val.split("-");
  
  if (act == "out")
  {
    var outputDate = DateField[2] + "-" + DateField[1] + "-" + DateField[0];
    return outputDate;  
  }
  if (act == "check")
  {
    var inputDate = DateField[1] + "/" + DateField[0] + "/" + DateField[2];
    return inputDate;  
  }
}
/////////////////////////////////////////////////////////////////////////
function openHotelierUrl() 
{ 
  var hotelid = document.getElementById('hotelid');
  if (hotelid.value == -1) 
  {
     alert ("Vyberte nejdříve hotel ...");
     hotelid.focus();
     return false;
  }
  
  var datein = document.getElementById('ardate');
  if (datein.value == "") 
  {
     alert ("Příjezd ...");
     datein.focus();
     return false;
  }
  
  if (!checkInputDateFormat(datein))
  {
    alert ("Formát data musí být dd-mm-yyyy");
    datein.focus();
    
    return false;  
  }
  
  var dedate = document.getElementById('dedate');
  if (dedate.value == "") 
  {
     alert ("Odjezd ...");
     dedate.focus();
     return false;
  }
  
  if (!checkInputDateFormat(dedate))
  {
    alert ("Formát data musí být dd-mm-yyyy");
    dedate.focus();
    
    return false;  
  }
    
  foo = Date.parse(urlDate(dedate.value, "check")) - Date.parse(urlDate(datein.value, "check"));
  nights = Math.round(foo/day);
  if (nights < 1) 
  {
     alert ("Odjezd ...");
     dedate.focus();
     return false;
  }
  //zjistim pocet pokoju a podle tohoto poctu vypisu pocet dopelych osob a veky deti na jednotlivych pokojich
  if (POCET_POKOJU > 1)
  {
      var j = row('rooms');
  }
  else
  {
      var j = 1;
  }
  
  var age = '';
  var urlPerson = '';
  for(var k = 0; k < j; k++)
  {
      urlPerson += '&adults' + (k + 1) + '=' + document.getElementById('adults' + (k + 1)).value;
    var child = row('children'+(k+1));
    if(child)
    {
      if(child != 0)
      {
        for(var i = 0; i < child; i++)
        {
          if (age != '') age += ',';
          age += row('age_child'+ (k+1) +'_' + (i+1));
        }
        urlPerson += '&childrenAges'+ (k+1) +'='+ age;
        age = '';
      }
      else
      {
        urlPerson += '&childrenAges'+ (k+1) +'='+ -1;
      }
    }
  }
  var promo = document.getElementById('promo_code').value;
  
  var accId = document.getElementById('rate_acces_code').value;
  
  var url = "https://www.yourreservation.net/ibe/"+ HOTEL[hotelid.value][1] +"/main.html";
  url += "?calArrivalDateField=" + urlDate(datein.value, "out");
  url += "&calDepartureDateField=" + urlDate(dedate.value, "out");
  url += "&language=CZ";
  url += urlPerson;
  if (accId.length != 0) 
  {
    url += "&accountId=" + accId;        
  }
  if (promo.length != 0) 
  {
    url += "&rateAccessCode=" + promo;        
  }
  url += "&quick=quick";
  //alert(url);
  window.open(url, "mywin", "resizable=yes,scrollbars=yes,width=1024,height=768");
}
