function initAllTables() {
  for(var tisch_eintrag in tisch) {
    if(tisch[tisch_eintrag]['bild'] != '') {
      load_img = new Image();
      load_img.src = tisch[tisch_eintrag]['bild'];
    } 
  }
}

tisch_info_top  = 350;
tisch_info_left = 0;

function delay(ms) {
  prmSec = ms;
  var eDate = null;
  var eMsec = 0;
  var sDate = new Date();
  var sMsec = sDate.getTime();
  do {
    eDate = new Date();
    eMsec = eDate.getTime();
  } while ((eMsec-sMsec)<prmSec);
}

function showInfo(elem, i) {
  if(i == null) { i = 0; }
  var tid               = elem.id;
  var id                = tid.split("_");
  var tisch_id          = id[id.length-1];
  var info              = document.getElementById("tisch_info");
  var info_b            = document.getElementById("tisch_info_bubble");
  var info_n            = document.getElementById("tisch_info_needle");
  info.style.display    = "block";
  info_n.style.display  = "block";
  var iHTML             = "<div class='innerInfo' style='overflow: auto;'>";
  iHTML += "<span class='top'>"+tisch[tisch_id]['name']+"&nbsp;("+tisch[tisch_id]['status']+")</span>";
  if(tisch[tisch_id]['status'] == "frei") {  
//    iHTML += "<span class='inInfo'/>Zum Buchen klicken.</span>";
  } else {
    iHTML += "<span class='inInfo'/>"+tisch[tisch_id]['showMe']+"</span>";
  }
  if(tisch[tisch_id]['bild'] != "") {
    iHTML += "<br style='clear:both;'/><br /><div style='min-height: 30px;'><img src='"+tisch[tisch_id]['bild']+"' /></div>";
  }
  
  iHTML += "</div>";
  if(tisch[tisch_id]['bild'] != "") {
    iHTML += "<br style='clear:both' />";
  }
  
  info_b.innerHTML      = iHTML;
  info.style.left       = (elem.offsetLeft-15)+"px";
  info.style.top        = (tisch_info_top+elem.offsetTop-info_b.offsetHeight-info_n.offsetHeight+5)+"px";
  info_n.style.left     = (elem.offsetLeft-10)+"px";
  info_n.style.top      = (tisch_info_top+elem.offsetTop-info_n.offsetHeight+3)+"px";
}

function removeInfo(elem) {
  var info              = document.getElementById("tisch_info");
  var info_n            = document.getElementById("tisch_info_needle");
  info.style.display    = "none";
  info_n.style.display  = "none";
}

function bookMe(elem) {
  var tid       = elem.id;
  var id        = tid.split("_");
  var tisch_id  = id[id.length-1];
//  document.location.href = 'buche_tisch.php?id='+tisch_id;
  document.location.href = 'teilnehmer.php';
}

function goOverview() {
  history.back();
}

function closeWindow() {
  window.parent.document.getElementById("editWin").style.display  = "none";
  window.parent.document.getElementById("layer").style.display    = "none";
  window.parent.document.getElementById('filter').style.visibility  = 'visible';
  window.parent.document.getElementById('sort').style.visibility    = 'visible';
  window.parent.document.getElementById('ascdesc').style.visibility = 'visible';
//  window.parent.document.location.reload();
}

function changeSortFilter() {
  var filter  = document.getElementById("filter").value;
  var sort    = document.getElementById("sort").value;
  var ascdesc = document.getElementById("ascdesc").value;
  document.location.href = "verwaltung.php?sort="+sort+"&filter="+filter+"&ascdesc="+ascdesc;
}

function showEditWin(tid) {
  document.getElementById('editWin').style.display    = 'block';
  document.getElementById('layer').style.display      = 'block';
  document.getElementById('filter').style.visibility  = 'hidden';
  document.getElementById('sort').style.visibility    = 'hidden';
  document.getElementById('ascdesc').style.visibility = 'hidden';
  document.getElementById('ew_iframe').src="editTable.php?id="+tid;
}

function proofUp() {
  var oldState = document.getElementById("state").value;
  var newState = document.getElementById("status").value;
  if((oldState != newState) && (oldState != "frei")) {
    var confStr = "";
    if(((oldState == "reserviert") || (oldState == "gebucht")) && (newState == "frei")) {
      confStr = "Sie setzen den Status auf 'frei'. Diese Aktion setzt Reservierungs- und Buchungsdatum sowie Besucherbezeichnung und Bild zurück.\nWollen Sie das wirklich?";
    }
    if(((oldState == "gebucht")) && (newState == "reserviert")) {
      confStr = "Sie setzen den Status auf 'reserviert'. Diese Aktion setzt das Buchungsdatum zurück.\nWollen Sie das wirklich?";
    }
    if(confStr != "") {
      conf = confirm(confStr);
      return conf;
    }
  }
  return true;
}

function updateBooked() {
  var newState  = document.getElementById("status").value;
  var bookedVal = document.getElementById("booked").value;
  var resVal    = document.getElementById("reserved").value;

  var jetzt = new Date();
  var Tag   = jetzt.getDate();
  var Mon   = jetzt.getMonth()+1;
  var Jahr  = jetzt.getFullYear();
  if(Tag < 10) { Tag = "0"+Tag; }
  if(Mon < 10) { Mon = "0"+Mon; }
  var dateStr = Tag+"."+Mon+"."+Jahr;      
  if(newState == "reserviert") {
    document.getElementById("booked").value                         = "";
    if(resVal    == "") { document.getElementById("reserved").value = dateStr; }
  }
  if(newState == "gebucht") {
    if(bookedVal == "") { document.getElementById("booked").value = dateStr; }
    if(resVal    == "") { document.getElementById("reserved").value = dateStr; }
  }
}

function showHelp() {
  document.getElementById("helper_small").style.display = "none";
  document.getElementById("helper").style.display       = "block";
  document.getElementById("layerTisch").style.display        = "block";
}

function hideHelp() {
  document.getElementById("helper_small").style.display = "block";
  document.getElementById("helper").style.display       = "none";
  document.getElementById("layerTisch").style.display   = "none";
}

function initLayer() {
//  document.getElementById("layer").style.height = document.getElementById("trueBody").offsetHeight+"px";
  if(document.getElementById("layer")) {
    document.getElementById("layer").style.height = document.getElementById("mainContent").offsetHeight+"px";
  }
}

function reloadParent() {
  window.parent.document.location.reload();
}

function isEmail(argvalue) {
  if (argvalue.indexOf(" ") != -1)
    return false;
  else if (argvalue.indexOf("@") == -1)
    return false;
  else if (argvalue.indexOf("@") == 0)
    return false;
  else if (argvalue.indexOf("@") == (argvalue.length-1))
    return false;
  var retSize = customSplit(argvalue, "@", "arrayString");
  if (arrayString[1].indexOf(".") == -1)
    return false;
  else if (arrayString[1].indexOf(".") == 0)
    return false;
  else if (arrayString[1].charAt(arrayString[1].length-1) == ".") {
    return false;
  }
  return true;
}


function proofReservation() {
  var name                = document.getElementById("name").value;
  var zip                 = document.getElementById("zip").value;
  var city                = document.getElementById("city").value;
  var streetNr            = document.getElementById("streetNr").value;
  var notAnonymous        = document.getElementById("notAnonymous").checked;
  var showMe              = document.getElementById("showMe").value;
  var email               = document.getElementById("email").value;
  var toc                 = document.getElementById("toc").checked;
  var errors              = Array();
  errors["name"]          = false;
  errors["zip"]           = false;
  errors["city"]          = false;
  errors["streetNr"]      = false;
  errors["showMe"]        = false;
  errors["email"]         = false;
  errors["toc"]           = false;
  if(name == "")                            { errors["name"]      = true; }
  if(zip == "")                             { errors["zip"]       = true; }
  if(city == "")                            { errors["city"]      = true; }
  if(streetNr == "")                        { errors["streetNr"]  = true; }
  if((notAnonymous) && (showMe == ""))      { errors["showMe"]    = true; }
  if((email != "") && (!(isEmail(email))))  { errors["email"]     = true; }
  if(!(toc))                                { errors["toc"]       = true; }
  if((errors["name"]) || (errors["zip"]) || (errors["city"]) || (errors["streetNr"]) || (errors["showMe"]) || (errors["email"]) || (errors["toc"])) {
    var exp = document.getElementById("formErrorEplain");
    var iHTML = "Sie haben mindestens ein Feld nicht (korrekt) ausgefüllt:<ul>";
    if(errors["name"])      { iHTML += "<li>Ihr Name (Vorname und Nachname)</li>"; }
    if(errors["zip"])       { iHTML += "<li>PLZ</li>"; }
    if(errors["city"])      { iHTML += "<li>Ort</li>"; }
    if(errors["streetNr"])  { iHTML += "<li>Strasse und Haus-Nr.</li>"; }
    if(errors["showMe"])    { iHTML += "<li>Text für die Tischliste</li>"; }
    if(errors["email"])     { iHTML += "<li>E-Mail Adresse</li>"; }
    if(errors["toc"])       { iHTML += "<li>Nutzungsbedingungen</li>"; }
    iHTML += "</ul>";
    exp.innerHTML = iHTML;
    exp.style.display = "block";
    if(errors["name"])  { 
      document.getElementById("name").className   = "medium2 error";  
      document.getElementById("l_name").className = "error";  
    } else { 
      document.getElementById("name").className   = "medium2"; 
      document.getElementById("l_name").className = "";  
    }
    if(errors["zip"])  { 
      document.getElementById("zip").className   = "short error";  
      document.getElementById("l_zip").className = "error";  
    } else { 
      document.getElementById("zip").className   = "short"; 
      document.getElementById("l_zip").className = "";  
    }
    if(errors["city"])  { 
      document.getElementById("city").className   = "medium3 error";  
      document.getElementById("l_city").className = "error";  
    } else { 
      document.getElementById("city").className   = "medium3"; 
      document.getElementById("l_city").className = "";  
    }
    if(errors["streetNr"])  { 
      document.getElementById("streetNr").className   = "medium3 error";  
      document.getElementById("l_streetNr").className = "error";  
    } else { 
      document.getElementById("streetNr").className   = "medium3"; 
      document.getElementById("l_streetNr").className = "";  
    }
    if(errors["showMe"])  { 
      document.getElementById("showMe").className   = "long error";  
      document.getElementById("l_notAnonymous").className = "error";  
    } else { 
      document.getElementById("showMe").className   = "long"; 
      document.getElementById("l_notAnonymous").className = "";  
    }
    if(errors["email"])  { 
      document.getElementById("email").className   = "medium2 error";  
      document.getElementById("l_email").className = "error";  
    } else { 
      document.getElementById("email").className   = "medium2"; 
      document.getElementById("l_email").className = "";  
    }
    if(errors["toc"])  { 
      document.getElementById("l_toc").className = "error";  
    } else { 
      document.getElementById("l_toc").className = "";  
    }
    return false;
  }
  return true;
}

function proofContact() {
  var name        = document.getElementById("name").value;
  var email       = document.getElementById("email").value;
  var errors      = Array();
  errors["name"]  = false;
  errors["email"] = false;
  if(name == "")                            { errors["name"] = true; }
  if((email != "") && (!(isEmail(email))))  { errors["email"] = true; }
  if((errors["name"]) || (errors["email"])) {
    var exp = document.getElementById("formErrorEplain");
    var iHTML = "Sie haben mindestens ein Feld nicht (korrekt) ausgefüllt:<ul>";
    if(errors["name"])  { iHTML += "<li>Ihr Name / Vorname</li>"; }
    if(errors["email"]) { iHTML += "<li>E-Mail-Adresse</li>"; }
    iHTML += "</ul>";
    exp.innerHTML = iHTML;
    exp.style.display = "block";
    if(errors["name"])  { 
      document.getElementById("name").className   = "medium_row error";  
      document.getElementById("l_name").className = "error";  
    } else { 
      document.getElementById("name").className   = "medium_row"; 
      document.getElementById("l_name").className = "";  
    }
    if(errors["email"]) { 
      document.getElementById("email").className    = "medium_row error";  
      document.getElementById("l_email").className  = "error";  
    } else { 
      document.getElementById("email").className    = "medium_row"; 
      document.getElementById("l_email").className  = "";  
    }
    return false;
  }
  return true;
}
