function init() {
  if (document.getElementById) {
    obj0 = document.getElementById('layer_null');
    if(obj0 != null) {
      obj0.style.left = "12px";
      obj0.style.visibility = "visible";
    }
    obj1 = document.getElementById('layer_eins');
    if(obj1 != null) {
      obj1.style.left = "12px";
      obj1.style.visibility = "visible";
    }
    obj2 = document.getElementById('layer_zwei');
    if(obj2 != null) {
      obj2.style.left = "12px";
      obj2.style.visibility = "visible";
    }
    obj3 = document.getElementById('layer_drei');
    if(obj3 != null) {
      obj3.style.left = "12px";
      obj3.style.visibility = "visible";
    }
    obj4 = document.getElementById('layer_vier');
    if(obj4 != null) {
      obj4.style.left = "12px";
      obj4.style.visibility = "visible";
    }
    obj5 = document.getElementById('layer_fuenf');
    if(obj5 != null) {
      obj5.style.left = "12px";
      obj5.style.visibility = "visible";
    }
    obj6 = document.getElementById('layer_sechs');
    if(obj6 != null) {
      obj6.style.left = "12px";
      obj6.style.visibility = "visible";
    }
    obj7 = document.getElementById('layer_sieben');
    if(obj7 != null) {
      obj7.style.left = "12px";
      obj7.style.visibility = "visible";
    }
    
    objMap = document.getElementById('layer_map');
    objMap.style.left = "400px";
    objMap.style.visibility = "visible";
    
    objMenu = document.getElementById('layer_menu');
    objMenu.style.top = "-420px";

  }
}

function slideDown(obj){
        if(obj){
                if(parseInt(obj.style.top) < -10){
                        obj.style.top = parseInt(obj.style.top) + 30 + "px";
                        setTimeout("slideDown(objMenu)",50);
                }
        }
}

function slideUp(obj){
        if(obj){
                if(parseInt(obj.style.top) > -400){
                        obj.style.top = parseInt(obj.style.top) - 30 + "px";
                        setTimeout("slideUp(objMenu)",50);
                }
        }
}

function slideRight(obj) {
  if (obj) {
    if (parseInt(obj.style.left) < 215) {
      obj.style.left = parseInt(obj.style.left) + 30 + "px";
      setTimeout(function() {
        slideRight(obj);
      }, 50);
    }
  }
}

function slideRightInMap() {
  if (parseInt(objMap.style.left) < 450) {
    objMap.style.left = parseInt(objMap.style.left) + 30 + "px";
    setTimeout(function() {
      slideRightInMap();
    }, 50);
  }
}

function slideLeft(obj) {
  if (obj) {
    if (parseInt(obj.style.left) > 10) {
      obj.style.left = parseInt(obj.style.left) - 30 + "px";
      setTimeout(function() {
        slideLeft(obj);
      }, 50);
    }
  }
}

function einausblenden(obj1, obj2) {
  slideLeft(obj1);
  slideRight(obj2);
}

function checkMap() {
  if (parseInt(objMap.style.left) >= 450) {
    slideLeft(objMap);
  } else {
    slideRightInMap();
  }
}

function check(number) {

  if (number == 1) {
    if (parseInt(obj2.style.left) >= 215) {
      einausblenden(obj2, obj1);
    } else if (parseInt(obj3.style.left) >= 215) {
      einausblenden(obj3, obj1);
    } else {
      if (parseInt(obj1.style.left) >= 215) {
        slideLeft(obj1);
      } else {
        slideRight(obj1);
      }
    }
  } else if (number == 2) {
    if (parseInt(obj1.style.left) >= 215) {
      einausblenden(obj1, obj2);
    } else if (parseInt(obj3.style.left) >= 215) {
      einausblenden(obj3, obj2);      
    } else {
      if (parseInt(obj2.style.left) >= 215) {
        slideLeft(obj2);
      } else {
        slideRight(obj2);
      }
    }
  } else if (number == 3) {
    if (parseInt(obj1.style.left) >= 215) {
      einausblenden(obj1, obj3);
    } else if (parseInt(obj2.style.left) >= 215) {
      einausblenden(obj2, obj3);      
    } else {
      if (parseInt(obj3.style.left) >= 215) {
        slideLeft(obj3);
      } else {
        slideRight(obj3);
      }
    }
  }  
}

//----------------------------------------------------------------------------


function Slider() {
  var sliderDiv = new Array();
  var sliderDir = new Array();
  var sliderInit = arguments.length >= 2 && arguments.length % 2 == 0;
  var sliderDivOpen = null;
  var sliderIdxClose = -1;
  var sliderOffset = 0;
  var sliderPE = null;
  var sliderOpendFkf = null;
  var sliderClosedFkf = null;
  
  var self = this;
  
  if(sliderInit) {
    for(var i=0 ; sliderInit && i<arguments.length ; i+=2) {
      sliderInit = $(arguments[i]) != null;
      if(sliderInit) {
        sliderDiv.push(arguments[i]);
      } else {
        alert("Slider(): Kann div '" + arguments[i] + "' nicht finden!");
      }
      sliderInit = arguments[i+1] == "horizontal" || arguments[i+1] == "vertical";
      if(sliderInit) {
        sliderDir.push(arguments[i+1]);
      } else {
        alert("Slider(): Richtung '" + arguments[i+1] + "' nicht erlaubt, nur 'horizontal' oder 'vertical'!");
      }
    }
  } else {
    alert("Slider(): Anzahl der Parameter stimmt nicht!");
  }

  this.idxForDiv = function(pDiv) {
    var sliderIdx = -1;
    for(var i=0 ; sliderIdx==-1 && i<sliderDiv.length ; i++) {
      if(pDiv == sliderDiv[i]) {
        sliderIdx = i;
      }
    }
    return sliderIdx;
  }
  
  this.getLeft = function(pDiv) {
    return parseInt($(pDiv).style.left);
  }
  
  this.getTop = function(pDiv) {
    return parseInt($(pDiv).style.top);
  }
  
  this.toggle = function(pDiv) {    
    if(sliderInit) {
      var sliderIdxOpen = self.idxForDiv(pDiv);
      if(sliderIdxOpen != -1) {
        if(sliderPE == null) {
          var closePos;
          var closeDim;
          var closeRun;
          var openPos;
          var openDim;
          var openRun;
          var runStep = 20;
          var timeStep = 0.02;
          
          //sliderIdxClose = 1;
          if(sliderIdxClose != -1) {
            if(sliderDir[sliderIdxClose] == "horizontal") {
              closePos = self.getLeft(sliderDiv[sliderIdxClose]);
              closeDim = $(sliderDiv[sliderIdxClose]).getWidth() + sliderOffset;
            } else {
              closePos = self.getTop(sliderDiv[sliderIdxClose]);
              closeDim = $(sliderDiv[sliderIdxClose]).getHeight() + sliderOffset;
            }
            closeRun = 0;
          }
          if(sliderIdxClose != sliderIdxOpen) {
            if(sliderDir[sliderIdxOpen] == "horizontal") {
              openPos = self.getLeft(sliderDiv[sliderIdxOpen]);
              openDim = $(sliderDiv[sliderIdxOpen]).getWidth() + sliderOffset;
            } else {
              openPos = self.getTop(sliderDiv[sliderIdxOpen]);
              openDim = $(sliderDiv[sliderIdxOpen]).getHeight() + sliderOffset;
            }
            openRun = 0;
          }
          //alert(closePos + " - " + closeDim+ " + " + openPos+ " - " + openDim);
          
          sliderPE = new PeriodicalExecuter(function() {
            if(sliderIdxClose != -1) {
              closeRun = Math.min(closeRun + runStep, closeDim);
              if(sliderDir[sliderIdxClose] == "horizontal") {
                $(sliderDiv[sliderIdxClose]).style.left = (closePos - closeRun) + "px"
              } else {
                $(sliderDiv[sliderIdxClose]).style.top = (closePos - closeRun) + "px"
              }
            }
            if(sliderIdxClose != sliderIdxOpen) {
              openRun = Math.min(openRun + runStep, openDim);
              if(sliderDir[sliderIdxOpen] == "horizontal") {
                $(sliderDiv[sliderIdxOpen]).style.left = (openPos + openRun) + "px"
              } else {
                $(sliderDiv[sliderIdxOpen]).style.top = (openPos + openRun) + "px"
              }
            }
            //console.info(closeRun + " " + openRun);
            
            if((sliderIdxClose == sliderIdxOpen || openRun >= openDim) && (sliderIdxClose == -1 || closeRun >= closeDim)) {
              sliderPE.stop();
              sliderPE = null;

              if(sliderIdxClose == sliderIdxOpen) {
                sliderIdxClose = -1;
                sliderDivOpen = null;
                //console.info("sliderClosedFkf " + sliderDivOpen);
                if(sliderClosedFkf != null) {
                  sliderClosedFkf();
                }
              } else {
                sliderIdxClose = sliderIdxOpen;
                sliderDivOpen = pDiv;
                //console.info("sliderOpendFkf " + sliderDivOpen);
                if(sliderOpendFkf != null) {
                  sliderOpendFkf();
                }
              }
            }
          }, timeStep);
        }
      } else {
        alert("Slider.toggle(): Kann div '" + pDiv + "' nicht finden!");
      }
    } else {
      alert("Slider.toggle(): Initialisierung war fehlerhaft!");
    }
  }

  this.isOpen = function() {
    return sliderDivOpen != null;
  }

  this.close = function() {
    if(this.isOpen()) {
      self.toggle(sliderDivOpen);
    }
  }
  
  this.setSliderOffset = function(pSliderOffset) {
    sliderOffset = pSliderOffset;
  }

  this.setSliderOpendFkf = function(pSliderOpendFkf) {
    sliderOpendFkf = pSliderOpendFkf;
  }

  this.setSliderClosedFkf = function(pSliderClosedFkf) {
    sliderClosedFkf = pSliderClosedFkf;
  }
}

