Event.observe(window, 'load', init);

function init()
{
	$$('div.article').each(function(elem){
		elem.observe('mouseover', highlight);
		elem.observe('mouseout', lowlight);
		elem.observe('click', getDetails);
	});
}

function highlight(evt)
{
	var elem = Event.element(evt);
	elem.up('div.article').addClassName('highlight');
}

function lowlight(evt)
{
	var elem = Event.element(evt);
	elem.up('div.article').removeClassName('highlight');
}

function getDetails(evt)
{
	$('progress-indicator').scrollTo();
	$('progress-indicator').show();
	var elem = Event.element(evt);
	var id = elem.up('div.article').id + "";
	id = id.replace('article-', '');
	
	new Ajax.Updater('nytimes', '/articles/get_details/' + id, {onComplete: finishDetails, evalScripts: true});
}

function finishDetails()
{
	$('progress-indicator').hide();
	$$('a.oc').each(function(elem){
		elem.observe('click', dereference);
	});
}

function dereference(evt)
{
	$('home').addClassName('wait');
	Event.stop(evt);
	var elem = Event.element(evt);
	var id = elem.id + '';
	id = id.replace('taglink-', '');
	
	new Ajax.Updater(elem.id + '-details', '/articles/tagDetails/' + id, {onComplete: finishTagDetails, evalScripts: true});
	$(elem.id + '-details').show();
}

function finishTagDetails()
{
	$('home').removeClassName('wait');
	$$('a.disambiguation-link').each(function(elem){
		elem.observe('click', toggleDisambiguation);
	});
}

function toggleDisambiguation(evt)
{
	Event.stop(evt);
	var elem = Event.element(evt);
	var id = elem.id + '';
	id = id.replace('disambiguation-', '');
	
	if($('disambiguation-details-' + id).visible())
	{
		$('disambiguation-details-' + id).hide();
	}
	else
	{
		$('disambiguation-details-' + id).show();
	}
}
