	var map;
    var geocoder;
    var metersToMiles = 0.000621371192;
    var lstProviders;
	var lstFound;
	var mylat;
	var mylon;
	var distanceFilter;
	var flag = false;
	var fileContent;
	var theLocation;
	var NetData;
	var icon;

	function initialize() {

	    try {

	        if (GBrowserIsCompatible()) {
	            map = new GMap2(document.getElementById("map"));
	            map.setCenter(new GLatLng(47.7623204, -122.2054035), 10);
	            map.setUIToDefault();
	            geocoder = new GClientGeocoder();
	        }

	    } catch (err) {
	    alert(err);
	    }
    }

    function Provider(pid, pname, pcity, pbathrooms, pprivaterooms, plat, plon) {
        this.id = pid;
        this.name = pname;
        this.city = pcity;
        this.bathrooms = pbathrooms;
        this.privateRooms = pprivaterooms;
        this.lat = plat;
        this.lon = plon;
        this.info = "<p class='listings'> <b>" + this.name + "</b> <br/>" + this.city + "</p>";
        this.popup = "<strong>"+this.name + "</strong><br/>" +
					this.city + "<br/>" +
					/*"Private rooms: " + this.privateRooms + "<br/>" +
					"Bathrooms: " + this.bathrooms + "<br/><br/>" +*/
					"For availability or a tour, please call 800-361-0138";

    }
	
	function wait(){
		
		if(flag){
			window.setTimeout("wait();",500);
		}else{
			searchProviders();
		}
	}	

    function showAddress() {
		
        try {
            var txtAddress = document.getElementById("txtAddress");
            var address = txtAddress.value;
			

            return geocoder.getLatLng(
                    address,
                    function (point) {
                        if (!point) {
                            alert(address + " not found");
                        }
                        else {
                            var rad;
							if(distanceFilter == 5){
								rad = 10;
							}else{
								rad = 13;
							}
				
							var blueIcon = loadBlueIcon();
							
							map.setCenter(point, rad);
                            var marker = new GMarker(point,blueIcon);
                            map.addOverlay(marker);
                            marker.openInfoWindow(address);
							marker.bindInfoWindowHtml(address);
										
                        }
                    }
                );

                } catch (err) {
                    alert(err);
                }

            }



            function searchProviders() {

                var address1 = new GLatLng(mylat, mylon);
                var providersNumber = 0;
                lstFound = new Array();

                for (var i = 0; i < lstProviders.length; i++) {

                    var address2 = new GLatLng(lstProviders[i].lat, lstProviders[i].lon);

                    var distanceMeters = address1.distanceFrom(address2);
                    var distanceMiles = distanceMeters * metersToMiles;

					distanceFilter = document.getElementById("cmbMiles").value;
					
					if (distanceMiles < distanceFilter) {
						lstFound[providersNumber] = lstProviders[i]; 
						providersNumber++;
					}

                 }

				if (providersNumber == 0) {
					alert("No providers found");
				}
				else{
					pinProviders();
				}
					
				showResults();
            }

            function getCoordenates() {
			
				flag = true;

                var txtAddress = document.getElementById("txtAddress");
                var address = txtAddress.value;

                geocoder.getLocations(address, function (response) {
                    if (!response || response.Status.code != 200) {
                        alert("Sorry, we were unable to geocode the first address");
                    }
                    else {
                        mylat = response.Placemark[0].Point.coordinates[1];
                        mylon = response.Placemark[0].Point.coordinates[0];

                        flag = false;
                    }
                });
            }

			function pinProviders(){
			
				try {
				
				for (var i = 0; i < lstFound.length; i++) {
				
					var icon = loadIcon(i+1);
					var address = new GLatLng(lstFound[i].lat, lstFound[i].lon);
					var marker = new GMarker(address,icon);
					var html = lstFound[i].popup;
					
					marker.bindInfoWindowHtml(html);
					
					map.addOverlay(marker);
		
				}

				} catch (err) {
					alert(err);
				}
			}
			
		
			
			function showResultsTitle(){
					
				var msj = 	"<p> <h1> Map of Listings </h1> </p>";
							
				return msj;
			}
			
			
			function showResults(){
				
				var cols=2;
				
				var root=document.getElementById('div_results');
				root.innerHTML =  showResultsTitle();
				var tab=document.createElement('table');
				tab.className="mytable";
				var tbo=document.createElement('tbody');
				var row, cell;
				tbo.appendChild(showInputResult());
				for(var i=0; i < lstFound.length; i++){
					row=document.createElement('tr');
					for(var j=0;j<cols;j++){
						if(j == 0){
							cell=document.createElement('td');
							cell.appendChild(loadImage(i+1));
							row.appendChild(cell);
						}else{
							cell=document.createElement('td');
							cell.innerHTML = lstFound[i].info;
							row.appendChild(cell);
						}
				
					}
					tbo.appendChild(row);
				}
				tab.appendChild(tbo);
				root.appendChild(tab);
			
			}
			
			function loadImage(num){
			
				var newImg = document.createElement("img");
				newImg.src = "http://chart.apis.google.com/chart?chst=d_map_pin_letter&chld="+num+"|E67451|000000";
				return newImg;

			}
			
			function loadIcon(num){
			    var myicon = new GIcon(G_DEFAULT_ICON);
			    myicon.image = "http://chart.apis.google.com/chart?chst=d_map_pin_letter&chld=" + num + "|E67451|000000";

			    return myicon;
			}
			
			function loadBlueIcon(){

			    var blueIcon = new GIcon(G_DEFAULT_ICON);
				blueIcon.image = "http://chart.apis.google.com/chart?chst=d_map_pin_letter&chld= |488AC7|000000";
				
				return blueIcon;
			}
			
			function loadBlueImage(){
			
				var newImg = document.createElement("img");
				newImg.src = "http://chart.apis.google.com/chart?chst=d_map_pin_letter&chld= |488AC7|000000";
				
				return newImg;

			}
			
			function showInputResult(){
				var row,cell;
				var txtAddress = document.getElementById("txtAddress");
				var address = txtAddress.value;
				
				row=document.createElement('tr');
				cell=document.createElement('td');
				cell.appendChild(loadBlueImage());
				row.appendChild(cell);
				
				cell=document.createElement('td');
				cell.innerHTML = "<b>" +address+ "</b>";
				row.appendChild(cell);
				
				return row;
				
			}
			


function setNetData(data) {
    NetData = data;
    parseNetData();
}

function parseNetData() {
    lstProviders = new Array();
    provs = NetData.split('#');

    for (var i = 0; i < provs.length; i++)
    {
        var atts = provs[i].split(';');

        if (atts != "") {

            var provider = new Provider(atts[0], atts[1], atts[2], atts[3], atts[4], atts[5], atts[6]);

            lstProviders[i] = provider;

        }
    }

}
