function installSearchEngine(url) {
 if (window.external && ("AddSearchProvider" in window.external)) {
   // Firefox 2 and IE 7, OpenSearch
   window.external.AddSearchProvider(url);
 } else if (window.sidebar && ("addSearchEngine" in window.sidebar)) {
  
  alert('Sherlock currently unsupported :( Plugin works only in Internet Explorer 7 & Firefox > 2.0')
  // Firefox <= 1.5, Sherlock
  //window.sidebar.addSearchEngine("http://example.com/search-plugin.src",
  //                                "http://example.com/search-icon.png",
  //                                "Search Plugin", "");
 } else {
   // No search engine support (IE 6, Opera, etc).
   alert("Your browser is currently unsupported! Plugin works only in Internet Explorer 7 &amp; Firefox > 2.0");
 }
}

if (!window.XMLHttpRequest && window.ActiveXObject) window.XMLHttpRequest = function () {
		return new ActiveXObject(navigator.userAgent.indexOf("MSIE 5") != -1 ? "Microsoft.XMLHTTP" : "MSXML2.XMLHTTP"); };

function ajax_get(url, on_success, on_failure)
{
	if (window.XMLHttpRequest) {
		var request = new XMLHttpRequest();
		request.onreadystatechange = function() {
			if (request.readyState == 4) {
				if ((request.status == 200) && request.responseXML)
					on_success(request.responseXML);
				else
					if (on_failure)
						on_failure();
			}
		}
		request.open('GET', url, true);
		request.send(null);
	} else {
		if (on_failure)
			on_failure();
	}	
}