/**************************************************************
Script		: Sortable Table Mask
Version		: 1.0
Authors		: Azim Zakhidov
Desc		: Rewrap heading with span. CSS will appliy proper img tag to it
Licence		: Open Source MIT Licence
Example 1	: try { sortableTableMask.maskTable(tbl) } catch(e){};
Example 2	: try { sortableTableMask.findTables() } catch(e){};    
**************************************************************/

var sortableTableMask;
window.addEvent('load', function() {
	sortableTableMask = new sortableTableMaskClass();
});

var sortableTableMaskClass = new Class({	
	
	options : {
		sortTables: 'table.sortTable',
		skipTable:  'noSorting',
		skipTH:		'noSorting',
		det:{
			tableID: /det/i,
			delay: 1000
		}
	},
	
	setOptions : function(options) {
		this.options = Object.extend(this.options, options || {});
	},
	
	initialize : function(options) {
		this.findTables();
	},
	
	findTables : function(){		
		$$(this.options.sortTables).each( this.maskTable.bind(this) );
	},
	
	maskTable : function(tbl, dontDelay){
		if ( !tbl.$marked && !tbl.hasClass(this.options.skipTable) )
		{	
			if ( tbl.id.test( this.options.det.tableID ) && window.webkit && !dontDelay  )
			{
				this.maskTable.delay( this.options.det.delay, this, [tbl, true] );
				return false;
			}
			
			$ES('th', tbl).each( function(th)
			{	
				if ( !th.hasClass( this.options.skipTH) )
				{					
					th.$text = th.getText().trim();
					
					th.setText('');
					new Element('span').setHTML( th.$text ).injectInside( th );
				}
			}.bind(this));
		}
		tbl.$marked = true;
	}
	
});
/*************************************************************/
