﻿function SearchBoxReturn(SearchBox, defaultSearchBoxPhrase, searchPage, queryStringName, ignoreDefaultTextAndBlank, additionalParams) {
    var e = event.keyCode;
    if (e == 13) {
        SearchWithSearchBox(SearchBox, defaultSearchBoxPhrase, searchPage, queryStringName, ignoreDefaultTextAndBlank, additionalParams);
        return false
    }
}

function SearchPhrase(SearchBoxID, defaultSearchBoxPhrase, searchPage, queryStringName, ignoreDefaultTextAndBlank, additionalParams) {
    var SearchBox = document.getElementById(SearchBoxID);
    SearchWithSearchBox(SearchBox, defaultSearchBoxPhrase, searchPage, queryStringName, ignoreDefaultTextAndBlank, additionalParams);
    return false
}

function SearchPhraseFromLink(SearchBoxID, defaultSearchBoxPhrase, searchPage, queryStringName, ignoreDefaultTextAndBlank, additionalParams) {
    var SearchBox = document.getElementById(SearchBoxID);
    SearchWithSearchBox(SearchBox, defaultSearchBoxPhrase, searchPage, queryStringName, ignoreDefaultTextAndBlank, additionalParams);
}

function SearchWithSearchBox(SearchBox, defaultSearchBoxPhrase, searchPage, queryStringName, ignoreDefaultTextAndBlank, additionalParams) {
    if (SearchBox.value != null && SearchBox.value != "" && SearchBox.value != defaultSearchBoxPhrase) {
        ExecuteSearch(SearchBox.value, searchPage, queryStringName, additionalParams);
    }
    else if(!ignoreDefaultTextAndBlank) {
        ExecuteSearch("", searchPage, queryStringName, additionalParams);
    }
}

function ExecuteSearch(searchString, searchPage, queryStringName, additionalParams) {
    if (searchPage == null || searchPage == "") {
        searchPage = "SearchResults.aspx";
    }
    if (queryStringName == null || queryStringName == "") {
        queryStringName = "q";
    }
    var docLocation = "";
    if (searchString != null && searchString != "") {
        if (additionalParams != null && additionalParams.length > 0) {
            docLocation = searchPage + "?" + queryStringName + "=" + URLEncode(searchString) + "&" + additionalParams
        }
        else {
            docLocation = searchPage + "?" + queryStringName + "=" + URLEncode(searchString);
        }
    }
    else {
        docLocation = searchPage + "?" + additionalParams;
    }
    document.location = docLocation;
}

function URLEncode(f) {
    var h = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_.!~*'()";
    var b = "0123456789ABCDEF";
    var e = f;
    var g = "";
    for (var c = 0; c < e.length; c++) {
        var d = e.charAt(c);
        if (d == " ") {
            g += "+"
        }
        else {
            if (h.indexOf(d) != -1) {
                g += d
            }
            else {
                var a = d.charCodeAt(0);
                if (a > 255) {
                    alert("Unicode Character '" + d + "' cannot be encoded using standard URL encoding.\n(URL encoding only supports 8-bit characters.)\nA space (+) will be substituted.");
                    g += "+"
                }
                else {
                    g += "%";
                    g += b.charAt((a >> 4) & 15);
                    g += b.charAt(a & 15)
                }
            }
        }
    }
    return g
}
