//

// Choice of multiple search engines
// Autor: Jakob Voss
// Version: 0.3.2
// Published as Public Domain
 
// Map of search engines and some OpenSearch-based fields
var searchEngines = {
  mediawiki: {
    ShortName: "Interne Suche",
    Template: "/w/index.php?title=Special:Search&search={searchTerms}&fulltext=1"
  },
  google: {
    ShortName: "Google",
    Template: "http://www.google.com/search?as_sitesearch=de.wikipedia.org&hl={language}&q={searchTerms}"
  },
  wikiwix: {
    ShortName: "Wikiwix",
    Template: "http://de.wikiwix.com/index.php?action={searchTerms}&lang={language}"
  },
  webde: {
    ShortName: "Web.de",
    Template: "http://wiki.suche.web.de/wiki/?su={searchTerms}&wmc=suche@home.suche@wiki"
  },
  yahoo: {
    ShortName: "Yahoo!",
    Template: "http://de.search.yahoo.com/search?p={searchTerms}&vs=de.wikipedia.org"
  },
  wlive: {
    ShortName: "Windows Live",
    Template: "http://search.live.com/results.aspx?q={searchTerms}&q1=site:http://de.wikipedia.org&mkt=de-AR"
  }
};
 
function changeSearchEngine(selectedId, searchTerms) {
  var currentId = document.getElementById("searchengineChoices").currentChoice;
  if (selectedId == currentId) return;
 
  // select
  document.getElementById("searchengineChoices").currentChoice = selectedId;
  var radio = document.getElementById('searchengineRadio-'  + selectedId);
  radio.checked = "checked";
 
  // get current search terms and hide current form
  if (typeof currentId != 'undefined') {
      var form = document.getElementById("searchengineForm-" + currentId);
      var inputField = searchEngines[currentId].searchTermsField;
      searchTerms = form.elements[ inputField ].value;
      form.style.display = "none";
  }
 
  if (typeof searchTerms == 'undefined') searchTerms = '';
 
  // copy value to selected form and show selected form
  var form = document.getElementById("searchengineForm-" + selectedId);
  var inputField = searchEngines[selectedId].searchTermsField;
  form.elements[ inputField ].value = searchTerms;
  form.style.display = "block";
}
 
addOnloadHook( function() 
{
  if (typeof SpecialSearchEnhanced2Disabled != 'undefined') return;
  if (wgPageName != "Spezial:Suche") return;
 
  var mainNode = document.getElementById("search");
  if (!mainNode) return;
 
  function SearchForm(id, engine) 
  {
    var form = document.createElement("form");
    form.method = "get";
 
    var p = engine.Template.indexOf('?');
    var params = engine.Template.substr(p+1);
 
    form.action = engine.Template.substr(0,p);
    form.id = "searchengineForm-" + id;
 
    var span = document.createElement("span");
 
    var l = ("" + params).split("&");
    for (var i in l) {
      var p = l[i].split("=");
      var pValue = p[1];
 
      var input = document.createElement("input");
      input.name = p[0];
 
      if (pValue == "{language}") pValue = "de";
      if (pValue == "{searchTerms}") {
        input.type = "text";
        input.setAttribute("style","margin-left: 25%; width: 50%;");
        engine.searchTermsField = i;
      } else {
        input.type = "hidden";
        input.value = pValue;
      }
      form.appendChild(input);
    }
 
    var submit = document.createElement("input");
    submit.type = "submit";
    submit.value = "Wikipedia durchsuchen";
    form.appendChild(submit);
    form.style.display = "none";
    return form;
  }
 
  // selected search engine
  var firstEngine = "mediawiki";
 
  var choices = document.createElement("form");
  choices.setAttribute("id","searchengineChoices");
  choices.style.textAlign = "center";
 
  // get current search value and remove existing search form
  var lsearchbox = document.getElementById("lsearchbox");
  var initValue = lsearchbox.value;
  while (mainNode.firstChild) mainNode.removeChild(mainNode.firstChild);
 
  // create search forms and choice
  var space = "";
  for (var id in searchEngines) {
    var engine = searchEngines[id];
 
    if (space) choices.appendChild(space);
    space = document.createTextNode(" ");
 
    var attr = { 
      type: "radio", 
      name: "searchengineselect",
      value: id,
      onFocus: "changeSearchEngine(this.value)",
      id: "searchengineRadio-"+id
    };
 
    var html = "