function EffectManager() { function construct() { this.setOpacity = function( el, opacity ) { opacity = ( opacity == 100 ) ? 99.999 : opacity; el.style.filter = 'alpha(opacity:' + opacity + ')'; el.style.KHTMLOpacity = opacity/100; el.style.MozOpacity = opacity/100; el.style.opacity = opacity/100; el.emOpacity = opacity; }; // end of 'setOpacity()' this.fadeIn = function( el, maxOpacity, callback ) { el.emOpacity = el.emOpacity || 0; el.emOpacity += 5; if ( el.emOpacity <= maxOpacity ) { Effect.setOpacity(el, el.emOpacity); el.emOpacity = el.emOpacity + 5; window.setTimeout(function() { Effect.fadeIn(el, maxOpacity, callback); }, 10); } else { try { callback(); } catch(e) {}; } }; // end of 'fadeIn()' this.fadeOut = function( el, minOpacity, callback ) { el.emOpacity = el.emOpacity || 100; el.emOpacity = el.emOpacity - 5; if ( el.emOpacity >= minOpacity ) { Effect.setOpacity(el, el.emOpacity); el.emOpacity -= 5; window.setTimeout(function() { Effect.fadeOut(el, minOpacity, callback); }, 10); } else { try { callback(); } catch(e) {}; } }; // end of 'fadeOut()' } return new construct(); }; var Effect = new EffectManager();