	//:::::: INIT VARS ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
	var map;
	var center;
	var mapBounds;
	var t = this;
	var points =[];
	var marker =[];

	//:::::: DEFINE THE STATES OF THE ICONS ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
	var markerImage = [
	G_DEFAULT_ICON.image,
	"http://maps.google.com/mapfiles/dd-start.png",
	"http://maps.google.com/mapfiles/dd-end.png",
	"/images/mapping/marker_green.png",
	"http://www.wm-test.com/images/mapping/marker_red.png" 
	];

	//:::::: WE DEFINE THE YAHOO AJAX OBJECT TO CONNECT ::::::::::::::::::::::::::::::::
	var AjaxObject = { 
		handleSuccess:function(o){ o.argument[0](o); }, 
		handleFailure:function(o){ o.argument[1](o); }, 
		processResult:function(o){ }, 
		startRequest:function(method, url, cb, postVars) {
			YAHOO.util.Connect.asyncRequest(method, url, cb, postVars); 
		}	
	}; 
	// :::::: success ::::::::::::::::::::::::::::::::::::::::::::
	function success(o){
		initMarkers(o);
	}
	// :::::: failure ::::::::::::::::::::::::::::::::::::::::::::
	function failure(o){
		//alert("This didn't work");	
	}
	// :::::: callback ::::::::::::::::::::::::::::::::::::::::::::
	var callback =  { 
		success:AjaxObject.handleSuccess, 
		failure:AjaxObject.handleFailure, 
		scope: AjaxObject,
		argument: [success, failure] 		
	}; 
	
	//:::::: THIS GETS CALLED WHEN THE PAGE IS LOADED ::::::::::::::::::::::::::::::::::::::::: 
	function loadMap(){
//		var url = 'singleMemberLocations.php?user_id='+user_id+'&page='+page+'&epreview='+epreview;
		var url = '/components/prop_thumbs_widget_process.php?user_id='+u;
		AjaxObject.startRequest("GET", url, callback, null); 
	}	

	//:::::: THIS RUNS UPON SUCCESSFUL DB RESULT RETRIEVAL :::::::::::::::::::::::::::::::
	function initMarkers(o) {
		var xmlDoc = o.responseXML;

		var markers = xmlDoc.documentElement.getElementsByTagName("prop");
	 	if (markers.length>0) {
			map = new GMap2(document.getElementById("map"));
			map.setCenter(new GLatLng(0, 0), 0);
			bounds = new GLatLngBounds();
			map.addControl(new GMapTypeControl(0));
			map.addControl(new GSmallMapControl());
			new GKeyboardHandler(map);
			map.enableContinuousZoom();
			map.enableDoubleClickZoom();		
			for (var i=0; i < markers.length; i++) {
				var image;
				var tooltip;
				var url;
				for (c=0; c<markers[i].childNodes.length; c++){
					switch(markers[i].childNodes[c].nodeName) {
						case "tooltip":
							var tooltipArray = markers[i].childNodes[c].firstChild.nodeValue.split("- ");
							tooltip = "";
							if(tooltipArray.length > 0){
								for(var line=0; line<tooltipArray.length; line++){
									if(line==0 && tooltipArray[line]!=""){
										tooltip += "<strong>"+tooltipArray[line]+"</strong><br />";
									} else if (tooltipArray[line]!="") {
										tooltip += tooltipArray[line]+"<br />";
									}
								}
							}
							break;
						case "url":
							url = (markers[i].childNodes[c].firstChild.nodeValue != "") ? markers[i].childNodes[c].firstChild.nodeValue : "";
							break;
					}
				}
				var point = new GPoint(parseFloat(markers[i].getAttribute("lng")),parseFloat(markers[i].getAttribute("lat")));
				points.push({id: markers[i].getAttribute("id"), tooltip: tooltip, url: url, lat: parseFloat(markers[i].getAttribute("lat")), lng: parseFloat(markers[i].getAttribute("lng"))});
				if(markers[i].getAttribute("lng")!="") {
					newMarker = createInfoMarker(i, markers[i].getAttribute("id"), point, tooltip, url);
					map.addOverlay(newMarker);
					bounds.extend(new GLatLng(parseFloat(markers[i].getAttribute("lat")),parseFloat(markers[i].getAttribute("lng"))));
				}
			}
			map.setZoom(map.getBoundsZoomLevel(bounds));	
			var clat = (bounds.getNorthEast().lat() + bounds.getSouthWest().lat()) /2;
			var clng = (bounds.getNorthEast().lng() + bounds.getSouthWest().lng()) /2;
			map.setCenter(new GLatLng(clat,clng));
			mapBounds = map.getBounds();
			center = map.getCenter();
			//initResults(center);	
		} else {
			document.getElementById("map").innerHTML = "<p>This user is not currently sharing any video tours.</p>";		
		}
	}	
	
	//:::::: CREATE A MARKER FOR EACH RESULT :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
	function createInfoMarker(i, id, point, tooltip, url) {
	 	marker[i] = new PdMarker(point);
		marker[i].id = id;
		marker[i].order = i;
		GEvent.addListener(marker[i], "load", function() {
				marker[i].setImage(markerImage[4]);
		});
		GEvent.addListener(marker[i], "click", function() {
			top.location.href= url;
			GEvent.trigger(marker[i],"mouseout");
		});
		GEvent.addListener(marker[i],'mouseover', function(){
			
			marker[i].setTooltip(tooltip);
			marker[i].setImage(markerImage[3]);
			/*
			document.getElementById("results").getElementsByTagName("div")[i].style.background ="#f1f1f1";
			document.getElementById("results").getElementsByTagName("div")[i].getElementsByTagName("img")[0].style.border = "2px solid #33c905";
			document.getElementById("results").getElementsByTagName("div")[i].getElementsByTagName("img")[0].style.padding = "0px";
			*/
			
			document.getElementById("image_slider").getElementsByTagName("li")[i].style.background ="#f1f1f1";
			document.getElementById("image_slider").getElementsByTagName("li")[i].style.border = "2px solid #33c905";
			document.getElementById("image_slider").getElementsByTagName("li")[i].style.padding = "0px";
			
		});
		GEvent.addListener(marker[i],'mouseout', function(){
			marker[i].setImage(markerImage[0]);
			resultRow = document.getElementById("image_slider").getElementsByTagName("a")[i];
			resultImg = resultRow.getElementsByTagName("img")[0];
			document.getElementById("image_slider").getElementsByTagName("a")[i].style.background ="#fff";
			if(resultImg.getAttribute("class") =="resultThumbActive" || resultImg.getAttribute("className") =="resultThumbActive"){
				document.getElementById("image_slider").getElementsByTagName("li")[i].style.border = "2px solid red";
				document.getElementById("image_slider").getElementsByTagName("li")[i].style.padding = "0px";
			} else {
				document.getElementById("image_slider").getElementsByTagName("li")[i].style.border = "2px solid #999";
				document.getElementById("image_slider").getElementsByTagName("li")[i].style.padding = "0px";
			}
		});
		
		return marker[i];
	}
	
	//:::::: THIS POPULATES THE RESULT LIST :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
	function initResults(relativeTo){
		var distanceList = [];
		var p = 0;
		for(var item in points){
			distanceList[p] = {};
			distanceList[p].point = points[item];
			distanceList[p].glatlng = new GLatLng(points[item].lat, points[item].lng);
			distanceList[p].distance = distanceList[p].glatlng.distanceFrom(relativeTo);
			p++;
		}
		// sort by distance
		/*
		distanceList.sort(function(a,b) {
			if(a.distance > b.distance) { return 1 };
			if(a.distance < b.distance) { return -1 };
			return 0;
		});
		*/
		var p = 0;
		var row="Even";
		document.getElementById("results").innerHTML = "";
	
		for(var item in points){
			row="Even";

			activeRow = "";
			resultThumbState = "";
			if(active_id == distanceList[p].point.id) {
				activeRow="Active";
				resultThumbState = "Active";
			}
			var result;

			if(distanceList[p].point.thumb !=""){
				var thumb ="<img src=\""+ distanceList[p].point.thumb + "\" width=\"90\" class=\"resultThumb"+resultThumbState+"\""+p+"\">";
			} else{
				var thumb = "<img src=\"/images/img_noimage_sm.gif\" width=\"90\" class=\"resultThumb"+resultThumbState+"\">";
			}
			result = "<table class=\"result\"><tr><td width=\"90\"><a href=\"javascript:void();\"";
			result += "onclick='GEvent.trigger(marker["+p+"],\"click\")' ";
			result += "onmouseover='handleResultRollover("+p+")' ";
			result += "onmouseout='GEvent.trigger(marker["+p+"],\"mouseout\")'> ";
			result += thumb + "</a></td><td>";
			result += "<a href=\"javascript:void();\"";
			result += "onclick='GEvent.trigger(marker["+p+"],\"click\")' ";
			result += "onmouseover='handleResultRollover("+p+")' ";
			result += "onmouseout='GEvent.trigger(marker["+p+"],\"mouseout\")'> ";
			result += "<strong>"+distanceList[p].point.headline+"</strong></a>";
			result += "<br /><span class=\"price\">"+distanceList[p].point.price+"</span>";
			result += "<br />"+distanceList[p].point.address;
			result += "<br />"+distanceList[p].point.city+", "+distanceList[p].point.province+" "+distanceList[p].point.postal;
			if(distanceList[p].point.bed!="0" && distanceList[p].point.bath!="0"){
				result += "<br />Bedrooms: <strong>"+distanceList[p].point.bed+"</strong> | Baths: <strong>"+distanceList[p].point.bath+"</strong></td></tr></table>";
			}
			else{
				result += "</td></tr></table>";	
			}
			var resultDiv = document.createElement("div");
			resultDiv.innerHTML = result;
			addClass(resultDiv, "listing"+row+activeRow);
			document.getElementById("results").appendChild(resultDiv);
			p++;
		}
	}
	
	//:::::: HANDLE THE RESULT ROLLOVER :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
	function handleResultRollover(p){
		if(points[p] && Number(points[p].lat)){
			window.setTimeout(function() {
				map.panTo(new GLatLng(points[p].lat, points[p].lng));
			}, 100);
			//GEvent.trigger(marker[p],"mouseover");
			marker[p].setImage(markerImage[3]);
			
		}
			document.getElementById("image_slider").getElementsByTagName("li")[p].style.background ="#f1f1f1";
			document.getElementById("image_slider").getElementsByTagName("li")[p].style.border = "2px solid #33c905";
			document.getElementById("image_slider").getElementsByTagName("li")[p].style.padding = "0px";
		
	}
	function handleResultRollout(p){
		if(marker[p]) {
			GEvent.trigger(marker[p], "mouseout");
		}
			document.getElementById("image_slider").getElementsByTagName("li")[p].style.border = "2px solid #999";
			document.getElementById("image_slider").getElementsByTagName("li")[p].style.padding = "0px";
		
	}
