Michael: PHP-Array an JS mit nachfolgender Endlos-Galerie

Hallo,

Der einzige Schönheitsfehler, der mich jetzt noch bei unserer Fotogalerie beschäftigt, ist, dass nachfolgendes Skript erst wieder beim ersten Bild anfängt, wenn das letzte Bild durchgelaufen ist:

<script language="javascript" type="text/javascript">
  <!--

<?php echo "jsArr = new Array();\r\n";

foreach ($Bilder as $Schluessel => $Inhalt)
        echo "jsArr[{$Schluessel}] = "{$Inhalt}";\r\n";

?>

var sliderwidth= '100%';
    var sliderheight = '100%';
    var slidespeed = 3;

var finalslide = "<table border='0' cellpadding='0' cellspacing='0'><tr>";

for (i = 0; i < jsArr.length; i++)
    {
      var FotoGross = jsArr [i].replace("klein", "gross");

finalslide=finalslide +
      "<td bordercolor='#ffffff' style='border: 1px solid #ffffff'>
      <a href='#' onClick="BildAnzeigen('" + FotoGross + "');
      if(this.blur)this.blur()"
      onfocus='if(this.blur)this.blur();'>
      <img border='0' src='" + jsArr [i] + "'></a></td>";

if ((i + 1) < jsArr.length)
        finalslide=finalslide+"<td><img src='pic/gfx/L_spacer.gif' width='5' height='1'></td>";
    }

finalslide = finalslide + "</tr></table>";

var copyspeed = slidespeed;

if (document.all)
    {
      document.write('<marquee id="ieslider" scrollAmount=0 style="width:'+sliderwidth+'">'+finalslide+'</marquee>');
      ieslider.onmouseover=new Function("ieslider.scrollAmount=0");
      ieslider.onmouseout=new Function("if (document.readyState=='complete') ieslider.scrollAmount=slidespeed");
    }

function regenerate()
    {
      window.location.reload();
    }

function regenerate2()
    {
      if (document.layers)
      {
        document.ns_slider01.visibility="show";
        setTimeout("window.onresize=regenerate",450);
        intializeleftrightslide();
      }

if (document.all)
        ieslider.scrollAmount=slidespeed;
    }

function intializeleftrightslide()
    {
      document.ns_slider01.document.ns_slider02.document.write('<nobr>'+finalslide+'</nobr>');
      document. ns_slider01.document.ns_slider02.document.close();
      thelength=document.ns_slider01.document.ns_slider02.document.width;
      scrollslide();
    }

function scrollslide()
    {
      if (document.ns_slider01.document.ns_slider02.left>=thelength*(-1))
      {
        document.ns_slider01.document.ns_slider02.left-=slidespeed;
        setTimeout("scrollslide()",100);
      }
      else
      {
        document.ns_slider01.document.ns_slider02.left=sliderwidth;
        scrollslide();
      }
    }

window.onload=regenerate2;

//-->
</script>
<ilayer width=&{sliderwidth}; height=&{sliderheight}; name="ns_slider01" visibility=hide>
  <layer name="ns_slider02" onMouseover="slidespeed=0;" onMouseout="slidespeed=copyspeed"></layer>
</ilayer>

Ich habe jetzt mal den kompletten Code reinkopiert, weil es immer so 'ne Sache ist, wenn man was weglässt :o)

Warum die Galerie erst dann wiederholt wird, wenn das letzte Bild durchgelaufen ist, dürfte wohl daran liegen, dass ich die Bilder als String mit dem Namen "finalslide" ablege.

Optimal wäre es aber, wenn die Galerie nahtlos wiederholt werden, d.h. sofort nach dem letzten Bild wieder das erste Bild angezeigt werden würde.

Nur: Wie muss ich das Skript entsprechend ändern ?

Flash scheidet aus, weil ich bei Flash absolut keine Ahnung habe :o)

Vielen Dank für Eure Antworten

Gruss, Michael