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; prev",
                nextPageLinkLabel : "next &rsaquo;",
                firstPageLinkLabel : "&laquo; first",
                lastPageLinkLabel : "last &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();
        }
    }
});
