qa_lb1_selected = 0;
qa_lb2_selected = 0;
qa_lb3_selected = 0;

function qa_lb_add(listboxNode, itemId, orgClass, useClass, itemText, itemClick)
{
  var elemDIV = document.createElement('DIV');
  elemDIV.className = useClass;
  elemDIV.setAttribute('orgClass', orgClass);
  elemDIV.innerHTML = '&#187;&nbsp;<A id="' +itemId + '" class="' + (orgClass == useClass ? 'nav_listtext_nrm' : 'nav_listtext_sel') + '" href="' + itemClick + '">' + itemText + '</A>';
  listboxNode.appendChild(elemDIV);
}

function qa_lb_clear(listboxNode)
{
  listboxNode.setAttribute('itemSelected', '');
  while (listboxNode.hasChildNodes())
  {
    listboxNode.removeChild(listboxNode.firstChild);
  }
}

function qa_lb_sel(rowNode, newClass)
{
  var divNode = rowNode.parentNode;
  var listNode = divNode.parentNode;
  var id_selected = listNode.getAttribute('itemSelected');
  if (id_selected != null && id_selected != '')
  {
    var selectedNode = getHtmlElement(id_selected);
    selectedNode.className = "nav_listtext_nrm";
    selectedNode = selectedNode.parentNode;
    selectedNode.className = selectedNode.getAttribute('orgClass');
  }
  rowNode.className = "nav_listtext_sel";
  divNode.className = newClass;
  listNode.setAttribute('itemSelected', rowNode.id);
}

//

function qa_fill_lb(listboxNode, categoryId, itemClick, selectId, selectClass)
{
  var count = 0;
	var selIndex = 0;
	
  for (i=0; i<category_arr.length; i=i+4)
  {
    if (category_arr[i] == categoryId)
    {
      if (category_arr[i+1] > 0 || true)
      {
        var rowClass = (count++ % 2 ? 'nav_listrow_1' : 'nav_listrow_2');
        if (category_arr[i+1] == selectId)
        {
          // Set selected index dor current box (needed for scrolling function)
					set_selected_box_index(listboxNode, selIndex);
					
					qa_lb_add(listboxNode, 'qa_cat_' + category_arr[i+1], rowClass, selectClass, category_arr[i+2], "javascript:" + itemClick + "(" + category_arr[i+1] + ");");
          listboxNode.setAttribute('itemSelected', 'qa_cat_' + category_arr[i+1]);
        }
        else
        {
          qa_lb_add(listboxNode, 'qa_cat_' + category_arr[i+1], rowClass, rowClass, category_arr[i+2], "javascript:" + itemClick + "(" + category_arr[i+1] + ");");
        }
				
				selIndex++;
      }
    }
    else if (category_arr[i] > categoryId)
    {
      break;
    }
  }
}

function set_selected_box_index(listboxNode, index)
{
	nodeName = listboxNode.getAttribute('id');
	switch(nodeName)
	{
		case 'qa_lb1':
			qa_lb1_selected = index;
			break;
		case 'qa_lb2':
			qa_lb2_selected = index;
			break;
		case 'qa_lb3':
			qa_lb3_selected = index;
			break;
	}
	//alert('Box: ' + nodeName + ', index: ' + index);
}


//

function qa_show_desc(categoryId)
{
/*
  for (i = 0; i < category_arr.length; i = i + 4)
  {
    if (category_arr[i+1] == categoryId)
    {
      var divNode = getHtmlElement('qa_cat_desc');
      divNode.innerHTML = '<span class="qa_header">Kategori <span class="qa_highlight">' + category_arr[i+2] + '</span></span><br>' + category_arr[i+3] + '&nbsp;';
      break;
    }
  }
*/  
}

//

function qa_build_lb1(selectId, selectClass)
{
  var listboxNode = getHtmlElement('qa_lb1');
  qa_lb_clear(listboxNode);
  qa_build_lb2(0, 0, '');

  qa_fill_lb(listboxNode, 0, 'qa_onlb1', selectId, selectClass);
}

function qa_build_lb2(categoryId, selectId, selectClass)
{
  var listboxNode = getHtmlElement('qa_lb2');
  qa_lb_clear(listboxNode);
  qa_build_lb3(0, 0, '');

  if (categoryId)
  {
    qa_fill_lb(listboxNode, categoryId, 'qa_onlb2', selectId, selectClass);
  }
}

function qa_build_lb3(categoryId, selectId, selectClass)
{
  var listboxNode = getHtmlElement('qa_lb3');
  qa_lb_clear(listboxNode);

  if (categoryId)
  {
    qa_fill_lb(listboxNode, categoryId, 'qa_onlb3', selectId, selectClass);
  }
}


function qa_rebuild_lb(categoryId)
{
  var tree = new Array();

  // Get tree info
  for (i = category_arr.length-4; i >= 0; i = i - 4)
  {
    if (category_arr[i+1] == categoryId)
    {
      tree.unshift(categoryId);
      categoryId = category_arr[i];
    }
  }

  if (tree.length == 0)
  {
    qa_build_lb1();
    return;
  }

  // Rebuild listboxes
  var parentId = 0;
  var selectId = tree.shift();
  qa_build_lb1(selectId, (selectId == -1 ? 'nav_listsel_2' : 'nav_listsel_1'));

  if (tree.length)
  {
    parentId = selectId;
    selectId = tree.shift();
    qa_build_lb2(parentId, selectId, 'nav_listsel_1');
  }

  if (tree.length)
  {
    parentId = selectId;
    selectId = tree.shift();
    qa_build_lb3(parentId, selectId, 'nav_listsel_2');
  }

  qa_show_desc(selectId);
}

//

function qa_onlb1(category_id)
{
  var rowNode = getHtmlElement('qa_cat_' + category_id);
  if (category_id == -1)
  {
    var listdivNode = getHtmlElement('qa_question_list');
    listdivNode.innerHTML = '<br><span class="qa_highlight"><b>Vänta, läser in frågor &amp; svar...</b></span><br>';

    qa_lb_sel(rowNode, 'nav_listsel_2');
    qa_show_desc(category_id);
    qa_build_lb2(0);
    window.location = 'qa_nav.php?category_id=' + category_id;
  }
  else if (category_id)
  {
    var listdivNode = getHtmlElement('qa_question_list');
    listdivNode.innerHTML = '<br>';

    qa_lb_sel(rowNode, 'nav_listsel_1');
    qa_show_desc(category_id);
    qa_build_lb2(category_id);
  }
}

function qa_onlb2(category_id)
{
  var rowNode = getHtmlElement('qa_cat_' + category_id);
  if (category_id)
  {
    var listdivNode = getHtmlElement('qa_question_list');
    listdivNode.innerHTML = '<br>';

    qa_lb_sel(rowNode, 'nav_listsel_1');
    qa_show_desc(category_id);
    qa_build_lb3(category_id);
  }
}

function qa_onlb3(category_id)
{
  var rowNode = getHtmlElement('qa_cat_' + category_id);
  if (category_id)
  {
    var listdivNode = getHtmlElement('qa_question_list');
    listdivNode.innerHTML = '<br><span class="qa_highlight"><b>Vänta, läser in frågor &amp; svar...</b></span><br>';

    qa_lb_sel(rowNode, 'nav_listsel_2');
    qa_show_desc(category_id);
    window.location = 'qa_nav.php?category_id=' + category_id;
  }
}

function qa_onlb4(qa_id)
{
  var rowNode = getHtmlElement('qa_qa_' + qa_id);
  if (qa_id)
  {
    qa_lb_sel(rowNode, 'nav_listsel_4');
//    SetCookie('last_qa_id', qa_id);
    window.location = 'qa.php?qa_id=' + qa_id;
  }
}

function scroll_lbs()
{
	if (qa_lb1_selected > 3)
	{
		var listboxNode = getHtmlElement('qa_lb1');
		listboxNode.scrollTop = (qa_lb1_selected-3) * 16;
	}
	
	if (qa_lb2_selected > 3)
	{
		var listboxNode = getHtmlElement('qa_lb2');
		listboxNode.scrollTop = (qa_lb2_selected-3) * 16;
	}
	
	if (qa_lb3_selected > 3)
	{
		var listboxNode = getHtmlElement('qa_lb3');
		listboxNode.scrollTop = (qa_lb3_selected-3) * 16;
	}
}