var Jt_Selector_Table = new Class({
	initialize: function(parent,rows,fields) {
		this._parent = ('element' === $type(parent)) ? parent : null;
		this._fields = ('object' === $type(fields)) ? fields : {'edit':true,'del':true};
		this._rows	 = [];
		this._names  = [];
		this._edits  = [];
		this._dels   = [];
		
		this._table  = null;
		
		if(!this._parent) {
			return;
		}
		
		this._createTable(rows);
	},
	
	empty: function() {
		this._table.empty();
	},
	
	dispose: function() {
		this._table.dispose();
	},
	
	addRow: function(row) {
		var self = this;
		var tr = new Element('tr',{});
		
		var td_name = new Element('td',{
			'class': 'jtTable__selectorCellName',
			'html': row.name
		}).inject(tr);
		
		if(true === this._fields.edit && true === this._fields.del) {
			td_name.setStyle('width','60%');
		} else if(true === this._fields.edit || true === this._fields.del) {
			td_name.setStyle('width','80%');
		} else {
			td_name.setStyle('width','100%');
		}
		
		this._names.push(td_name);
		
		if(true === this._fields.edit) {
			var td_edit = new Element('td',{
				'class': 'jtTable__selectorCellEdit',
				'html': jtSelectorTableTexts.get('EDIT')
			}).inject(tr);
			
			td_edit.triggerId = row.id;
			
			if(true === this._fields.del) {
				td_edit.setStyle('width','20%');
			} else {
				td_edit.setStyle('width','40%');
			}
			
			this._edits.push(td_edit);
		}
		
		if(true === this._fields.del) {
			var td_del = new Element('td',{
				'class': 'jtTable__selectorCellDelete',
				'html': jtSelectorTableTexts.get('DELETE')
			}).inject(tr);
			
			td_del.triggerId = row.id;
			
			if(true === this._fields.edit) {
				td_del.setStyle('width','20%');
			} else {
				td_del.setStyle('width','40%');
			}
			
			this._dels.push(td_del);
		}
		
		tr.inject(this._table);
		
		this._rows.push(tr);
		
		return tr;
	},
	
	getNameCellFrom: function(row) {
		return row.getChildren('td.jtTable__selectorCellName')[0];
	},
	
	getEditCellFrom: function(row) {
		return row.getChildren('td.jtTable__selectorCellEdit')[0];
	},
	
	getDelCellFrom: function(row) {
		return row.getChildren('td.jtTable__selectorCellDelete')[0];
	},
	
	_createTable: function(rows) {
		var self = this;
		self._table = new Element('table',{
			'class': 'jtTable__selectorTable'
		}).inject(self._parent);
		
		rows.each(function(row){
			if(row.id > 0) {
				self.addRow(row);
			}
		});
	}
});
