var     LomoWallVersion="LomoWall by Marc II (markus.petz@kfunigraz.ac.at) v2.1 20000914";    LomoWallText="Feel free to use and share this little script whenever you want (please contact me if you do so / want technical support / have suggestions for modifications). LOMO the world!";    img = new Array("1","2","3","6","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","31","32","33","34","35","36","37","38","39","40","41","42","43","44","45","46","47","48","49","50","51","52","53","54","55","56","57","58","59","60","61");    ImgFolder = "./img_tori/";    ImgExtension = ".jpg";    PopUpLargeImg = "on"    LargeImgSuffix = "b";    PopUpWinWidth = 416;    PopUpWinHeight = 309;    LomoWallReload = "on";    ReloadAfterSeconds = 5;    PreLoad = "on";    UseStyles = new Array("diffuse","lines1","lines2","spots","paths1","paths2"); /* valid values: "diffuse","lines1","lines2","spots","paths1","paths2" */    LinesRepeat = 2;    TableHeight = 6;    TableWidth = 6;    CountImgAtOnce = 5;    MaxCountSingleImg = 8;    CountBeforeDouble = 12;    //DO NOT CHANGE the following values:    CountTableImg = TableHeight*TableWidth;    CountTotalImg = img.length;    ImgsToDisplay = new Array(CountImgAtOnce);    CountImgDisplayed = new Array(CountImgAtOnce);    AlreadyChosen = new Array(CountTotalImg);    DiagStart1x = new Array(TableHeight+TableWidth-1);    DiagStart1y = new Array(TableHeight+TableWidth-1);    DiagStart2x = new Array(TableHeight+TableWidth-1);    DiagStart2y = new Array(TableHeight+TableWidth-1);    CellsFilled = new Array(CountTableImg);    CountLoaded = CountImgAtOnce;    TempImg = new Array(CountImgAtOnce);    TableStartImg = 0;    CountReloads = 0;    CountRetries = 0;    BrowserName = navigator.appName;  function SetDiffuse() {    for (i1=0; i1<CountImgAtOnce; ++i1)      CountImgDisplayed[i1]=0;    for (i1=0; i1<CountTableImg; ++i1) {      NextImg=Math.floor(Math.random()*CountImgAtOnce);      while (CountImgDisplayed[NextImg] >= MaxCountSingleImg) {           NextImg=Math.floor(Math.random()*CountImgAtOnce);      }      CountImgDisplayed[NextImg]++;      document.images[TableStartImg+i1].src=ImgFolder + img[ImgsToDisplay[NextImg]] + ImgExtension;    }  } /*SetDiffuse*/  function SetDiagonal1() {    i3=0;    NextImg=0;    for (i1=0; i1<DiagStart1x.length; ++i1) {      x=DiagStart1x[i1];      y=DiagStart1y[i1];      while (x<TableWidth && y<TableHeight) {        i2=TableStartImg+x+(y*TableWidth);        document.images[i2].src=ImgFolder + img[ImgsToDisplay[NextImg]] + ImgExtension;        x++;        y++;      }      i3++;      if (i3==LinesRepeat) {        NextImg++;        i3=0;      }      if (NextImg>=CountImgAtOnce) NextImg=0;    }  } /*setDiagonal1*/  function SetDiagonal2() {    i3=0;    NextImg=0;    for (i1=0; i1<DiagStart2x.length; ++i1) {      x=DiagStart2x[i1];      y=DiagStart2y[i1];      while (x>=0 && y<TableHeight) {        i2=TableStartImg+x+(y*TableWidth);        document.images[i2].src=ImgFolder + img[ImgsToDisplay[NextImg]] + ImgExtension;        x--;        y++;      }      i3++;      if (i3==LinesRepeat) {        NextImg++;        i3=0;      }      if (NextImg>=CountImgAtOnce) NextImg=0;    }  } /*setDiagonal2*/  function SetSpot() {    for (i1=0; i1<CountImgAtOnce; ++i1)      CountImgDisplayed[i1]=0;    for (i1=0; i1<CountTableImg; ++i1)      CellsFilled[i1]=0;    i2=0;    i3=0;    while (i3<CountTableImg) {      x0=Math.floor(Math.random()*TableWidth);      y0=Math.floor(Math.random()*TableHeight);      for (i1=CountImgDisplayed[i2]; i1<MaxCountSingleImg; ++i1) {        r=Math.random()*2;        p=Math.random()*2*Math.PI;        x=x0+Math.floor(Math.cos(p)*r);        y=y0+Math.floor(Math.sin(p)*r);        if (x>=0 && x<TableWidth && y>=0 && y<TableHeight && CellsFilled[x+y*TableWidth]==0) {          document.images[TableStartImg+x+y*TableWidth].src=ImgFolder + img[ImgsToDisplay[i2]] + ImgExtension;          CellsFilled[x+y*TableWidth]=1;          CountImgDisplayed[i2]++;          i3++;        }      }      i2++;      if (i2==CountImgAtOnce) i2=0;    }  } /*SetSpot*/  function SetPath1() {    for (i1=0; i1<CountImgAtOnce; ++i1)      CountImgDisplayed[i1]=0;    for (i1=0; i1<CountTableImg; ++i1)      CellsFilled[i1]=0;    i2=0;    i3=0;    while (i3<CountTableImg) {      x=Math.floor(Math.random()*TableWidth);      y=Math.floor(Math.random()*TableHeight);      for (i1=0; i1<MaxCountSingleImg; ++i1) {        x1=x;        y1=y;        if (Math.random()<0.5) {          if (Math.random()<0.5) x++;          else x--;        }        else {          if (Math.random()<0.5) y++;          else y--;        }        if (x>=0 && x<TableWidth && y>=0 && y<TableHeight && CellsFilled[x+y*TableWidth]==0) {          document.images[TableStartImg+x+y*TableWidth].src=ImgFolder + img[ImgsToDisplay[i2]] + ImgExtension;          CellsFilled[x+y*TableWidth]=1;          CountImgDisplayed[i2]++;          i3++;        }        else {          x=x1;          y=y1;        }      }      i2++;      if (i2==CountImgAtOnce) i2=0;    }  } /*SetPath1*/  function SetPath2() {    for (i1=0; i1<CountImgAtOnce; ++i1)      CountImgDisplayed[i1]=0;    for (i1=0; i1<CountTableImg; ++i1)      CellsFilled[i1]=0;    i2=0;    i3=0;    i4=0;     dx=1;    dy=0;    dz=1;    while (i3<CountTableImg) {      x=Math.floor(Math.random()*TableWidth);      y=Math.floor(Math.random()*TableHeight);      if (Math.random()<0.5) dz=-1;      else dz=1;      for (i1=CountImgDisplayed[i2]; i1<MaxCountSingleImg; ++i1) {        if (Math.random()<.5) {          if (Math.random()<0.5) {            dx=1;            dy=0;          }           else {            dx=0;            dy=1;          }        }        x=x+dz*dx;        y=y+dz*dy;        if (x>=0 && x<TableWidth && y>=0 && y<TableHeight && CellsFilled[x+y*TableWidth]==0) {          document.images[TableStartImg+x+y*TableWidth].src=ImgFolder + img[ImgsToDisplay[i2]] + ImgExtension;          CellsFilled[x+y*TableWidth]=1;          CountImgDisplayed[i2]++;          i3++;                i4=0;        }        else {          i4++;          if (i4<4) i1--;          x=x-dz*dx;          y=y-dz*dx;        }      }      i2++;      if (i2==CountImgAtOnce) i2=0;    }  } /*SetPath2*/  function ChooseNextImages() {    for (i1=0; i1<CountImgAtOnce; ++i1) {      ImgsToDisplay[i1]=Math.floor(Math.random()*CountTotalImg);      while (AlreadyChosen[ImgsToDisplay[i1]]>0) {        ImgsToDisplay[i1]=Math.floor(Math.random()*CountTotalImg);      }      AlreadyChosen[ImgsToDisplay[i1]]=CountBeforeDouble;      if (PreLoad=="on") TempImg[i1].src=ImgFolder + img[ImgsToDisplay[i1]] + ImgExtension;    }    for (i1=0; i1<CountTotalImg; ++i1) AlreadyChosen[i1]-=CountImgAtOnce;  } /*ChooseNextImages*/  function RandomizeImages(SetTimer) {    if (PreLoad=="on" && SetTimer>0 && CountReloads>0 && BrowserName=="Microsoft Internet Explorer" && navigator.appVersion.substring(0,1)>="4") {      CountLoaded=0;      for (i1=0; i1<CountImgAtOnce; ++i1) {        if (TempImg[i1].complete==true) CountLoaded++;      }    }    if (CountRetries>15 && CountLoaded==0) CountLoaded=CountImgAtOnce;    if (CountLoaded==CountImgAtOnce) {      CountRetries=0;      ++CountReloads;      i1=Math.floor(Math.random()*UseStyles.length);      if (UseStyles[i1]=="diffuse") SetDiffuse();      if (UseStyles[i1]=="lines1") SetDiagonal1();      if (UseStyles[i1]=="lines2") SetDiagonal2();      if (UseStyles[i1]=="spots") SetSpot();      if (UseStyles[i1]=="paths1") SetPath1();      if (UseStyles[i1]=="paths2") SetPath2();      ChooseNextImages();      if (LomoWallReload=="on" && SetTimer>0)        ReloadTimer1=window.setTimeout("RandomizeImages(1)",ReloadAfterSeconds*1000);    }    else {      ++CountRetries;      ReloadTimer1=window.setTimeout("RandomizeImages(1)",2000);    }  } /*RandomizeImages*/  function InitLomoWall() {    while (document.images[TableStartImg].name!="tablestart") TableStartImg++;    window.defaultStatus="random lomowall...";    if ((CountImgAtOnce*MaxCountSingleImg)<(TableWidth*TableHeight)) MaxCountSingleImg=math.ceil((TableWidth*TableHeight)/CountImgAtOnce);    if (CountBeforeDouble>=CountTotalImg-CountImgAtOnce) CountBeforeDouble=CountTotalImg-CountImgAtOnce-1;    for (i1=0; i1<CountTotalImg; ++i1)      AlreadyChosen[i1]=0;    for (i1=0; i1<TableHeight; ++i1) {      DiagStart1x[i1]=0;      DiagStart1y[i1]=TableHeight-i1-1;    }    for (i1=1; i1<TableWidth; ++i1) {      DiagStart1x[i1+TableHeight-1]=i1;      DiagStart1y[i1+TableHeight-1]=0;    }    for (i1=0; i1<TableWidth; ++i1) {      DiagStart2x[i1]=i1;      DiagStart2y[i1]=0;    }    for (i1=1; i1<TableHeight; ++i1) {      DiagStart2x[i1+TableWidth-1]=TableWidth-1;      DiagStart2y[i1+TableWidth-1]=i1;    }    for (i1=0; i1<CountImgAtOnce; ++i1) {      TempImg[i1]=new Image()    }    ChooseNextImages();     RandomizeImages(1);  } /*InitLomoWall*/  function ClickOnTableImg(num) {    if (PopUpLargeImg=="on") {      i1=document.images[num+TableStartImg-1].src.lastIndexOf(ImgExtension);      LImgSrc=document.images[num+TableStartImg-1].src.substring(0,i1)+LargeImgSuffix+ImgExtension;		document.BigLomo.src=LImgSrc;    }    else RandomizeImages(0);  } /*ClickOnTableImg*/  function CreateTable(imgw,imgh) {    i1=1;    for (row=1; row<=TableHeight; ++row) {      document.write("<tr>");      for (col=1; col<=TableWidth; ++col) {        txt="<td><a href='javascript:ClickOnTableImg("+i1+")'><img width="+imgw+" height="+imgh+" border=0></a></td>";        if (i1==1) txt="<td><a href='javascript:ClickOnTableImg("+i1+")'><img width="+imgw+" height="+imgh+" border=0 name='tablestart'></a></td>";        document.write(txt);        ++i1;      }      document.write("</tr>");    }  } /*CreateTable*/
