// JavaScript Document
// Call this function when the page has been loaded
/*
var map = new GMap2(document.getElementById("map"));
map.setCenter(new GLatLng(43.659924074789075, 7.2015380859375), 9);
map.addControl(new GSmallZoomControl());
var tooltip = document.createElement("span");
map.getPane(G_MAP_FLOAT_PANE).appendChild(tooltip);
tooltip.style.visibility = "hidden";
var gicons = [];
var markersArray = [];
var pointsArray = [];
var permitLeft = true;
gicons["1"] = new GIcon();
gicons["1"].image = "http://labs.google.com/ridefinder/images/mm_20_red.png";
gicons["1"].iconSize = new GSize(12, 20);
gicons["1"].iconAnchor = new GPoint(6, 20);
gicons["1"].infoWindowAnchor = new GPoint(5, 1);
*/
var map = false;
var tooltip = false;
var permitLeft = true;
var gicons = [];
var markersArray = [];
var pointsArray = [];
gicons["1"] = new GIcon();
gicons["1"].image = "http://labs.google.com/ridefinder/images/mm_20_red.png";
gicons["1"].iconSize = new GSize(12, 20);
gicons["1"].iconAnchor = new GPoint(6, 20);
gicons["1"].infoWindowAnchor = new GPoint(5, 1);
function showMap (opt) {
map = new GMap2(document.getElementById("map"));
map.setCenter(new GLatLng(opt.lat, opt.lng), opt.zoom); //43.659924074789075, 7.2015380859375
map.addControl(new GSmallZoomControl());
tooltip = document.createElement("span");
map.getPane(G_MAP_FLOAT_PANE).appendChild(tooltip);
tooltip.style.visibility = "hidden";
}
function createMarker (opt) {
var point = new GLatLng(opt.lat, opt.lng);
var marker = new GMarker(point, gicons["1"]);
markersArray[opt.id] = marker;
pointsArray[opt.id] = point;
if (opt.tooltip) {
marker.tooltip = '
'+opt.tooltip+'
';
GEvent.addListener(marker,"mouseover", function() {
showTooltip(marker);
});
GEvent.addListener(marker,"mouseout", function() {
tooltip.style.visibility = "hidden"
});
}
map.addOverlay(marker);
}
function showTooltip(marker) {
tooltip.innerHTML = marker.tooltip;
tooltip.style.display = "block";
tooltip.style.position = "absolute";
tooltip.style.top = "10px";
marker.ttWidth = 150; //marker.offsetWidth; //
marker.ttHeight = 30; // marker.offsetHeight; //
//marker.map = map;
setTooltipPosition(marker);
tooltip.style.visibility = "visible";
}
function latLongToPixel( coord, zoom) { // map,
return map.fromLatLngToDivPixel(coord);
}
function setTooltipPosition(marker) {
var gap = 5;
//var map = theObj.map;
var pt = marker.getPoint();
var ttPos = latLongToPixel(pt, map.getZoom()); // map,
var theIcon = marker.getIcon();
var rightSide = true;
var bounds = map.getBounds();
var boundsSpan = bounds.toSpan();
var longSpan = boundsSpan.lng();
var mapWidth = map.getSize().width;
var tooltipWidthInDeg = (marker.ttWidth + theIcon.iconSize.width + 6) / mapWidth * longSpan;
if (parseFloat(pt.lng()) + tooltipWidthInDeg > bounds.getNorthEast().lng() && permitLeft) {
rightSide = false;
}
ttPos.y -= Math.floor(theIcon.iconAnchor.y/2);
ttPos.y -= Math.floor(marker.ttHeight/2);
delta = (theIcon.iconSize.width - theIcon.iconAnchor.x) + gap;
if (rightSide)
ttPos.x += delta;
else
ttPos.x -= delta
marker.rightSide = rightSide;
marker.ttLeft = ttPos.x;
marker.ttTop = ttPos.y;
if (tooltip)
{
if (rightSide) {
tooltip.style.left = ttPos.x + "px";
tooltip.style.right = null;
}
else {
tooltip.style.left = null;
tooltip.style.right = -ttPos.x + "px";
}
tooltip.style.top = ttPos.y + "px";
}
}
function onMarker (opt) {
if (opt.create_marker == "true" && !markersArray[opt.id]) {
createMarker ({lat: geo_data[opt.id].lat, lng: geo_data[opt.id].lng, id: opt.id, tooltip: geo_data[opt.id].com});
}
if (markersArray[opt.id]) {
markersArray[opt.id].setImage("http://www.google.com/mapfiles/markerA.png");
if (opt.pan == "true") {
map.panTo(pointsArray[opt.id]);
}
if (opt.tooltip == "true") {
showTooltip(markersArray[opt.id]);
}
}
}
function offMarker (opt) {
if (markersArray[opt.id]) {
markersArray[opt.id].setImage("http://labs.google.com/ridefinder/images/mm_20_red.png");
if (opt.tooltip == "true") {
tooltip.style.visibility = "hidden";
}
}
if (opt.remove_marker == "true" && markersArray[opt.id]) {
map.removeOverlay(markersArray[opt.id]);
markersArray[opt.id] = "";
}
}
function showAllOnMap() {
$.each(geo_data, function(i, val) {
createMarker ({lat: val.lat, lng: val.lng, id: i, tooltip: val.com});
});
}
function getLatLng() {
$("#LatLng").html(""+ map.getCenter() +"");
}