BSD.namespace("BSD.circle");

YAHOO.util.Event.addListener(window, "load", function() {
    BSD.circle.ConsList = function() {
        var myColumnDefs = [
            {key:"link", label:"", sortable:false},
            {key:"create_dt", label:"", sortable:false, className:'circle_join_date'}
        ];

        var myDataSource = new YAHOO.util.DataSource(cons_dir_responder_url);

        myDataSource.responseType = YAHOO.util.DataSource.TYPE_JSON;
        myDataSource.responseSchema = {
            resultsList: "records",
            fields: ["link","create_dt"],
            metaFields: {
                totalRecords: "totalRecords"
            }
        };

        var myConfigs = {
            initialRequest: "startIndex=0&results="+cons_dir_page_size, // Initial request for first page of data
            dynamicData: true, // Enables dynamic server-driven data
            paginator: new YAHOO.widget.Paginator({
                rowsPerPage : cons_dir_page_size,
                containers : "member_list_ajax_controls",
                previousPageLinkLabel : "&lsaquo; "+BSD.circle.dict.glossary.prev_lowercase,
                nextPageLinkLabel : BSD.circle.dict.glossary.next_lowercase+" &rsaquo;",
                firstPageLinkLabel : "&laquo; "+BSD.circle.dict.glossary.first_lowercase,
                lastPageLinkLabel : BSD.circle.dict.glossary.last_lowercase+" &raquo;",
                template : '{FirstPageLink} {LastPageLink} <div class="yui-pg-center-nav">{PreviousPageLink} {PageLinks} {NextPageLink}</div>'
            }) // Enables pagination
        };

        var myDataTable = new YAHOO.widget.DataTable("member_list_ajax", myColumnDefs, myDataSource, myConfigs);

        myDataTable.handleDataReturnPayload = function(oRequest, oResponse, oPayload) {
            oPayload.totalRecords = oResponse.meta.totalRecords;
            return oPayload;
        }

/*
        myDataTable.configs.paginator.subscribe('pageChange', function(paginator) {
            YAHOO.util.Dom.get('member_list_ajax_controls_topage').value = paginator.newState.page;
        });
*/

        return {
            oDS: myDataSource,
            oDT: myDataTable
        };
    }();

    BSD.circle.ConsListChangePage = function() {
        var ele = YAHOO.util.Dom.get('member_list_ajax_controls_topage');
        var toPage = parseInt(ele.value);

        if (BSD.circle.ConsList.oDT.configs.paginator.hasPage(toPage)){
            BSD.circle.ConsList.oDT.configs.paginator.setPage(toPage);
        }else{
            ele.value = BSD.circle.ConsList.oDT.configs.paginator.getCurrentPage();
        }
    }
});

