function generateInfoWindow( url, htmlname, htmlimage, htmladdress ) {
	return '<div class="row" id="popupbox">'
	     + '<div class="left col"><a href='+ url +'><img src="' + htmlimage + '" alt="' + htmladdress + '" /></a></div>'
	     + '<div class="right col"><h3>' + htmlname + '</h3>' + htmladdress + '<br /><br />&raquo; <a href='+ url +'>More Info</a></div>'
			 + '</div>';
}

function plotPoint( point, url, htmlname, htmlimage, htmladdress ) {
	//preload image
	if( htmlimage )
	{
		var image = new Image();
		image.src = htmlimage;
	}
	var marker = new GMarker(point, myicon);
	if( url && url.length > 0 )	{
		GEvent.addListener(marker, "click", function() {
			map.openInfoWindowHtml(point, generateInfoWindow( url, htmlname, htmlimage, htmladdress ));
		});
	}
	
	map.addOverlay(marker);
	currentoverlay = marker;
}

function plotCoords(lat,lng, map, url, htmlname, htmlimage, htmladdress)
{
	if( lat != 0 && lng != 0 )
	{
		var point = new GLatLng( lat, lng );
		plotPoint( point, url, htmlname, htmlimage, htmladdress );
	}
}
 
function plot(address, map, url, htmlname, htmlimage, htmladdress) {
		var geocoder = new GClientGeocoder();
		geocoder.getLatLng (
			address,
			function(point) {
				if (!point) {
					//alert(address + " not found.\n Please check your address or enter a custom Google Map URL.");
				} else {
					plotPoint( point, url, htmlname, htmlimage, htmladdress );
				}
			}
		);
 
}

function plotUrl(gmurl,map, url, htmlname, htmlimage, htmladdress ) {
	var params = parseGmapLink( gmurl );
	var gm_mapType=G_NORMAL_MAP;
	var gm_zoom=10;
	if(params["t"]=="k"){gm_mapType=G_SATELLITE_MAP;gm_zoom=parseInt(params["z"]);}
	else if(params["t"]=="" || params["t"]==null){gm_mapType=G_NORMAL_MAP;gm_zoom=parseInt(params["z"]);}
	else if(params["t"]=="h"){gm_mapType=G_HYBRID_MAP;gm_zoom=parseInt(params["z"]);}

	if(params["lat"]==null && params["long"]==null && params["q"]!=null && params["q"].indexOf("http://")==-1){
			var geocoder = new GClientGeocoder();
			geocoder.getLatLng(
			unescape(params["q"].replace(/\+/g,  " ")),
			function(point){
				if (!point) {
					alert("Custom URL can't translate an address.");
				} else {
					plotPoint( point, url, htmlname, htmlimage, htmladdress );
				}
			}
			);
	}
	else if(params["q"]!=null && params["q"].indexOf('http://')!=-1){
		//alert(params["q"]);
		//var geoxml = new GGeoXml(params["q"]);
		//var geoxml = new GGeoXml("http://www.emich.be/fr/kml");
		//gm_addXMLMarker(geoxml);
	}
	else{
		if (!point) {
			//alert("Custom URL can't translate an address.");
		} else {
			var point = new GLatLng(params["lat"],params["long"]);
			plotPoint( point, htmlimage, htmladdress );
		}
	}
}

function refreshMap() {
	if( currentoverlay != null )
		map.removeOverlay( currentoverlay );
	if( $('txt_googlemapalt').value != "" )
	{
		plotUrl( $('txt_googlemapalt').value, map );
	}
	else
	{
		var address = $('txt_address_address').value;
		var city = $('txt_address_city').value;
		var prov = $('txt_address_province').value;
		var combined = address;
		if( city == "" )
			city = "Ottawa";
		if( prov == "" )
			prov = "On";
		var combined = address + "," + city + "," + prov;
		plot(combined, map);
	}
}

function parseGmapLink(url) {
	var parts = url.split("?");
	if(parts.length<2)return new Array();
	var params = parts[1].split("&");
	var gMapParams=new Array();
	for(i = 0 ; i < params.length ; i++){
		keyValue=params[i].split("=");
		if(keyValue[0]!="ll"){
			gMapParams[keyValue[0]]=keyValue[1];
		}
		else{
			var latlong=keyValue[1].split(",");
			gMapParams["lat"]=latlong[0];
			gMapParams["long"]=latlong[1];
		}
	}
	return gMapParams;
}

function writeKey() {
		var key;
		if (location.href.indexOf('district.atomicmotion.com') > 0) {
			key = 'ABQIAAAABFV0h0n1zzd__s9WR6k5aBRRpoZDubItSRrmsxAldOiMXDYQ8RQfpOdj0ZkNvYmdQ5BC544c9B8q0A';
		} else if (location.href.indexOf('districtrealty.com') > 0) {
			key = 'ABQIAAAABFV0h0n1zzd__s9WR6k5aBSJNgJuaeVI-hc2cJewucBCR56gXhTonXZXt1Xt758wWRi88Mq8Imz-Ow';
		} 
		
		document.write('<scr'+'ipt src="http://maps.google.com/maps?file=api&amp;v=2&amp;key='+key+'"></scr'+'ipt>');
}

function initOverviewMap() {
	myicon.image = "images/pin.png";
	myicon.iconSize = new GSize(23, 25);
	myicon.iconAnchor = new GPoint(10, 25);
		
	map.setCenter(new GLatLng(45.405000,-75.685000), 12);
	map.addControl(new GLargeMapControl());
	map.addControl(new GMapTypeControl());
}

	