//if (!console) console = { log: function() {} }; var maptypes = {}; var clocks = {}; function splitArgs(s) { var r = s.split(' '); delete arguments[0]; var obj = {}; var index = 0; $.each(arguments, function(argumentIndex, argument) { if (!argumentIndex) return; var value = r[argumentIndex-1]; obj[argument] = value; }); return obj; } function swtch(value, options, defaultOption) { return (options[value] || defaultOption)(value); } function DynMapType() { } DynMapType.prototype = { onTileUpdated: function(tile, tileName) { var src = this.dynmap.getTileUrl(tileName); tile.attr('src', src); tile.show(); } }; function MinecraftCompass(element) { this.element = element; } MinecraftCompass.prototype = { element: null, create: function(element) { if (!element) element = $('
'); this.element = element; return element; }, initialize: function() { this.element.html(" ‏ "); this.element.height(120); } }; function DynMap(options) { var me = this; me.options = options; $.getJSON(me.options.updateUrl + 'configuration', function(configuration) { me.configure(configuration); me.initialize(); }) } DynMap.prototype = { registeredTiles: new Array(), markers: new Array(), chatPopups: new Array(), lasttimestamp: '0', followingPlayer: '', configure: function(configuration) { var me = this; $.extend(me.options, configuration); if (!me.options.maps) me.options.maps = {}; $.each(me.options.shownmaps, function(index, mapentry) { me.options.maps[mapentry.name] = maptypes[mapentry.type](mapentry); }); me.world = me.options.defaultworld; }, initialize: function() { var me = this; var container = $(me.options.container); var mapContainer; (mapContainer = $('
')) .addClass('map') .appendTo(container); var map = this.map = new google.maps.Map(mapContainer.get(0), { zoom: 1, center: new google.maps.LatLng(0, 1), navigationControl: true, navigationControlOptions: { style: google.maps.NavigationControlStyle.DEFAULT }, scaleControl: false, mapTypeControl: false, streetViewControl: false, backgroundColor: 'none' }); google.maps.event.addListener(map, 'dragstart', function(mEvent) { me.followPlayer(''); }); // TODO: Enable hash-links. /*google.maps.event.addListener(map, 'zoom_changed', function() { me.updateLink(); }); google.maps.event.addListener(map, 'center_changed', function() { me.updateLink(); });*/ // The sidebar var sidebar = me.sidebar = $('
') .addClass('sidebar') .appendTo(container); // The world list. var worldlist = me.worldlist = $('
') .addClass('worldlist') .appendTo(sidebar); $.each(me.options.shownworlds, function(index, name) { var worldButton; $('
') .addClass('worldrow') .append(worldButton = $('') .addClass('worldbutton') .addClass('world_' + name) .attr({ type: 'radio', name: 'world', value: name }) .attr('checked', me.options.defaultworld == name ? 'checked' : null) ) .append($('