/**
 * Quick Links
 * @author Jonathan Wan
 */
function jwQLDecideHide(e) {
	if (!e) var e = window.event;
	var n = (window.event) ? e.srcElement : e.target;
	var no = n;
	var rn = (e.relatedTarget) ? e.relatedTarget : e.toElement;
	while (no.nodeName != 'BODY') {
		no = no.parentNode;
		if (no.id == 'quick_links' || no.id == 'quick_links_button') return;
	}
	while ((rn && rn != n) && (rn.nodeName && rn.nodeName != 'BODY')) {
		rn = rn.parentNode;
		if (rn.id == 'quick_links' || rn.id == 'quick_links_button') return;
	}
	if (rn == n) return;
	new Effect.Fade('quick_links', {duration: 0.1, from: 0.9});
}

function jwQLShow(e) {
	new Effect.Parallel( [
		new Effect.Appear('quick_links', {sync: true, duration: 0.4, to: 0.9}),
		new Effect.Appear('quick_links_shadow_box', {sync: true, duration: 0.4, to: 0.5})
		], {duration: 0.4});
	if (e) Event.stop(e);
}

function jwQLHide(e) {
	new Effect.Parallel( [
		new Effect.Fade('quick_links', {sync: true, duration: 0.4, from: 0.9}),
		new Effect.Fade('quick_links_shadow_box', {sync: true, duration: 0.4, to: 0})
		], {duration: 0.4});
}

function jwQLGo(e) {
	if (!e) var e = window.event;
	var n = (window.event) ? e.srcElement : e.target;
	new Effect.Parallel( [
		new Effect.Fade('quick_links', {sync: true, duration: 0.4, from: 0.9}),
		new Effect.Appear('quick_links_shadow_box', {sync: true, duration: 0.4, to: 1.0})
		], {duration: 0.4, afterFinish: function(o){ document.location = $(n).readAttribute('href'); }});
}

function jwQLRegisterEvents() {
	$('quick_links').getElementsBySelector('a').each(function(item){item.observe('click', function(e){jwQLGo(e); Event.stop(e); return false;});});
	Event.observe('quick_links_shadow_box',	'mouseover', function(e) { jwQLHide(e); });
	Event.observe('quick_links_button',	'mouseover', function(e) { jwQLShow(e); });
}


Event.observe(window, 'load', function(){ jwQLRegisterEvents(); });

Event.observe(window, 'unload', function() {new Effect.Fade('quick_links_shadow_box', {duration: 0});});

