 var magnigierAlreadyAdded = false;
 var magnifierDIV = null;
 var magnifierImageLoadingDIV = null;
 var magnifierLoadingDIV = null;
 var magnifierLoadingTimer = null;
 
 function zoomImage (img, url, event, width, height) {   
   if (width && height) {
      openZoomWin (url, img.alt, width, height);
      return;
      }

   if (magnifierImageLoadingDIV == null) {
      magnifierImageLoadingDIV = document.createElement ('div');
      magnifierImageLoadingDIV.style.visibility = 'hidden';
      magnifierImageLoadingDIV.style.position = 'absolute';
      magnifierImageLoadingDIV.style.left = '200px';
      magnifierImageLoadingDIV.style.top = '200px';
      document.body.appendChild (magnifierImageLoadingDIV);
      }

   if (magnifierLoadingDIV == null) {
      magnifierLoadingDIV = document.createElement ('div');
      magnifierLoadingDIV.style.position = 'absolute';
      magnifierLoadingDIV.innerHTML = '<img src="'+relativeURI+'images/icons/ajax_loading.gif" width="20" height="20">';
      document.body.appendChild (magnifierLoadingDIV);
      }
   if (!event) var event = window.event;
   var x = (window.event) ? event.clientX : event.pageX;
   var y = (window.event) ? event.clientY : event.pageY;
   magnifierLoadingDIV.style.left = (x-10)+'px';
   magnifierLoadingDIV.style.top = (y-10)+'px';
   magnifierLoadingDIV.style.visibility = 'visible';
   magnifierLoadingTimer = setTimeout ('magnifierLoadingDIV.style.visibility = "hidden"', 5000);
   magnifierImageLoadingDIV.innerHTML = '<img src="'+url+'" onload="zoomedImageLoaded(this)" alt="'+img.alt+'">';
   }
   
 function zoomedImageLoaded (img) {
   openZoomWin (img.src, img.alt, img.parentNode.clientWidth, img.parentNode.clientHeight);
   }

 function openZoomWin (src, alt, width, height) {
   var win = window.open ('about:blank','_blank','width='+width+',height='+height+',left=100,top=100,status=no,dependent=yes');
   if (!win) {
     alert ('Bitte deaktivieren Sie Ihren Popup-Blocker');
     clearTimeout (magnifierLoadingTimer);
     if (magnifierLoadingDIV != null)
        magnifierLoadingDIV.style.visibility = 'hidden';
     return;
     }
   win.document.open ();
   win.document.writeln ('<html><head><title>'+alt+'</title><style type="text/css">* { margin: 0; padding: 0; }</style></head><body><a href="javascript:window.close()"><img src="'+src+'" alt="" title="Exit" border="0"></a></body></html>');
   win.document.close ();
   clearTimeout (magnifierLoadingTimer);
   if (magnifierLoadingDIV != null)
      magnifierLoadingDIV.style.visibility = 'hidden';
   }

var lastMagnifiedImage = null; 
var hideMagnifierTimer = null;

function clearHideMagnifierTimer () {
  clearTimeout (hideMagnifierTimer);
  }

function setHideMagnifierTimer () {
  hideMagnifier (lastMagnifiedImage);
  }

function hideMagnifier (img, event) {
  clearTimeout (hideMagnifierTimer);
  hideMagnifierTimer = setTimeout ('magnigierAlreadyAdded = false;magnifierDIV.parentNode.removeChild (magnifierDIV)', 200);
  }

function showMagnifier (img, event) {
 lastMagnifiedImage = img;
  clearTimeout (hideMagnifierTimer);

 if (magnigierAlreadyAdded) return;
 if (!event) var event = window.event;
 var imgX = getElementPosX (img);
 var imgY = getElementPosY (img);
 if (magnifierDIV == null) {
    magnifierDIV = document.createElement ('div');
    magnifierDIV.innerHTML = '<img src="'+relativeURI+'images/icons/zoom.gif" alt="" title="" style="cursor:pointer" onclick="lastMagnifiedImage.onclick()">';
    magnifierDIV.style.position = 'absolute';
    magnifierDIV.style.zIndex = 99;
    if (navigator.userAgent.indexOf ('MSIE') != -1)
       magnifierDIV.onmouseover = clearHideMagnifierTimer;
       else magnifierDIV.setAttribute ('onmouseover','clearHideMagnifierTimer()');
    if (navigator.userAgent.indexOf ('MSIE') != -1)
       magnifierDIV.onmouseout = setHideMagnifierTimer;
       else magnifierDIV.setAttribute ('onmouseover','setHideMagnifierTimer()');
    }
  magnifierDIV.style.left = (imgX + img.clientWidth - 64)+'px';
  magnifierDIV.style.top =  (imgY + img.clientHeight - 64)+'px';
  if (img.nextSibling) {
     img.parentNode.insertBefore (magnifierDIV, img.nextSibling);
     } else img.parentNode.appendChild (magnifierDIV);
  magnigierAlreadyAdded = true;
  }

function getElementPosY (myObj) { 
  return (myObj.offsetTop + ((myObj.offsetParent) ? getElementPosY(myObj.offsetParent) : 0)); 
  } 

function getElementPosX (myObj) { 
  return (myObj.offsetLeft + ((myObj.offsetParent) ?  getElementPosX(myObj.offsetParent) : 0));
  }  

