var gTooltip;
var gMap = null;
var gMgr = null;
var gIconSki = null;
var gIconAnn = null;
var gIconVil = null;
var gIconReg = null;
var gTooltipOuvert;
var gXmlHttp;
var gPointInfoWindow;

function load()
{
    if (GBrowserIsCompatible())
    {
        gMap = new GMap2(document.getElementById("map"));
        gMap.setUIToDefault();
        gMap.enableDoubleClickZoom();
        CentrerMap();

        window.setTimeout(afficherMarqueurs, 0);
        
        gTooltipOuvert = false;
        gTooltip = document.createElement("div");
        document.getElementById("map").appendChild(gTooltip);
        gTooltip.style.visibility="hidden";    
    }    
    else
    {
        AfficherErreurBrowser();
    }
};

function afficherInfoWindow(idAnnonce){

	try 
	{ 
		gXmlHttp = window.XMLHttpRequest? new XMLHttpRequest(): new ActiveXObject("Microsoft.XMLHTTP"); 
	} 
	catch (e) 
	{ 
	}

	gXmlHttp.onreadystatechange = retourAJAX;
	gXmlHttp.open("GET", "MapInfoWindow.aspx?IdAnnonce=" + idAnnonce, true); 
	gXmlHttp.send(null);

};

function retourAJAX() 
{ 
    // 4 = completé
	if ((gXmlHttp.readyState == 4) && (gXmlHttp.status == 200)) 
	{
    	gMap.openInfoWindowHtml(gPointInfoWindow, gXmlHttp.responseText);
	} 
};


function getMarkerAnn(idAnnonce, latitude, longitude, urlPhoto, nomVille)
{
    var marker;
    
    marker = new GMarker(new GLatLng(latitude, longitude),{icon: getIconAnn()});

    GEvent.addListener(marker, 'click', function() 
    {  
        hideTooltip();
        gPointInfoWindow = marker.getPoint();
        afficherInfoWindow(idAnnonce);
    });

    GEvent.addListener(marker,"infowindowopen",function(){gTooltipOuvert=true;});
    GEvent.addListener(marker,"infowindowclose",function(){gTooltipOuvert=false;});
    GEvent.addListener(marker,"mouseover",function(){showTooltip(marker);});
    GEvent.addListener(marker,"mouseout",function(){hideTooltip();});

    marker.tooltip = '<div class="tooltipMap"><img src="' + urlPhoto + '"/><br>' + nomVille + '</div>';
    
    return marker;
};

function getMarkerVil(latitude, longitude, nomVille)
{
    var marker;
    
    marker = new GMarker(new GLatLng(latitude, longitude),{icon: getIconVil()});

    GEvent.addListener(marker, 'click', function() 
    {  
        hideTooltip();
        gMap.setCenter(marker.getPoint(), 10);
    });

    GEvent.addListener(marker,"mouseover",function(){showTooltip(marker);});
    GEvent.addListener(marker,"mouseout",function(){hideTooltip();});

    marker.tooltip = '<div class="tooltipMap">' + nomVille + '</div>';
    
    return marker;
};


function getMarkerReg(latitude, longitude, nomRegion)
{
    var marker;
    
    marker = new GMarker(new GLatLng(latitude, longitude),{icon: getIconReg()});

    GEvent.addListener(marker, 'click', function() 
    {  
        hideTooltip();
        gMap.setCenter(marker.getPoint(), 7);
    });

    GEvent.addListener(marker,"mouseover",function(){showTooltip(marker);});
    GEvent.addListener(marker,"mouseout",function(){hideTooltip();});

    marker.tooltip = '<div class="tooltipMap">' + nomRegion + '</div>';
    
    return marker;
};

function getMarkerSki(latitude, longitude, nom)
{
    var marker;
    
    marker = new GMarker(new GLatLng(latitude, longitude),{icon: getIconSki()});

    GEvent.addListener(marker,"mouseover",function(){showTooltip(marker);});
    GEvent.addListener(marker,"mouseout",function(){hideTooltip();});

    marker.tooltip = '<div class="tooltipMap">' + nom + '</div>';
    
    return marker;
};


function getIconSki()
{
    if (gIconSki == null) 
    {
        gIconSki = new GIcon();
        gIconSki.image = "_images/Ski.gif";
        gIconSki.iconAnchor = new GPoint(20, 20);
        gIconSki.infoWindowAnchor = new GPoint(20, 20);
        gIconSki.iconSize = new GSize(20, 20);
        gIconSki.shadow = "";
    }
    return gIconSki;
};

function getIconAnn()
{
    if (gIconAnn == null) 
    {
        gIconAnn = new GIcon();
        gIconAnn.image = "_images/Propriete2.png";
        gIconAnn.iconAnchor = new GPoint(9, 15);
        gIconAnn.infoWindowAnchor = new GPoint(9, 15);
        gIconAnn.iconSize = new GSize(9, 15);
        gIconAnn.shadow = "";
    }
    return gIconAnn;
};

function getIconVil()
{
    if (gIconVil == null) 
    {
        gIconVil = new GIcon();
        gIconVil.image = "_images/BulletOrange.gif";
        gIconVil.iconAnchor = new GPoint(10, 10);
        gIconVil.infoWindowAnchor = new GPoint(10, 10);
        gIconVil.iconSize = new GSize(10, 10);
        gIconVil.shadow = "";
    }
    return gIconVil;
};

function getIconReg()
{
    if (gIconReg == null) 
    {
        gIconReg = new GIcon();
        gIconReg.image = "_images/BulletOrange.gif";
        gIconReg.iconAnchor = new GPoint(16, 16);
        gIconReg.infoWindowAnchor = new GPoint(16, 16);
        gIconReg.iconSize = new GSize(16, 16);
        gIconReg.shadow = "";
    }
    return gIconReg;
};


function hideTooltip()
{
	gTooltip.style.visibility="hidden";
};

function showTooltip(marker) 
{
    if (!gTooltipOuvert)
    {
	    gTooltip.innerHTML = marker.tooltip;
        var point=gMap.getCurrentMapType().getProjection().fromLatLngToPixel(gMap.getBounds().getSouthWest(),gMap.getZoom());
        var offset=gMap.getCurrentMapType().getProjection().fromLatLngToPixel(marker.getPoint(),gMap.getZoom());
        var anchor = new GPoint(24, 27);
	    var width=24;
	    var height=27;
    	
	    var pos = new GControlPosition(G_ANCHOR_BOTTOM_LEFT, new GSize(offset.x - point.x - anchor.x + width - width/2,- offset.y + point.y +anchor.y -height/8));
	    pos.apply(gTooltip);
	    gTooltip.style.visibility="visible";
	}
};


