$(document).ready(function() {
	if ($('body').is('.where_we_go_details')) {
		wwg.initPage();
	}
});

var wwg = {
	sPHPScriptName: '/where_we_go.php',
	sGMapsKey: '',
	sGAjaxLoaderJsURL: 'http://www.google.com/jsapi?key=',
	oData: '',
	bPaneOpen: false,
    lData: '',
    iLocation: 0,
    fulldata: new Array(),
    maps: new Array(),

    initPage: function() {

        // find location ID
        var sMapId = $('.map').attr('id');
        var sSearch = 'where_we_go_map_canvas_';
        if (sMapId.substr(0, sSearch.length) == sSearch)
        {
            wwg.iLocation = sMapId.substr(sSearch.length);    
            wwg.lData = {items: {id: wwg.iLocation}};
            wwg.getExpandedDetails();
            wwg.initLoader();
                
        }
        else {
            $('.map').hide();
        }
    },
    initLoader: function() {
          wwg.getGmapKey();
    	  var script = document.createElement("script");
    	  script.src = "http://www.google.com/jsapi?key="+wwg.sGMapsKey+"&callback=wwg.loadMaps";
    	  script.type = "text/javascript";
    	  document.getElementsByTagName("head")[0].appendChild(script);
    },
    loadMaps: function() {
    	  google.load("maps", "2", {"callback" : wwg.populateMap});
    },
    populateMap: function ()
    {
        if (GBrowserIsCompatible()) {
            id = wwg.iLocation;
            wwg.maps[id] = new GMap2(document.getElementById("where_we_go_map_canvas_"+id));
            wwg.maps[id].checkResize();
            $.each(wwg.fulldata[id].items, function(i, item) {
                if (item.parent_id == 0) { // This is the master point
                    wwg.maps[item.id].setCenter(new GLatLng(item.lat, item.long), 13);
                }
            });
            wwg.maps[id].setUIToDefault();
        //    wwg.maps[id].addControl(new GSmallMapControl());
            wwg.maps[id].addControl(new GMapTypeControl());
            wwg.maps[id].enableContinuousZoom();
       
            $.each(wwg.fulldata[id].items, function(i, item) {
                wwg.addMapPoint(wwg.maps[id], item);
            });  
        }
    },
    getGmapKey: function(id) {
    	var url= '/ticket_booking.php?action=get_gmap_key_json';
    	
    	$.ajax({
    	    url: url,
    	    cache: false,
    	    dataType: "json",
    	    async: false,
    	    success: function(data){
	    		wwg.sGMapsKey = data.key;
    	    },
    	    error: function(XMLHttpRequest, textStatus, errorThrown) {
    	    	alert('ERROR. textStatus: ' + textStatus + ' errorThrown: ' + errorThrown);
    	    }
    	});
    },
    getExpandedDetails: function(ldata) {
        var id = wwg.iLocation;
        var url= wwg.sPHPScriptName + '?action=get_location_full_details_json&id='+id;
        $.ajax({
            url: url,
            cache: false,
            dataType: "json",
            async: false,
            success: function(data){
                wwg.fulldata[id] = data;
            }
        });
    },
    addMapPoint: function (map, item) {
        var point = new GLatLng(item.lat, item.long);
        var objMarker = new GMarker(point);
        var sHTML = '<div class="bubble">'+item.title+'<br>' + item.street + '<br>' + item.town + '<br>' + item.postcode + '</div>';
        GEvent.addListener(objMarker, "click", function() {
            objMarker.openInfoWindowHtml(sHTML);
        });
        map.addOverlay(objMarker);
    },
};
