$(document).ready(function() {
	//if ($('body').is('.where_we_go')) {
		wwg.initPage();
	//}
});

var wwg = {
	sPHPScriptName: '/where_we_go.php',
	sGMapsKey: '',
	sGAjaxLoaderJsURL: 'http://www.google.com/jsapi?key=',
	oData: '',
	bPaneOpen: false,
        lData: '',
        fulldata: new Array(),
        maps: new Array(),

    initPage: function() {
            $('.where_we_go_info').hide();
            wwg.getLocationsList();
            wwg.initLoader();
            wwg.initButtons();
	    //wwg.getGmapKey();
/*		wwg.displayOpeningPara();
	    wwg.displayLocationsList();*/
	    
    },
    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);
    	    }
    	});
    	
    },
    displayOpeningPara: function() {
    	var html = '<ul class="timetable"><li><a onclick="return !window.open(this.href,\'window_name\');" title="Download timetable (PDF, 866k)" href="/assets/pdf/greyhounduk_timetable.pdf">Download timetable (PDF, 866k)</a></li></ul><p class="opening_para">Most of our services have a number of pick-up and drop-off points.';
    	html += '<br/>Check below for those most convenient for your journey.</p>';
    	html += '<ul class="where_we_go_list"></ul>';
    	$('#main_content').append(html);
    },
    displayLocationsList: function() {
    	var url= wwg.sPHPScriptName + '?action=get_locations_json';
    	var html = '';
    	$.ajax({
    	    url: url,
    	    cache: false,
    	    dataType: "json",
    	    async: false,
    	    success: function(data){
	    		$.each(data.items, function(i,item){
	    			html += '<li class="short" id="locationShort'+item.id+'">';
	    			html += '<a href="javascript: wwg.displayExpandedDetails('+item.id+');">';
	    			html += '<span class="left">'+item.title+'</span>';
	    			html += '<span class="right">View map, pick-up and drop-off points for '+item.title+'</span>';
	    			html += '</a></li>';
		        });
	    		html += '</ul>';
		        $('.where_we_go_list').html(html);
    	    },
    	    complete: function() {
    	    	// nothing just now
    	    }
    	});
    },
    getLocationsList: function() {
    	var url= wwg.sPHPScriptName + '?action=get_locations_json';
    	$.ajax({
    	    url: url,
    	    cache: false,
    	    dataType: "json",
    	    async: false,
    	    success: function(data){
	    	wwg.lData = data;
                wwg.getExpandedDetails();
    	    }
    	});
    },
    getExpandedDetails: function(ldata) {
        $.each(wwg.lData.items,function(i, k){
            var id = k.id;
            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;
                }
            });
            
        });
    },     
    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() {
    	var ldata = wwg.lData;
        $.each(ldata.items, function(k,loc){
         /*   if (GBrowserIsCompatible()) {
                    wwg.maps[loc.id] = new GMap2(document.getElementById("where_we_go_map_canvas_"+loc.id));
                    $.each(wwg.fulldata[loc.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);
                            }
                    });
                    //map.setCenter(new GLatLng(55.86528818789959416335, -4.25099015235900878906), 13);
                    wwg.maps[loc.id].setUIToDefault();
                    wwg.maps[loc.id].addControl(new GSmallMapControl());
                    wwg.maps[loc.id].addControl(new GMapTypeControl());
                    wwg.maps[loc.id].enableContinuousZoom();
                
                $.each(wwg.fulldata[loc.id].items, function(i, item) {
                            wwg.addMapPoint(wwg.maps[loc.id], item);
                    });
                
                $('#'+loc.id+' .where_we_go_info').hide();
            }  */  
            
        });
    	

    },
    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);
    },
    initButtons: function()
    {
        $('p.toggle a').click(function(e){
           e.preventDefault();
//           $(this).parent().parent().parent().children('.where_we_go_info').toggle();
           var id = $(this).parent().parent().parent().attr('id');
           if($(this).parent().hasClass('open')){
            $(this).parent().parent().parent().children('.where_we_go_info').show();
             if (GBrowserIsCompatible()) {
             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);
                 });           
             }
             $('.address','#'+id).jScrollPane({showArrows:true, scrollbarWidth: 16});
             $(this).parent().removeClass('open');
             $(this).parent().addClass('close');
            $(this).children('.open-close').html(' - Close');            
           }
           else
           {
            $(this).parent().parent().parent().children('.where_we_go_info').hide();
            $(this).parent().removeClass('close');
            $(this).parent().addClass('open');
            $(this).children('.open-close').html(' - Open');
           }
        });
    }
};