document.observe('dom:loaded', initPage);

function initPage() {
    new PeriodicalExecuter(getQuote, 10);

    initMenu();
    initToolbar();
}

function getQuote() {
	new Ajax.Request(APP_ROOT + 'quotes.asp', {
		frequency: 15,
		onComplete: function(transport) {
			new Effect.Fade('random', { queue: 'front', afterFinish: setQuote.bind(transport) });
		}
	});
}

function setQuote() {
	$('random').update(this.responseText);
	new Effect.Appear('random', { queue: 'end' });
}

function initMenu() {
    $('banner').select('img').invoke('observe', 'mouseover', handleMenuOver);
    $('banner').select('img').invoke('observe', 'mouseout', handleMenuOut);
}

function handleMenuOver() {
    this.src = this.src.replace("/menu/", "/menu/on/");
}

function handleMenuOut() {
    this.src = this.src.replace("/menu/on/", "/menu/");
}

function initToolbar() {
    $$('#toolbar-top > li').invoke('observe', 'mouseover', handleToolbarOver);
    $$('#toolbar-top ul').invoke('observe', 'mouseout', handleToolbarOut);
}

function handleToolbarOver() {
    handleToolbarOut();
    
    var child = this.down('ul');
    if(child) child.show();
}

function handleToolbarOut() {
    $('toolbar-top').select('ul').invoke('hide');
}