function toggle_question(id, guid) {
  var oDesc = document.getElementById('faq-description-'+id);
  if (!oDesc) {
    alert('An error has occurred.');
    return;
  }
  var display = (oDesc.style.display == 'block'? 'none' : 'block');
  oDesc.style.display = display;
  if ( display == 'block' ) {
    var p = new Poly9.URLParser(guid);
    var srch = p.getQuerystring();
    srch = srch.split('&');
    var qid = -1;
    for (i = 0; i < srch.length; i++) {
      itm = srch[i].split('=');
      if ( itm.length == 2 && itm[0] == 'q' ) {
        qid = itm[1];
        break;
      }
    }
    if (qid == -1) return;

    var xmlhttp = GetXmlHttpRequest();
    if (!xmlhttp) {
      alert('Required functionality for retrieving answers is not available with your browser.');
      return '';
    }

    var url = 'contents/faq.php?cmd=ga&id='+qid;
    xmlhttp.open('GET', url);
    xmlhttp.onreadystatechange = function() {
      if ( xmlhttp.readyState == 4 ) {
        switch (xmlhttp.status) {
          case 200:
            var oAns = document.getElementById('faq-answer-'+id);
            var txt = xmlhttp.responseText;
            if ( txt != '' ) {
              oAns.innerHTML = txt;
              oAns.style.display = 'block';
            }
            break;
          default:
            SetContentText('An error has occurred.');
            break;
        }
      }
    }
    xmlhttp.send(null);

  }
}