jvm.ColorScale = function(colors, normalizeFunction, minValue, maxValue) {

jvm.ColorScale.parentClass.apply(this, arguments);

}

jvm.inherits(jvm.ColorScale, jvm.NumericScale);

jvm.ColorScale.prototype.setScale = function(scale) {

var i;

for (i = 0; i < scale.length; i++) {
  this.scale[i] = jvm.ColorScale.rgbToArray(scale[i]);
}

};

jvm.ColorScale.prototype.getValue = function(value) {

return jvm.ColorScale.numToRgb(jvm.ColorScale.parentClass.prototype.getValue.call(this, value));

};

jvm.ColorScale.arrayToRgb = function(ar) {

var rgb = '#',
    d,
    i;

for (i = 0; i < ar.length; i++) {
  d = ar[i].toString(16);
  rgb += d.length == 1 ? '0'+d : d;
}
return rgb;

};

jvm.ColorScale.numToRgb = function(num) {

num = num.toString(16);

while (num.length < 6) {
  num = '0' + num;
}

return '#'+num;

};

jvm.ColorScale.rgbToArray = function(rgb) {

rgb = rgb.substr(1);
return [parseInt(rgb.substr(0, 2), 16), parseInt(rgb.substr(2, 2), 16), parseInt(rgb.substr(4, 2), 16)];

};