﻿var tableSort = {

    previousIndex: null,
    _interval: null,
    _allRows: null,
    _totalRows: null,
    _totalPages: null,
    _activeIndex: null,
    _paging: false,
    _showSold: true,
    _cookieJar: false,
    _allData: null,

    init: function(interval) {
        // Sätter intervallen som skall visas per sida.
        if (interval == null) {
            interval = 10;

        }
        else {
            $(".table-objectlist").trigger("update");
        }
        tableSort._interval = interval;
        tableSort._allRows = $("tbody").children();

        tableSort._allData = $(".table-objectlist").html();

        tableSort._totalRows = tableSort._allRows.length;

        
        //        if ($("#viewTabs_objectsLink").html() != null) {

        //            if ($("#viewTabs_objectsLink").html().substring(9) <= tableSort._totalRows);
        //            {
        //                $("#viewTabs_objectsLink").html("Bostäder: " + tableSort._totalRows);
        //            }
        //        }
        tableSort._totalPages = Math.ceil(tableSort._totalRows / tableSort._interval);

        var slask = "<p class='psilver'>Visa: ";
        var sida = 1;

        for (var i = 0; i < tableSort._totalPages; i++) {
            var end;
            if ((i + 1) == tableSort._totalPages)
                end = tableSort._totalRows + "</a>";
            else
                end = ((i + 1) * tableSort._interval) + "</a> | ";


            if (tableSort._activeIndex == null) {
                tableSort._activeIndex = 0;
                slask += "<a href='javascript:void();' onclick='tableSort.change(" + i + ");' class='next bold'>" + sida + "-" + end;
            }
            else {
                slask += "<a href='javascript:void();' onclick='tableSort.change(" + i + ");' class='next'>" + sida + "-" + end;

            }
            sida += tableSort._interval;
        }
        slask += "<a href='javascript:void();' onclick='tableSort.toggleAll();' class='next'>Alla</a>";
        slask += "</p>";
        slask += "<input type='hidden' id='allObjects' />";
        $("#pager").html(slask);




        $(".table-objectlist").tablesorter();
        if (tableSort._paging == true) {
            $(".table-objectlist").tablesorterPager({ container: $("#pager"), size: interval, positionFixed: false });

        }

        $("th").click(function() {
            if (this.cellIndex != 0) {
                if (tableSort._cookieJar) {
                    CookieMonster.sortTableCell(this.cellIndex);
                }

                var index = this.cellIndex;

                var rows = $("tbody").children();

                tableSort.changeCellClass(index, "fw-b", rows);

                if (tableSort.previousIndex != null && tableSort.previousIndex != index)
                    tableSort.changeCellClass(tableSort.previousIndex, "", rows);

                tableSort.previousIndex = index;
            }
        }
        );



        /* Sort by Rooms by default on ProjectPageObjects */
        if (document.getElementById("result-container") == null) {
            if (!tableSort._cookieJar)
                tableSort.defaultView();
        }



    },

    defaultView: function() {
        $(".default-sort").click();
    },

    change: function(index) {
        $("#pager a").each(function(i) {

            if (i == index) {
                $(this).addClass('bold');
            }
            else {
                $(this).removeClass('bold');
            }
        });
        tableSort._activeIndex = index;


    },

    toggleAll: function() {
        FilterSearch.getObjects(null, null, "true");
    },

    changeCellClass: function(ceIndex, clName, rows) {
        for (var i = 0; i < tableSort._totalRows; i++) {
            var cells = $(tableSort._allRows[i]).children();
            cells[ceIndex].className = clName;
        }
    },

    toogleSold: function(sender) {


        if (tableSort._showSold) {
            $(sender).text("Visa sålda bostäder");

            for (var i = 0; i < tableSort._totalRows; i++) {
                var rows = $(tableSort._allRows[i]).children().children(".red").parent().parent();

                $(rows).hide();

            }


            tableSort._showSold = false;
        }
        else {
            $(sender).text("Dölj sålda bostäder");

            for (var i = 0; i < tableSort._totalRows; i++) {
                var rows = $(tableSort._allRows[i]).children().children(".red").parent().parent();
                $(rows).show();
            }

            tableSort._showSold = true;
        }

        $(".table-objectlist").trigger("update"); $(".table-objectlist").trigger("append-cache");
    }

}

$(document).ready(function() {

    tableSort.init();
});

if($.browser.msie)
    window.onload = tableSort.init;


