var SEARCH_MLSID = '';
var SEARCH_FROM_PRICE = '';
var SEARCH_TO_PRICE = '';
var SEARCH_BEDS = '';
var SEARCH_BATHS = '';
var SEARCH_STREET = '';
var SEARCH_CITY = '';
var SEARCH_ZIP = '';
var SEARCH_PTYPE = 'all';
var SEARCH = 'no';

var baseIcon = new GIcon();
baseIcon.shadow = "http://www.google.com/mapfiles/shadow50.png";
baseIcon.iconSize = new GSize(32, 32);
baseIcon.shadowSize = new GSize(37, 34);
baseIcon.iconAnchor = new GPoint(9, 34);
baseIcon.infoWindowAnchor = new GPoint(9, 2);
baseIcon.infoShadowAnchor = new GPoint(18, 25);

var icon;
var yicon;
var map;
//var zoomControl = new GLargeMapControl();
//var typeControl = new GMapTypeControl();
var startPoint = new GLatLng(LATITUDE,LONGITUDE);

var markerArr = new Array();

var gmarkers = [];
var htmls = [];
var labels = ['Summary','More','Directions'];
var tooltip = document.createElement("div");

function mymouseover(i) {
        showTooltip(gmarkers[i])
}

function mymouseout() {
	tooltip.style.visibility="hidden";
}

function showTooltip(marker)
{
      	tooltip.innerHTML = marker.tooltip;
	var point=map.getCurrentMapType().getProjection().fromLatLngToPixel(map.fromDivPixelToLatLng(new GPoint(0,0),true),map.getZoom());
	var offset=map.getCurrentMapType().getProjection().fromLatLngToPixel(marker.getPoint(),map.getZoom());
	var anchor=marker.getIcon().iconAnchor;
	var width=marker.getIcon().iconSize.width;
	var height=tooltip.clientHeight;
	var pos = new GControlPosition(G_ANCHOR_TOP_LEFT, new GSize(offset.x - point.x - anchor.x + width, offset.y - point.y -anchor.y -height)); 
	pos.apply(tooltip);
	tooltip.style.visibility="visible";
}

function createMarker(i,x,y,id,name,ph)
{
	var point = new GLatLng(y,x);
	if (markerArr[i]) map.removeOverlay(markerArr[i]);
	if (ph > 0)
	{
		markerArr[i] = new GMarker(point, yicon);
	}
	else
	{
		markerArr[i] = new GMarker(point, icon);
	}
	markerArr[i].tooltip = '<div class="tooltip">'+name+'</div>';

	map.addOverlay(markerArr[i]);

	GEvent.addListener(markerArr[i], "click", function() {
		var request = GXmlHttp.create();
		request.open("GET", "/gdata.pl?siteid="+SITEID+"&userid="+USERID+"&id="+id, true);
		request.onreadystatechange = function()
		{
			if (request.readyState == 4)
			{
 	   			var xmlDoc = request.responseXML;
		    		var m = xmlDoc.documentElement.getElementsByTagName("marker");
	
				var info = [];

				info[0] = "<style>.text{font-size:11px;}</style>";
				info[0] = info[0] + "<table width=320 border=0 class=text><tr><td width=160 valign=top><table cellspacing=0 cellpadding=1 bgcolor=black><tr><td><img width=150 height=120 src='/photos/linda/picture"+
				m[0].getAttribute("id") + "_1.jpg' onError=\"this.src='http://www.re-maps.com/nophoto150.jpg'\" " +
// SJP				m[0].getAttribute("photo") + "' onError=\"this.src='http://www.re-maps.com/nophoto150.jpg'\" " +
				"></td></tr></table></td><td width=160 valign=top>" +
				"<b>ID:</b> " + (10000000+parseFloat(m[0].getAttribute("id"))) + "<br>\n" +
				"<b>Price:</b> \$" + m[0].getAttribute("price") + "<br>\n";
				if (NOADDRESS == 'no')
				{
					info[0] = info[0] + "<b>Address:</b> " + m[0].getAttribute("address") + "<br>\n";
				}
				info[0] = info[0] + "<b>City:</b> " + m[0].getAttribute("city") + "<br>\n" + 
				"<b>Zip:</b> " + m[0].getAttribute("zip") + "<br>\n";

				if (m[0].getAttribute("beds"))
				{
					info[0] = info[0] + "<b>Beds/Baths:</b> " + (m[0].getAttribute("beds")||'na') + "/" + (m[0].getAttribute("baths")||'na')  + "<br>\n";
				}
				if (m[0].getAttribute("lot_size"))
				{
					info[0] = info[0] + "<b>Lot Size:</b> " + m[0].getAttribute("lot_size") + "<br>\n";
				}
  info[0] = info[0] + "<a href='/l.html?id="+m[0].getAttribute("id")+"' target='"+TARGET+"' class='more'>more information</a><BR>\n";

//SJP				info[0] = info[0] + "<a href='"+m[0].getAttribute("details")+"' target='"+TARGET+"' class='more'>more information</a><BR>\n";
				info[0] = info[0] + "<a href='javascript:void(0);' onclick='add_favorite("+m[0].getAttribute("id")+");tab(\"searchcenter\");subtab(\"favorites\");'>+add to favorites</a></td></tr>";
				info[0] = info[0] + "</table>\n";

				info[1] = '<div class="marker-text" style="overflow:auto; width:320px;height:150px;">'+m[0].getAttribute("info")+'</div>\n';

				if (NOADDRESS == 'no')
    				{
    				    info[2] = "<div class=text>";
				    info[2] = info[2] + "<form action='http://maps.google.com/maps' method='get' target='_blank'>";
				    info[2] = info[2] + "<i>Your address</i>: <br /><input type=text name=saddr value='' size=20><br />";
				    info[2] = info[2] + "<input type=hidden name=daddr value='" + m[0].getAttribute("address") + "," + m[0].getAttribute("city") + "," + m[0].getAttribute("zip") + "' class=text>";
				    info[2] = info[2] + "<input type=submit value='Directions' class=text></form>"; 
				    info[2] = info[2] + "</div>";
				}

				if (info.length > 2) {
					info[0] = '<div style="width:'+info.length*88+'px">' + info[0] + '</div>';
				}
				var tabs = [];
				for (var j=0; j<info.length; j++) {
					tabs.push(new GInfoWindowTab(labels[j],info[j]));
				}

				markerArr[i].openInfoWindowTabsHtml(tabs);
			}
		}
		request.send(null);


		
        });

       	GEvent.addListener(markerArr[i],"mouseover", function() {
		showTooltip(markerArr[i]);
	});        

	GEvent.addListener(markerArr[i],"mouseout", function() {
		tooltip.style.visibility="hidden"
	});
}

function openMarkerInfo(i,id)
{
    var html = '';
    var request = GXmlHttp.create();
    request.open("GET", "/gdata.pl?siteid="+SITEID+"&userid="+USERID+"&id="+id, true);
    request.onreadystatechange = function()
    {
	if (request.readyState == 4)
	{
	    var xmlDoc = request.responseXML;
	    var m = xmlDoc.documentElement.getElementsByTagName("marker");

				var info = [];

				info[0] = "<style>.text{font-size:11px;}</style>";
//				info[0] = info[0] + "<table width=320 border=0 class=text><tr><td width=160 valign=top><table cellspacing=0 cellpadding=1 bgcolor=black><tr><td><img width=150 height=120 src='"+
  info[0] = info[0] + "<table width=320 border=0 class=text><tr><td width=160 valign=top><table cellspacing=0 cellpadding=1 bgcolor=black><tr><td><img width=150 height=120 src='/photos/picture"+
                                m[0].getAttribute("id") + "_1.jpg' onError=\"this.src='http://www.re-maps.com/nophoto150.jpg'\" " +

//SJP				m[0].getAttribute("photo") + "' onError=\"this.src='http://www.re-maps.com/nophoto150.jpg'\" " +
				"></td></tr></table></td><td width=160 valign=top>" +
				"<b>ID:</b> " + (10000000+parseFloat(m[0].getAttribute("id"))) + "<br>\n" +
				"<b>Price:</b> \$" + m[0].getAttribute("price") + "<br>\n";
				if (NOADDRESS == 'no')
				{
					info[0] = info[0] + "<b>Address:</b> " + m[0].getAttribute("address") + "<br>\n";
				}
				info[0] = info[0] + "<b>City:</b> " + m[0].getAttribute("city") + "<br>\n" + 
				"<b>Zip:</b> " + m[0].getAttribute("zip") + "<br>\n";

				if (m[0].getAttribute("beds"))
				{
					info[0] = info[0] + "<b>Beds/Baths:</b> " + (m[0].getAttribute("beds")||'na') + "/" + (m[0].getAttribute("baths")||'na')  + "<br>\n";
				}
				if (m[0].getAttribute("lot_size"))
				{
					info[0] = info[0] + "<b>Lot Size:</b> " + m[0].getAttribute("lot_size") + "<br>\n";
				}
				info[0] = info[0] + "<a href='/l.html?id="+m[0].getAttribute("id")+"' target='"+TARGET+"' class='more'>more information</a><BR>\n";
				info[0] = info[0] + "<a href='javascript:void(0);' onclick='add_favorite("+m[0].getAttribute("id")+");tab(\"searchcenter\");subtab(\"favorites\");'>+add to favorites</a></td></tr>";
				info[0] = info[0] + "</table>\n";

				info[1] = '<div class="marker-text" style="overflow:auto; width:320px;">'+m[0].getAttribute("info")+'</div>\n';

				if (NOADDRESS == 'no')
    				{
    				    info[2] = "<div class=text>";
				    info[2] = info[2] + "<form action='http://maps.google.com/maps' method='get' target='_blank'>";
				    info[2] = info[2] + "<i>Your address</i>: <br /><input type=text name=saddr value='' size=20><br />";
				    info[2] = info[2] + "<input type=hidden name=daddr value='" + m[0].getAttribute("address") + "," + m[0].getAttribute("city") + "," + m[0].getAttribute("zip") + "' class=text>";
				    info[2] = info[2] + "<input type=submit value='Directions' class=text></form>"; 
				    info[2] = info[2] + "</div>";
				}

				if (info.length > 2) {
					info[0] = '<div style="width:'+info.length*88+'px">' + info[0] + '</div>';
				}
				var tabs = [];
				for (var j=0; j<info.length; j++) {
					tabs.push(new GInfoWindowTab(labels[j],info[j]));
				}
				markerArr[i].openInfoWindowTabsHtml(tabs);


	}
    }
    request.send(null);
	

}

function createPOI(x,y,id,name,type)
{
	var myicon = new GIcon(baseIcon);
	myicon.image = "http://www.re-maps.com/img/"+type+"_poi.png";
	var point = new GPoint(x,y);
	var poi = new GMarker(point,myicon);
	map.addOverlay(poi);

	GEvent.addListener(poi, "click", function() {
		poi.openInfoWindowHtml('<b>'+name+'</b><BR>'+type);
	});
}

function get_xml_data ()
{
	var b = map.getBounds();
	document.getElementById('loading').style.display = 'block';
	var request = GXmlHttp.create();
	request.open("GET", "/gdata.pl?siteid="+SITEID+"&userid="+USERID+"&maxx="+b.getNorthEast().lng()+"&maxy="+b.getNorthEast().lat()+"&minx="+b.getSouthWest().lng()+"&miny="+b.getSouthWest().lat()+"&search="+SEARCH+"&mlsid="+SEARCH_MLSID+"&from_price="+SEARCH_FROM_PRICE+"&to_price="+SEARCH_TO_PRICE+"&beds="+SEARCH_BEDS+"&baths="+SEARCH_BATHS+"&street="+SEARCH_STREET+"&city="+SEARCH_CITY+"&zip="+SEARCH_ZIP+"&ptype="+SEARCH_PTYPE, true);
	request.onreadystatechange = function()
	{
		if (request.readyState == 4) {
    		var xmlDoc = request.responseXML;
		    var markers = xmlDoc.documentElement.getElementsByTagName("marker");
    			for (var j = 0; j < markers.length; j++)
			{
				var x = parseFloat(markers[j].getAttribute("lng"));
				var y = parseFloat(markers[j].getAttribute("lat"));
				var id = markers[j].getAttribute("id");
				var i = parseFloat(markers[j].getAttribute("i"));
				var address = markers[j].getAttribute("address");
				var beds = markers[j].getAttribute("beds") || '&nbsp;';
				var baths = markers[j].getAttribute("baths") || '&nbsp;';
				var price = markers[j].getAttribute("price");
				var city = markers[j].getAttribute("city");
				var ph = parseFloat(markers[j].getAttribute("ph")) || 0;

				var name = address+' \$'+price;

				setTimeout("createMarker("+i+","+x+","+y+",'"+id+"','"+name+"',"+ph+")", j*100);
			}
			setTimeout("document.getElementById('loading').style.display = 'none';",markers.length*100);
		}
	}

	request.send(null);
//	map.removeControl(zoomControl);
//	map.removeControl(typeControl);
//	map.addControl(zoomControl);
//	map.addControl(typeControl);
}

function get_xml_data_list ()
{
	var b = map.getBounds();
	var request = GXmlHttp.create();
	request.open("GET", "/gdatax.pl?siteid="+SITEID+"&userid="+USERID+"&maxx="+b.getNorthEast().lng()+"&maxy="+b.getNorthEast().lat()+"&minx="+b.getSouthWest().lng()+"&miny="+b.getSouthWest().lat()+"&search="+SEARCH+"&mlsid="+SEARCH_MLSID+"&from_price="+SEARCH_FROM_PRICE+"&to_price="+SEARCH_TO_PRICE+"&beds="+SEARCH_BEDS+"&baths="+SEARCH_BATHS+"&street="+SEARCH_STREET+"&city="+SEARCH_CITY+"&zip="+SEARCH_ZIP+"&ptype="+SEARCH_PTYPE, true);
	request.onreadystatechange = function()
	{
		if (request.readyState == 4) {
    		var xmlDoc = request.responseXML;
		    var markers = xmlDoc.documentElement.getElementsByTagName("marker");
			var html = '<table  border=0 cellpaddin=0 cellspacing=0 class="imap-properties" width="100%">';
			html += '<tr class="imap-properties-title"><td>ID:</td><td>Address</td><td>City</td><td>Type</td><td>Beds</td><td>Baths</td><td>Price</td>';
			if (IDX) { html += '<td>IDX</td>'; }
			html += '</tr>';
    			for (var j = 0; j < markers.length; j++)
			{
				var x = parseFloat(markers[j].getAttribute("lng"));
				var y = parseFloat(markers[j].getAttribute("lat"));
				var id = markers[j].getAttribute("id");
				var i = parseFloat(markers[j].getAttribute("i"));
				var address = markers[j].getAttribute("address");
				if (NOADDRESS == 'yes')
				{
				    address = '--';
				}
				var beds = markers[j].getAttribute("beds") || '&nbsp;';
				var baths = markers[j].getAttribute("baths") || '&nbsp;';
				var price = markers[j].getAttribute("price");
				var city = markers[j].getAttribute("city");
				var ptype = markers[j].getAttribute("property_type");
				html += '<tr onclick="openMarkerInfo('+i+',\''+id+'\');"  onmouseover="return overlib(\'click to see location of home\');" onmouseout="return nd();" class="imap-properties'+(j%2)+'"><td>'+(10000000+id)+'</td><td>'+address+'</td><td>'+city+'</td><td>'+ptype+'</td><td>'+beds+'</td><td>'+baths+'</td><td>'+price+'</td>';
				if (IDX) { html += '<td><img src="'+IDX+'"></td>'; }
				html += '</tr>';
			}
			html += '</table>';
			document.getElementById("properties").innerHTML = html;
		}
	}

	request.send(null);
}

function get_poi_data ()
{
	var rand = Math.floor(Math.random() * 1000000000);
	var request = GXmlHttp.create();
	request.open("GET", "/poi_google.pl?siteid="+SITEID+"&userid="+USERID+"&point=yes&userid="+USERID+"&t="+rand, true);
	request.onreadystatechange = function()
	{
		if (request.readyState == 4) 
		{
    		var xmlDoc = request.responseXML;
			var points = xmlDoc.documentElement.getElementsByTagName("point");
    		for (var j = 0; j < points.length; j++)
			{
				var x = parseFloat(points[j].getAttribute("long"));
				var y = parseFloat(points[j].getAttribute("lat"));
				var name = points[j].getAttribute("name");
				var id = points[j].getAttribute("id");
				var type = points[j].getAttribute("type");
				createPOI(x,y,id,name,type);
			}
		}
	}
	request.send(null);
}

function get_search_results ()
{
	var f = document.searchform;
	var request = GXmlHttp.create();
	request.open("GET", "/gdata.pl?siteid="+SITEID+"&userid="+USERID+"&search=yes&mlsid="+f.mlsid.value+"&from_price="+f.from_price.value+"&to_price="+f.to_price.value+"&beds="+f.beds.value+"&baths="+f.baths.value+"&street="+f.street.value+"&city="+f.city.value+"&zip="+f.zip.value, true);
	request.onreadystatechange = function()
	{
		if (request.readyState == 4) 
		{
    			var xmlDoc = request.responseXML;
			var markers = xmlDoc.documentElement.getElementsByTagName("marker");
			var results = xmlDoc.documentElement.getElementsByTagName("results");

			document.getElementById("searchresults").innerHTML = '<a href="javascript:goto_search_results();">Found '+ results[0].getAttribute("count")+' properties.</a>';
			if (markers.length)
			{
				LONGITUDE = results[0].getAttribute("longitude");
				LATITUDE = results[0].getAttribute("latitude");
				document.getElementById("gotoresults").style.visibility = 'visible';
				SEARCH_MLSID = f.mlsid.value;
				SEARCH_FROM_PRICE = f.from_price.value;
				SEARCH_TO_PRICE = f.to_price.value;
				SEARCH_BEDS = f.beds.value;
				SEARCH_BATHS = f.baths.value;
				SEARCH_STREET = f.street.value;
				SEARCH_CITY = f.city.value;
				SEARCH_ZIP = f.zip.value;
//				SEARCH_PTYPE = f.ptype.value;
				SEARCH = 'yes';
			}
			else
			{
				SEARCH_MLSID = '';
				SEARCH_FROM_PRICE = '';
				SEARCH_TO_PRICE = '';
				SEARCH_BEDS = '';
				SEARCH_BATHS = '';
				SEARCH_STREET = '';
				SEARCH_CITY = '';
				SEARCH_ZIP = '';
				SEARCH_PTYPE = 'all';
				SEARCH = 'no';

				document.getElementById("gotoresults").style.visibility = 'hidden';
			}

    			//for (var j = 0; j < markers.length; j++)
			//{
			//	var x = parseFloat(markers[j].getAttribute("lng"));
			//	var y = parseFloat(markers[j].getAttribute("lat"));
			//	var id = parseFloat(markers[j].getAttribute("id"));
			//	var i = parseFloat(markers[j].getAttribute("i"));
			//	setTimeout("createMarker("+i+","+x+","+y+","+id+")", j*100);
			//}
		}
	}
	request.send(null);
	return false;	
}

function goto_search_results()
{
	map.clearOverlays();
	var newPoint = new GLatLng(LATITUDE,LONGITUDE);
	if (newPoint)
	{
	    map.setCenter(newPoint, ZOOMLEVEL);
	}
	else
	{
	    map.setCenter(startPoint, ZOOMLEVEL);
	}
	get_xml_data ();
	get_xml_data_list ();
	SEARCH = 'no';
	tab('map');
}

function positionOverview(x,y)
{
        var omap=document.getElementById("map_overview");
        omap.style.left = x+"px";
        omap.style.top = y+"px";
        
        // == restyling ==
        omap.firstChild.style.border = "1px solid gray";

        omap.firstChild.firstChild.style.left="2px";
        omap.firstChild.firstChild.style.top="2px";
        omap.firstChild.firstChild.style.width="140px";
        omap.firstChild.firstChild.style.heigh="90px";
}

function onLoad()
{
	icon = new GIcon();
	icon.image = "http://www.re-maps.com/img/home_20_blue.png";
	icon.shadow = "http://labs.google.com/ridefinder/images/mm_20_shadow.png";
	icon.iconSize = new GSize(32,32);
	icon.shadowSize = new GSize(32, 30);
	icon.iconAnchor = new GPoint(32, 32);
	icon.infoWindowAnchor = new GPoint(5, 1);

	yicon = new GIcon(icon);
	yicon.image = "http://www.re-maps.com/img/home_20_yellow.png";

	var mapdiv = document.getElementById("map");
	map = new GMap2(mapdiv);


      // ====== Restricting the range of Zoom Levels =====
      // Get the list of map types      
      var mt = map.getMapTypes();
      // Overwrite the getMinimumResolution() and getMaximumResolution() methods
      for (var i=0; i<mt.length; i++) {
        mt[i].getMinimumResolution = function() {return 6;}
        mt[i].getMaximumResolution = function() {return 17;}
      }




	map.addControl(new GLargeMapControl());
	map.setCenter(startPoint, ZOOMLEVEL);
	map.addControl(new GScaleControl( ));

	map.getPane(G_MAP_FLOAT_PANE).appendChild(tooltip);
	tooltip.style.visibility="hidden";

	map.addControl(new GOverviewMapControl(new GSize(150,120)));

	setTimeout("positionOverview(555,230)",1);

	map.setMapType(MAPTYPE);
	map.addControl(new GMapTypeControl());

      GEvent.addListener(map, "move", function() {
        checkBounds();
      });


	GEvent.addListener(map, "moveend", function() {
	    get_xml_data ();
	    get_xml_data_list ();
	});

	GEvent.addListener(map, "zoom", function() {
	    get_xml_data ();
	    get_xml_data_list ();
	});

//      var allowedBounds = new GLatLngBounds(new GLatLng(35.5,-106.1), new GLatLng(35.9,-105.7));

      // If the map position is out of range, move it back
      function checkBounds() {
        // Perform the check and return if OK
        if (allowedBounds.contains(map.getCenter())) {
          return;
        }
        // It`s not OK, so find the nearest allowed point and move there
        var C = map.getCenter();
        var X = C.lng();
        var Y = C.lat();

        var AmaxX = allowedBounds.getNorthEast().lng();
        var AmaxY = allowedBounds.getNorthEast().lat();
        var AminX = allowedBounds.getSouthWest().lng();
        var AminY = allowedBounds.getSouthWest().lat();

        if (X < AminX) {X = AminX;}
        if (X > AmaxX) {X = AmaxX;}
        if (Y < AminY) {Y = AminY;}
        if (Y > AmaxY) {Y = AmaxY;}
        //alert ("Restricting "+Y+" "+X);
        map.setCenter(new GLatLng(Y,X));
      }


	get_poi_data ();
	get_xml_data ();
	get_xml_data_list ();
}

function tab(name)
{
    var E = new Array('map','searchcenter','help');
    for (i = 0; i < E.length; i ++)
    {
		document.getElementById(E[i]).style.display = 'none';
		document.getElementById('tab'+E[i]).style.background = '#6CABE9';
		if (name == E[i])
		{
	    	document.getElementById(E[i]).style.display = 'block';
		    document.getElementById('tab'+E[i]).style.background = '#075DB2';
		}
    }
}

function ptab(name)
{
    var E = new Array('all','res','mul','land','com');
    for (i = 0; i < E.length; i ++)
    {
		if (document.getElementById('tabsearch'+E[i]))
		{
		    document.getElementById('tabsearch'+E[i]).style.background = '#6CABE9';
		}
		if (name == E[i])
		{
		    document.getElementById('tabsearch'+E[i]).style.background = '#075DB2';
		}
    }
    SEARCH_PTYPE = name;
    
    SEARCH = 'yes';
    goto_search_results();
}

function subtab(name)
{
   	var E = new Array('search','points','savemap','favorites');
    for (i = 0; i < E.length; i ++)
   	{
		document.getElementById(E[i]).style.display = 'none';
		document.getElementById('subtab'+E[i]).style.background = '#6CABE9';
		if (name == E[i])
		{
    		document.getElementById(E[i]).style.display = 'block';
	    	document.getElementById('subtab'+E[i]).style.background = '#075DB2';
		}
    }
}

function get_poi ()
{
	var rand = Math.floor(Math.random() * 1000000000);
	var request = GXmlHttp.create();
	request.open("GET", "/poi_google.pl?siteid="+SITEID+"&userid="+USERID+"&point=yes&userid="+USERID+"&t="+rand, false);
	request.onreadystatechange = function()
	{
		if (request.readyState == 4) 
		{
    		var xmlDoc = request.responseXML;
			var points = xmlDoc.documentElement.getElementsByTagName("point");
			
			var html = '<table width="500" cellpadding="2" cellspacing="0" style="font-size:11px;">';
			html = html + '<tr bgcolor="#6CABE9"><td width=20>&nbsp;</td><td width=30><strong>Id</strong></td><td width=100><strong>Name</strong></td><td width=120><strong>Address</strong></td><td width=120><strong>City</strong></td><td width=50><strong>Zip</strong></td><td width=30><strong>Icon</strong></td></tr>';

    		for (var j = 0; j < points.length; j++)
			{
				var id = points[j].getAttribute("id");
				var name = points[j].getAttribute("name");
				var address = points[j].getAttribute("address");
				var city = points[j].getAttribute("city");
				var zip = points[j].getAttribute("zip");
				var type = points[j].getAttribute("type");
				var bgcolor = '#CCCCCC';
				if (j % 2) bgcolor = '#EEEEEE';
				html = html + '<tr bgcolor="'+bgcolor+'"><td width=20><a href="javascript:void(0);" onclick="del_poi('+id+');"><img src="/img/trash.gif" border=0></a></td><td>'+id+'</td><td>'+name+'</td><td>'+address+'</td><td>'+city+'</td><td>'+zip+'</td><td align=center><img src="/img/'+type+'_poi.png" height=17 width=10></td></tr>';
			}
			html = html + '</table>';

			document.getElementById("pointslist").innerHTML = html;
		}
	}
	request.send(null);
	return false;	
}

function add_poi (name,type,address,state,city,zip)
{
	var request = GXmlHttp.create();
	request.open("GET", "/poi_google.pl?siteid="+SITEID+"&userid="+USERID+"&point=yes&action=add&userid="+USERID+"&name="+name+"&type="+type+"&address="+address+"&city="+city+"&state="+state+"&zip="+zip, false);
	request.onreadystatechange = function()
	{
		if (request.readyState == 4) 
		{
   			var xmlDoc = request.responseXML;
			var result = xmlDoc.documentElement.getElementsByTagName("result");
			document.getElementById("poiresults").innerHTML = '<font color=red>'+result[0].getAttribute("message")+'</font>';
		}
	}
	request.send(null);

	return get_poi();
}

function del_poi (id)
{
	var request = GXmlHttp.create();
	request.open("GET", "/poi_google.pl?siteid="+SITEID+"&userid="+USERID+"&point=yes&action=delete&userid="+USERID+"&id="+id, false);
	request.onreadystatechange = function()
	{
		if (request.readyState == 4) 
		{
    		var xmlDoc = request.responseXML;
			var result = xmlDoc.documentElement.getElementsByTagName("result");
			document.getElementById("poiresults").innerHTML = '<font color=red>'+result[0].getAttribute("message")+'</font>';
		}
	}
	request.send(null);

	return get_poi();
}


function get_saved_maps ()
{
	var rand = Math.floor(Math.random() * 1000000000);
	var request = GXmlHttp.create();
	request.open("GET", "/saved_maps_google.pl?siteid="+SITEID+"&userid="+USERID+"&mapview=yes&userid="+USERID+"&t="+rand, false);
	request.onreadystatechange = function()
	{
		if (request.readyState == 4) 
		{
    		var xmlDoc = request.responseXML;

			var result = xmlDoc.documentElement.getElementsByTagName("result");
			document.getElementById("savemapresults").innerHTML = '<font color=red>'+result[0].getAttribute("message")+'</font>';

			if (xmlDoc.documentElement.getElementsByTagName("mapview"))
			{
			var mapviews = xmlDoc.documentElement.getElementsByTagName("mapview");
			
			var html = '<table width="500" cellpadding="2" cellspacing="0" style="font-size:11px;">';
			html = html + '<tr bgcolor="#6CABE9"><td width=20>&nbsp;</td><td><strong>Map</strong></td></tr>';

    		for (var j = 0; j < mapviews.length; j++)
			{
				var id = mapviews[j].getAttribute("id");
				var name = mapviews[j].getAttribute("name");
				var notes = mapviews[j].getAttribute("notes");
				var url = mapviews[j].getAttribute("url");

				var bgcolor = '#CCCCCC';
				if (j % 2) bgcolor = '#EEEEEE';
				html = html + '<tr bgcolor="'+bgcolor+'"><td width=20><a href="javascript:void(0);" onclick="del_map('+id+');"><img src="/img/trash.gif" border=0></a></td><td><a href="javascript:void(0);" onclick="view_saved_map(\''+url+'\');"><b>'+name+'</b></a><BR>'+notes+'</td></tr>';
			}
			html = html + '</table>';

			document.getElementById("savemaplist").innerHTML = html;
			}
		}
	}
	request.send(null);
	return false;	
}

function save_map (name,notes)
{
	var b = map.getCenter();
	var zoom = map.getZoom();
	var url = zoom+'|'+b.lng()+'|'+b.lat()+'|'+SEARCH_MLSID+'|'+SEARCH_FROM_PRICE+'|'+SEARCH_TO_PRICE+'|'+SEARCH_BEDS+'|'+SEARCH_BATHS+'|'+SEARCH_STREET+'|'+SEARCH_CITY+'|'+SEARCH_ZIP+'|'+SEARCH_PTYPE;

	var request = GXmlHttp.create();
	request.open("GET", "/saved_maps_google.pl?siteid="+SITEID+"&userid="+USERID+"&mapview=yes&action=add&userid="+USERID+"&name="+name+"&notes="+notes+"&url="+url, false);
	request.onreadystatechange = function()
	{
		if (request.readyState == 4) 
		{
   			var xmlDoc = request.responseXML;
			var result = xmlDoc.documentElement.getElementsByTagName("result");
			document.getElementById("savemapresults").innerHTML = '<font color=red>'+result[0].getAttribute("message")+'</font>';
		}
	}
	request.send(null);

	return get_saved_maps();
}

function del_map (id)
{
	var request = GXmlHttp.create();
	request.open("GET", "/saved_maps_google.pl?siteid="+SITEID+"&userid="+USERID+"&mapview=yes&action=delete&userid="+USERID+"&id="+id, false);
	request.onreadystatechange = function()
	{
		if (request.readyState == 4) 
		{
    		var xmlDoc = request.responseXML;
			var result = xmlDoc.documentElement.getElementsByTagName("result");
			document.getElementById("savemapresults").innerHTML = '<font color=red>'+result[0].getAttribute("message")+'</font>';
		}
	}
	request.send(null);

	return get_saved_maps();
}

function view_saved_map(url)
{
	var a = url.split('|');

	map.clearOverlays();
	var p = new GLatLng(a[2],a[1]);
	map.setCenter(p, a[0]);

	SEARCH = 'yes';
	SEARCH_MLSID = a[3];
	SEARCH_FROM_PRICE = a[4];
	SEARCH_TO_PRICE = a[5];
	SEARCH_BEDS = a[6];
	SEARCH_BATHS = a[7];
	SEARCH_STREET = a[8];
	SEARCH_CITY = a[9];
	SEARCH_ZIP = a[10];
	SEARCH_PTYPE = a[11];
	
	get_xml_data ();
	get_xml_data_list ();
	SEARCH = 'no';
	tab('map');
}


function get_favorites ()
{
	var rand = Math.floor(Math.random() * 1000000000);
	var request = GXmlHttp.create();
	request.open("GET", "/favorites_google.pl?siteid="+SITEID+"&userid="+USERID+"&favorite=yes&t="+rand, false);
	request.onreadystatechange = function()
	{
		if (request.readyState == 4) 
		{
    		var xmlDoc = request.responseXML;
			var favorites = xmlDoc.documentElement.getElementsByTagName("favorite");
			
			var html = '<table width="500" cellpadding="2" cellspacing="0" style="font-size:11px;">';
			html = html + '<tr bgcolor="#6CABE9"><td width=20>&nbsp;</td><td width=30><strong>ID:</strong></td><td width=100><strong>List Price</strong></td><td width=120><strong>Address</strong></td><td width=120><strong>City</strong></td><td width=50><strong>Zip</strong></td></tr>';

    		for (var j = 0; j < favorites.length; j++)
			{
				var mlsid = favorites[j].getAttribute("mlsid");
				var price = favorites[j].getAttribute("price");
				var address = favorites[j].getAttribute("address");
				var city = favorites[j].getAttribute("city");
				var zip = favorites[j].getAttribute("zip");
				var details = favorites[j].getAttribute("details");
				
				var bgcolor = '#CCCCCC';
				if (j % 2) bgcolor = '#EEEEEE';
				html = html + '<tr bgcolor="'+bgcolor+'"><td width=20><a href="javascript:void(0);" onclick="del_favorite('+mlsid+');"><img src="/img/trash.gif" border=0></a></td><td><a href="/l.html?id='+id+'" target="_blank">'+(10000000+mlsid)+'</a></td><td>'+price+'</td><td>'+address+'</td><td>'+city+'</td><td>'+zip+'</td></tr>';
			}
			html = html + '</table>';

			document.getElementById("favoriteslist").innerHTML = html;
		}
	}
	request.send(null);
	return false;	
}

function add_favorite (mlsid)
{
	var request = GXmlHttp.create();
	request.open("GET", "/favorites_google.pl?siteid="+SITEID+"&userid="+USERID+"&favorite=yes&action=add&mlsid="+mlsid, false);
	request.onreadystatechange = function()
	{
		if (request.readyState == 4) 
		{
   			var xmlDoc = request.responseXML;
			var result = xmlDoc.documentElement.getElementsByTagName("result");
			document.getElementById("favoritesresults").innerHTML = '<font color=red>'+result[0].getAttribute("message")+'</font>';
		}
	}
	request.send(null);

	return get_favorites();
}

function del_favorite (mlsid)
{
	var request = GXmlHttp.create();
	request.open("GET", "/favorites_google.pl?siteid="+SITEID+"&userid="+USERID+"&favorite=yes&action=delete&mlsid="+mlsid, false);
	request.onreadystatechange = function()
	{
		if (request.readyState == 4) 
		{
    		var xmlDoc = request.responseXML;
			var result = xmlDoc.documentElement.getElementsByTagName("result");
			document.getElementById("favoritesresults").innerHTML = '<font color=red>'+result[0].getAttribute("message")+'</font>';
		}
	}
	request.send(null);

	return get_favorites();
}


