  // do Subject insertion and async XML call
  // strUrl = the Subject glob servlet URL
  // field = the field name for searching
  // strTerm = the term to glob Subjects

  function callSubjectGlob(strUrl, queryid, field, strTerm) {
      var SubjHttpRequest = false;
      var self = this;
      
      // now loading message...
      loadingSubject('Subject Clusters ...');
      // construct the appropriate XML object
      if (window.XMLHttpRequest) { // Mozilla/Safari/Firefox
          self.SubjHttpRequest = new XMLHttpRequest();
      } else if (window.ActiveXObject) { // MSIE
          self.SubjHttpRequest = new ActiveXObject("Microsoft.XMLHTTP");
      }
      self.SubjHttpRequest.open('POST', strUrl, true);
      self.SubjHttpRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
      self.SubjHttpRequest.onreadystatechange = function() {
          if (self.SubjHttpRequest.readyState==4) {
              loadSubjectDiv(self.SubjHttpRequest.responseText, field, strTerm);
          }
      }
      
      self.SubjHttpRequest.send('format=json&query_id='+ queryid);
  }
  // load a message into the DIV
  // msg = the message to display
  function loadingSubject(msg) {
    document.getElementById("subject").innerHTML="<span class=\"attention\">" + msg + "</span>";
  }

  // load the DIV contents from a suggestion
  // contents = the JSON response from the subject glob
  // field = the field name for searching
  // term = the original search term
  function loadSubjectDiv(contents,  field, term) {
 //   window.alert(contents);
    var subjectResponse = eval("("+contents+")");
    var s = subjectResponse.subjects;
    var subjectHTML = "<span class=dontprint><b>Relevant Subject Clusters</b></span><span class=dontprint><ul>";
    var subjectSuggestions = "";
    var numberOfSubjects = 0;
    var displayLimit = 10;
    
    if (s.length > 0){     
      for (i=0; i<s.length; i++){
        var sRowClass = "shade-white";
        if (i%2 == 0){
          sRowClass = "shade-light";
        } else {
          sRowClass = "shade-white";
        } 
        var subject = s[i].subject;
        var rcount = s[i].hits;
        if ( numberOfSubjects < displayLimit){
          if (numberOfSubjects > 0) subjectSuggestions;
          subjectSuggestions += "<li class='" + sRowClass + "'><a href='searchresults.jsp?formname=searchform&" + field + "=" + term + "&Subject"  + "=&quot;" + subject +"&quot;' title='Search for subject=" + subject + " "+ field + "=" + term + "'>" + subject + "</a></li>";          
          numberOfSubjects++;
        }        
      }
    }

    subjectHTML += subjectSuggestions;
    subjectHTML += "</ul></span>";
    document.getElementById("subject").innerHTML = subjectHTML;
  }
