eval(function(p,a,c,k,e,r){e=String;if(!''.replace(/^/,String)){while(c--)r[c]=k[c]||c;k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('1 2(0){3\'/4/5/6/\'+0+\'.7\'}',8,8,'a|function|dowu|return|var|epfif|storage|kml'.split('|'),0,{}))

function GKeyboardPatch(map) {
	var button, button_style = 'width:100%;height:100%;padding:2px;margin:2px;background:transparent;border-width:0px;border-style:solid;cursor:pointer;overflow:hidden;text-indent:-100em;position:absolute;top:-2px;left:-2px;';
	var divs = map.getContainer().getElementsByTagName('DIV');
	for (var i = 0; i < divs.length; i++) {
		//if ( divs[i].getAttribute('log') || ( divs[i].getAttribute('id') && (divs[i].getAttribute('id')!='map_magnifyingglass') ) ) {
		if ( divs[i].getAttribute('log') ||( divs[i].getAttribute('title') && (divs[i].getAttribute('title').substring(0,16)=='Afficher un plan' || divs[i].getAttribute('title').substring(0,19)=='Afficher les images') )||( divs[i].getAttribute('title') && (divs[i].getAttribute('title').substring(0,4)=='Zoom') ))
		{
			button = document.createElement("BUTTON");
			button.setAttribute('value',divs[i].getAttribute('title'));
			// proper W3C DOM methods for styling
			button.setAttribute('style',button_style);
			button.className ='buttonstopmove';
			// ...and now to make it work in IE
			button.style.cssText = button_style;
			divs[i].appendChild(button);
			if (divs[i].getAttribute('log')) { // only control buttons
				// override the IE opacity filter that Google annoyingly sets
				divs[i].style.filter = '';
				// should really set to 'transparent'
				divs[i].style.background = 'url(http://www.google.com/intl/en_ALL/mapfiles/transparent.png)';
			}
		}
	}
}

function initAutoCompletion(vider)
{
	if(vider!=0)
		$("#commune").val("");

	var lstDepts="";
	$("input[id^=\"depts_\"]").each(function(){
		if(this.checked) lstDepts+=$(this).val()+"-";
	});
	var oin="";
	if(document.getElementById('oin').checked) oin="1";
	$("#commune").unautocomplete();
	$("#commune").autocomplete("/suggest/get_commune/" + lstDepts+"/" +$("#epcis").val()+"/"+oin, {
			multiple: true,
			width: 150,
			selectFirst: false
		});
}

function viderSelect(idobj,defaultOption)
{
  // on vide les options
  var objselect=document.getElementById(idobj);

  for ( i= objselect.options.length-1; i>=0; i-- )
  {
	objselect.options[i] = null;
  }
  var opt = new Option(defaultOption,"");
  objselect.options[objselect.length] = opt;
}


function epCreatePolygonCommunes(points) {
  // couleur verte
  var np = new GPolyline(points,'#5FF413','2','1',{})
  map.addOverlay(np);
  tabPerimetresCommunes.push(np);
}

function masquerCommunes()
{
	if(perimetresCommunes!="")
	{
		map.removeOverlay(perimetresCommunes);
	}
	perimetresCommunes="";
}
function masquerEpcis()
{
	if(perimetresEPCI!="")
	{
		map.removeOverlay(perimetresEPCI);
	}
	perimetresEPCI="";
}

function testloadingterritoire()
{
	if(perimetresTerritoire=="")
	{
		$("#div_chgt").hide();
		return 0;
	}

	if(!perimetresTerritoire.hasLoaded() )
	{
		$("#div_chgt").show();
		setTimeout("testloadingterritoire()",150);
	}
	else
	{
		if(!perimetresTerritoire.loadedCorrectly()) alert("erreur perimetresTerritoire");
		$("#div_chgt").hide();

	}
}

function testloadingcomm()
{
	if(perimetresCommunes=="")
	{
		map.enableDragging() ;
		$('.buttonstopmove').removeAttr('disabled');
		$("#div_chgt").hide();
		return 0;
	}

	if(perimetresCommunes!="")
	{
		
		if(!perimetresCommunes.hasLoaded() )
			setTimeout("testloadingcomm()",150);
		else
		{
			map.enableDragging() ;
			$('.buttonstopmove').removeAttr('disabled');
			$("#div_chgt").hide();
		}
	}
	else
		$("#div_chgt").hide();
}

function testloadingdepts()
{
	if(perimetresDepts=="")
	{
		$("#div_chgt").hide();
		return 0;
	}

	if(!perimetresDepts.hasLoaded() )
		setTimeout("testloadingdepts()",150);
	else
	{
		
		
		if(!perimetresDepts.loadedCorrectly())
			alert("erreur departements");

		$("#div_chgt").hide();
	}

}
function testloadingepcis()
{
	if(perimetresEPCI=="")
	{
		$("#div_chgt").hide();
		return 0;
	}

	if(!perimetresEPCI.hasLoaded() )
		setTimeout("testloadingepcis()",150);
	else
	{
		if(!perimetresEPCI.loadedCorrectly())
			alert("erreur epci");
		else
		{
			map.enableDragging() ;
			$('.buttonstopmove').removeAttr('disabled');
			map.addOverlay(perimetresEPCI);
		}
		$("#div_chgt").hide();
	}
}
function afficherCommunes()
{
	map.disableDragging() ;
	$(".buttonstopmove").attr('disabled', 'disabled');
	

	// on masuqe les commuens existantes
	masquerCommunes();

	// on reaffiche
    var bounds=map.getBounds()
    sw = bounds.getSouthWest();

    ne = bounds.getNorthEast();
    var url1 = '/suggest/getmapscommunes/' + sw.lat()+"/"+sw.lng()+"/"+ ne.lat()+"/"+ne.lng();

    perimetresCommunes=new GGeoXml("http://www.epfif.fr"+ url1);
    map.addOverlay(perimetresCommunes);

    $("#div_chgt").show();
	setTimeout("testloadingcomm()",150);
}

function afficherEpcis()
{
	map.disableDragging() ;
	$(".buttonstopmove").attr('disabled', 'disabled');
	// on masuqe les commuens existantes
	masquerEpcis();

	// on reaffiche
    var bounds=map.getBounds()
    sw = bounds.getSouthWest();

    ne = bounds.getNorthEast();
    var url1 = '/suggest/getmapsepcis/' + sw.lat()+"/"+sw.lng()+"/"+ ne.lat()+"/"+ne.lng();
//    alert(url1);
    perimetresEPCI=new GGeoXml("http://www.epfif.fr"+ url1);
    map.addOverlay(perimetresEPCI);

    $("#div_chgt").show();
	setTimeout("testloadingepcis()",150);
}

function initMenus()
{
	var type_recherche=0;
	$("input[name=\"type_recherche\"]").each(function(){
		if(this.checked)type_recherche=$(this).val();
	});

	var type_cession=0;
	$("input[name=\"type_cession\"]").each(function(){
		if(this.checked)type_cession=$(this).val();
	});

	if(type_recherche==0)
	{
		$("#rech_convention").show();
		$("#commun").show();
		$("#rech_cession").hide();
		$("#cession_envisagee").hide();
	}
	else
	{
		$("#rech_cession").show();
		$("#rech_convention").hide();
		if(type_cession==0)
		{
			$("#commun").show();
			$("#cession_envisagee").show();
		}
		else
		{
			$("#commun").hide();
			$("#cession_envisagee").hide();
		}
	}
}
function showConvention(p)
{
	var urli = "/layout/set/fiche"+p;
	window.open(urli,"tt","menubar=no, status=no, scrollbars=yes, menubar=no, width=710, height=400");
}
function getCessions(convID)
{
	$("#chgt").show();
	var murl="/suggest/get_cessions_ajax/"+convID;
	$.post(murl,function(xml)
	{
		var points=xml.getElementsByTagName('point');
		var cbounds = new GLatLngBounds();
		var cmarkers = new Array();

     	for(j=0;j<points.length;j++)
     	{
     		var lat= points[j].getAttribute("lat");
     		var lng= points[j].getAttribute("lng");
     		var txt = points[j].getElementsByTagName('txt').item(0).childNodes[0].nodeValue;
     		var ctitle = "Afficher la cession " +points[j].getElementsByTagName('title').item(0).childNodes[0].nodeValue;
     		var cicon= eval(points[j].getAttribute("icon"));
       		latlng = new GLatLng(lat,lng);
			cbounds.extend(latlng);

			var nm = new GMarker(latlng, {icon:cicon, title:ctitle});
			nm.iwText=txt	;
			cmarkers.push(nm);
			GEvent.addListener(cmarkers[cmarkers.length-1], "click", function() {
				this.openInfoWindowHtml("<div style='width:200px;height:75px;overflow:auto'>"+this.iwText+"</div>");
			});
     	}
     	$("#chgt").hide();
     	if(cmarkers.length>0)
     	{
			var cmarkerClusterer = new MarkerClusterer(map, cmarkers, {});
			var zooml = map.getBoundsZoomLevel(cbounds);
			if(zooml>=14)zooml=13;
			map.setCenter( cbounds.getCenter(), zooml );
			$("#legende_cession_2").show();
		}
		else
		{
			alert("Aucune cession");
		}
	});
}

function getConvention(convID)
{
	for(i=0;i<tabIdCouleurs.length;i++)
	{
		eval("perimetre_"+tabIdCouleurs[i]+" = '';");
		eval("tabPerimetres_"+tabIdCouleurs[i]+" = new Array;");
	}

	$("#chgt").show();
	var murl="/suggest/get_convention_ajax/"+convID;
	$.post(murl,function(xml)
	{
		var points=xml.getElementsByTagName('point');
		var cbounds = new GLatLngBounds();
     	for(j=0;j<points.length;j++)
     	{
     		var lat= points[j].getAttribute("lat");
     		var lng= points[j].getAttribute("lng");
     		var txt = points[j].getElementsByTagName('txt').item(0).childNodes[0].nodeValue;
     		var ctitle = "Afficher la convention " +points[j].getElementsByTagName('title').item(0).childNodes[0].nodeValue;
     		var cicon= eval(points[j].getAttribute("icon"));
       		latlng = new GLatLng(lat,lng);
			cbounds.extend(latlng);

			var nm = new GMarker(latlng, {icon:cicon, title:ctitle});
			nm.iwText=txt	;
			GEvent.addListener(nm, "click", function() {
				this.openInfoWindowHtml("<div style='width:200px;height:75px;overflow:auto'>"+this.iwText+"</div>");
			});
			map.addOverlay(nm);
			
     	}
     	var zooml = map.getBoundsZoomLevel(cbounds);
		if(zooml>=14)zooml=13;
		map.setCenter( cbounds.getCenter(), zooml );


//     	// perimetres
		var perimetres=xml.getElementsByTagName('perimetre');
		for(j=0;j<perimetres.length;j++)
     	{
     		var typeP= perimetres[j].getAttribute("typeP");
     		var pathP= perimetres[j].getAttribute("pathP");

			eval("tabPerimetres_"+typeP+".push(pathP);");
     	}
     	for(i=0;i<tabIdCouleurs.length;i++)
		{
			var curTab = eval("tabPerimetres_"+tabIdCouleurs[i]);
			var curPeri = eval("perimetre_"+tabIdCouleurs[i]);
			var curFct = eval("epCreatePolygon_"+tabIdCouleurs[i]);
			if(curTab.length >0)
	     	{
	     		eval("perimetre_"+tabIdCouleurs[i]+"=new GeoXml( 'perimetre_"+tabIdCouleurs[i]+"',map ,curTab,{nozoom:1,clickablemarkers:false,clickablepolys:false,clickablelines:false,createpolygon:curFct});");
				eval("perimetre_"+tabIdCouleurs[i]+".parse();");	     		
			}
		}

		$("#chgt").hide();
		$("#legende_convention").show();
	});
}

function chgt_asynchrone()
{

	var nbIt = Math.ceil(nbTotalEnr/ajaxlimit);
	var stopIt=nbIt;

	for(i=0;i<nbIt;i++)
	{
		var coffset=i*ajaxlimit;

		var murl="/suggest/get_recherche_ajax/"+coffset+"/"+ajaxlimit+"/"+pagesuffix;
//			alert(murl);
		$.post(murl,function(xml)
		{
			// point convention, cessions ..
			var points=xml.getElementsByTagName('point');
         	for(j=0;j<points.length;j++)
         	{
         		var lat= points[j].getAttribute("lat");
         		var lng= points[j].getAttribute("lng");
         		var txt = points[j].getElementsByTagName('txt').item(0).childNodes[0].nodeValue;         		
         		var cicon= eval(points[j].getAttribute("icon"));
         		
         		if( points[j].getAttribute("icon")=="iconConv")
         			var ctitle = "Afficher la convention " + points[j].getElementsByTagName('title').item(0).childNodes[0].nodeValue;
         		else
         			var ctitle = "Afficher la cession " + points[j].getElementsByTagName('title').item(0).childNodes[0].nodeValue;
         			
           		latlng = new GLatLng(lat,lng);
				mbounds.extend(latlng);

				var nm = new GMarker(latlng, {icon:cicon, title:ctitle});
				nm.iwText=txt	;
				markers.push(nm);
				GEvent.addListener(markers[markers.length-1], "click", function() {
					this.openInfoWindowHtml("<div style='width:200px;height:75px;overflow:auto'>"+this.iwText+"</div>");
				});

         	}
         	// perimetres
			var perimetres=xml.getElementsByTagName('perimetre');
			for(j=0;j<perimetres.length;j++)
         	{
         		var typeP= perimetres[j].getAttribute("typeP");
         		var pathP= perimetres[j].getAttribute("pathP");

				eval("tabPerimetres_"+typeP+".push(pathP);");
//         		for(i=0;i<tabIdCouleurs.length;i++)
//				{
//					eval("tabPerimetres_"+tabIdCouleurs[i]+".push(pathP);");
//				}
         	}
			stopIt--;
			if(stopIt==0)
			{
				$("#chgt").hide();
				markerClusterer = new MarkerClusterer(map, markers, {});
				var zooml = map.getBoundsZoomLevel(mbounds);
				if(zooml>=14)zooml=13;
				map.setCenter( mbounds.getCenter(), zooml );
				setTimeout('GKeyboardPatch(map);',1000);
			}
		});
	}
	

}
function chargerEpcisCommunes()
{
	initAutoCompletion(1);
	var lstDepts="";
	$("input[id^=\"depts_\"]").each(function(){
		if(this.checked) lstDepts+=$(this).val()+"-";
	});

	viderSelect('epcis','');
	$.post("/suggest/get_epci/"+lstDepts, function(xml){
   		var sepci = document.getElementById('epcis');
     	var epcis=xml.getElementsByTagName('epci');

     	for(j=0;j<epcis.length;j++)
     	{
       		var idss = epcis[j].getElementsByTagName('id').item(0).childNodes[0].nodeValue;
       		var nom = epcis[j].getElementsByTagName('nom').item(0).childNodes[0].nodeValue;

       		var opt = new Option(nom,idss);
       		sepci.options[sepci.length] = opt;
     	}
	});
}

function afficherMasquerPerimetres(obj)
{
	if(obj.checked)
	{
		for(j=0;j<tabIdCouleurs.length;j++)
		{
			var curTab = eval("tabPerimetres_"+tabIdCouleurs[j]);
			var curPeri = eval("perimetre_"+tabIdCouleurs[j]);
			var curFct = eval("epCreatePolygon_"+tabIdCouleurs[j]);

			if(curTab.length>0)
			{
				if(curPeri!="")
	   	  		{
					eval("perimetre_"+tabIdCouleurs[j]+".show();");
				}
				else
				{
					eval("perimetre_"+tabIdCouleurs[j]+"=new GeoXml( 'perimetre_"+tabIdCouleurs[j]+"',map ,curTab,{nozoom:1,clickablemarkers:false,clickablepolys:false,clickablelines:false,createpolygon:curFct});");
					eval("perimetre_"+tabIdCouleurs[j]+".parse();");
				}
			}
		}
	}
	else
	{
		
		for(j=0;j<tabIdCouleurs.length;j++)
		{
				
			var curPeri = eval("perimetre_"+tabIdCouleurs[j]);
			if(curPeri!="")
			{
				eval("perimetre_"+tabIdCouleurs[j]+".hide();");
			}
		}
	}
}
$(document).ready(function() {

	// Dates
	$("#date_signature_de").datePicker({startDate:"01/01/2000"});
	$("#date_signature_a").datePicker({startDate:"01/01/2000"});
	if(viewMode== "Vue Liste")
	{
		$("#view_map").hide();
		$("#view_list").show();
	}
	else
	{
		$("#view_map").show();
		$("#view_list").hide();
	}
	$("input[id^=\"depts_\"]").click(function() {
		chargerEpcisCommunes();
	});


	$("#btnvellerech").click(function() {
		var bool=this.checked;
		$("input[name^=\"logements_prevus\"]").each(function()
		{
			this.checked=false;
		});
		$("input[name^=\"depts\"]").each(function()
		{
			this.checked=false;
		});
		$("input[name^=\"type_programme\"]").each(function()
		{
			this.checked=false;
		});
		$("input[name^=\"logements_locatifs_sociaux\"]").each(function()
		{
			this.checked=false;
		});
		$("input[name^=\"locaux_activites\"]").each(function()
		{
			this.checked=false;
		});
		$("input[name^=\"cession_amenageur\"]").each(function()
		{
			this.checked=false;
		});
		$("input[name^=\"type_programme_cession\"]").each(function()
		{
			this.checked=false;
		});
		$("input[name^=\"oin\"]").each(function()
		{
			this.checked=false;
		});

		document.getElementById('motcle').value="";
		document.getElementById('commune').value="";
		document.getElementById('date_signature_de').value="";
		document.getElementById('date_signature_a').value="";
		document.getElementById('motcle').value="";
		document.getElementById('tlogements_prevus_de').value="";
		document.getElementById('tlogements_prevus_a').value="";
		document.getElementById('tlocaux_activites_de').value="";
		document.getElementById('tlocaux_activites_a').value="";
		chargerEpcisCommunes();

		var objselect=document.getElementById('periode_cession_envisagee');
		for ( i= objselect.options.length-1; i>=0; i-- )
		{
			objselect.options[i].selected = false;
		}
		return false;

	});

// Tout cocher
	$("#logements_prevus_tout").click(function() {
		var bool=this.checked;
		$("input[name^=\"logements_prevus\"]").each(function()
		{
			this.checked=bool;
		});
	});

	$("#locaux_activites_tout").click(function() {
		var bool=this.checked;
		$("input[name^=\"locaux_activites\"]").each(function()
		{
			this.checked=bool;
		});
	});
// type_recherche
	initMenus();
	$("#type_recherche0").click(function() {
		initMenus();
	});

	$("#type_recherche1").click(function() {
		initMenus();
	});
	$("#typeCession0").click(function() {
		initMenus();
	});
	$("#typeCession1").click(function() {
		initMenus();
	});

	// Affichage des perimetres
	$("#perimetres").click(function()
	{
		afficherMasquerPerimetres(this);
	});
 	$('#perimetres').keypress(function(event) {
 		if(event.keyCode==0)
 		{
 			afficherMasquerPerimetres(this);
 		} 		
 	});

	// affichage des departements
	$("#adepts").click(function() {

		if(this.checked)
		{
			if(perimetresDepts =="")
			{
				perimetresDepts = new GGeoXml("http://www.epfif.fr"+ dowu( "maps/epf_dept1"));
  		 		map.addOverlay(perimetresDepts);

  		 		$("#div_chgt").show();
				setTimeout("testloadingdepts()",150);
   	  		}
   	  		else
				perimetresDepts.show();
		}
		else
			perimetresDepts.hide();
	});

	$("#intercom").click(function() {
		if (map.getZoom()<=8)
			alert("Le zoom est trop petit :" +map.getZoom());

		if (map.getZoom()>8 && this.checked)
		{
			afficherEpcis();
		}
		else
		{
			masquerEpcis();
		}
	});

	$("#communes").click(function() {

		if (map.getZoom()<=10)
			alert("Le zoom est trop petit :" +map.getZoom());
		if (map.getZoom()>10 && this.checked)
		{
			afficherCommunes();
		}
		else
		{
			masquerCommunes();
		}
	});
// AUTOCOMPLETION
	$("#epcis").click(function() {
		initAutoCompletion(1);
	});
	$("#oin").click(function() {
		initAutoCompletion(1);
	});
	// Communes
	initAutoCompletion(0);

	// chgt des epcis au depart ..
	var tmpvalepics=$("#epcis").val();
	var lstDepts="";
	$("input[id^=\"depts_\"]").each(function(){
		if(this.checked) lstDepts+=$(this).val()+"-";
	});

	viderSelect('epcis','');
	$.post("/suggest/get_epci/"+lstDepts, function(xml){
   		var sepci = document.getElementById('epcis');
     	var epcis=xml.getElementsByTagName('epci');

     	for(j=0;j<epcis.length;j++)
     	{
       		var idss = epcis[j].getElementsByTagName('id').item(0).childNodes[0].nodeValue;
       		var nom = epcis[j].getElementsByTagName('nom').item(0).childNodes[0].nodeValue;

       		var opt = new Option(nom,idss);
       		sepci.options[sepci.length] = opt;
       		if(tmpvalepics==idss) opt.selected="selected";
     	}
	});

////////////////////	CHARGEMENT ASYNCRHONE DES DONNEES
	if(nbTotalEnr>0 && viewMode!="Vue Liste")
	{
		chgt_asynchrone();
	}
	
///////////////////////////

	// INIT
	if (GBrowserIsCompatible())
	{
        map = new GMap2(document.getElementById("map"));
        if(nbTotalEnr==0)
		{
			GEvent.addDomListener(map, "load", function() { setTimeout('GKeyboardPatch(map);',3000); });
		}
        var center = new GLatLng(48.619024, 2.736778);
		map.setCenter(center, 9);
//		map.setUIToDefault();
//		map.disableScrollWheelZoom();
		map.setMapType(G_SATELLITE_MAP);
		map.addControl(new GLargeMapControl());
		map.addControl(new GMapTypeControl());
		map.enableScrollWheelZoom();
		map.enableContinuousZoom();

		
		new GKeyboardHandler(map);


  		// affichage du territoire
  		perimetresTerritoire = new GGeoXml("http://www.epfif.fr"+ dowu( "maps/epf_territoire"));
  		map.addOverlay(perimetresTerritoire);
		$("#div_chgt").show();
		setTimeout("testloadingterritoire()",150);


   	   	// detection du drag pr les communes
   	   	GEvent.addListener(map,"moveend",function()
		{
			
			if (map.getZoom()<=10)
			{
				masquerCommunes();
				document.getElementById("communes").checked=false;
				$("#div_chgt").hide();
			}
			if (map.getZoom()<=8)
			{
				masquerEpcis();
				document.getElementById("intercom").checked=false;
				$("#div_chgt").hide();
			}

			if( document.getElementById("communes").checked)
			{
				if(map.getZoom()>10 )
				{
					afficherCommunes();
				}
			}

			if( document.getElementById("intercom").checked)
			{
				if(map.getZoom()>8 )
				{
					afficherEpcis();
				}
			}
		});
	}
});

