SIX.Tool.MouseCoords = function (parent, sImage, sToolTip, params)
{
	SIX.Tool.call(this, parent, SIX.eToolTypes.EXCLUSIVE, sImage, sToolTip, params);
	this.addCallback(SIX.eToolCallbacks.ONACTIVATE, 
					function (map) {
						map.setPointerMode(PM_POINTER);
					});
}
SIX.Util.extend(SIX.Tool.MouseCoords, SIX.Tool);

SIX.Tool.Zoom = function (parent, sImage, sToolTip, params)
{
	SIX.Tool.call(this, parent, SIX.eToolTypes.EXCLUSIVE, sImage, sToolTip, params);
	this.addCallback(SIX.eToolCallbacks.ONACTIVATE, 
					function (map) {
						map.setPointerMode(PM_ZOOM);
					});
}
SIX.Util.extend(SIX.Tool.Zoom, SIX.Tool);

SIX.Tool.ZoomBox = function (parent, sImage, sToolTip, params)
{
	SIX.Tool.call(this, parent, SIX.eToolTypes.EXCLUSIVE, sImage, sToolTip, params);
	this.addCallback(SIX.eToolCallbacks.ONACTIVATE, 
					function (map) {
						map.setPointerMode(PM_ZOOMBOX);
					});
}
SIX.Util.extend(SIX.Tool.ZoomBox, SIX.Tool);

SIX.Tool.Pan = function(parent, sImage, sToolTip, params)
{
	SIX.Tool.call(this, parent, SIX.eToolTypes.EXCLUSIVE, sImage, sToolTip, params);
	this.addCallback(SIX.eToolCallbacks.ONACTIVATE, 
					function (map) {
						map.setPointerMode(PM_ROAM);
					});
}
SIX.Util.extend(SIX.Tool.Pan, SIX.Tool);

SIX.Tool.ZoomAll = function (parent, sImage, sToolTip, params)
{
	SIX.Tool.call(this, parent, SIX.eToolTypes.NONE, sImage, sToolTip, params);
	this.addCallback(SIX.eToolCallbacks.ONACTIVATE, 
					function (map) {
						var channel = SIX.App.getCurrentChannel();
						if (channel.layerSetExtentsAll)
							channel.layerSetExtentsAll.setSelected(true);
						map.setExtentsAll();
					});
}
SIX.Util.extend(SIX.Tool.ZoomAll, SIX.Tool);

SIX.Tool.LastExtents = function (parent, sImage, sToolTip, params)
{
	SIX.Tool.call(this, parent, SIX.eToolTypes.NONE, sImage, sToolTip, params);
	this.addCallback(SIX.eToolCallbacks.ONACTIVATE, 
					function (map) {
						map.moveBackHistory();
					});
}
SIX.Util.extend(SIX.Tool.LastExtents, SIX.Tool);

SIX.Tool.NextExtents = function (parent, sImage, sToolTip, params)
{
	SIX.Tool.call(this, parent, SIX.eToolTypes.NONE, sImage, sToolTip, params);
	this.addCallback(SIX.eToolCallbacks.ONACTIVATE, 
					function (map) {
						map.moveForwardHistory();
					});
}
SIX.Util.extend(SIX.Tool.NextExtents, SIX.Tool);