  function leftPosition(el) {
     return (el.offsetParent)? 
     el.offsetLeft+leftPosition(el.offsetParent) : el.offsetLeft;
  } // leftPosition()

  function topPosition(el) {
     return (el.offsetParent)? 
     el.offsetTop+topPosition(el.offsetParent) : el.offsetTop;
  } // topPosition()


  function onImprintOpen() {
    var ipb = document.getElementById('imprintButton');
    var ip = document.getElementById('imprint');
    
    var topValue = topPosition(ipb);
    ip.style.top = topValue - ip.clientHeight - 10;

    if (ip != null) {
      ip.style.visibility = "visible";
    } // if
  } // onImprintOpen()
  
  
  function onImprintClose() {
    var ip = document.getElementById('imprint');

    if (ip != null) {
      ip.style.visibility = "hidden";
      ip.blur();
    } // if
  } // onImprintClose()
  
  
  var topics = new Array(); 
  topics[0] = "CMS";
  topics[1] = "CoreMedia";
  topics[2] = "J2EE";
  topics[3] = "Java";
  topics[4] = "JSP";
  topics[5] = "XML";
  topics[6] = "AJAX";
  topics[7] = "OpenCMS";
  topics[8] = ".NET";
  topics[9] = "C#";
  topics[10] = "ASP.NET";
  topics[11] = "XSLT";
  topics[12] = "XML Signature";
  topics[13] = "XML Schema";
  topics[14] = "JavaScript";
  topics[15] = "<img src='img/brick.gif' alt='brick'/>";
  topics[16] = "<img src='img/triangle.gif' alt='triangle'/>";
  topics[17] = "<img src='img/square.gif' alt='square'/>";
  topics[18] = "<img src='img/circle.gif' alt='circle'/>";
  
  
  function limitRange(min, max, value) {
    if (value < min)
      return min;
    if (value > max)
      return max;
      
    return value;
  } // limitRange()
  
  
  var floaterId = 0;
  
  function createFloater(txt) {
    var f  = document.createElement("div");
    f.className = 'floater';
    f.setAttribute("step", 0);
    var newId = "flt"+floaterId;
    f.id = newId;
    floaterId++;
    f.innerHTML = txt;
    window.setTimeout("moveFloater('"+newId+"');");
    var body  = document.getElementsByTagName("BODY")[0];
    body.appendChild(f);
    return f;
  } // createFloater()


  function moveFloater(id) {
    var f = document.getElementById(id);
    var b = document.getElementById('inset');

    if (f != null) {
      // alert("id="+id);
      step = parseInt(f.getAttribute("step"));
      if (step == 0) {
        xdelta = Math.round(Math.random()*6-3);
        f.setAttribute("xdelta", xdelta);
        ydelta = Math.round(Math.random()*6-3);
        f.setAttribute("ydelta", ydelta);
        step = 30;
      } else {
        step -= 1;
        xdelta = parseInt(f.getAttribute("xdelta"));
        ydelta = parseInt(f.getAttribute("ydelta"));
      } // if
      f.setAttribute("step", step);
      f.style.left = limitRange(40, b.clientWidth-120, f.offsetLeft + xdelta);
      f.style.top  = limitRange(60, b.clientHeight-40, f.offsetTop  + ydelta);
      // f.innerHTML = "left: "+f.offsetLeft+" top "+f.offsetTop;
      window.setTimeout("moveFloater('"+id+"');", 100);
    } // if
  } // moveFloater()
  
  
  var floatCount = 0;
  
  
  function createFloaters() {
    if (floatCount < topics.length) {
      createFloater(topics[floatCount]);
      floatCount++;
    } // if
    window.setTimeout("createFloaters();", 1500);
  } // createFloaters()
  
  window.setTimeout("createFloaters();", 500);

