this._properties = properties; this.diffs = new Array(properties.length); dojo.lang.forEach(properties, function(prop, i){  if(dojo.lang.isFunction(prop.start)){ prop.start = prop.start(prop, i); } if(dojo.lang.isFunction(prop.end)){ prop.end = prop.end(prop, i); } if(dojo.lang.isArray(prop.start)){  this.diffs[i] = null; }else if(prop.start instanceof dojo.gfx.color.Color){  prop.startRgb = prop.start.toRgb(); prop.endRgb = prop.end.toRgb(); }else{ this.diffs[i] = prop.end - prop.start; } }, this); 
this._properties = properties; this.diffs = new Array(properties.length); dojo.lang.forEach(properties, function(prop, i){  if(dojo.lang.isFunction(prop.start)){ prop.start = prop.start(prop, i); } if(dojo.lang.isFunction(prop.end)){ prop.end = prop.end(prop, i); } if(dojo.lang.isArray(prop.start)){  this.diffs[i] = null; }else if(prop.start instanceof dojo.gfx.color.Color){  prop.startRgb = prop.start.toRgb(); prop.endRgb = prop.end.toRgb(); }else{ this.diffs[i] = prop.end - prop.start; } }, this); 
  var propLine = function(properties){    this._properties = properties;    this.diffs = new Array(properties.length);    dojo.lang.forEach(properties, function(prop, i){      // calculate the end - start to optimize a bit      if(dojo.lang.isFunction(prop.start)){        prop.start = prop.start(prop, i);      }      if(dojo.lang.isFunction(prop.end)){        prop.end = prop.end(prop, i);      }      if(dojo.lang.isArray(prop.start)){        // don't loop through the arrays        this.diffs[i] = null;      }else if(prop.start instanceof dojo.gfx.color.Color){        // save these so we don't have to call toRgb() every getValue() call        prop.startRgb = prop.start.toRgb();        prop.endRgb = prop.end.toRgb();      }else{        this.diffs[i] = prop.end - prop.start;      }    }, this);    this.getValue = function(n){      var ret = {};      dojo.lang.forEach(this._properties, function(prop, i){        var value = null;        if(dojo.lang.isArray(prop.start)){          // FIXME: what to do here?        }else if(prop.start instanceof dojo.gfx.color.Color){          value = (prop.units||"rgb") + "(";          for(var j = 0 ; j < prop.startRgb.length ; j++){            value += Math.round(((prop.endRgb[j] - prop.startRgb[j]) * n) + prop.startRgb[j]) + (j < prop.startRgb.length - 1 ? "," : "");          }          value += ")";        }else{          value = ((this.diffs[i]) * n) + prop.start + (prop.property != "opacity" ? prop.units||"px" : "");        }        ret[dojo.html.toCamelCase(prop.property)] = value;      }, this);      return ret;    }  }
6315	/local1/tlutelli/issta_data/temp/all_js/javascript/2007_temp/2007/6315/65ae7e8768a77997b7894e274bc242069a1cb027/struts_dojo.js.uncompressed.js/clean/src/main/resources/org/apache/struts2/static/dojo/struts_dojo.js.uncompressed.js