// Создание объекта XLCommon (XL-Common)
var XLCommon = new Object();

// Свойства
XLCommon.Quote = '"'; // Необходима для подстановки символа кавычки в строках
XLCommon.ScreenWidth = 0; // Ширина экрана (разрешение)
XLCommon.ScreenHeight = 0; // Высота экрана (разрешение)

// Методы
XLCommon.StrWinToUnicode = function (str) // Конвертирование строки из cp1251 в юникод
{  var charmap = unescape(
    "%u0402%u0403%u201A%u0453%u201E%u2026%u2020%u2021%u20AC%u2030%u0409%u2039%u040A%u040C%u040B%u040F"+
    "%u0452%u2018%u2019%u201C%u201D%u2022%u2013%u2014%u0000%u2122%u0459%u203A%u045A%u045C%u045B%u045F"+
    "%u00A0%u040E%u045E%u0408%u00A4%u0490%u00A6%u00A7%u0401%u00A9%u0404%u00AB%u00AC%u00AD%u00AE%u0407"+
    "%u00B0%u00B1%u0406%u0456%u0491%u00B5%u00B6%u00B7%u0451%u2116%u0454%u00BB%u0458%u0405%u0455%u0457"
  );
  var code2char = function(code)
  {
    if(code >= 0xC0 && code <= 0xFF) return String.fromCharCode(code - 0xC0 + 0x0410)
    if(code >= 0x80 && code <= 0xBF) return charmap.charAt(code - 0x80)
    return String.fromCharCode(code)
  };
  var res = "";
  for(var i = 0; i < str.length; i++) res = res + code2char(str.charCodeAt(i));
  return res;
}
XLCommon.GetElement = function (Identifier) // Возвращает элемент по его идентификатору
{
  return document.getElementById(Identifier);
}
XLCommon.GetVarFromUrl = function (VarName, CustomUrl) // Возвращает значение GET-переменной переданного URL-адреса
{
  var n = new String(VarName);
  var s = new String(CustomUrl);
  var i1 = s.indexOf('?' + n + '=');
  var i2 = s.indexOf('&' + n + '=');
  var i;
  if(i1 >= 0)
  {
    i = i1 + 1 + n.length + 1;
  }
  else if(i2 >= 0)
  {
    i = i2 + 1 + n.length + 1;
  }
  else
  {
    i = -1;
  }
  if(i >= 0)
  {
    s = s.substring(i);
    s = s.replace(/^([^&]*)(.*)$/g, '$1');
    return s;
  }
  return '';
}
XLCommon.GetVar = function (VarName) // Возвращает значение GET-переменной URL-адреса браузера
{
  return XLCommon.GetVarFromUrl(VarName, document.location.href);
}
XLCommon.Trim = function (S) // Тримует строку
{
  if(S != null)
  {
    return S.replace(/^[\s]+/g, '').replace(/[\s]+$/g, '');
  }
  return '';
}
XLCommon.GetElementPosition = function (E) // Врзвращает координаты объекта документа (x:?, y:?)
{
  var x = y = 0;
  while(E) {
    x += E.offsetLeft;
    y += E.offsetTop;
    E = E.offsetParent;
  }
  return {x:x, y:y};
}
XLCommon.Focus = function (Identifier) // Активирует объект страницы по идентификатору
{  var obj = XLCommon.GetElement(Identifier);
  if(obj != null)
  {    obj.focus();  }
}

// Инициализация свойств, некоторые действия
if(self.screen) // for NN4 and IE4
{
  XLCommon.ScreenWidth = screen.width;
  XLCommon.ScreenHeight = screen.height;
}
else if(self.java) // for NN3 with enabled Java
{
  var jkit = java.awt.Toolkit.getDefaultToolkit();
  var scrsize = jkit.getScreenSize();
  XLCommon.ScreenWidth = scrsize.width;
  XLCommon.ScreenHeight = scrsize.height;
}

