   .cssAnimate(fadeIn, speed, easing, callback)
 
 jQuery.fn.cssStop = (animationName) ->
+  return this if $.fx.off
   $(this).each (i, el) -> removeAnimation el, animationName
 
 jQuery.fn.cssAnimate = (name, speed, easing, callback) ->
+  return dontAnimate.call(this, speed, easing, callback) if $.fx.off
+  
   animation = createAnimation name, speed, easing, callback
   this.each (i, el) -> addAnimation el, animation

  $(this).cssStop(fadeIn).each (i, el) -> addAnimation el, animation

jQuery.fn.cssFadeIn = (speed, easing, callback) ->
  {fadeIn, fadeOut} = jQuery.cssAnimations
  $(this)
  .cssStop(fadeOut)

  
  animation

dontAnimate = (speed, easing, callback) ->
  options = jQuery.speed speed, easing, callback
  this.each((i, el) -> options.old.call el) if options.old
  this

addAnimation = (el, animation) ->
  cssAnimations = $(el).data('cssAnimations') ? {}
  cssAnimations[animation.name] = animation
