// Dynamic search stuff.

var trp = "taxonomy";
var themesUrl = './dsTaxonomy.xml?taxonomy_root_path='+trp+'&one_id=behaviour';
var topicsUrl = './dsTaxonomy.xml?taxonomy_root_path='+trp+'&one_id=behaviour';
var documentTypesUrl = './dsTaxonomy.xml?taxonomy_root_path='+trp+
                       '&one_id=documenttype&accessor=getDocumentType';
var audiencesUrl = './dsTaxonomy.xml?taxonomy_root_path='+trp+
                   '&one_id=audience&accessor=getAudience';
var searchSummaryUrl = './dsSearchResults.xml?taxonomy_root_path='+trp;
var dsThemes = new Spry.Data.XMLDataSet( themesUrl,
                                         "taxonomy/behaviour/item" );
var dsTopics = new Spry.Data.XMLDataSet( topicsUrl,
                                         "taxonomy/behaviour/item/item" );
var dsDocumentTypes = new Spry.Data.XMLDataSet( documentTypesUrl,
                                           "taxonomy/documenttype/item/item" );
var dsAudiences = new Spry.Data.XMLDataSet( audiencesUrl,
                                            "taxonomy/audience/item");
var dsSearchSummary = new Spry.Data.XMLDataSet( searchSummaryUrl,
                                                "search/results");
function initDynamicSearch() {
    stElement = document.getElementById('searchableText');
    if (stElement.value.length>0) {
      refreshDataSet('searchableText');
    }
}

function refreshDataSet(fieldId) {
  if (fieldId == 'searchableText') {
    stElement = document.getElementById('searchableText');
    titleOnlyElement = document.getElementById('TitleOnly');
    st = stElement.value;
    //if (titleOnlyElement.value == 1) {
    //  st = st+'&title_only=1';
    //}
    if ((st.length > 2) | (st.length == 0)) {
      if (st.length > 0) {
        if ((st[0] == '*') | (st[0] == '(') | (st[0] == ')')) {
          // Some nasty characters cause errors.
          return;
        }
        dsThemes.setURL(themesUrl+'&searchableText='+st);
        dsTopics.setURL(topicsUrl+'&searchableText='+st);
        dsDocumentTypes.setURL(documentTypesUrl+'&searchableText='+st);
        dsAudiences.setURL(audiencesUrl+'&searchableText='+st);
        dsSearchSummary.setURL(searchSummaryUrl+'&searchableText='+st);
      } else {
        dsThemes.setURL(themesUrl);
        dsTopics.setURL(topicsUrl);
        dsDocumentTypes.setURL(documentTypesUrl);
        dsAudiences.setURL(audiencesUrl);
        dsSearchSummary.setURL(searchSummaryUrl);
      }
      dsThemes.loadData();
      dsTopics.loadData();
      dsDocumentTypes.loadData();
      dsAudiences.loadData();
      if (titleOnlyElement.value == 1) {
        dsSearchSummary.setURL(dsSearchSummary.getURL()+'&title_only=1');
      }
      dsSearchSummary.loadData();
    }
  }
}
function toggleValue(fieldId) {
  stElement = document.getElementById('searchableText');
  titleOnlyElement = document.getElementById('TitleOnly');
  st = stElement.value;
  if (fieldId == 'TitleOnly') {
    if (st.length > 0) {
      dsSearchSummary.setURL(searchSummaryUrl+'&searchableText='+st);
    } else {
      dsSearchSummary.setURL(searchSummaryUrl);
    }
    toElement = document.getElementById('TitleOnly');
    if (toElement.value == '0') {
      toElement.value = 1;
      dsSearchSummary.setURL(dsSearchSummary.getURL()+'&title_only=1');
    } else {
      toElement.value = 0;
      dsSearchSummary.setURL(dsSearchSummary.getURL()+'&title_only=0');
    }
    //alert(dsSearchSummary.getURL());
    dsSearchSummary.loadData();
  }
}
function updateSearchResults() {
  // Gathers filter options set and updated dsSearchResults.
  //...
}
