<!--
// Image Handling for site of Cornelia Montani
// ===========================================

/*--------------- preloadImages-----------------------------
Beschreibung:
	Diese Routine füllt zu jedem Bild das zugehörige Mini-Bild und
	das Mask-Bild in den Array 'document.preloadArray' und
	den Pfad und Namen des grossen Bildes in den Array 'document.unloadedArray'
Parameter: 
	Als Parameter werden für jedes Bild eine Fünfergruppen von Parametern
	erwartet und zwar mit folgenden Werten:
	Nummer der Reihe (1-4)
	Nummer der Kolonne (1-10)
	Pfad und Name des grossen Bildes
	Pfad und Name des Mini-Bildes
	Pfad und Name des Maskbildes
Bemerkung:
	Die Struktur der Arrays ist:
		preloadArray[Sicht: big, mini, mask][Reihe: 1-4][Kolonne: 1-10]
		unloadedArray[Sicht: big, mini, mask][Reihe: 1-4][Kolonne: 1-10]
Return void
*/

function preloadImages() {
    if (document.images) {
        var argument = preloadImages.arguments;
        
        // Initialize preload array
        if (document.preloadArray == null) {
            document.preloadArray = new Array(3); // big, mini, mask
            for (var i = 0; i < 3; i++){
              document.preloadArray[i] = new Array(4); // rows
              for (var j = 0; j < 4; j++){
                document.preloadArray[i][j] = new Array(10);
                for (var k = 0; k < 10; k++){
                  document.preloadArray[i][j][k]='';
                }
              }
           }
        }		
		// Initialize unloaded array
        if (document.unloadedArray == null) {
			document.unloadedArray = new Array(3);; // big, mini, mask
            for (var i = 0; i < 3; i++){
              document.unloadedArray[i] = new Array(4); // rows
              for (var j = 0; j < 4; j++){
                document.unloadedArray[i][j] = new Array(10);
                for (var k = 0; k < 10; k++){
                  document.unloadedArray[i][j][k]='';
                }
              }
           }
        }
 
        
        // fill preload array and unloaded array
        var row, col;
        for (var i = 0; i < argument.length; i+=5) {
          row = argument[i]-1;
          col = argument[i+1]-1;
          //document.preloadArray[0][row][col] = new Image();
          //document.preloadArray[0][row][col].src = argument[i+2];
          document.unloadedArray[0][row][col] = argument[i+2];
          document.preloadArray[1][row][col] = new Image();
          document.preloadArray[1][row][col].src = argument[i+3];
          document.preloadArray[2][row][col] = new Image();
          document.preloadArray[2][row][col].src = argument[i+4];
        };
     }
}

/*---------------- changeImage ---------------------------
Beschreibung:
	Setzt das Minibild des zu zeigenden Bildes aktiv.
	Setzt das Maskbild des aktuellen Bildes aktiv
	Lädt, falls nicht schon geladen das grosse Bild des zu zeigenden Bildes
	und setzt es aktiv.
Parameter:
	row:	Reihe des zu zeigenden Bildes	(1-4)
	col:	Kolonne des zu zeigenden Bildes (1-10)
Bemerkung:
	Erwartet die globalen Variabeln: active_row, active_col
Return	void
*/
function changeImage(row,col) {
  var active_img_name = 'img_'+active_row+'_'+active_col;
  var img_name = 'img_'+row+'_'+col;
  document.getElementsByName(active_img_name)[0].src=document.preloadArray[2][active_row-1][active_col-1].src;
  document.getElementsByName(img_name)[0].src=document.preloadArray[1][row-1][col-1].src;
  // test if image is still unloaded
  if (document.unloadedArray[0][row-1][col-1] != ""){
	document.preloadArray[0][row-1][col-1] = new Image();
	document.preloadArray[0][row-1][col-1].src = document.unloadedArray[0][row-1][col-1];
	document.unloadedArray[0][row-1][col-1] = "";
  };
  document.getElementsByName('img_big')[0].src=document.preloadArray[0][row-1][col-1].src;
  active_row=row;
  active_col=col;
}
 


function adjustSize(){
 var row_9 = document.getElementById("row_9");
 var iframe21 = document.getElementById("iframe21");
 var iframe22 = document.getElementById("iframe22");
 
 if (iframe21 || iframe22){
  var rowHeight = get_innerHeight(self) - 350 - 38;
  if (rowHeight < 150) {rowHeight = 150;}
  iframeHeight = rowHeight - 25;
  //alert(rowHeight);

   row_9.style.height = rowHeight;
   if (iframe21){iframe21.style.height = iframeHeight;};
   if (iframe22){iframe22.style.height = iframeHeight;};
 };
}

/* --------------------------------------------------------------------------
Inhalt:	Sucht die innere Höhe eines Windows/Frames für verschiedene Browsers
		Entspricht der Funktion innerHeight
Parameter:
	a_window:	Window
Bemerkungen:
Autor:	EGE		
Erstelldatum:	16.2.2006
--------------------------------------------------------------------------
*/

function get_innerHeight(a_window) {
  var l_height = 0;
  if( typeof( a_window.innerHeight ) == 'number' ) {
    //Non-IE
    l_height = a_window.innerHeight;
  } else if( a_window.document.documentElement &&
       a_window.document.documentElement.clientHeight ) {
    //IE 6+ in 'standards compliant mode'
    l_height = a_window.document.documentElement.clientHeight;
  } else if( a_window.document.body && a_window.document.body.clientHeight  ) {
    //IE 4 compatible
    l_height = a_window.document.body.clientHeight;
  }
  return l_height;
}

//-->
