BECOME=(typeof BECOME=='undefined'?{}:BECOME);
BECOME.classes=(typeof BECOME.classes=='undefined'?{}:BECOME.classes);
BECOME.classes.Events = function(id)
{
	var rows, i;
	
	if(!(this.root = document.getElementById(id))) return;
	rows = Shine.getElementsByClass(this.root, 'tr', 'event-row');
	for(i = 0; i < rows.length; i++)
	{
		this.hookEventRow(rows[i]);
	}
}
BECOME.classes.Events.prototype.hookEventRow = function(row)
{
	var details;
	
	for(details = row.nextSibling; details; details = details.nextSibling)
	{
		if(!details.tagName || details.tagName.toLowerCase() != 'tr') continue;
		if(!Shine.hasElementClass(details, 'event-details'))
		{
			return false;
		}
		break;
	}
	cells = Shine.getElementsByClass(row, 'td', 'title');
	if(!cells || !cells.length) return false;
	cells = cells[0];
	s = Shine.createHTMLElement('span');
	Shine.setAttribute(s, 'class', 'event-details-toggle');
	s.appendChild(document.createTextNode(Shine.getText(cells)));
	while(cells.firstChild) cells.removeChild(cells.firstChild);
	s.eventDetails = details;
	Shine.addEventHandler(s, 'click', { host: this, handler: this.onToggle });
	cells.appendChild(s);
	details.oldDisplay = details.style.display;
	details.style.display = 'none';
}
BECOME.classes.Events.prototype.onToggle = function(Shine, sender, ev, data)
{
	if(sender.eventDetails.oldDisplay == sender.eventDetails.style.display)
	{
		Shine.removeElementClass(sender.parentNode.parentNode, 'expanded');
		sender.eventDetails.style.display = 'none';
	}
	else
	{
		Shine.addElementClass(sender.parentNode.parentNode, 'expanded');
		sender.eventDetails.style.display = sender.eventDetails.oldDisplay;
	}
}
