﻿/// <reference path="../lib/jquery-1.4.1-vsdoc.js" />

// register namespace
if (!window.MartinCollege) {
    window.MartinCollege = {};
}

/*! MartinCollege.search, referring to the old GoogleMinisearch appliance at search.studygroup.com */
MartinCollege.search = (function() {
    var that;

    that = {};

    var googleMini = MartinCollege.config.urls.search;

    var queryParam = {
        site: MartinCollege.config.oldGoogleMiniParameters.site,
        client: MartinCollege.config.oldGoogleMiniParameters.client,
        output: MartinCollege.config.oldGoogleMiniParameters.output,
        num: MartinCollege.config.oldGoogleMiniParameters.num,
        filter: MartinCollege.config.oldGoogleMiniParameters.filter,
        ie: MartinCollege.config.oldGoogleMiniParameters.ie,
        oe: MartinCollege.config.oldGoogleMiniParameters.oe,
        start: MartinCollege.config.oldGoogleMiniParameters.start,
        restrict: MartinCollege.config.oldGoogleMiniParameters.restrict,
        proxystylesheet: MartinCollege.config.oldGoogleMiniParameters.proxystylesheet
    };

    var getParam = function() {
        return $.param(queryParam);
    };

    //manually specify a language code to be appended to the "front-end" parameters used by Google Mini
    var setLanguageChanges = function(languageCode) {

        //currently unused, refer to UIUSA site for example
        if (languageCode != '') {
            languageCode = "-" + languageCode;
        }

        //in the old version of GoogleMini not currently using this "languageCode"....other sites like ACPE, and TaylorsUnilink can
        //queryParam.proxystylesheet = MartinCollege.config.oldGoogleMiniParameters.proxystylesheet + languageCode;

        return;
    };

    var setStartPaginationNumber = function(startNum) {
        queryParam.start = 0;
        if ((startNum != null) && (startNum != '')) {
            if (startNum > 0) {
                queryParam.start = startNum;
            }
        }
        return;
    };

    var search = function() {
        return "q=" + MartinCollege.utils.queryStringValueForKey("q");
    };

    var getRequest = function() {
        return googleMini + '?' + search() + '&' + getParam();
    };

    var doSearch = function(languageCode) {
        var searchResultPage = MartinCollege.config.urls.searchResults;

        try {
            setStartPaginationNumber(MartinCollege.utils.queryStringValueForKey("start"));

            $.ajax({
                url: getRequest(),
                dataType: 'html',
                success: function(data) {
                    //                        $("#search-loading").hide();
                    $("#results")
		        .show()
		        .html(data)
		        .find('a').each(function() {
		            var temp = decodeURIComponent($(this).attr("href"));
		            $(this).attr("href", temp.replace("{page_name}", searchResultPage));
		        });
                    $("#results li span.gsType:contains('[PDF]')").addClass("pdf");
                }
            });
        }
        catch (anError) { alert(anError); }
    };

    that.doSearch = doSearch;
    return that;
})();
