;(function ($) {

	$.tableList = $.tableList || {};
	
	$.fn.tableList = function( customoptions ) {
	
	 	var thisobj = $(this);  var listBon ="";
	 	var _pageCount, _totalCount =0;
		var options = $.extend( {
			pageNum : 1, 
			pageMax : 15,
			listData :  false, 
			urlListdata : false,
			pager : false,	/* {id: pagerid , count:pagerCount}  */ 
			totalCountId : false,
			totalSumId : false,
			searchFormId : false, 
			formBeforeSubmit: false,
			afterDraw : false 
			
		}, customoptions);
	 
		var searchFrm = {
			type:  'post', dataType:  'json', 	url: options.urlListdata,			
			data:{ pageNum:options.pageNum, pageMax:options.pageMax },
			beforeSubmit: options.formBeforeSubmit,
			success: function(responseData, statusText) {
				_pageCount = responseData.pageCount;   
				_totalCount = responseData.totalCount;
				_totalSum= responseData.totalSum;
				//drawTable(responseData.listdata, thisobj );
				staticDrawTable( thisobj, listBon, responseData.listdata, options.afterDraw);				
				if(options.pager) $(options.pager.id).pager({pagenumber:responseData.pageNum,pagecount:_pageCount,buttonClickCallback:PageClick });
				if(options.totalCountId) $(options.totalCountId).html(addCommas(_totalCount));
				if(options.totalSumId) $(options.totalSumId).html(addCommas(_totalSum));
				
				
				
			}
	 	};
	 
		 return this.each(function() {  
			 listBon = $(this).html();
	         //drawTable(options.listData,thisobj);
			 
	         staticDrawTable( thisobj, listBon, options.listData, options.afterDraw);		
	         if (options.searchFormId) $(options.searchFormId).ajaxForm( searchFrm );
	         if (options.pager) { 
	        	 $(options.pager.id).pager({ pagenumber: 1,pagecount: options.pager.count , buttonClickCallback: PageClick });
	        	 _pageCount = options.pager.count;
	         } 
	         
		 }); // end of return
		 
		 
	     function PageClick (pageclickednumber) {
	    	searchFrm.data.pageNum = pageclickednumber; 
	    	$(options.searchFormId).ajaxSubmit( searchFrm ); 
	    	$(options.pager.id).pager({ pagenumber: pageclickednumber, pagecount: _pageCount , buttonClickCallback: PageClick });
	    	
	     }
	}; // end of function tableList  
	
	
	
	$.extend($.fn.tableList,{
		
		alert : function(messageString){ 
			alert(messageString);
		}
	});  
})(jQuery);  
