var MAP_ID = "map";

window.onload = init_map;
window.onunload = unload_map;

function init_map() {
	if ( !document.getElementById ) return false;

	var map = document.getElementById(MAP_ID);
	if ( map != null ) {
		var elem = map.getElementsByTagName("li");
		for ( i = elem.length-1; i > -1; i-- ) {
			if ( elem[i].className != "dots" ) {
				elem[i].onmouseover = function() { addHover( this ); };
				elem[i].onmouseout = function() { removeHover( this ); };
				removeHover( elem[i] );
				}
			}

		elem = map.getElementsByTagName("a");
		for ( i = elem.length-1; i > -1; i-- ) {
			elem[i].onfocus = mapLinkFocus;
			elem[i].onblur = mapLinkBlur;
			}
		}
	}

function unload_map() {
	if ( !document.getElementById ) return false;

	var map = document.getElementById(MAP_ID);
	if ( map != null ) {
		var elem = map.getElementsByTagName("li");
		for ( i = elem.length-1; i > -1; i-- ) {
			removeHover( elem[i] );
			}
		}
	}

function addHover( elem ) {
	var string = elem.className;
	elem.className = string + " psuedo_hover";
	}

function removeHover( elem ) {
	var string = elem.className;
	elem.className = string.replace( / psuedo_hover\b/, "" );
	}

function mapLinkBlur() {
	target = this;
	while ( target.tagName != "LI" && target.id != MAP_ID ) {
		target = target.parentNode;
		}
	removeHover( target );
	}

function mapLinkFocus() {
	target = this;
	while ( target.tagName != "LI" && target.id != MAP_ID ) {
		target = target.parentNode;
		}
	addHover( target );
	}
