google.load('search', '1');

var lesMap=new Array();
var RechercheOpen=0;
var widthAvImpression="";

var IconeMaison = new GIcon(G_DEFAULT_ICON);
IconeMaison.image = "http://maps.google.com/mapfiles/kml/pal3/icon31.png";
IconeMaison.iconSize = new GSize(40, 40);
var markerOptionsMaison = { icon:IconeMaison };

window.stopOverflow=function(){
	document.body.style.overflow="hidden";
	if(Prototype.Browser.IE==true){
		$$('html')[0].style.overflowY='hidden';
	}
}

window.fireOverflow=function(){
	document.body.style.overflow="scroll";
	if(Prototype.Browser.IE==true){
		$$('html')[0].style.overflowY='scroll';
	}
}

function OpenContentMenu(){
	if (typeof(arguments[0])=='object'){
		chid=(Event.element(arguments[0])).id;
		reg=new RegExp('img2Menu','g');
		id=chid.replace(reg,'');
	}else{
		id=arguments[0];
	}
	$('img1Menu'+id).style.display='inline';
	$('img2Menu'+id).style.display='none';
	//new Effect.toggle('contentMenu'+id,'slide');
	new Effect.SlideDown('divContentMenu'+id);
	RechercheOpen=1;
}

function CloseContentMenu(id){
	if (typeof(arguments[0])=='object'){
		chid=(Event.element(arguments[0])).id;
		reg=new RegExp('img1Menu','g');
		if (Event.element(arguments[0]).id.substring(0,7)=="reduire") { reg=new RegExp('reduireContentMenu','g');}
		id=chid.replace(reg,'');
	}else{
		id=arguments[0];
	}
	$('img1Menu'+id).style.display='none';
	$('img2Menu'+id).style.display='inline';
	//new Effect.toggle('contentMenu'+id,'slide');
	new Effect.SlideUp('divContentMenu'+id);
	RechercheOpen=0;
}

function closeGrandDivMap(idbien){
	window.fireOverflow();
	obj=Event.element(arguments[0]);
	reg=new RegExp('imgCloseGd','g');
	id=obj.id.replace(reg,'');
	//$('annonce'+id).addClassName('annonceimpression');
	$("GdMap"+id).style.display='none';
}

function MarkerLocalSearch(sc,localSearch){
	if(RechercheOpen==0){
		OpenContentMenu(id);
	}
	map=lesMap["gdcarte"+sc.id];
	map.clearOverlays();
	lat=$('lat'+id).value;
	long=$('long'+id).value;
	for(i=0;i<localSearch.results.length;i++){
		result=localSearch.results[i];
		var point = new GLatLng(result.lat,result.lng);
		var Icone = new GIcon(G_DEFAULT_ICON);
		Icone.image = "http://maps.google.com/mapfiles/kml/pal3/icon"+i+".png";
		Icone.iconSize = new GSize(25, 25);
		markerOptions = { icon:Icone };
		var mark=new GMarker(point,markerOptions);
		map.addOverlay(mark);
	}
	rep=$$('#contentMenu'+id+' div.gsc-localResult div.gs-title a');
	for(i=0;i<rep.length;i++){
		rep[i].innerHTML='<img border=0 height="15" width="15" src="http://maps.google.com/mapfiles/kml/pal3/icon'+i+'.png"> '+rep[i].innerHTML;
	}
	map.addOverlay(new GMarker(new GLatLng(parseFloat(lat),parseFloat(long))));
}


function openGrandDivMap(){
	chid=(Event.element(arguments[0])).id;
	reg=new RegExp('LinkPleinEcran','g');
	id=chid.replace(reg,'');
	//$('annonce'+id).removeClassName('annonceimpression');
	$('gogolmap'+id).style.display='none';
	lat=$('lat'+id).value;
	long=$('long'+id).value;
	
	var mydrag = new Draggable('menuCarte'+id);
	$('bandeau_menu_01').display='none';
	
	dim=document.viewport.getDimensions();
	longueur=dim.width-(2*19)-10;
	hauteur=dim.height-(2*19)-10;
	positionViewport=document.viewport.getScrollOffsets();
	$("GdMap"+id).style.top=(positionViewport.top+5)+"px";
	$("GdMap"+id).style.left='10px';
	
	$("gdcarte"+id).style.width=(longueur-10)+"px";
	$("gdcarte"+id).style.height=(hauteur-10)+"px";
	
	$("GdMap"+id).style.display='block';
	window.stopOverflow();
	
	point2 = new GLatLng(parseFloat(lat),parseFloat(long));
	var map = new GMap2(document.getElementById("gdcarte"+id));
	map.setCenter(point2, 15);
	$('cellGdDiv1'+id).style.width=longueur+"px";
	$('cellGdDiv3'+id).style.height=hauteur+"px";
	map.addMapType(G_PHYSICAL_MAP);
	map.addControl(new GLargeMapControl());
	map.addControl(new GHierarchicalMapTypeControl());
	map.addControl(new GOverviewMapControl());
	lesMap["gdcarte"+id]=map;
	m=new GMarker(point);
	map.addOverlay(m);
	
	var searchControl = new google.search.SearchControl(null);
	searchControl.id=id;
	var opts = new google.search.SearcherOptions();
    opts.setExpandMode(google.search.SearchControl.EXPAND_MODE_OPEN);
	var options = new google.search.DrawOptions();
	options.setSearchFormRoot(document.getElementById("searchForm"+id));
	var localSearch=new google.search.LocalSearch()
	searchControl.addSearcher(localSearch,opts);
	searchControl.setNoResultsString('<div align="center"><b>Pas de réponses<b></div><div><br>Reformulez votre demande. Ainsi, <code>"école"</code> peut ne pas fournir de réponse alors que <code>"école maternelle"</code> en fournira.<br><br> De même <code>"école élémentaire"</code> peut fournir des résultats plus pertinants que <code>"école primaire"</code>.</div>');
	searchControl.setSearchCompleteCallback(this,MarkerLocalSearch);
	localSearch.setCenterPoint(map.getCenter());
	//options.setRoot(document.getElementById("contentMenu"+id));
	searchControl.draw(document.getElementById("contentMenu"+id), options);
	//searchControl.draw(document.getElementById('contentMenu'+id));


}

function closeDivMapBien(idbien){
	$("gogolmap"+idbien).style.display='none';
	
}

function onMapLoad(id){
	nb=$("gogolmap"+id).childElements();
	tabDiv=nb[1].childElements();
	tabDiv[2].style.display='none';
}

function openDivMapBien(idbien,Glat,Glong){
	$("gogolmap"+idbien).style.display='block';
	if(lesMap["carte"+idbien]==null){
		idDiv="gogolmap"+idbien;
		pos=$("btGogolMap"+idbien).cumulativeOffset();
		$(idDiv).style.top=(pos.top-280)+"px";
		$(idDiv).style.left=(pos.left-200)+"px";
		point = new GLatLng(Glat, Glong);
		point2 = new GLatLng(parseFloat(Glat),parseFloat(Glong));
		var map = new GMap2(document.getElementById("carte"+idbien));
		GEvent.addListener(map, "load", function() { 
				onMapLoad(idbien);
			});
		map.setCenter(point2, 15);
		lesMap["carte"+idbien]=map;
		m=new GMarker(point);
		var sdiv=$(idDiv).style;
		map.addOverlay(m,markerOptionsMaison);
	}
}

function closePetiteFenetre(){
	obj=Event.element(arguments[0]);
	div=obj.parentNode.parentNode;
	div.style.display='none';
}

function onClickGogolLink(){
	chid=(Event.element(arguments[0])).id;
	reg=new RegExp('lienGogol','g');
	id=chid.replace(reg,'');
	lat=$('lat'+id).value;
	long=$('long'+id).value;
	openDivMapBien(id,lat,long);
}

function Imprimer(){
	chid=(Event.element(arguments[0])).id;
	reg=new RegExp('imprimerGdCarte','g');
	id=chid.replace(reg,'');
	map=lesMap["gdcarte"+id];
	widthAvImpression=$('gdcarte'+id).style.width;
	$('gdcarte'+id).style.width='600px';
	map.checkResize();
	lat=$('lat'+id).value;
	long=$('long'+id).value;
	point2 = new GLatLng(parseFloat(lat),parseFloat(long));
	map.setCenter(point2, 15);
	$('masqueImpression'+id).style.top=document.viewport.getScrollOffsets().top+"px";
	$('masqueImpression'+id).style.display='block';
}

function finImpression(){
	chid=(Event.element(arguments[0])).id;
	reg=new RegExp('btFinImpression','g');
	id=chid.replace(reg,'');
	dim=document.viewport.getDimensions();
	$('gdcarte'+id).style.width=widthAvImpression;
	map=lesMap["gdcarte"+id];
	map.checkResize();
	$('masqueImpression'+id).style.display='none';
}

function onLoadGogolMap(){
	var tab=$$('.GogolHidden');
	for(var i=0;i<tab.length;i++){
		Event.observe('lienGogol'+tab[i].value,'click',this.onClickGogolLink.bind($('lienGogol'+tab[i].value)));
		Event.observe('imgClose'+tab[i].value,'click',this.closePetiteFenetre.bind($('imgClose'+tab[i].value)));
		Event.observe('LinkPleinEcran'+tab[i].value,'click',this.openGrandDivMap.bind($('LinkPleinEcran'+tab[i].value)));
		Event.observe('imgCloseGd'+tab[i].value,'click',this.closeGrandDivMap.bind($('imgCloseGd'+tab[i].value)));
		Event.observe('img1Menu'+tab[i].value,'click',this.CloseContentMenu.bind($('img1Menu'+tab[i].value)));
		Event.observe('img2Menu'+tab[i].value,'click',this.OpenContentMenu.bind($('img2Menu'+tab[i].value)));
		Event.observe('reduireContentMenu'+tab[i].value,'click',this.CloseContentMenu.bind($('reduireContentMenu'+tab[i].value)));
		//Event.observe('imprimerGdCarte'+tab[i].value,'click',this.Imprimer.bind($('imprimerGdCarte'+tab[i].value)));
		//Event.observe('btFinImpression'+tab[i].value,'click',this.finImpression.bind($('btFinImpression'+tab[i].value)));
	}
}
Event.observe(window,'load',onLoadGogolMap);

