var np='';
var rid=0;
var ltabname='';

function GetPagesInfo()
{
  if (req.readyState == 4)
  {
    if (req.status == 200)
    {
      var nt = req.responseText;
      if (nt.length>0)  //в ответе должен прийти текст и инфа для обновления ника в блоке приветствия
      {
        //заменяем ник вверху таблицы
        if (document.getElementById(ltabname))
          document.getElementById(ltabname).innerHTML=nt;
      }
      else
        alert("Не могу получить инфу.\r\nКод ошибки - "+req.status+
        ".\r\nСбой какой-то. Программера - расстрелять. Страницу - обновить.");
    }
    else
      alert("Не могу отправить команду.\r\nКод ошибки - "+req.status+
          ".\r\nСбой какой-то. Программера - расстрелять. Страницу - обновить.");
    loading = 0;
  }
}

function ShowPages(login,script,actname,tabname)
{
  if (loading == 1)
  {
    alert('Не торописько, уже чего-то там ждём с сервера.');
    return;
  }
  ltabname=tabname;
  var q=document.getElementById(tabname);
  q.innerHTML=
      '<table style="border: 1px solid black;" BGCOLOR=#7E88E8><tr><td><center>Загрузка...<br><img src="http://'+
      sitename+'/pictures/loading.gif"></center></td></tr></table>';
  var url='http://'+sitename+'/modules/'+script+'.php?aj=1&'+actname+'='+login;
  if (window.XMLHttpRequest)
  {
    req = new XMLHttpRequest();
    req.onreadystatechange = GetPagesInfo;
    req.open("POST", url, true);
    req.send(null);
  }
  else if (window.ActiveXObject)
  {
    req = new ActiveXObject("Microsoft.XMLHTTP");
    if (req)
    {
      req.onreadystatechange = GetPagesInfo;
      req.open("POST", url, true);
      req.send();
    }
  }
  loading = 1;
}

function GetUserInfo()
{
  if (req.readyState == 4)
  {
    document.getElementById('ul').innerHTML='';
    if (req.status == 200)
    {
      var nt = req.responseText;
      if (nt.length>0)  //в ответе должен прийти текст и инфа для обновления ника в блоке приветствия
      {
        //сначала отрезаем сообщение
        charpos=nt.indexOf('<>',1);
        if (charpos != -1)
        {
          curusertext=nt.substring(charpos+2);
          //ищем следующее сочетание БЮ
          charpos=curusertext.indexOf('<>',1);
          if (charpos != -1)
            cutext=curusertext.substring(0,charpos);
          else
            cutext=curusertext;
          //заменяем ник вверху таблицы
          if (document.getElementById('uinfo'))
            document.getElementById('uinfo').innerHTML=cutext;
        }
      }
      else
        alert("Не могу получить обновлённую информацию.\r\nКод ошибки - "+req.status+
        ".\r\nСбой какой-то. Программера - расстрелять. Страницу - обновить.");
    }
    else
      alert("Не могу отправить команду на обновление.\r\nКод ошибки - "+req.status+
          ".\r\nСбой какой-то. Программера - расстрелять. Страницу - обновить.");
    loading = 0;
  }
}

function autoinfo(uid)
{
  if (loading == 1)
  {
    alert('Не торописько, уже чего-то там ждём с сервера.');
    return;
  }
  var q=document.getElementById('ul');
  q.innerHTML=
      '<table style="border: 1px solid black;" BGCOLOR=#7E88E8><tr><td><center>Обновление...<br><img src="http://'+
      sitename+'/pictures/loading.gif"></center></td></tr></table>';
  var url='http://'+sitename+'/modules/usersactions.php?upd=1&usid='+uid;
  if (window.XMLHttpRequest)
  {
    req = new XMLHttpRequest();
    req.onreadystatechange = GetUserInfo;
    req.open("POST", url, true);
    req.send(null);
  }
  else if (window.ActiveXObject)
  {
    req = new ActiveXObject("Microsoft.XMLHTTP");
    if (req)
    {
      req.onreadystatechange = GetUserInfo;
      req.open("POST", url, true);
      req.send();
    }
  }
  loading = 1;
//  alert(uid);
}

function ChangeCount(rune,cn,e)
{
  if (loading == 1)
  {
    alert('Не торописько, уже чего-то там ждём с сервера.');
    return false;
  }
  oCanvas = document.getElementsByTagName(
  (document.compatMode && document.compatMode == "CSS1Compat") ? "HTML" : "BODY"
  )[0];
  x = e ? e.clientX+document.body.scrollLeft : event.x+document.body.scrollLeft;
  y = e ? e.clientY+document.body.scrollTop : event.y+document.body.scrollTop;
  y = y-60;
  InitForEdit(cn);
  document.getElementById('rune').value=rune;
  document.getElementById('edithint').style.left=x;
  document.getElementById('edithint').style.top=y;
  w_width = oCanvas.clientWidth ? oCanvas.clientWidth + oCanvas.scrollLeft : window.innerWidth + window.pageXOffset;
  w_height = window.innerHeight ? window.innerHeight + window.pageYOffset : oCanvas.clientHeight + oCanvas.scrollTop; // should be vice verca since Opera 7 is crazy!
  t_width = document.getElementById('edithint').offsetWidth;
  t_height = document.getElementById('edithint').offsetHeight;
  if (x + t_width > w_width)
    document.getElementById('edithint').style.left = w_width - t_width + "px";
  if (y + t_height > w_height)
    document.getElementById('edithint').style.top = w_height - t_height + "px";
  document.getElementById('edithint').style.visibility="visible";
  return false;
}

function decrease()
{
  var cc = document.getElementById('coment').value;
  if (cc>0)
  {
    CloseEditField();
    document.getElementById('coment').value=cc-1;
    askrequest();
  }
  else
    alert('ОМГ!!! Куда вычитаешь из нуля?');
}

function increase()
{
  CloseEditField();
  var cc = 0;
  cc = document.getElementById('coment').value;
  document.getElementById('coment').value=++cc;
  askrequest();
}

function InitForEdit(ncn)
{
  var eh = document.getElementById('edithint');
  eh.innerHTML='<form name="sendform" action="http://'+sitename+
    '/modules/runesactions.php">'+
    '<input type=hidden name="user" id="user" value="-2">'+
    '<input type=hidden name="rune" id="rune">'+
    '<table width=200 CELLSPACING=1 BORDER=1 BORDERCOLOR=#000000 BGCOLOR="FFFFFF">'+
    '  <tr>'+
    '    <td BGCOLOR=#7E88E8 width=100% valign=middle><a href="javascript:CloseEditField()">'+
    '      <img src=pictures/close.gif border=0 height=16 align=right alt=Закрыть></a>'+
    '      Изменение количества.</td>'+
    '  </tr>'+
    '  <tr BGCOLOR="#E3E3E2"><td><center>Введите новое количество для этой руны.<br>'+
    '    <a href="javascript:decrease()"><img src=pictures/minus.gif border=0 align=center alt="Убрать идиничге"></a>'+
    '    <input type=text id="coment" name="coment" class="inp" style="width:65px" value="'+ncn+'">'+
    '    <a href="javascript:increase()"><img src=pictures/plus.gif border=0 align=center alt="Плюсадин"></a>'+
    '    <br><input type=button value="Готово" class="inp" OnClick="javascript:askrequest(); return false;"></center>'+
    '    </td>'+
    '  </tr>'+
    '</table>'+
    '</form>';
}

function InitForPtice()
{
  var eh = document.getElementById('edithint');
  eh.innerHTML='<form name="sendform" action="http://'+sitename+
    '/modules/runesactions.php">'+
    '<input type=hidden name="user" id="user" value="-1">'+
    '<input type=hidden name="rune" id="rune">'+
    '<table width=200 CELLSPACING=1 BORDER=1 BORDERCOLOR=#000000 BGCOLOR="FFFFFF">'+
    '  <tr>'+
    '    <td BGCOLOR=#7E88E8 width=100% valign=middle><a href="javascript:CloseEditField()">'+
    '      <img src=pictures/close.gif border=0 height=16 align=right alt=Закрыть></a>'+
    '      Во сколько вы её оцениваете?</td>'+
    '  </tr>'+
    '  <tr BGCOLOR="#E3E3E2"><td>Ценник не обязательно должен быть выражен цифрой.<br><center>'+
    '    <input type="text" name="coment" size=20>'+
    '    <br><input type=button value="Готово" class="inp" OnClick="javascript:askrequest(); return false;"></center>'+
    '    </td>'+
    '  </tr>'+
    '</table>'+
    '</form>';
}

function MakePrice(rune,e)
{
  if (loading == 1)
  {
    alert('Не торописько, уже чего-то там ждём с сервера.');
    return false;
  }
  oCanvas = document.getElementsByTagName(
  (document.compatMode && document.compatMode == "CSS1Compat") ? "HTML" : "BODY"
  )[0];
  x = e ? e.clientX+document.body.scrollLeft : event.x+document.body.scrollLeft;
  y = e ? e.clientY+document.body.scrollTop : event.y+document.body.scrollTop;
  y = y-60;
  InitForPtice();
  document.getElementById('rune').value=rune;
  document.getElementById('edithint').style.left=x;
  document.getElementById('edithint').style.top=y;
  w_width = oCanvas.clientWidth ? oCanvas.clientWidth + oCanvas.scrollLeft : window.innerWidth + window.pageXOffset;
  w_height = window.innerHeight ? window.innerHeight + window.pageYOffset : oCanvas.clientHeight + oCanvas.scrollTop; // should be vice verca since Opera 7 is crazy!
  t_width = document.getElementById('edithint').offsetWidth;
  t_height = document.getElementById('edithint').offsetHeight;
  if (x + t_width > w_width)
    document.getElementById('edithint').style.left = w_width - t_width + "px";
  if (y + t_height > w_height)
    document.getElementById('edithint').style.top = w_height - t_height + "px";
  document.getElementById('edithint').style.visibility="visible";
  return false;
}

function AskRune(user,rune,e)
{
  if (loading == 1)
  {
    alert('Не торописько, уже чего-то там ждём с сервера.');
    return false;
  }
  oCanvas = document.getElementsByTagName(
  (document.compatMode && document.compatMode == "CSS1Compat") ? "HTML" : "BODY"
  )[0];
  x = e ? e.clientX+document.body.scrollLeft : event.x+document.body.scrollLeft;
  y = e ? e.clientY+document.body.scrollTop : event.y+document.body.scrollTop;
  y = y-60;
  document.getElementById('user').value=user;
  document.getElementById('rune').value=rune;
  document.getElementById('edithint').style.left=x;
  document.getElementById('edithint').style.top=y;
  w_width = oCanvas.clientWidth ? oCanvas.clientWidth + oCanvas.scrollLeft : window.innerWidth + window.pageXOffset;
  w_height = window.innerHeight ? window.innerHeight + window.pageYOffset : oCanvas.clientHeight + oCanvas.scrollTop; // should be vice verca since Opera 7 is crazy!
  t_width = document.getElementById('edithint').offsetWidth;
  t_height = document.getElementById('edithint').offsetHeight;
  if (x + t_width > w_width)
    document.getElementById('edithint').style.left = w_width - t_width + "px";
  if (y + t_height > w_height)
    document.getElementById('edithint').style.top = w_height - t_height + "px";
  document.getElementById('edithint').style.visibility="visible";
  return false;
}

function InitEditHint()
{
  var eh = document.getElementById('edithint');
  eh.innerHTML='<form name="sendform" action="http://'+sitename+
    '/modules/runesactions.php">'+
    '<input type=hidden name="user" id="user">'+
    '<input type=hidden name="rune" id="rune">'+
    '<table width=200 CELLSPACING=1 BORDER=1 BORDERCOLOR=#000000 BGCOLOR="FFFFFF">'+
    '  <tr>'+
    '    <td BGCOLOR=#7E88E8 width=100% valign=middle><a href="javascript:CloseEditField()">'+
    '      <img src=pictures/close.gif border=0 height=16 align=right alt=Закрыть></a>'+
    '      Вам нужна эта руна?</td>'+
    '  </tr>'+
    '  <tr BGCOLOR="#E3E3E2"><td>Вы можете сопроводить просьбу текстом (не более 255 симолов)<br><center>'+
    '    <textarea id="coment" name="coment"></textarea>'+
    '    <br><input type=button value="Готово" class="inp" OnClick="javascript:askrequest(); return false;"></center>'+
    '    </td>'+
    '  </tr>'+
    '</table>'+
    '</form>';
}

function GetPriceInfo()
{
  if (req.readyState == 4)
  {
    document.getElementById('edithint').style.visibility="hidden";
    if (req.status == 200)
    {
      var nt = req.responseText;
      if (nt.length>0)
      {
        //ищем указанный спан и меняем его содержимое
        var li = document.getElementById(lastId);
        if (li)
        {
          var iscount=lastId.indexOf('r_',1);
          //изменение или цена
          if (iscount!=-1)
            np=', цена - '+np;
          else
            np=np+' <a href="" OnClick="ChangeCount('+rid+','+np+',event); return false;"><img src=http://'+sitename+
                  '/pictures/edit.gif alt="Изменить/Удалить" title="Изменить/Удалить"></a>';
          //текст должен быть 'ok', иначе - ашибге
          if (nt=='ok')
            li.innerHTML=np;
          else
            alert('Нипанятнае ашибге. Сбой какой-то. Программера - расстрелять. Страницу - обновить.');
          np='';
        }
        else
          alert('Нефаунд итем '+lastId);
        lastId='';
      }
      else
        alert("Не могу получить ответ на просьбу.\r\nКод ошибки - "+req.status+
        ".\r\nСбой какой-то. Программера - расстрелять. Страницу - обновить.");
    }
    else
      alert("Не могу отправить просьбу.\r\nКод ошибки - "+req.status+
          ".\r\nСбой какой-то. Программера - расстрелять. Страницу - обновить.");
    loading = 0;
  }
}

function GetInfo()
{
  if (req.readyState == 4)
  {
    document.getElementById('edithint').style.visibility="hidden";
    if (req.status == 200)
    {
      var nt = req.responseText;
      if (nt.length>0)  //в ответе должен прийти текст для сообщения и новая форма curuser
      {
        //сначала отрезаем сообщение
        charpos=nt.indexOf('<table',1);
        if (charpos != -1)
        {
          ShortInj=nt.substring(0,charpos);
          curusertext=nt.substring(charpos);
          if (document.getElementById('userblock'))
            document.getElementById('userblock').innerHTML=curusertext;
        }
        else
          ShortInj=nt;
        alert(ShortInj);
      }
      else
        alert("Не могу получить ответ на просьбу.\r\nКод ошибки - "+req.status+
        ".\r\nСбой какой-то. Программера - расстрелять. Страницу - обновить.");
    }
    else
      alert("Не могу отправить просьбу.\r\nКод ошибки - "+req.status+
          ".\r\nСбой какой-то. Программера - расстрелять. Страницу - обновить.");
    InitEditHint();
    loading = 0;
  }
}

function askrequest()
{
  if (loading == 1)
  {
    alert('Не торописько, уже чего-то там ждём с сервера.');
    return;
  }
  var dv;
  dv=document.getElementById('edithint');
  if (document.getElementById('user'))
    uid=document.getElementById('user').value;
  else
  {
    alert('Сбой какой-то. Программера - расстрелять. Страницу - обновить.');
    return;
  }
  if (document.getElementById('rune'))
    rid=document.getElementById('rune').value;
  else
  {
    alert('Сбой какой-то. Программера - расстрелять. Страницу - обновить.');
    return;
  }
  if (document.getElementById('coment'))
    coment=document.getElementById('coment').value;
  else
  {
    alert('Сбой какой-то. Программера - расстрелять. Страницу - обновить.');
    return;
  }
  if (coment.indexOf('&')>-1)
    alert('Вы какие-то нелепости изобразили. Символ "&" ни в коем разе низзя употреблять.');
  else
  {
    if (uid==-2)
    {
      //можно пустить только цифру
      var nl = coment.length;
      for(var i=0; i<nl; i++)
      {
        ac = coment.substring(i,i+1);
        if (ac<"0" || ac>"9")
        {
          alert('Брет какой-то. Не похоже на количество.');
          return;
        }
      }
    }
    np=coment;
    dv.innerHTML = '';
    dv.innerHTML='<table style="border: 1px solid black;" BGCOLOR=#7E88E8><tr><td><center>Загрузка...<br><img src="http://'+
        sitename+'/pictures/loading.gif"></center></td></tr></table>';
    dv.style.visibility="visible";
    var url='http://'+sitename+'/modules/runesactions.php?usid='+uid+'&rid='+rid+'&coment='+coment;
    if (uid==-2)
      lastId='c_'+rid;
    else
      lastId='r_'+rid;
    if (window.XMLHttpRequest)
    {
      req = new XMLHttpRequest();
      if (uid>-1)
        req.onreadystatechange = GetInfo;
      else
        req.onreadystatechange = GetPriceInfo;
      req.open("POST", url, true);
      req.send(null);
    }
    else if (window.ActiveXObject)
    {
      req = new ActiveXObject("Microsoft.XMLHTTP");
      if (req)
      {
        if (uid>-1)
          req.onreadystatechange = GetInfo;
        else
          req.onreadystatechange = GetPriceInfo;
        req.open("POST", url, true);
        req.send();
      }
    }
    loading = 1;
  }
  return loading;
}

