﻿
var debug_on = '0';
var fc = new FlowController();
var sc = new SearchController("MainProducts", "http://193.239.96.158/search/da/smartgirl?wt=json&json.wrf=?");
var freetextBoxes = [];

$(document).ready(function() {
    var search = /search=([^&]+)/i.exec(location.search);
    if (search != null) {
        var term = decodeURI(RegExp.$1);
        sc.SetFreetextCriteria(term);
        for (box in freetextBoxes)
            $("#" + freetextBoxes[box].textId).val(term);
    }
    debug_on = getParam('debug') == '1';
    debug('Debug=' + debug_on);

    //    controlPageSize.RegisterAsTrigger(sc);
    //    controlPageSize.SubscribeEvents(sc);

    for (box in freetextBoxes)
        freetextBoxes[box].RegisterAsTrigger(sc);

    if (typeof controlResults != "undefined") {
        sc.SetPageSize(200);
        controlResults.SubscribeEvents(sc);
        controlResults.RegisterAsTrigger(sc);

        if (typeof controlMultiCheckboxLevels != "undefined") {
            controlMultiCheckboxLevels.RegisterAsTrigger(sc);
            controlMultiCheckboxLevels.SubscribeEvents(sc);
            controlMultiCheckboxLevels.SetTextAfterCount(" stk.");
        }

        if (typeof controlSlider != "undefined") {
            controlSlider.RegisterAsTrigger(sc);
            controlSlider.SubscribeEvents(sc);
        }

        if (typeof sizeControl != "undefined") {
            sizeControl.SubscribeEvents(sc);
            sizeControl.RegisterAsTrigger(sc);
            sizeControl.SetTextAfterCount(" stk.");
            sizeControl.SetLogicOperator("OR");
        }

        if (typeof brandControl != "undefined") {
            brandControl.SubscribeEvents(sc);
            brandControl.RegisterAsTrigger(sc);
            brandControl.SetTextAfterCount(" stk.");
        }

        if (typeof colorControl != "undefined") {
            colorControl.SubscribeEvents(sc);
            colorControl.RegisterAsTrigger(sc);
            colorControl.SetTextAfterCount(" stk.");
        }

        if (typeof controlMultiCheckboxLevelsHidden != "undefined") {
            controlMultiCheckboxLevelsHidden.RegisterAsTrigger(sc);
            controlMultiCheckboxLevelsHidden.SubscribeEvents(sc);
            controlMultiCheckboxLevelsHidden.SetTextAfterCount(" stk.");
            controlMultiCheckboxLevelsHidden.SetLogicOperator("OR");
        }

        if (typeof sortControl != "undefined") {
            sortControl.RegisterAsTrigger(sc);
            sortControl.AddSortOption("Ranking", "Vælg");
            sortControl.AddSortOption("Brand", "Brand (alfabetisk)");
            sortControl.AddSortOption("Category", "Kategori (alfabetisk)");
            sortControl.AddSortOption("PriceAsc", "Pris (stigende)");
            sortControl.AddSortOption("PriceDesc", "Pris (faldende)");
        }

        if (typeof controlPaging != "undefined") {
            controlPaging.SubscribeEvents(sc);
            controlPaging.RegisterAsTrigger(sc);
        }

        if (typeof controlNumberOfResults != "undefined")
            controlNumberOfResults.SubscribeEvents(sc);
    }

    var persistedSearch = Persister.searchKey.get();

    if (!String.isNullOrEmpty(persistedSearch)) // search parameter?
        fc.TriggerPersistedSearch(persistedSearch);
    else if (typeof searchKey != "undefined")
        fc.TriggerPersistedSearch(searchKey);
    else  // no
        fc.TriggerSearch(sc);
});