/*
 *   Depends:
 *	ui.core.js
 */

(function($){
   function KtSummaryTableHandler(element, options)
   {
     this.element = element;
     this.options = options;
     this.tab = undefined;
     this.page = undefined;
     this.table_id = undefined;
     this.root_url = undefined;
   }

   KtSummaryTableHandler.prototype = {

     init_impl:function(){
       this.tab = this.options['tab'];
       this.page = this.options['page'];
       this.table_id = this.options['index'];
       this.root_url = this.options['root_url'];

       summaryTableObj = this;

       $(document).bind('load_all_table_data', function(event, msg){
			  $.ajax({
				   type: 'GET',
				   url: summaryTableObj.root_url + '/np_ajax/' + summaryTableObj.tab + '/' + summaryTableObj.page + '/' + summaryTableObj.table_id + '/?t=j',
				   dataType: 'json',
				   success: function (data, textStatus) {
				     summaryTableObj.load_values_from_hash(data);
				   }
				 });
			}
		       );

       var data_export_id = "data_export_"+ this.table_id;
       $("#"+data_export_id).click(
	 function(){
	   var data_export_url = summaryTableObj.root_url + '/np_data_export/' + summaryTableObj.tab + '/' + summaryTableObj.page + '/' + summaryTableObj.table_id + '/?t=j';
	   document.location = data_export_url;
	   return false;
	 }
       );

     },

     load_values_from_hash: function(hash) {
       for (h in hash){
         var el = $('#' + h);
         el.empty();
         if (hash[h] != "undefined"){
           el.append(hash[h]);
        }
       }
     }
   };

   function KtSummaryTable()
   {
     this.handler = null;

     this._init = function()
     {
       this.handler = new KtSummaryTableHandler(this.element, this.options);
       this.handler.init_impl();
     };
   }

   var kt_summary_table = new KtSummaryTable();
   $.widget("ui.ktSummaryTable", kt_summary_table);

 })(jQuery);
