/* print-page.js: functions to print via link: 'Druckansicht' */

/* anchor-classes to process */
var prlnkclss = "externer-link-mit-icon|external-link-new-window|externer-link-pdf";
if (typeof printlinkclasses == "string") prlnkclss = printlinkclasses;
/* anchor-classes to ignore */
var icnrmvclss = "intra-mail-link";
if (typeof printignoreclasses == "string") icnrmvclss = printignoreclasses;

prlnkclss = "(^|\\s)" + prlnkclss.replace("|", "(\\s|$)|(^|\\s)") + "(\\s|$)";
icnrmvclss = "(^|\\s)" + icnrmvclss.replace("|", "(\\s|$)|(^|\\s)") + "(\\s|$)";

/* --- convert anchors into printable version */
function href2printable() {
  /* 1. in the right column convert target-address information
     of all anchors (except classes in 'icnrmvclss') into plain text form */
  var rgtallatg = document.getElementById("spalterechts").getElementsByTagName("a");
  var ix = 0;
  while (rgtallatg[ix]) {
    if (rgtallatg[ix].firstChild) {
      if (rgtallatg[ix].className.search(icnrmvclss) == -1) {
        var hrefstrng = rgtallatg[ix].href;
        var hrefvalue = document.createTextNode(' [' + hrefstrng + '] '); /* link-address */
        rgtallatg[ix].parentNode.insertBefore(hrefvalue, rgtallatg[ix].nextSibling);
      }
    }
    ix++;
  }

  /* 2a. in the "content" column grab anchors, where class is one of the external link types
     and remove anchor's embedded images */
  var allatags = document.getElementById("content").getElementsByTagName("a");
  var linklist = document.createElement("ul");
  linklist.className = "print-urllist";
  var lnklstcount = 0;
  ix = 0;
  while (allatags[ix]) {
    if (allatags[ix].firstChild) {
      var hrefstrng = allatags[ix].href;
      if (allatags[ix].className.search(prlnkclss) != -1 ) {
        lnklstcount++;
        var lnkLI = document.createElement("li");
        var obj;
        if (allatags[ix].getElementsByTagName("img")) {
          obj = allatags[ix].getElementsByTagName("img");
          if (obj[0]) { while (obj[0]) { obj[0].parentNode.removeChild(obj[0]); } }
        };
        var lnktext = allatags[ix].innerHTML.replace(/<[^>]*>/g, '');
        var newText = document.createTextNode('[' + lnklstcount + '] ' + lnktext + ': ' + hrefstrng);
        lnkLI.appendChild(newText);
        linklist.appendChild(lnkLI);
        var hidxspan = document.createElement("span");
        var hrefindex = document.createTextNode('[' + lnklstcount + ']');
        hidxspan.appendChild(hrefindex);
        hidxspan.className = "print-refnumber";
        allatags[ix].parentNode.insertBefore(hidxspan, allatags[ix].nextSibling);
      }
    }
    ix++;
  }

  /* 2b. put collected links into links-of-textbody box */
  if (lnklstcount > 0) {
    var lktxtbox = document.getElementById("textbodylinks")
    var plstlines = lktxtbox.getElementsByTagName("p");
    plstlines[0].appendChild(linklist);
    lktxtbox.style.display = "block";
  }
}

/* run converter function */
href2printable();

/* end-js */

