/*
 *
 */
Af.HtmlColumnRepeater = Class.create();

Af.HtmlColumnRepeater.prototype = {
   
   initialize: function(tableId,columns,cols) {
      this.tableId = tableId;
      this.columns = columns;
      this.tableElement = null;
      this.cols =	 cols;
      this.init();
      this.listener = null;
   },
   
   init: function() {
      this.columnList = this.columns.split(',');
      for (var i=0; i<this.columnList.length; i++) {
         this.columnList[i] = trim(this.columnList[i]);
      }
      
      var te = document.getElementById(this.tableId);
      this.tableElement  = te;
      
      if (te == null) {
         return;
      }
      
      if (te.tBodies.length == 0) {
         return;
      }
      
      var tb = te.tBodies[0];
      
      if (tb.rows.length == 0) {
         return;
      }
      
      var ec = new Af.ElementCollection(this.tableElement);
      var e = ec.getFirstElement("TH");
      if (e == null) {
         this.templateRow = this.tableElement.rows[0].cloneNode(true);
         this.tableElement.tBodies[0].removeChild(this.tableElement.rows[0]);
         } else {
         this.header = this.tableElement.rows[0];
         this.templateRow = this.tableElement.rows[1].cloneNode(true);
      }
      removeAll(tb);
   },
   
   setDataList: function(dlist) {
      this.dlist = dlist;
      if (this.dlist == null) {
         this.dlist = new Array();
      }
	  
	  if(this.tableElement == null){
		  this.tableElement = document.getElementById(this.tableId);
	  }
	  if(this.tableElement == null){
		  return;
	  }
      var tb = this.tableElement.tBodies[0];
      removeAll(tb);
      if (this.header != null && this.dlist.length > 0) {
         tb.appendChild(this.header);
      }
      
      for (var i=0; i<dlist.length; i++) {
         var d = dlist[i];
         var row = this.templateRow.cloneNode(true);
         tb.appendChild(row);
         row.onclick = this.rowSelected.bindAsEventListener(this);
         row.id = i;
         var ec = new Af.ElementCollection(row);
         for (var j=0; j<this.columnList.length; j++) {
		    var nm = this.columnList[j];
		    var a = ec.getFirstElementById(nm);
		    a.innerHTML = d[nm];
		    
		 }
      }
   },
   
   rowSelected: function(evt) {
      var e = evt.target ? evt.target : evt.srcElement;
      
      while (e != null) {
         if (e.tagName == 'TR') {
            break;
         }
         e = e.parentNode;
      }
      
      if (e != null && this.listener != null && this.listener.columnRepeaterRowSelected != null) {
         var n = parseInt(e.id);
         this.listener.columnRepeaterRowSelected(this, n);
      }
      
      return false;
   }
}

