//  Add any onload functions in this hook (please don't hard-code any events in the xhtml source)
var doneOnloadHook;

if (!window.onloadFuncts) {
	var onloadFuncts = [];
}

function addOnloadHook(hookFunct) {
	// Allows add-on scripts to add onload functions
	if(!doneOnloadHook) {
		onloadFuncts[onloadFuncts.length] = hookFunct;
	} else {
		hookFunct();  // bug in MSIE script loading
	}
}

function hookEvent(hookName, hookFunct) {
	if (window.addEventListener) {
		window.addEventListener(hookName, hookFunct, false);
	} else if (window.attachEvent) {
		window.attachEvent("on" + hookName, hookFunct);
	}
}

function runOnloadHook() {
	// don't run anything below this for non-dom browsers
	if (doneOnloadHook || !(document.getElementById && document.getElementsByTagName)) {
		return;
	}
	// set this before running any hooks, since any errors below
	// might cause the function to terminate prematurely
	doneOnloadHook = true;

	// run any added-on functions
	for (var i = 0; i < onloadFuncts.length; i++) {
		onloadFuncts[i]();
	}
}


//  The code below should be redundant. It's there just in case.
hookEvent("load", runOnloadHook);

addOnloadHook(function() {
	document.getElementById("search").focus();
});


function SpecialSearchEnhanced() {
    var createOption = function(site, action, mainQ) {
        var opt = document.createElement('option');
        opt.appendChild(document.createTextNode(site));
        searchEngines[searchEngines.length] = [action, mainQ];
        return opt;
    }

    var searchForm = document.forms['powersearch'] || document.forms['search']
    var searchBox = searchForm.lsearchbox || searchForm.search
    var fullText = document.getElementsByName('fulltext')[0];
    fullText.setAttribute('id','fulltext');
    fullText.removeAttribute('name'); //prevent button URI submission

    var selectBox = document.createElement('select');
    selectBox.id = 'searchEngine';
    searchForm.onsubmit = function() {
        var optSelected = searchEngines[document.getElementById('searchEngine').selectedIndex];
        searchForm.action = optSelected[0];
        searchBox.name = optSelected[1];
    }
    selectBox.appendChild(createOption('Google', 'http://www.google.com/search', 'q'));
    selectBox.appendChild(createOption('English Wikipedia', 'http://en.wikipedia.org/wiki/Special:Search', 'search'));
    selectBox.style.margin = '0 .3em 0 .6em';
    if (document.getElementById('loadStatus')) {
        var lStat = document.getElementById('loadStatus');
    } else {
        var lStat = fullText;
    }
    lStat.parentNode.insertBefore(selectBox, lStat);
}

var searchEngines = [];
addOnloadHook(SpecialSearchEnhanced);