	var map = null;
		var latitude = null;
		var longitude = null;
		var offset = 0;

		  $(document).ready(function(){
			  if (GBrowserIsCompatible()) {
				map = new GMap2(document.getElementById("map_canvas"));
			    //map.enableScrollWheelZoom();
				//map.addControl(new GHierarchicalMapTypeControl());
				map.addControl(new GLargeMapControl());
				map.addControl(new GScaleControl());
				map.addControl(new GMapTypeControl());
			  }
			  $('#next-button').hide();
		  });
		  
		function handleResponse(jsonResponse){
			if(jsonResponse.errMsg != undefined || jsonResponse.properties == undefined){
                var errText = jsonResponse.errMsg;
                if(jsonResponse.errMsg == undefined && jsonResponse.properties == undefined){
                    errText = "We're sorry but we were not able to find the address you specified. Please try a different address.";
                }
				$('#warning').html(document.createTextNode(errText));
				$('#warning').show();
				$('#next-button').hide();
			}else{
				latitude = jsonResponse.lat;
				longitude = jsonResponse.long;
				if(jsonResponse.warning != undefined){
					$('#warning').html(document.createTextNode(jsonResponse.warning));
					$('#warning').show();
				}else{
					$('#warning').hide();
				}
				offset++;
				$('#next-button').show();
				map.setCenter(new GLatLng(jsonResponse.lat, jsonResponse.long), 13);
				for(var i = 0; i < jsonResponse.properties.length; i++){
					createMarker(jsonResponse.properties[i]);
				}
			}
		}
		
		function getProperties(){ 
			var address = document.getElementById("address").value;
			map.clearOverlays();
			$.getJSON(getCtx() + "/map.html", {address:address}, handleResponse);
            $("#address-selection").html(address);
		}

		function getNextProperties(){ 
			map.clearOverlays();
            var address = document.getElementById("address").value;
			if(latitude == undefined || longitude == undefined){
				getProperties();
			}else{
				$.getJSON(getCtx() + "/map.html", {lat:latitude, long:longitude, mark: offset, address:address}, handleResponse);
			}
		}
		
		function createMarker(property){
			var latLong = new GLatLng(property.latitude, property.longitude);
			var marker = new GMarker(latLong);
			map.addOverlay(marker);
			if(!map.getBounds().containsLatLng(latLong)){
				map.zoomOut();
			}
			var div = document.createElement("div");
			var address = document.createTextNode(property.address); 
			div.appendChild(address);
			div.appendChild(document.createElement("br"));
			div.appendChild(document.createTextNode("" + property.city + ", " + property.auction.jurisdiction.state.abbreviation + ", " + property.zip));
			div.appendChild(document.createElement("br"));
			div.appendChild(document.createTextNode("Auction: " + property.auction.displayDate + " " + property.auctionTime));
			div.appendChild(document.createElement("br"));
			if(property.zillowId != undefined && property.zillowId != ""){
				var link = document.createElement("a");
				link.href = "http://www.zillow.com/HomeDetails.htm?zprop=" + property.zillowId;
				link.appendChild(document.createTextNode("Go to Zillow"));
				link.target = "_blank";
				div.appendChild(link);
			}else{
				div.appendChild(document.createTextNode("We could not find in Zillow"));
			}
			div.appendChild(document.createElement("br"));
			var cbx = document.createElement("input");
			cbx.type = "checkbox";
			cbx.setAttribute("onclick", "saveSelectedProperty('" + property.id + "');");
			div.appendChild(cbx);
			div.appendChild(document.createTextNode("Add This To My Report"));
			GEvent.addListener(marker, "click", function() {
				map.closeInfoWindow();
				marker.openInfoWindow(div);
			 });
		
		}

	    function saveSelectedProperty(id){
	    	$.post(getCtx() + "/addSelected.html?json=true&pid=" + id, null, addSelectedResponse, "json" );
	    }

    function checkForPreviousMapSearch(){
        latitude = $("#user-persistent-latitude").attr("value");
		longitude = $("#user-persistent-longitude").attr("value");
		var addrFromParam = $("#address").attr("value");
		var useParam = addrFromParam != "";
        var address = $("#user-persistent-address").attr("value");
        var userAddressUsed = false;
        if(useParam == true){
        	address = addrFromParam;
        }else if(address != undefined && address != ""){
            $("#address").attr("value", address);
            userAddressUsed = true;
        }else if($('#user-persistent-state-name').attr('value') != "" && $('#user-persistent-juris-name').attr('value') != "" ){
            address = $('#user-persistent-juris-name').attr('value') + ", " + $('#user-persistent-state-name').attr('value');
            $("#address").attr("value", address);
        }
        if(userAddressUsed && longitude != "" && latitude != ""){
             getNextProperties();
        }else if(address != ""){
              getProperties();
        }
    }