// vars

var  h = new Array('0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f');
var mo = new Array('января ', 'февраля ', 'марта ', 'апреля ','мая ', 'июня ', 'июля ', 'августа ', 'сентября ', 'октября ', 'ноября ', 'декабря ');
var dw = new Array('Вс.', 'Пн.', 'Вт.', 'Ср.', 'Чт.','Пт.', 'Сб.');

// funcs

function allt(str)
{
  var src_s = new String(str);
  var si= 0, sj=src_s.length-1;
  while(src_s.charAt(si)==" ") si++;
  while(src_s.charAt(sj)==" ") sj--;
  return src_s.substr(si,sj-si+1);
}

function padc(str,n,c)
{
  var s = new String(str);
  while (s.length<n) { s=c+s+c };
  return s;
}

function padl(str,n,c)
{
  var s = new String(str);
  while (s.length<n) { s=c+s };
  return s;
}

function padr(str,n,c)
{
  var s = new String(str);
  while (s.length<n) { s=s+c };
  return s;
}

function ShowDate()
{
  da = new Date();
  return ""+da.getDate()+" "+mo[da.getMonth()]+da.getYear()+", "+dw[da.getDay()]
}

function ShowHello()
{
  var hh = new Date().getHours();
  var ShowText="";
  if (hh >= 5) ShowText="Доброе утро!";
  if (hh >=10) ShowText="Добрый день!";
  if (hh >=19) ShowText="Добрый вечер!";
  if (hh >=23 || hh <5) ShowText="Доброй ночи!";
  return ShowText;
}

function ShowUserAgent()
{
  return navigator.userAgent;
}

function ShowAnchors()
{
  var i=0, s="";
  for (var i=0;i<=document.anchors.length-1;i+=1)
  {
    s+="<br>"+document.anchors[i];
  }
  return s;
}

function AnalyzeElements()
{
  var s = '';
  for (var i=0; i<=document.forms.length-1; i++)
  {
    s+='<br> '+document.forms[i].name+'/'+document.forms[i].action;
    for (var j=0; j<=document.forms[i].elements.length-1; j++)
    {
      s+='<br> - '+document.forms[i].elements[j].name+'='
                  +document.forms[i].elements[j].value;
    }
  }
  return s;
}

function TestColorCode(cc)
{
  var i=0, f1=false, f2=false;  // каждая переменная инициализируется самостоятельно
  var cc_s = new String(cc);    // создать новую строку
  cc_s = new String(allt(cc));  // убрать все пробелы слева и справа
  cc_s = cc_s.toLowerCase();    // сделать все символы строчными
  if (cc_s!='')
  {
    do {
      f1 = f1 || (cc_s.substr(0,1) == h[i]);
      f2 = f2 || (cc_s.substr(1,1) == h[i]);
      i++;
      if (f1 && f2) break;
    } while (i<h.length);
    cc_s = (f1 && f2) ? cc_s : '00';
  } else cc_s='ff';
  return cc_s;
}

function TestOneColor(cc)
{
  cInfo.Test.value=TestColorCode(cc);
  return true;
}

function TestRGBColor(rgb)
{
  cInfo.RRGGBB.value=TestColorCode(rgb.substr(0,2))+TestColorCode(rgb.substr(2,2))+TestColorCode(rgb.substr(4,2));
}

function NumberHD(hex) // преобразование 16-теричного знака в десятичную цифру
{
  var f = false, i = 0;
  var hc= new String(hex);
  hc    = hc.toLowerCase()
  do { f = (hc.substr(0,1) == h[i]) || (i >= h.length); i++; } while (!f);
  if (i>16) return -1; return i-1;
}

function IntDH(dec) // преобразование десятичного числа в шестнадцатеричное
{
  var hex = '', i = 0, j = 0;
  var d = dec;
  while (d>0) { i=Math.floor(d/16); j=d-i*16; hex=h[j]+hex; d=i; if (d<16) break; };
  if (d>0) hex=h[d]+hex;
  return hex;
}

function IntHD(hex) // преобразование шестнадцатеричного числа в десятичное
{
  var dec = 0;
  if (hex.length>1)
    for (var i=0;i<hex.length-1;i++) { dec = (dec+NumberHD(hex.substr(i,1)))*16; };
  dec+=NumberHD(hex.substr(hex.length-1,1));
  return dec;
}

function SelectColor(cc)
{
  if (typeof cc != 'undefined')
  {
    document.cookie='color='+cc;
    document.location.reload();
  }
}

function ColorTableXX(rgb, color)
{
  var td = '<td onClick="javascript:SelectColor(this.name);" Align=Center vAlign=Center Class="sc_cell" Width="70px" Height="10" Border="3" BorderColor=';
  var c1 = ''; c2 = '', cc = rgb.toLowerCase();
  if (color=='red')   { c1=cc.substr(0,1); c2=cc.substr(1,1); };
  if (color=='green') { c1=cc.substr(2,1); c2=cc.substr(3,1); };
  if (color=='blue')  { c1=cc.substr(4,1); c2=cc.substr(5,1); };
  document.write('<table cellspacing="5" cellpadding="5" width="100%" border="1" BorderColor=white>');
  document.write('<tr>');  document.write(td+color+'></td>');
  for (var jx=0;jx<16;jx++)
  {
    var hc= IntDH(jx); hc = (hc=='') ? '0' : hc; 
    var hb= (hc==c2) ? ' BGColor=aqua' : '';
    document.write(td+color+hb+'>'+hc+'</td>');
  }
  document.write(td+color+'></td>');  document.write('</tr>');
  for (var jy=0;jy<16;jy++)
  {
    document.write('<tr>');
    hc= IntDH(jy); hc = (hc=='') ? '0' : hc; 
    hb= (hc==c1) ? ' BGColor=aqua' : '';
    document.write(td+color+hb+'>'+hc+'</td>');
    for (var c=0;c<16;c++)
    {
      var dc = allt(IntDH(c)); dc = (dc=='') ? '0' : dc.toUpperCase();
      // цвет текущей ячейки
      dc = hc+dc;
      if (color=='red') dc = dc.toLowerCase() + rgb.substr(2,4);
      if (color=='green') dc = rgb.substr(0,2) + dc.toLowerCase() + rgb.substr(4,2);
      if (color=='blue') dc = rgb.substr(0,4) + dc.toLowerCase();
      document.write(td+color+' BGColor='+dc+' name='+dc+'>'+dc+'</td>');
    }
    document.write(td+color+hb+'>'+hc+'</td>');  document.write('</tr>');
  }
  document.write('</table>');
}

function ColorTable()
{
  var sb = document.cookie.indexOf ('color=');
  var se = document.cookie.indexOf (';');
 
  cInfo.RRGGBB.value = (sb==-1) ? '000000' : document.cookie.substr(se-6,6);

  document.write('<hr color=red height="1" width="100%">');
  ColorTableXX(cInfo.RRGGBB.value,'red');

  document.write('<hr color=green height="1" width="100%">');
  ColorTableXX(cInfo.RRGGBB.value,'green');

  document.write('<hr color=blue height="1" width="100%">');
  ColorTableXX(cInfo.RRGGBB.value,'blue');
}

function CreateColorTable(rr, gg, bb)
{
  alert('CreateColorTable()');
}

function CreateNewTable()
{
  alert('CreateNewTable()');
}

function CopyColor()
{
  alert('CopyCOlor()');
}

// 08.12.06

function srcInfo() {

 var scr_wh=".", scr_c=".", n_lng=".", je="Enabled", jc="Enabled";
 var nav=navigator, doc=document;

 if (self.screen) {
  scr_wh=screen.width+"x"+screen.height;
  scr_c=screen.colorDepth+"-bit";

 } else if (self.java) {
  var jav=java.awt.Toolkit.getDefaultToolkit();
  var scr=j.getScreenSize();
  scr_wh=scr.width+"x"+scr.height;
 }

 if (nav.language) { n_lng=nav.language.toUpperCase(); }
 else if (nav.browserLanguage) { n_lng=nav.browserLanguage.toUpperCase(); }
 je=nav.javaEnabled()?je:"Disabled";
 jc="|"+document.cookie+"|";
 return "Screen: "+scr_wh+"; ColorDepth: "+scr_c+"; Language: "+n_lng+"; Java"+je+"; cookie"+jc;
}

function SetCookie (name,value,expires,path,domain,secure) {
  document.cookie = name + "=" + escape (value) +
    ((expires) ? "; expires=" + expires.toGMTString() : "") +
    ((path) ? "; path=" + path : "") +
    ((domain) ? "; domain=" + domain : "") +
    ((secure) ? "; secure" : "");
}

function GetCookie (name) {
  var arg = name + "=";
  var alen = arg.length;
  var clen = document.cookie.length;
  var i = 0;
  while (i < clen) {
    var j = i + alen;
    if (document.cookie.substring(i, j) == arg)
      return getCookieVal (j);
    i = document.cookie.indexOf(" ", i) + 1;
    if (i == 0) break; 
  }
return null;
}

function getCookieVal (offset) {
  var endstr = document.cookie.indexOf (";", offset);
  if (endstr == -1)
    endstr = document.cookie.length;
  return unescape(document.cookie.substring(offset, endstr));
}

function DeleteCookie (name,path,domain) {
  if (GetCookie(name)) {
    document.cookie = name + "=" +
      ((path) ? "; path=" + path : "") +
      ((domain) ? "; domain=" + domain : "") +
      "; expires=Thu, 01-Jan-70 00:00:01 GMT";
  }
}

// 20.06.09

function ToRussian()
{
  {
    ToRusObj = document.getElementById("ToRus");
    ToEngObj = document.getElementById("ToEng");
    ToRusObj.style.visibility='visible';
    ToEngObj.style.visibility='hidden';
  }
  return true;
}

function ToEnglish()
{
  {
    ToRusObj = document.getElementById("ToRus");
    ToEngObj = document.getElementById("ToEng");
    ToRusObj.style.visibility='hidden';
    ToEngObj.style.visibility='visible';
  }
  return true;
}

