数秒まってからフェードアウトする

var FadeOut = function ( e, wait, step, interval ) {
  var tmid, a;
  var s = e.style;
  
  this.start = (function ( mode ) {
    return function ( ) {
      mode( s, a = 100 );
      clearTimeout( tmid );

      tmid = setTimeout( 
        (function ( ) {
          return function ( ) {
            mode(s, a -= step) && setTimeout( arguments.callee, interval );
          };
        })( ), wait);
    }
  })(
    function ( s, a ) {
      if( a < 1 ) a = 0;
      a && (s./*@if(1) filter='alpha(opacity='+ a +')' @else@*/ opacity = a / 100 /*@end@*/);
      s.visibility = a ? 'visible': 'hidden';
      return a;
    }
  );
};

間違えてました。|| を &&に!