//<![CDATA[

var gmarkers = [];
var htmls = [];
var names = [];
var ii = 0;
var OneTwo = "one";
var bounds;
var gcenter;
var glength;
var glat;
var glng;
var thecolor = "f1d09b";
	  

	// addAddressToMap() is called when the geocoder returns an
    // answer.  It adds a marker to the map with an open info window
    // showing the nicely formatted version of the address and the country code.
    function addAddressToMap(response) {
      map.clearOverlays();
      if (!response || response.Status.code != 200) {
        //alert("Sorry, we were unable to geocode that address");
      } else {
        place = response.Placemark[0];
        point = new GLatLng(place.Point.coordinates[1],
                            place.Point.coordinates[0]);
        marker = new GMarker(point);
        map.addOverlay(marker);
        marker.openInfoWindowHtml(place.address + '<br>' +
          '<b>Country code:</b> ' + place.AddressDetails.Country.CountryNameCode);
		map.setCenter(new GLatLng(place.Point.coordinates[1], place.Point.coordinates[0]), 11);
	    map.savePosition(); //Stores the current map position and zoom level for later recall by returnToSavedPosition().
      }
    }
	
function createMarker(point,html,icontype,thelabel,itscolor) {
        var marker = new GMarker(point, gicons[icontype]);
        GEvent.addListener(marker, "click", function() {
          marker.openInfoWindowHtml(html);
        });
		GEvent.addListener(marker, "mouseover", function() {
		  var thediv = "thelabel" + thelabel;
		  document.getElementById("thelabel" + thelabel).style.backgroundColor='#c2cd08';
		  var linkanchor = "theanchor" + thelabel;
		  document.location='#' + linkanchor;
		});
		GEvent.addListener(marker, "mouseout", function() {
		  if (itscolor == "fae2bc") {
		  	thecolor = "f1d09b";
		  } else {
		  	thecolor = "fae2bc";
		  }
		  document.getElementById("thelabel" + thelabel).style.backgroundColor='#'+thecolor;
		});
        gmarkers[ii] = marker;
		htmls[ii] = html;
        ii++;
        return marker;
      }
	  
function createAptMarker(point,html,icontype) {
		u = 1;
        var marker = new GMarker(point, gicons[icontype]);
        GEvent.addListener(marker, "click", function() {
          marker.openInfoWindowHtml(html);
        });
        gmarkers[u] = marker;
				htmls[u] = html;
        u++;
        return marker;
      }
	
function myclick(i) {
			gmarkers[i].openInfoWindowHtml(htmls[i]);
	}
	
function stripLatLng() {
	bounds = map.getBounds();
	gcenter = bounds.getCenter();
	gcenter = gcenter.toString();
	glength = gcenter.length;
	glat = Mid(gcenter, 1, InStr(gcenter, ",")-1);
	glat = glat.toString();
	glng = Mid(gcenter, (glat.length)+3, InStr(gcenter, ")"));
	glng = glng.toString();
	glng = Left(glng, (glng.length)-1);
}
	
//function numOrdA(a, b){ return (a-b); }

function callbackFunc(a,b){

	if(a.distance == b.distance){

		if(a.distance == b.distance){
			return 0;
		}

		return (a.distance < b.distance) ? -1 : 1;
	}

	return (a.distance < b.distance) ? -1 : 1;
}

function placePoints() {
	map.clearOverlays();
	bounds = map.getBounds();
	stripLatLng();
	var side_bar_html = "";
	var count = 0;
	var request = GXmlHttp.create();
    request.open("GET", thexml, true);
    request.onreadystatechange = function() {
    	if (request.readyState == 4) {
        	var xmlDoc = GXml.parse(request.responseText);
          var markers = xmlDoc.documentElement.getElementsByTagName("marker");
					gmarkers = [];
          htmls = [];
          ii = 0;
          for (var i = 0; i < markers.length; i++) {
           	var lat = parseFloat(markers[i].getAttribute("lat"));
           	var lng = parseFloat(markers[i].getAttribute("lng"));
			var xname = markers[i].getAttribute("name");
			var xaddy = markers[i].getAttribute("address");
			var xcity = markers[i].getAttribute("city");
			var xstate = markers[i].getAttribute("state");
			var xzip = markers[i].getAttribute("zip");
			var xphone = markers[i].getAttribute("phone");
			var xfax = markers[i].getAttribute("fax");
			var xweb = markers[i].getAttribute("web");
			var xprice = markers[i].getAttribute("price");
			var xicontype = markers[i].getAttribute("icontype");
			var xphoto = markers[i].getAttribute("photo");
			var xpid = markers[i].getAttribute("id");
           	var point = new GLatLng(lat,lng);
			if(xphoto.indexOf('house') > 0) {
				phourl = xphoto;
				imgcode = '<img src="'+phourl+'" />';
			} else {
				phourl = '/photo_gen.asp?w=90&h=99&q=90&fname=' + xphoto;
				imgcode = '<div id="propertyHolder"><img src="'+phourl+'" style="margin-left: 11px; margin-top: 10px;" /></div>';
			}
            	//var html = markers[i].getAttribute("html");
            	//var label = markers[i].getAttribute("label");
				if (map.getZoom() >= 10) {
            		var marker = createMarker(point,'<b>' + xname + '</b><br>' + xaddy + '<br>' + xcity + ', ' + xstate + ' ' + xzip + '<br>' + 'P. ' + xphone + ' | F. ' + xfax + '<br><br><a target=\"_blank\" href=\"http://'+xweb+'\">'+xweb+'</a>',xicontype,i,thecolor);
            		if (bounds.contains(point) == true) {
						map.addOverlay(marker);
						count = count + 1;
						thedist = distance(lat, lng, glat, glng, 'M');
						//thedist.sort(numOrdA);
						if (OneTwo == "one") {
							OneTwo = "two";
							thecolor = "fae2bc";
						} else {
							OneTwo = "one";
							thecolor = "f1d09b";
						}
						if (thedist == 1) {
							var Mform = "mile";
						} else {
							Mform = "miles";
						}
       			 		side_bar_html += "<a name='theanchor"+i+"'></a><div id=thelabel"+i+" style=background-color:#"+thecolor+"><div id='select"+OneTwo+"'><b>"+xname+"</b> [ <a href='javascript:myclick("+i+")' onmouseover='gmarkers["+i+"].setImage(\"/images/RedIcon.png\")' onmouseout='gmarkers["+i+"].setImage(\"/images/GreenIcon.png\")'>find</a> ]<br>"+thedist+" "+Mform+" from center of view</b><div id='selectleft'>"+imgcode+"</div><div id='selectright'><div id='selectinfo'>"+xaddy+"<br>"+xcity+", "+xstate+" "+xzip+"<br><br>Phone: "+xphone+"<br>Fax: "+xfax+"<br>Price Range: "+xprice+"</div><br><div align='center'><a href='javascript:void(0);' onclick='document.sidebarcode.id.value=\""+xpid+"\";document.sidebarcode.submit(); return false;'><img src='/images/list/view.png' /></a></div></div><div class='clr'></div></div></div>";
						document.sidebarcode.holdthecode.value = side_bar_html;
					} <!-- if bounds true -->
         	 	} <!-- if map zoom -->
        	} <!-- end for loop -->
			document.getElementById("side_bar").innerHTML = side_bar_html;
		  	if (OneTwo == "one") {
				OneTwo = "two";
				thecolor = "fae2bc";
		  	} else {
				OneTwo = "one";
				thecolor = "f1d09b";
		  	}
			if (count == 0) {
				//document.getElementById("side_bar").innerHTML = "No Properties In View...";
				toggleDiv('closerzoom',0); toggleDiv('viewzoom',1);
			}
			if (map.getZoom() <= 9) {
				map.clearOverlays();
				//document.getElementById("side_bar").innerHTML = "Zoom In Closer To View Available Properties...";
				toggleDiv('closerzoom',1); toggleDiv('viewzoom',0);
				count = 0;
			}
			if (count > 0 && map.getZoom() >= 10) {
				toggleDiv('closerzoom',0); toggleDiv('viewzoom',0);
			}
			if (count == 1) {
				document.getElementById("propcounter").innerHTML = "Displaying " + count + " property.";
			} else {
				document.getElementById("propcounter").innerHTML = "Displaying " + count + " properties.";
			}
      	   } <!-- if readystate -->
	} <!-- end request -->
      request.send(null);
}
	
    //]]>
