// 09.12.2008: Regelt das Ein- und Ausblenden von Textelementen auf der Berichts-Übersichtsseite

function toggle_anzeige(nr)
{
  if (document.getElementById("volltextnr_" + nr).style.display == 'inline')
  {
    document.getElementById("volltextnr_" + nr).style.display = 'none';
    document.getElementById("teasernr_" + nr).style.display = 'inline';
    
    /*
    document.getElementById("versteckt" + nr).style.display = 'none';
    document.getElementById("versteckt_link_mitte_" + nr).style.display = 'inline';
    document.getElementById("versteckt_link_ende_" + nr).style.display = 'none';
    */
  }
  else
  {
    document.getElementById("volltextnr_" + nr).style.display = 'inline';
    document.getElementById("teasernr_" + nr).style.display = 'none';
    
    
    /*
    document.getElementById("versteckt" + nr).style.display = 'inline';
    document.getElementById("versteckt_link_mitte_" + nr).style.display = 'none';
    document.getElementById("versteckt_link_ende_" + nr).style.display = 'inline';
    */
  }
}


// 20.03.2009: Gleicht die Höhe der beiden News-Divs auf der Startseite aneinander an.
// Das weniger hohe wird an das andere angepasst.

function passe_hoehe_von_news_divs_an()
{
  var hoehe_links = document.getElementById('newsbox_links').offsetHeight;
  var hoehe_rechts = document.getElementById('newsbox_rechts').offsetHeight;
  
  if (hoehe_links > hoehe_rechts)
  {
    // Vorsichtshalber werden beide Elemente neu gesetzt, ansonsten stimmen ihre
    // Höhen merkwürdigerweise nicht überein (Höhe-Auslesefunktion ergibt was
    // anderes als Höhensetz-Funktion mit selbem Wert).

    document.getElementById('newsbox_rechts').style.height = hoehe_links + 'px';
    document.getElementById('newsbox_links').style.height = hoehe_links + 'px';
  }
  else
  {
    document.getElementById('newsbox_links').style.height = hoehe_rechts + 'px';
    document.getElementById('newsbox_rechts').style.height = hoehe_rechts + 'px';
  }
}


// 23.09.2009: Neue Version obiger Funktion für neues Startseiten-Layout mit
// drei Spalten.

function passe_hoehe_von_news_divs_an_neue_startseite()
{
  var hoehe_links = document.getElementById('newsbox_links').offsetHeight;
  var hoehe_mitte = document.getElementById('newsbox_mitte').offsetHeight;
  var hoehe_rechts = document.getElementById('newsbox_rechts').offsetHeight;
  
  var pixel_diff = 109;
  
  if (hoehe_links >= hoehe_mitte && hoehe_links >= (hoehe_rechts - pixel_diff))
  {
    // Vorsichtshalber werden alle Elemente neu gesetzt, ansonsten stimmen ihre
    // Höhen merkwürdigerweise nicht überein (Höhe-Auslesefunktion ergibt was
    // anderes als Höhensetz-Funktion mit selbem Wert).
    
    // Die 109 Pixel passen nur dann, wenn das Werbemittel darüber 250 Pixel hoch
    // ist.

    document.getElementById('newsbox_links').style.height = hoehe_links + 'px';
    document.getElementById('newsbox_mitte').style.height = hoehe_links + 'px';
    document.getElementById('newsbox_rechts').style.height = (hoehe_links + pixel_diff) + 'px';
  }
  else if (hoehe_mitte >= hoehe_links && hoehe_mitte >= (hoehe_rechts - pixel_diff))
  {
    document.getElementById('newsbox_links').style.height = hoehe_mitte + 'px';
    document.getElementById('newsbox_mitte').style.height = hoehe_mitte + 'px';
    document.getElementById('newsbox_rechts').style.height = (hoehe_mitte + pixel_diff) + 'px';
  }
  else
  {
    document.getElementById('newsbox_links').style.height = (hoehe_rechts - pixel_diff) + 'px';
    document.getElementById('newsbox_mitte').style.height = (hoehe_rechts - pixel_diff)  + 'px';
    document.getElementById('newsbox_rechts').style.height = hoehe_rechts + 'px';
  }
}


// 13.03.2009: Zeigt beliebigen Container an oder blendet ihn aus. Bisher nur
// verwendet für Nutzungsbedingungen beim Kontaktformular.

function toggle_element(element_id)
{
  if (document.getElementById(element_id).style.display == 'inline')
  {
    document.getElementById(element_id).style.display = 'none';
  }
  else
  {
    document.getElementById(element_id).style.display = 'inline';
  }
}


// 10.12.2008: Setzt nach Klick auf Thumbnail das Bild in der Mitte auf der Berichts-Bilder/Videos-Seite,
// für die korrekte Funktion der Lightbox-Reihe außerdem alle anderen Bilder der Galerie versteckt

function setze_bild(bild, galerie_bilder, pfad, berichts_id, titel)
{
  var bilder = galerie_bilder.split(",");
  var titel = titel.split("<SEP>");
  var html = '';
  var youtube_video_gesetzt = false;
  
  for (i = 0; i < bilder.length; i++)
  {
    if (titel[i] === undefined)
      i_titel = '&nbsp;';
    else
      i_titel = titel[i];

    if (bilder[i] == bild)
    {
      if (bild.indexOf("http://") != -1)
      {
        document.getElementById("youtube_video").style.display = 'inline';
        youtube_video_gesetzt = true;
      }

      html += '<a href="' + pfad + 'big_' + berichts_id + '_' + bilder[i] + '" title="' + i_titel + '" rel="lightbox[js_reihe]"><img src="' + pfad + 'middle_' + berichts_id + '_' + bilder[i] + '" border="0" /></a>';
    }
    else
    {
      // Bilder werden hier versteckt ausgegeben, so dass sie im Quellcode in einer Reihe mit dem einzigen
      // angezeigten Bild stehen (über rel="lightbox[js_reihe] wird der Lightbox-Library mitgeteilt, welche
      // Bilder in der Slideshow dabei sein sollen)

      html += '<span class="versteckt"><a href="' + pfad + 'big_' + berichts_id + '_' + bilder[i] + '" title="' + i_titel + '" rel="lightbox[js_reihe]"><img src="' + pfad + 'middle_' + berichts_id + '_' + bilder[i] + '" border="0" /></a></span>';
    }
  }
  
  if (!youtube_video_gesetzt)
  {
    document.getElementById("youtube_video").style.display = 'none';
    document.getElementById("mittel_bild").innerHTML = html;
  }
  else
  {
    document.getElementById("mittel_bild").innerHTML = '';
  }
}


// 10.12.2008: str_replace-Nachbau

function str_replace (search, replace, subject)
{
  var result = "";
  var  oldi = 0;
  for (i = subject.indexOf (search)
     ; i > -1
     ; i = subject.indexOf (search, i))
  {
    result += subject.substring (oldi, i);
    result += replace;
    i += search.length;
    oldi = i;
  }
  return result + subject.substring (oldi, subject.length);
}


// 13.03.2009: Überprüft Kommentar-Absendeberechtigung und verschickt das Formular

function sende_kommentar()
{
  // Nutzungsbedingungen via Checkbox akzeptiert?

  if (!document.getElementById('checkbox_nutzungsbedingungen').checked)
  {
    alert('Bitte akzeptieren Sie unsere Nutzungsbedingungen, bevor Sie Ihren Beitrag absenden!');
    return;
  }
  else
  {
    if (document.getElementById('textarea_nachricht').value == '')
    {
      alert('Bitte geben Sie eine Nachricht ein!');
      return;
    }

    document.kontaktformular.submit();
  }
}


// 12.01.2009: Kommentare

function editiere_kommentar(kommentar_id, modus)
{
  if (modus == 2)
  {
    var poststr = "text=" + encodeURI(document.getElementById("ta_" + kommentar_id).value) +
                  "&kommentar_id=" + kommentar_id;
  }

  // Erstellen des Requests

  var req = null;

  try
  {
    req = new XMLHttpRequest();
  }
  catch (ms)
  {
    try
    {
      req = new ActiveXObject("Msxml2.XMLHTTP");
    } 
    catch (nonms)
    {
      try
      {
        req = new ActiveXObject("Microsoft.XMLHTTP");
      }
      catch (failed)
      {
        req = null;
      }
    }  
  }

  if (req == null)
    alert("Error creating request object!");
    
  // Anfrage erstellen, Request ist asynchron      
  
  req.open("post", 'fileadmin/php/kommentare.php', true);
  req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');

  // Request senden

  if (modus == 1)
    req.send('kommentar_id=' + kommentar_id + '&modus=1');
  else if (modus == 2)
    req.send(poststr + '&modus=2');
  else if (modus == 3)
    req.send('kommentar_id=' + kommentar_id + '&modus=3');
  else if (modus == 4)
    req.send('kommentar_id=' + kommentar_id + '&modus=4');
  else if (modus == 5)
    req.send('kommentar_id=' + kommentar_id + '&modus=5');

  // Beim Abschließen des Requests wird diese Funktion ausgeführt

  req.onreadystatechange = function()
  {            
    switch (req.readyState)
    {
      case 4:
        if(req.status != 200)
        {
          alert("Fehler:" + req.status);
        }
        else
        {
          // Schreibe die Antwort in den entsprechenden DIV-Container.
          //
          // 20.03.2009: Aber nur, wenn sie nicht leer ist, was sie nämlich ist,
          // wenn von "Hacker" versucht wurde, das Skript zum Editieren zu benutzen.

          if (req.responseText != '')
            document.getElementById("comment_" + kommentar_id).innerHTML = req.responseText;
         }

         break;
       default:
         return false;
         break;     
    }
  };
}


// 12.03.2009: Ajax-Skript zum Abgeben einer Praxistest-Bewertung.
// 19.03.2009: Schon wieder obsolet, da Bewertung jetzt zusammen mit Kommentar abgegeben wird.

function gib_bewertung_ab(bericht_id, benutzer_id)
{  
  // Welche Bewertung wurde abgegeben?

  var bewertung = 0;
  
  for (i = 1; i <= 5; i++)
  {
    temp = document.getElementById('bewertung' + i).checked;
    
    if (temp)
    {
      bewertung = i;
      break;
    }
  }
  
  if (bewertung == 0)
  {
    alert('Bitte geben Sie eine Bewertung ab!');
    return;
  }

  var poststr = "bewertung=" + bewertung + "&bericht_id=" + bericht_id + "&benutzer_id=" + benutzer_id;

  // Erstellen des Requests

  var req = null;

  try
  {
    req = new XMLHttpRequest();
  }
  catch (ms)
  {
    try
    {
      req = new ActiveXObject("Msxml2.XMLHTTP");
    } 
    catch (nonms)
    {
      try
      {
        req = new ActiveXObject("Microsoft.XMLHTTP");
      }
      catch (failed)
      {
        req = null;
      }
    }  
  }

  if (req == null)
    alert("Error creating request object!");
    
  // Anfrage erstellen, Request ist asynchron      
  
  req.open("post", 'fileadmin/php/bewertungen.php', true);
  req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');

  // Request senden

  req.send(poststr);

  // Beim Abschließen des Requests wird diese Funktion ausgeführt

  req.onreadystatechange = function()
  {            
    switch (req.readyState)
    {
      case 4:
        if(req.status != 200)
        {
          alert("Fehler:" + req.status);
        }
        else
        {
          // Schreibe die Antwort in den entsprechenden DIV-Container
          
          document.getElementById("bewertungsformular").innerHTML = req.responseText;
        }

         break;
       default:
         return false;
         break;     
    }
  };
}


// 23.03.2009: Wird bei Benutzerregistrierung verwendet. Bei nicht gesetztem AGB-
// Bestätigungs-Haken bleibt Absenden-Button grau.

function toggle_button_ausgrauung(b_name)
{
  if (document.getElementById(b_name).disabled)
  {
    document.getElementById(b_name).disabled = false;
  }
  else
  {
    document.getElementById(b_name).disabled = true;
  }
}