// Ferdjaoui Sahid <sahid@funraill.org>
// http://sahid.funraill.org
// 
// Fadeinout.js
// Fade In/Out with Javascript and Prototype.js


Element.addMethods ({
  fadeIn: function (element, a) {
		var args = {
			begin:element.getOpacity (),
			end: 1.0,
			delay: 8
		};
		Object.extend (args, a || {});
    var i = parseFloat (args.begin);
		
    element.setOpacity (i);
    if (Object.isUndefined (element.fadeInCreate) ||
        !element.fadeInCreate) {
      element.fire ('fadeIn:onCreate');
      element.fadeInCreate = false;
    }
    if (i < args.end)
      setTimeout (function () {
        element.fadeIn ({begin: args.begin + (0.1), end:args.end, delay:args.delay});
      }, args.delay);
    else {
      element.fire ('fadeIn:onComplete');
      element.fadeInCreate = true;
    }
    return element;
  },
  
  fadeOut: function (element, a) {
		var args = {
			begin:element.getOpacity (),
			end: 0.0,
			delay: 8
		};
		Object.extend (args, a || {});
    var i = parseFloat (args.begin);
		
    element.setOpacity (i);
    if (Object.isUndefined (element.fadeOutCreate) ||
        !element.fadeOutCreate) {
      element.fire ('fadeOut:onCreate');
      element.fadeOutCreate = true;
    }
    if (i > args.end)
      setTimeout (function () {
        element.fadeOut ({begin: args.begin - (0.1), end:args.end, delay:args.delay});
      }, args.delay);
    else {
      element.fire ('fadeOut:onComplete');
      element.fadeOutCreate = false;
    }
    return element;
  }
});
