/*jQuery plugin : pause resume animationCreated by Joe WeitzelBOX Creative LLChttp://plugins.jquery.com/project/Pause-Resume-animation*/jQuery.fn.startAnimation = function(  params, duration, easing, callback ) {	jQuery(this).animate( params, duration, easing, callback );	var data = { target:this.get(0), params: params, duration: duration, easing: easing, callback: callback,				startTime: new Date().getTime(), timePlayed: 0, timeRemaining: 0 };	if( !jQuery.pauseableAnimations ) {		jQuery.extend({ pauseableAnimations: new Array( data ) });	} else {		for( var i in jQuery.pauseableAnimations ) {			if( jQuery.pauseableAnimations[i].target == this.get(0) ) {				jQuery.pauseableAnimations[i] = data;			} else {				jQuery.pauseableAnimations.push( data );			};		};	};};jQuery.fn.pauseAnimation = function() {	if( jQuery.pauseableAnimations ) {		for(var i in jQuery.pauseableAnimations ) {			if( jQuery.pauseableAnimations[i].target == this.get(0) ) {				jQuery(this).stop();				var now = new Date().getTime();				var data = jQuery.pauseableAnimations[i];				data.timePlayed += ( now - data.startTime );				data.timeRemaining = data.duration - data.timePlayed;				if( data.timePlayed > data.duration ) {					var newArray = new Array();					for( var p in jQuery.pauseableAnimations ) {						if( jQuery.pauseableAnimations[p] != data ) newArray.push( jQuery.pauseableAnimations[p] );					};					jQuery.pauseableAnimations = newArray.length > 0 ? newArray : null;					delete newArray;					return this;				};				break;			};		};	};	return this;};jQuery.fn.resumeAnimation = function() {	if( jQuery.pauseableAnimations ) {		for(var i in jQuery.pauseableAnimations ) {			var data = jQuery.pauseableAnimations[i];			if( data.target == this.get(0) ) {				this.animate( data.params, data.timeRemaining, data.easing, data.callback );				data.startTime = new Date().getTime();				return this;			};		};	};};
