function ToggleFAQ(id) {
  e = $('faq' + id);
  if (e) {
    if (e.className == 'off') {
      // change class
      e.className = 'on';
      
      // track view
      var url    = '/_track_faq_view.php';
      var pars   = 'id=' + id;
      var myAjax = new Ajax.Request(
        url,
        {
          method:'get',
          parameters:pars
        }
      );
    } else {
      // change class
      e.className = 'off';
    }
  }
}
function OpenFAQs() {
  var list  = document.getElementsByTagName('dl');
  var nodes = $A(list);
  var regex = new RegExp('faq([0-9])+');
  
  // find the matching nodes
  nodes = nodes.findAll(
    function(node) {
      return regex.test(node.id);
    }
  );
  
  // show all
  nodes.each(
    function(node) {
      node.className = 'on';
    }
  );
  
  // switch links
  $('open_all', 'close_all').invoke('toggle');
}
function CloseFAQs() {
  var list  = document.getElementsByTagName('dl');
  var nodes = $A(list);
  var regex = new RegExp('faq([0-9])+');
  
  // find the matching nodes
  nodes = nodes.findAll(
    function(node) {
      return regex.test(node.id);
    }
  );
  
  // show all
  nodes.each(
    function(node) {
      node.className = 'off';
    }
  );
  
  // switch link
  $('close_all', 'open_all').invoke('toggle');
}

function OpenCategory(id) {
  if (list = $('cat' + id)) {
    $A(list.getElementsByTagName('dl')).each(function(e) {
      e.className = 'on';
    });
    $('open' + id, 'close' + id).invoke('toggle');
  }
}
function CloseCategory(id) {
  if (list = $('cat' + id)) {
    $A(list.getElementsByTagName('dl')).each(function(e) {
      e.className = 'off';
    });
    $('open' + id, 'close' + id).invoke('toggle');
  }
}
function GetFAQCategoryControl() {
  var url    = '/_get_faqs_category_control.php';
  var myAjax = new Ajax.Updater(
    'category-controller',
    url,
    {
      method:'get'
    }
  );
  $('category-controller').show();
}
function SelectFAQCategory(id) {
  $('cat' + id).scrollTo();
  if ($('selected-category')) { $('selected-category').selectedIndex = ''; }
}