var layerTrace;
var mylayerVMPolyLine2Edit;
var mylayerVMPolyLine;
var elPOILineColor="#0000FF"
var elPOILineStrike=10;
var elPOILineOpacity=0.5;



var snrmap_recadreroffres=1;
var elPOILine=new Array();
var snrmap_allownavigate=false;
var snrmap_minimap=true;
var snrmap_minimapsize=100;
var snrmap_mapmode="N";//N:G_NORMAL_MAP/S:G_SATELLITE_MAP/H:G_HYBRID_MAP
var snrmap_scrollstep=100;
var snrmap_zoomstep=1;
var snrmap_startzoom=12;
var snrmap_geostart_lat = 43.85619252622504;
var snrmap_geostart_lng = 4.765834808349609;
var snrmap_gmmapcontrol="";//small/large/smallzoom
var snrmap_gmmapcontrolscale=false;//true/false
var snrmap_gmmaptypecontrol=false;//true/false : switch between see map types.


//
var snrmap_map;
var snrmap_minimapobj="";
var snrmap_mapcontrolobj="";
var snrmap_mapcontrolscaleobj="";
var snrmap_maptypecontrolobj="";
var snrmap_endinit=false;
var mapNotDisplayBound=false;

var snrmap_icons = [];
var snrmap_markersPOI = [];
var snrmap_markersHlo = [];
var snrmap_markersHpa = [];
var snrmap_markersHot = [];
var snrmap_markersVil = [];
var snrmap_markersSJE = [];
//  
var elPOILineColor="#5555ff";
//

//indique le mode d'edition du trace (edit ou normal)
var mapCfgEditMode=false;
//


//pointeur sur la carte
var snrmap_pointer;
var pointerDrag=false;
//
 //permet de recuperer une adresse via Lat/Long
 var rg;
 

var snrmap_scrollX=0;
var snrmap_scrollY=0;
var snrmap_scrollmoving=false;




//GMarker.prototype.pro_zIndx = function(nI)
//{
//alert(this.div_.style);
////    this.zIndex = this.L[0].style.zIndex;
////    this.L[0].style.zIndex = nI;         
//}
//GMarker.prototype.pro_resetZIndx = function()
//{
//    this.L[0].style.zIndex = this.zIndex;
//}

 function orderOfCreation(marker,b)
 {
    return 1;
}
      
function doPointer(point,pointer,draged,html,titre)
{

//	if(draged)
//	var marker = new GMarker(point,{draggable:draged,icon:pointer,bouncy:true,zIndexProcess:orderOfCreation});
//	else
	var marker = new GMarker(point,{title:titre,draggable:draged,icon:pointer,bouncy:true});
	//marker.overlay.getZIndex(zindexe);
	//        var spaceNeedleContent = {
	//		el:'img',att:{src:'http://www.google.fr/intl/fr_fr/images/logo.gif',width:'82',height:'150'}
	//	    }
	//        marker.tooltip = new Tooltip(marker,jsonToDom(spaceNeedleContent),5);
	//
	//        var ttmover = GEvent.callbackArgs(marker,tooltipMouseover);
	//	    var ttmout = GEvent.callbackArgs(marker,tooltipMouseout);
	//	    GEvent.addListener(marker,'mouseover',ttmover);
	//	    GEvent.addListener(marker,'mouseout',ttmout);

	if(html!='')
	{
	    GEvent.addListener(marker, "click", function() {
		    marker.openInfoWindowHtml(html);//ici on construit l'info bulle
	    });
	}
	
	GEvent.addListener(marker, "infowindowclose", function() {
		pointerDrag=true;
	window.setTimeout(function() {pointerDrag=false;},100);
	});
	
	
	if(draged==true)
	{
	     GEvent.addListener(marker, "dragstart", function() {
		//	alert('ok');
			//snrmap_map.enableDragging;
			window.setTimeout(function() {snrmap_EnableDrag();},100);
			pointerDrag=true;
			//alert('ok1');
		//	snrmap_map.disableDragging();
		//GLog.write("ok22"); 
			
		});
		GEvent.addListener(marker, "dragend", function() {
		//alert('ok2');
		snrmap_setwgs84(snrmap_pointer.getPoint());
//		var obj = document.getElementById("latlong");
//		if(obj)
//			obj.value = marker.getPoint().lat()+" / "+marker.getPoint().lng();
		//	snrmap_map.enableDragging();
		//snrmap_map.disableDragging();
		    snrmap_DisableDrag();
		    pointerDrag=false;
		    
//			window.setTimeout(function() {pointerDrag=false;snrmap_map.disableDragging();},100);
			// marker.openInfoWindowHtml("Just bouncing along...");
		});
//		GEvent.addListener(map, "click", function() {
//			
//		});
	}


	return marker;
}






//var u=0;
//function testLimit()
//{
//	var r = "" ;
//	var ne =  snrmap_map.getBounds();//.getNorthEast();
//	r = "" + ne.getSouthWest().lng();
//	//           if(ne.getSouthWest().lng()>4.766693115234375 )
//	//           {
//	//
//	//                // ne.getSouthWest().lng()=4.766693115234375;
//	//           }
//	//
//	document.getElementById("latlong").value=  r+ " / " + u;
//	// mapMove();
//	u++;
//	//explore(ne);
//}


//function mapMove()
//{
//	var limit = new GLatLng(85,4.766693115234375); // Stop at 85 degrees latitude
//	var limitPx1 = snrmap_map.fromLatLngToDivPixel(limit);
//	var limitPx2 =snrmap_map.fromLatLngToDivPixel(snrmap_map.getBounds().getNorthEast());
//	if (limitPx1.x - limitPx2.x > 0)
//	{
//		//  snrmap_map.disableDragging();
//		//GLog.write('Stop! you\'re falling off the World!');
//		this.panTo(snrmap_map.returnToSavedPosition());//lastGoodCenter);
//		//setTimeout("snrmap_map.enableDragging()",1000);
//	}
//	else {
//		// snrmap_map.lastGoodCenter = snrmap_map.getCenter();
//		snrmap_map.savePosition();
//	}
//}

var polyCircle;
var boundsCircle;
function drawCircle(center, radius, nodes, liColor, liWidth, liOpa, fillColor, fillOpa)
{
    if(polyCircle)
    snrmap_map.removeOverlay(polyCircle);
    boundsCircle = new GLatLngBounds();
// Esa 2006
	//calculating km/degree
	var latConv = center.distanceFrom(new GLatLng(center.lat()+0.1, center.lng()))/100;
	var lngConv = center.distanceFrom(new GLatLng(center.lat(), center.lng()+0.1))/100;

	//Loop 
	var points = [];
	var step = parseInt(360/nodes)||10;
	for(var i=0; i<=360; i+=step)
	{
	    var pint = new GLatLng(center.lat() + (radius/latConv * Math.cos(i * Math.PI/180)), center.lng() + 
	    (radius/lngConv * Math.sin(i * Math.PI/180)));
	    points.push(pint);
	    boundsCircle.extend(pint); //this is for fit function
	}
	fillColor = fillColor||liColor||"#0055ff";
	liWidth = liWidth||2;
	polyCircle = new GPolygon(points,liColor,liWidth,liOpa,fillColor,fillOpa);
	
	GEvent.addListener(polyCircle, "click", function(overlay,point) {
			click(overlay,point);
			//return false;
		});
		
	snrmap_map.addOverlay(polyCircle);
}

function  snrmap_SetCircleKM(qui)
{
    if(typeof(distanceID)!="undefined")
    if(distanceID !='')
    {
        var obj = document.getElementById(distanceID);
        if(obj)
        {
            var km = qui.value;
            obj.value=km;
            drawCircle(snrmap_pointer.getPoint(), km, 40);
        }
            
    }
}


//snrmap_map.checkResize();



function click(overlay,point)
{
    if(mapCfgEditMode)
    {
        if(overlay==null)
        {
             var obj2=document.getElementById("elPOILine");
             //alert(obj2.options.selectedIndex);
            var LonLat = point;//overlay.getPoint();

            if(elPOISeeAllLocker)
            return true;

            if(obj2.options.selectedIndex!=-1)
            {
                var indexEdit = obj2.options.selectedIndex;
                elPOILine[indexEdit]=LonLat;
                var nomOption = new Option(obj2.options.length+ " : "+elPOILine[indexEdit].lng()+" x "+elPOILine[indexEdit].lat(), elPOILine[indexEdit], false, false);
                obj2.options[indexEdit]=nomOption;  
                //map.removeLayer(mylayerVMPolyLine2Edit);
                if(typeof(mylayerVMPolyLine2Edit)!="undefined")
                snrmap_map.removeOverlay(mylayerVMPolyLine2Edit);

                elPOITransform();
                elPOIRestoreIndex(indexEdit);
            }
            else
            {
                elPOILine.push(LonLat);
                elPOITransform();
            }
        }
         
    }
    else
    {
    
        if(overlay!=null)
        {
        //alert('ok'+overlay.getIcon());
            //explore(overlay.getIcon(),5);
            
            if(typeof(overlay.getIcon)!="undefined")
            if(overlay.getIcon().image.indexOf("images/poi/")!=-1)
            if(typeof(overlay.getPoint)!="undefined")
            {
                point=overlay.getPoint();//getLatLnf()
                var y = point.lat();
                if(y<0)
                    y+=0.001;
                else
                    y-=0.001;
                point = new GLatLng(y,point.lng());
                overlay=null;
            }
        }

        if(overlay==null && !pointerDrag)
        {
            if(typeof(distanceID)!="undefined")
            if(distanceID !='')
            {
                if(snrmap_gmmapdrawcircle)
                {
                    var obj = document.getElementById(distanceID);
                    if(obj)
                    {
                        var km = obj.value;
                        drawCircle(point, km, 40);//, liColor, liWidth, liOpa, fillColor, fillOpa)
                    }
                }

            }
            if(typeof(codeinseeID)!="undefined")
            if(codeinseeID)
            var obj = document.getElementById(codeinseeID);
            if(obj)
                obj.value="";
                if(typeof(communeID)!="undefined")
            if(communeID)
            var obj = document.getElementById(communeID);
            if(obj)
                obj.value="";

            snrmap_pointer.show();
            snrmap_pointer.setPoint(point);
            snrmap_setwgs84(snrmap_pointer.getPoint());
            //GEvent.trigger(snrmap_pointer, "click");
            
             //permet de recuperer une adresse via Lat/Long
             //rg.loadFromWaypoints([point.lat()+","+point.lng() , point.lat()+","+point.lng()],{getSteps: true, locale: "GB", getPolyline:true});
        }
    }
}


function OnDevelopment_click(overlay,point)
{
    if(mapCfgEditMode)
    {
        if(overlay==null)
        {
             var obj2=document.getElementById("elPOILine");
             //alert(obj2.options.selectedIndex);
            var LonLat = point;//overlay.getPoint();

            if(elPOISeeAllLocker)
            return true;

            if(obj2.options.selectedIndex!=-1)
            {
                var indexEdit = obj2.options.selectedIndex;
                elPOILine[indexEdit]=LonLat;
                var nomOption = new Option(obj2.options.length+ " : "+elPOILine[indexEdit].lng()+" x "+elPOILine[indexEdit].lat(), elPOILine[indexEdit], false, false);
                obj2.options[indexEdit]=nomOption;  
                //map.removeLayer(mylayerVMPolyLine2Edit);
                if(typeof(mylayerVMPolyLine2Edit)!="undefined")
                snrmap_map.removeOverlay(mylayerVMPolyLine2Edit);

                elPOITransform();
                elPOIRestoreIndex(indexEdit);
            }
            else
            {
                elPOILine.push(LonLat);
                elPOITransform();
            }
        }
         
    }
    else
    {

//alert("overlay >"+overlay);

//alert("typeof(overlay.getIcon)"+typeof(overlay.getIcon));
    
        if(overlay!=null)
        {
//        alert('ok'+typeof(overlay.lat));
//        alert('ok'+typeof(overlay.getPoint));
        //alert('ok'+overlay.getIcon());
            //explore(overlay.getIcon(),5);
            
            //if(typeof(overlay.getIcon)!="undefined")
            //if(overlay.getIcon().image.indexOf("images/poi/")!=-1)
            
            //alert(typeof(overlay));
            
            //click sur mire
            
           
             if(typeof(overlay.getIcon)!="undefined")
             {
                if(overlay.getIcon().image.indexOf("images/poi/")!=-1)
                if(typeof(overlay.getPoint)!="undefined")
                {
                    point=overlay.getPoint();//getLatLnf()
                    var y = point.lat();
                    if(y<0)
                        y+=0.001;
                    else
                        y-=0.001;
                    point = new GLatLng(y,point.lng());
                    overlay=null;
                }
            }
            else if(typeof(overlay.lat)=="function")
            {
            //alert("ok"+pointerDrag);
                var y = overlay.lat();
                if(y<0)
                    y+=0.001;
                else
                    y-=0.001;
                point = new GLatLng(y,overlay.lng());
                overlay=null;
            
            }
            else if(typeof(overlay.getPoint)!="undefined")
            {
                //alert("ok : "+overlay);
            
                point=overlay.getPoint();//getLatLnf()
                var y = point.lat();
                if(y<0)
                    y+=0.001;
                else
                    y-=0.001;
                point = new GLatLng(y,point.lng());
                overlay=null;
            }
        }

//alert('ok');

        if(overlay==null && !pointerDrag)
        {
//            if(typeof(distanceID)!="undefined")
//            if(distanceID !='')
//            {
//                if(snrmap_gmmapdrawcircle)
//                {
//                    var obj = document.getElementById(distanceID);
//                    if(obj)
//                    {
//                        var km = obj.value;
//                        drawCircle(point, km, 40);//, liColor, liWidth, liOpa, fillColor, fillOpa)
//                    }
//                }

//            }
//alert("fff");
            if(typeof(codeinseeID)!="undefined")
            if(codeinseeID)
            var obj = document.getElementById(codeinseeID);
            if(obj)
                obj.value="";
                if(typeof(communeID)!="undefined")
            if(communeID)
            var obj = document.getElementById(communeID);
            if(obj)
                obj.value="";

            snrmap_pointer.show();
            snrmap_pointer.setPoint(point);
            snrmap_setwgs84(snrmap_pointer.getPoint());
            //GEvent.trigger(snrmap_pointer, "click");
            
             //permet de recuperer une adresse via Lat/Long
             //rg.loadFromWaypoints([point.lat()+","+point.lng() , point.lat()+","+point.lng()],{getSteps: true, locale: "GB", getPolyline:true});
        }
    }
}


function snrmap_setwgs84(thepoint)
{   
    if(typeof(wgs84X)!="undefined")
    {
        var obj = document.getElementById(wgs84X);
        if(obj)
        {
            obj.value= thepoint.lng();
            obj = document.getElementById(wgs84Y);
            obj.value= thepoint.lat();
            
           if(typeof(obj.onchange)!="undefined") 
           try{
            obj.onchange();
            }catch(f){}
            //obj.submit();
            //on annule la commune
            //todo
        }
        snrmap_tracePointer(thepoint);
    
    
     if(typeof(distanceID)!="undefined")
            if(distanceID !='')
            {
                if(snrmap_gmmapdrawcircle)
                {
                    var obj = document.getElementById(distanceID);
                    if(obj)
                    {
                        var km = obj.value;
                        drawCircle(thepoint, km, 40);//, liColor, liWidth, liOpa, fillColor, fillOpa)
                    }
                }

            }
    
    }
}


 function snrmap_setWGS84ByObj(qui,valeur)
 {
    var point = snrmap_pointer.getPoint();
    valeur=valeur.replace(/,/g,".");
    //alert(valeur);
    switch(qui)
    {
        case "X":
            point = new GLatLng(point.lat() , valeur); 
            break;
        case "Y":
            point = new GLatLng(valeur , point.lng()); 
            break;
    }
    snrmap_pointer.setPoint(point);
    snrmap_map.setCenter(point);
}


function snrmap_setWGS84ByLatLng(px,py)
{
    px=(px+"").replace(/,/g,".");
    py=(py+"").replace(/,/g,".");
	var point = new GLatLng(py ,px);
	snrmap_pointer.setPoint(point);
	//alert('ok');
}

function snrmap_setWGS84ByLatLngAndCenter(px,py)
{
    px=(px+"").replace(/,/g,".");
    py=(py+"").replace(/,/g,".");
	var point = new GLatLng(py ,px);
	snrmap_pointer.setPoint(point);
    snrmap_map.setCenter(point);
}

function snrmap_trace()
{   
    var thepoint = snrmap_map.getCenter()
    snrmap_tracePOI(thepoint);
}

function snrmap_tracePointer(thepoint)
{   
    snrmap_tracePOI(thepoint);
}

function snrmap_tracePOI(thepoint)
{
    if(typeof(wgs84X)!="undefined")
    {
        var obj = document.getElementById("snr_wgs84X");
        if(obj)
            obj.value= thepoint.lng();
         
        obj = document.getElementById("snr_wgs84Y");
        if(obj)
            obj.value= thepoint.lat();
            
        obj = document.getElementById("snr_zoom");
        if(obj)
            obj.value= snrmap_map.getZoom();
            
        obj = document.getElementById("snr_sortie");
        if(obj)
            obj.value= "snrmap_cadrersur( "+thepoint.lng()+" , "+thepoint.lat()+" , "+snrmap_map.getZoom()+");";
    }
}

//obsolete
function snrmap_applique(px,py,z)
{
    snrmap_cadrersur(px,py,z);
}



function snrmap_dblclick(overlay,point)
{

    if(overlay==null && !pointerDrag)
    {

       // snrmap_pointer.setPoint(point);
        //snrmap_map.setCenter(point);
    }
}

function snrmap_DisableDrag()
{
    
    if(!snrmap_allownavigate)
    {
     //alert("ok2");
        //GLog.write("disableDragging");
	    window.setTimeout(function() {snrmap_map.disableDragging()}, 100);
    }
}

function snrmap_EnableDrag()
{
    if(!snrmap_allownavigate)
    {
    //alert("ok");
	    //GLog.write("enableDragging"); 
	    snrmap_map.enableDragging();
	}
}

///prevent page scroll

function wheelevent(e)
{
    if (!e){
    e = window.event
    }
    if (e.preventDefault){
    e.preventDefault()
    }
    e.returnValue = false;
}





function snrmap_onLoad()
{
    
    
	if (GBrowserIsCompatible())
	{
	
		snrmap_map = new GMap2(document.getElementById("map"),{draggingCursor: 'pointer' ,draggableCursor : "pointer"});
		


		
		GEvent.addDomListener(snrmap_map.getContainer(), "DOMMouseScroll", wheelevent);
        snrmap_map.getContainer().onmousewheel = wheelevent; 

        
//		    // Restrict the zoom range.
//        var mt = map.getMapTypes();
//        for (var i=0; i<mt.length; i++) {
//          mt[i].getMinimumResolution = function() {return 6;}
//          mt[i].getMaximumResolution = function() {return 18;}
//        } 
		
		GEvent.addListener(snrmap_map, "zoomend",function() {
		//alert(snrmap_map.getZoom());
		    if(snrmap_endinit){
		        snrmap_DisableDrag();
		    }
		 });
		 	GEvent.addListener(snrmap_map,'moveend',function(){
		    snrmap_MoveMake();
		    //setTimeout(function() {snrmap_MoveMake()}, 12);
		});
		 GEvent.addListener(snrmap_map, "click", function(overlay,point) {
			click(overlay,point);
			//return false;
		});
		 
		 
		 snrmap_map.enableScrollWheelZoom();
		  snrmap_map.enableContinuousZoom();
		 // alert(snrmap_map.continuousZoomEnabled());
		//snrmap_map.disableDragging();
		
		//GEvent.addListener(map, "movestart", enableDrag);
		//GEvent.addListener(map, "moveend", disableDrag);
		
		 
//		 GEvent.addDomListener(document.getElementById("map"), "dblclick", function(e,latlng) {
//		 alert('ok'+e);
//		 });
		 
	
		 
		
//		snrmap_map.enableDoubleClickZoom();
//         GEvent.addListener( snrmap_map, "dblclick", function(overlay,point){
//            snrmap_dblclick(overlay,point);
//         });
 
 
		
		
        //permet de recuperer une adresse via Lat/Long
//        rg = new GDirections(map);
//        GEvent.addListener(rg, "load",
//          function(placemark) {
//            alert(placemark.address);
//          }
//        );
//        GEvent.addListener(rg, "error",
//          function(placemark) {
//            alert("erreur : " + rg.getStatus().code );
//          }
//        );

		//            GEvent.addListener(map, "move", function() {
		//                testLimit();
		//                });
		
		
//		GLog.write("lat : "+snrmap_geostart_lat+ " / lng : " + snrmap_geostart_lng); 
		
		
	
		//snrmap_map.setCenter(new GLatLng(0 ,0));
		if(snrmap_allownavigate)
		snrmap_EnableDrag();
		else
		snrmap_DisableDrag();
//		//
        
        snrmap_MiniMap(snrmap_minimap);
		snrmap_MapTypeControl(snrmap_gmmaptypecontrol);
		snrmap_MapControl(snrmap_gmmapcontrol);
		snrmap_MapControlScale(snrmap_gmmapcontrolscale);
		
//		//mapTypes:[G_NORMAL_MAP,G_PHYSICAL_MAP]
        
        snrmap_map.setCenter(new GLatLng(snrmap_geostart_lat ,snrmap_geostart_lng), snrmap_startzoom,snrmap_MapMode(snrmap_mapmode));

//       

		snrmap_icons["pointer"] = new GIcon();//G_DEFAULT_ICON, "./images/targetA.gif");
		snrmap_icons["pointer"].image="./images/carto/targetA.gif";
		snrmap_icons["pointer"].imageMap=[0,0,31,0,31,31,0,31];
		snrmap_icons["pointer"].iconSize=new GSize(32,31);
		//snrmap_icons["pointer"].shadow = "http://labs.google.com/ridefinder/images/mm_20_shadow.png";
		//snrmap_icons["pointer"].shadowSize = new GSize(50, 20);
		snrmap_icons["pointer"].iconAnchor = new GPoint(16, 31);
		snrmap_icons["pointer"].dragCrossAnchor = new GPoint(16/2, 31/2);
		//snrmap_icons["yellow"].infoWindowAnchor = new GPoint(5, 1);
        //
		snrmap_icons["hpa"] = new GIcon();
		snrmap_icons["hpa"].image="./images/carto/hpa.png";
		snrmap_icons["hpa"].iconSize=new GSize(32,32);
		snrmap_icons["hpa"].iconAnchor = new GPoint(32, 32);
		snrmap_icons["hpa"].shadow = "./images/carto/ombre.png";
		snrmap_icons["hpa"].shadowSize = new GSize(60, 32);
		snrmap_icons["hpa"].infoWindowAnchor = new GPoint(32/2, 0);
		//
		snrmap_icons["hlo"] = new GIcon();
		snrmap_icons["hlo"].image="./images/carto/hlo.png";
		snrmap_icons["hlo"].iconSize=new GSize(32,32);
		snrmap_icons["hlo"].iconAnchor = new GPoint(32, 32);
		snrmap_icons["hlo"].shadow = "./images/carto/ombre.png";
		snrmap_icons["hlo"].shadowSize = new GSize(60, 32);
		snrmap_icons["hlo"].infoWindowAnchor = new GPoint(32/2, 0);
		//
		snrmap_icons["hloreal"] = new GIcon();
		snrmap_icons["hloreal"].image="./images/carto/hlo_real.png";
		snrmap_icons["hloreal"].iconSize=new GSize(32,32);
		snrmap_icons["hloreal"].iconAnchor = new GPoint(32, 32);
		snrmap_icons["hloreal"].shadow = "./images/carto/ombre.png";
		snrmap_icons["hloreal"].shadowSize = new GSize(60, 32);
		snrmap_icons["hloreal"].infoWindowAnchor = new GPoint(32/2, 0);
		//
		snrmap_icons["hot"] = new GIcon();
		snrmap_icons["hot"].image="./images/carto/hot.png";
		snrmap_icons["hot"].iconSize=new GSize(32,32);
		snrmap_icons["hot"].iconAnchor = new GPoint(32, 32);
		snrmap_icons["hot"].shadow = "./images/carto/ombre.png";
		snrmap_icons["hot"].shadowSize = new GSize(60, 32);
		snrmap_icons["hot"].infoWindowAnchor = new GPoint(32/2, 0);
		//
		snrmap_icons["hotreal"] = new GIcon();
		snrmap_icons["hotreal"].image="./images/carto/hot_real.png";
		snrmap_icons["hotreal"].iconSize=new GSize(32,32);
		snrmap_icons["hotreal"].iconAnchor = new GPoint(32, 32);
		snrmap_icons["hotreal"].shadow = "./images/carto/ombre.png";
		snrmap_icons["hotreal"].shadowSize = new GSize(60, 32);
		snrmap_icons["hotreal"].infoWindowAnchor = new GPoint(32/2, 0);
		//
		snrmap_icons["vil"] = new GIcon();
		snrmap_icons["vil"].image="./images/carto/vil.png";
		snrmap_icons["vil"].iconSize=new GSize(32,32);
		snrmap_icons["vil"].iconAnchor = new GPoint(32, 32);
		snrmap_icons["vil"].shadow = "./images/carto/ombre.png";
		snrmap_icons["vil"].shadowSize = new GSize(60, 32);
		snrmap_icons["vil"].infoWindowAnchor = new GPoint(32/2, 0);
		//
		snrmap_icons["sje"] = new GIcon();
		snrmap_icons["sje"].image="./images/carto/sje.png";
		snrmap_icons["sje"].iconSize=new GSize(32,32);
		snrmap_icons["sje"].iconAnchor = new GPoint(32, 32);
		snrmap_icons["sje"].shadow = "./images/carto/ombre.png";
		snrmap_icons["sje"].shadowSize = new GSize(60, 32);
		snrmap_icons["sje"].infoWindowAnchor = new GPoint(32/2, 0);
		//
		//GLog.write("moved"); 
		


        
		var point = new GLatLng(snrmap_geostart_lat ,snrmap_geostart_lng);
		snrmap_pointer = snrmap_CreatePointer(point,snrmap_icons["pointer"],true,'')
		if(typeof(snrmap_seecursor)!="undefined")
		if(!snrmap_seecursor)
		    snrmap_pointer.hide();
        GEvent.addListener(snrmap_pointer,'dragend',function(){
		    snrmap_MoveMake();
		    //setTimeout(function() {snrmap_MoveMake()}, 12);
		});
		
		//gmm = new GMarkerManager(map);

		snrmap_endinit=true;
		
		if(typeof(snrmap_init)=="function")
		snrmap_init();
		//alert(mapNotDisplayBound);
		if(typeof(initPOILine)=="function" )
		{
		    initPOILine();
		    if(!mapNotDisplayBound)
		    {
		        //var polygon = new GPolygon(elPOILine, null, 5, 0.7, "#aaaaff", 0.5 );
		        var polygon = new GPolyline(elPOILine,elPOILineColor, elPOILineStrike,elPOILineOpacity);//"#5555ff"
                snrmap_map.addOverlay(polygon);
                elPOITransform();
            }
            else
            {
                elPOICfgSet();
            }
            
        }
	}
	else
	{
	    
	}
}

function snrmap_ReSize(w,h)
{
    snrmap_map.size = new GSize(w,h);
    var container = document.getElementById("map");
    container.style.width = w + 'px';
	container.style.height = h + 'px';
	snrmap_map.checkResize();
}

function snrmap_MapTypeControl(valeur)
{
    if(typeof(valeur)!="undefined")
        snrmap_gmmaptypecontrol=valeur;
    else
        snrmap_gmmaptypecontrol=false;
    
	snrmap_map.removeControl(snrmap_maptypecontrolobj);
	if(snrmap_gmmaptypecontrol)
	{
	    snrmap_maptypecontrolobj = new GMapTypeControl();
	    snrmap_map.addMapType(G_PHYSICAL_MAP);

	    snrmap_map.addControl(snrmap_maptypecontrolobj)
	}
}

function snrmap_MiniMap(valeur)
{		
    if(typeof(valeur)!="undefined")
        snrmap_minimap=valeur;
    else
        snrmap_minimap=false;
    
	snrmap_map.removeControl(snrmap_minimapobj);
    if(snrmap_minimap)
    {
	    snrmap_minimapobj = new GOverviewMapControl(new GSize(snrmap_minimapsize,snrmap_minimapsize));
	    //var bottomRight = new GControlPosition(G_ANCHOR_BOTTOM_RIGHT, new GSize(10,10));
        //var topRight = new GControlPosition(G_ANCHOR_TOP_RIGHT, new GSize(0,0));
	    snrmap_map.addControl(snrmap_minimapobj);//,topRight);
	}
}	

function snrmap_MapControlScale(valeur)
{		        
    if(typeof(valeur)!="undefined")
        snrmap_gmmapcontrolscale=valeur;
    else
        snrmap_gmmapcontrolscale=false;
    
//alert(valeur);

    snrmap_map.removeControl(snrmap_mapcontrolscaleobj);
    if(snrmap_gmmapcontrolscale)
	    snrmap_mapcontrolscaleobj=new GScaleControl();//GLargeMapControl3D();//GScaleControl();
	if(snrmap_gmmapcontrolscale!="")
	{
	    snrmap_map.addControl(snrmap_mapcontrolscaleobj);
	}
}
		        


function snrmap_MapMode()
{
    map.setMapType();
}


function snrmap_MapControl(valeur)
{		
    if(typeof(valeur)!="undefined")
        snrmap_gmmapcontrol=valeur;
    else
        snrmap_gmmapcontrol='';
	snrmap_map.removeControl(snrmap_mapcontrolobj);
	switch(snrmap_gmmapcontrol)
	{
	    case "small":
	        snrmap_mapcontrolobj=new GSmallMapControl3D();
	        break;
	    case "large":
	        snrmap_mapcontrolobj=new GLargeMapControl3D();
	        break;
	    case "smallzoom":
	        snrmap_mapcontrolobj=new GSmallZoomControl3D();
	        break;
	}      
	if(snrmap_gmmapcontrol!="")
	{
	    snrmap_map.addControl(snrmap_mapcontrolobj);
	}
}
	
	

function snrmap_Recadre()
{

    snrmap_EnableDrag();
	var bounds = new GLatLngBounds();
	var nbr=0;
	var arr = [snrmap_markersHlo,snrmap_markersHpa,snrmap_markersHot,snrmap_markersVil];
	for (var j in arr )
	{
	    var inbr = arr[j].length;
	    for(var i=0;i<inbr;i++)
	    {
		    var point = new GLatLng(arr[j][i].getPoint().lat(),arr[j][i].getPoint().lng());
		    bounds.extend(point);
		    nbr++;
	    }
	}
	if(!snrmap_pointer.isHidden())
        bounds.extend(snrmap_pointer.getPoint());
	if(nbr>0)
	{
	  if(polyCircle)
	  bounds = boundsCircle;
	    //alert(nbr);
	
		// ===== determine the zoom level from the bounds =====
		//snrmap_map.setZoom(Math.min(10,snrmap_map.getBoundsZoomLevel(bounds)));

		// ===== determine the centre from the bounds ======
		//snrmap_map.setCenter(bounds.getCenter());
		snrmap_map.setCenter(bounds.getCenter(),Math.min(10,snrmap_map.getBoundsZoomLevel(bounds)));
		snrmap_DisableDrag();
	}
	

}


function snrmap_MapModeSet(NSH)
{
    snrmap_EnableDrag();
    snrmap_mapmode=NSH;
	snrmap_map.setMapType(snrmap_MapMode(NSH));
	snrmap_DisableDrag();
}

function snrmap_MapMode(NSH)
{
	switch(NSH)
	{
		case "N":
		    return G_NORMAL_MAP;
		
		case "S":
		    return G_SATELLITE_MAP;
		
		case "H":
		    return G_HYBRID_MAP;
		case "R":
		    return G_PHYSICAL_MAP;
	}
	return "";
}


//permet d'ouvrir et fermer la carte dans un DIV
function snrmap_MapCheckResize()
{
    snrmap_map.checkResize();
    snrmap_MapReset()
}

function snrmap_MapReset()
{
    snrmap_EnableDrag();
    snrmap_map.setCenter(new GLatLng(snrmap_geostart_lat ,snrmap_geostart_lng), snrmap_startzoom);
    snrmap_DisableDrag();
}

function snrmap_ZoomIn()
{
	//snrmap_map.enableDragging();
	snrmap_EnableDrag();

	currentzoom = snrmap_map.getZoom();
	snrmap_map.setZoom(currentzoom+snrmap_zoomstep);
	//setTimeout(function() {snrmap_map.disableDragging()}, 500);
	snrmap_DisableDrag();
}

function snrmap_ZoomOut()
{
	//snrmap_map.enableDragging();
	snrmap_EnableDrag();
	currentzoom = snrmap_map.getZoom();
	snrmap_map.setZoom(currentzoom-snrmap_zoomstep);
	//setTimeout(function() {snrmap_map.disableDragging()}, 500);
	snrmap_DisableDrag();
}

function snrmap_MoveMouseOut()
{
    snrmap_scrollmoving=false;
    snrmap_DisableDrag();
}

function snrmap_MoveMake()
{
    if(!snrmap_scrollmoving)
    return;
    snrmap_map.panBy(new GSize(snrmap_scrollX/5,snrmap_scrollY/5));
    
}

function snrmap_MoveMouseOver(NEWS)
{

    snrmap_EnableDrag();
	switch(NEWS)
	{
		case "N":
		    snrmap_scrollX=0;
		    snrmap_scrollY = +snrmap_scrollstep;
		    break;
		case "S":
		    snrmap_scrollX=0;
		    snrmap_scrollY = -snrmap_scrollstep;
		    break;
		case "E":
		    snrmap_scrollX = -snrmap_scrollstep;
		    snrmap_scrollY=0;
		    break;
		case "W":
    		snrmap_scrollX = +snrmap_scrollstep;
		    snrmap_scrollY=0;
		    break;
		case "NE":
		    snrmap_scrollX = -snrmap_scrollstep;
		    snrmap_scrollY=+snrmap_scrollstep;
		    break;
		case "SE":
		    snrmap_scrollX = -snrmap_scrollstep;
		    snrmap_scrollY=-snrmap_scrollstep;
		    break;
		case "NW":
		    snrmap_scrollX = +snrmap_scrollstep;
		    snrmap_scrollY=+snrmap_scrollstep;
		    break;
		case "SW":
		    snrmap_scrollX = +snrmap_scrollstep;
		    snrmap_scrollY=-snrmap_scrollstep;
		    break;
	}
	snrmap_scrollmoving=true;
	snrmap_MoveMake();
	
}


function snrmap_Move(NEWS)
{
    
    snrmap_EnableDrag();
	//             snrmap_map.panBy(new GSize(30,0));
	//             return;
	switch(NEWS)
	{
		case "N":
		    snrmap_map.panBy(new GSize(0,+snrmap_scrollstep));
		    //snrmap_map.panDirection(0,-snrmap_scrollstep);
		    break;
		case "S":
		    snrmap_map.panBy(new GSize(0,-snrmap_scrollstep));
		    //snrmap_map.panDirection(0,+snrmap_scrollstep);
		    break;
		case "E":
		    snrmap_map.panBy(new GSize(-snrmap_scrollstep,0));
		    //snrmap_map.panDirection(+snrmap_scrollstep,  0);
		    break;
		case "W":
		    snrmap_map.panBy(new GSize(+snrmap_scrollstep,0));
		    //snrmap_map.panDirection(-snrmap_scrollstep,  0);
		    break;
		case "NE":
		    snrmap_map.panBy(new GSize(-snrmap_scrollstep,+snrmap_scrollstep));
		    //snrmap_map.panDirection(+snrmap_scrollstep,  -snrmap_scrollstep);
		    break;
		case "SE":
		    snrmap_map.panBy(new GSize(-snrmap_scrollstep,-snrmap_scrollstep));
		    //snrmap_map.panDirection(+snrmap_scrollstep,  +snrmap_scrollstep);
		    break;
		case "NW":
		    snrmap_map.panBy(new GSize(+snrmap_scrollstep,+snrmap_scrollstep));
		    //snrmap_map.panDirection(-snrmap_scrollstep,  -snrmap_scrollstep);
		    break;
		case "SW":
		    snrmap_map.panBy(new GSize(+snrmap_scrollstep,-snrmap_scrollstep));
		    //snrmap_map.panDirection(-snrmap_scrollstep,  +snrmap_scrollstep);
		    break;
	}
	snrmap_DisableDrag();
}



function snrmap_CreatePointer(point,pointer,draged,html,titre)
{
	if(typeof(titre)=="undefined")
    titre="";
    var marker = doPointer(point,pointer,draged,html,titre);
	snrmap_map.addOverlay(marker);
	return marker;
}

function snrmap_CreateMarker(bordereau,point,pointer,draged,html,titre)
{
    if(typeof(titre)=="undefined")
    titre="";
    
	var marker = doPointer(point,pointer,draged,html,titre);
	
	switch(bordereau)
	{
	    case "hlo":
	    case "hloreal":
	        snrmap_markersHlo[snrmap_markersHlo.length] = marker;
	        break;
	    case "poi":
	    case "poireal":
	        snrmap_markersPOI[snrmap_markersPOI.length] = marker;
	        break;
	    case "hot":
	    case "hotreal":
	        snrmap_markersHot[snrmap_markersHot.length] = marker;
	        break;
        case "hpa":
        case "hpareal":
	        snrmap_markersHpa[snrmap_markersHpa.length] = marker;
	        break;
        case "vil":
        case "vilreal":
	        snrmap_markersVil[snrmap_markersVil.length] = marker;
	        break;   
	    case "sje":
        case "sjereal":
	        snrmap_markersSJE[snrmap_markersSJE.length] = marker;
	        break;
    }
	snrmap_map.addOverlay(marker);
	return marker;
}



















function snrPOI()
{
    var commune="";
    var bordereau="";
    var raisonsociale="";
    var cat="";//3
    var label="";//etoiles
    var image="";
}
snrPOI.prototype.t = function()
{
}

function snrResetCarteAndResultat()
{
    snrResetCarte();
    if(typeof(resultatID)!="undefined")
    {
        var obj = document.getElementById(resultatID+"_ctl00");//actuellement c'est un div
        if(obj)
        obj.innerHTML = "";
    }
}

function snrResetCarte()
{
    snrmap_pointer.hide();
    snrResetCartePoi();
    
    var obj = document.getElementById(foliotageID);
    if(obj)
    {
        var objdate = new Date();
        //obj.value="1|"+objdate.getTime();
    }
}
function snrResetCartePoi()
{
    snrmap_BordereauClear("hot");
    snrmap_BordereauClear("hlo");
    snrmap_BordereauClear("hpa");
    snrmap_BordereauClear("vil");
    snrmap_BordereauClear("sje");
}


var drawPOITimeOUT="";
function drawPOI(_snrmap)
{
    if(!snrmap_endinit)
    {
    //alert(ok);
        clearTimeout(drawPOITimeOUT);
        drawPOITimeOUT = window.setTimeout(function() {drawPOI(_snrmap);},1000);
        return;
    }
    clearTimeout(drawPOITimeOUT);
    
    //alert('ok');
    for(var i in _snrmap)
    {
        var wgs84x=0;
        var wgs84y=0;
        var titre = ""
        var tmpnbr=0;
        for(var j in _snrmap[i])
        {
            var obj = _snrmap[i][j];
            var titre = obj.lib;
            var wgs84x = obj.xx;
            var wgs84y = obj.yy;
            point = new GLatLng(wgs84y,wgs84x);
            var tmp  = new GIcon();
            tmp.image=obj.img;
            //tmp.imageMap=[0,0,31,0,31,31,0,31];
            tmp.iconSize=new GSize(48,48);
            tmp.iconAnchor = new GPoint(24, 48);
            //tmp.dragCrossAnchor = new GPoint(24/2, 48/2);
            //GEvent.addListener(tmp, "click", function() {
			//click(null,point);});
            //snrmap_CreateMarker(snrmap_BordereauObjById('poi'),point,tmp,false,'',titre);
            //snrmap_CreatePointer(snrmap_BordereauObjById('poi'),point,tmp,false,'',titre);
            //snrmap_BordereauObj('poi')
            //var marker = doPointer(point,pointer,draged,html,titre);
            var marker = new GMarker(point,{title:titre,draggable:false,icon:tmp,bouncy:false});
            snrmap_markersPOI[snrmap_markersPOI.length] = marker;
            snrmap_map.addOverlay(marker);
 
            //var marker = new GMarker(point,{title:titre,draggable:draged,icon:pointer,bouncy:true});
        }
    }
}



var drawPOIByCommuneTimeout;
function drawPOIByCommune(_snrmap, fichedescriptive)
{
    
    if(!snrmap_endinit)
    {
        clearTimeout(drawPOIByCommuneTimeout);
        drawPOIByCommuneTimeout = window.setTimeout(function() {drawPOIByCommune(_snrmap,fichedescriptive);},1000);
        return;
    }
    clearTimeout(drawPOIByCommuneTimeout);
   // alert(fichedescriptive);
    //alert('ok');
    var nbr=0;
     var bordereau = "hot";
    //efface les anciens poi :
    snrResetCartePoi();
    
    
    for(var i in _snrmap)
    {
        var wgs84x=0;
        var wgs84y=0;
        var titre = ""
        var info="<table width='100%' border=0 cellspacing=0 cellpadding=0>";
        var tmpnbr=0;
        for(var j in _snrmap[i])
        {
        
            var obj = _snrmap[i][j];
            //alert(obj.reel);
            if(!obj.reel)
            {
                //lien = snrPathFICHE+ obj.id+ ""');";
                bordereau=obj.bordereau;
                
                //if(fichedescriptive=='0' || bordereau=='1')
                lien = "javascript:"+obj.resa+"void(0);";
                
                //alert(obj.rs);
                
                titre = obj.c;//+ " - " + obj.cp;//i.substring(1);                    
                wgs84x = obj.xx;
                wgs84y = obj.yy;
                
                info+="<tr><td width=\"40px\" class='snrInfoBulle"+(1+tmpnbr%2)+"'><img src='"+snrPathIMG + obj.img+"' alt=''></td><td class='snrInfoBulle"+(1+tmpnbr%2)+"'><a href=\""+ lien +"\">"+ obj.rs+"</a></td></tr>";
                if(wgs84x!='0' && wgs84y!='0' && wgs84x!='-100' && wgs84y!='-100')
                {
                    tmpnbr++;
                   // alert('ok' + wgs84x + " / " + wgs84y);
                }
            }
            else
            {
            
               // lien = snrPathFICHE+ obj.id+"');";
                var bordereau_2 = obj.bordereau;
                
              // if(fichedescriptive=='0' || bordereau_2=='1')
                lien = "javascript:"+obj.resa+"void(0);";
                //
                
                var titre_2 = obj.c;//+ " - " + obj.cp;//i.substring(1);                    
                var wgs84x_2 = obj.xx;
                var wgs84y_2 = obj.yy;
                //
                var info_2 ="<table><tr><td width=\"40px\" class='snrInfoBulle"+(1+tmpnbr%2)+"'><img src='"+snrPathIMG + obj.img+"' alt=''></td><td class='snrInfoBulle"+(1+tmpnbr%2)+"'><a href=\""+ lien +"\">"+ obj.rs+"</a></td></tr></table>";
                //
                titre += " - " + 1 + " offre(s)";
                //alert('ok' + wgs84x + " / " + wgs84y);
                var point_2 = new GLatLng(wgs84y_2,wgs84x_2);
                var hauteur_2= "" + Math.min(30*5 ,30*1);
               // alert(30*tmpnbr);
                snrmap_CreateMarker(snrmap_BordereauObjById(bordereau_2)+"real",point_2,snrmap_icons[snrmap_BordereauObjById(bordereau_2)+"real"],false,'<div class="snrInfoBulle" style="height:'+hauteur_2+'px">'+info_2+'</div>',titre_2);//height:70px;overflow:auto //style="width:250px;"
                nbr++;
            }
        }
        info+="</table>";
        if(tmpnbr>0)
        {
            titre += " - " + tmpnbr + " offre(s)";
            //alert('ok' + wgs84x + " / " + wgs84y);
            point = new GLatLng(wgs84y,wgs84x);
            var hauteur= "" + Math.min(30*5 ,30*tmpnbr);
           // alert(30*tmpnbr);
            snrmap_CreateMarker(snrmap_BordereauObjById(bordereau),point,snrmap_icons[snrmap_BordereauObjById(bordereau)],false,'<div class="snrInfoBulle" style="height:'+hauteur+'px">'+info+'</div>',titre);//height:70px;overflow:auto //style="width:250px;"
        }
        nbr++;
    }
    //recadre les offres
    if(nbr>0 && snrmap_recadreroffres==1)
    snrmap_Recadre();
    //remet a 1 le recadrage des offres
    snrmap_recadreroffres=1;
}


function snrmap_BordereauObjById(bordereau)
{
    switch(bordereau)
    {
        case "0":
            return "hlo";
        case "1":
            return "hot";
        case "2":
            return "hpa";
        case "3":
            return "vil";
        case "4":
            return "sje";
    }
}


function snrmap_BordereauObj(bordereau)
{
    switch(bordereau)
    {
        case "poi":
            return snrmap_markersPOI;
        case "hlo":
            return snrmap_markersHlo;
        case "hot":
            return snrmap_markersHot;
        case "hpa":
            return snrmap_markersHpa;
        case "vil":
            return snrmap_markersVil;
        case "sje":
            return snrmap_markersSJE;
    }
}



function snrmap_BordereauClear(bordereau)
{
    var bord = snrmap_BordereauObj(bordereau);
	var inbr=bord.length;
	// alert(inbr);
	for(var i=0;i<inbr;i++)
	{
		snrmap_map.removeOverlay(bord[i]);
		//  alert(i);
	}
	//alert(gmm.length);
	//bord=[];
	switch(bordereau)
    {
        case "poi":
            snrmap_markersPOI=[];
            break;
        case "hlo":
            snrmap_markersHlo=[];
            break;
        case "hot":
            snrmap_markersHot=[];
            break;
        case "hpa":
            snrmap_markersHpa=[];
            break;
        case "vil":
            snrmap_markersVil=[];
            break;
        case "sje":
            snrmap_markersSJE=[];
            break;}
	//snrmap_vbl=0;
	//gmmVbl=0;
}


function snrmap_BordereauCreate(bordereau)
{
	point = new GLatLng(43.85619252622504,4.795834808349609);
	snrmap_CreateMarker(bordereau,point,snrmap_icons["hpa"],false,'<div style="width:240px">mon info bulle</div>')

	point = new GLatLng(43.85619252622504,4.7685834808349609);
	snrmap_CreateMarker(bordereau,point,snrmap_icons["hpa"],false,'<div style="width:240px">mon info bulle</div>')
}






var geocoder;
function findadress()
{
	var adre = document.getElementById(adresseID).value;
	geocoder  = new GClientGeocoder();
	geocoder.getLocations(adre, addAdressToMap);
}
function addAdressToMap(response)
{

	document.getElementById(wgs84Y).value="";
	document.getElementById(wgs84X).value="";
		
	if (!response || response.Status.code != 200)
	{
		//alert("Désolé, impossible de trouver l'adresse ("+response.Status.code+")");
//		var obj = document.getElementById(goID);
//        if(obj)
//        {
//        //obj.value=new Date();
//            obj.value=document.getElementById(guidID).value;
//            obj.onchange();
//            //obj.submit();
//        }
    }
    else
    {
    
        place = response.Placemark[0];
        //filtre manuel...
//        switch( place.AddressDetails.Country.CountryNameCode)
//        {
//            case "RE":
//            case "GF":
//            case "MQ":
//            case "GP":
		        document.getElementById(wgs84Y).value=place.Point.coordinates[1];
		        document.getElementById(wgs84X).value=place.Point.coordinates[0];

		        point = new GLatLng(place.Point.coordinates[1],place.Point.coordinates[0]);

                if(typeof(snrmap_pointer)!="undefined")
                {
                    //alert('okd'+snrmap_pointer);
                    snrmap_pointer.show();
                    snrmap_pointer.setPoint(point);
                    snrmap_setwgs84(snrmap_pointer.getPoint());
                    snrmap_map.setCenter(point);
                }
                else
                {
                //alert('ok');
                    snrmap_map.clearOverlays();
		            
                		        
		            marker = new GMarker(point,{draggable: true});

		            GEvent.addListener(marker, "dragstart", function() {
			            snrmap_map.closeInfoWindow();
		            });
		            GEvent.addListener(marker, "dragend", function() {
			            //showinfo(marker);
		            });

		            snrmap_map.addOverlay(marker);
		            var htm = place.address + '<br>';
		            htm += '<b>Country code:</b> ';
		            htm += place.AddressDetails.Country.CountryNameCode + '<br>';
		        
		            //htm += place.AddressDetails.Country.AdministrativeArea.AdministrativeAreaName+ '<br>' ;
                    //			htm += place.AddressDetails.Country.AdministrativeArea.SubAdministrativeArea.Locality+ '<br>' ;
                    //			
                    //			for(var i in place.AddressDetails.Country.AdministrativeArea.SubAdministrativeArea)
                    //			{
                    //			htm += "<br>" + i + " : " + place.AddressDetails.Country.AdministrativeArea.SubAdministrativeArea[i] ;
                    //			}
                    		
                		
		            marker.openInfoWindowHtml(htm );
		        
		        }
		        

   
       // }
		
	}
	
	var obj = document.getElementById(goID);
    if(obj)
    {
        //obj.value=new Date();
        obj.value=document.getElementById(guidID).value;
        obj.onchange();
        //obj.submit();
    }
}


// This function picks up the click and opens the corresponding info window
function myclick(i) {
	GEvent.trigger(snrmap_markersHlo[i], "click");
}

function explore(qui,vblmax)
{
    if(typeof(vblmax)=="undefined")
    vblmax=10;
    var vbl=0;
	var str="";
	for(var i in qui)
	{
	    vbl++;
	    str+=i+" = " + qui[i]+"\r\n";
	    str+="----------------------------"+"\r\n";
	    if(vbl%vblmax==0)
	    {
		    alert(str);
		    str="";
        }
	}
	if(!vbl%vblmax==0)
		alert(str);
	
}








//**************************************************
// Liste des fonctions
//**************************************************



function elPOIClone()
{
    var obj2=document.getElementById("elPOILine");
     //alert(obj2.options.selectedIndex);
    if(obj2.options.selectedIndex!=-1)
    {
        var indexEdit = obj2.options.selectedIndex;
        elPOILine.splice(indexEdit,0,elPOILine[indexEdit]);
        
        elPOITransform();
    
        elPOIRestoreIndex(indexEdit);
    
   }
    
    
    
    var obj3=document.getElementById("elPOILineTools");
    if(obj3)
    {
        obj3.style.display="none";
    }
     
}


 
function elPOIRestoreIndex(ou)
{
    var obj2=document.getElementById("elPOILine");
    obj2.options.selectedIndex=ou;
    //obj2.options[ou].selected=false;
}


function elPOIDelete()
{
    
    var obj2=document.getElementById("elPOILine");
     //alert(obj2.options.selectedIndex);
    if(obj2.options.selectedIndex!=-1)
    {
        var indexEdit = obj2.options.selectedIndex;
        
        
        if(typeof(markers[indexEdit])!="undefined")
        snrmap_map.removeOverlay(markers[indexEdit]);
        
        elPOILine.splice(indexEdit,1);
        
       // obj2.remove(indexEdit);
        
        if(elPOISeeAllLocker)
		{
		    elPOIHideAll();
		    elPOISeeAll();
		}
		else
        {
        	elPOITransform();
        	elPOIRestoreIndex(indexEdit);
        }
   }
   
    var obj3=document.getElementById("elPOILineTools");
    if(obj3)
    {
        obj3.style.display="none";
    }
}



    
function elPOITransform()
{
    var obj=document.getElementById("elPOILine");
    
    var iNbr = elPOILine.length;
    
    if(obj)
    {
        if(obj.options)
        obj.options.length=0;
        var str="";
        for(var i=0;i<iNbr;i++)
        {
     
            var nomOption = new Option(i+ " : "+elPOILine[i].lng()+" x "+elPOILine[i].lat(), elPOILine[i], false, false);
            var iLong = obj.options.length;
            obj.options[iLong]=nomOption;//.add();   
        }
    }
    
    elPOIDraw();
}





function elPOIDraw()
{
    //map.removeLayer(mylayerVMPolyLine2Edit);
    //map.removeLayer(mylayerVMPolyLine);
    //mylayerVMPolyLine = new VMPolyLine(elPOILine,elPOILineColor,elPOILineStrike,elPOILineOpacity);
    //mylayerVMPolyLine.setZindex(10);
    //map.addLayer(mylayerVMPolyLine);
    
    //alert(typeof(mylayerVMPolyLine2Edit));
    
    if(typeof(mylayerVMPolyLine2Edit)!="undefined")
    snrmap_map.removeOverlay(mylayerVMPolyLine2Edit);
    if(typeof(mylayerVMPolyLine)!="undefined")
    snrmap_map.removeOverlay(mylayerVMPolyLine);
    
    mylayerVMPolyLine = new GPolyline(elPOILine,elPOILineColor, elPOILineStrike,elPOILineOpacity);//"#5555ff"
    //mylayerVMPolyLine.setZindex(10);
    snrmap_map.addOverlay(mylayerVMPolyLine);
            
}

//get de la config du trace
function elPOICfgGet()
{
    var obj=document.getElementById("elPOILineColor");
    if(obj)
    {
        elPOILineColor=obj.value;
        try{
        obj.style.backgroundColor=obj.value;
        }
        catch(err){}
    }
    var obj=document.getElementById("elPOILineStrike");
    if(obj)elPOILineStrike=parseInt(obj.value);
    var obj=document.getElementById("elPOILineOpacity");
    if(obj)elPOILineOpacity=parseFloat(obj.value);
    
     elPOITransform();
}

//set de la config du trace
function elPOICfgSet()
{
    var obj=document.getElementById("elPOILineColor");
    if(obj)
    {
        obj.value = elPOILineColor;
        try{
            obj.style.backgroundColor=obj.value;
        }
        catch(err){}
    //if(obj)obj.options.selectedIndex = getIndexOf(elPOILineColor,obj);
    }
    
    var obj=document.getElementById("elPOILineStrike");
    if(obj)obj.options.selectedIndex = getIndexOf(elPOILineStrike,obj);
    
    var obj=document.getElementById("elPOILineOpacity");
    if(obj)obj.options.selectedIndex = getIndexOf(elPOILineOpacity,obj);
    
    elPOITransform();
}



function getIndexOf( ref, group )
{
    var iNbr=group.length;
    
    for( var i = 0; i < iNbr; i++ )
    {
        if( group[ i ].value == ref ) 
        {
           // alert(group[ i ].value+"/"+ref);
            return i;
        }
    }
}


function elPOIHideAll()
{
    var iLong = markers.length;
    for(var i=0;i<iLong;i++)
    {
        snrmap_map.removeOverlay(markers[i]);
    }
    elPOISeeAllLocker=false;
}


var markers=[]
var elPOISeeAllLocker=false;
function elPOISeeAll()
{
	elPOISeeAllLocker=true;
	//map.removeLayer(layerTrace);
	//if(typeof(layerTrace)!="undefined")
	///snrmap_map.removeOverlay(layerTrace);
	
//	layerTrace= new VMComplexLayer();
	//layerTrace= new GMarkerManager(snrmap_map);
	
	//layerTrace.setZindex(2000);
    var iNbr = elPOILine.length;

    var pointer = new GIcon();
	pointer.image="./images/edit.gif";
	pointer.iconSize=new GSize(24,24);
	pointer.iconAnchor = new GPoint(12, 12);
	//pointer.infoWindowAnchor = new GPoint(32/2, 0);
    var titre="delete";
    var draged=false;
    
    var str="";
    for(var i=0;i<iNbr;i++)
    {
        //var tmp = new VMIconLayer(new VMLonLat(elPOILine[i].lon,elPOILine[i].lat), new VMIcon("edit.gif' onclick='var obj2=document.getElementById(\"elPOILine\");obj2.options.selectedIndex="+i+";elPOIDelete();",-12,-12) );//,
        var point = new GLatLng(elPOILine[i].lat(),elPOILine[i].lng());
        var tmp = new GMarker(point,{title:titre,draggable:draged,icon:pointer,bouncy:true});
        tmp.i=i;
	    //marker.overlay.getZIndex(zindexe);
	    //        var spaceNeedleContent = {
	    //		el:'img',att:{src:'http://www.google.fr/intl/fr_fr/images/logo.gif',width:'82',height:'150'}
	    //	    }
	    //        marker.tooltip = new Tooltip(marker,jsonToDom(spaceNeedleContent),5);
	    //
	    //        var ttmover = GEvent.callbackArgs(marker,tooltipMouseover);
	    //	    var ttmout = GEvent.callbackArgs(marker,tooltipMouseout);
	    //	    GEvent.addListener(marker,'mouseover',ttmover);
	    //	    GEvent.addListener(marker,'mouseout',ttmout);

	        GEvent.addListener(tmp, "click", function() {
		       var obj2=document.getElementById("elPOILine");obj2.options.selectedIndex=this.i;elPOIDelete(this.i);
	        });
        //mylayerVMPolyLine2Edit.onclick="alert('ok');";
        //tmp.setZindex(2000);
        //layerTrace.addLayer(tmp);
         var iLong = markers.length;
            markers[iLong]=tmp;//.add();   
            snrmap_map.addOverlay(tmp); 
        //layerTrace.addMarker(tmp,5);
    }
//    map.addLayer(layerTrace);
    
    //snrmap_map.addOverlay(layerTrace);     

    elPOIDraw();

	
}


function elPOIEdit(qui)
{
     var obj=document.getElementById("elPOILine");
   // alert(elPOILine[obj.options.selectedIndex]); 
    
    var pointer = new GIcon();
	pointer.image="./images/edit2.gif";
	pointer.iconSize=new GSize(24,24);
	pointer.iconAnchor = new GPoint(12, 12);
	
	var titre ="edit2";
	var draged=false;
	
    //map.removeLayer(mylayerVMPolyLine2Edit);
    if(typeof(mylayerVMPolyLine2Edit)!="undefined")
    snrmap_map.removeOverlay(mylayerVMPolyLine2Edit);
    if(obj.options.selectedIndex!=-1)
    {
        //mylayerVMPolyLine2Edit = new VMIconLayer(new VMLonLat(elPOILine[obj.options.selectedIndex].lon,elPOILine[obj.options.selectedIndex].lat), new VMIcon("edit.gif",-12,-12));
        var point = new GLatLng(elPOILine[obj.options.selectedIndex].lat(),elPOILine[obj.options.selectedIndex].lng());
        mylayerVMPolyLine2Edit = new GMarker(point,{title:titre,draggable:draged,icon:pointer,bouncy:true});
        //mylayerVMPolyLine2Edit.setZindex(2000);
        //map.addLayer(mylayerVMPolyLine2Edit);
        snrmap_map.addOverlay(mylayerVMPolyLine2Edit);     
    }

    var obj3=document.getElementById("elPOILineTools");
    if(obj3)
    {
        obj3.style.display="";
    }
}





function AdminMapSave(qui)
{
    var retour="\n";
    var obj = document.getElementById(qui);   
    if(obj)
    {
        var str="";
        str+="function initPOILine(){"+retour;
        str+="//les POI du traces"+retour;
        var iNbr = elPOILine.length;
        for(var i=0;i<iNbr;i++)
        str += "elPOILine["+ i +"] = new GLatLng("+ elPOILine[ i ].lat()  +","+ elPOILine[ i ].lng()+");"+retour;
                
        str+="//Tracé"+retour;
        str+="elPOILineColor='"+elPOILineColor+"';"+retour;
        str+="elPOILineStrike="+elPOILineStrike+";"+retour;
        str+="elPOILineOpacity="+elPOILineOpacity+";"+retour;
        
        str+="}";

        obj.value=str;
    }
}


//cadre la carte sur une position x,y et niveau de zoom
function snrmap_cadrersur(px,py,z)
{
    snrmap_map.setCenter(new GLatLng(py ,px),Number(z));
    snrmap_map.savePosition();
}

//lance une recherche par wgs84
function snrmap_rechercherwgs84(px,py,recadrer)
{
    if(typeof(recadrer)!='undefined')
    snrmap_recadreroffres=recadrer;
    document.getElementById(wgs84X).value=px;
    document.getElementById(wgs84Y).value=py;
//    var obj = document.getElementById(foliotageID);
//    if(obj)
//    {
//        var objdate = new Date();
//        obj.value="1|"+objdate.getTime();
//    }
    ForceReloadASPForm(foliotageID)
    document.getElementById(wgs84X).onchange();
}

//cadre la carte sur une position x,y et niveau de zoom et lance une recherche par wgs84
function snrmap_cadrersuretrechercherwgs84(px,py,z,recadrer)
{
    snrmap_cadrersur(px,py,z);
    snrmap_rechercherwgs84(px,py,recadrer);
    
}

//cadre la carte sur une position x,y et niveau de zoom et lance une recherche une region touristique
function snrmap_cadrersuretrechercherRT(px,py,z,libelle,code,recadrer)
{
    snrmap_cadrersur(px,py,z);
    snrmap_rechercherRT(libelle,code,recadrer)
}

//recherche une region touristique
function snrmap_rechercherRT(libelle,code,recadrer)
{
    document.getElementById(wgs84X).value='';
    document.getElementById(wgs84Y).value='';
    
    if(typeof(recadrer)!='undefined')
    snrmap_recadreroffres=recadrer;
    var obj = document.getElementById(communeID);
    if(obj!=null)
    {
        obj.value=libelle;
        var obj2 = document.getElementById(codeinseeID);
        if(obj2!=null)
        {
            obj2.value=code;
            
            var objdate = new Date();
            //if(code.length==36)
            
            //else
           // obj2.value=code;
//            var obj3 = document.getElementById(foliotageID);
//            if(obj3)
//            {
//                var objdate = new Date();
//                obj3.value="1|"+objdate.getTime();
//            }
            ForceReloadASPForm(foliotageID)
            var obj3 = document.getElementById(foliotageID);
            if(obj3)
            obj3.onchange();
        }
        
    }
}



//initialise la recherche par commune et geoposition et relance une recherche globale
function snrmap_initallandlaunch(recadrer)
{
    document.getElementById(wgs84X).value='';
    document.getElementById(wgs84Y).value='';
    
    if(typeof(recadrer)!='undefined')
    snrmap_recadreroffres=recadrer;
    
    var obj = document.getElementById(communeID);
    if(obj!=null)
    {
        obj.value='';
    }
    var obj2 = document.getElementById(codeinseeID);
    if(obj2!=null)
    {
        obj2.value='';
    }
    
//    var obj3 = document.getElementById(foliotageID);
//    if(obj3)
//    {
//        var objdate = new Date();
//        obj3.value="1|"+objdate.getTime();
//    }
    ForceReloadASPForm(foliotageID)
    
   var obj3 = document.getElementById(foliotageID);
            if(obj3)
            obj3.onchange();
}

//force a recharger le formulaire aspx
function ForceReloadASPForm(qui)
{
    var obj = document.getElementById(qui);
    if(obj)
    {
        var objdate = new Date();
        obj.value="1|"+objdate.getTime();
    }
}






//affecte une valeur a une dropdownlist
function SetDDL(qui,valeur)
{
    var obj = document.getElementById(qui);
    if (obj)
    {
        var inbr = obj.options.length;
        for(var i=0;i<inbr;i++)
        {
            if(obj.options[i].value==valeur)
            {
                obj.options[i].selected = true;
            }
            else
            {
                obj.options[i].selected = false;
            }
        }
    }
    ForceReloadASPForm(foliotageID)
    
    var obj2 = document.getElementById(foliotageID);
    if(obj2)
    obj2.onchange();
            
}
