﻿
var RC = RC || {
    Searcher: {}
};

RC.CookieNames = {
    SearchUrl: 'saved_search',
    GeographicCriterion: 'geographic_criterion',
    InfoTypes: 'info_types'
};

// Save search criteria, fetch search results, pass results to filmstrip
//
// geographicCriterion: an array of integer ids representing geographic criteria.
// infoTypes: an array of integer ids representing info types.
//
// Example Usage: RC.Searcher.Search([7, 9, 10], [2, 4]);
//
RC.Searcher.Search = function(geographicCriterion, infoTypes) {
    var buildSearchUrl = function() {
        var geographicValues = "";
        var infoTypeValues = "";

        if (geographicCriterion.length > 0) {
            geographicValues = "?geographicCriteriaIds=" + geographicCriterion.join("&geographicCriteriaIds=");
        }

        if (infoTypes.length > 0) {
            infoTypeValues = ((geographicCriterion.length == 0) ? "?" :  "&") + "infoTypeIds=" + infoTypes.join("&infoTypeIds=");            
        }

        return "/Searcher.ashx" + geographicValues + infoTypeValues;
    };

    RC.Searcher.Remember(geographicCriterion, infoTypes);
    var searchUrl = buildSearchUrl();
    $.cookie(RC.CookieNames.SearchUrl, searchUrl);
    document.getElementById('selectionStripMovie').search(searchUrl);
};

RC.Searcher.Remember = function(geographicIds, infoTypeIds) {
    $.cookie(RC.CookieNames.GeographicCriterion, geographicIds.join());
    $.cookie(RC.CookieNames.InfoTypes, infoTypeIds.join());
};


RC.Searcher.RetrieveGeographicIds = function() {
    return RC.Searcher.RetrieveIdsFromCookie(RC.CookieNames.GeographicCriterion);
};

RC.Searcher.RetrieveInfoTypeIds = function() {
    return RC.Searcher.RetrieveIdsFromCookie(RC.CookieNames.InfoTypes);
};

RC.Searcher.RetrieveIdsFromCookie = function(cookieName) {
    var values = $.cookie(cookieName)
    if (!values) {
        return [];
    }
    return values.split(',');
};
