var map = {
	prefs: {
		activeClassName: 'activated',
		bedrijvencentrumClassName: 'bedrijvencentrum'
	},
	
	consts: {
		activeElms: null,
		bedrijvencentrum: null
	},
	
	busy: false,
	
	init: function() {
		$('body').addClass('js');
		
		var liElms = $('#markers li, #legenda li');
			liElms.mouseover(map.activeItems);
			liElms.mouseout(map.deactiveItems);
		
		map.consts.bedrijvencentrum = $('#nautisch-bedrijven-centrum').hide();
		map.consts.bedrijvencentrum.find('h2').click(map.bedrijvencentrum.hide).attr('title', 'Klik om te sluiten').css('cursor', 'pointer');
		
		$('#legenda').after('<div id="footer" />');
		$('#footer').append('<a href="javascript:print();">Print deze pagina</a>');
	},
	
	activeItems: function() {
		map.deactiveItems();
		
		if ($(this).attr('class').search(new RegExp('m\-([0-9]+)')) != -1)
			map.consts.activeElms = $('li.m-' + RegExp.$1); // all LI elements with the same classname as the hovered item
		else
			return;
		
		if ($(this).hasClass(map.prefs.bedrijvencentrumClassName))
			map.bedrijvencentrum.show();
		
		map.consts.activeElms.addClass(map.prefs.activeClassName);
	},
	
	deactiveItems: function() {
		if (map.consts.activeElms)
			map.consts.activeElms.removeClass(map.prefs.activeClassName);
	},
	
	bedrijvencentrum: {
		show: function() {
			if (map.busy) return;
			
			map.busy = true;
			map.consts.bedrijvencentrum.fadeIn(750, function() {
				map.busy = false;
			});
		},
		
		hide: function(e) {
			if (map.busy) return;
			if ($(e.target).is('a')) return true;
			
			map.busy = true;
			map.consts.bedrijvencentrum.fadeOut(750, function() {
				map.busy = false;
			});
		}
	}
}

$(map.init);