rem:  if(dojo.isFunction(prop.start)){ prop.start = prop.start(prop); } if(dojo.isFunction(prop.end)){ prop.end = prop.end(prop); } 
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'		args.node = dojo.byId(args.node);		if (!args.easing){ args.easing = dojo._defaultEasing; }				var PropLine = function(properties){			this._properties = properties;			for (var p in properties){				var prop = properties[p];				// calculate the end - start to optimize a bit				if(dojo.isFunction(prop.start)){					prop.start = prop.start(prop);				}				if(dojo.isFunction(prop.end)){					prop.end = prop.end(prop);				}				if(prop.start instanceof dojo.Color){					// create a reusable temp color object to keep intermediate results					prop.tempColor = new dojo.Color();				}			}			this.getValue = function(r){				var ret = {};				for(var p in this._properties){					var prop = this._properties[p];					var value = null;					if(prop.start instanceof dojo.Color){						value = dojo.blendColors(prop.start, prop.end, r, prop.tempColor).toCss();					}else if(!dojo.isArray(prop.start)){						value = ((prop.end - prop.start) * r) + prop.start + (p != "opacity" ? prop.units||"px" : "");					}					ret[p] = value;				}				return ret;			}		}				var anim = new dojo._Animation(args);		dojo.connect(anim, "beforeBegin", anim, function(){			var pm = this.properties;			for(var p in pm){				var prop = pm[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);				if(typeof prop.end == "undefined"){					prop.end = dojo.style(this.node, p);				}else if(typeof prop.start == "undefined"){					prop.start = dojo.style(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) : parseInt(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/fd857d7107c5e12dfc8eaceb082f6e0f18b96825/fx.js/clean/_base/fx.js