/* Functions for worldmap */

function select_world_map() {
	hide_all_dealers();

	var world_map_container = document.getElementById('world_map_container');
	var europe_map_container = document.getElementById('europe_map_container');
	var world_map_selector = document.getElementById('world_map_selector');

	if (world_map_selector != null) {
		world_map_selector.style.display = 'none'
	}
	if (europe_map_container != null) {
		europe_map_container.style.display = 'none';
	}
	if (world_map_container != null) {
		world_map_container.style.display = 'block';
	}

	document.cookie = 'worldmap_current_map=world';
}

function select_europe_map() {
	hide_all_dealers();

	var world_map_container = document.getElementById('world_map_container');
	var europe_map_container = document.getElementById('europe_map_container');
	var world_map_selector = document.getElementById('world_map_selector');

	if (world_map_container != null) {
		world_map_container.style.display = 'none';
	}
	if (europe_map_container != null) {
		europe_map_container.style.display = 'block';
	}
	if (world_map_selector != null) {
		world_map_selector.style.display = 'block'
	}

	document.cookie = 'worldmap_current_map=europe';
}

function select_initial_map() {
	var worldmap_cookie = document.cookie.match(/worldmap_current_map=([^;]*)/);

	var current_map;
	if (worldmap_cookie != null) {
		current_map = worldmap_cookie[1];
	}

	if (current_map == 'europe') {
		select_europe_map();
	}
	else {
		select_world_map();
	}
}

function patch_areas(id, prefix) {
	var map = document.getElementById(id);
	if (map != null) {
		var areas = map.getElementsByTagName('area');
		for (var i = 0; i < areas.length; i++) {
			var region = areas[i].href.replace(/.*#dealers_/, '');
			if (region == 'europe') {
				areas[i].href = "javascript:select_europe_map()";
			}
			else {
				areas[i].href = "javascript:show_dealers('" + region + "')";
			}
			areas[i].onmouseover = show_img_factory(region, prefix);
			areas[i].onmouseout = hide_img_factory(region, prefix);
		}
	}
}

function hide_images(id) {
	var container = document.getElementById(id);
	if (container != null) {
		var images = container.getElementsByTagName('img');
		for (var i = 0; i < images.length; i++) {
			if (images[i].id.match(/^img_/)) {
				images[i].style.visibility = 'hidden';
			}
		}
	}
}

function hide_img(region, prefix) {
	var img = document.getElementById('img_' + prefix + '_' + region);
	if (img != null) {
		img.style.visibility = 'hidden';
	}
}

function show_img(region, prefix) {
	var img = document.getElementById('img_' + prefix + '_' + region);
	if (img != null) {
		img.style.visibility = 'visible';
	}
}

function hide_img_factory(region, prefix) {
	return function() { hide_img(region, prefix); };
}

function show_img_factory(region, prefix) {
	return function() { show_img(region, prefix); };
}

function hide_container(id) {
	var container = document.getElementById(id);
	if (container != null) {
		container.style.display = 'none';
	}
}

function hide_all_dealers() {
	var dealers_container = document.getElementById('dealers_container');
	if (dealers_container != null) {
		var divs = dealers_container.getElementsByTagName('div');
		for (var i = 0; i < divs.length; i++) {
			if (divs[i].id.match(/^dealers_/)) {
				divs[i].style.display = 'none';
			}
		}
	}
}

function init_dealers_container() {
	hide_all_dealers();
	var dealers_container = document.getElementById('dealers_container');
	if (dealers_container != null) {
		dealers_container.style.display = 'block';
	}
}

function show_dealers(region) {
	hide_all_dealers();
	var dealers = document.getElementById('dealers_' + region);
	if (dealers != null) {
		dealers.style.display = 'block';
	}
}

