  var zaktnr=0;
  var zmoveueberlupe=0;
  var zbildskal=0;

  function zmaus(e) {
    // clientx,clientx: ff, ie5 dito Abstand vom Fensterand
    // pagex,pagey:ff: Abstand vom Seitenrand ie5 undefiniert
    // window.event.x,y: ie5 Abstand im Element ff: undefiniert
    // layerX,layerY: ff Abstand im Element
    // document.documentElement.scrollLeft: ie standardkonforme doctype
    // document.body.scrollTop: ie sonst
    //alert("m"+zbildskal);
    if (zbildskal<2) return;
    x = e.layerX || window.event.x;
    y = e.layerY || window.event.y;
    x2 = e.pageX || document.documentElement.scrollLeft+window.event.clientX;
    y2 = e.pageY || document.documentElement.scrollTop+window.event.clientY;
    bl=document.getElementById("lupebl"+zaktnr);
    if (parseInt(bl.style.width)==0) return;
    if ((zmoveueberlupe==1)&&(e.layerX>0)&&(document.getElementById("lupedg").style.display != "none")) {
      // diese Korrektur ist notwendig, da sich x,y bei FF auf aktuelles Element (hier die Lupe) bezieht
      // und bei IE auf übergeordnetes relatives Element (hier div "d")
      zmoveueberlupe=0;
      x+=parseInt(bl.style.left);
      y+=parseInt(bl.style.top);
      x2+=parseInt(bl.style.left);
      y2+=parseInt(bl.style.top);
    }
    var kimg=new Image();
    kimg.src=document.getElementById("lupebk"+zaktnr).src;
    //alert(x+"/"+bl.style.left+"/"+document.getElementById("lupel"+zaktnr).style.left+"/"+bl.style.width+"/"+document.getElementById("lupel"+zaktnr).style.width+"/"+document.getElementById("luped"+zaktnr).style.width+"/"+document.getElementById("luped"+zaktnr).style.width);
//    if (((x-parseInt(parseInt(bl.style.width)/2))>=0) && ((x-parseInt(parseInt(bl.style.width)/2))<=kimg.width))
    bl.style.left =  (x-parseInt(parseInt(bl.style.width)/2)) + "px";
    //alert(y+"/"+bl.style.top+"/"+document.getElementById("lupel"+zaktnr).style.top+"/"+bl.style.height+"/"+document.getElementById("lupel"+zaktnr).style.height);
//    if (((y-parseInt(parseInt(bl.style.height)/2))>=0) && ((y-parseInt(parseInt(bl.style.height)/2))<=kimg.height))
    bl.style.top  =  (y-parseInt(parseInt(bl.style.height)/2)) + "px";
    document.getElementById("lupel"+zaktnr).style.left=bl.style.left;
    document.getElementById("lupel"+zaktnr).style.top=bl.style.top;
    document.getElementById("bg").style.left = -parseInt(parseInt(bl.style.left)*zbildskal)+"px";
    document.getElementById("bg").style.top  = -parseInt(parseInt(bl.style.top)*zbildskal)+"px";
    // nur für IE5
    if (document.getElementById("lupedg").style.display != "none") {
      // wenn Bildlupe außerhalb kleinem Bild, dann ausschalten; bei Firefox genügt lupel.onmouseout (siehe zshow)
    if (parseInt(bl.style.left)<-parseInt(parseInt(bl.style.width)/2)) {zhide();return;};
    if (parseInt(bl.style.top)<-parseInt(parseInt(bl.style.height)/2)) {zhide();return;};
    if (parseInt(bl.style.left)>kimg.width-parseInt(parseInt(bl.style.width)/2)) {zhide();return;};
    if (parseInt(bl.style.top)>kimg.height-parseInt(parseInt(bl.style.height)/2)) {zhide();return;};
    }
    // Ende nur für IE5
    // großes Bildfenster neben kleines Bild positionieren
    if (document.getElementById("lupedg").style.display == "none")
    {
      zmoveueberlupe=0;
      awidth=kimg.width;
      awidthdiff=awidth-x;
      aheight=kimg.height;
      aheightdiff=y;
      document.getElementById("lupedg").style.top=(y2-aheightdiff)+"px";
      document.getElementById("lupedg").style.left=(x2+55+awidthdiff)+"px";
      document.getElementById("lupedg").style.display = "block";
    }
    //alert(x+"/"+y+"/"+bl.style.left+"/"+bl.style.top+"/"+document.getElementById("lupel"+zaktnr).style.left);
  }

  function zshow(nr,gsrc) {
    if (zaktnr==nr) return;
    if (zaktnr>0) zhide();
    zaktnr=nr;
    zbildskal=0;
    document.getElementById("lupel"+zaktnr).onmousemove=function(){zmovelupe();}
    document.getElementById("lupebl"+zaktnr).onmousemove=function(){zmovelupe();}
    document.getElementById("lupel"+zaktnr).onmouseout=function() {zhide();} // fkt. nicht bei IE5, da dort Lupe immer mitgeht
    var kimg=new Image();
    kimg.src=document.getElementById("lupebk"+zaktnr).src;
    var gimg=new Image();
    gimg.onload=function () {
      // die Abmessungen des großen Bildes können erst festgestellt werden, wenn es geladen ist, deshalb in OnLoad-Funktion
      if (kimg.width>0)
      zbildskal=this.width/kimg.width;
      //alert("s"+zbildskal);
      //if (zbildskal<2) return;
      document.getElementById("bg").src=gsrc; // dem großen Bild Src-Adresse zuordnen
      document.getElementById("lupedg").style.height='400px'; // max.Abmessungen des großen Bildausschnitts
      document.getElementById("lupedg").style.width='300px';  // "
      // großen Bildausschnitt in der Höhe und Breite begrenzen auf halbe Breite und halbe Höhe, aber nur, wenn
      // das große Bild auch groß genug ist, ansonsten komplette Darstellung des großen Bildes
      if (parseInt(document.getElementById("lupedg").style.height)>this.height*0.75)
        document.getElementById("lupedg").style.height=this.height+"px";
      else if (parseInt(document.getElementById("lupedg").style.height)>this.height/2)
        document.getElementById("lupedg").style.height=parseInt(this.height/2)+"px";
      if (parseInt(document.getElementById("lupedg").style.width)>this.width*0.75)
        document.getElementById("lupedg").style.width=this.width+"px";
      else if (parseInt(document.getElementById("lupedg").style.width)>this.width/2)
        document.getElementById("lupedg").style.width=parseInt(this.width/2)+"px";
      // Position der Schatten um den großen Bildausschnitt
      document.getElementById("bgsu").style.top=(parseInt(document.getElementById("lupedg").style.height)-5)+"px";
      document.getElementById("bgsu").style.width=(parseInt(document.getElementById("lupedg").style.width)-5)+"px";
      document.getElementById("bgsr").style.left=(parseInt(document.getElementById("lupedg").style.width)-5)+"px";
      document.getElementById("bgsr").style.height=(parseInt(document.getElementById("lupedg").style.height)-5)+"px";
      document.getElementById("bgsru").style.top=(parseInt(document.getElementById("lupedg").style.height)-5)+"px";
      document.getElementById("bgsru").style.left=(parseInt(document.getElementById("lupedg").style.width)-5)+"px";
      //alert(this.height+"/"+this.width+"/"+lh+"/"+lw+"/"+document.getElementById("lupedg").style.height+"/"+document.getElementById("lupedg").style.width);
      // Brechnung der Größe der Lupe abhängig von großem und kleinem Bild
      lh=parseInt(document.getElementById("lupedg").style.height)*kimg.height/this.height;
      lw=parseInt(document.getElementById("lupedg").style.width)*kimg.width/this.width;
      document.getElementById("lupel"+zaktnr).style.width=lw+"px";
      document.getElementById("lupel"+zaktnr).style.height=lh+"px";
      document.getElementById("lupebl"+zaktnr).style.width=lw+"px";
      document.getElementById("lupebl"+zaktnr).style.height=lh+"px";
      document.getElementById("lupel"+zaktnr).style.display = "inline";
    }
    gimg.src=gsrc; // dem temporären großen Bild Src-Adresse zuordnen; alles andere in gimg.onload
  }

  function zhide() {
    if (document.getElementById("lupedg")) {
      // großen Bildausschnitt ausschalten
      document.getElementById("lupedg").style.display = "none";
      document.getElementById("lupedg").style.top="0px";
      document.getElementById("lupedg").style.left="0px";
      // Lupe ausschalten
      if (document.getElementById("lupel"+zaktnr))
        document.getElementById("lupel"+zaktnr).style.display = "none";
    }
    zbildskal=0;
    zaktnr=0;
  }

  function zmovelupe() {
    zmoveueberlupe=1;
  }
