/**
* Spezielle Skripte, die nur in der Druckversion benoetigt werden
*/
$(document).ready(function(){
  /**
  * Hier werden die Links fuer Drucken und Schliessen per JS in die HTML Seite eingefuegt
  * Dazu lesen wir aus derm class="" Tag die Metadaten mit jQuery aus
  * Danach binden wir die Links ein
  */
  $.metadata.setType('class');
  var sClose                      = $("#printBack, #printBackBroad").metadata().schliessen;
  var sPrint                      = $("#printBack, #printBackBroad").metadata().drucken;

  //~ Links fuer drucken und schliessen erstellen
  $("#printBack, #printBack2, #printBackBroad, #printBackBroad2")
    .append('<a href="javascript:window.print()" class="webServiceLink">'+sPrint+'</a>  |  <a href="javascript:window.close()" class="webServiceLink">'+sClose+'</a>');



  //~ Die Texte der Checkboxen holen
  var sLinksDrucken               = $("#printBack, #printBackBroad").metadata().sLinksDrucken;
  var sLinksDruckenUeberschrift   = $("#printBack, #printBackBroad").metadata().sLinksDruckenUeberschrift;
  var sKontextDrucken             = $("#printBack, #printBackBroad").metadata().sKontextDrucken;


  //~ die beiden chekcboxen erstellen
  $('#printServiceContainer').prepend('<input type="checkbox" name="alleLinks" value="true" id="alleLinks" /> <label for="alleLinks">'+sLinksDrucken+'</label>');
  $('#printServiceContainer').prepend('<input type="checkbox" name="inklKontext" value="true" id="inklKontext" /> <label for="inklKontext">'+sKontextDrucken+'</label>');

   //~ Ausbessern
  var prefixSprungmarken = window.location.href.replace(/\&print_style=yes/g,"");
  var prefixInterneLinks = window.location.protocol+'://'+window.location.host+window.location.port;


  // Trigger, ob von site_printer aufgerufen
  var fromSitePrinter = $('body').is('.fromSitePrinter') || false;

  /**
  *
  * Kontext drucken
  *
  */
  $('#inklKontext').click(
    function(){
      if( $('#inklKontext').attr('checked') == true){
        show_kontext();
      }else{
        hide_kontext();
      }
      //~ Danach pruefen, ob Links angezeigt werden sollen
      if( $('#alleLinks').attr('checked') == true){
        hide_links();
        show_links();
      }
    }
  );
  /* Anzeigen aller Boxen */
  function show_kontext(){
    //~ Kontext anzeigen
    if(fromSitePrinter){
      $('div.webInfoDiv').show().width('100%');
    }else{
      $('#webInfoDivDe,#webInfoDivFr,#webInfoDivIt,#webInfoDivEn').show().width('100%');
    }
    $('div.webTeaserDiv').width('100%');

    //~ Suche verstecken
    $('div.webTopInfo').hide();
  }

  /* Verstecken der Boxen */
  function hide_kontext(){
   if(fromSitePrinter){
      $('div.webInfoDiv').hide();
    }else{
      $('#webInfoDivDe,#webInfoDivFr,#webInfoDivIt,#webInfoDivEn').hide();
    }
  }



  /**
  *
  * Links auflisten
  *
  */
  $('#alleLinks').click(
    function(){
      if( $('#alleLinks').attr('checked') == true){
        show_links();
        //~ gibt es wirklich welche??
        if($('#linkListeforPrint li').length < 1){
          hide_links();
        }
      }else{
        hide_links();
      }
    }
  );

  /* Anzeigen der Links */
  function show_links(){
    //~ leere Liste erstellen
      if(fromSitePrinter){
        $('body').append('<h4 id="forPrintTitle">'+sLinksDruckenUeberschrift+'</h4><ol id="linkListeforPrint"></ol>');
      }else{
        $('#webContentDiv').append('<h4 id="forPrintTitle">'+sLinksDruckenUeberschrift+'</h4><ol id="linkListeforPrint"></ol>');
      }


    //~ mit oder Ohne kontextbox
    if( $('#inklKontext').attr('checked') == true){
      $('#webInfoDivDe a,#webInfoDivFr a,#webInfoDivIt a,#webInfoDivEn a, .webInfoDiv a').each(
        function(){$(this).removeClass('hideFromPrint');}
      );
    }else{
      $('#webInfoDivDe a,#webInfoDivFr a,#webInfoDivIt a,#webInfoDivEn a, .webInfoDiv a').each(
        function(){$(this).addClass('hideFromPrint');}
      );
    }


    //~ ungewuneschte Links verstecken
    //~ 'a.webNavigator       => navigator
    //~ '#webNavigationDiv a  => navigation
    //~ a.webServiceLink      => service navigation
    //~ #filterform a         => filterform
    //~ #filterform a         => filterform
    //~ div.webBlaetternDiv a => blaettern
    //~ div.documentenInfo a  => email Fachkontakt
    //~ disclaimer und email  => div.webFooterText a
    //~ disclaimer und email  => div.webFooterText a
    //~ webSucheLinkDiv       => erweiterte Suche
    //~ ul.auto_anker         => automatische Ankernavigation
    //~ div.flexGalerie       => Galerie
    //~ div.flexPopup         => Popup bild
    $('#webNavigatorDiv a,a.webNavigator, a.webServiceLink,#filterform a,div.webBlaetternDiv a,div.documentenInfo a,th a,div.webFooterText a, div.webSucheLinkDiv a,ul.auto_anker a,div.flexGalerie a,div.flexPopup a').addClass('hideFromPrint');


    //~ Links holen
    //~ Wenn wir im Printtool sind (site_printer.php), dann sind ALLE inhaltsbereiche der zu druckenden Seiten
    //~ mit der CSS KLasse webContentDiv versehen
    if(fromSitePrinter){
      //~ Alle Link auf der Seite , ist so einfach, weil ja keine nafigation o.ae. vorhanden
      $('div.webContentDiv a:not(.hideFromPrint)').each(
        function (){
          doFootnotes($(this));
        }
      );
    }else{
       //~ Auf der "Druckversion" zuerst vom inhaltsbereich die Links
      $('#webInnerContentSmall a:not(.hideFromPrint),#webInnerContentBroad a:not(.hideFromPrint)').each(
        function (){
          doFootnotes($(this));
        }
      );
      //~ und dann die Kontextlinks
      if( $('#inklKontext').attr('checked') == true){
        $('#webInfoDivDe a:not(.hideFromPrint),#webInfoDivFr a:not(.hideFromPrint),#webInfoDivIt a:not(.hideFromPrint),#webInfoDivEn a:not(.hideFromPrint)').each(
          function (){
            doFootnotes($(this));
          }
        );
      }
    }



  }

  /* erstellen der Fussnoten */
  function doFootnotes(oElem){
    var sURL = $(oElem).attr('href');
    if(sURL){
      //~ Sprungmarken und interne Links inkl. domain
      if (sURL.indexOf('#') == 0) {
            sURL = prefixSprungmarken+sURL;
      }
      else if(sURL.indexOf('/') == 0) {
        sURL = prefixInterneLinks+sURL;
      }
      //~ In die Liste aufnehmen
      $('#linkListeforPrint').append('<li>'+sURL+'</li>');
      //~ Zaehler setzen
      var listCounter = $('#linkListeforPrint li').length;
      //~ Fussnoten erstellen
      $(oElem).after('<sup class="printFussNote">('+listCounter+')</sup>');
    }
  }

  /* Verstecken der Links */
  function hide_links(){
    //~  Nummern entfernen
    $('sup.printFussNote').remove();
    //~ Liste loeschen
    $('#linkListeforPrint,#forPrintTitle').remove();
  }

  //~ Default
  $('#inklKontext').click();
    show_kontext();
  $('#alleLinks').click();
    show_links();

});