﻿// Google Map JScript File

    var DocGeo;
    var DocGBase;
    var geocoder
    var map;
    var mapValid = false;
    var theCity = "";
    var theState = "";

//function setMapInURL(on)
//{
//    var prevLink = "";
//    var nextLink = "";
//    try{
//    prevLink = document.getElementById("previousPage").href;
//    }catch(ex1){prevLink = "";}
//    try{
//    nextLink = document.getElementById("nextPage").href;
//    }catch(ex1){nextLink = "";}
//    
//    if(on)
//    {
//    if(prevLink != "")
//    {
//        prevLink = prevLink.replace(".aspx","_map.aspx");
//        prevLink = prevLink.replace("?page=","?map=1&page=");
//     }
//     if(nextLink != "")
//     {   
//        nextLink = nextLink.replace(".aspx","_map.aspx");
//        nextLink = nextLink.replace("?page=","?map=1&page=");
//      }
//    }
//    else
//    {
//    if(prevLink != "")
//    {
//        prevLink = prevLink.replace("_map.aspx",".aspx");
//        prevLink = prevLink.replace("?map=1&page=","?page=");
//     }
//     if(nextLink != "")
//    {
//       nextLink = nextLink.replace("_map.aspx",".aspx");
//       nextLink = nextLink.replace("?map=1&page=","?page=");
//       }
//    }
//    
//    try{
//    document.getElementById("previousPage").href = prevLink;
//    }catch(ex1){}
//    try{
//    document.getElementById("nextPage").href = nextLink;
//    }catch(ex1){nextLink = "";}
//}

function callMapApp()
{
if(document.getElementById("TextBox1").value != "")
{
    if(document.getElementById("map_canvas").style.display == "block")
    {
        document.getElementById("map_canvas").style.display = "none";
        document.getElementById("resultsDIV2").style.display = "block";
    }
    else
    {
    //setMapInURL(true)
    document.getElementById("map_canvas").style.display = "block";
    document.getElementById("resultsDIV2").style.display = "none";
    if(mapValid == false)
    {
    mapValid = true;
    theCity = document.getElementById("TextBox1").value;
    theState = document.getElementById("DropDownList3").value;
    var address = theCity + ", " + theState;
    geocoder = new GClientGeocoder();
    map = new GMap2(document.getElementById("map_canvas"));
    setCenter(address);
    }}
    }else
    {alert("Sorry we can only draw a map for a city and state location.");}
 }
    
   function showDetail(id)
   {
    var NEWid = "map_" + id + "";
    var dhtml = document.getElementById(NEWid).innerHTML;
    var newHTML = "<table border='0' cellpadding='0' cellspacing='0' width='100%' height='250px' style='font-size:small;'>" + dhtml + "</table>"
    return newHTML;
   }
   
   
    function createMarker(point,html) {
        var marker = new GMarker(point);
        GEvent.addListener(marker, "click", function() {
          marker.openInfoWindowHtml(html);
        });
        return marker;
      }


    function setCenter(address)
    {
    try{
    geocoder.getLatLng(address,function(point) 
    {      
    if (point){
        map.addControl(new GLargeMapControl());
        map.addControl(new GMapTypeControl());
        map.setCenter(point, 13);
        }});
        }catch(ex){alert("Sorry we were uable to draw the map of properties.");}
    getPropertyMAP();
    }

    function getPropertyMAP()
    {
        var MapXML = document.getElementById("mapXML").innerHTML;
        if (window.DOMParser)
          {
          var parser=new DOMParser();
          DocGBase=parser.parseFromString(MapXML,"text/xml");
          }
        else // Internet Explorer
          {
          DocGBase=new ActiveXObject("Microsoft.XMLDOM");
          DocGBase.async="false";
          DocGBase.loadXML(MapXML); 
          }
          
          var locs = ""
          if (window.DOMParser)
          {
            locs = DocGBase.getElementsByTagName("location")
          }
          else
          {
            locs = DocGBase.getElementsByTagName("LOCATION")
          }
          
          var ids = "";
          if (window.DOMParser)
          {
            ids = DocGBase.getElementsByTagName("id")
          }
          else
          {
            ids = DocGBase.getElementsByTagName("ID")
          }
          
            for (i=0;i<locs.length;i++)
            {
            var thisLOC = locs[i].childNodes[0].nodeValue;
            var id = ids[i].childNodes[0].nodeValue;
            
                thisLOC = thisLOC.replace("#","");
                var stateAdd = ", " + theState;
                thisLOC = thisLOC.replace(", ,",stateAdd);
                thisLOC = thisLOC.replace(", us","");
                thisLOC = thisLOC.replace(", USA","");
                addToMap(thisLOC,showDetail(id));
            }
     }

    function addToMap(loc, html)
    {
    try{
        geocoder.getLatLng(loc,function(point) 
        {      
        if (point){
        var marker = createMarker(point, html);
        map.addOverlay(marker);
        }
        else
        {
            var thisPoint = geoCodeCityState(loc);
            var latLang = new Array()
	        latLang = thisPoint.split(",");
	        var NEWpoint = new GLatLng(latLang[1], latLang[0]);
            
            if(NEWpoint)
            {
            var marker = createMarker(NEWpoint, html)
            map.addOverlay(marker);
            }
            else
            {
                alert("Sorry we were unable to map " + loc + ". Please use list view to see this property.");
            }
        }});
        }
        catch(ex)
        {
        alert("Sorry we were unable to map " + loc + ". Please use list view to see this property.");
        }
    }
    
    function geoCodeCityState(address)
    {
    var xmlhttp=null;
    if (window.DOMParser && window.XMLHttpRequest)
    {// code for all new browsers
    xmlhttp = new XMLHttpRequest();
    }
    else if (window.ActiveXObject)
    {// code for IE5 and IE6
    xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
    else
    {
        alert("No Object");
    }
    
    var url =  "GeoXML.aspx?loc=" + address + "";
    xmlhttp.open("GET", url, false);
    xmlhttp.send(null);
    var LoopCount = 0;
    do 
    {
    LoopCount++;
    } 
    while (xmlhttp.status != 200 && LoopCount < 50);

    var coords = "";
    var coord = "";
    if (window.DOMParser)
    {
    //alert("FireFox");
        var coords  = xmlhttp.responseXML.documentElement.getElementsByTagName("geoPoint");
        for (i=0;i<coords.length;i++)
        {
            var coord = coords[i].childNodes[0].nodeValue;
        }
    }
    else
    {
        var coord = xmlhttp.responseXML.selectSingleNode("//geoPoint").text;
    }
    return coord; 
    }
