var g_eh_version_lib = '%@version@%';
ehge('lib');

var c_lib_key = 0;
var c_lib_name = 1;
var c_lib_ref = 2;
var c_lib_comment = 3;
var c_lib_sub = 4;

var g_lib_keys; //Массив ключей

var g_lib_contents = [
  ['wear', 'Предметы и заклинания',,, [
    ['tts', 'Комплекты',, 'Вещи, объединенные по комплектам...'],
    ['weapon', 'Оружие',, 'Топоры, мечи, кастеты, ножи и прочее и прочее...', [
      ['knuck', 'Кастеты',, 'Предназначены для убиения с помощью удара руки. Слабые оружия, если не рассматривать Кастет Вечного Уничтожителя, который может дать фору многим мечам и топорам. Первый Кастет был создан кузнецом Ветер, который известен также, как первый человек, который очень близко подошёл к разгадке тайны Ворот Возврата.'],
      ['axe', 'Топоры',, 'Самый страшный топор Хаддана это конечно же Топор Ведьм. к сожалению о нём мало что известно, поэтому в Энциклопедию он не попал. Единственное что дошло до нас, составителей данной Энциклопедии, это то, что по размеру он больше cреднего человека, но меньше, чем знаменитый орк Ваандругимбаалмет. Чтобы поднять его, нужна очень большая сила и не каждый может с ним справится в бою. Наносит же он такой урон, последствия которого ощущаются ещё долго...'],
      ['sword', 'Мечи',, 'Мечи - это самое распространённое, и пожалуй самое неисследованное оружие Хаддана. На первый взгляд в Энциклопедии описаны все возможные мечи, встречающиеся на боевых полях этого мира, но к сожалению это не так. Дело в том, что на неисследованом острове Крурх, находящемся к югу от Арены живёт целое поселение кузнецов, самых главных специалистов по мечам Хаддана. Но попасть на Крурх пока ещё не удалось никому из жителей остальной части Хаддана, и лишь редко-редко к нам попадают мечи оттуда странными и непонятными путями... Лишь одним Посланникам, да Верховным Богам известно, как это проиcходит. Самый известный из таких мечей - это конечно же Первый Меч. Счастье тому, кто найдёт этот потерявшийся в веках артефакт.'],
      ['club', 'Дубины',, 'Основное преимущество в бою дубины дают оркам. Которые собственно и изобрели этот класс оружия. Первая Дубина называлась Голос Прумбриорлдава, по имени орка, который взял свою палку, на которую опирался, и в сердцах вмочил ей с одного удара своему другу Приавлунрду. После чего началась Первая Великая Война Орков.'],
      ['dagger', 'Ножи',, 'Многие думают, что нож - это уменьшенный меч и оружие так себе, слабенькое. Но это не так. Чего только стоит Кинжал Злости наносящий урон при ударе сразу во всех направлениях. А артефактные кинжалы это вообще отдельный разговор. Есть даже воины, предпочитающие кинжалы всем другим оружиям. Они обычно набирают их целыми наборами - набор для Хаотического боя, набор для Боя 1x1 и так далее. И испытывают презрение к другим видам оружия.']
    ]],
    ['armor', 'Защита',, 'Броня, щиты...', [
      ['cloth', 'Одежда',, 'Одежда, используемая просто для красоты, а не для защиты...'],
      ['leather', 'Кожаная броня',, 'Легкая кожаная броня.'],
      ['chain', 'Кольчуги',, 'Легкие металлические кольчуги.'],
      ['plate', 'Доспехи',, 'Доспехи из металлических пластин.'],
      ['helmet', 'Шлемы',, 'головные уборы и всё, связанное с защитой головы.'],
      ['shield', 'Щиты',, 'Большие и малые щиты.'],
      ['belt', 'Пояса',, 'Пояса, защищающие живот.'],
      ['pants', 'Штаны',, 'Штаны и прочая защита ног.'],
      ['boots', 'Сапоги',, 'Сапоги и прочая защита ступней.']
    ]],
    ['res', 'Ресурсы',, 'Ресурсы - ингридиенты для изготовления вещей'],
    ['acc', 'Ювелирные',, 'Кольца, амулеты, ожерелья...', [
      ['ring', 'Кольца',, 'Кольца повсеместно используются в Хаддане и имеют большое значение...'],
      ['amulet', 'Амулеты',, 'Амулеты часто применяются для защиты от темных сил...'],
      ['necklace', 'Ожерелья',, 'Ожерелья чаще всего выполняют декоративную функцию, однако некоторые маги умудрялись встраивать в них мощные заклинания...'],
      ['earing', 'Серьги',, 'Серьги вдеваются в уши и висят там, пока их не вынут или они не выпадут...']
    ]],
    ['drink', 'Напитки / Эликсиры',, 'Водка, вино, соки воды...'],
    ['spell', 'Заклинания',,'Самое загадочное и интересное, что есть в мире - магия, в Хаддане интересна ещё и тем, что после великой битвы с тринадцатью тёмными магические запасы Хаддана истощились. И магию приходилось буквально добывать из недр Хаддана с великим трудом.', [
      ['fire', 'Огонь',, 'Заклинания школы огня'],
      ['water', 'Вода',, 'Заклинания школы воды'],
      ['white', 'Белая',, 'Заклинания школы белой магии'],
      ['black', 'Черная',, 'Заклинания школы чёрной магии'],
      ['shaman', 'Природа',, 'Заклинания школы магии природы'],
      ['inq', 'Инквизиция',, 'Заклинания, используемые инквизицией']
    ]]
  ]],
  ['rating', 'Рейтинг',,, [
    ['best', 'Рекорды','/ext/rating_all.php', 'Книга рекордов Хаддана.'],
    ['players', 'Игроки','/ext/rating.php?mode=players&sort=exp', 'Рейтинг игроков по различным параметрам.'],
    ['clans', 'Кланы','/ext/rating.php?mode=clans&sort=aclaners', 'Рейтинг кланов по различным параметрам.'],
    ['guests', 'По приглашениям','/ext/rating.php?mode=guest&sort=money', 'Рейтинг по приглашениям. Чтобы попасть в этот рейтинг, приглашайте в Хаддан новых игроков. Кроме того, что это продвинет Вас в рейтинге, это ещё и хороший способ заработать. Ваша гостевая ссылка, которую Вы можете распространять, находится на странице внутренней информации о Вашем персонаже.'],
    ['prof', 'Профессии','/ext/rating.php?mode=professions', 'Рейтинг игроков по профессиональному опыту.'],
    ['battle', 'Бои','/ext/rating.php?mode=battle&sort=round', 'Рейтинг боёв по различным параметрам.'],
    ['sites', 'Сайты','http://rating.haddan.ru', 'Рейтинг сайтов, посвященных Хаддану. В том числе, клановых сайтов.']
  ]],
  ['law', 'Законы','/ext/law.php',],
  ['agreement', 'Соглашение','/lib/agreement.html'],
  ['clans', 'Кланы','/clan/clans.php'],
  ['legends', 'Легенды','/ext/myth.php', 'Легенды, мифы, а также история Хаддана', [
    ['world', 'История Мира','/ext/myth.php?id=world', 'Легенда образования Хаддана.']
  ]],
  ['manual', 'Об игре','/ext/faq.php',, [
    ['faq', 'F.A.Q.','/ext/faq.php'],
    ['sms', 'SMS-Услуги', '/lib/sms.html'],
    ['haddan', 'Что такое Haddan.ru?','/lib/faq/index.html',,[
      ['interface', 'Интерфейс','/lib/faq/index.html#interface'],
      ['howtoplay', 'Как играть','/lib/faq/index.html#howtoplay'],
      ['rules', 'Правила','/lib/faq/index.html#1.3']
    ]],
    ['pers', 'Регистрация персонажа','/lib/faq/index_2.html',,[
      ['reg1', 'Регистрация - шаг 1','/lib/faq/index_2.html#2.1'],
      ['reg2', 'Регистрация - шаг 2','/lib/faq/index_2.html#2.2'],
      ['reg3', 'Регистрация - шаг 3','/lib/faq/index_2.html#2.3'],
      ['obraz', 'Образ персонажа','/lib/faq/index_2.html#2.4'],
      ['race', 'Расы','/lib/faq/index_2.html#2.5']
    ]],
    ['stats', 'Параметры персонажа','/lib/faq/index_3.html',,[
      ['str', 'Сила','/lib/faq/index_3.html#3.1'],
      ['dex', 'Ловкость','/lib/faq/index_3.html#3.2'],
      ['rag', 'Злость','/lib/faq/index_3.html#3.3'],
      ['inu', 'Интуиция','/lib/faq/index_3.html#3.4'],
      ['int', 'Интеллект','/lib/faq/index_3.html#3.5'],
      ['wis', 'Мудрость','/lib/faq/index_3.html#3.6'],
      ['eng', 'Энергетика','/lib/faq/index_3.html#3.7'],
      ['con', 'Выносливость','/lib/faq/index_3.html#3.8']
    ]],
    ['table', 'Таблица опыта','/lib/faq/index_4.html',,[
      ['table', 'Таблица','/lib/faq/index_4.html#4.1'],
      ['level', 'Максимальный уровень','/lib/faq/index_4.html#4.2']
    ]],
    ['inq', 'Инквизиция','/lib/faq/index_5.html',,[
      ['inq', 'Инквизиторы','/lib/faq/index_5.html#5.1'],
      ['citadel', 'Цитадель инквизиции','/lib/faq/index_5.html#5.2']
    ]],
    ['clans', 'Кланы','/lib/faq/index_6.html',,[
      ['create', 'Образование кланов','/lib/faq/index_6.html#6.1']
    ]],
    ['casino', 'Правила казино',,, [
      ['rul', 'Рулетка','/lib/ruletka.html', 'Правила игры "Рулетка"']
    ]]
  ]]

];

var g_lib_fmtSubCategory = '<p><a href="%REF%" class="lname">%NAME%</a> <br>' +
'<span class="description">%DESCRIPTION%</span></p>';

var g_lib_fmtChapter = '<p><a href="%REF%" class="lname">%NAME%</a><br>'+
  '<span class="description">%DESCRIPTION%</span></p>';

var g_lib_fmtChapters = '<table width=100% height=100% cellspacing=0 cellpadding="22" border=0>'+
'<tr>'+
  '<td width="45%" colspan="2" valign="top" class="description">'+
     '<p><span style="font-size: 16px; text-align: center; margin-top: 10px;">%TITLE%</span></p>'+
     '%CHAPTERS%'+
  '</td>'+
  '<td width="45%" valign="top" class="description">'+
    '<img src="/images/t/razboynika/kisten-razboynika_310x310.jpg" width="155" height="155"> '+
    '<img src="/images/t/adskogo-ognya/kinzal-adskogo-ognya_310x310.jpg" width="155" height="155"></td>'+
'</tr>'+
'</table>';

function lib_listLevel(a, l){
  var _c = eh_enter('lib_listLevel',arguments,'lib');
  var key = g_lib_keys[l];
  var str = '';
  for(var i=0; i<a.length; ++i){
    var r = a[i];
    str += lib_format(a, l, i);
  }
  eh_exit(_c);
  return str;
}

function lib_format(a, l, i){
  var _c = eh_enter('lib_format',arguments,'lib');
  var key = g_lib_keys[l];
  var keycur = a[i][c_lib_key];
  var keyprev = a[i-1] ? a[i-1][c_lib_key] : null;
  var keynext = a[i+1] ? a[i+1][c_lib_key] : null;
  var active = (key == keycur);
  var suba = a[i][c_lib_sub];
  var str = '';

  function replacePtrns(){
    var ref = lib_getItemRef(a[i], g_lib_keys, l, keycur);
    str = str.replace(/%REF%/g, ref).replace(/%I%/g, i+1).replace(/%NAME%/, a[i][c_lib_name]);
  }

  if(l == 0){
    if(!keyprev) str += '<div id="navcontainer"><ul>';
    if(active){
      str += '<li><a id="current" href="%REF%">%NAME%</a></li>';
    }else{
      str += '<li><a href="%REF%">%NAME%</a></li>';    
    }
    replacePtrns();
    if(active && suba){
      str += lib_listLevel(suba, l+1);
    }
    if(!keynext) str += '</ul></div>';
  }else if(l == 1){
    if(!keyprev) str += '<ul>';
    if(active && !suba){
      str += '<li><a id="subcurrent" href="%REF%">%NAME%<span id="activething"></span></a></li>';
    }else if(active){
      str += '<li><a id="subcurrent" href="%REF%">%NAME%:</a></li>';
    }else{
      str += '<li><a href="%REF%">%NAME%</a></li>';
    }
    replacePtrns();
    if(active && suba){
      str += lib_listLevel(suba, l+1);
    }
    if(!keynext) str += '</ul>';
  }else if(l == 2){
    if(!keyprev) str += '<ul>';
    if(active){
      str += '<li><a id="subsubcurrent" href="%REF%">%NAME%<span id="activething"></span></a></li>';
    }else{
      str += '<li><a href="%REF%">%NAME%</a></li>';
    }
    replacePtrns();
    if(!keynext) str += '</ul>';
  }else{
    str += '???<br>';
  }
  eh_exit(_c);
  return str;
}

var g_lib_ref_prefix = '';

function lib_listContents(prefix){
  var _c = eh_enter('lib_listContents',arguments,'lib');
  if(prefix != null)
    g_lib_ref_prefix = prefix;

  g_lib_keys = lib_splitKeys(g_lib_key);

  var str = lib_listLevel(g_lib_contents, 0);
  document.write(str);
  eh_exit(_c);
  return str;
}

function lib_splitKeys(str){
  return str.split('|');
}

function lib_concatKeys(l, keycur){
  return lib_concatKeysEx(g_lib_keys, l, keycur);
}

function lib_concatKeysEx(keys, l, keycur){
  var _c = eh_enter('lib_concatKeysEx',arguments,'lib');
  var a;
  if(typeof(keys) == 'string'){
    a = [keys];
  }else{
    a = keys.slice(0, l);
  }
  if(keycur)
    a.push(keycur);
  eh_exit(_c);
  return a.join('|');
}

//Получает ссылку для пункта r, чей путь первые l элементов от key плюс keycur
function lib_getItemRef(r, key, l, keycur){
  var _c = eh_enter('lib_getItemRef',arguments,'lib');
  var ref = r[c_lib_ref] ? r[c_lib_ref] : '/ext/library.php?id=' + lib_concatKeysEx(key, l, keycur);
  if(!ref.match(/^\w+:\/\//))
    ref = g_lib_ref_prefix + ref;
  eh_exit(_c);
  return ref;
}

function lib_writeBody(){
  var _c = eh_enter('lib_writeBody',arguments,'lib');
  if(g_lib_key.match(/^(wear|rating|legends|(manual\|casino))$/)){ //Категории предметов
    lib_writeChapters();
  }else if(g_lib_key == 'wear|tts'){ //Список комплектов
    document.write(lib_formatSubItems(g_lib_fmtSubCategory, g_lib_data));
  }else if(g_lib_key.match(/^wear\Wtts\W\d+$/)){ //Содержимое комплекта
    lib_writeThings();
  }else if(g_lib_key.match(/^wear\W(res|drink)$/)){ //Напитки-ресурсы
    lib_writeThings();
  }else if(g_lib_key.match(/^wear\W\w+$/)){ //Список подкатегорий одной из категорий предметов
    lib_writeSubCategories();
  }else if(g_lib_key.match(/^wear\W(res|drink)\W\d+$/)){ //Напиток или ресурс
    lib_writeThing();
  }else if(g_lib_key.match(/^wear\Wspell\W\w+$/)){ //Заклинания
    lib_writeSpells();
  }else if(g_lib_key.match(/^wear\Wspell\W\w+\W\d+$/)){ //Заклинание
    lib_writeSpell();
  }else if(g_lib_key.match(/^wear\W\w+\W\w+$/)){ //Предметы
    lib_writeThings();
  }else if(g_lib_key.match(/^wear\W\w+\W\w+\W\d+$/)){ //Предмет
    lib_writeThing();
  }else{
    document.write('Ожидается... <!--(' + g_lib_key.replace(/[<>]+/g, '?') + ')-->');
  }
  eh_exit(_c);
}

function lib_setSubItemsToData(key){
  var _c = eh_enter('lib_setSubItemsToData',arguments,'lib');
  var r = lib_findItem(key);
  if(r) r[c_lib_sub] = g_lib_data;
  eh_exit(_c);
}

//Находит пункт по его пути
function lib_findItem(key){
  var _c = eh_enter('lib_findItem',arguments,'lib');
  if(typeof(key)=='string'){
    key = lib_splitKeys(key);
  }
  var items = g_lib_contents;
  var r=null;
  var i=0;
  exit:
  for(; i<key.length; ++i){
    var k = key[i];
    for(var j=0; j<items.length; ++j){
      var it = items[j];
      if(it[c_lib_key] == k){
        if(i == key.length-1){
          r = it; i=key.length;
          break exit;
        }else if(!it[c_lib_sub]){
          i=key.length;
          break exit;
        }else{
          items = it[c_lib_sub];
          break;
        }
      }
    }
  }
  eh_exit(_c);
  return r;
}

function lib_findSubItems(key){
  var _c = eh_enter('lib_findSubItems',arguments,'lib');
  var r = lib_findItem(key);
  if(r) r = r[c_lib_sub];
  eh_exit(_c);
  return r;
}

function lib_formatSubItems(fmt, a){
  var _c = eh_enter('lib_formatSubItems',arguments,'lib');
  var str = '';
  for(var i=0; i<a.length && a; ++i){
    var r=a[i];
    str += fmt.replace(/%REF%/g, lib_getItemRef(r, g_lib_key, null, r[c_lib_key]))
      .replace(/%NAME%/g, r[c_lib_name]).replace(/%DESCRIPTION%/g, r[c_lib_comment]);
  }
  eh_exit(_c);
  return str;
}

function lib_writeSubCategories(){
  var _c = eh_enter('lib_writeSubCategories',arguments,'lib');
  var a = lib_findSubItems(g_lib_keys);
  document.write('<div class="description" style="padding-left:20px;padding-right:20px;padding-top:5px">');
  if(!a){
    document.write('<пусто>');
  }else{
    document.write(lib_formatSubItems(g_lib_fmtSubCategory, a));
  }
  document.write('</div>');
  eh_exit(_c);
}

function lib_writeChapters(){
  var _c = eh_enter('lib_writeChapters',arguments,'lib');
  var title = lib_findItem(g_lib_keys);
  var a = title[c_lib_sub];
  var str = g_lib_fmtChapters.replace(/%TITLE%/g, title[c_lib_name])
    .replace(/%CHAPTERS%/g, lib_formatSubItems(g_lib_fmtChapter, a));
  document.write(str);
  eh_exit(_c);
}

var g_lib_fmtLiteThings = 
'<div style="padding-top:5px">'+
'<p><span class="lname">%TITLE%</span></p><p>%DESCRIPTION%</p>%THINGS%</div>';

function lib_writeThings(){
  var _c = eh_enter('lib_writeThings',arguments,'lib');
  var prev = lib_findItem(g_lib_keys);
  var ts='';
  for(var i=0; i<g_lib_data.length; ++i){
    var t = g_lib_data[i];
    if(!t) continue;
    ts += t.format(img_replaceTags(g_lib_fmtThingCardWithDescription)) + '&nbsp; &nbsp;';
  }
  var tit = window.g_lib_title || prev[c_lib_name];
  var descr = window.g_lib_description || (prev && prev[c_lib_comment]) || '';
  document.write(g_lib_fmtLiteThings.replace(/%TITLE%/g, tit).replace(/%DESCRIPTION%/g, descr)
    .replace(/%THINGS%/g, ts));
  eh_exit(_c);
}

var g_lib_fmtThing = 
'<table width="100%" border="0" cellpadding="0" cellspacing="0">\n'+
  '<tr>\n'+
    '<td colspan="5" style="padding-bottom: 10px;" class="description">\n'+
      '<img align="left" hspace="10" vspace="10" src="/images/t/%IMAGEBIG%" alt="%NAME%" height="%BIGHEIGHT%" width="%BIGWIDTH%">\n'+
      '<h3>%NAME%</h3>\n'+
      '<img align="left" hspace="10" vspace="10" (/images/t/%IMAGE%,%WIDTH%,%HEIGHT%,"%NAME%")>\n'+
      '&nbsp; &mdash; %DESCRIPTION% %SPELLS%</td>\n'+
  '</tr>\n'+
  '<tr>\n'+
    '<td width="21" valign="top" nowrap="nowrap"><img src="/images/frameset/TLcorner.gif" width="21" height="21"></td>\n'+
    '<td colspan="3" valign="top" style="background: url(/images/frameset/horizontal.gif) top repeat-x; width:100%"></td>\n'+
    '<td valign="top"><img src="/images/frameset/TRcorner.gif" width="21" height="21"></td>\n'+
  '</tr>\n'+
  '<tr>\n'+
    '<td valign="top" nowrap="nowrap" style="background: url(/images/frameset/vertical.gif) left repeat-y"></td>\n'+
    '<td width="33%" valign="top" style="line-height: 14px"><span class="parC">Требования:</span><br>%REQ%</td>\n'+
    '<td width="33%" valign="top" style="line-height: 14px"><span class="parC">Свойства:</span><br>%PROP%</td>\n'+
    '<td width="33%" valign="top" style="line-height: 14px">\n'+
        '<span class="parC">Вес: </span><span class="bV">%WEIGHT%</span><br>\n'+
        '<span class="parC">Цена: </span><span class="bV">%PRICE%</span><br>\n'+
        '<span class="parC">Создатель: </span><span class="bV">%DESIGNER%</span><br>\n'+
        '<span class="parC">Время создания: </span><span class="bV">%DESIGNEDAT%</span><br>\n'+
	'<span class="parC">Место создания: </span><span class="bV">%DESIGNEDIN%</span>\n'+
    '</td>\n'+
    '<td width="21" height="100%" valign="top" style="background: url(/images/frameset/vertical.gif) right repeat-y">&nbsp;</td>\n'+
  '</tr>\n'+
  '<tr>\n'+
    '<td nowrap="nowrap" valign="top"><img src="/images/frameset/corner.gif" width="21" height="21"></td>\n'+
    '<td colspan="3" valign="top" style="background: url(/images/frameset/horizontal.gif) bottom repeat-x"></td>\n'+
    '<td valign="top"><img src="/images/frameset/BRcorner.gif" width="21" height="21"></td>\n'+
  '</tr>\n'+
'</table>\n';

var g_lib_fmtThingCardWithDescription = 
'<table width="180" border="0" cellspacing="0" cellpadding="7" style="margin-top:10px;display:inline; border-bottom: 1px solid brown">' +
'<tr>'+
  '<td class="description"><a href="/thing.php?type=%THINGTYPEID%"><img align="left" hspace="10" vspace="10" (/images/t/%IMAGE%,%WIDTH%,%HEIGHT%,"%NAME%")></a>'+
    '<a href="/thing.php?type=%THINGTYPEID%" class="lname">%NAME%</a><br>&ndash;&nbsp;%DESCRIPTION_64%<nobr>... <a href="%REF%" class="smalllink">>>></a></nobr>'+
  '</td>'+
'</tr>'+
'</table>';

function lib_writeThing(){
  var _c = eh_enter('lib_writeThing',arguments,'lib');
  var ts = '';
  var activething = document.getElementById('activething');
  for(var i=0; i<g_lib_data.length; ++i){
    var t = g_lib_data[i];
    if(!t) continue;
    var str = t.format(g_lib_fmtThing);
    var spells = '';
    for(var i=0; t.spells && i < t.spells.length; ++i){
      var spinfo = t.spells[i];
      var s = Spell.ensureSpell(spinfo.s);
      var fmt = '<nobr><a href="/spell.php?id=%ID%"><img align="absmiddle"(/images/s/%IMAGE%,%WIDTH%,%HEIGHT%,"%NAME%")></a> <a href="/spell.php?id=%ID%">%NAME%</a> %DURC%/%DUR%</nobr>';
      if(spells) spells += ', ';
      spells += s.format(fmt).replace(/%DUR%/g, spinfo.dur).replace(/%DURC%/g, spinfo.dur);
    }
    if(spells)
      spells = '<p>Встроенные заклинания:<br>' + spells;

    var o = img_getDim(t.imagebig, 310, 310);
    str = str.replace(/%REF\-(\d+)%/g, '/inner/ref.php?id=$1')
      .replace(/%BIGWIDTH%/g, o.width)
      .replace(/%BIGHEIGHT%/g, o.height)
      .replace(/%SPELLS%/g, spells);
    str = img_replaceTags(str);
    ts += str;
    if(activething)
      activething.innerHTML = t.format(': %NAME%');
  }
  document.write(ts);
  eh_exit(_c);
}

var g_lib_fmtSpellCardWithDescription = 
'<table width="180" border="0" cellspacing="0" cellpadding="7" style="margin-top:10px;display:inline; border-bottom: 1px solid brown">' +
'<tr>'+
  '<td class="description"><a href="/spell.php?id=%ID%"><img align="left" hspace="10" vspace="10" (/images/s/%IMAGE%,%WIDTH%,%HEIGHT%,"%NAME%")></a>'+
    '<a href="/spell.php?id=%ID%" class="lname">%NAME%</a><br>&ndash;&nbsp;%DESCRIPTION_64%<nobr>... <a href="%REF%" class="smalllink">>>></a></nobr>'+
  '</td>'+
'</tr>'+
'</table>';

var g_lib_fmtSpell = 
'<table width="100%" border="0" cellpadding="0" cellspacing="0">\n'+
  '<tr>\n'+
    '<td colspan="5" style="padding-bottom: 10px;" class="description">\n'+
      '<img align="left" hspace="10" vspace="10" src="/images/s/%IMAGEBIG%" alt="%NAME%" height="%BIGHEIGHT%" width="%BIGWIDTH%">\n'+
      '<h3>%NAME%</h3>\n'+
      '<img align="left" hspace="10" vspace="10" (/images/s/%IMAGE%,%WIDTH%,%HEIGHT%,"%NAME%")>\n'+
      '&nbsp; &mdash; %DESCRIPTION%</td>\n'+
  '</tr>\n'+
  '<tr>\n'+
    '<td width="21" valign="top" nowrap="nowrap"><img src="/images/frameset/TLcorner.gif" width="21" height="21"></td>\n'+
    '<td colspan="3" valign="top" style="background: url(/images/frameset/horizontal.gif) top repeat-x; width:100%"></td>\n'+
    '<td valign="top"><img src="/images/frameset/TRcorner.gif" width="21" height="21"></td>\n'+
  '</tr>\n'+
  '<tr>\n'+
    '<td valign="top" nowrap="nowrap" style="background: url(/images/frameset/vertical.gif) left repeat-y"></td>\n'+
    '<td width="33%" valign="top" style="line-height: 14px"><span class="parC">Требования:</span><br>%REQ%</td>\n'+
    '<td width="33%" valign="top" style="line-height: 14px"><span class="parC">Свойства:</span><br>%PROP%</td>\n'+
    '<td width="33%" valign="top" style="line-height: 14px">\n'+
        '<span class="parC">Школа: </span><span class="bV">%SCHOOL%</span><br>\n'+
        '<span class="parC">Класс: </span><span class="bV">%CLASS%</span><br>\n'+
        '<span class="parC">Круг: </span><span class="bV">%LEVEL%</span><br>\n'+
        '<span class="parC">Расход маны: </span><span class="bV">%MANA%</span><br>\n'+
	'<span class="parC">Применимость: </span><span class="bV">%SPELLBATTLETYPE%</span>\n'+
    '</td>\n'+
    '<td width="21" height="100%" valign="top" style="background: url(/images/frameset/vertical.gif) right repeat-y">&nbsp;</td>\n'+
  '</tr>\n'+
  '<tr>\n'+
    '<td nowrap="nowrap" valign="top"><img src="/images/frameset/corner.gif" width="21" height="21"></td>\n'+
    '<td colspan="3" valign="top" style="background: url(/images/frameset/horizontal.gif) bottom repeat-x"></td>\n'+
    '<td valign="top"><img src="/images/frameset/BRcorner.gif" width="21" height="21"></td>\n'+
  '</tr>\n'+
'</table>\n';

function lib_writeSpells(){
  var _c = eh_enter('lib_writeSpells',arguments,'lib');
  var title = lib_findItem(g_lib_keys);
  var ss='';
  for(var i=0; i<g_lib_data.length; ++i){
    var s = g_lib_data[i];
    if(!s) continue;
    ss += s.format(img_replaceTags(g_lib_fmtSpellCardWithDescription)) + '&nbsp; &nbsp;';
  }
  document.write(g_lib_fmtLiteThings.replace(/%TITLE%/g, title[c_lib_name]).replace(/%DESCRIPTION%/g, title[c_lib_comment])
    .replace(/%THINGS%/g, ss));
  eh_exit(_c);
}

function lib_writeSpell(){
  var _c = eh_enter('lib_writeSpell',arguments,'lib');
  var ts = '';
  var activething = document.getElementById('activething');
  for(var i=0; i<g_lib_data.length; ++i){
    var t = g_lib_data[i];
    if(!t) continue;
    var str = img_replaceTags(g_lib_fmtSpell);
    str = t.format(str);
    var o = img_getDim(t.imagebig || '', 310, 310);
    str = str.replace(/%REF\-(\d+)%/g, '/inner/ref.php?id=$1')
      .replace(/%BIGWIDTH%/g, o.width)
      .replace(/%BIGHEIGHT%/g, o.height)
    ts += t.format(str);
    if(activething)
      activething.innerHTML = t.format(': %NAME%');
  }
  document.write(ts);
  eh_exit(_c);
}

ehgx();


