var neni='N/A';

function validate() {
  if (!ch_date(true) || !ch_osob(true)) {
    return false;
  }
  if (!ch_length('jmeno',2,msg7)) {
    return false;
  }
  if (!ch_length('prijmeni',2,msg8)) {
    return false;
  }
  if (!ch_length('mesto',2,msg9)) {
    return false;
  }
  if (!ch_length('stat',2,msg11)) {
    return false;
  }
  if (!isemail($('mail').value)) {
    return e('mail', msg13);
  }
}

function ch_osob(show) {
  if ($('dospeli').value*1+$('deti').value*1==0) {
    return e('dospeli', msg16, show);
  }
  if ($('dospeli').value*1<$('deti3').value*1) {
    return e('deti3', msg14, show);
  }
  if (!$('pokoj')) return true;
  if ($('dospeli').value*1+$('deti').value*1>kapacita[$('pokoj').selectedIndex]+pristylka[$('pokoj').selectedIndex]) {
    return e('dospeli', msg15, show);
  }
  return true;
}

function ocenit(refresh) {
  var i=0;
  var tmpcena=0;
  if (refresh) {
    ajaxUpdate();
    return false;
  }
  if (!$('pokoj')) {
    $('cena').innerHTML=neni;
    $('pristylka').innerHTML=neni;
    return false;
  }
  if ($('dospeli').value*1<$('deti3').value*1) {
    $('cena').innerHTML=neni;
    alert(msg14);
    return false;
  }
  if ($('dospeli').value*1+$('deti').value*1>kapacita[$('pokoj').selectedIndex]+pristylka[$('pokoj').selectedIndex]) {
    $('cena').innerHTML=neni;
    $('pristylka').innerHTML=neni;
    alert(msg15);
    return false;
  }
  if ($('dospeli').value*1>kapacita[$('pokoj').selectedIndex]*1) {
    $('pristylka').innerHTML=$('dospeli').value*1-kapacita[$('pokoj').selectedIndex];
  }	else {
    $('pristylka').innerHTML=0;
  }
  var low = ($('pristylka').innerHTML*1+$('deti').value*1 > 0);
  var length = Math.round((toDate('do').getTime()-toDate('od').getTime()) / 86400000);
  var people = $('dospeli').value*1 + $('deti').value*1;
  var filled = people / kapacita[$('pokoj').selectedIndex];
  var price_lower = 0;
  var price_basic = 0;
  for (i; i<cenik[0].length; i++) {
    if (low) {
      price_lower = price_child(cenik[1][i]);
    }
    price_basic = price_adult(cenik[0][i], people, length, filled, season[i]);
    tmpcena=tmpcena+($('dospeli').value*1-$('pristylka').innerHTML*1)*price_basic+($('pristylka').innerHTML*1+$('deti').value*1)*price_lower;
  }
  $('cena').innerHTML = tmpcena;
  return true;
}

function get_coef(length, filled, season) {
  var rules = (season ? price_rules_season : price_rules);
  for (var i = 0; i < rules.length; i++) {
    rule = rules[i];
    if(rule['coef'] >= filled && rule['max_length'] >= length) {
      return rule['price'];
    }
  }
  return 1;
}

function price_adult(price, people, length, filled, season) {
  var koef = 1;
  if (people == 1) {
    koef = get_coef(length, filled, season);
  }
  if (kratky == 2) {
    koef *= tyden;
  }
  return Math.round(price * koef);
}

function price_child(price) {
  if (kratky == 2) {
    return Math.round(price*tyden);
  }
  return price;
}

function datumWatcher(object) {
  if ($('do').value == '') {
    $('do').value = $('od').value;
  }
  if ($('od').value == '') {
    $('od').value = $('do').value;
  }
  if (ch_date(false)) {
    dateod=toDate('od');
    datedo=toDate('do');
    $('noci').innerHTML = ((datedo.getTime()-dateod.getTime()) / 86400000);
    hideEIBox();
  } else {
    $('noci').innerHTML = neni;
  }
  if (ch_osob(false)) {
    ajaxUpdate();
  }
}

function ajaxUpdate() {
  if (ch_date(true)) {
    $('indicator_pokoj').style.visibility = "visible";
    var euro = 0
    if ($('euro1')) {
      euro = $('euro1').checked;
    }
    if (!send_xmlhttprequest(roomUpdate, 'GET', '/rpc.php?od='+
      $('od').value+'&do='+$('do').value+
      '&osob='+($('dospeli').value*1+$('deti').value*1)+'&euro='+
      euro+'&pokoj=1')) {
      return true;
    }
  }
  return false;
}

function ajaxUpdatePricelist() {
  $('indicator_cena').style.visibility = "visible";
  var euro = 0
  if ($('euro1')) {
    euro = $('euro1').checked;
  }
  if (!send_xmlhttprequest(priceUpdate, 'GET', '/rpc.php?od='+
    $('od').value+'&do='+$('do').value+
    '&osob='+($('dospeli').value*1+$('deti').value*1)+'&euro='+
    euro)) {
    return true;
  }
  return false;
}

function hideEIBox() {
  if ($('errorbox')) $('errorbox').style.display = "none";
  if ($('infobox')) $('infobox').style.display = "none";
}

function priceUpdate(xmlhttp) {
  if ((xmlhttp.readyState == 4) && (xmlhttp.status==200))
  {
    var str=xmlhttp.responseText;
    try{
      odpoved = parseJSON(str);
    }catch(e){
      odpoved = parseJS(str);
    }
    if (!odpoved) return;
    hideEIBox();
    if (odpoved['alert']) {
      alert(odpoved['alert']);
    } else {
      cenik = parseJSON(odpoved['cenik']);
      kratky = odpoved['kratky'];
      season = parseJSON(odpoved['season']);
      $('mena_popis').innerHTML = odpoved['mena'];
    }
    ocenit(false);
    $('indicator_cena').style.visibility = "hidden";
  }
}

function roomUpdate(xmlhttp) {
  if ((xmlhttp.readyState == 4) && (xmlhttp.status==200))
  { // aktualizace
    var str=xmlhttp.responseText;
    try{//next try JSON eval();
      odpoved = parseJSON(str);
    }catch(e){//then try Classic eval();
      odpoved = parseJS(str);
    }
    if (!odpoved) return;
    hideEIBox();
    if (odpoved['alert']) {
      $('nabidka_pokoju').innerHTML = neni;
      alert(odpoved['alert']);
    } else {
      cenik = parseJSON(odpoved['cenik']);
      kapacita = parseJSON(odpoved['kapacita']);
      pristylka = parseJSON(odpoved['pristylka']);
      kratky = odpoved['kratky'];
      season = parseJSON(odpoved['season']);
      $('mena_popis').innerHTML = odpoved['mena'];
      $('nabidka_pokoju').innerHTML = odpoved['nabidka'];
    }
    ocenit(false);
    $('indicator_pokoj').style.visibility = "hidden";
  }
}