var BTitel= "Titel"; //BildTitel
var BText= "Text"; //BildBeschreibung
var BDatei= ""; //BildDateiname
var BSize; //Array von DateiGrößen der Bilder
var iX,iY; //Array von Auflösungen der Bilder
var iXklein; //Breite des Icons
var iYklein; //Höhe des Icons
var strArg; //String der ÜbergabeParameter
var v; //GrößenIndex des Bildes
var AnzSpalten= 3; //Spalten pro Table für die Galerie

/**
 * Unterrubriken der Galerien
 */
var Rub= new Object();
Rub.Titel= new Array();
Rub.Bilder= new Array();
Rub.Titel[0]= "Meine Besten";
Rub.Bilder[0]= new Array("1","16","17","7","21","26","14","15");
Rub.Titel[1]= "BOY LONDON - Uhr";
Rub.Bilder[1]= new Array("0","2","3","4","5","6");
Rub.Titel[2]= "Visions in Space";
Rub.Bilder[2]= new Array("9","10","11","12","13");
Rub.Titel[3]= "Geb&auml;ude / Architektonisches";
Rub.Bilder[3]= new Array("8","27","28","29");
Rub.Titel[4]= "Diverses";
Rub.Bilder[4]= new Array("18","19","20","22","23","24","25","30");

/**
 * Aufbau des Dokuments nach Dokumententitel
 */
if(document.title=="galerie"){ buildGalerie(new Array("0")); }else
if(document.title=="uebungen"){ buildGalerie(new Array("1","2","3","4")); }else
if(document.title=="galerie_detail") { buildDetail(); }

/**
 * indexierte DetailDaten des Bildes (Titel, Dateiname, Beschreibung, Maße)
 */
function setPage(i){
  BSize= new Array();
  iX= new Array();
  iY= new Array();
  iX[0]= "800";
  iY[0]= "600";
  iXklein= "80";
  iYklein= "60";
  
  switch(i){
    case "0":
      BTitel= "BOY LONDON #00";
      BDatei= "images/boy_london00_"+v+".jpg";
      BSize[0]="30kB";
      BText= "So hat dieses Projekt angefangen: Um die Proportionen des fertigen \
          Modells zu pr&uuml;fen und um eine geeignete Perspektive zu finden, habe \
          ich mal mit einem Comic-PlugIn herumgespielt. Nette Sache, man kann \
          Bilder erzeugen, die wie gezeichnet aussehen \
          <IMG src='icons/icon_smile_cool.gif'>.";
      break;
    case "1":
      BTitel= "BOY LONDON #01";
      BDatei= "images/boy_london01_"+v+".jpg";
      BSize[0]="34kB";
      BText= "So hat dieses Projekt angefangen: Um die Proportionen des fertigen \
          Modells zu pr&uuml;fen und um eine geeignete Perspektive zu finden, habe \
          ich mal mit einem Comic-PlugIn herumgespielt. Nette Sache, man kann \
          Bilder erzeugen, die wie gezeichnet aussehen \
          <IMG src='icons/icon_smile_cool.gif'>.";
      break;
    case "2":
      BTitel= "BOY LONDON #02";
      BDatei= "images/boy_london02_"+v+".jpg";
      BSize[0]="36kB";
      BText= "Mal ´ne andere Perspektive.";
      break;
    case "3":
      BTitel= "BOY LONDON #03";
      BDatei= "images/boy_london03_"+v+".jpg";
      BSize[0]="55kB";
      BText= "Der n&auml;chste Schritt war die komplette Texturierung des Modells. Hier \
          habe ich die Aussenlinien-Option der Textur noch aktiviert gelassen. \
          Die Linien stechen allerdings noch zu sehr ins Auge, d.h. sie sind zu \
          dick und zu dunkel. Hat da mal jemand gesagt: \"Die Holztextur sieht wie \
          der Mars aus\" <IMG src='icons/icon_smile_wink.gif'>?";
      break;
    case "4":
      BTitel= "BOY LONDON #04";
      BDatei= "images/boy_london04_"+v+".jpg";
      BSize[0]="51kB";
      BText= "Mal ehrlich: Ganz ohne Linien sieht´s irgendwie nackig aus, oder?";
      break;
    case "5":
      BTitel= "BOY LONDON #05";
      BDatei= "images/boy_london05_"+v+".jpg";
      BSize[0]="44kB";
      BText= "So, das ist der erste Versuch eines \"Close-Up\". Wie man sicherlich \
          erkennen kann, ist noch nicht alles perfekt: Die Vertiefung des Schriftzugs \
          auf dem Schutzring ist hier noch mit einem ReliefMap dargestellt. Die \
          Glasscheibe hat auch irgendwie 'ne Macke (helle Linen von der Mitte aus). \
          Aber das Relief vom Zifferblatt hab ich schon nahe ans Original herangebracht.";
      break;
    case "6":
      BTitel= "BOY LONDON #06";
      BDatei= "images/boy_london06_"+v+".jpg";
      BSize[0]="48kB";
      BText= "Jetzt ist's fast fertig; mittlerweile wieder mit Outlines. Den Schriftzug \
          auf dem Schutzring habe ich mit Hilfe \"BOOLE'scher Operationen\" \
          herausgeschnitten (sieht glatter aus). Und das Metall gl&auml;nzt jetzt auch \
          etwas mehr. Wegen der Mehrfach-Reflexionen zwischen Zifferblatt und Glas \
          scheinen die Zeiger noch in der Luft zu h&auml;ngen. Au&szlig;erdem mu&szlig; ich wohl noch \
          etwas optimieren, damit mein PIII/700 nicht wieder 14&frac12; Std. zu rechnen braucht.";
      break;
    case "7":
      BTitel= "Our House";
      BDatei= "images/our_house01_"+v+".jpg";
      BSize[0]="98kB";
      BText= "Dieses Projekt begleitet mich schon seit ich anfing, mich mit 3D Studio MAX \
          zu besch&auml;ftigen. Als Letztes habe ich die Blumenk&auml;sten eingebracht. Immermal \
          zwischendurch f&auml;llt mir nochwas ein, das in dem Bild fehlt. Aber ich hab´ \
          noch Hoffnung, dass es irgendwann mal fertig wird \
          <IMG src='icons/icon_smile_wink.gif'>.";
      break;
    case "8":
      BTitel= "Wohnzimmer";
      BDatei= "images/our_house02_"+v+".jpg";
      BSize[0]="52kB";
      iYklein= "45";
      iY[0]= "450";
      BText= "Hier habe ich mal versucht, ein Zimmer einzurichten. Allerdings sind die \
          Texturen und Details noch stark &uuml;berarbeitungsbed&uuml;rftig. Wenn ich das mit \
          jedem Zimmer mache, dann wird mein <A href='galerie_detail.htm?index=7&v=0' \
          target=_self>Elternhaus</A> nie fertig \
          <IMG src='icons/icon_smile_blackeye.gif'>.";
      break;
    case "9":
      BTitel= "Earth";
      BDatei= "images/earth_"+v+".jpg";
      BSize[0]="74kB";
      BText= "Hier habe ich mal mit Relief-Maps herum-experimentiert.";
      break;
    case "10":
      BTitel= "Explode";
      BDatei= "images/explode_"+v+".jpg";
      BSize[0]="35kB";
      iYklein= "45";
      iY[0]= "450";
      BText= "Man kann's kaum glauben: Diese Szene besteht aus <B>nur 1</B> Objekt und 2 \
          Lichtquellen. Hier habe ich mehr Arbeit in die animierte Textur der Druckwelle \
          gesteckt. Die <A href='videos.htm' target=_self target='640x360 DivX;-)-Codec (525kB)'>\
          Animation</A> dazu ist mit Sound und sieht richtig <B>fett\
          </B> aus. Allerdings ist das Video mit dem <A href='links.htm' target=_self>\
          DivX;-)-Codec</A> komprimiert.";
      break;
    case "11":
      BTitel= "Centauri-Ship";
      BDatei= "images/shipcentauri_"+v+".jpg";
      BSize[0]="43kB";
      BText= "Diese 3 an <B>Babylon 5</B> angelehnten Raumschiffe sind gaaanz fr&uuml;he Werke \
          und seitdem nicht mehr angefasst worden. -HALT, NEIN- Stimmt nicht ganz: \
          Mit dem <A href='galerie_detail.htm?index=13&v=0' target=_self>\
          Vorlonenschiff</A> habe ich eine Animation gedreht.";
      break;
    case "12":
      BTitel= "Shadow-Ship";
      BDatei= "images/shipshadow_"+v+".jpg";
      BSize[0]="47kB";BSize[1]="70kB";
      iX[1]= "1024"; iY[1]= "768";
      BText= "Dieses Modell habe ich aus 1 einzigen Box gezimmert. Mit Face-Extrusion \
          habe ich die ganzen Tentakel herausgezogen, und dann ein MeshSmooth \
          (Netz-Weichmacher) angewandt.";
      break;
    case "13":
      BTitel= "Vorlon-Ship";
      BDatei= "images/shipvorlon_"+v+".jpg";
      BSize[0]="44kB";
      BText= "Ein sehr einfaches Modell eines Vorlon-Schiffes. Es besteht schlie&szlig;lich \
          auch nur aus 6 Objekten. Da ist es ja schon eine Anma&szlig;ung, das mit den \
          total ausgefeilten Modellen in B5 zu vergleichen. Aber schaut euch mal \
          die <A href='videos.htm' target=_self>Animation</A> dazu an. Die kommt <B>dick</B>! \
          <IMG src='icons/icon_smile_big.gif'>";
      break;
    case "14":
      BTitel= "Glider";
      BDatei= "images/glider_"+v+".jpg";
      BSize[0]="31kB";BSize[1]="56kB";
      iX[1]= "1024"; iY[1]= "768";
      BText= "Bei diesem Bild ging es darum, etwas Dynamisches in Szene zu setzen. Ich \
          denke das ist einigerma&szlig;en gelungen, oder!? \
          <IMG src='icons/icon_smile_wink.gif'>";
      break;
    case "15":
      BTitel= "Mountain";
      BDatei= "images/mountain_"+v+".jpg";
      BSize[0]="76kB";BSize[1]="113kB";
      iYklein= "53"; iY[0]= "534";
      iX[1]= "1024"; iY[1]= "683";
      BText= "Hier mal ein \"Gem&auml;lde\", das mit Bryce3D einfacher zu machen schien. \
          Allerdings ist die Metacreations-Software etwas gew&ouml;hnungsbed&uuml;rftig, aber \
          man kann in kurzer Zeit gute Ergebnisse erzielen, da es viele Assistenten \
          und Automatismen gibt. &Uuml;brigens hat mich ein Grafitty-K&uuml;nstler zu diesem \
          Motiv inspiriert.";
      break;
    case "16":
      BTitel= "BOY LONDON Final";
      BDatei= "images/boy_london07_"+v+".jpg";
      BSize[0]="52kB";BSize[1]="82kB";
      iX[1]= "1024"; iY[1]= "768";
      BText= "So, das soll die entg&uuml;ltige Version sein. Die Fehler sind alle ausgeb&uuml;gelt \
          und das Blatt Papier ist, so denke ich, Ambiente genug.";
      break;
    case "17":
      BTitel= "BOY LONDON CloseUp";
      BDatei= "images/boy_london08_"+v+".jpg";
      BSize[0]="54kB";BSize[1]="87kB";
      iX[1]= "1024"; iY[1]= "768";
      BText= "Hier nochmal eine Nahaufnahme des Geh&auml;uses. Gut, dass keine Fehler mehr im \
          Bild sind, denn mein PIII/700 hat geraume 17,5 Stunden\
          <IMG src='icons/icon_smile_sad.gif'> ben&ouml;tigt um das \
          Bild zu rendern.";
      break;
    case "18":
      BTitel= "Apfel";
      BDatei= "images/apfel_"+v+".jpg";
      BSize[0]="73kB";
      BText= "Hier das Modell eines \"Schneewittchen-\" Apfels. Der K&ouml;rper ist eine \
          modifizierte NURBS-Kugel. Das Material setzt sich aus 3 gemischten Texturen \
          zusammen.";
      break;
    case "19":
      BTitel= "Bike";
      BDatei= "images/bike_"+v+".jpg";
      BSize[0]="39kB";
      iX[0]= "500"; iXklein= "50";
      BText= "Das ist ein angefangenes Modell für einen Motorrad-verr&uuml;ckten Kumpel. \
          Die mit diesem Bild verzierte Geburtstagskarte kam ganz gut an. Ich hab \
          aber nicht weiter d'ran gearbeitet, da man mit Box-Modelling nicht sehr \
          detailgetreu modellieren kann.";
      break;
    case "20":
      BTitel= "Cartman";
      BDatei= "images/cartman_"+v+".jpg";
      BSize[0]="29kB";
      iX[0]= "600"; iXklein= "60";
      BText= "Wer Kenny, Stan und Kyle kennt, der wird wissen, warum deren Kumpel Eric \
          hier so b&ouml;se d'reinguckt.<BR>- Ihr habt keine Ahnung?! -<BR>OK, ich sag's euch: \
          Polly Pups-P&uuml;ppchen hat wiedermal ihren Tee nicht ausgetrunken \
          <IMG src='icons/icon_smile_wink.gif'>.";
      break;
    case "21":
      BTitel= "Desktop";
      BDatei= "images/desktop_"+v+".jpg";
      BSize[0]="40kB";
      iY[0]= "450"; iYklein= "45";
      BText= "Hier mal ein nicht so allt&auml;gliches Schreibtischambiente. Bis auf das \
          aufgeschlagene Buch habe ich alle anderen Modelle selbst erstellt. Man beachte \
          den Rauch der Zigarette (ein MAX-Standard-Partikeleffekt). Das Modell des \
          Aschers samt Zigarette und Rauch gibt es im Modellbereich bei \
          <A href='http://www.3dmaxforum.de' target='_blank'>3dmaxforum</A> zum herunterladen.";
      break;
    case "22":
      BTitel= "Formel 1";
      BDatei= "images/f1_full_"+v+".jpg";
      BSize[0]="37kB";
      BText= "Wie man sieht, ist das Modell noch stark verbesserungsbed&uuml;rftig. Einst war \
          es als Titelbild für <A href='http://www.tomd.de' target='_blank'>Tom's \
          Grand-Prix-Duell</A> gedacht, doch dann hat er ein wesentlich besseres Modell \
          gefunden. <IMG src='icons/icon_smile_sad.gif'>";
      break;
    case "23":
      BTitel= "Jet";
      BDatei= "images/jet_"+v+".jpg";
      BSize[0]="39kB";
      BText= "Das ist eins meiner ersten Modelle. Ich hab' es innerhalb von 10 min. nach \
          einem <B>XtraACTIVE-Tutorial</B> erstellt.";
      break;
    case "24":
      BTitel= "Head";
      BDatei= "images/kopf_"+v+".jpg";
      BSize[0]="22kB";
      iX[0]= "600"; iXklein= "60";
      BText= "Ein Kopf.";
      break;
    case "25":
      BTitel= "Logo 2000";
      BDatei= "images/logo_2000_"+v+".jpg";
      BSize[0]="36kB";
      iX[0]= "400"; iXklein= "40";
      BText= "Mein Logo hab ich zur Jahrtausendwende erstmals in 3D dargestellt. Es sieht \
            zwar etwas protzig aus, aber mir gef&auml;llt's. \
            <IMG src='icons/icon_smile_big.gif'>";
      break;
    case "26":
      BTitel= "Ray(s)";
      BDatei= "images/rays_"+v+".jpg";
      BSize[0]="64kB";
      BText= "Es ist schon recht schwierig, so eine Unterwasserszene zu erstellen. Dabei \
          ist das Modellieren der Fische, des Bootes und des Bodens das kleinere Problem. \
          Das Einstellen der Texturen und die Atmosph&auml;rischen Effekte war echt \
          zeitraubend.";
      break;
    case "27":
      BTitel= "Rundflug #01";
      BDatei= "images/rundflug01_"+v+".jpg";
      BSize[0]="53kB";
      BText= "Mit einer guten Freundin hatte ich dieses Projekt im Rahmen eines ihrer \
          Architekturbelege verwirklicht (natürlich nur virtuell). Die Vorgabe war, ein \
          bereits existierendes, altes Geb&auml;ude in Dresden Löbtau so beplanen, daß \
          eine behindertengerechte Rekonstruktion bzw. ein zum Gemeindehaus geeigneter \
          Ausbau m&ouml;glich ist. Neben dieser Animation mit Rundflug um's Geb&auml;ude, \
          Durchquerung des Foyers, des Saales und dem Rundblick im Hof, wurden auch \
          ma&szlig;stabsgerechte Pappmodelle angefertigt. Der Vorschlag ist zwar nicht \
          verwirklicht worden, aber zu einer guten Note (für sie) hat es allemal gereicht!";
      break;
    case "28":
      BTitel= "Rundflug #02";
      BDatei= "images/rundflug02_"+v+".jpg";
      BSize[0]="43kB";
      BText= "Mit einer guten Freundin hatte ich dieses Projekt im Rahmen eines ihrer \
          Architekturbelege verwirklicht (natürlich nur virtuell). Die Vorgabe war, ein \
          bereits existierendes, altes Geb&auml;ude in Dresden Löbtau so beplanen, daß \
          eine behindertengerechte Rekonstruktion bzw. ein zum Gemeindehaus geeigneter \
          Ausbau m&ouml;glich ist. Neben dieser Animation mit Rundflug um's Geb&auml;ude, \
          Durchquerung des Foyers, des Saales und dem Rundblick im Hof, wurden auch \
          ma&szlig;stabsgerechte Pappmodelle angefertigt. Der Vorschlag ist zwar nicht \
          verwirklicht worden, aber zu einer guten Note (für sie) hat es allemal gereicht!";
      break;
    case "29":
      BTitel= "Rundflug #03";
      BDatei= "images/rundflug03_"+v+".jpg";
      BSize[0]="47kB";
      BText= "Mit einer guten Freundin hatte ich dieses Projekt im Rahmen eines ihrer \
          Architekturbelege verwirklicht (natürlich nur virtuell). Die Vorgabe war, ein \
          bereits existierendes, altes Geb&auml;ude in Dresden Löbtau so beplanen, daß \
          eine behindertengerechte Rekonstruktion bzw. ein zum Gemeindehaus geeigneter \
          Ausbau m&ouml;glich ist. Neben dieser Animation mit Rundflug um's Geb&auml;ude, \
          Durchquerung des Foyers, des Saales und dem Rundblick im Hof, wurden auch \
          ma&szlig;stabsgerechte Pappmodelle angefertigt. Der Vorschlag ist zwar nicht \
          verwirklicht worden, aber zu einer guten Note (für sie) hat es allemal gereicht!";
      break;
    case "30":
      BTitel= "Zigarette";
      BDatei= "images/zigarette_"+v+".jpg";
      BSize[0]="40kB";
      BText= "Hier ein Versuch, Rauch mit einem Partikeleffekt darzustellen. Die \
          <A href='videos.htm'>Animation</A> dazu sieht rel. realistisch aus. Das Modell des \
          Aschers samt Zigarette und Rauch gibt es im Modellbereich bei \
          <A href='http://www.3dmaxforum.de' target='_blank'>3dmaxforum</A> zum herunterladen.";
      break;
  }
}

/**
 * Wert für übergebenen Namen aus ÜbergabeString
 */
function getValue( vName) {
  iStrt= strArg.indexOf(vName+"=",0);
  if(iStrt==-1) return "";
  else iStrt= iStrt+vName.length+1;
  iEnde= strArg.indexOf('&',iStrt);
  if(iEnde==-1) iEnde= strArg.length;
  
  return strArg.substring(iStrt, iEnde);
}

/**
 * Dokumentaufbau für das gewählte Bild (Titel, Navigationszeile, Beschreibung, Bild)
 */
function buildDetail(){
//ÜbergabeParameter auswerten (Bild- und Größen-Index)
  strArg= document.location.search;
  index= getValue("index");
  v= getValue("v");
  setPage(index);
//Rubrik und Stelle in der sich das Bild befindet 
  Rubrik= null;
  RIndex= 0;
  RTitel= "";
  for(i=0; (i<Rub.Bilder.length && Rubrik==null); i++)
    for(j=0; j<Rub.Bilder[i].length; j++)
      if(Rub.Bilder[i][j]==index){
        RTitel= Rub.Titel[i];
        Rubrik= Rub.Bilder[i];
        RIndex= j; break;
      }
  s='<TABLE border="1" width="100%"><TH>'+BTitel+' - (<I>'+RTitel+'</I>)</TH><TR><TD>\
      <TABLE border="0" width="100%">\
        <TD align="left"><FONT size="1"><P>';
//Zeile für [zurück|andereGrößen|vor]
  if(index!=Rubrik[0])
    s= s+'<A href="galerie_detail.htm?index='+Rubrik[RIndex-1]+'&v=0" target="_self">voriges Bild</A>';
  else
    s= s+'voriges Bild';
  s= s+'</P></FONT></TD>';
  for(i=0; i<BSize.length; i++){
    s= s+'<TD align="center"><FONT size="1"><P>';
    if(eval(i)==eval(v))
      s= s+iX[i]+'x'+iY[i]+' ('+BSize[i]+')';
    else
      s= s+'<A href="galerie_detail.htm?index='+index+'&v='+i+'">'+iX[i]+'x'+iY[i]+' ('+BSize[i]+')</A>';
    s= s+'</P></TD>';
  }
  s= s+'<TD align="right"><FONT size="1"><P>';
  if(index!=Rubrik[Rubrik.length-1])
    s= s+'<A href="galerie_detail.htm?index='+Rubrik[RIndex+1]+'&v=0" target="_self">n&auml;chstes Bild</A>';
  else
    s= s+'n&auml;chstes Bild';
//Beschreibung und Bild
  s= s+'</P></FONT></TD></TABLE></TD></TR><TR><TD>\
        <P class="Item">'+BText+'</P>\
      </TD></TR>\
    </TABLE>\
    <P class="Item"><IMG src="'+BDatei+'" border="0" width="'+iX[v]+'" height="'+iY[v]+'" alt="'+BDatei+' ('+BSize[v]+')"></P>\
  ';
  document.write(s);
}

/**
 * Dokumentaufbau für die gewählte Galerie (Array von RubrikenIndizes als Parameter)
 */
function buildGalerie(RArray){
//ÜbergabeParameter auswerten (Spalten-Anzahl)
  strArg= document.location.search;
  if(getValue("sp")>"0" && getValue("sp")!="") AnzSpalten= getValue("sp");
  
  s= "";
  for(iRub=0; iRub<RArray.length; iRub++){
    
    s= s+'<BR><P class="Item"><B>'+Rub.Titel[RArray[iRub]]+'</B></P>\
      <TABLE border="1" width="100%" bordercolor="white" cellspacing="10">\
    '+writePage(Rub.Bilder[RArray[iRub]])+'\
      </TABLE>\
    ';
  }
  document.write(s);
}

/**
 * Tabellarischer Aufbau der Rubrik (Array von BilderIndizes als Parameter)
 */
function writePage(index) {
  v="klein";
  DOCString= "";
  DOCTitel= "";
  DOCItem= "";
  for(i=0; i<index.length; i++){
    DOCTitel= '<TR>';
    DOCItem= '<TR>';
    for(j=0; j<AnzSpalten; j++){
      if(i+j<index.length){
        setPage(index[i+j]);
        DOCTitel= DOCTitel+ '<TD class="Head" width="'+(100/AnzSpalten)+'%"><P>'+BTitel+'</P></TD>';
        DOCItem= DOCItem+ '<TD>\
          <P class="Item"><A href="galerie_detail.htm?index='+index[i+j]+'&v=0">\
            <IMG border="0" src="'+BDatei+'" width="'+iXklein+'" height="'+iYklein+'"></BR>\
            <FONT size="1">'+iX[0]+'x'+iY[0]+' ('+BSize[0]+')</FONT></A>';
        for(k=1; k<iX.length; k++){
          DOCItem= DOCItem+ '<BR><A href="galerie_detail.htm?index='+index[i+j]+'&v='+k+'">\
            <FONT size="1">'+iX[k]+'x'+iY[k]+' ('+BSize[k]+')</FONT></A>';
        }
        DOCItem= DOCItem+ '</P></TD>';
      }else{
        DOCTitel= DOCTitel+ '<TD class="Head" width="'+(100/AnzSpalten)+'%">...</TD>';
        DOCItem= DOCItem+ '<TD>&nbsp;</TD>';
      }
    }
    i+= AnzSpalten-1;
    DOCString= DOCString+ DOCTitel+ '</TR>'+ DOCItem+ '</TR>';
  }
  return DOCString;
}

