function winWidth () {
  if (window.innerWidth) {
    return window.innerWidth;
  } else if (document.body && document.body.offsetWidth) {
    return document.body.offsetWidth;
  } else {
    return 0;
  }
}

function winHeight () {
  if (window.innerHeight) {
    return window.innerHeight;
  } else if (document.body && document.body.offsetHeight) {
    return document.body.offsetHeight;
  } else {
    return 0;
  }
}

function setSmiley(el) {
  var y = Math.round(Math.random()*(winWidth()-21));
  var x = Math.round(Math.random()*(winHeight()-21));
  el.style.top = x;
  el.style.left = y;
  el.style.display = 'block';
}

var Bumper = {
  top: 0, 
  maxTop: 0,
  speed: 0.0,
  timerID: 0,

  bump: function(id) {
    var sm = 1.2;
    var el = document.getElementById(id);
    if (!el.style.top) el.style.top = parseInt(Element.getStyle(id,'top'));
    var x = parseInt(el.style.top);
    if (Bumper.speed > 0.0) { // moving down
      if (x >= Bumper.maxTop) {
        if (Bumper.speed > 6) { 
          Bumper.speed = -Bumper.speed/sm;
        } else { // stop
          clearInterval(Bumper.timerID);
          Bumper.speed = 0.0;
          el.style.top = Bumper.top;
          return;
        }  
      } else {
        Bumper.speed = Bumper.speed*sm;
        el.style.top = x+parseInt(Bumper.speed);
        if (x+parseInt(Bumper.speed) >= Bumper.maxTop) el.style.top = Bumper.maxTop;
      }
    } else if (Bumper.speed < 0.0) { // moving up
      if (Math.abs(Bumper.speed) <= sm*1.1) {
        Bumper.speed = 1.0;
      } else {
        Bumper.speed = Bumper.speed/sm;
        el.style.top = x+parseInt(Bumper.speed);
      }  
    } else { // not moving
      Bumper.top = x;
      Bumper.maxTop = winHeight()-Element.getDimensions(id).height-5;
      Bumper.speed = 1;
      Bumper.timerID = setInterval('Bumper.bump("'+id+'")',20);
    }
  }
}

// register behaviour rules for drop shadows
var vcvRules = {
  '#Pub': function(el) {
    el.parentNode.style.backgroundImage = 'url(/vcv/app_icc/css/vcv/pub_bg2.gif)';
    el.parentNode.style.backgroundRepeat = 'repeat-y';
    el.parentNode.style.backgroundPositionY = 100;
  // },
  // '#bumpsmiley' : function(el) {
    // el.onclick = function() { 
      // Bumper.bump(el.id); 
    // }; 
  // },
  // '#funsmiley1' : function(el) {
    // setSmiley(el); el.onmouseover = function() { setSmiley(el); };        
  // },
  // '#funsmiley2' : function(el) {
    // setSmiley(el); el.onmouseover = function() { setSmiley(el); };        
  // },
  // '#funsmiley3' : function(el) {
    // setSmiley(el); el.onmouseover = function() { setSmiley(el); };        
  }
}
Behaviour.register(vcvRules);

