//Grab the search control needed for this option from the 
//hidden div that's full of them.
function change_find(evt) {
  //Get the select box that called this event
  if (!evt) evt = window.event;
  var select_box = evt.target ? evt.target : evt.srcElement;

  //The value of the selected option is used to find the right search control
  var opt = select_box.options[select_box.selectedIndex];
  var widget_id = opt.value;
  var fieldset = select_box.parentNode;

  //Make a copy of the control
  var control = $(widget_id+"-search");
  if (control) {
    var new_control = control.cloneNode(true);
    
    //replace the existing control
    var old_control = fieldset.getElementsByClass("search-control");
    if (old_control[0]) {
      old_control[0].parentNode.replaceChild(new_control, old_control[0]);
    }
  }
}

//Adds a fieldset for searching
function add_search_fields(evt) {
  //Get the button that called this event
  if (!evt) evt = window.event;
  var add_button = evt.target ? evt.target : evt.srcElement;

  //Use a different fieldset template for the marine search
  var is_marine = '';
  if (add_button.hasClass("marine")) {
    is_marine = '-marine';
  }

  //The fieldset we'll clone
  var fs = $("fieldset-template"+is_marine);
  //The group of fieldsets where we'll stick that field
  var fieldsets_div = $(add_button.parentNode.parentNode);
  var button_row = $(add_button.parentNode);
  if (fs) {
    var new_fs = fs.cloneNode(true);
    new_fs = $(new_fs);
    new_fs.id = '';

    var select = new_fs.getElementsByClass("changer");
    select[0].addEvent('change', change_find);

    var remove = new_fs.getElementsByClass("remover");
    remove[0].addEvent('click', remove_fs);
    
    fieldsets_div.insertBefore(new_fs, button_row);
  }
}



//Removes the fieldset who's remove button was clicked
function remove_fs(evt) {
  //Get the button that called this event
  if (!evt) evt = window.event;
  var remove_button = evt.target ? evt.target : evt.srcElement;
  remove_button.parentNode.destroy();
}

//Adds events to the select box, to change what's next to it
function search_widget_init() {
  var selects = document.getElementsByClass("changer");
  for (var i=0; i < selects.length; i++) {
    selects[i].addEvent('change', change_find);
  }

  //set up the add term buttons
  var add_terms = document.getElementsByClass("add-term");
  for (var i=0; i < add_terms.length; i++) {
    add_terms[i].addEvent('click', add_search_fields);
  }

  //set up the add term buttons
  var remove_terms = document.getElementsByClass("remover");
  for (var i=0; i < remove_terms.length; i++) {
    remove_terms[i].addEvent('click', remove_fs);
  }
}

//Pop up glossary window
function pop_up_glossary(location) {
  var anewWindow; anewWindow = window.open('http://www.bu.edu'+location,
					   'glossary', 
					   'resizable=yes,scrollbars=yes,width=450,height=320');
  if(anewWindow) {
    anewWindow.focus();
  } 
  return;
}
