function showBigImage( imgLink, imgUrl ) {
  var dtNode = imgLink.parentNode;
  var dlNode = dtNode.parentNode;
  var oldWidth = dlNode.style.width;
  var oldClass = dlNode.className;
  dlNode.className = 'img big';
  dlNode.style.width = oldWidth;
  
  var closeLinkNode = imgLink.cloneNode( true );
  closeLinkNode.setAttribute('href', '#');
  closeLinkNode.title = 'Bild verkleinern';
  closeLinkNode.onclick = function() {
    return hideBigImage( this, oldWidth, oldClass );
  }
  
  dtNode.insertBefore( closeLinkNode, imgLink );
  imgLink.style.display = 'none';

  var statusNode = document.createElement( 'p' );
  statusNode.appendChild( document.createTextNode( 'Bild wird geladen...' ) );
  dtNode.insertBefore( statusNode,imgLink);
  
  var lensImgNode = closeLinkNode.getElementsByTagName( 'img' )[1];
  lensImgNode.src = '/grafix/img.zoom-out.png';
  lensImgNode.alt = 'Bild verkleinern';
  
  var bigImg = new Image();
  bigImg.onload = function() { 
    dlNode.style.width = ( bigImg.width + 2 ) + 'px';
    var imgNode = closeLinkNode.getElementsByTagName( 'img' )[0];
    imgNode.width = bigImg.width;
    imgNode.height = bigImg.height;
    imgNode.src = imgUrl;
    statusNode.style.display = 'none';
    return;
  }
  
  bigImg.src = imgUrl;
  return false;
}


function hideBigImage( smallImgLinkNode, oldWidth, oldClass ) {
  var dtNode = smallImgLinkNode.parentNode;
  var dlNode = dtNode.parentNode;
  var bigImgLinkNode = dtNode.getElementsByTagName( 'a' )[1];
  var statusNode = dtNode.getElementsByTagName( 'p' )[0];
  dtNode.removeChild( smallImgLinkNode );
  dtNode.removeChild( statusNode );
  dlNode.className = oldClass;
  dlNode.style.width = oldWidth;
  bigImgLinkNode.style.display = 'inline';
  return false;
}
