var gmarkers = [];
var map;

function cmdDisplayBanks_onclick() {

    var zip = $("input[@name=txtZipCode]").val();
    var rad = $('#cboRadius option[@selected]').text()
    
    $.blockUI('<h3><img src="busy.gif" /> Finding banks within ' + rad +' mile(s) of zipcode ' + zip + '</h3>');
    
    $("#side_bar").empty();

    $.get("http://" + location.host + "/webservices/bankfinder/bankfinder.asmx/GetBanksForZipcode",
      {zipcode: zip, radius: rad},
      OnSuccess
      );
}

function OnSuccess(transport){
    var sideBarHtml ;
    var lastBankName;
    var banks = transport.getElementsByTagName('Bank');

    if(banks.length > 0)
    {    
        if (gmarkers.length > 0)
           { map.clearOverlays(); }
        
        var bounds = new GLatLngBounds();
     
	    function createMarker(point, displayinfo) {
		    var marker = new GMarker(point);
		    GEvent.addListener(marker, "click", function() {
		      marker.openInfoWindowHtml(displayinfo);
		    });
		    gmarkers[i] = marker;
		    return marker;
	    }

        sideBarHtml ='';
        for (var i=0;i<banks.length;i++)
        {
          var latitude    = banks[i].getAttribute('Latitude');
          var longitude   = banks[i].getAttribute('Longitude');
          var fulladdress = banks[i].getAttribute('FullAddress') ;
          var bankname    = banks[i].getAttribute('Name') ;
          var point = new GLatLng(latitude,longitude);
          var marker = createMarker(point, "<b>" + bankname + "</b><br>" + fulladdress );
          map.addOverlay(marker);
          
          if (lastBankName != bankname)
          {
            if (i>0)
                {sideBarHtml += '</ul>';}

            sideBarHtml += '<ul><b>' + bankname + '</b><li><a href="javascript:ShowMarker('+ i + ')">' + fulladdress + '</a></li>';
          }
          else
          {
            sideBarHtml += '<li><a href="javascript:ShowMarker('+ i + ')">' + fulladdress + '</a></li>';
          }

          lastBankName = bankname;
          
          bounds.extend(point);
        }
        $("#side_bar").append(sideBarHtml);
        map.setZoom(map.getBoundsZoomLevel(bounds));
        map.setCenter(bounds.getCenter());
        
        $("ul").Treeview({ speed: "fast", collapsed: true});    
    }
    else
    {
        alert('No banks found!');
    } 
   
    /*
    //Monitor the window resize event and let the map know when it occurs  
    if (window.attachEvent) 
        { window.attachEvent("onresize", function() {this.map.onResize()} ); } 
    else 
        {  window.addEventListener("resize", function() {this.map.onResize()} , false);  }
    */
}

function ShowMarker(markerid){
	GEvent.trigger(gmarkers[markerid], "click");
}

