var StackManager = function(stacks) {
  stacks = $H(stacks);
  var currentPos    = 0;
  var preloads      = $H();
  var currentTopic  = stacks.first()[0];

  var cLeft   = $("stapel_links");
  var cRight  = $("stapel_rechts");
  var lastClickedImage;

  cRight.onclick = function(){ 
    currentPos ++;
    if (currentPos == stacks[currentTopic]) currentPos = 0;
    showPic(currentTopic, currentPos);
  }

  cLeft.onclick = function(){
    currentPos --;
    if (currentPos==-1) currentPos = stacks[currentTopic]-1;
    showPic(currentTopic,currentPos);
  }

  this.clik = function (topic, showArrows, event){
    var clickedImage = event.target || event.srcElement;
    if (lastClickedImage) {
      if (clickedImage == lastClickedImage) return;
      else {
        lastClickedImage.onmouseout = lastClickedImage._onmouseout;
        lastClickedImage.onmouseout();
      }
    }
    clickedImage._onmouseout = clickedImage.onmouseout;
    clickedImage.onmouseout = null;
    lastClickedImage = clickedImage;

    cLeft.style.visibility = cRight.style.visibility = showArrows?"visible":"hidden";

    currentTopic  = topic;
    currentPos    = 0;
    showPic(currentTopic, currentPos);
    showPic(currentTopic, currentPos);
  }

  stacks.each(function(stack){
    var name    = stack[0];
    var height  = stack[1];
    
    preloads[name] = {pics: [], texts: [], icons: []};

    $('stapel_'+name).onclick = function(event){ this.clik(name, (height>1), event || window.event) }.bind(this);

    // preloading
    var i;
    for (i=0; i<height; i++){
      var img = new Image();
      img.src = "img/"+name+(i+1)+".jpg"; 
      preloads[name].pics.push(img);
      var jmg = new Image();
      jmg.src = "img/"+name+"-t.gif";  
      preloads[name].texts.push(jmg);
      var kmg = new Image();
      kmg.src = "img/"+name+"-i.gif";  
      preloads[name].icons.push(kmg);
    }
  }.bind(this));

  function showPic(topic,num){
    var img;
    if ((img = document.images["bildgross"])) img.src = preloads[topic].pics[num].src;
    if ((img = document.images["legende"]))   img.src = preloads[topic].texts[num].src; 
    if ((img = document.images["minibild"]))  img.src = preloads[topic].icons[num].src; 
  }
};

// Generelle onload-Sachen

Base.addInitFunction(function(){ Base.initRolloverImgs()}); 

