var iconYellow = new GIcon(); 
iconYellow.image = 'mm_20_yellow.png';
iconYellow.shadow = 'mm_20_shadow.png';
iconYellow.iconSize = new GSize(12, 20);
iconYellow.shadowSize = new GSize(22, 20);
iconYellow.iconAnchor = new GPoint(6, 20);
iconYellow.infoWindowAnchor = new GPoint(5, 1);

var iconBlue = new GIcon(); 
iconBlue.image = 'mm_20_blue.png';
iconBlue.shadow = 'mm_20_shadow.png';
iconBlue.iconSize = new GSize(12, 20);
iconBlue.shadowSize = new GSize(22, 20);
iconBlue.iconAnchor = new GPoint(6, 20);
iconBlue.infoWindowAnchor = new GPoint(5, 1);

var iconRed = new GIcon(); 
iconRed.image = 'mm_20_red.png';
iconRed.shadow = 'mm_20_shadow.png';
iconRed.iconSize = new GSize(12, 20);
iconRed.shadowSize = new GSize(22, 20);
iconRed.iconAnchor = new GPoint(6, 20);
iconRed.infoWindowAnchor = new GPoint(5, 1);

var iconGreen = new GIcon(); 
iconGreen.image = 'mm_20_green.png';
iconGreen.shadow = 'mm_20_shadow.png';
iconGreen.iconSize = new GSize(12, 20);
iconGreen.shadowSize = new GSize(22, 20);
iconGreen.iconAnchor = new GPoint(6, 20);
iconGreen.infoWindowAnchor = new GPoint(5, 1);

var customIcons = [];
    customIcons["author"] = iconYellow;
    customIcons["event"] = iconBlue;
    customIcons["bookstore"] = iconRed;
    customIcons["trip"] = iconGreen;

function getURLParam(strParamName){
  var strReturn = "";
  var strHref = window.location.href;
  if ( strHref.indexOf("?") > -1 ){
    var strQueryString = strHref.substr(strHref.indexOf("?")).toLowerCase();
    var aQueryString = strQueryString.split("&");
    for ( var iParam = 0; iParam < aQueryString.length; iParam++ ){
      if (aQueryString[iParam].indexOf(strParamName.toLowerCase() + "=") > -1 ){
        var aParam = aQueryString[iParam].split("=");
        strReturn = aParam[1];
        break;
      }
    }
  }
  return unescape(strReturn);
} 

function load() {
    var params = location.href.split("?");
    var param = params[1];

    if (GBrowserIsCompatible()) {
	var map = new GMap2(document.getElementById("map_canvas"));

	map.addControl(new GSmallMapControl());
	map.addControl(new GMapTypeControl());

	GDownloadUrl("xml_data.php?" + param, function(data) {
	    var xml = GXml.parse(data);

	    var mainmark = xml.documentElement;
	    var mainlat = mainmark.getAttribute("lat");
	    var mainlng = mainmark.getAttribute("lng");

	    // map.setCenter(new GLatLng(34.267975, -81.647346), 7);
	    if (mainlat != "" && getURLParam("locale") != "") {
		map.setCenter(new GLatLng(mainlat, mainlng), 7);
	    } else {
		map.setCenter(new GLatLng(35.23, -80.845), 5);
	    }
	    
	    var markers = xml.documentElement.getElementsByTagName("marker");

	    for (var i = 0; i < markers.length; i++) {
		var name = markers[i].getAttribute("name");
		var type = markers[i].getAttribute("type");

		if (markers[i].firstChild.childNodes.length) { 
		    var descr = markers[i].firstChild.firstChild.data.slice(0,100); 
		} else {
		    var descr = 'Description';
		}
		var alink = markers[i].childNodes[1].firstChild.data;
		var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")),
				parseFloat(markers[i].getAttribute("lng")));

		var marker = createMarker(point, name, type, descr, alink);
		map.addOverlay(marker);

		var boxtype = type + "s";
		var elist = document.getElementById(boxtype);

		var ediv = document.createElement('div');
		var ddiv = document.createElement('div');

		ediv.setAttribute("class", "ediv");
		ddiv.setAttribute("class", "ddiv");

		var elink = document.createElement("a");
		elink.setAttribute("href", alink);
		var etext = document.createTextNode(name);
		var dtext = document.createTextNode(descr);
		
		elink.appendChild(etext);
		ediv.appendChild(elink);
		ddiv.appendChild(dtext);
		ediv.appendChild(ddiv);

		elist.appendChild(ediv);
	
	    }
	});
    }
}

function createMarker(point, name, type, descr, alink) {
  var marker = new GMarker(point, customIcons[type]);
  var html = "<b><a href='" + alink + "'>" + name + "</a></b> <br/>" + descr + "<br/>";
  GEvent.addListener(marker, 'click', function() {
    marker.openInfoWindowHtml(html);
  });
  return marker;
}
