﻿// JScript File

            
    
//var geocoder = new GClientGeocoder();
var side_bar_html = "";
var gmarkers = [];
var htmls = [];
var i = 0;
var map;
var latitude;
var longitude;
      
             
        function clear_textbox(control)
        {
            if (control.value == "Toronto, ON")
            control.value = "";
        }        
       function fill_textbox(control)
       {
            if (control.value == "")
            {
                control.value = "Toronto, ON"; 
            }
       }
        
        function clear_distance(control)
        {
            if (control.value == "30")
            control.value = "";
        }        
       function fill_distance(control)
       {
            if (control.value == "")
            {
                control.value = "30"; 
            }
       }
       
       function clear_all(id, name, desc, s1, p1, s2, p2, s3, p3)
       {
            if(id == "name")
            {
                clear_desc(desc);
                clear_ddl(s1, p1, s2, p2, s3, p3);
            }
            else if (id == "desc")
            {
                clear_name(name);
                clear_ddl(s1, p1, s2, p2, s3, p3);
            }
            else
            {
                clear_desc(desc);
                clear_name(name);
            }
       
       }
       
       function clear_name(control)
       {
             //document.getElementById('<%= txtName.ClientID %>').value = "";
             control.value = "";
      }
       function clear_desc(control)
       {
            //document.getElementById('<%= txtDesc.ClientID %>').value = "";
            control.value = "";
       }
       
       function clear_ddl(s1, p1, s2, p2, s3, p3)
       {
                var service1 = s1; //document.getElementById('<%= ddlServices1.ClientID %>');
                service1.options[0].selected = true;
                var program1 = p1; //document.getElementById('<%= ddlPrograms1.ClientID %>');
                program1.options.length = 0;

                var service2 = s2; //document.getElementById('<%= ddlServices2.ClientID %>');
                service2.options[0].selected = true;
                var program2 = p2; //document.getElementById('<%= ddlPrograms2.ClientID %>');
                program2.options.length = 0;

                var service3 = s3; //document.getElementById('<%= ddlServices3.ClientID %>');
                service3.options[0].selected = true;
                var program3 = p3; //document.getElementById('<%= ddlPrograms3.ClientID %>');
                program3.options.length = 0;

               // Create an Option object
               var opt1 = document.createElement('option');
               var opt2 = document.createElement('option');
               var opt3 = document.createElement('option');
                  // Add an Option object to Drop Down/List Box
                  program1.options.add(opt1);        
                  program2.options.add(opt2);        
                  program3.options.add(opt3);        
                // Assign text and value to Option object
                        opt1.text = "-- -- -- --";
                    opt1.value = "none";            
                        opt2.text = "-- -- -- --";
                    opt2.value = "none";            
                        opt3.text = "-- -- -- --";
                    opt3.value = "none";      
                 
                service2.disabled=true;
                program2.disabled=true;          
                service3.disabled=true;
                program3.disabled=true;          
       }
       
      
       function IsNumeric(strDistance)
       {
           //  check for valid numeric strings	
           
           var strValidChars = "0123456789.";
           var strChar;
           var boolResult = true;

           //  test strDistance consists of valid characters listed above
           for (i = 0; i < strDistance.length && boolResult == true; i++)
           {
              strChar = strDistance.charAt(i);
              if (strValidChars.indexOf(strChar) == -1)
                 {
                 boolResult = false;
                 }
           }
           
           if(strDistance == 0)
           {
                boolResult = false;
           }
           return boolResult;
       }

       // a function to create the marker and set up the event window
       function createMarker(point,name,address, distance) 
       {
            var icon = new GIcon();
            var filename;

            if(i < 99 && distance != 0)
            {
                filename = '../markers/ribbon_'+(i) + '.png';
            }
            else
            {
                filename = '../markers/ribbon_300_full.png';
            }
            
            icon.image = filename;
            icon.iconAnchor = new GPoint(9, 34);

            icon.shadow = "../markers/shadow.png";
            icon.iconSize = new GSize(20, 41);
            icon.shadowSize = new GSize(40, 40);
            
            icon.infoWindowAnchor = new GPoint(9, 2);
            icon.infoShadowAnchor = new GPoint(0, 0);

            icon.printImage = icon.image;
            icon.mozPrintImage = icon.image;        
            
            var marker = new GMarker(point, icon );
            GEvent.addListener(marker, "click", function() {
             var url  = '<a href="info.aspx?asoname='+ escape(name) + '&distance='+distance+ '" target="_search"> Plus d\'information...</a>';
            
              marker.openInfoWindowHtml("<b>"+name+"</b> <p>"+address+"</p>"+url+"");
            });
            
            var imageLink = '<img border=0 class="sidebar_marker" src="'+filename+'" height="31" width="15" />';
            gmarkers[i] = marker;
            var link  = '<a href="info.aspx?asoname='+escape(name) +'&distance='+distance+ '" target="_search"> Plus d\'information...</a>'
            
            htmls[i] = "<b>"+name+"</b> <p>"+address+"</p>"+ link;
            side_bar_html += '<table style="padding-bottom: 8px; font-size:10px;" ><tr>';
            side_bar_html += '<td style="float: left">';
            //***** NEW: if lat or lng  == 0, don't add hyperlink            
            if(point.x != 0 || point.y != 0 ){
                side_bar_html += '<a href="javascript:myclick(' + i + ')">'+imageLink+'</a>';
            }
            else
            {
                side_bar_html += imageLink;
            }  
            //*** END NEW     
            side_bar_html += '</td><td>'; 
            side_bar_html += '<b>' + name + '</b> <br/> distance='+distance + ' km.<br/>';
            
            side_bar_html += '<a href="info.aspx?asoname='+ escape(name)+ '&distance='+distance+ '" target="_search"> Plus d\'information...</a>';
            

            side_bar_html += '<br/> </td></tr></table>';
            i++;
            
            return marker;
        }  
        

       function createMeMarker(latitude, longitude) 
       {
            var icon = new GIcon();
            var filename;

            filename = '../markers/me.png';
            
            icon.image = filename;
            icon.iconAnchor = new GPoint(9, 34);

            //icon.shadow = "../markers/shadow.png";
            icon.iconSize = new GSize(23, 25);
            //icon.shadowSize = new GSize(40, 40);
            
            icon.infoWindowAnchor = new GPoint(9, 2);
            icon.infoShadowAnchor = new GPoint(0, 0);

            icon.printImage = icon.image;
            icon.mozPrintImage = icon.image;        
            
            var point = new GLatLng(latitude,longitude);
            var marker = new GMarker(point, icon );
            //alert(point.x + '  ' + point.y);
            
            GEvent.addListener(marker, "click", function() {

            marker.openInfoWindowHtml("<b>Vous êtes ici.</b>");
            });
            
            var imageLink = '<img border=0 class="sidebar_marker" src="'+filename+'" height="25" width="23" />';
            gmarkers[i] = marker;
            htmls[i] = "<b>Vous êtes ici.</b> ";
            side_bar_html += '<p></p><div style="padding-bottom: 8px; padding-top: 8px;" >';
            side_bar_html += '<div style="float: left">';
            side_bar_html += '<a href="javascript:myclick(' + i + ')">'+imageLink+'</a>';
            side_bar_html += '</div>'; 
            side_bar_html += '<b>Vous êtes ici.</b> ';

            side_bar_html += '<br/> </div><p></p>';
            i++;
            return marker;
        }  
        


      // This function picks up the click and opens the corresponding info window
      function myclick(i) 
      {
            gmarkers[i].openInfoWindowHtml(htmls[i]);
      }

//      document.onkeydown = function() 
//      {
//          if (event.keyCode == 13) 
//          {
//	          Page_ClientValidate();
//          }
//	  }

        function loadIndividualMap(lat, lng){
          if (GBrowserIsCompatible()) {        
              map = new GMap2(document.getElementById("individualMap"));        
              map.setCenter(new GLatLng(lat, lng ), 16);
              map.addControl(new GSmallMapControl());
              //map.addControl(new GMapTypeControl());

                // Create our "tiny" marker icon
                var icon = new GIcon();
                icon.image = "../markers/ribbon_300_full.png";
                icon.shadow = "../markers/shadow.png";
                icon.iconSize = new GSize(18, 24);
                icon.shadowSize = new GSize(24, 34);
                icon.iconAnchor = new GPoint(6, 20);
                icon.infoWindowAnchor = new GPoint(5, 1);
                var point = new GLatLng(lat,lng);  
                map.addOverlay(new GMarker(point, icon));
          }
        }
        
    function displayBasicList(pCode, dist, Service, Program) 
    {
        var postalCode=pCode.value;
        var distance=dist.value;
        var service=Service;
        var serviceValue = service.options[service.selectedIndex].value;
        var program=Program;

        var programValue = '';        
        if('All' != serviceValue) {
            programValue = program.options[program.selectedIndex].value;
        } 

        var googleMapPanel=document.getElementById("GoogleMapPanel");
        //googleMapPanel.style.visibility = "hidden";            
           
       try 
       {

           if(postalCode == null || postalCode.length < 1)
            {
                alert("Veuillez entrer une localité.");
                return;
            }
            
           if(!IsNumeric(distance)) 
            {
                //Page_ClientValidate();
                alert("Veuillez entrer une distance valide plus grande que zéro.");
                dist.value = "";
                //dist.focus();
                return;
            }                 
            
        }
        catch(e) 
        {          
            return;
        }

       var geocoder = new GClientGeocoder();
       geocoder.getLatLng(postalCode,    
           function(point) {      
               if (!point) {        
                   alert("La localité \"" + postalCode + "\" n'a pas été trouvé."); 
                   return;     
               } 
               else { 
                   latitude = point.lat();
                   longitude = point.lng();
               }
               var asoRequestURL = 'results.aspx?postalCode='+ postalCode +'&distance='+distance;
               asoRequestURL += '&latitude=' + latitude +'&longitude='+ longitude;
               asoRequestURL += '&service=' + serviceValue +'&program='+ programValue;        
               window.location= asoRequestURL;   
           }  
       );
   }         

    function loadBasicMap( pCode, dist, service, program, isAso) {
    
        document.getElementById("map").style.visibility = 'hidden';        
        document.getElementById("side_bar").style.visibility = 'hidden';  
        
        if (!GBrowserIsCompatible()) 
        {
            //document.getElementById("count").innerHTML = "";
            alert('Votre barre d\'internet n\'est pas compatible avec GB');
            return;
        }
        if(map == null)
        {  
            //alert('Load Map...Map is null');
            map = new GMap2(document.getElementById('map') );
            
            map.addControl(new GLargeMapControl());
            map.addControl(new GMapTypeControl());
            
            map.setCenter(new GLatLng(55,-79), 16);
        } 
        var postalCode=pCode + " canada";
        var distance=dist;
        var serviceValue = service; //.options[service.selectedIndex].value;
        var request = GXmlHttp.create();
        var googleMapPanel=document.getElementById("GoogleMapPanel");
        googleMapPanel.style.visibility = "hidden";

       try
       { 
           if(postalCode == null || postalCode.length < 1)
            {
                alert("Veuillez entrer une localité.");
                return;
            }
           if(!IsNumeric(distance) || distance < 0.1) 
            {
                //Page_ClientValidate();\
                document.getElementById("count").innerHTML = "";
                alert("Veuillez entrer une distance valide plus grande que zéro.");
                return;
            } 
        }
        catch(e)
        {
            return
        }                

        document.getElementById("count").innerHTML = "<p style=\"padding-left:30px; font-size:14px;" +
            " font-weight:bold; color:Crimson;\">Attendre un moment....</p>";
        //window.location.href ="find.aspx#focusmap";      
        var programValue = '';        
        if('All' != serviceValue) {
            programValue = program; //.options[program.selectedIndex].value;
        } 
       var geocoder = new GClientGeocoder();
         geocoder.getLatLng(postalCode,    
           function myPoint(point) 
           {      
               if (!point) 
               { 
                   document.getElementById("count").innerHTML = "";       
                   alert("Lieu non trouvé sur la carte."); 
                   return;     
               } 
               else 
               { 
                   latitude = point.lat();               
                   longitude = point.lng();
               }

                var asoRequestURL = '../findASOdXMLHandler.ashx?postalCode='+ postalCode +'&distance='+distance;
                asoRequestURL += '&latitude=' + latitude +'&longitude='+ longitude;
                asoRequestURL += '&service=' + serviceValue + '&isAso=' + isAso + '&version=fr&program='+ programValue ;
                request.open('GET', asoRequestURL, true);

                request.onreadystatechange = function() {
                  if (request.readyState == 4) {
                    var txtDoc = request.responseText;
                    if(txtDoc.length == 0) {
                        //Page_ClientValidate();
                        document.getElementById("count").innerHTML = "";
                        alert('Aucun organisme retrouvé selon les consignes de recherche.');
                        return;
                    } 
                    var xmlDoc = GXml.parse(txtDoc);
                    // obtain the array of markers and loop through it 
                    var nodelist = xmlDoc.lastChild;
                    if(nodelist == null || nodelist.length  == 0) {
                        //Page_ClientValidate();
                        document.getElementById("count").innerHTML = "";
                        alert('Aucun organisme retrouvé selon les consignes de recherche.');
                        return;
                    }  
                    var markers = nodelist.getElementsByTagName("marker"); 
                    // hide the info window, otherwise it still stays open where the removed marker used to be
                    map.getInfoWindow().hide();
                    map.clearOverlays();
                    // empty the array
                    gmarkers = [];
                    // reset the side_bar
                    side_bar_html="";
                    i=0;
                    

                    // NEW
                    var k;
                    var view = false;
                    for ( k = 0; k < markers.length; k++) 
                    {
                        if(markers[k].getAttribute("latitude") != 0.0 && markers[k].getAttribute("longitude") != 0.0)
                        {
                            view = true;
                            break;
                        }
                    }

                    //gets lat and lng from geocode contained in the response
                    var gLat;
                    var gLng;
                    for ( k = 0; k < 1; k++) 
                    {
                        gLat = markers[k].getAttribute("gLat");
                        gLng = markers[k].getAttribute("gLng");
                    }
                      
                      //creates the blue man and center maps on it.
                      var meMarker = createMeMarker(gLat, gLng);
                       map.addOverlay(meMarker);
                       map.setCenter(new GLatLng(gLat, gLng), 13);
                       
                       var localNoMap = new Array();
                       var mapped = new Array();
                       var notMapped = new Array();
                       var a = 0;
                       var b = 0;
                       var c = 0;
                    for (var j = 0; j < markers.length; j++) 
                    {
                        if(markers[j].getAttribute("area") == "local" && markers[j].getAttribute("latitude") == 0 
                            && markers[j].getAttribute("longitude") == 0)
                        {
                            localNoMap[c] = markers[j];
                            c++;
                        }  
                        else if(markers[j].getAttribute("area") != "local")
                        {
                            if(markers[j].getAttribute("latitude") != 0.0 && markers[j].getAttribute("longitude") != 0.0)
                            {
                                mapped[a] = markers[j];
                                a++;
                            }
                            else
                            {
                                 notMapped[b] = markers[j];
                                 b++;
                            }
                        }
                        else
                        {
                          // obtain the attribues of each marker
                          var lat = parseFloat(markers[j].getAttribute("latitude"));
                          var lng = parseFloat(markers[j].getAttribute("longitude"));
                          var point = new GLatLng(lat,lng);
                          var Address = markers[j].getAttribute("address");
                          var OrganizationName = markers[j].getAttribute("organization");
                          var distance = markers[j].getAttribute("distance");
                          // create the marker
                          var marker = createMarker(point,OrganizationName,Address, distance);
                          // adds marker to map only if lat && lon != 0.0
                          if(lat != 0 && lng != 0)
                          {
                            map.addOverlay(marker);
                          }                        
                        }
                     }

                    for (var x = 0; x < mapped.length; x++) 
                    {
                      // obtain the attribues of each marker
                      var lat = parseFloat(mapped[x].getAttribute("latitude"));
                      var lng = parseFloat(mapped[x].getAttribute("longitude"));
                      var point = new GLatLng(lat,lng);
                      var Address = mapped[x].getAttribute("address");
                      var OrganizationName = mapped[x].getAttribute("organization");
                      var distance = mapped[x].getAttribute("distance");
                      // create the marker
                      var marker = createMarker(point,OrganizationName,Address, distance);
                      // adds marker to map only if lat && lon != 0.0
                      if(lat != 0 && lng != 0)
                      {
                        map.addOverlay(marker);
                      }                                            
                    }  
                    
                    for (var z = 0; z < localNoMap.length; z++) 
                    {
                      // obtain the attribues of each marker
                      var lat = parseFloat(localNoMap[z].getAttribute("latitude"));
                      var lng = parseFloat(localNoMap[z].getAttribute("longitude"));
                      var point = new GLatLng(lat,lng);
                      var Address = localNoMap[z].getAttribute("address");
                      var OrganizationName = localNoMap[z].getAttribute("organization");
                      var distance = localNoMap[z].getAttribute("distance");
                      // create the marker
                      var marker = createMarker(point,OrganizationName,Address, 0);                          
                    }  

                    for (var y = 0; y < notMapped.length; y++) 
                    {
                      // obtain the attribues of each marker
                      var lat = parseFloat(notMapped[y].getAttribute("latitude"));
                      var lng = parseFloat(notMapped[y].getAttribute("longitude"));
                      var point = new GLatLng(lat,lng);
                      var Address = notMapped[y].getAttribute("address");
                      var OrganizationName = notMapped[y].getAttribute("organization");
                      var distance = notMapped[y].getAttribute("distance");
                      // create the marker
                      var marker = createMarker(point,OrganizationName,Address, 0);
                    }  


//                    for (var j = 0; j < markers.length; j++) 
//                    {  
//                      // obtain the attribues of each marker
//                      var lat = parseFloat(markers[j].getAttribute("latitude"));
//                      var lng = parseFloat(markers[j].getAttribute("longitude"));
//                      var point = new GLatLng(lat,lng);
//                      var Address = markers[j].getAttribute("address");
//                      var OrganizationName = markers[j].getAttribute("organization");
//                      var distance = markers[j].getAttribute("distance");
//                      // create the marker
//                      var marker = createMarker(point,OrganizationName,Address, distance);
//                      // adds marker to map only if lat && lon != 0.0
//                      if(lat != 0 && lng != 0)
//                      {
//                        map.addOverlay(marker);
//                      }
//                    }

                    // put the assembled side_bar_html contents into the side_bar div
                    document.getElementById("side_bar").innerHTML = side_bar_html;
                    var side_bar = document.getElementById("side_bar");
                    side_bar.style.backgroundColor = '#EAEAEA';//'#efefef';
                    side_bar.style.visibility='visible';
                    document.getElementById("map").style.visibility = 'visible';        
                    
                    var GoogleMapPanel = document.getElementById("GoogleMapPanel");
                    GoogleMapPanel.style.visibility = 'visible';
                    document.getElementById("side_bar").style.height = 500;  
                    document.getElementById("side_bar").style.height = 500;
//                    if(view)
//                    {
                     document.getElementById("map").style.height = 500;
                     document.getElementById("map").style.height = 500;
//                    }
//                    else
//                    {
//                        document.getElementById("map").innerHTML = "<div style=\"padding: 100px; font-weight:bold; \">There is no map available for this list of organizations.</div> ";
//                    }  
                    document.getElementById("count").innerHTML = "";
                  }
                }
                request.send(null);
         });
      }


            
       function displayAdvList(Address, dist, name, desc, s1, p1, s2, p2, s3, p3) {       
       
            
        
           var address = Address.value; //document.getElementById('<%= txtAdvAddress.ClientID %>').value; 
           
           if(address == null || address.length < 1)
           {
                alert("Veuillez entrer une localité.");
                return;
                //address= 'Toronto, ON';
           } 
           var distance = dist.value; //document.getElementById('<%= txtAdvDistance.ClientID %>').value; 

           if(!IsNumeric(distance)) 
            {
                //Page_ClientValidate();
                alert("Veuillez entrer une distance valide plus grande que zéro.");
                dist.value = "";
                //dist.focus();
                return;
            }   
                     
           name = name.value; //document.getElementById('<%= txtName.ClientID %>').value;  
           desc = desc.value; //document.getElementById('<%= txtDesc.ClientID %>').value;  
          
           var service1 = s1; //document.getElementById('<%= ddlServices1.ClientID %>');
           service1Value = service1.options[service1.selectedIndex].value;  
           var program1 = p1; //document.getElementById('<%= ddlPrograms1.ClientID %>');  
           program1Value = program1.options[program1.selectedIndex].value;  

           var service2 = s2; //document.getElementById('<%= ddlServices2.ClientID %>');
           service2Value = service2.options[service2.selectedIndex].value;  
           var program2 = p2; //document.getElementById('<%= ddlPrograms2.ClientID %>');  
           program2Value = program2.options[program2.selectedIndex].value;  
           
           var service3 = s3; //document.getElementById('<%= ddlServices3.ClientID %>');
           service3Value = service3.options[service3.selectedIndex].value;  
           var program3 = p3; //document.getElementById('<%= ddlPrograms3.ClientID %>');  
           program3Value = program3.options[program3.selectedIndex].value;  
           
          
           var geocoder = new GClientGeocoder();                   
           geocoder.getLatLng(address,    
               function(point) 
               {      
                   if (!point) 
                   {        
                       alert("La localité \"" + address + "\" n'a pas été trouvé."); 
                       return;     
                   } 
                   else 
                   { 
                       latitude = point.lat();
                       longitude = point.lng();
                   }
                   
                   var newLocation = 'resultsAdvanced.aspx?address='+ address +'&distance='+ distance +'&latitude='+ latitude + '&longitude='+ longitude;
                   newLocation += '&name='+ name +'&desc='+ desc + '&service1='+ service1Value +'&program1=' + program1Value;
                   newLocation += '&service2='+ service2Value +'&program2=' + program2Value +'&service3='+ service3Value +'&program3=' + program3Value;
                   window.location= newLocation;    
               }  
           );
       } 


    function loadAdvMap(Address, dist, Name, Desc, s1, p1, s2, p2, s3, p3, isAso) {

        document.getElementById("advMap").style.visibility = 'hidden';        
        document.getElementById("advSide_bar").style.visibility = 'hidden'; 
        document.getElementById("GoogleAdvMapPanel").style.visibility = 'hidden'; 
        if (!GBrowserIsCompatible()) 
        {
            document.getElementById("count").innerHTML = "";
            alert('Your browser is not GMAP compatible');
            return;
        }
        if(map == null)
        {  
            //alert('Load Map...Map is null');
            map = new GMap2(document.getElementById('advMap'));
            
            map.addControl(new GLargeMapControl());
            map.addControl(new GMapTypeControl());
            
            map.setCenter(new GLatLng(55,-79), 12);
        } 
       var address = Address + " canada"; //document.getElementById('<%= txtAdvAddress.ClientID %>').value; 
       if(address == null || address.length < 1 || address == "")
       {
                alert("Veuillez entrer une localité.");
                return;
                //address= 'toronto';
       }         
       var distance = dist ;
       var name = Name ; 
       var desc = Desc ;   
      
       service1Value = s1 ; 
       program1Value = p1 ; 

       service2Value = s2 ; 
       program2Value = p2 ; 
       
       service3Value = s3 ;
       program3Value = p3 ; 
       
       if(!IsNumeric(distance) || distance < 0.1) 
        {
            //Page_ClientValidate();
            document.getElementById("count").innerHTML = "";
            alert("Veuillez entrer une distance valide plus grande que zéro.");
            return;
        } 
        document.getElementById("count").innerHTML = "<p style=\"padding-left:30px; font-size:14px;" +
            " font-weight:bold; color:Crimson;\">Attendre un moment....</p>";
        //window.location.href ="findAdvanced.aspx#focusmap";      

      var geocoder = new GClientGeocoder();
      geocoder.getLatLng(address,    
       function myPoint(point) 
       {      
           if (!point) 
           {   
               document.getElementById("count").innerHTML = "";
               alert("Lieu non trouvé sur la carte."); 
               return;     
           } 
           else 
           { 
               latitude = point.lat();               
               longitude = point.lng();
           }
            var googleAdvMapPanel=document.getElementById("GoogleAdvMapPanel");
            googleAdvMapPanel.style.visibility = "hidden";
           var advHandler = '../findAdvancedASOdXMLHandler.ashx?address='+ address +'&distance='+ distance +'&latitude='+ latitude + '&longitude='+ longitude;
           advHandler += '&name='+ name +'&desc='+ desc  + '&version=fr' + '&service1='+ service1Value +'&program1=' + program1Value;
           advHandler += '&service2='+ service2Value +'&program2=' + program2Value +'&service3='+ service3Value +'&program3=' + program3Value + '&isAso=' + isAso ;
             
           var request = GXmlHttp.create();
           request.open('GET', advHandler, true);
            request.onreadystatechange = function() 
            {
              if (request.readyState == 4) 
              {
                var txtDoc = request.responseText;

                if(txtDoc.length == 0) 
                {
                    //Page_ClientValidate();
                    document.getElementById("count").innerHTML = "";
                    alert('Aucun organisme retrouvé selon les consignes de recherche.');
                    return;
                } 
                var xmlDoc = GXml.parse(txtDoc);
                
                // obtain the array of markers and loop through it 
                var nodelist = xmlDoc.lastChild;
               
                if(nodelist == null || nodelist.length  == 0) 
                {
                    //Page_ClientValidate();
                    document.getElementById("count").innerHTML = "";
                    alert('Aucun organisme retrouvé selon les consignes de recherche.');
                    return;
                }  
                var markers = nodelist.getElementsByTagName("marker"); 
                // hide the info window, otherwise it still stays open where the removed marker used to be
                map.getInfoWindow().hide();
                map.clearOverlays();
                // empty the array
                gmarkers = [];
                // reset the side_bar
                side_bar_html="";
                i=0;

                    // NEW
                    var k;
                    var view = false;
                    for ( k = 0; k < markers.length; k++) 
                    {
                        if(markers[k].getAttribute("latitude") != 0.0 && markers[k].getAttribute("longitude") != 0.0)
                        {
                            view = true;
                            break;
                        }
                    }

                    //gets lat and lng from geocode contained in the response
                    var gLat;
                    var gLng;
                    for ( k = 0; k < 1; k++) 
                    {
                        gLat = markers[k].getAttribute("gLat");
                        gLng = markers[k].getAttribute("gLng");
                    }
                      
                      //creates the blue man and center maps on it.
                      var meMarker = createMeMarker(gLat, gLng);
                       map.addOverlay(meMarker);
                       map.setCenter(new GLatLng(gLat, gLng), 13);
                       
                       var localNoMap = new Array();
                       var mapped = new Array();
                       var notMapped = new Array();
                       var a = 0;
                       var b = 0;
                       var c = 0;
                    for (var j = 0; j < markers.length; j++) 
                    {
                        if(markers[j].getAttribute("area") == "local" && markers[j].getAttribute("latitude") == 0 
                            && markers[j].getAttribute("longitude") == 0)
                        {
                            localNoMap[c] = markers[j];
                            c++;
                        }  
                        else if(markers[j].getAttribute("area") != "local")
                        {
                            if(markers[j].getAttribute("latitude") != 0.0 && markers[j].getAttribute("longitude") != 0.0)
                            {
                                mapped[a] = markers[j];
                                a++;
                            }
                            else
                            {
                                 notMapped[b] = markers[j];
                                 b++;
                            }
                        }
                        else
                        {
                          // obtain the attribues of each marker
                          var lat = parseFloat(markers[j].getAttribute("latitude"));
                          var lng = parseFloat(markers[j].getAttribute("longitude"));
                          var point = new GLatLng(lat,lng);
                          var Address = markers[j].getAttribute("address");
                          var OrganizationName = markers[j].getAttribute("organization");
                          var distance = markers[j].getAttribute("distance");
                          // create the marker
                          var marker = createMarker(point,OrganizationName,Address, distance);
                          // adds marker to map only if lat && lon != 0.0
                          if(lat != 0 && lng != 0)
                          {
                            map.addOverlay(marker);
                          }                        
                        }
                     }

                    for (var x = 0; x < mapped.length; x++) 
                    {
                      // obtain the attribues of each marker
                      var lat = parseFloat(mapped[x].getAttribute("latitude"));
                      var lng = parseFloat(mapped[x].getAttribute("longitude"));
                      var point = new GLatLng(lat,lng);
                      var Address = mapped[x].getAttribute("address");
                      var OrganizationName = mapped[x].getAttribute("organization");
                      var distance = mapped[x].getAttribute("distance");
                      // create the marker
                      var marker = createMarker(point,OrganizationName,Address, distance);
                      // adds marker to map only if lat && lon != 0.0
                      if(lat != 0 && lng != 0)
                      {
                        map.addOverlay(marker);
                      }                                            
                    }  
                    
                    for (var z = 0; z < localNoMap.length; z++) 
                    {
                      // obtain the attribues of each marker
                      var lat = parseFloat(localNoMap[z].getAttribute("latitude"));
                      var lng = parseFloat(localNoMap[z].getAttribute("longitude"));
                      var point = new GLatLng(lat,lng);
                      var Address = localNoMap[z].getAttribute("address");
                      var OrganizationName = localNoMap[z].getAttribute("organization");
                      var distance = localNoMap[z].getAttribute("distance");
                      // create the marker
                      var marker = createMarker(point,OrganizationName,Address, 0);                          
                    }  

                    for (var y = 0; y < notMapped.length; y++) 
                    {
                      // obtain the attribues of each marker
                      var lat = parseFloat(notMapped[y].getAttribute("latitude"));
                      var lng = parseFloat(notMapped[y].getAttribute("longitude"));
                      var point = new GLatLng(lat,lng);
                      var Address = notMapped[y].getAttribute("address");
                      var OrganizationName = notMapped[y].getAttribute("organization");
                      var distance = notMapped[y].getAttribute("distance");
                      // create the marker
                      var marker = createMarker(point,OrganizationName,Address, 0);
                    }  


//                    for (var j = 0; j < markers.length; j++) 
//                    {  
//                      // obtain the attribues of each marker
//                      var lat = parseFloat(markers[j].getAttribute("latitude"));
//                      var lng = parseFloat(markers[j].getAttribute("longitude"));
//                      var point = new GLatLng(lat,lng);
//                      var Address = markers[j].getAttribute("address");
//                      var OrganizationName = markers[j].getAttribute("organization");
//                      var distance = markers[j].getAttribute("distance");
//                      // create the marker
//                      var marker = createMarker(point,OrganizationName,Address, distance);
//                      // adds marker to map only if lat && lon != 0.0
//                      if(lat != 0 && lng != 0)
//                      {
//                        map.addOverlay(marker);
//                      }
//                    }

                document.getElementById("count").innerHTML = "";
                // put the assembled side_bar_html contents into the side_bar div
                document.getElementById("advSide_bar").innerHTML = side_bar_html;
                var side_bar = document.getElementById("advSide_bar");
                side_bar.style.backgroundColor = '#efefef';
                side_bar.style.visibility='visible';
                document.getElementById("advMap").style.visibility = 'visible';    
                var GoogleMapPanel = document.getElementById("GoogleAdvMapPanel");
                GoogleMapPanel.style.visibility = 'visible';  
              }
            }
            request.send(null);
       });
    }    
