function addEvent(elm, evType, fn, useCapture) {
	if (elm.addEventListener) {
		elm.addEventListener(evType, fn, useCapture);
		return true;
	}
	else if (elm.attachEvent) {
		var r = elm.attachEvent('on' + evType, fn);
		return r;
	}
	else {
		elm['on' + evType] = fn;
	}
}

function addLoadEvent(func) {
	var oldonload = window.onload;
	if (typeof window.onload != 'function') {
		window.onload = func;
	} else {
		window.onload = function() {
			oldonload();
			func();
		}
	}
}

function mapSetup(pins) {
	if (GBrowserIsCompatible()) {
		var points = new Array();
		var bounds;
		for (i = 0; i < pins.length; ++i) {
			points[i] = new GLatLng(pins[i][0], pins[i][1]);
			if (bounds)
				bounds.extend(points[i]);
			else
				bounds = new GLatLngBounds(points[i], points[i]);
		}

		var map = new GMap2(document.getElementById("map"), {"size": new GSize(544, 408)});
		map.setCenter(bounds.getCenter(), 7);
		if (1 < pins.length)
			map.setCenter(bounds.getCenter(), map.getBoundsZoomLevel(bounds));
		map.addControl(new GMapTypeControl());
		map.addControl(new GLargeMapControl());
		for (i = 0; i < pins.length; ++i)
			map.addOverlay(new GMarker(points[i], {"title": pins[i][2]}));
	}
}
