// Ïåðåâîä ÷èñëà num â 16-ðè÷íóþ ñèñòåìó ñ÷èñëåíèß
function ToHex(num)
{
  var ret="";
  var s ="0123456789ABCDEF";
  while(num)
  {
     ret = s.charAt(num%16)+ret;
     num = Math.floor(num/16);
  }
  return !ret ? "0":ret;
}

// Ôîðìèðîâàíèå êîäà öâåòà â âèäå: #rrggbb
function RGB(r,g,b)
{
  r=ToHex(r); if (r.length<2) r = "0"+r;
  g=ToHex(g); if (g.length<2) g = "0"+g;
  b=ToHex(b); if (b.length<2) b = "0"+b;
  return "#"+r+g+b;
}

// Âûâîä ãîðèçîíòàëüíîé ïîëîñû ñ ðàñòßæêîé ñåðîãî öâåòà
// win -- ññûëêà íà îêíî, â êîòîðîå âûïîëíÿåòñÿ âûâîä
function HR(win, mode)
{
  var str="<TABLE class=hrtbl><TR>";
  if (mode==1) {
   var r=241;
   var g=193;
   var b=0;
  } else {
   var r=187;
   var g=215;
   var b=138;
  }
  if (mode==1) {
   docw = 500;
  } else {
   docw = [Math.max(
    document.documentElement["clientWidth"],
    document.body["scrollWidth"], document.documentElement["scrollWidth"],
    document.body["offsetWidth"], document.documentElement["offsetWidth"]
   )]
  }
  maxv = 255;
  for(i=0; i<maxv; i+=((docw-400)/250))
    str += "<TD bgcolor="+RGB(r+(255-r)*((i/maxv)),g+(255-g)*(i/maxv),b+(255-b)*(i/maxv))+"> </TD>";
  str += "</TR></TABLE>"
  win.document.write(str);
}

