var businesshighlight='';
var maploaded=false;
var mapopen=false;
var londonview=true;

function centerOnLondon() {
/*        $('dropdownmapdiv').style.height=600;*/
        map.setCenter(new GLatLng(51.48587270045831, -0.116729736328125), 12);
        londonview=true;
}

function centerOnUK() {
/*        $('dropdownmapdiv').style.height=780;*/
        map.setCenter(new GLatLng(52.63639665997182, -1.812744140625), 7);
        londonview=false;
}

function showLondonMap() {
        if(!mapopen) { // map closed, open it on london
                //alert('map closed, open it on london');
                toggleMap('centerOnLondon();');
                londonview=true;
                mapopen=true;
                return;
        }
        if(mapopen && !londonview) { // looking at uk map, switch to london
                //alert('looking at uk map, switch to london');
                centerOnLondon();
                londonview=true;
                return;
        }
        if(mapopen && londonview) { // looking at london map already, close map
                //alert('looking at london map already, close map');
                toggleMap('');
                mapopen=false;
                return;
        }
}

function showUKMap() {
        if(!mapopen) { // map closed, open it on uk
                //alert('map closed, open it on uk');
                toggleMap('centerOnUK();');
                londonview=false;
                mapopen=true;
                return;
        }
        if(mapopen && londonview) { // looking at london map, switch to UK map
                //alert('looking at london map, switch to UK map');
                centerOnUK();
                londonview=false;
                return;
        }
        if(mapopen && !londonview) { // looking at UK map already, close map
                //alert('looking at UK map already, close map');
                toggleMap('');
                mapopen=false;
                return;
        }
}
pagehasmap=true;

function toggleMap( evalstr ) {
        if(!pagehasmap) Effect.toggle('dropdownmap','blind');
        //if(!pagehasmap) Effect.toggle('main_inner','blind');
        if(!maploaded) {
                setTimeout('showDropDownMap(); maploaded=true;'+evalstr,100);
        } else {
                eval(evalstr);
        }
        maploaded=true;
}

function hideMap() {
        Effect.toggle('dropdownmap','blind'); mapopen=false;
}

function createLinkMarker(point,description,icon,linkurl,id) {
        var marker = new GMarker(point, {title:description, icon:icon});
        map.addOverlay(marker);
        GEvent.addListener(marker, "click", function() {
                //alert(linkurl);
                firstrun=true;
                if(id>0) {
                    html = '<img src="http://www.privatediningrooms.co.uk/showthumbnail.php?businessId='+id+'&width=100&height=50&type=logos" style="float:left; margin-right:10px;"/>';
                } else {
                    html = '';
                }
				marker.openInfoWindowHtml('<div style="height:50px; overflow:hidden;"><a href="'+linkurl+'">'+html+'<b>'+description+'<br>click to view listing</b></a></div>');
                //document.location.href=linkurl;
        });
}

function createZoomMarker(point,description,icon,zoomlevel) {
        var marker = new GMarker(point, {title:description, icon:icon});
        map.addOverlay(marker);
        GEvent.addListener(marker, "click", function() {
                //alert(marker.getPoint().toString()+marker.description+marker.foo); 
                map.setCenter(point,zoomlevel);
        });
}

function autoAddMarkers () {
        var center = map.getCenter();
        var latLngStr = center.toString();
        var bounds = map.getBounds();
        var sw = bounds.getSouthWest();
        var ne = bounds.getNorthEast();
        searchBusinessesAddMarkers(
                ne.lat(), ne.lng(), sw.lat(), sw.lng(), map.getZoom(), map);
}

firstrun=true;

function searchBusinessesAddMarkers(nelat, nelng, swlat, swlng, zoom, map) {
        GDownloadUrl("/ajax/find_businesses.php?nelat="+nelat+"&nelng="+nelng+"&swlat="+swlat+"&swlng="+swlng+"&zoom="+zoom, function(data, responseCode) {
                //GLog.write("/ajax/find_businesses.php?nelat="+nelat+"&nelng="+nelng+"&swlat="+swlat+"&swlng="+swlng+"&zoom="+zoom);
                var xml = GXml.parse(data);
                var markers = xml.documentElement.getElementsByTagName("marker");
                var i = 0;
                if(!firstrun) map.clearOverlays();
                firstrun=false;
                for (i = 0; i < markers.length; i++) {
                        var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")),
                                                parseFloat(markers[i].getAttribute("lng")));
                        var type = markers[i].getAttribute("type");
                        var description = markers[i].getAttribute("description");
                        var linkurl = markers[i].getAttribute("linkurl");
                        switch(type) {
                                case "business":
                                        if(businesshighlight==markers[i].getAttribute("businessId")){
                                                createLinkMarker(point,description,iconred,linkurl,markers[i].getAttribute("businessId"));
                                        } else {
                                                createLinkMarker(point,description,iconwhite,linkurl,markers[i].getAttribute("businessId"));
                                        }
                                break;
                                case "locality":
                                        //createZoomMarker(point,description,iconyellow,map.getZoom()+1);
                                        createLinkMarker(point,description,iconyellow,linkurl,0);
                                break;
                                case "region":
                                        createZoomMarker(point,description,iconred,12);
                                break;
                        }
                        
                }
                //GLog.write(markers.length);
        });
}


