/* Based on Thickbox 2.1 by Cody Lindley (http://codylindley.com/Javascript/279/thickbox-20-is-here) */
//If you want Thickbox to be active when the page loads, uncomment (remove //) the last two lines in this file.
//Alternatively, call Thickbox.init() elsewhere in a script of your own.
//To stop Thickbox's attachment to anchors in your script, call Thickbox.init('kill').
var Thickbox = {
  init: function(what) {
    if (what != 'kill') {
      var o = document.createElement('div');
      var w = o.cloneNode(true);
      var ww = o.cloneNode(true);
      var l = o.cloneNode(true);
      var d = o.cloneNode(true);
      var li = document.createElement('img');
      var i = document.createElement('img');
      var c = document.createElement('span');
      var p = document.createElement('p');
      o.id = 'Tb_overlay';
      w.id = 'Tb_wra';
      ww.id = 'Tb_window';
      l.id = 'Tb_load';
      li.src = 'img/thickbox/loader.gif';
      li.alt = 'wird geladen...';
      c.id = 'Tb_close';
      c.title = unescape('Fenster schlie%DFen');
      c.appendChild(document.createTextNode(unescape('schlie%DFen')));
      l.appendChild(li);
      ww.appendChild(i);
      ww.appendChild(p);
      ww.appendChild(c);
      ww.appendChild(d);
      w.appendChild(ww);
      document.body.appendChild(o);
      document.body.appendChild(l);
      document.body.appendChild(w);
      var bits = {
        'overlay': o,
        'loading': l,
        'wra': w,
        'curimg': i,
        'p': p,
        'd': d,
        'closelink': c
      };
      for (prop in bits) Thickbox[prop] = bits[prop];
      if (w.currentStyle && w.currentStyle.position == 'absolute') Thickbox.ie6 = true;
    }
    else {
      document.body.removeChild($i('Tb_overlay'));
      document.body.removeChild($i('Tb_wra'));
      document.body.removeChild($i('Tb_load'));
    }
    var anchors = $c('thickbox');
    for (var i = 0; i < anchors.length; i++) {
      var anchor = anchors[i];
      if (what != 'kill') anchor.onclick = function(e) {
        var index = Thickbox.makeGroup(this, anchors);
        if (Thickbox.group.length) {
          this.blur();
          if (!e) window.event.returnValue = false;
          else e.preventDefault();
          Thickbox.unhide('overlay', 'loading');
          Thickbox.show(index);
        }
      }
      if (what == 'kill') anchor.onclick = null;
    }
  },
  
  makeGroup: function(el, a) {
    Thickbox.group = [];
    var x = false, cur = -1;
    for (var i = 0; i < a.length; i++) {
      var anchor = a[i];
      if (el.rel) x = anchor.rel && anchor.rel == el.rel ? true : false;
      else x = anchor.rel ? false : true;
      if (x === true) {
        Thickbox.group.push({
          'caption': anchor.title || '',
          'url': anchor.href,
          'imageLoaded': false
        });
        cur++;
        if (el.href === anchor.href) var c = cur;
      }
    }
    return c;
  },

  show: function(i) {
    if (Thickbox.ie6) {
      window.onscroll = Thickbox.position;
      Thickbox.fixed();
    }
    Thickbox.preload(i);
    Thickbox.overlay.onclick = Thickbox.end;
    document.onkeyup = function(e){
      var e = e || window.event;
      if(e.keyCode == 27 || e.keyCode == 83 || e.keyCode == 88) Thickbox.end();
    }
  },

  preload: function(i) {
    var prel = new Image();
    prel.onload = function() {
      if (Thickbox.overlay.style.display == 'block') {
        Thickbox.fitsize = Thickbox.resize(prel);
        Thickbox.fullsize = [prel.width, prel.height];
        Thickbox.output(i);
      }
      else return;
    }
    prel.src = Thickbox.group[i].url;
  },

  resize: function(image) {
    var pagesize = Thickbox.pagesize();
    var x = pagesize[0] - 60;
    var y = pagesize[1] - 150;
    var imageWidth = image.width;
    var imageHeight = image.height;
    if (imageWidth > x) {
      imageHeight = imageHeight * (x / imageWidth);
      imageWidth = x;
      if (imageHeight > y) {
        imageWidth = imageWidth * (y / imageHeight);
        imageHeight = y;
      }
    } else if (imageHeight > y) {
      imageWidth = imageWidth * (y / imageHeight);
      imageHeight = y;
      if (imageWidth > x) {
        imageHeight = imageHeight * (x / imageWidth);
        imageWidth = x;
      }
    }
    return [imageWidth, imageHeight];
  },

  output: function(index) {
    var caption = Thickbox.group[index].caption;
    if (Thickbox.p.childNodes.length) Thickbox.p.firstChild.nodeValue = caption;
    else Thickbox.p.appendChild(document.createTextNode(caption));
    if (Thickbox.group.length > 1) {
      var curcount = 'Bild '+(index+1)+' von '+Thickbox.group.length;
      if (!Thickbox.d.childNodes.length) {
        var c = document.createElement('span');
        c.appendChild(document.createTextNode(curcount));
        Thickbox.d.appendChild(c);
      }
      else Thickbox.d.firstChild.firstChild.nodeValue = curcount;
    }
    var sl = $i('Tb_sh');
    if (!sl && Thickbox.group.length > 1) {
      var sl = document.createElement('span');
      sl.appendChild(document.createTextNode('Diashow starten'));
      sl.id = 'Tb_sh';
      sl.title = unescape('Alle 5 Sekunden automatisch das n%E4chste Bild anzeigen');
      Thickbox.d.appendChild(sl);
    }
    var pl = Thickbox.nlinks(index-1, 'prev');
    var nl = Thickbox.nlinks(index+1, 'next');
    if (pl) pl.onclick = function() {Thickbox.handle(index-1);}
    if (nl) nl.onclick = function() {Thickbox.handle(index+1);}
    else if (sl) Thickbox.stop(sl);
    if (sl) sl.onclick = function() {slhandle(this);}
    function slhandle(el) {
      if (!Thickbox.sh) {
        if (!nl) {
          Thickbox.handle(0);
          index = 0;
        }
        else Thickbox.start(el, index+1);
      }
      else Thickbox.stop(el);
    }
    document.onkeydown = function(e) {
      e = e || window.event;
      switch(e.keyCode) {
        case 90: // z
        case 37: if (pl) Thickbox.handle(index-1); break; // <
        case 87: // w
        case 39: if (nl) Thickbox.handle(index+1); break; // >
        case 68: slhandle(sl); break; // a
      }
    }
    if (pl) {
      var prev = new Image();
      prev.onload = function() {Thickbox.group[index-1].imageLoaded = true;}
      prev.src = Thickbox.group[index-1].url;
    }
    if (nl) {
      var next = new Image();
      next.onload = function() {Thickbox.group[index+1].imageLoaded = true;}
      next.src = Thickbox.group[index+1].url;
    }
    var resized = Thickbox.position(false);
    if (resized) Thickbox.curimg.onclick = function() {
      if (Thickbox.wra.style.position == 'absolute') {
        Thickbox.position();
        if (Thickbox.ie6) window.onscroll = Thickbox.position;
      }
      else Thickbox.position(true);
    }
    else Thickbox.curimg.onclick = null;
    Thickbox.closelink.onclick = Thickbox.end;
    Thickbox.overlay.onclick = Thickbox.end;
    Thickbox.wra.onclick = function(e) {
      e = e || window.event;
      var t = e.target || e.srcElement;
      if (t.id == 'Tb_wra') Thickbox.end();
    }
    Thickbox.hide('loading');
    Thickbox.unhide('wra');
    Thickbox.curimg.src = Thickbox.group[index].url;
    Thickbox.curimg.style.visibility = '';
  },
  
  nlinks: function(index, ident) {
    var nid = $i('Tb_'+ident);
    var i = Thickbox.group[index];
    if (i && !nid) {
      var li = document.createElement('span');
      li.id = 'Tb_'+ident;
      li.title = i.caption;
      var fe = ident == 'prev' ? unescape('ur%FCck') : 'Weiter >';
      if (ident == 'prev') {
        var f = document.createElement('span');
        f.appendChild(document.createTextNode('Z'));
        li.appendChild(document.createTextNode('< '));
        li.appendChild(f);
      }
      li.appendChild(document.createTextNode(fe));
      if (ident == 'prev' && $i('Tb_next')) Thickbox.d.insertBefore(li, Thickbox.d.firstChild.nextSibling);
      else Thickbox.d.insertBefore(li, Thickbox.d.lastChild);
      return li;
    }
    else if (!i && nid) {Thickbox.d.removeChild(nid); return false;}
    else if (i && nid) {nid.title = i.caption; return nid;}
  },
  
  handle: function(i) {
    if (Thickbox.group[i].imageLoaded != true) {
      Thickbox.hide('wra');
      Thickbox.unhide('loading');
    }
    Thickbox.prevImgSize = Thickbox.fitsize;
    Thickbox.curimg.style.visibility = 'hidden';
    Thickbox.show(i);
  },

  hide: function() {
		for (var i = 0; i < arguments.length; i++) {
			var el = eval('Thickbox.'+arguments[i]);
			el.style.display = '';
		}
  },

  unhide: function() {
    for (var i = 0; i < arguments.length; i++) {
      var el = eval('Thickbox.'+arguments[i]);
      el.style.display = 'block';
    }
  },

  end: function() {
    Thickbox.hide('loading','wra','overlay');
    Thickbox.wra.style.position = '';
    if (Thickbox.sh) Thickbox.stop();
  },
  
  start: function(e, i) {
    Thickbox.sh = window.setInterval(function() {
      Thickbox.handle(i);
      i++;
    },5000);
    e.firstChild.nodeValue = 'Diashow stoppen';
    e.title = 'Automatische Anzeige anhalten';
  },
  
  stop: function(e) {
    if (!e) e = $i('Tb_sh');
    window.clearInterval(Thickbox.sh);
    Thickbox.sh = null;
    e.firstChild.nodeValue = 'Diashow starten';
    e.title = unescape('Alle 5 Sekunden automatisch das n%E4chste Bild anzeigen');
  },

  position: function(r) {
    var scrolled = self.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop;
    var full = Thickbox.fullsize, fit = Thickbox.fitsize;
    var wratop = (Thickbox.pagesize()[1] - fit[1] - 80) * 0.5;
    var i = Thickbox.curimg, w = Thickbox.wra;
    if (!r) {
      var wt = Thickbox.ie6 ? wratop + scrolled : wratop;
      w.firstChild.style.width = fit[0] + 20 + 'px';
      w.style.top = wt + 'px';
      w.style.position = '';
      i.width = fit[0];
      i.height = fit[1];
      if (fit[0] != full[0] || fit[1] != full[1]) var resized = true;
      var ititle = resized ? unescape('Klicken, um die volle Gr%F6%DFe anzuzeigen') : unescape('Volle Gr%F6%DFe');
      i.title = ititle + ' (' + full[0] + ' x ' + full[1] + ' Pixel)';
    }
    else {
      i.removeAttribute('width');
      i.removeAttribute('height');
      w.firstChild.style.width = full[0] + 20 + 'px';
      i.title = unescape('Klicken, um das Bild auf Fenstergr%F6%DFe zu verkleinern');
      w.style.position = 'absolute';
      if (Thickbox.ie6) window.onscroll = null;
      if (window.getComputedStyle) {
        var h = window.getComputedStyle(w.firstChild, null).getPropertyValue('height');
        h = Number(h.substring(0,h.indexOf('p')));
      }
      else var h = full[1] + 150;
      if (document.documentElement.scrollHeight > h + wratop + scrolled) w.style.top = (wratop + scrolled) + 'px';
      else {
        w.style.top = 'auto';
        w.style.bottom = '8px';
      }
    }
    return resized ? true : false;
  },
  
  fixed: function() {
    var w = document.documentElement.scrollWidth;
    var h = document.documentElement.scrollHeight;
    Thickbox.overlay.style.width = w + 'px';
    Thickbox.overlay.style.height = h + 'px';
    Thickbox.overlay.style.marginTop = '-' + document.body.currentStyle.marginTop;
    Thickbox.overlay.style.marginLeft = '-' + document.body.currentStyle.marginLeft;
    Thickbox.wra.style.width = w + 'px';
    Thickbox.wra.style.marginTop = '-' + document.body.currentStyle.marginTop;
    Thickbox.wra.style.marginLeft = '-' + document.body.currentStyle.marginLeft;
  },
  
  pagesize: function() {
    var de = document.documentElement;
    var w = self.innerWidth || de.clientWidth;
    var h = self.innerHeight || de.clientHeight;
    return [w,h];
  }
};
function $i(e) {return document.getElementById(e);}
function $c(c) {
	var children = document.getElementsByTagName('*') || document.all;
	var els = [];
	for (var i = 0; i < children.length; i++) {
  	if (hasClass(children[i], c)) els.push(children[i]);
	}
	return els;
}
function hasClass(el, c) {
  var hasC = false;
  if (!el || !el.className.length) return;
  var bits = el.className.split(' ');
  for (var j = 0; j < bits.length; j++) {
  	if (bits[j] === c) hasC = true;
  }
  return hasC;
}
if (window.addEventListener) window.addEventListener('load', Thickbox.init, false);
else if (window.attachEvent) window.attachEvent('onload', Thickbox.init);