add:   if( z.o.complete && z.o.complete.constructor == Function )  z.o.complete.apply( z.el ); 
context: 		z.step = function(firstNum, lastNum){			var t = (new Date()).getTime();				if (t > z.o.duration + z.startTime) {				// Stop the timer				clearInterval(z.timer);				z.timer = null;				z.now = lastNum;				z.a();				// Hide the element if the "hide" operation was done				if ( z.o.hide ) y.display = 'none';					// Reset the overflow				y.overflow = z.el.oldOverflow;				// If a callback was provided, execute it				if( z.o.complete && z.o.complete.constructor == Function )					// Execute the complete function					z.o.complete.apply( z.el );				// Reset the property, if the item has been hidden				if ( z.o.hide )					y[ prop ] = z.el.orig[ prop ].constructor == Number && prop != "opacity" ?						z.el.orig[prop] + "px" : z.el.orig[prop];				// set its height and/or width to auto				jQuery.setAuto( z.el, prop );			} else {				// Figure out where in the animation we are and set the number				var p = (t - this.startTime) / z.o.duration;				z.now = ((-Math.cos(p*Math.PI)/2) + 0.5) * (lastNum-firstNum) + firstNum;					// Perform the next step of the animation				z.a();			}		};
meta: 2798	/local1/tlutelli/issta_data/temp/all_js/javascript/2006_temp/2006/2798/ec38c6086c3d0efd65e9c6060cb641e80ae3b2a9/fx.js/clean/src/fx/fx.js