/**
 * @copyright 2007 "Rambler Internet Holding"
 * @author Alexey Golubchik
 */
/**
 * Отправляет_запрос_на_добавление_ссылки_в_избранное.<br>
 * Или_обрабатывает_ответ_сервера.
 * @param {object} i - при добавлении в избраное хранит объект ссылки на которую нажали
 */
function addFavorite(i) {
  if (1) {
    alert('Для добавления в избранное, пожалуйста, авторизуйтесь.');
    return false;
  }
  var a, k, r, n, t = this, h, p = {
'add': {'src':'/i/bank/favorites_add.gif', 'alt': 'Добавить в Избранное', 'title': 'Добавить в Избранное', 'width': 22, 'height': 19},
'fav': {'src':'/i/bank/favorites.gif', 'alt': 'Избранное', 'title': 'Избранное', 'width': 20, 'height': 20}
  };
  if (typeof t.nodeName != 'undefined' && t.nodeName == 'SCRIPT') {
    i = window.event || i;
    if (!t.parentNode || i.type == 'readystatechange' && !/loaded|complete/.test(t.readyState) ) return;
    //Обрабатываем ответ сервера.
    h = t._this.href;
    n = document.getElementsByTagName('A');
    for (k = n.length; k--;) {
      //находим все ссылки на такой-же адрес и заменяем.
      if (n[k].href != h) continue;
      //удаляем в ссылке параметр do=add.
      n[k].href = n[k].href.replace(/(\?.*)(?:do=add&?)/,'$1');
      //помечаем ссылку как добавленную в избранное
      n[k]._hasAdd = 1;
      
      a = n[k].getElementsByTagName('IMG');
      for (i = a.length; i--;) {
        r = a[i].src.lastIndexOf(p.add.src);
        if (r == -1 || ((a[i].src.length - r) != p.add.src.length)) continue;
        //заменяем атрибуты изображения ссылки на иконку уже добавленной.
        for (r in p.fav) {
          a[i][r] = p.fav[r]
        }
        break
      }
      r = n[k].innerHTML;
      //Заменяем текст ссылки.
      n[k].innerHTML = r.replace('Добавить в избранное', 'Избранное');
    }
    //удаляем тег со скриптом возвращенным ответом с сервера.
    t.parentNode.removeChild(t);
  } else if (typeof i._hasAdd != 'undefined'){
    //нажата, уже добавленная в избранное, ссылка.
    return true
  } else {
    //Отправляем запрос серверу.
    //создаем элемент script, отправляющий на сервер запрос на добавление в избранное.
    t = document.createElement('DIV');
    t.style.display = 'none';
    document.body.appendChild(t);
    t.innerHTML = 't<s'+'cript type="text/javascript" language="JavaScript"></' + 'script>';
    n = t.removeChild(t.lastChild);
    document.body.replaceChild(n, t);
    //получаем id из параметров нажатой ссылки.
    t = '/my/add_favorites_js.html?id=' + i.href.split('?')[1].split('id=')[1].split('&')[0];
    n._this = i;
    n.onreadystatechange = n.onload = addFavorite;
    if (n.setAttribute) n.setAttribute('src', t); else n.src = t;
    return false
  }
}
