rem: if(dojo.isFunction(prop.start)){ 
add: if(d.isFunction(prop.start)){ 
context: 	dojo.animateProperty = function(/*Object*/ args){		// summary: 		//	Returns an animation that will transition the properties of node		// 	defined in 'args' depending how they are defined in 'args.properties'		//		// description:		//	The foundation of most dojo.fx animations, dojo.AnimateProperty will		//	take an object of "properties" corresponding to style properties, and 		//	animate them in parallel over a set duration.		//			//	args.node can be a String or a DomNode reference		//			// examples:		//	dojo.animateProperty({ node: node, duration:2000,		//		properties: {		//			width: { start: '200', end: '400', unit:"px" },		//			height: { start:'200', end: '400', unit:"px" },		//			paddingTop: { start:'5', end:'50', unit:"px" } 		//		}		//	}).play();		//		args.node = dojo.byId(args.node);		if(!args.easing){ args.easing = dojo._defaultEasing; }		var anim = new dojo._Animation(args);		dojo.connect(anim, "beforeBegin", anim, function(){			var pm = {};			for(var p in this.properties){				// Make shallow copy of properties into pm because we overwrite some values below.				// In particular if start/end are functions we don't want to overwrite them or				// the functions won't be called if the animation is reused.				var prop = (pm[p] = dojo.mixin({}, this.properties[p]));				if(dojo.isFunction(prop.start)){					prop.start = prop.start();				}				if(dojo.isFunction(prop.end)){					prop.end = prop.end();				}				var isColor = (p.toLowerCase().indexOf("color") >= 0);				function getStyle(node, p){					// dojo.style(node, "height") can return "auto" or "" on IE; this is more reliable:					var v = ({height: node.offsetHeight, width: node.offsetWidth})[p];					if(v !== undefined){ return v; }					v = dojo.style(node, p);					return (p=="opacity") ? Number(v) : parseFloat(v);				}				if(!("end" in prop)){					prop.end = getStyle(this.node, p);				}else if(!("start" in prop)){					prop.start = getStyle(this.node, p);				}				if(isColor){					// console.debug("it's a color!");					prop.start = new dojo.Color(prop.start);					prop.end = new dojo.Color(prop.end);				}else{					prop.start = (p == "opacity") ? Number(prop.start) : parseFloat(prop.start);				}				// console.debug("start:", prop.start);				// console.debug("end:", prop.end);			}			this.curve = new PropLine(pm);		});		dojo.connect(anim, "onAnimate", anim, function(propValues){			// try{			for(var s in propValues){				// console.debug(s, propValues[s], this.node.style[s]);				dojo.style(this.node, s, propValues[s]);				// this.node.style[s] = propValues[s];			}			// }catch(e){ console.debug(dojo.toJson(e)); }		});		return anim; // dojo._Animation	}
meta: 4497	/local1/tlutelli/issta_data/temp/all_js/javascript/2007_temp/2007/4497/a68d9b151191f06f52ca95d3f1ce351f242146ce/fx.js/clean/_base/fx.js