/**
 * @author Joignie Vincent
 * @version 21/11/2009
 */
var map;

function createMarkerMe(lat, lon, baseUrl)
{
	var lat2 = parseFloat(lat)+0.00009;
	var point = new GLatLng(lat2, lon);
    var marker = new GMarker(point, createIcon2(baseUrl+"/public/images/images_type/moi.png"));
    marker.tooltip = '<div class="tooltip2">Ma position</div>';
	
	GEvent.addListener(marker,"mouseover", function() {
		showTooltip(marker);
    });
	GEvent.addListener(marker,"mouseout", function() {
		tooltip.style.visibility="hidden";
    });
	
	return marker;
}

function showTooltip(marker)
{
  	tooltip.innerHTML = marker.tooltip;
	var point=map.getCurrentMapType().getProjection().fromLatLngToPixel(map.getBounds().getSouthWest(),map.getZoom());
	var offset=map.getCurrentMapType().getProjection().fromLatLngToPixel(marker.getPoint(),map.getZoom());
	var anchor=marker.getIcon().iconAnchor;
	var width=marker.getIcon().iconSize.width;
	var pos = new GControlPosition(G_ANCHOR_BOTTOM_LEFT, new GSize(offset.x - point.x - anchor.x + width,(- offset.y + point.y +anchor.y) - 30)); 
	pos.apply(tooltip);
	tooltip.style.visibility="visible";
}

function createMarker(points, baseUrl)
{
    var point = new GPoint(points.lng, points.lat);
    var marker = new GMarker(point, createIcon(baseUrl+points.chemin));
    marker.tooltip = '<div class="tooltip2">'+points.titre+'</div>';
    
	var window = function() 
	{
		toKeepMarker = marker;
		toKeepInfo = points.photo +
		'<div class="txtDescr">'+points.descr+' ...</div><br style="clear:both"/>' +
		'<div class="txtDist">Distance : '+points.dist+' km</div>' +
		'<span class="txtPhoto">'+points.nbphotos+' photo(s)</span><br />' +
		'<span class="txtPrix">Prix : <b>'+points.prix+'</b> €</span><br />' +
		'<a href="#" class="lienGMap" onclick="showFicTres('+points.id+', \''+baseUrl+'\');">Consulter la fiche détaillée</a><br><br>' + 
		'<div style=\"text-align:center\">'+
			'<a href="'+baseUrl+'/tresor/itineraire/tres/'+points.id+'" target="blank" class="lienGMap">Itinéraire</a>&nbsp;&nbsp;&nbsp;-&nbsp;&nbsp;&nbsp;' + 
			'<a href="javascript:return false;" class="lienGMap" onclick=\"centerWithZoom('+points.lat+', '+points.lng+', 15);return false;\">Zoomer</a>' +
		'</div>';

    	marker.openInfoWindowHtml( toKeepInfo );
	};

	GEvent.addListener(marker, "click", window);
	
	 GEvent.addListener(marker,"mouseover", function() {
         showTooltip(marker);
     });
     GEvent.addListener(marker,"mouseout", function() {
		tooltip.style.visibility="hidden";
     });
    
	return marker;
}


function createGroupMarker(points, baseUrl, lati, longi)
{
    var point = new GPoint(longi, lati);
    var marker = new GMarker(point, createIcon(baseUrl+"/public/images/images_type/picto-logo.png"));
    marker.tooltip = '<div class="tooltip2">Toutes catégories</div>';
	
	var window = function() 
	{
		toKeepMarker = marker;
		var strWind = "<br />Nombre de trésors à cette adresse : "+points.length+"<br />" +
					  "Distance : " + points[0].dist + " km<br />";
		for (var i=0 ; i<points.length ; i++)
		{
			if((i%5) == 0)
			{
				strWind = strWind + "<br />";
			}
		strWind = strWind+'&nbsp;<a href="#" class="lienGMap" onclick="showFicTres('+points[i].id+', \''+baseUrl+'\');"><img src="'+baseUrl+points[i].photo+'" width="48" height="48" alt="" class="imgTresBox" title="'+ points[i].categ +'"/></a>';
		}
		strWind = strWind+'<br /><small>Pour voir la fiche détaillée, cliquer sur un picto !</small>';
		strWind = strWind+'<div style=\"text-align:center\">'+ 
								'<a href="'+baseUrl+'/tresor/itineraire/tres/'+points[0].id+'" target="blank" class="lienGMap">Itinéraire</a>&nbsp;&nbsp;&nbsp;-&nbsp;&nbsp;&nbsp;' + 
								'<a href="javascript:return false;" class="lienGMap" onclick=\"centerWithZoom('+lati+', '+longi+', 15);return false;\">Zoomer</a>' +
							'</div>';
		toKeepInfo = strWind;
    	marker.openInfoWindowHtml(strWind);
    	setTimeout("runTooltip()", 500);
	};
	 
	GEvent.addListener(marker, "click", window);
	
	GEvent.addListener(marker,"mouseover", function() {
		showTooltip(marker);
    });
	GEvent.addListener(marker,"mouseout", function() {
		tooltip.style.visibility="hidden";
    });
    
	return marker;
}

function createIcon(chemin)
{
	var myIcon = new GIcon();
	myIcon.image = chemin;
	myIcon.shadow = "";
	myIcon.iconSize = new GSize(48, 54);
	myIcon.shadowSize = new GSize(0, 0);
	myIcon.iconAnchor = new GPoint(24, 24);
	myIcon.infoWindowAnchor = new GPoint(24, 0);
	var markerOptions = {
	    icon: myIcon
	};
	return markerOptions;
}

function createIcon2(chemin)
{
	var myIcon = new GIcon();
	myIcon.image = chemin;
	myIcon.shadow = "";
	myIcon.iconSize = new GSize(35, 35);
	myIcon.shadowSize = new GSize(0, 0);
	myIcon.iconAnchor = new GPoint(24, 24);
	myIcon.infoWindowAnchor = new GPoint(24, 0);
	var markerOptions = {
	    icon: myIcon,
	    clickable: false
	};
	return markerOptions;
}

function lbDisplay(id, chemin)
{
//	LB = new dojox.image.Lightbox({ title:"", href:chemin});
//	LB.startup();
//	LB.show();
}

function sendMail(idTres, categ, sousCateg)
{
	$("#dialFicTres").jqmHide();
	$("#dialSendMail").jqmShow();
	$("#idTres_mail").val(idTres);
	$("#titre_mail").val("Votre annonce sur Tresors.com - "+categ+" / "+sousCateg);
}

function sendMailInteret(idTres)
{
	$("#dialFicTres").jqmHide();
	$("#dialSendMailInteret").jqmShow();
	$("#idTres_mail_interet").val(idTres);
}

function center(lat, longe)
{
	map.panTo(new GLatLng(lat, longe));

	setTimeout("zoomTo(15)", 500);
	//map.setZoom(15);
}

function centerWithZoom(lat, longe, zoom)
{
	var newLat = (lat + 0.0028);
	panToOverrided(lat, longe);
	
	setTimeout("zoomTo("+zoom+")", 500);
	setTimeout("panToOverrided("+ newLat +", "+ longe +")", 800);
}

function panToOverrided(lat, lng)
{
	map.panTo(new GLatLng( lat, lng));
}

function zoomTo(zoom)
{
	map.setZoom(zoom);
}

function showFicTres(id, urlBase)
{
	var url = urlBase+"/ajax/recupfictres";
	var params = "tres="+id;
	
	$("#contentFicTres").html('<img src="'+urlBase+'/public/images/ajax-loader.gif" style="margin-left:348px;margin-top:30px;"/>');
	$("#dialFicTres").jqmShow();
	
	$.ajax({
		type: "POST",
		url: url,
		data: params,
		success: function(msg){
			$("#contentFicTres").html(msg);
		}
	});
}

function showFicTresProp(id, urlBase)
{
	var url = urlBase+"/ajax/recupfictresprop";
	var params = "tres="+id;
	
	$("#contentFicTres").html('<img src="'+urlBase+'/public/images/ajax-loader.gif" style="margin-left:348px;margin-top:30px;"/>');
	$("#dialFicTres").jqmShow();
	
	$.ajax({
		type: "POST",
		url: url,
		data: params,
		success: function(msg){
			$("#contentFicTres").html(msg);
		}
	});
}

function seeOntheMap(baseUrl, id)
{
	var url = baseUrl+"/ajax/seeonthemap";
	var params = "tres="+id;
	
	$.ajax({
		type: "POST",
		url: url,
		data: params,
		dataType : 'script',
		success: function(msg){
		}
	});
}

function runTooltip()
{
	$(".imgTresBox[title]").tooltip();
}

function createMarkerEnseigne(id, lat, lng, picto, baseUrl)
{
	var point = new GPoint(lng, lat);
    var marker = new GMarker(point, createIcon(baseUrl+picto));
    marker.tooltip = '<div class="tooltip2">Annonce d\'enseigne</div>';
    
	var window = function() 
	{
		var url = baseUrl+"/ajax/recupficenseigne";
		var params = "tres="+id;
		
		$("#contentFicEnseigne").html('<img src="'+baseUrl+'/public/images/ajax-loader.gif" style="margin-top:30px;"/>');
		$("#dialFicEnseigne").jqmShow();
		scrollTo(0,0);
		
		$.ajax({
			type: "POST",
			url: url,
			data: params,
			success: function(msg){
				$("#contentFicEnseigne").html(msg);
			}
		});
	};
	
	GEvent.addListener(marker, "click", window);
	GEvent.addListener(marker,"mouseover", function() {
		showTooltip(marker);
    });
	GEvent.addListener(marker,"mouseout", function() {
		tooltip.style.visibility="hidden";
    });
    
	return marker;
}

function createMarkerBonPlan(lat, lng, descrip, baseUrl)
{
	var point = new GPoint(lng, lat);
    var marker = new GMarker(point, createIcon(baseUrl+'/public/images/images_type/picto-bonplan.png'));
    marker.tooltip = '<div class="tooltip2">Bon plan</div>';
    
	var window = function() 
	{
		strWind = "<div style=\"width:400px\">" + descrip + " - <a href=\"#map\" class=\"lienGMap\" onclick=\"centerWithZoom("+ lat +", "+ lng +", 15)\">Zoomer</a></div>";
		toKeepMarker = marker;
		toKeepInfo = strWind;
    	marker.openInfoWindowHtml(strWind);
	};
	
	GEvent.addListener(marker, "click", window);
	GEvent.addListener(marker,"mouseover", function() {
		showTooltip(marker);
    });
	GEvent.addListener(marker,"mouseout", function() {
		tooltip.style.visibility="hidden";
    });
    
	return marker;
}

function showNumber(node, num)
{		
	var parent = node.parentNode;
	parent.removeChild(node);
	
	var newNode = document.createElement("div");
	newNode.className = "parentMarker";
	newNode.appendChild(node);
	parent.appendChild(newNode);
	
	var nodeNumber = document.createElement("div");
	nodeNumber.innerHTML = (num+1);
	nodeNumber.style.zIndex = ( parseInt(node.style.zIndex) + 1 );
	nodeNumber.style.width = "16px";
	nodeNumber.style.height = "15px";
	nodeNumber.style.color = "#000000";
	nodeNumber.style.position = node.style.position;
	var tmp = node.style.top;
	tmp = tmp.replace("px", "");
	tmp = parseInt(tmp) + 3;
	nodeNumber.style.top = tmp + "px";
	tmp = node.style.left;
	tmp = tmp.replace("px", "");
	tmp = parseInt(tmp) + 3;
	nodeNumber.style.left = tmp + "px";
	nodeNumber.className = "numberDisplayed";
	nodeNumber.id = "number"+num;
	newNode.appendChild(nodeNumber);
}

function removeNumbers()
{
	var numbers = $("div.parentMarker");
	numbers.each(function(){
		this.parentNode.removeChild(this);
	});
}
