/**
 * @author Marco Alionso Ramirez, marco@onemarco.com
 * @version 1.0
 * The PolylineTooltip class is an addon designed for the Google
 * Maps GPolyline class.
 */

/**
 * @constructor
 * @param {GPolyline} polyline
 * @param {String} text
 * @param {Number} padding
 */
 

function PolylineTooltip(polyline, text, padding){
	this.polyline_ = polyline;
	this.text_ = text;
	this.padding_ = padding;
}

PolylineTooltip.prototype = new GOverlay();

PolylineTooltip.prototype.initialize = function(map){
	var div = document.createElement("div");
	div.appendChild(document.createTextNode(this.text_));
	div.className = 'tooltip';
	div.id = 'polylinetooltip';
	div.style.position = 'absolute';
	div.style.visibility = 'hidden';
	map.getPane(G_MAP_FLOAT_PANE).appendChild(div);
	this.map_ = map;
	this.div_ = div;
}

PolylineTooltip.prototype.remove = function(){
	this.div_.parentNode.removeChild(this.div_);
}

PolylineTooltip.prototype.copy = function(){
	return new PolylineTooltip(this.polyline_,this.text_,this.padding_);
}

PolylineTooltip.prototype.redraw = function(force){
	if (!force) return;
	var cursorPoint
	var mouselat;
	var mouselng;
	GEvent.addListener(map, "mousemove", function(point){
          mouselat = point.y.toFixed(6);
          mouselng = point.x.toFixed(6);
	  cursorPos = map.fromLatLngToDivPixel(new GLatLng(mouselat,mouselng));
	  div = document.getElementById('polylinetooltip');
	  var xPos = Math.round(cursorPos.x - div.clientWidth / 2);
          var yPos = Math.round(cursorPos.y - div.clientHeight / 2 - 20);
          div.style.top = yPos + 'px';
          div.style.left = xPos + 'px';
	});
}

PolylineTooltip.prototype.show = function(){
	this.div_.style.visibility = 'visible';
}

PolylineTooltip.prototype.hide = function(){
	this.div_.style.visibility = 'hidden';
}

