var closeDropdown    = $H();
var dropdownOpen     = $H();
var dropdownChanging = $H();

function dropDown (itemid) {
    if (dropdownOpen[itemid]) {
        closeDropdown[itemid] = 0;
    } else {
        dropdownOpen[itemid]     = 1;
        closeDropdown[itemid]    = 0;
        dropdownChanging[itemid] = 1;

		var elt = $(itemid);
		elt.addClassName('over');
		var theitem = elt.select('.submenu').first();
		if (theitem) {
			Effect.SlideDown(theitem, {
				duration: 0.2,
				queue: {
					position: 'end',
					scope: itemid,
					limit: 1
				},
				afterFinish: function () {
					dropdownChanging[itemid] = 0;
					setTimeout("dropUp('" + itemid + "');", 50)
				}
			});
		}
	}
}

function dropUp (itemid) {
    if (!dropdownChanging[itemid] && dropdownOpen[itemid] && closeDropdown[itemid]) {
		dropdownChanging[itemid] = 1;
		var elt = $(itemid);
		elt.removeClassName('over');
		var theitem = elt.select('.submenu').first();
		if (theitem) {
			Effect.SlideUp(theitem, {
				duration: 0.1,
				queue: {
					position: 'end',
					scope: itemid,
					limit: 1
				},
				afterFinish: function () {
					dropdownChanging[itemid] = 0;
					dropdownOpen[itemid] = 0;
				}
			});
		}
    } else {
        setTimeout("dropUp('" + itemid + "')", 50);
    }
}

function wireDropDowns () {
	var navRoot = $('mainmenu');
	if (navRoot) {
		navRoot.removeClassName('nojs');

		var items = navRoot.childElements();
		items.each(function(item) {
			var itemid = item.identify();

		    closeDropdown[itemid]		= 0;
		    dropdownOpen[itemid]		= 0;
		    dropdownChanging[itemid]	= 0;

			item.observe('mouseover', function(event) { dropDown(itemid); } );
			item.observe('mouseout', function(event) { closeDropdown[itemid] = 1; } );

			item.removeClassName('rmenuitem');

			var submenu = item.select('div.submenu').first();
			if (submenu) {
				submenu.setStyle({
					display: 'none',
					visibility: 'visible'
				});
				submenu.observe('mouseover', function(event) { closeDropdown[itemid] = 0; } );
				submenu.observe('mouseout', function(event) { closeDropdown[itemid] = 1; } );
				
				if (Prototype.Browser.IE) {
					var shadowdiv = new Element('div', { 'class': 'shadow' }).update("&nbsp;");
					submenu.insert(shadowdiv);
				}
			}
		});
	}
}


function wireActivityTabs () {
	var custlistLink = $$('.activities .custlist_tab a');
	custlistLink.each(function(item) {
		item.observe('click', (function(event) {
			var elt = Event.element(event);
			var cont = elt.up('.activities');
			cont.removeClassName('fixedlist_active');
			cont.addClassName('custlist_active');
			Event.stop(event);
		}).bindAsEventListener(item));
	});

	var fixedlistLink = $$('.activities .fixedlist_tab a');
	fixedlistLink.each(function(item) {
		item.observe('click', (function(event) {
			var elt = Event.element(event);
			var cont = elt.up('.activities');
			cont.removeClassName('custlist_active');
			cont.addClassName('fixedlist_active');
			Event.stop(event);
		}).bindAsEventListener(item));
	});
}


var bannerUrls = new Array();
var bannerImgs = new Array();
var bannerParent;
var currentBanner = 0;

function startBannerRotation () {
	if (bannerUrls.length > 1) {
		bannerImgs[0] = $('headingpic').down('img');
		if (bannerImgs[0]) {
			bannerParent = bannerImgs[0].up(0);
			bannerImgs[0].setStyle({
				display: 'block',
				position: 'absolute',
				top: 0,
				right: 0,
				'z-index': 2
			});
			preloadBanner();
			new PeriodicalExecuter(rotateBanner, 4);
		}
	}
}

function rotateBanner () {
	var nextBanner = currentBanner + 1;
	if (nextBanner >= bannerUrls.length) nextBanner = 0;
	Effect.Fade(bannerImgs[currentBanner]);
	Effect.Appear(bannerImgs[nextBanner]);
	currentBanner = nextBanner;
	preloadBanner();
}

function preloadBanner () {
	var index = currentBanner + 1;
	if (index >= bannerUrls.length) index = 0;
	if ((bannerImgs.length <= index) || (!bannerImgs[index])) {
		bannerImgs[index] = new Element('img', { 
			'src': bannerUrls[index].replace(/&amp;/g, '&'), 
			'width': bannerImgs[0].readAttribute('width'), 
			'height': bannerImgs[0].readAttribute('height') 
		});
		bannerImgs[index].setStyle({
			display: 'none',
			position: 'absolute',
			top: 0,
			right: 0,
			'z-index': 3
		});
		bannerParent.insert(bannerImgs[index]);
	}
}

Element.observe(document, 'dom:loaded', wireDropDowns);
Element.observe(document, 'dom:loaded', startBannerRotation);
Element.observe(document, 'dom:loaded', wireActivityTabs)

