﻿        var map;
        var geocoder;
        var bounds;
        
        function initialize() {
          if (GBrowserIsCompatible()) {
            map = new GMap2(document.getElementById("map"));
            map.setCenter(new GLatLng(0,0),6); 
            
            bounds = new GLatLngBounds();
            geocoder = new GClientGeocoder();
            
            map.addControl(new GLargeMapControl());	                //zoom
            map.addControl(new GMapTypeControl());	                //swith
            map.addMapType(G_PHYSICAL_MAP);                         //map
            map.enableScrollWheelZoom();                            //use mouse zoom in & out

            //clear all marker
            map.clearOverlays();
          }
        }
        
        function insertMarkers(address,storename,setCenterOrNot,Xwidth,Yheight,divid,not_found_text,longitude,latitude){

              point = new GLatLng(longitude,latitude);

                    if (!point) {
                        if (setCenterOrNot==1){
                            document.getElementById(divid).display = "none"; 
                        }
                    } else {
                        if (setCenterOrNot==1){
                             map.setCenter(point, 15);
                        }
                        
                        if (setCenterOrNot==0){

                        }
                     
                        var myMarker = new GMarker( point, {draggable:false} );
                        map.addOverlay( myMarker );
                        
                        //desc
                        if (setCenterOrNot==1){
                            myMarker.openInfoWindowHtml('<span class="content"><b>' + storename + '</b><br/>' +address + '</span>'); 
                        }


                        //click
                        GEvent.addListener(myMarker, "click", function(){
                                   myMarker.openInfoWindowHtml('<span class="content"><b>' + storename + '</b><br/>' +address + '</span>'); 
                             });

                        center(Xwidth,Yheight,divid);
            
                        checkmap();
                    }
        }
        
        function showAddress(address,storename,Xwidth,Yheight,divid,not_found_text,longitude,latitude) {
            initialize()
            insertMarkers(address,storename,1,Xwidth,Yheight,divid,not_found_text,longitude,latitude)         
        }

        
        function center(Xwidth,Yheight,divid) { 
                // First, determine how much the visitor has scrolled 
                var scrolledX, scrolledY; 
                if( parent.pageYOffset ) { 
                scrolledX = self.pageXOffset; 
                scrolledY = parent.pageYOffset ; 
           
                } else if( document.documentElement && parent.document.documentElement.scrollTop ) { 
                scrolledX = document.documentElement.scrollLeft; 
                scrolledY = parent.document.documentElement.scrollTop ; 
           
                } else if( document.body ) { 
                scrolledX = document.body.scrollLeft; 
                scrolledY = parent.document.body.scrollTop;
 
                } 

                // Next, determine the coordinates of the center of browser's window 
                var centerX, centerY; 
                if( parent.innerHeight ) { 
                centerX = self.innerWidth; 
                centerY = parent.innerHeight; 

                } else if( document.documentElement && parent.document.documentElement.clientHeight ) { 
                centerX = document.documentElement.clientWidth; 
                centerY = parent.document.documentElement.clientHeight; 

                } else if( document.body ) { 
                centerX = document.body.clientWidth; 
                centerY = parent.document.body.clientHeight; 

                } 

                // Xwidth is the width of the div, Yheight is the height of the 
                // div passed as arguments to the function: 
                var leftOffset = scrolledX + (centerX - Xwidth) / 2; 
                var topOffset = scrolledY + (centerY - Yheight) / 2; 

                if (topOffset <= 30 ){
                    topOffset = 30;
                } 

                // The initial width and height of the div can be set in the 
                // style sheet with display:none; divid is passed as an argument to // the function 
                var o=document.getElementById(divid); 
                var r=o.style; 
                r.position='absolute'; 
                r.top = topOffset + 'px'; 
                r.left = leftOffset + 'px'; 
                r.zindex = "1";
                r.display = "block"; 
        } 
        
        function checkmap()
        {
             if (map) {
             /*The problem is that the browser tells the API that a div with
               display:none has zero size, and the API creates the map accordingly.

               You either have to perform map.checkResize() after revealing the map
               div, or use the {size} option to specify the size when you create the
               map. */
                map.checkResize();
             }
        }
        
        function hideMap(){
                document.getElementById('divCorner').style.display='none';
                //document.getElementById('map').style.display='none';
                GUnload();
        }
        
     
         //********************************************************************************************************************************
        
         var strStore;
         var arrStoreItem = new Array();
         
         var strAddress;
         var arrAddressItem = new Array();
         
         var strLongitude;
         var arrLongitudeItem = new Array();
         
         var strLatitude;
         var arrLatitudeItem = new Array();
         
         
        // Creates a marker with correct number
        function AddMarker(point, windowtext) {
              var myMarker = new GMarker( point, {draggable:false} );
              map.addOverlay( myMarker );
            
                if(windowtext != ""){
                    GEvent.addListener(myMarker, "click", function() {
                        myMarker.openInfoWindowHtml(windowtext);
                    });
                }
        }

         function publishAll(){            
            strStore = arrStoreName;
            arrStoreItem = strStore.split(";/");
            
            strAddress = arrAddress;
            arrAddressItem = strAddress.split(";/");
            
            strLongitude = arrLongitude;
            arrLongitudeItem = strLongitude.split(";/");
            
            strLatitude = arrLatitude;
            arrLatitudeItem = strLatitude.split(";/");
            
            initialize();
          
            if (GBrowserIsCompatible()) {
                StartLoadPoint();
            }
         }   

       function StartLoadPoint() {
            var iMax = arrAddressItem.length;
            for(var i=0;i<iMax;i++){
               var longitude = '';
               longitude = arrLongitudeItem[i];
               var latitude = '';
               latitude = arrLatitudeItem[i];
               var sto = '';
               sto = arrStoreItem[i];
               var add = '';
               add = arrAddressItem[i];
                
               if( longitude != '' && latitude !=''){
                   var point = new GLatLng(parseFloat(longitude),parseFloat(latitude));
                   if(point){
                       AddMarker(point, '<span class="content"><b>' + sto + '</b><br/>' +add + '</span>');
                       
                       bounds.extend(point); 
                   }
               }
            }
            map.setZoom(map.getBoundsZoomLevel(bounds));
            map.setCenter(bounds.getCenter());
       }
        
        //********************************************************************************************************************************  
               
        
       
              

