
(function(j$) {
    function createCookie(name, value, expiryDays)
    {
        var expireDate = new Date(new Date().getTime() + (expiryDays * 86400000));
        document.cookie = name + "=" + value + "; expires=" + expireDate.toGMTString() + "; path=/;";
    }


    function cookieExists(name)
    {
        if (document.cookie.indexOf(name + "=") >= 0) { return true; }
        else { return false; }
    }
    
    
    
    var popupIsShowing = false;
    
    window["load_Hyper_Modules_EventsCalendar_View"] = function(obj)
    {
        j$(".filter_panel").hide(); // Initialize it as hidden.
        
        j$(".btnFilterPopup").click(function(event) {
            if (popupIsShowing)
            {
                j$(".filter_panel").hide();
                popupIsShowing = false;
            }
            else
            {
                j$(".filter_panel").show();
                popupIsShowing = true;
            }
        });
        
        
        j$(".counter_trigger").each(function(i) {
            var self = j$(this);
            var itemID = parseInt(self.find("input.counter_id").val());

            if (cookieExists("Event" + itemID + "_Count"))
            {
                self.parent().find(".counter_notgoing").hide();
                self.parent().find(".counter_going").show();
            }
            else
            {
                self.unbind("click").click(function(event) {
                    obj.IncrementCount(itemID, {
                        onSuccess: function(result) { 
                            self.parent().find(".counter_count").text(result.Result);
                            createCookie("Event" + itemID + "_Count", "true", 10);
                            
                            self.parent().find(".counter_notgoing").hide();
                            self.parent().find(".counter_going").show();
                            
                            self.unbind("click");
                        },
                        onFailure: function(exception) { alert(exception.Name + "\n" + exception.Message); }
                    });
                });
            }
        });
    };

    window["load_Hyper_Modules_EventsCalendar_ViewDetail"] = window["load_Hyper_Modules_EventsCalendar_View"];
})(jQuery);
