[%# The contents of this file are subject to the Mozilla Public
  # License Version 1.1 (the "License"); you may not use this file
  # except in compliance with the License. You may obtain a copy of
  # the License at http://www.mozilla.org/MPL/
  #
  # Software distributed under the License is distributed on an "AS
  # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
  # implied. See the License for the specific language governing
  # rights and limitations under the License.
  #
  # The Original Code is the Bugzilla Bug Tracking System.
  #
  # The Initial Developer of the Original Code is Netscape Communications
  # Corporation. Portions created by Netscape are
  # Copyright (C) 1998 Netscape Communications Corporation. All
  # Rights Reserved.
  #
  # Contributor(s): Gervase Markham <gerv@gerv.net>
  #                 Myk Melez <myk@mozilla.org>
  #%]

[%# INTERFACE:
  # This template has no interface.
  #%]

[% WRAPPER global/tabs.html.tmpl
     tabs = [ { name => 'specific', label => "Find a Specific $terms.Bug",
                link => "query.cgi?format=specific" },
              { name => 'advanced', label => "Advanced Search",
                link => "query.cgi?format=advanced" } ]
     current_tab_name = query_format || format || "advanced"
%]

[% content %]

[% END %]
