// Menus initialisieren
var kblogo = document.getElementById('kblogo');

if (kblogo) {
  kblogo.init   = kbshow ;
  kblogo.hide   = kbhide ;
  kblogo.snapTo = snapTo ;
  kblogo.maint  = 0;
  kblogo.ofs_x  = 0-kblogo.offsetWidth-20;
  kblogo.ofs_y  = 0-kblogo.offsetHeight+30;
  kblogo.init();
}

function kbshow() {
  capObj = getLogoSnapObj(this,'logo_snap');
  if (capObj) {
  // neue Positionierung am Capture Object
    this.snapTo(capObj,capObj,capObj.offsetWidth+this.ofs_x,this.ofs_y);
    this.snap_x = capObj;
    this.snap_y = capObj;
  }

  // Logo einblenden
  this.style.visibility = 'visible';
}

// Subfunktionen
function kbhide() {
  this.style.visibility = 'hidden';
}

function resetLogo() {
  kblogo.hide();
  kblogo.init();
}

function getLogoSnapObj(obj,id) {
  p = obj.parentNode;
  while (p.parentNode && p.id!=id) {
    p = p.parentNode;
  }
  return (p.id==id)? p : null;
}

function snapTo(objx,objy,offsetx,offsety) {
  x = 0; y = 1;  var ofs = [];
  pos = getPos(objx);
  ofs[x] = pos[x];
  if (objx == objy) {
    ofs[y] = pos[y];
  }
  else {
    pos = getPos(objy);
    ofs[y] = pos[y];
  }
  //alert('Snap to X='+ofs[x]+', Snap to Y='+ofs[y]);
  if (this.style && this.style.left) {
    this.style.left = ofs[x] + offsetx;
    //alert('logo.style.left = '+this.style.left);
  }
  if (this.style && this.style.top) {
    this.style.top = ofs[y] + offsety;
    //alert('logo.style.top = '+this.style.top);
  }
// Menu als bereits positioniert markieren
  this.maint = 1;
}

function getPos(obj) {
  var x = (obj.offsetLeft)? obj.offsetLeft : 1;
  var y = (obj.offsetTop)? obj.offsetTop : 1;
  p = obj.offsetParent;
  while (p) {
    x += p.offsetLeft;
    y += p.offsetTop;
    p = p.offsetParent;
  }
  return Array(x,y);
}


