﻿Sys.Application.add_init(AppInit);
function AppInit()
{
    var prm = Sys.WebForms.PageRequestManager.getInstance();
    prm.add_beginRequest(BeginRequestHandler);
}
function BeginRequestHandler(sender, args) 
{
    $("#SearchResults div.productwrapper").each(function(i) {
        $(this).css("visibility", "hidden");
    });
}  


var miniSockFinder = {
    finderIcons : new Array(),    
    FilterObjectsToSend : new Array(),
    AllowDeselect : true,
             
    Initialize : function() {                        
        var me = this;
        $(MiniSockFinderGlobals.FunctionalElements.BtnReset).click(function() { me.ResetSockFinder(); });                
        
        this.GetPresetFilters();
        sockfinderCommon.SetDefaultStateForIcons(prodListfinderIcons, this);
        this.SetupIconClicks();
    },
    GetPresetFilters : function() {
        if (typeof prodListFilterObjects != "undefined")
            this.FilterObjectsToSend = prodListFilterObjects.slice();
        
        this.CopyFiltersIntoHiddenFieldForServerSideAccess();
    },                        
    SetupIconClicks : function() {    
        if (typeof prodListfinderIcons != "undefined") //serialized to page from code-behind
            sockfinderCommon.SetupIconClicks(prodListfinderIcons, this.AllowDeselect, this);
    },    
    CopyFiltersIntoHiddenFieldForServerSideAccess : function() {
        var serializedFilters = Sys.Serialization.JavaScriptSerializer.serialize(this.FilterObjectsToSend);
        $(MiniSockFinderGlobals.FunctionalElements.HiddenFieldSelectedFilters).val(serializedFilters);                
    },
    SelectableIconClicked : function(id) {
        $(MiniSockFinderGlobals.FunctionalElements.HiddenFieldPageNumber).val("1");
    
        var filterObject = sockfinderCommon.CreateFilterObjectForIconClicked(id, prodListfinderIcons);
        
        //do the check below in case icons are clicked multiple times before they are updated (FB4484)
        var filterObjAlreadyInArray = sockfinderCommon.GetFilterObjectFromArray(this.FilterObjectsToSend, filterObject.FilterType, filterObject.SourceId);
        
        if (filterObjAlreadyInArray == null)        
            this.FilterObjectsToSend.push(filterObject);
        
        this.CopyFiltersIntoHiddenFieldForServerSideAccess();        
        var me = miniSockFinder;
        var successCallBack = function(result) { me.OnSuccessFiltersReturnedCallback(result, me); };                
        Wigwam.UI.Web.FrontEnd.Services.SockFinder.GetSockFinderFilters(this.FilterObjectsToSend, successCallBack);
        
    },
    SelectedIconClicked : function(id) {
        $(MiniSockFinderGlobals.FunctionalElements.HiddenFieldPageNumber).val("1");
        
        var filterObject = sockfinderCommon.CreateFilterObjectForIconClicked(id, prodListfinderIcons);
        
        sockfinderCommon.RemoveSelectedFilterFromFiltersArray(filterObject.FilterType, filterObject.SourceId, this);
        this.CopyFiltersIntoHiddenFieldForServerSideAccess();
        
        var me = miniSockFinder;
        var successCallBack = function(result) { me.OnSuccessFiltersReturnedCallback(result, me); };                
        Wigwam.UI.Web.FrontEnd.Services.SockFinder.GetSockFinderFilters(this.FilterObjectsToSend, successCallBack);                                
    },
    OnSuccessFiltersReturnedCallback : function(filterObjectsReturned, me) {           
        sockfinderCommon.UpdateFinderIcons(filterObjectsReturned, prodListfinderIcons, me);
        me.UpdateProducts();
    },
    UpdateProducts : function() {
        __doPostBack(MiniSockFinderGlobals.FunctionalElements.RefreshButtonUniqueId, '');                
    },
    ResetSockFinder : function() {
        this.GetPresetFilters();
        sockfinderCommon.SetDefaultStateForIcons(prodListfinderIcons, this);
        this.UpdateProducts();                
        this.SetupIconClicks();              
    }
};     

