function getMap()
{if (navigator.appName == "Netscape")
	return document.map;
else
	return map;}
	
function resize(){
	var h=screen.height;
	getMap().height=h-375;
}

function affiche_detail_obj(){
	var map = getMap();
	if (map.getSelection().getNumObjects() == 0)
    	{
        alert ("Veuillez selectionner au moins un objet a interroger!");
        return;
    }
	var sel = map.getSelection();
    var objs = sel.getMapObjectsEx(null);
    var cntObjects = objs.size();
	var var_superficie=0;
	var var_longueur=0;
	var var_nb_obj_lineaire=0;
	var var_nb_obj_surfacique=0;
    for (i=0;i<cntObjects;i++){
		var obj_sel=objs.item(i);
		if (obj_sel.getType()=='Polygon'){
			var_superficie+=Math.round(obj_sel.getArea());
			var_nb_obj_surfacique++;
			}
		if (obj_sel.getType()=='Polyline'){
		var_longueur+=Math.round(obj_sel.getLength());
		var_nb_obj_lineaire++;
		}
	}
	alert(var_nb_obj_lineaire + ' objet(s) lineaire(s) pour une longueur cumulee de  ' + var_longueur + ' m.\n' + var_nb_obj_surfacique + ' objet(s) surfacique(s) pour une superficie cumulee de  ' + var_superficie + ' m2.')
	
}

function resize_vertical(){
	
	var w=screen.width;
	getMap().width=w-60;
	onglet_agrandir.width=0;
	var h=screen.height;
	getMap().height=h-360;
	
}
	
function onDoubleClickObject(mapobject){
	var mymap=getMap();
	var selected=mymap.getSelection().getMapObjectsEx(null);
	if (selected.size()>0){
		
		if ((selected.item(0).getMapLayer().getName()=="parcelle")){
				window.open("detail_parcelle_public.asp?zone_parc_id=" + selected.item(0).getKey(),"Parcelle","fullscreen=no,toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=no,top=10,left=10,width=510,height=530");
				return;}
		if ((selected.item(0).getMapLayer().getName()=="parcelle_ccogrm")){
				window.open("detail_parcelle_public.asp?zone_parc_id=" + selected.item(0).getKey(),"Parcelle","fullscreen=no,toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=no,top=10,left=10,width=510,height=530");
				return;}
		if ((selected.item(0).getMapLayer().getName()=="parcelle_cg14")){
				window.open("detail_parcelle_public.asp?zone_parc_id=" + selected.item(0).getKey(),"Parcelle","fullscreen=no,toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=no,top=10,left=10,width=510,height=530");
				return;}
		if ((selected.item(0).getMapLayer().getName()=="parcelle_cgrnum")){
				window.open("detail_parcelle_public.asp?zone_parc_id=" + selected.item(0).getKey(),"Parcelle","fullscreen=no,toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=no,top=10,left=10,width=510,height=530");
				return;}
		
			
	}
}

var echelle_en_court=0;
var tableau_echelle=new Array(8);
var tableau_image_echelle=new Array(8);
tableau_echelle[0]=0;
tableau_image_echelle[0]="../images/zoom_1_orange.gif";
tableau_image_echelle[1]="../images/zoom_5_orange.gif";
tableau_image_echelle[2]="../images/zoom_10_orange.gif";
tableau_image_echelle[3]="../images/zoom_25_orange.gif";
tableau_image_echelle[4]="../images/zoom_50_orange.gif";
tableau_image_echelle[5]="../images/zoom_100_orange.gif";
tableau_image_echelle[6]="../images/zoom_250_orange.gif";
tableau_image_echelle[7]="../images/zoom_500_orange.gif";
var couche_selection='';
var objet_selection='';

function gestion_zoom(echelle){
	if(echelle<=3){
		image0zoom.src="../images/zoom_1_bleu.gif";
		image1zoom.src="../images/zoom_5_bleu.gif";
		image2zoom.src="../images/zoom_10_bleu.gif";
		image3zoom.src="../images/zoom_25_bleu.gif";
		image0zoom.alt="x1";
		image1zoom.alt="x5";
		image2zoom.alt="x10";
		image3zoom.alt="x25";
		}
	else{
		image0zoom.src="../images/zoom_50_bleu.gif";
		image1zoom.src="../images/zoom_100_bleu.gif";
		image2zoom.src="../images/zoom_250_bleu.gif";
		image3zoom.src="../images/zoom_500_bleu.gif";
		image0zoom.alt="x50";
		image1zoom.alt="x100";
		image2zoom.alt="x250";
		image3zoom.alt="x500";
		}
	isIE = (document.all);
	isNN6 = (!isIE) && (document.getElementById);
	if (isIE) image = document.all['image'+echelle%4+'zoom'];
	if (isNN6) image = document.getElementById('image'+echelle%4+'zoom');
	image.src=tableau_image_echelle[echelle];
}

function zoom(direction){
	var map=getMap();
	if (!map.isBusy()){						
		if ((direction=='plus') || (direction=='moins')){
			var largeur=map.getWidth("M");
			if (!map.isBusy()){
				if ((direction=='plus')){
					if (echelle_en_court<7){
						echelle_en_court=echelle_en_court+1;
						//nous n'avons plus besoin de la fonction gestion zoom ici, elle est
						//appelé apres par l'evenement onviewchange
						//gestion_zoom(echelle_en_court);
						map.setScale(tableau_echelle[echelle_en_court]);
						}
					}
				else
					if ((direction=='moins')){
					if (echelle_en_court>0){
						echelle_en_court=echelle_en_court-1;
						//gestion_zoom(echelle_en_court);
						map.setScale(tableau_echelle[echelle_en_court]);
						}
					}
				}
		}
		else
			if (!map.isBusy())
				map.setScale(direction);
	}
	else
		alert("Veuillez attendre la fin du chargement de la carte, merci.");
			
}

function zoom_light(direction){
	var map=getMap();
	if (!map.isBusy()){						
		if ((direction=='plus') || (direction=='moins')){
			var calque;
			var largeur=map.getWidth("M");
			if (!map.isBusy()){
				if ((direction=='plus'))
						map.setScale(map.getScale()/1.5);
				else
					if ((direction=='moins'))
						map.setScale(map.getScale()*1.5);
				}
		}
		else
			if (!map.isBusy())
				map.setScale(direction);
	}
	else
		alert("Veuillez attendre la fin du chargement de la carte, merci.");
			
}

function Pan(direction)
{
	var map = getMap();
	if (!map.isBusy()){
		map.setAutoRefresh(false);
		var delta;
		delta = map.getWidth("M")/5;
		var xyPt = map.lonLatToMcs(map.getLon(), map.getLat());
		var MCStoMeters = map.getMCSScaleFactor();
		delta = delta / MCStoMeters;
		if (direction == 'Left') xyPt.setX(xyPt.getX() - delta);
		if (direction == 'Right') xyPt.setX(xyPt.getX() + delta);
		if (direction == 'Up') xyPt.setY(xyPt.getY() + delta);
		if (direction == 'Down') xyPt.setY(xyPt.getY() - delta);
		myScale = map.getScale();
		xyPt=map.mcsToLonLat(xyPt.getX(),xyPt.getY());
		map.zoomScale(xyPt.getY(), xyPt.getX(), myScale);
		map.setAutoRefresh(true);
		map.refresh();
		}
	else
		alert("Veuillez attendre la fin du chargement de la carte, merci.");
}
	
function impression(){
	var map=getMap();
	a=getMap().pageSetupDlg();
	map.enablePrintingEvents();
	if (navigator.appName == "Netscape")
		map.setPrintingObserver(obs);
	map.printDlg();
}

function onBeginLayout(pgSetup, info){
	pgSetup.setInclude("mg_url",false);
	//pgSetup.setInclude("mg_legend",true)
}

function onEndLayout(layout, info){
	var a=info.getPageExtent().getMaxY();
	var sym=layout.addSymbol("logo_cg14");
	if (sym == null) 
		return;
	var ext=sym.getExtent();
	ext.set(0,a-300,300,a);
	sym.setExtent(ext);

	}
	
function onViewChanged(mapobject){
var echelle=mapobject.getScale();
	document.form_echelle.echelle.value="échelle : 1/" + echelle+ " e";
	if(tableau_echelle[0]==0){
		tableau_echelle[0]=echelle;
		tableau_echelle[1]=Math.floor(tableau_echelle[0]/5);
		tableau_echelle[2]=Math.floor(tableau_echelle[0]/10);
		tableau_echelle[3]=Math.floor(tableau_echelle[0]/25);
		tableau_echelle[4]=Math.floor(tableau_echelle[0]/50);
		tableau_echelle[5]=Math.floor(tableau_echelle[0]/100);
		tableau_echelle[6]=Math.floor(tableau_echelle[0]/250);
		tableau_echelle[7]=Math.floor(tableau_echelle[0]/500);
		}
	//cette instruction permet de modifier les images de zoom après un zoom
	if(echelle>=tableau_echelle[0])
		{echelle_en_court=0;
		
		}
	if((echelle<tableau_echelle[0])&&(echelle>=tableau_echelle[1]))
		{echelle_en_court=1;
		}
	if((echelle<tableau_echelle[1])&&(echelle>=tableau_echelle[2]))
		{echelle_en_court=2;
		}
	if((echelle<tableau_echelle[2])&&(echelle>=tableau_echelle[3]))
		{echelle_en_court=3;
		}
	if((echelle<tableau_echelle[3])&&(echelle>=tableau_echelle[4]))
		{echelle_en_court=4;
		}
	if((echelle<tableau_echelle[4])&&(echelle>=tableau_echelle[5]))
		{echelle_en_court=5;
		}
	if((echelle<tableau_echelle[5])&&(echelle>=tableau_echelle[6]))
		{echelle_en_court=6;
		}
	if(echelle<=tableau_echelle[7])
		{echelle_en_court=7;
		}
	gestion_zoom(echelle_en_court)
	//cette instruction est introduite en complément du recherche_objet
	//car recherche objet ne fonctionne que si les les objets ont été visualisés 1 fois
	if((couche_selection!='')&&(objet_selection!='')){
		var sel = mapobject.getSelection();
		sel.clear();
		var feature = mapobject.getMapLayer(couche_selection).getMapObject(objet_selection);
		if (feature!=null){
			sel.addObject(feature, false);
				
			map.zoomSelected();
			var a=map.getwidth("KM");
			//si l'objet est différent d'un ponctuel
			if(feature.getType()!='Point')
				map.setWidth(a*3/2, "KM");
			//sinon
			else
				map.setWidth(a+1, "KM");
			}
		else
			alert("Cet objet n'est pas encore numérisé ou la couche graphique n'est pas à jour!");
		couche_selection='';
		objet_selection='';
		}
	}
	
function setvisible(couche){
	var map=getMap();
	var layer=map.getMapLayer(couche);
	if (layer!=null){
		var setvisible=layer.isVisible();
		var a;
		if (setvisible){
			a=layer.setVisibility("false");
			}
		else{
			a=layer.setVisibility("true");
			}
		map.refresh();}
	else
		alert("Cette couche d'information n'est pas disponible.");
}	

function setvisiblegroup(couche){
	var map=getMap();
	var layer=map.getMapLayerGroup(couche);
	if (layer!=null){
		var setvisible=layer.isVisible();
		var a;
		if (setvisible){
			a=layer.setVisibility("false");
			}
		else{
			a=layer.setVisibility("true");
			}
		map.refresh();}
	else
		alert("Ce groupe d'information n'est pas disponible.");
}	

function recherche_objet(objet,valeur){
	var map = getMap();
	if (!map.isBusy()) {
	    var sel = map.getSelection();
    	// Get feature, using arguments passed down to function
		var couche= map.getMapLayer(objet);
		if (couche==null)
			alert("nous sommes désolés, cette couche d'information n'est pas disponible");
		else
		{
			//var couche_temp=createobject("mgcollection");
			//couche_temp.getMapObjects(couche);
			var feature = map.getMapLayer(objet).getMapObject(valeur);
			//la fonction getMapLayer(objet) ne fonctionne que si la couche a été chargé une fois dans le viewer
			//prendre zoomgotolocation ou zoomout le cas échéant
			if (feature==null){
				//on refait le test pour savoir si la couche a bien été chargée une fois
				map.setAutoRefresh(false);
				a=couche.setVisibility("true");
				a=getMap().zoomout();
				couche_selection=objet;
				objet_selection=valeur;
				map.setAutoRefresh(true);
				map.refresh();
				}	
			else
				{// Prevent busy state from happening when
				// zoomSelected() is called
				map.setAutoRefresh(false);
				// Clear existing selection (if any); then add feature to it
				sel.clear();
				sel.addObject(feature, false);
				
				// Zoom to feature, which is selected
				map.zoomSelected();
				var a=map.getwidth("KM");
				//si l'objet est différent d'un ponctuel
				if(feature.getType()!='Point')
					map.setWidth(a*3/2, "KM");
				//sinon
				else
					map.setWidth(a+1, "KM");
				// Reset autoRefresh flag; then update display
				map.setAutoRefresh(true);
				map.refresh();
				}
			}
		}
		else
			alert("Veuillez attendre la fin du chargement de la carte,merci.");
	}
	
	function recherche_objet3(objet,valeur){
	var map = getMap();
	if (!map.isBusy()) {
    	map.zoomGotoLocation(objet,valeur,1000);
		map.refresh();}
	else
		alert("Veuillez attendre la fin du chargement de la carte,merci.");
}
	
function recherche_objet2(couche,valeur){
	if (couche=='parcelle'){
		masque_couche('canton');
		masque_couche('commune');}
	affiche_couche(couche);
	var map = getMap();
	map.setAutoRefresh(false);
	var sel = map.getSelection();
	var feature = map.getMapLayer(couche).getMapObject(valeur);
	sel.clear();
	sel.addObject(feature, true);
	map.zoomSelected();
	map.setAutoRefresh(true);
	
	map.refresh();
	}
	
function mesureDistance(){
	var myMap = getMap();
    	if (!myMap.isBusy()) {
		myMap.viewDistance("");
	} else {
		alert("Veuillez attendre, la carte n'est pas encore totalement chargée!");
	}
}

function clearSel()
{
    var map = getMap();
    var mapSel = map.getSelection();
    mapSel.clear();
}

function afficher_cadastre(){
	var map = getMap();
	if (!map.isBusy()) {
		alert("Pour des raisons de performance, les données du cadastre ne s'affichent qu'à partir du 1/15000e.");
		map.setScale(15000);
		setvisiblegroup("Cadastre");
	}
	
}

function afficher_masquer_legende(){
  isIE = (document.all) 
  isNN6 = (!isIE) && (document.getElementById)

  // Compatibilité : l'objet menu est détecté selon le navigateur
  if (isIE) bouton = document.all['bouton_image'];
  if (isNN6) bouton = document.getElementById('bouton_image');

	var a=getMap().LayersViewWidth;
	if(a==1){
		getMap().LayersViewWidth=200;
		bouton.src="../images/onglet_masquer_legende.gif";
		bouton.alt="Masquer la légende"
		}
	else{
		
		getMap().LayersViewWidth=1;
		bouton.src="../images/onglet_afficher_legende.gif"
		bouton.alt="Afficher la légende"
		}
}

function setvisible_ortho(nb_ortho){
	var map=getMap();
	if (!map.isBusy()){
		isIE = (document.all) ;
  		isNN6 = (!isIE) && (document.getElementById);

		// Compatibilité : l'objet menu est détecté selon le navigateur
		if (isIE) bouton = document.all['orthophoto'];
		if (isNN6) bouton = document.getElementById('orthophoto');
		if (nb_ortho=="tout"){
			var layer=map.getMapLayer("ortho1");
			if (layer!=null){
				var setvisible=layer.isVisible();
				var a;
				var i;
				var layer2;
				if (setvisible){
					a=layer.setVisibility("false");
					bouton.src="../images/onglet_photos_aeriennes.gif";
					bouton.alt="Afficher la photo aérienne [orthophotoplan]"
				
					for (i=2;i<32;i++){
						layer2=map.getMapLayer("ortho"+i);
						a=layer2.setVisibility("false");
						}
					}
				else{
					a=layer.setVisibility("true");
					bouton.src="../images/onglet_masquer_photos_aerie.gif";
					bouton.alt="Masquer la photo aérienne [orthophotoplan]"
					
					for (i=2;i<32;i++){
						layer2=map.getMapLayer("ortho"+i);
						a=layer2.setVisibility("true");
						}
					}
				map.refresh();
			}
		}
		else{
			var layer=map.getMapLayer("Orthophotoplan");
			if (layer!=null){
				var setvisible=layer.isVisible();
				var a;
				var layer2;
				if (setvisible)
					a=layer.setVisibility("false");
				else
					a=layer.setVisibility("true");
			
			}
			map.refresh();		
		}
	}
	else
		alert("Veuillez attendre la fin du chargement de la carte, merci.");
}

function affiche_menu_dessin() { 

  // Booléen reconnaissant le navigateur (vu en partie 2)
  isIE = (document.all);
  isNN6 = (!isIE) && (document.getElementById);

  // Compatibilité : l'objet menu est détecté selon le navigateur
  if (isIE) menu1 = document.all['menudessin'];
  if (isNN6) menu1 = document.getElementById('menudessin');
  if (isIE) menu2 = document.all['menudessinsig'];
  if (isNN6) menu2 = document.getElementById('menudessinsig');

  // On ouvre ou ferme
  if (menu1.style.display == "none"){
    // Cas ou le tableau est caché
    menu1.style.display = "";
	menu2.style.display = "none";
	getMap().selectMode();
  } else {
    // On le cache
    menu1.style.display = "none";
    menu2.style.display = "";
   }
}

