/*
Name		:	Component - Game Information
Author/s	:	Yang Wong
Related		:	php, css, js
*/

// CLASS //

var COM_CIPHERCITIES_GAMEINFO = Class.create();
COM_CIPHERCITIES_GAMEINFO.prototype =
{

	// CONSTRUCTOR //

	initialize: function()
	{
		// PROPERTIES //

		this.gameID;

		this.map;
		this.marker;
	},

	// INITIALISATION //

	init: function()
	{
		// Tooltips
		var options = {
						contentClass: 'tooltip_content_1',
						maxWidth: 250
						//mouseFollow: false
						};
		$$('.gi_tooltip').each(function(element) { new Tooltip(element, options); });

		this.gameID = $('gi_value_game_id').value;

		// Google Map
		if (COM_CIPHERCITIES_COUNTRY.isLocated($('gi_value_country_id').value) && GBrowserIsCompatible())
		{
			Event.observe(window, 'unload', GUnload);

			this.map = new GMap2(document.getElementById('gi_map'), {mapTypes:[G_NORMAL_MAP, G_HYBRID_MAP]});
			this.map.addControl(new GSmallMapControl());
			this.map.addControl(new GMapTypeControl());
			this.map.enableContinuousZoom();
			//this.map.enableScrollWheelZoom();

			var latitude = parseFloat($('gi_value_latitude').value);
			var longitude = parseFloat($('gi_value_longitude').value);
			var zoom = parseInt($('gi_value_zoom').value);

			if (latitude == null || isNaN(latitude) || longitude == null || isNaN(longitude) || zoom == null || isNaN(zoom))
			{
				this.map.setCenter(COM_CIPHERCITIES_GOOGLEMAP.DEFAULT_POINT, COM_CIPHERCITIES_GOOGLEMAP.DEFAULT_ZOOM_ALT);
			}
			else
			{
				var icon = COM_CIPHERCITIES_GOOGLEMAP.ICON_LOCATED;
				var point = new GLatLng(latitude, longitude);
				this.map.setCenter(point, zoom);
				this.marker = new GMarker(point, {icon: icon});
				this.map.addOverlay(this.marker);
			}
		}

		if ($('gi_join'))
		{
			Event.observe('gi_join', 'click', this.joinGame.bind(this));
		}
		else if ($('gi_stop'))
		{
			Event.observe('gi_stop', 'click', this.stopGame.bind(this));
		}
		else if ($('gi_join_as_guest'))
		{
			Event.observe('gi_join_as_guest', 'click', this.joinGameAsGuest.bind(this));
		}
	},

	// ACTIONS //

	joinGame: function()
	{
		var url = COM_CIPHERCITIES_COMMON.getURLGamePosterSection(this.gameID, COM_CIPHERCITIES_GLOBALS.TE_GAMEPOSTER_SECTION_JOIN);
		COM_CIPHERCITIES_COMMON.loadURL(url);
	},

	joinGameAsGuest: function()
	{
		var url = COM_CIPHERCITIES_COMMON.getURLGamePosterSection(this.gameID, COM_CIPHERCITIES_GLOBALS.TE_GAMEPOSTER_SECTION_JOINASGUEST);
		COM_CIPHERCITIES_COMMON.loadURL(url);
	},

	stopGame: function()
	{
		var url = COM_CIPHERCITIES_COMMON.getURLGamePosterSection(this.gameID, COM_CIPHERCITIES_GLOBALS.TE_GAMEPOSTER_SECTION_STOP);
		COM_CIPHERCITIES_COMMON.loadURL(url);
	}

}

// MAIN //

var content = new COM_CIPHERCITIES_GAMEINFO();
Event.observe(window, 'load', content.init.bind(content));
