var geocoder = null;	
var map = null;
var icon = null;
var selectedIcon = null;
var mgr = null;
aclubs = new Array();
clubs_on_map = new Array();
var first = true;
	
    function loadGoogle(lat_center, lon_center, notAjax) {
      if (GBrowserIsCompatible()) {
        map = new GMap2(document.getElementById("map"));
        map.setCenter(new GLatLng(52.335339071889386, -1.461181640625), 7);
        mgr = new GMarkerManager(map);
        
        GEvent.addListener(map, "moveend", function() {
        
        	var center = map.getCenter();
        	var coord = center.toString();
        
        	var	delimiter = 0; 
        	delimiter = coord.indexOf(',', coord);
        	var lat = coord.substr(1, delimiter - 1); 
        	var lon = coord.substr(delimiter + 1, coord.length-1);
        	lon = lon.substring(0, lon.length - 1);
        	
        	if(!notAjax) {
        		if(map.getBoundsZoomLevel(map.getBounds()) > 1) {
        
        			var bounds = map.getBounds();	
        			var northEast = bounds.getNorthEast();
        			var lon2 = northEast.lng();
        			var lat2 = northEast.lat();	
        			//lat =1; lon=2; lat2=3; lon2=4;
        			//alert('lat '+lat+' lon '+lon+' lat2 '+lat2+' lon2 '+lon2);
        			xajax_ClubsShow(lat, lon, lat2, lon2);
        			
        			//alert('1')
        			/*var p=new Array();
        			p[0]=lat;
        			p[1]=lon;
        			p[2]=lat2;
        			p[3]=lon2;
        			//alert(p[0]);
        			xajax_ClubsShow(p);*/
        			var markers_arr = Array();					
        			for (var i = 0; i < aclubs.length; i++) {				
        				var cont =  false;
        				if(!first) {	 
        					for(j=0; j < clubs_on_map.length; j++ ) {
        						if(clubs_on_map[j][0] == aclubs[i][0] && clubs_on_map[j][1] == aclubs[i][1]) {	
        							cont = true;
        							continue;						
        						} 
        					}
        					if(cont == true) {
        						continue;
        					} else {							
        						clubs_on_map.push(aclubs[i]);								
        					}
        				}				
        				var point = new GLatLng(aclubs[i][0], aclubs[i][1]);
        				var SelectedClub = false;
        				if(aclubs[i][0] == lat && aclubs[i][1] == lon) {
        					SelectedClub = true;
        				}
        	
        				if(!first) {	
        					markers_arr.push(createMarker(point, clubs_on_map.length - 1, SelectedClub));
        				} else {
        					markers_arr.push(createMarker(point, i, SelectedClub));					
        				}
        		//	}
        			
        				first = false;
        				if(markers_arr.length > 0) {
        					mgr.addMarkers(markers_arr,1,17);
        					mgr.refresh();
        				}
        			}
        		}
          }
        	if(notAjax) {
        		if(lat && lon) {
        			addCookie('lat',lat, 10);	 	
        			addCookie('lon',lon, 10);
        		} 
        		if(map.getBoundsZoomLevel(map.getBounds())) {
        			addCookie('scale',map.getBoundsZoomLevel(map.getBounds()), 10);
        		}
        	}
        	});
        
        	if(notAjax) {
        		map.addControl(new GLargeMapControl());
        		map.addControl(new GOverviewMapControl());
        		map.addControl(new GMapTypeControl());
        		geocoder = new GClientGeocoder();
                	SetCenter();
        
        		var markers_arr = Array();
        		for (var i = 0; i < aclubs.length; i++) {
        			var point = new GLatLng(aclubs[i][0], aclubs[i][1]);
        			markers_arr.push(createMarker(point, i, false));
        
        		}
        		mgr.addMarkers(markers_arr,0);
        		mgr.refresh();
        		
        	} else {
        		map.addControl(new GSmallMapControl());
        		SetCenter(lat_center, lon_center);
        	}
      }	
    }

        function createMarker(point, number, SelectedClub) {
	  if(!SelectedClub) {
          	var marker = new GMarker(point, icon); 	
	  } else {
          	var marker = new GMarker(point, selectedIcon); 	
	  }	 
          GEvent.addListener(marker, "click", function() {		
	      marker.openInfoWindowHtml("Club <b>" + clubs_on_map[number][5] + "</b><br/>Address: " + clubs_on_map[number][2] + "<br/>Work hours: " +  clubs_on_map[number][3] + "<br/>" + clubs_on_map[number][4]);
          });
          return marker;
        }



  function showGoogleAddress(address) {	
      if (geocoder) {
        geocoder.getLatLng(
          address,
          function(point) {
            if (!point) {
              alert(address + " not found");
            } else {
              map.setCenter(point, 15);
              var marker = new GMarker(point);
              map.addOverlay(marker);
              marker.openInfoWindowHtml(address);		
            }
          }
        );
      }
    }


    function getPoint(n) {
      return new GLatLng(aclubs[n][0], aclubs[n][1]);
    }

function addCookie(szName,szValue,dtDaysExpires) 
{
   var dtExpires = new Date();
   var dtExpiryDate = "";

   dtExpires.setTime(dtExpires.getTime() + dtDaysExpires * 24 * 60 * 60 * 1000);

   dtExpiryDate = dtExpires.toGMTString();
   document.cookie =  szName + "=" + szValue + "; expires=" + dtExpiryDate;
}

function findCookie(szName) 
{
  var i = 0;
  var nStartPosition = 0;
  var nEndPosition = 0;  
  var szCookieString = document.cookie;  

  while(i <= szCookieString.length) 
  {
    nStartPosition = i;
    nEndPosition = nStartPosition + szName.length;

    if(szCookieString.substring( 
        nStartPosition,nEndPosition) == szName) 
    {
      nStartPosition = nEndPosition + 1;
      nEndPosition = document.cookie.indexOf(";",nStartPosition);

      if(nEndPosition < nStartPosition)
        nEndPosition = document.cookie.length;

      return document.cookie.substring(nStartPosition,nEndPosition);
      break;    
    }
    i++;  
  }
  return "";
}