﻿Import.namespace('rnw.expat.controls');

/**
 *	MapTypeControl
 *	@package	rnw.expat.controls
 *	@extemds	GControl
 *	@author		Maarten Dieleman <maarten@bloodyorange.com>
**/
	/**
	 *	constructor
	 *	
	 *	@access		public
	 *	@param		void
	 *	@return		object
	**/
	rnw.expat.controls.MapTypeControl = function()
	{
	}
	rnw.expat.controls.MapTypeControl.prototype = new GControl();
	
	/**
	 *	initialize
	 *	
	 *	@access		public
	 *	@param		GMap2		argObjMap
	 *	@return		object
	**/
	rnw.expat.controls.MapTypeControl.prototype.initialize = function(argObjMap)
	{
		var objContainer	= document.createElement('div');
		objContainer.id		= 'maptypecontrol';
		
		var arrMapTypes = argObjMap.getMapTypes();
		for (var i = 0; i < arrMapTypes.length; i++)
		{
			var objMapType		= arrMapTypes[i]
			var objDiv			= document.createElement('div');
			objDiv.className	= 'maptype';
			objDiv.appendChild(document.createTextNode(objMapType.getName()));
			
			GEvent.addDomListener(objDiv, 'click', Delegate.create(this, this.onMaptTypeClick, argObjMap, objMapType));
			
			objContainer.appendChild(objDiv);
		}
		
		argObjMap.getContainer().appendChild(objContainer);
		
		return objContainer;
	}
	
	/**
	 *	onMaptTypeClick
	 *	
	 *	@access		private
	 *	@param		void
	 *	@return		void
	**/
	rnw.expat.controls.MapTypeControl.prototype.onMaptTypeClick = function(argObjEvent, argObjMap, argObjMapType)
	{
		argObjMap.setMapType(argObjMapType);
	}
	
	/**
	 *	getDefaultPosition
	 *	
	 *	@access		public
	 *	@param		void
	 *	@return		void
	**/
	rnw.expat.controls.MapTypeControl.prototype.getDefaultPosition = function()
	{
		return new GControlPosition(G_ANCHOR_TOP_RIGHT, new GSize(15, 12));
	}
	
	/**
	 *	redraw
	 *	
	 *	@access		public
	 *	@param		void
	 *	@return		void
	**/
	rnw.expat.controls.MapTypeControl.prototype.redraw = function()
	{
	}