// Place your application-specific JavaScript functions and classes here
// This file is automatically included by javascript_include_tag :defaults
            /* ------------------------------------------------------------------------
 * nubbins.js
 * Copyright (c) 2004-2007 37signals, LLC. All rights reserved.
 * ------------------------------------------------------------------------ */

document.observe("dom:loaded", function() {
  if (!$("Main")) return;
  window.Nubbins = new HoverObserver("Main");

  function nubbinHoverEffect(event) {
    var nubbin = event.target.down("div.nubbin");
    if (!nubbin) return;

    var over = event.eventName == "hover:activated", memo = event.memo;
    var moving = memo.fromElement && memo.toElement;
  
    if (event.target.match(".busy") || event.target.up(".busy")) return;
    
    if (nubbin.effect) {
      nubbin.effect.cancel();
      nubbin.effect = null;
    }
  
    if (Prototype.Browser.IE || over || moving) {
      nubbin.setOpacity(over ? 1.0 : 0.0);
      nubbin[over ? "show" : "hide"]();
    
    } else {
      nubbin.effect = new Effect.Opacity(nubbin, {
        duration: 0.3, from: 1.0, to: 0.0,
        afterFinish: function() {
          nubbin.hide();
          nubbin.effect = null;
        }
      });
    }
  }

  document.observe("hover:activated", function(event) {
    nubbinHoverEffect(event);
  });

  document.observe("hover:deactivated", function(event) {
    nubbinHoverEffect(event);
  });
});

