YAHOO.namespace('aman');

YAHOO.aman.opacityMax = 0.8; // 80% opaque
YAHOO.aman.opacityMin = 0.0; // 100% transparent
YAHOO.aman.opacitySpeed = 1; // opacity animation takes 1 second

YAHOO.aman.init = function() {
  var availPanel;
  availPanel = YAHOO.util.Dom.get('avail') || YAHOO.util.Dom.get('avail_page');

   var availFadeIn = function(e) {
      YAHOO.util.Event.preventDefault(e); // block the default link
      YAHOO.util.Dom.setStyle(availPanel, 'opacity', YAHOO.aman.opacityMin); // ensure the correct opacity is shown before we show the block
      YAHOO.util.Dom.setStyle(availPanel, 'display', 'block'); // show the block
      var anim = new YAHOO.util.Anim(availPanel, { opacity: { from: YAHOO.aman.opacityMin, to: YAHOO.aman.opacityMax } }, YAHOO.aman.opacitySpeed, YAHOO.util.Easing.easeOut); // setup the animation
    YAHOO.util.Dom.setStyle('availlink','display','none');
      anim.animate(); // animate
   };
   
   var availFadeOut = function(e) {
      YAHOO.util.Event.preventDefault(e); // block the default link
      var anim = new YAHOO.util.Anim(availPanel, { opacity: { from: YAHOO.aman.opacityMax, to: YAHOO.aman.opacityMin } }, YAHOO.aman.opacitySpeed, YAHOO.util.Easing.easeOut); // setup the animation
      var hide = function(e) { YAHOO.util.Dom.setStyle(availPanel, 'display', 'none'); }; // setup the hide function so that it can be called using the onComplete
      anim.onComplete.subscribe(hide); // subscribe to the onComplete event
    YAHOO.util.Dom.setStyle('availlink','display','inline');
      anim.animate(); // animate           
   };

   // subscribe to the onclick events for the avail search and close links
   YAHOO.util.Event.addListener('availlink', 'click', availFadeIn);
   YAHOO.util.Event.addListener('availlink2', 'click', availFadeIn);
   YAHOO.util.Event.addListener('availoff', 'click', availFadeOut);
};

// only initialize if we have the avail div in the page
YAHOO.util.Event.onAvailable('availlink', YAHOO.aman.init);
