var alreadyFocused = false;

function obj(oid) {
  if (document.getElementById) {
    return document.getElementById(oid);
  } else if (document.all) {
    return document.all[oid];
  } else {
    return null;
  }
}
function setFocus(oid) {
  o = obj(oid);
  if (!o) return;
  o.focus();
}
function area(fid, text) {
  f = obj(fid);
  if (!f) return;
  f.value += '[area] ' + text + ' [/area]\n';
  f.focus();
}
function quote(fid, text) {
  f = obj(fid);
  if (!f) return;
  f.value += '[quote] ' + text + ' [/quote]\n';
  f.focus();
}
function quoteSelected(fid) {
  ds = document.selection;
  if (!ds) return;
  selected = ds.createRange().text;
  if (!selected) {
    alert('Сначала выделите текст для цитирования!');
  } else {
    quote(fid, selected);
  }
}
function checkLength(fid, max) {
  f = obj(fid);
  if (!f) return true;
  left = max - f.value.length;
  return (left > -5);
}
function keepLength(fid, max) {
  f = obj(fid);
  if (!f) return;
  left = max - (msg = f.value).length;
  if (left < 0) {
    f.value = msg.substring(0, max);
  }
}
function keepLengthEx(fid, max, cid) {
  f = obj(fid);
  if (!f) return;
  c = obj(cid);
  if (!c) return;
  cs = c.style;
  left = max - (msg = f.value).length;
  if (left < 0) {
    f.value = msg.substring(0, max); c.innerHTML = 0;
  } else {
    c.innerHTML = left;
  } // без else!
  if (left <= 20) {
    cs.color = 'red'; cs.fontWeight = 'bold';
  } else {
    cs.color = 'black'; cs.fontWeight = 'normal';
  }
}
function createBookmark(name) {
  we = window.external;
  if (!we) {
    return true;
  } else {
    we.addFavorite('http://www.lensart.ru/', name);
    return false;
  }
}
function appendValue(oid, app) {
  o = obj(oid);
  if (!o) return;
  if (!o.value) return;
  o.value = o.value + app;
}
function fullSelect(oid) {
  o = obj(oid);
  if (!o) return;
  o.focus();
  o.select();
}
function hide(oid) {
  o = obj(oid);
  if (!o) return;
  o.style.display = 'none';
}
function show(oid) {
  o = obj(oid);
  if (!o) return;
  o.style.display = '';
}
function makeBack(oid) {
  o = obj(oid);
  if (!o) return;
  o.className = 'back';
}
function makeLight(oid) {
  o = obj(oid);
  if (!o) return;
  o.className = 'light';
}
function makeDark(oid) {
  o = obj(oid);
  if (!o) return;
  o.className = 'dark';
}
function drop(hid, sid) {
  hide(hid);
  show(sid);
}
function dropEx(hid, s1id, s2id) {
  hide(hid);
  show(s1id);
  show(s2id);
}
function burn(oidp) {
  makeLight(oidp + 'x');
  makeBack(oidp + 'y');
  makeBack(oidp + 'z');
}
function unburn(oidp) {
  makeDark(oidp + 'x');
  makeLight(oidp + 'y');
  makeLight(oidp + 'z');
}
var trt = new Array();
trt[   'a'] =    'а'; trt[   'A'] =    'А';
trt[   'b'] =    'б'; trt[   'B'] =    'Б';
trt[   'v'] =    'в'; trt[   'V'] =    'В';
trt[   'w'] =    'в'; trt[   'W'] =    'В';
trt[   'g'] =    'г'; trt[   'G'] =    'Г';
trt[   'd'] =    'д'; trt[   'D'] =    'Д';
trt[   'e'] =    'е'; trt[   'E'] =    'Е';
trt[  'zh'] =    'ж'; trt[  'Zh'] =    'Ж';
trt[  'zH'] =    'ж'; trt[  'ZH'] =    'Ж';
trt[   'z'] =    'з'; trt[   'Z'] =    'З';
trt[   'i'] =    'и'; trt[   'I'] =    'И';
trt[   'j'] =    'й'; trt[   'J'] =    'Й';
trt[   'k'] =    'к'; trt[   'K'] =    'К';
trt[   'q'] =    'к'; trt[   'Q'] =    'К';
trt[   'l'] =    'л'; trt[   'L'] =    'Л';
trt[   'm'] =    'м'; trt[   'M'] =    'М';
trt[   'n'] =    'н'; trt[   'N'] =    'Н';
trt[   'o'] =    'о'; trt[   'O'] =    'О';
trt[   'p'] =    'п'; trt[   'P'] =    'П';
trt[   'r'] =    'р'; trt[   'R'] =    'Р';
trt[   's'] =    'с'; trt[   'S'] =    'С';
trt[   't'] =    'т'; trt[   'T'] =    'Т';
trt[   'u'] =    'у'; trt[   'U'] =    'У';
trt[   'y'] =    'у'; trt[   'Y'] =    'У';
trt[   'f'] =    'ф'; trt[   'F'] =    'Ф';
trt[  'ph'] =    'ф'; trt[  'Ph'] =    'Ф';
trt[  'pH'] =    'Ф'; trt[  'PH'] =    'Ф';
trt[   'h'] =    'х'; trt[   'H'] =    'Х';
trt[   'x'] =    'х'; trt[   'X'] =    'Х';
trt[   'c'] =    'ц'; trt[   'C'] =    'Ц';
trt[  'ch'] =    'ч'; trt[  'Ch'] =    'Ч';
trt[  'cH'] =    'ч'; trt[  'CH'] =    'Ч';
trt[  'sh'] =    'ш'; trt[  'Sh'] =    'Ш';
trt[  'sH'] =    'ш'; trt[  'SH'] =    'Ш';
trt[ 'shh'] =    'щ'; trt[ 'Shh'] =    'Щ';
trt[ 'sHH'] =    'щ'; trt[ 'SHH'] =    'Щ';
trt[ 'i\''] =    'ы'; trt[ 'I\''] =    'Ы';
trt[  '\''] =    'ь';
trt[ 'e\''] =    'э'; trt[ 'E\''] =    'Э';
trt[  'yu'] =    'ю'; trt[  'Yu'] =    'Ю';
trt[  'yU'] =    'ю'; trt[  'YU'] =    'Ю';
trt[  'ya'] =    'я'; trt[  'Ya'] =    'Я';
trt[  'yA'] =    'я'; trt[  'YA'] =    'Я';
trt[ 'eto'] =  'это'; trt[ 'Eto'] =  'Это';
trt['ssil'] = 'ссыл'; trt['Ssil'] = 'Ссыл';
trt['sigh'] =  'cай'; trt['Sigh'] =  'Cай';
trt['site'] = 'cайт'; trt['Site'] = 'Cайт';
trt[' vi '] = ' вы '; trt[' Vi '] = ' Вы ';
trt['.vi '] = '.вы '; trt['.Vi '] = '.Вы ';
trt[',vi '] = ',вы '; trt[',Vi '] = ',Вы ';
trt[':vi '] = ':вы '; trt[':Vi '] = ':Вы ';
trt[' vi.'] = ' вы.'; trt[' Vi.'] = ' Вы.';
trt[' vi,'] = ' вы,'; trt[' Vi,'] = ' Вы,';
trt[' vi:'] = ' вы:'; trt[' Vi:'] = ' Вы:';
trt[' mi '] = ' мы '; trt[' Mi '] = ' Мы ';
trt['.mi '] = '.мы '; trt['.Mi '] = '.Мы ';
trt[',mi '] = ',мы '; trt[',Mi '] = ',Мы ';
trt[':mi '] = ':мы '; trt[':Mi '] = ':Мы ';
trt[' mi.'] = ' мы.'; trt[' Mi.'] = ' Мы.';
trt[' mi,'] = ' мы,'; trt[' Mi,'] = ' Мы,';
trt[' mi:'] = ' мы:'; trt[' Mi:'] = ' Мы:';
trt[' ti '] = ' ты '; trt[' Ti '] = ' Ты ';
trt['.ti '] = '.ты '; trt['.Ti '] = '.Ты ';
trt[',ti '] = ',ты '; trt[',Ti '] = ',Ты ';
trt[':ti '] = ':ты '; trt[':Ti '] = ':Ты ';
trt[' ti.'] = ' ты.'; trt[' Ti.'] = ' Ты.';
trt[' ti,'] = ' ты,'; trt[' Ti,'] = ' Ты,';
trt[' ti:'] = ' ты:'; trt[' Ti:'] = ' Ты:';
trt[' bi '] = ' бы '; trt['-bi '] = '-бы ';
function trans(str) {
  var j, n, tc1, tc2, tc3, tc4, s = ''
  for (j = 0, n = str.length; j < n; j++) {
    if (str.substring(j, j + 7) == '[quote]') { s += '[quote]'; j += 6 } else {
    if (str.substring(j, j + 8) == '[/quote]') { s += '[/quote]'; j += 7 } else {
      tc4 = '' + trt[str.substring(j, j + 4)];
      tc3 = '' + trt[str.substring(j, j + 3)];
      tc2 = '' + trt[str.substring(j, j + 2)];
      tc1 = '' + trt[str.substring(j, j + 1)];
      if (tc4 != '' && tc4 != 'undefined' && tc4.length <= 5) { s += tc4; j += 3 } else {
      if (tc3 != '' && tc3 != 'undefined' && tc3.length <= 4) { s += tc3; j += 2 } else {
      if (tc2 != '' && tc2 != 'undefined' && tc2.length <= 3) { s += tc2; j += 1 } else {
      if (tc1 != '' && tc1 != 'undefined' && tc1.length <= 2) { s += tc1 } else { s += str.charAt(j) } } } } } } }
  return (s);
}
function transliterate(fid) {
  f = obj(fid);
  if (!f) return;
  f.focus();
  f.value = trans(f.value);
}
function loadImage(url) {
  i = new Image;
  i.src = url;
}
var hexes = new Array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f');
function rgbtohex(r, g, b) {
  r = escape(r); g = escape(g); b = escape(b);
  r = parseInt(r); g = parseInt(g); b = parseInt(b);
  if (isNaN(r)) return '#e7e3e7';
  if (isNaN(g)) return '#e7e3e7';
  if (isNaN(b)) return '#e7e3e7';
  if ((r < 0) || (r > 255) || (g < 0) || (g > 255) || (b < 0) || (b > 255)) return '#e7e3e7';
  return '#' + hexes[(r - (r % 16)) / 16] + hexes[r % 16] + hexes[(g - (g % 16)) / 16] + hexes[g % 16] + hexes[(b - (b % 16)) / 16] + hexes[b % 16];
}
function blinkText(tid) {
  var t = obj(tid);
  if (!t) return;
  t.style.color = '#8000ff';
  setTimeout('unblinkText(\x27' + tid + '\x27);', 250);
}
function unblinkText(tid) {
  var t = obj(tid);
  if (!t) return;
  t.style.color = '';
  setTimeout('blinkText(\x27' + tid + '\x27);', 250);
}
