if (typeof Podbop == 'undefined') Podbop = {};

Podbop.Maps = {
	COOKIE_NAME:     'selected_map',
	COOKIE_LIFETIME: 365,
	CONTAINER_ID:    'map',
	DEFAULT_MAP_ID:  'us',
	ACTIVE_ID:       'map-active',
	_links:          {},
	_maps:           {},

	init: function() {
		var container = $(Podbop.Maps.CONTAINER_ID);
		if (container) {
			var tabs = container.getElementsByTagName('li');
			for (var i = 0; i < tabs.length; i++) {
				var tab  = tabs[i];
				var link = tab.getElementsByTagName('a')[0];

				Podbop.Maps._links[link.hash.substr(1)] = link;
				addEvent(link, 'onclick', function() { Podbop.Maps.select(this.hash.substr(1)); return false; });
			}

			var selectedMap = Podbop.Maps.getCookie();
			Podbop.Maps.select(selectedMap ? selectedMap : Podbop.Maps.DEFAULT_MAP_ID);
		}
	},
	add: function(id, ufo) {
		Podbop.Maps._maps[id] = ufo;
	},
	select: function(id) {
		var container = $(Podbop.Maps.CONTAINER_ID);

		Podbop.Maps.clear(container);
		Podbop.Maps.insert(id, container);
	},
	clear: function(container) {
		Element.removeChildren(container, 'div');

		var links = container.getElementsByTagName('a');
		for (var i = 0; i < links.length; i++) {
			var link = links[i];
			if (link.getAttribute('id') == Podbop.Maps.ACTIVE_ID) {
				link.removeAttribute('id');
			}
		}
	},
	insert: function(id, container) {
		var div = document.createElement('div');
		div.setAttribute('id', id);
		container.appendChild(div);

		var ufo = Podbop.Maps._maps[id];
		if (ufo) {
			Podbop.Maps._links[id].setAttribute('id', Podbop.Maps.ACTIVE_ID);
			Podbop.Maps.setCookie(id);
			UFO.create(Podbop.Maps._maps[id], id);
		}
	},
	setCookie: function(id) {
		if (typeof Cookie == 'undefined') return;

		Cookie.create(Podbop.Maps.COOKIE_NAME, id, Podbop.Maps.COOKIE_LIFETIME);
	},
	getCookie: function() {
		if (typeof Cookie == 'undefined') return;

		return Cookie.read(Podbop.Maps.COOKIE_NAME);
	}
};

addEvent(window, 'onload', Podbop.Maps.init);
