<!--//
//This JavaScript contains functions for combining multiple searches into one form
//Created by: Steve Downs (sdowns@gannett.com), Gannett Content Management Team 
//Last modified: 3/15/2005

function newsSearch (frm) {
  var selectedmode ='';
  var searchpublicus = false;	
  //Loop through form fields	
  for (var i = 0;i < frm.elements.length;i++) {
    //crit must have a value
    if (frm.elements[i].name == "dbquery") {
      //dbquery must have a value
      if (frm.dbquery.value=="") {
        alert ("Please enter a search word");
        frm.dbquery.focus();
        return false;
      }
    }
    //daterange will be a radio button or select-one dropdown. Store the value in selectedrange
    if ((frm.elements[i].name == "year") && (frm.elements[i].type == "radio")) {
      if (frm.year[0].checked == true) {
        frm.daterange.value = frm.year[0].value;
        searchpublicus = true;
      }
    }
    if ((frm.elements[i].name == "year") && (frm.elements[i].type == "select-one")) {
      if (frm.year.options.selectedIndex == 0) {
        frm.daterange.value = frm.year.options[frm.year.options.selectedIndex].value;
        searchpublicus = true;
      }
    }
    //Check for the mode field and store it in selectedmode.
    if ((frm.elements[i].name == "search_mode") && (frm.elements[i].type == "radio")) {
      if (frm.elements[i].checked) {
        selectedmode = frm.elements[i].value;
      }
    }
  }
  //Submit the form to the archive if the daterange is not 7 days
  if (searchpublicus == true){
    frm.action = "/apps/pbcs.dll/search";
    //Change form action to Publicus
    //Publicus' search field is called crit
    frm.crit.value = frm.dbquery.value;
    //The advanced search form has radio buttons for search mode. The Publicus search term must be updated for the selected mode search to occur.
    //Replace spaces with " AND " if "all" is selected. Note this is really not necessary for the search to work. Publicus searches for "all" terms by default. It is only necessary for display purposes.
    if(frm.search_mode.type !="hidden") {
      if(selectedmode == "all") {
        frm.crit.value = frm.crit.value.replace(/\s/g," AND ");
      }
      //The Publicus search term must have spaces replaced with " OR " if the "any" search mode is selected.
      else if(selectedmode == "any") {
        frm.crit.value = frm.crit.value.replace(/\s/g," OR ");
      }
      //If the "exact" search mode is selected the search term must be wrapped in ".
      else if(selectedmode == "exact") {
        frm.crit.value = "\"" + frm.crit.value + "\"";
      }
      //Append mode to the URL. Publicus will use this value to set "mode" to the appropriate value in the form when the results are displayed.
      frm.action = frm.action + "?search_mode=" + selectedmode;
    }
  }
  //submit the form
  return true;
}

//Set form values if the form has already been submitted
function setFormValues(frm,checkedmode) {
  //Set the mode field to the correct value if the form has already been submitted
  var _regExp = "";
  var _newString = "";
  for (i=0;i<frm.search_mode.length;i++){
    if (frm.search_mode[i].value == checkedmode) {
      frm.search_mode[i].checked=true;
    }
  }
  if(frm.search_mode[0].checked == true) {
    _regExp=/\sAND\s/g;
    _newString=" ";
  }
  else if(frm.search_mode[1].checked == true) {
    _regExp=/\sOR\s/g;
    _newString=" ";
  }
  if(frm.search_mode[2].checked == true) {
    _regExp=/"/g;
    _newString="";
  }
  if(_regExp != "") {
    frm.dbquery.value = frm.crit.value.replace(_regExp,_newString);
    frm.crit.value = frm.dbquery.value;
  }
}
//-->
