
        // when performing a search, redirect the user to the API version of the application
        // URL + query = etc
        function doRedirect() {
            window.location = '?query=' + document.getElementById('txtQuery').value;
        }



        function doSearch() {
            var txtQuery = document.getElementById('txtQuery').value;

            if (txtQuery != "") {
                //var resultTable = document.getElementById('resultsTable');
                //resultTable.visibility = visible;

                document.getElementById('googleResults').innerHTML = "Searching google...";
                document.getElementById('bingResults').innerHTML = "Searching bing...";

                doGoogleSearch(txtQuery);
                doBingSearch(txtQuery);
                doYahooSearch(txtQuery);
            }

            $("#resultsImage").show();
            $("#resultsTable").slideDown("slow");
            $("#explanation").slideUp();

        }

        // on page load complete, fire off a jQuery json-p query
        // against Google web search
        function doGoogleSearch(query) {
            var url = "http://ajax.googleapis.com/ajax/services/search/web?rsz=large&q=" + query + "&v=1.0&callback=?";
            $.getJSON(url, function(data) {
                if (data.responseData.results &&
					data.responseData.results.length > 0) {
                    var results = data.responseData.results;
                    var cursor = data.responseData.cursor;
                    var content = document.getElementById('googleResults');
                    var count = document.getElementById('googlecount');
                    var more = document.getElementById('googleMore');

                    var string;
                    string = '';
                    string += "<table>";
                    for (var i = 0; i < results.length; i++) {
                        // Display each result however you wish
                        string += "<tr><td><b><a href='" + results[i].unescapedUrl + "'>" + results[i].titleNoFormatting + "</a></b></td></tr>";
                        string += "<tr><td>" + results[i].content + "</td></tr>";
                        string += "<tr><td class='tiny'>" + results[i].unescapedUrl + "</td></tr>";
                        string += "<tr><td>&nbsp;</td></tr>";
                    }

                    string += "</table>";

                    content.innerHTML = string;

                    count.innerHTML = "...found approximately " + cursor.estimatedResultCount + " records...";
                    more.innerHTML = "<a href='" + cursor.moreResultsUrl + "'>More from google...</a>";

                }
            });
        }

        function doBingSearch(query) {
            var url = "http://api.search.live.net/json.aspx" +
                            "?AppId=B9B1EF3E1C7FBD63CB74D8D9100396BCFD61D075" +
                             "&Market=en-GB&Query=" + query +
                             "&Sources=web" +
                             "&web.Count=8" +
                             "&JsonType=callback&JsonCallback=?";

            $.getJSON(url, function(data) {
                if (data.SearchResponse.Web.Results &&
					data.SearchResponse.Web.Results.length > 0) {
                    var results = data.SearchResponse.Web.Results;
                    var content = document.getElementById('bingResults');
                    var count = document.getElementById('bingcount');
                    var more = document.getElementById('bingMore');

                    var string;
                    string = '';
                    string += "<table>";
                    for (var i = 0; i < results.length; i++) {
                        // Display each result however you wish
                        string += "<tr><td><b><a href='" + results[i].Url + "'>" + results[i].Title + "</a></b></td></tr>";
                        string += "<tr><td>" + results[i].Description + "</td></tr>";
                        string += "<tr><td class='tiny'>http://" + results[i].DisplayUrl + "</td></tr>";
                        string += "<tr><td>&nbsp;</td></tr>";
                    }

                    string += "</table>";

                    content.innerHTML = string;

                    count.innerHTML = "...found approximately " + data.SearchResponse.Web.Total + " records...";
                    more.innerHTML = "<a href='http://www.bing.com/search?q=" + query + "&go=&form=QBLH&filt=all&qs=n'>More from bing...</a>";

                }
            });

        }

        function doYahooSearch(query) {
            var url = "http://boss.yahooapis.com/ysearch/web/v1/" + query +
                            "?appid=dj0yJmk9cGs1T1JUODZwd096JmQ9WVdrOVZrZG5lVVpETkdNbWNHbzlNVGc1T0RNd01EZ3pNUS0tJnM9Y29uc3VtZXJzZWNyZXQmeD1jNw--" + 
                            "&count=8" +
                            "&format=json&Callback=?";

            $.getJSON(url, function(data) {
                if (data.ysearchresponse.resultset_web &&
					data.ysearchresponse.resultset_web.length > 0) {
                    var results = data.ysearchresponse.resultset_web;
                    var content = document.getElementById('yahooResults');
                    var count = document.getElementById('yahooCount');
                    var more = document.getElementById('yahooMore');

                    var string;
                    string = '';
                    string += "<table>";
                    for (var i = 0; i < results.length; i++) {
                        // Display each result however you wish
                        string += "<tr><td><b><a href='" + results[i].clickurl + "'>" + results[i].title + "</a></b></td></tr>";
                        string += "<tr><td>" + results[i].abstract + "</td></tr>";
                        string += "<tr><td class='tiny'>" + results[i].url + "</td></tr>";
                        string += "<tr><td>&nbsp;</td></tr>";
                    }

                    string += "</table>";

                    content.innerHTML = string;

                    count.innerHTML = "...found approximately " + data.ysearchresponse.totalhits + " records...";
                    more.innerHTML = "<a href='http://uk.search.yahoo.com/search;p=" + query + "'>More from Yahoo!...</a>";

                }
            });


        }

        function doBuilder() {
            //            var strName = document.getElementById("txtName").value.replace(/^\s+|\s+$/g, '');
            //            var strURI = document.getElementById("txtURL").value.replace(/^\s+|\s+$/g, '');
            //            var strEncoding = document.getElementById("inputEncoding").value;
            //            if (strURI.length < 1) { alert("Please enter the URL of the search results page."); document.getElementById("txtURL").focus(); return false; }
            //            if (strURI.indexOf("TEST") < 0) { alert("The search results URL must contain the word TEST. Please check the URL. It is possible that this tool cannot be used to build a query for that search engine."); document.getElementById("txtURL").focus(); return false; }
            //            if (strName.length < 1) { alert("Please enter a name for the new Search Provider."); document.getElementById("txtName").focus(); return false; }
            //            var strQuery = "Encoding=" + encodeURIComponent(strEncoding) + "&Name=" + encodeURIComponent(strName) + "&URI=" + encodeURIComponent(strURI);
            //            var strAddURI = "http://www.microsoft.com/windows/ie/searchguide/spbuilder.mspx?" + strQuery;
            try {
                window.external.AddSearchProvider('SearchProvider.xml');
            }
            catch (eX) {
                if (70 == (eX.number & 0xFFFF)) {
                    alert("For security reasons, you must use the mouse (or the Enter key) to click the Install button.");
                } else {
                    alert("Unable to add Search Provider. The Create Your Own tool requires Internet Explorer." + " [" + (eX.number & 0xFFFF) + "]");
                }
            }
            return false;
        }
