// Ferdjaoui Sahid <sahid@funraill.org>
// http://sahid.funraill.org
//
// Fadeinout.js
// Fade In/Out with Javascript and Prototype.js


if (typeof Prototype == 'undefined')
  alert ('prototype.js is not defined !');

Element.addMethods ({
        fadeIn: function (element, args) {
          var args  = args || {};
          var begin = args.begin || element.getOpacity ();
          var end   = args.end || 1.0;
          var delay = args.delay || 8;
          var i     = parseFloat (begin);

          element.setOpacity (i > end ? end : i);
          if (Object.isUndefined (element.fadeInCreate) ||
              !element.fadeInCreate) {
            element.fire ('fadeIn:onCreate');
            element.fadeInCreate = false;
          }
          if (i < end)
            setTimeout (function () {
              element.fadeIn ({begin: begin + (0.1), end:end, delay:delay});
            }, delay);
          else {
            element.fire ('fadeIn:onComplete');
            element.fadeInCreate = true;
          }
          return element;
        },

        fadeOut: function (element, args) {
          var args  = args || {};
          var begin = args.begin || element.getOpacity ();
          var end   = args.end || 0.0;
          var delay = args.delay || 8;
          var i     = parseFloat (begin);
          element.setOpacity (i < end ? end : i);
          if (Object.isUndefined (element.fadeOutCreate) ||
              !element.fadeOutCreate) {
            element.fire ('fadeOut:onCreate');
            element.fadeOutCreate = true;
          }
          if (i > end) {
            setTimeout (function () {
            element.fadeOut ({begin: begin - (0.1), end:end, delay:delay});
            }, delay);
          }
          else {
            element.fire ('fadeOut:onComplete');
            element.fadeOutCreate = false;
          }
          return element;
        }
      });