function addEvent(elm, listener, fn) {
	try {
		elm.addEventListener(listener, fn, false);
	} catch(e) {
		elm.attachEvent("on"+listener, fn);
	}
}

var map = null;
var geocoder = null;

function loadNFocusMap(elemId, address) {
	loadMap(elemId);
	showAddress(address);
	fixCSS();
}

function loadMap(elemId) {
	if (GBrowserIsCompatible()) {
		map = new GMap2(document.getElementById(elemId));
		map.addControl(new GMapTypeControl());
		map.addControl(new GLargeMapControl());

		map.setCenter(new GLatLng(39.31, 137.31), 5);
		geocoder = new GClientGeocoder();
	}
}

function showAddress(address) {
	if (geocoder) {
		geocoder.getLatLng(
			address,
			function(point) {
				if (!point) {
					alert(address + " not found");
				} else {
					map.clearOverlays();
					map.setCenter(point, 15);
					var marker = new GMarker(point);
					map.addOverlay(marker);
				}
			}
		);
	}
}

/*
 * Some styles are broken in IE6 after loading GoogleMap
 * To fix that we set again styles via JS functions
 */
function fixCSS() {
	var elems = $$('.pagetopBox');
	if (elems == null) return;
	for (var i=0; i<elems.length; i++) {
		var v = elems[i].className;
		elems[i].className = v;
	}
}
