var poll_choices_ar = [];

function show_choice_ending(id)
{
  var e = _ge('bf_reason['+id+']');
  var e2 = _ge('bf_re['+id+']');

  if (e && e2)
  {
    if (e.style.display != '')
    {
      e.style.display = '';
      e2.style.display = 'none';
    }
    else
    {
      e.style.display = 'none';
      e2.style.display = '';
    }
  }
}

function submit_poll(poll_id, prefix, choices_count, max_choices_count, check_only)
{
  if (typeof max_choices_count == 'undefined')
    var max_choices_count = 0;

  if (typeof check_only == 'undefined')
    var check_only = false;

  if (!poll_choices_ar || !poll_choices_ar[poll_id]) return false;

  var f = document.forms['poll_'+prefix+poll_id];
  if (!f) return false;

  var answers_ar = [];

  for (var i = 0; i < poll_choices_ar[poll_id].length; i++)
  {
    var e = _ge(prefix+'poll_choice_'+poll_choices_ar[poll_id][i])
    if (e && e.checked)
    {
      answers_ar.push(poll_choices_ar[poll_id][i]);
    }
  }

  if (check_only)
  {
    if (max_choices_count && answers_ar.length > max_choices_count)
    {
      alert('Вы можете выбрать не более '+max_choices_count+' ответ(ов)!');

      return false;
    }

    return true;
  }
  else
  {
    if (!answers_ar.length)
    {
      alert('Выберите вариант(ы) ответа, чтобы проголосовать!');
    }
    else if (max_choices_count && answers_ar.length > max_choices_count)
    {
      alert('Вы можете выбрать не более '+max_choices_count+' ответ(ов)!');
    }
    else
    {
      var show_next_poll = f.show_next_poll;
      show_next_poll = show_next_poll ? show_next_poll.value : 0;

      var xml_url = '/xml/submit_poll.php';
      var __query_str = 'poll_id='+poll_id+'&answers='+answers_ar.join('*')+'&prefix='+escape(prefix)+'&show_next_poll='+show_next_poll;
      diXMLRequest.post(xml_url, __query_str, submit_poll_response);
    }

    return false;
  }
}

function submit_poll_response(xmlDoc)
{
  try { var rs = xmlDoc.documentElement.getElementsByTagName('result'); } catch(e) {}
  if (!rs) return;

  for (var i = 0; i < rs.length; i++)
  {
    var ok = rs[i].getAttribute('ok');
    var table = rs[i].getAttribute('table');
    var id = parseInt(rs[i].getAttribute('id'));
    var prefix = rs[i].getAttribute('prefix');

    if (ok)
    {
      var html = get_xml_text(rs[i]);

      var e = _ge('poll_container_'+prefix+id);
      if (e)
      {
        e.innerHTML = html;

        var js = html.replace(/[\r\n]+/g, '');

        var r = /<script[^>]*>(.+)<\/script>/mi;
        var ar = r.exec(js);

        if (ar && ar[1])
          eval(ar[1]);
      }
    }
  }
}

function show_poll_results(poll_id, prefix)
{
  var xml_url = '/xml/submit_poll.php';
  var __query_str = 'poll_id='+poll_id+'&mode=force_results&prefix='+escape(prefix);
  diXMLRequest.post(xml_url, __query_str, submit_poll_response);

  return false;
}

function show_poll_form(poll_id, prefix)
{
  var xml_url = '/xml/submit_poll.php';
  var __query_str = 'poll_id='+poll_id+'&mode=force_poll&prefix='+escape(prefix);
  diXMLRequest.post(xml_url, __query_str, submit_poll_response);

  return false;
}
