// helper stuff

function highlight_answer(id, state)
{
  var e = _ge('answer_div_'+id);

  if (!e) return;

  if (state)
    e.style.backgroundColor = '#FFE5E6';
  else
    e.style.background = '#FFFFFF';
}

function unhighlight_answers(id)
{
  for (var i = 0; i < questions_ar[id].obj.childNodes.length; i++)
  {
    var s = questions_ar[id].obj.childNodes[i].id;

    if (s && s.substr(0, 11) == 'answer_div_')
    {
      highlight_answer(s.substr(11), false);
    }
  }
}

function set_answer(id0)
{
  var id = get_next_id(id0);

  if (last_clicked_ids_ar[questions_ar[id0].level_num] != id0)
  {
    highlight_answer(last_clicked_ids_ar[questions_ar[id0].level_num], false);
  }

  highlight_answer(id0, true);

  last_clicked_ids_ar[questions_ar[id0].level_num] = id0;

  if (id == -1)
  {
    if (questions_ar[id0].type == 'value')
      toggle_questions_submit(true);
    else
    {
      alert('Следующий вопрос не задан');
      return false;
    }
  }

  if (
      typeof questions_ar == 'undefined' ||
      typeof questions_ar[id] == 'undefined'
     )
    return false;

  last_question_id = 0;

  clear_another_tree(questions_ar[id].level_num);

  unhighlight_answers(id);

  questions_ar[id].obj.style.display = 'block';
  questions_ar[id].visible = true;

  if (questions_ar[id].type == 'value')
  {
    last_question_id = id;
    set_answer(id);
  }

  return false;
}

function get_next_id(id)
{
  for (var i in questions_ar)
  {
    if (questions_ar[i].parent == id)
      return i;
  }

  return -1;
}

function get_next_question_id(id)
{
  for (var i in questions_ar)
  {
    if (questions_ar[i].parent == id && questions_ar[i].type == 'question')
      return i;
  }

  return -1;
}

function get_next_value_id(id)
{
  for (var i in questions_ar)
  {
    if (questions_ar[i].parent == id && questions_ar[i].type == 'value')
      return i;
  }

  return -1;
}

function toggle_questions_submit(state)
{
  var e = _ge('submit_question_block');

  if (e)
    e.style.display = state ? 'block' : 'none';
}

function clear_another_tree(level_num)
{
  for (var i in questions_ar)
  {
    if (questions_ar[i].level_num >= level_num && questions_ar[i].visible && questions_ar[i].obj)
    {
      questions_ar[i].obj.style.display = 'none';
      questions_ar[i].visible = false;
    }
  }
}

function helper_process()
{
  var values = '';

  for (var i in questions_ar)
  {
    if (questions_ar[i].type == 'value' && questions_ar[i].visible)
    {
      var e = _ge('value_'+i);
      if (e) values += '&values['+i+']='+escape(e.value);
    }
  }

  var url = '/xml/helper_process.php';
  var query = 'id='+escape(last_question_id)+values;
  diXMLRequest.get(url+'?'+query, helper_process_response);
}

function helper_process_response(xmlDoc)
{
  var rs = xmlDoc.documentElement.getElementsByTagName('result');

  if (!rs.length) return;

  var ok = rs[0].getAttribute('ok');
  var cart_count = rs[0].getAttribute('cart_count');
  var cart_cost = rs[0].getAttribute('cart_cost');

  update_cart_data(cart_count, cart_cost);
  update_cart_items_and_services_total();

  if (confirm('Перейти в Вашу корзину?'))
    window.location.href = '/cart/';
}

function show_reply_form(before_obj_id, parent)
{
  var a = _ge(before_obj_id);

  if (!a || !comment_reply_div || !comment_parent) return false;

  a.parentNode.insertBefore(comment_reply_div, a);
  comment_reply_div.style.display = 'block';

  comment_parent.value = parent;

  return false;
}






var top_menu_left_dif = -3;
//var top_menu_height = is_gecko ? 0 : 12;
var top_menu_height = 12;
var anchor_suffix = is_ie4up ? 'ie_' : '';

//if (is_gecko) top_menu_height--;
var menu_mouse_over = 0;

function highlight_top_menu(id, on)
{
  var top_menu_a = _ge(id);

  if (top_menu_a)
  {
    if (on)
      top_menu_a.style.backgroundColor = '#fdd';
    else
      top_menu_a.style.background = 'none';
  }
}

function show_menu(id)
{
  highlight_top_menu('top_menu_a_'+id, true);

  var menu_div = _ge('popup_menu_'+id);
  var anchor_div = _ge('anchor_'+anchor_suffix+id);

  if (menu_div && anchor_div)
  {
    var x = getLeft(anchor_div);
    var y = getTop(anchor_div);

    menu_div.style.left = (x + top_menu_left_dif) + 'px';
    menu_div.style.top = (y + top_menu_height) + 'px';
    menu_div.style.display = 'block';
  }

  return false;
}

function hide_menu(id)
{
  highlight_top_menu('top_menu_a_'+id, false);

  var menu_div = _ge('popup_menu_'+id);
  var anchor_div = _ge('anchor_'+anchor_suffix+id);

  if (menu_div && anchor_div)
  {
    if (menu_mouse_over == id)
    {
      if (menu_div.style.display != 'block')
        menu_div.style.display = 'block';
    }
    else
    {
      menu_div.style.display = 'none';
    }
  }

  return false;
}

function menu_element_over(id, flag)
{
  return menu_div_over(id, flag);
}

function menu_div_over(id, flag)
{
  if (flag)
  {
    menu_mouse_over = id;

    show_menu(id);
  }
  else
  {
    if (menu_mouse_over == id)
    {
      menu_mouse_over = 0;

      hide_menu(id);
    }
  }

  return false;
}

function filter_digit(evt)
{
  if (!evt) evt = window.event;

  var keyCode = evt.which ? evt.which : evt.keyCode;
  var r = (keyCode >= '0'.charCodeAt() && keyCode <= '9'.charCodeAt()) || keyCode == 8 ? true : false;
  return r;
}
