/* Eigene Zoomfunktion fuer eingebundene Bilder (mehr als ein Bild je Dokument) */

function sommerfest_zoom_core() {
  try {
    /* Elemente suchen */

    var div_el = this.parentNode;
    var swt_el = this.getElementsByTagName('img')[0];
    var img_el = null;
  
    while(!img_el) {
      img_el = div_el.getElementsByTagName('img')[0];
      if(img_el === swt_el) img_el = null;
      if(!img_el) div_el = div_el.parentNode;
    };

    var was_small = img_el.width <= 130;

    var tmp_src = img_el.src;
    img_el.src = this.href;
    this.href = tmp_src;

    img_el.removeAttribute('width');
    img_el.removeAttribute('height');

    swt_el.src = swt_el.src.replace(/zoom_(in|out)(\.[^\/\.]*)?$/,
      'zoom_' + (was_small ? 'in' : 'out') + '$2');

    if(was_small) {

      div_el.style.width = '535px';
      img_el.style.width = '535px';

      swt_el.src = swt_el.src.replace(/zoom_(in|out)(\.[^\/\.]*)?$/,'zoom_in$2');

    } else {

      div_el.style.width = '130px';
      img_el.style.width = '130px';
      swt_el.src = swt_el.src.replace(/zoom_(in|out)(\.[^\/\.]*)?$/,'zoom_out$2');

    }

    return false;
  } catch(e) {
    return true;
  }
}

function sommerfest_zoom_img_url() {
  return document.getElementsByName('sa')[0].src.
    replace( /\/[^\/]+(\.[^\/\.]+)$/, '/zoom_out$1');
}

function sommerfest_zoom_replace(old_el, old_a_el, old_img_el) {
  var div_el = document.createElement("div");
  div_el.className = 'sommerfest_zoom';

  var img_el = old_img_el.cloneNode(false);
  div_el.appendChild(img_el);

  var p_el = document.createElement('p');

  var a_el = document.createElement('a');
  a_el.alt = old_a_el.alt;
  a_el.href = old_a_el.href;
  a_el.target = '_new';
  a_el.onclick = sommerfest_zoom_core;

  var aimg_el = document.createElement('img');
  aimg_el.src = sommerfest_zoom_img_url();
  aimg_el.alt = '[Zoom]';
  aimg_el.align = 'right';
  a_el.appendChild(aimg_el);

  p_el.appendChild(a_el);
  p_el.appendChild(document.createTextNode(old_img_el.title));

  div_el.appendChild(p_el);
  
  old_el.parentNode.replaceChild(div_el,old_el);
}

function sommerfest_zoom_find_img(a_el) {
  /* Der Link muss ein Bild enthalten und entweder die Klasse 'sommerfest_zoom' 
     haben oder beide URLs müssen Webbilder sein. */
  if(a_el.className == 'sommerfest_zoom' || a_el.className == 'sommerfest_zoom_r') {
    var img_el = a_el.getElementsByTagName('img')[0];
    return img_el;
  } else
  if(a_el.href.match(/\/web_bilder_[ml]\//)) {
     var img_el = a_el.getElementsByTagName('img')[0];
     if(img_el.src.match(/\/web_bilder_[ml]\//)) return img_el;
  }
  return null;
}

function sommerfest_zoom_init() {
  var el = document.getElementsByTagName('a');
  for(var i = 0; i < el.length; i++) {
    try {
      var img_el = sommerfest_zoom_find_img(el[i])
      if(img_el) sommerfest_zoom_replace(el[i], el[i], img_el);
    } catch(e) {
      alert(e);
    }
  }
}

var sommerfest_onload_chain = window.onload;

window.onload = function sommerfest_onload() {
  if (typeof(sommerfest_onload_chain) == 'function') {
    sommerfest_onload_chain();
  }
  sommerfest_zoom_init();
}

