//
// Community
//
; (function(window) {

    /**
    * Community Object
    **/
    window.Community = Community = new Object();

    /*#region Community -> Discussion List*/
    Community.List = function() {

        /*******************************
        Variables
        */
        var categoryCheckList = [];
        var checkedCategories = 0;
        var searchCommunity;
        var self = this;

        /*******************************
        Page actions
        */
        function setUpPagination() {

            $(".pagination").pagination(totalClassifieds, { items_per_page: noOfClassifiedsSelected,
                num_display_entries: 5,
                current_page: pageNumber - 1,
                num_edge_entries: 1,
                link_to: communityDiscussionListUrl + "?categoryId=" + category.toString() + "&classNo=" + noOfClassifiedsSelected + "&page=__id__",
                prev_text: prevText,
                next_text: nextText,
                ellipse_text: "...",
                prev_show_always: true,
                next_show_always: true,
                callback: function(page_index, jq) {
                  
                }
            });
        };

        /*******************************
        Handlers
        */
        //it's called every time the previous/next button is clicked
        var onNextButtonClick = function(pageCount) {

            window.location = communityDiscussionListUrl + "?categoryId=" + category.toString() + "&classNo=" + noOfClassifiedsSelected + "&page=" + pageNumber;

        };

        var advancedSearchClicked = function() {

            $(this).toggleClass('selected');
            $("#complexSearchDiv").toggle();

        };
        this.menuSearchClicked = function() {

            var searchWord = $('#searchInput').attr('value').trim();
            var categories = searchCategories.substring(0, searchCategories.length - 1);

            if (searchWord != "" && searchWord != "search community") {
                document.cookie = 'searchCategories=' + categories + '; path=/';

                window.location = communitySearchUrl + "?searchWord=" + searchWord;
            }

            return false;
        };

        this.searchInputKeypress = function(event) {

            var searchWord = $(this).attr('value').trim();
            var categories = searchCategories.substring(0, searchCategories.length - 1);

            document.cookie = 'searchCategories=' + categories + '; path=/';

            if (event.keyCode == '13' && searchWord != "" && searchWord != "search community") {
                window.location = communitySearchUrl + "?searchWord=" + searchWord;

            }
        };


        this.searchInputClicked = function() {

            $(this).attr('value', "");
        };

        this.search = function() {

            var localSearchCategories = "";
            var sendSearchCategories = "";

            $("#categorySearchList").find('div[id*=check]').each(function() {

                if ($(this).hasClass('checked') && $(this).attr("id") != "checkAll") {

                    var thisCheck = $(this).attr('id').toString();
                    localSearchCategories += thisCheck.substring(5, thisCheck.length) + ",";
                }
                pageNumber = 0;

                $("a[name=prev]").hide();
            });

            sendSearchCategories = localSearchCategories.toString().substring(0, localSearchCategories.length - 1);

            if (sendSearchCategories.toString() == "") {

                var allCategories = "";
                $("#categorySearchList").find('div[id*=check]').each(function() {

                    var thisCheck = $(this).attr('id').toString();
                    allCategories += thisCheck.substring(5, thisCheck.length) + ",";
                });

                sendSearchCategories = allCategories.toString().substring(4, allCategories.length - 1);
            }

            var searchWord = $("#searchWordInput").attr('value').trim();
            if (searchWord != "") {
                document.cookie = 'searchCategories=' + sendSearchCategories + '; path=/';

                window.location = communitySearchUrl + "?searchWord=" + searchWord;
            }
        };
        /*******************************
        Initialize everything
        */
        (this.Init = function() {

            var checkAll = new PipenoUI.CheckBox($("#checkAll"), { checked: true });

            setUpPagination();

            if (totalClassifieds <= noOfClassifiedsSelected) {
              $(".pagination").hide();
            }

            $("#complexSearchDiv").hide();

            if (totalClassifieds == 0) {
                $("div.community-home").hide();
                $("div.empty").show();
            } else {
                $(".search.list").hide();
            }

            if (totalClassifieds <= noOfClassifiedsSelected) {
                $("div.pagination").hide();
            }

            $("div.inner a#ctg" + category).addClass('selected');

            $("#searchInput").bind("click", self.searchInputClicked);

            //take from search
            $("#categorySearchList").find('div[id*=check]').each(function() {

                if ($(this).attr("id") != "checkAll") {

                    var categoryCheck = new PipenoUI.CheckBox($(this));

                    categoryCheckList.push(categoryCheck);

                    var categId = $(this).attr('id').toString().substring(5);

                    if ($(this).attr("id") != "checkAll") {
                        if (searchCategories.indexOf(categId) != -1) {

                            categoryCheck.Check(true);
                        }
                        else {
                            checkAll.Check(false);
                        }
                    }

                    $(categoryCheck).bind("change", function(evt, checked) {

                        checkedCategories = 0;

                        $.each(categoryCheckList, function(index, value) {
                            if (categoryCheckList[index].IsChecked()) {
                                checkedCategories++;
                            }
                        });

                        if (checkedCategories == searchCategoriesNumber) {
                            if (checkAll.IsChecked() == false) {
                                checkAll.Check(true);
                            }
                        } else if (checkAll.IsChecked()) {
                            checkAll.Check(false);
                        }


                    });

                }
            });

            $(checkAll).bind("change", function(evt, checked) {

                $.each(categoryCheckList, function(index, value) {

                    if (checked == true) {

                        categoryCheckList[index].Check(true);

                    } else {

                        if (checkedCategories == searchCategoriesNumber || checkedCategories == 0) {
                            categoryCheckList[index].Check(false);
                            checkedCategories = 0;
                        }
                    }
                });

            });
            ////////////////////////////

            $('#searchInput').bind("keypress", self.searchInputKeypress);

            $("#menu-bar div.search a").bind("click", self.menuSearchClicked);

            $("#searchOptionsButton").bind("click", advancedSearchClicked);

            //take from search
            $("#searchButton").click(function() {
                self.search();
            });

            $('#searchWordInput').keypress(function(event) {

                 var charCode;

            if (event && event.which) {
                charCode = event.which;
            } else if (window.event) {
                event = window.event;
                charCode = event.keyCode;
            }
            if (charCode == '13') {
                    self.search();

                }
            });
            ////
        })();
    };
    /*#endregion*/

})(window);
/* End Of File */
