var h=0; // loop this
var s=240; // fullbright
var b=120; // vivid

var speed = 500; // how many milliseconds between steps
var smoothness = 1; // how smooth the colour fade is

function loops() {
 setTimeout("step()",speed);
}
function step() {
 h += smoothness;
 if (h>=240)h=0;
 var c = hsb2rgb(h,s,b);
 document.body.style.scrollbarBaseColor = c;
 document.getElementById("clr").value = c;
 setTimeout("step()",speed);
}

function hsb2rgb(hue,sat,lum) {
 var _val, _max, _min, _part, _half, _hi, _lo, _mid;
 var _r, _g, _b;
 _val = (lum / 240) * 255;
 if (lum >= 120) {
  _max = 255;
  _min = _val - (255 - _val);
 } else if(lum < 120) {
  _min = 0;
  _max = _val * 2;
 }
 _part = sat / 240;
 _half = (_max - _min) / 2;
 _hi = _half * _part;
 _lo = _half - _hi;
 if (sat == 0 || _max == _min) {
  _r = _val;
  _g = _val;
  _b = _val;
 } else if (hue < 40) {
  _r = _max - _lo;
  _b = _min + _lo;
  _mid = hue / 40;
  _g = ((_r - _b) * _mid) + _b;
 } else if (hue >= 200 && hue <= 240) {
  _r = _max - _lo;
  _g = _min + _lo;
  _mid = (240 - hue) / 40;
  _b = ((_r - _g) * _mid) + _g;
 } else if (hue >= 80 && hue < 120) {
  _g = _max - _lo;
  _r = _min + _lo;
  _mid = (hue - 80) / 40;
  _b = ((_g - _r) * _mid) + _r;
 } else if (hue >= 40 && hue < 80) {
  _g = _max - _lo;
  _b = _min + _lo;
  _mid = (80 - hue) / 40;
  _r = ((_g - _b) * _mid) + _b;
 } else if (hue >= 160 && hue < 200) {
  _b = _max - _lo;
  _g = _min + _lo;
  _mid = (hue - 160) / 40;
  _r = ((_b - _g) * _mid) + _g;
 } else if (hue >= 120 && hue < 160) {
  _b = _max - _lo;
  _r = _min + _lo;
  _mid = (160 - hue) / 40;
  _g = ((_b - _r) * _mid) + _r;
 }
 red = Math.round(_r).toString(16);
 green = Math.round(_g).toString(16);
 blue = Math.round(_b).toString(16);
 if (red.length == 1) red = "0" + red;
 if(green.length == 1) green = "0" + green;
 if(blue.length == 1) blue ="0" + blue;
 return "#" + red + green + blue;
}

