
  // Searches through the station pulldown list for a matching string.
  // -- 07/07/2004 [rcioni]
  function searchStation(object, listName) {
    var found = false;
    if (object.stationText.value.length > -1) {
        for (var i=0; (i < object.elements[listName].length) && !found; i++) {
            if (object.elements[listName].options[i].text.toUpperCase().indexOf(object.stationText.value.toUpperCase()) == 0) {
                found = true;
                object.elements[listName].options[i].selected = true;
            }
            else if (object.elements[listName].options[i].text.toUpperCase() > object.stationText.value.toUpperCase()) {
                found = true;
                object.elements[listName].options[i].selected = true;
            }
        }
        if (!found) {
          object.elements[listName].options[object.elements[listName].length - 1].selected = true;
        }
    }
  }
  
  //
  //Searches through any defined pulldown list for a matching string
  //This function was added to be more generic
  // -- 7/12/04 wjk
  //Object           = formname (this.form)
  //listName         = name of drop down list box
  //searchFieldValue = value of text box user is typing into (searchField.value)
  //
  //simplified to accomodate new sorting code associated with hibernate conversion --7/22/2005 pericksen
  function search(object, listName, searchFieldValue) {
    var found = false;
   
    if (searchFieldValue.length > -1) {
        for (var i=0; (i < object.elements[listName].length) && !found; i++) {
          
            if (object.elements[listName].options[i].text.toUpperCase().indexOf(searchFieldValue.toUpperCase()) == 0) {
                              
                found = true;
                object.elements[listName].options[i].selected = true;
            }
        }          
    }
}

  // Provides some protection against the user accidentally forgetting to 
  // click "Save".  Of course, a determined user can still lose all of his
  // data if he really wants to.
  // @return true if the link / submit should be followed.
  // @return false if the user does not wish to follow the link / submit that was clicked.
  function checkForUnsaved(form) {
    if (form.isDirty.value == 'true') {
        var msg = "You are about to lose unsaved data.\nClick OK to continue or Cancel if you wish to stay on the current page.";
        if (confirm(msg)) {
            return true;
        } else {
            return false;
        }
    }
    return true;
  }

  // Sets the isDirty flag to 'true'.  Some Actions also set this value.
  function markDirty(form) {
    form.isDirty.value = 'true';
    return;
  }

// Clears all of the values on a form.
// First the form is reset, to set radio buttons and checkboxes back to their defaults.
// Then text and textbox fields are set to blank strings.
// Finally, the select lists all have their first option selected.
function clearForm(form) {
    if (form == null) {
        return;
    }
    form.reset();
    for (var i=0; i < form.elements.length; i++) {
        if (form.elements[i].type == "text" || 
            form.elements[i].type == "textbox") {
            
            form.elements[i].value = "";
        }
        if (form.elements[i].type == "select-one") {
            if (form.elements[i].options.length > 0) {
                form.elements[i].options[0].selected = true;
            }
        }
        if (form.elements[i].type == "select-multiple") {
          for (j=0; j<form.elements[i].length; j++) {
            form.elements[i].options[j].selected=false;
          }
          form.elements[i].options[0].selected = true;
        }
        if (form.elements[i].type == "radio" ||
            form.elements[i].type == "checkbox") {
            form.elements[i].checked = false; 
        }         
    }
}

// Clears all of the values on the form carriage inquiy and sets date field defalut to today's date.
// First the form is reset, to set radio buttons and checkboxes back to their defaults.
// Then text and textbox fields are set to blank strings.
// Finally, the select lists all have their first option selected.
function clearCarriageInquiryForm(form) {
    if (form == null) {
        return;
    }
    form.reset();
    for (var i=0; i < form.elements.length; i++) {
        if (form.elements[i].type == "text" || 
            form.elements[i].type == "textbox") {
            
            form.elements[i].value = "";
        }
        if (form.elements[i].type == "select-one") {
            if (form.elements[i].options.length > 0) {
                form.elements[i].options[0].selected = true;
            }
        }
        if (form.elements[i].type == "select-multiple") {
          for (j=0; j<form.elements[i].length; j++) {
            form.elements[i].options[j].selected=false;
          }
          form.elements[i].options[0].selected = true;
        } 
        if (form.elements[i].type == "radio" ||
            form.elements[i].type == "checkbox") {
            form.elements[i].checked = false; 
        } 
    }
    
    //setting the dateFilter field to today's date
    
    var date = new Date();
    var d = date.getDate();
    var day = (d < 10) ? '0' + d : d;
    var m   = date.getMonth() + 1;
    var month = (m < 10) ? '0' + m : m;
    var yy    = date.getYear();
    var year = (yy < 1000) ? yy + 1900 : yy;
    document.carriageFilterForm.dateFilter.value = month + "/" + day + "/" + year;
}

// Modify anchor tags, based on the values of a form's checkboxes.
function appendCheckboxesToHref(form, anchor) {
  if (form == null || anchor == null) {
    return true;
  }

  for (var i=0; i < form.elements.length; i++) {
    if (form.elements[i].type == "checkbox") {
      if (form.elements[i].checked == true) {
        anchor.href = anchor.href + "&" + form.elements[i].name + "=on";
      }
    }
  }
  return true;
}

// Appends checkbox flags and the search results anchor name
function processPagingHref(form, anchor) {
   appendCheckboxesToHref(form, anchor);
   if (form == null || anchor == null) {
     return true;
   }
   anchor.href = anchor.href + "#_searchResults";
   return true;
}
