function FMarkerTemplate(aClickCallback, aHoverCallback, aHoverEndCallback, aImage, aHoverImage, aShadowImage, aSize, aShadowSize, aType)
{
	this._clickCallback = aClickCallback;
	this._hoverCallback = aHoverCallback;
	this._hoverEndCallback = aHoverEndCallback;
	this._image = aImage;
	this._hoverImage = aHoverImage;
	this._shadowImage = aShadowImage;
	this._size = aSize;
	this._type = aType;
	this._shadowSize = aShadowSize;
	
	// Create GMap Icon
	this._gmapIcon = new GIcon();
	this._gmapIcon.image = aImage;
    this._gmapIcon.shadow = aShadowImage;
    this._gmapIcon.iconSize = aSize.toGSize();
    this._gmapIcon.shadowSize = aShadowSize.toGSize();
    
   	this._gmapIcon .iconAnchor = new GPoint(9, 34);
    this._gmapIcon .infoWindowAnchor = new GPoint(9, 2);
	
}

FMarkerTemplate.prototype._image;
FMarkerTemplate.prototype._hoverCallback;
FMarkerTemplate.prototype._hoverEndCallback;
FMarkerTemplate.prototype._clickCallback;
FMarkerTemplate.prototype._hoverImage;
FMarkerTemplate.prototype._shadowImage;
FMarkerTemplate.prototype._size;
FMarkerTemplate.prototype._type;
FMarkerTemplate.prototype._gmapIcon;
FMarkerTemplate.prototype._shadowSize;

FMarkerTemplate.prototype.copy = function()
{
	return new FMarkerTemplate(this._clickCallback, this._hoverCallback, this._hoverEndCallback, this._image, this._hoverImage, this._shadowImage, this._size, 
							   this._shadowSize, this._type);
}

FMarkerTemplate.prototype.setImage = function(aImage) { this._image = aImage; this._gmapIcon.image = aImage; }
FMarkerTemplate.prototype.setHoverImage = function(aImage) { this._hoverImage = aImage; }
FMarkerTemplate.prototype.setShadowImage = function(aImage) { this._shadowImage = aImage; this._gmapIcon.shadow = aImage; }

FMarkerTemplate.prototype.getGMapIcon = function() { return this._gmapIcon; }
FMarkerTemplate.prototype.getImage = function() { return this._image; }
FMarkerTemplate.prototype.getHoverImage = function() { return this._hoverImage; }
FMarkerTemplate.prototype.getShadowImage = function() { return this._shadowImage; }
FMarkerTemplate.prototype.getSize = function() { return this._size; }
FMarkerTemplate.prototype.getType = function() { return this._type; }
FMarkerTemplate.prototype.getClickCallback = function() { return this._clickCallback; }
FMarkerTemplate.prototype.getHoverCallback = function() { return this._hoverCallback; }
FMarkerTemplate.prototype.getHoverEndCallback = function() { return this._hoverEndCallback; }