function annule_dernier_redline(){
	if ((dernier_objet_redline=="POLYGON")&&(polygonCounter>0)){
		myMap = getMap();
 		redlineLayer = myMap.getMapLayer(derniere_couche_redline);
		if(redlineLayer != null){
			var objects=map.createObject("MGCollection");
			objects.add(redlineLayer.getMapObject('Polygon'+polygonCounter));
 			redlineLayer.removeObjects(objects);
			polygonCounter=polygonCounter-1;
			dernier_objet_redline="";
  		}
	}
	if ((dernier_objet_redline=="POLYLINE")&&(polylineCounter>0)){
		myMap = getMap();
 		redlineLayer = myMap.getMapLayer(derniere_couche_redline);
		if(redlineLayer != null){
			var objects=map.createObject("MGCollection");
			objects.add(redlineLayer.getMapObject('Polyline'+polylineCounter));
 			redlineLayer.removeObjects(objects);
			polylineCounter=polylineCounter-1;
			dernier_objet_redline="";
  		}
	}
	if ((dernier_objet_redline=="CIRCLE")&&(circleCounter>0)){
		myMap = getMap();
 		redlineLayer = myMap.getMapLayer(derniere_couche_redline);
		if(redlineLayer != null){
			var objects=map.createObject("MGCollection");
			objects.add(redlineLayer.getMapObject('Circle'+circleCounter));
 			redlineLayer.removeObjects(objects);
			circleCounter=circleCounter-1;
			dernier_objet_redline="";
  		}
	}
	if ((dernier_objet_redline=="TEXT")&&(textCounter>0)){
		myMap = getMap();
 		redlineLayer = myMap.getMapLayer(derniere_couche_redline);
		if(redlineLayer != null){
			var objects=map.createObject("MGCollection");
			objects.add(redlineLayer.getMapObject('Text'+textCounter));
 			redlineLayer.removeObjects(objects);
			textCounter=textCounter-1;
			dernier_objet_redline="";
  		}
	}
	if ((dernier_objet_redline=="SYMBOL")&&(symbolCounter>0)){
		myMap = getMap();
 		redlineLayer = myMap.getMapLayer(derniere_couche_redline);
		if(redlineLayer != null){
			var objects=map.createObject("MGCollection");
			objects.add(redlineLayer.getMapObject('Symbol'+symbolCounter));
 			redlineLayer.removeObjects(objects);
			symbolCounter=symbolCounter-1;
			dernier_objet_redline="";
  		}
	}
	

}
 
function add_calque(){
	var nom_calque=prompt("Nom du calque?","Nom de votre calque sans espace");
	if (nom_calque != ""){
		var map = getMap();
		var myLayer = map.getMapLayer(nom_calque);
		if (myLayer == null){
			myLayer = map.createLayer("redline", nom_calque);
			var prio=prompt("Quelle est sa place ? (0=en dessous, 100=au dessus, le cadastre se situe entre 50 et 69, les limites administratives entre 10 et 15)","40");
			myLayer.setPriority(prio);
			document.RedliningForm.calque_actif.value=nom_calque;
			map.refresh();
			}
		else
			alert("Le calque " + nom_calque + " existe déjà!");
	}
}

function add_calque_defaut(){
	var map = getMap();
	var myLayer = map.getMapLayer("moncalque");
	if (myLayer == null)
		myLayer = map.createLayer("redline", "moncalque");
	document.RedliningForm.calque_actif.value="moncalque";
	map.refresh();
	}

function styleOptions(type_objet,w,h){
	var	winStyle = window.open("../fonction/styleOptions"+type_objet+".asp" ,"SytleOptions","toolbar=no,menubar=no,location=no,scrollbars=no,resizable=no,alwaysRaised=yes,directories=no,height="+h+",width="+w);
   	winStyle.focus();
}

function gestion_calque(){
	var	winStyle = window.open("../fonction/gestion_calque.htm","GestionCalque","toolbar=no,menubar=no,location=no,scrollbars=yes,resizable=no,alwaysRaised=yes,directories=no,height=220,width=300");
	winStyle.focus();
}

function add_symbol(){
	document.RedliningForm.textepoint.value= "Symbole";
	if (navigator.appName == "Netscape")
		getMap().digitizePoint(document.obs);
	else
		getMap().digitizePoint();
}

function add_pline(){
    var map = getMap();
    if (navigator.appName == "Netscape")
        map.digitizePolylineEx(document.obs);
    else
        map.digitizePolyline();
}




function add_pgon(){
    var map = getMap();
    if (navigator.appName == "Netscape")
        map.digitizePolygonEx(document.obs);
    else
        map.digitizePolygon();
}

function add_circle(){
    var map = getMap();
    if (navigator.appName == "Netscape")
        map.digitizeCircle("FT",document.obs);
    else
        map.digitizeCircle("FT");
}

function affiche_xy(){
	document.RedliningForm.textepoint.value= "xy";
	if (navigator.appName == "Netscape")
		getMap().digitizePoint(document.obs);
	else
		getMap().digitizePoint();
}


function add_text(){
	document.RedliningForm.textepoint.value= "Texte";
	if (navigator.appName == "Netscape")
		getMap().digitizePoint(document.obs);
	else
		getMap().digitizePoint();
}

function duplicate_obj(){
	var map = getMap();
	if (map.getSelection().getNumObjects() == 0)
    	{
        	alert ("Veuillez selectionner au moins un objet a surligner!");
        return;
    }
	
	var myLayer = map.getMapLayer(document.RedliningForm.calque_actif.value);
    if (myLayer == null){
        	var z=add_calque_defaut();
			myLayer = map.getMapLayer(document.RedliningForm.calque_actif.value);
			alert("Nous vous avons cree le calque 'moncalque' pour que vous puissiez dessiner...");
		}
	derniere_couche_redline=document.RedliningForm.calque_actif.value;
    var sel = map.getSelection();
    var objs = sel.getMapObjectsEx(null);
    var cntObjects = objs.size();
    for (i=0;i<cntObjects;i++)
    {

		var obj_sel=objs.item(i);
		if (obj_sel.getType()=='Polygon'){
	        polygonCounter = polygonCounter + 1;
			dernier_objet_redline="POLYGON";
			var redlineSet = map.getRedlineSetup();
			var edge = redlineSet.getEdgeAttr();
			edge.setColor(edgeColor);			
			edge.setStyle(edgeStyle);
			edge.setThickness(edgeThickness);
			edge.setVisible(edgeVisible);
	
			var fill = redlineSet.getFillAttr();
			fill.setColor(fillColor);
			fill.setStyle(fillStyle);	
			fill.setHatchPattern(fillHatchPattern);
			fill.setBackColor(fillBkgndColor);
			fill.setBackMode(backMode);
			var Text = "Polygon" + polygonCounter;
        	var obj = myLayer.getMapObject(Text);
	   		if (obj == null)
    	    	var obj = myLayer.createMapObject(Text, Text, "");
			verts = map.createObject('mgcollection');
    	    vertNum = map.createObject('mgcollection');
			result = obj_sel.getVertices(verts, vertNum);
    		obj.addPolygonPrimitive(verts, vertNum, true);
		}
		if (obj_sel.getType()=='Polyline'){
			polylineCounter = polylineCounter +1;
			dernier_objet_redline="POLYLINE";
			var redlineSet = map.getRedlineSetup();
			var line = redlineSet.getLineAttr();
			line.setColor(lineColor);			
			line.setStyle(lineStyle);
			line.setThickness(lineThickness);
			var Text = "Polyline" + polylineCounter;
        	var obj = myLayer.getMapObject(Text);
	   		if (obj == null)
    	    	var obj = myLayer.createMapObject(Text, Text, "");
			verts = map.createObject('mgcollection');
    	    vertNum = map.createObject('mgcollection');
			result = obj_sel.getVertices(verts, vertNum);
    		obj.addPolylinePrimitive(verts, vertNum, true);
		}	
	}
}

function delObjs(){
    myMap = getMap();
 	redlineLayer = myMap.getMapLayer(document.RedliningForm.calque_actif.value);
	if(redlineLayer != null){
		selection = myMap.getSelection();
 		objects = selection.getMapObjectsEx(document.RedliningForm.calque_actif.value);
 	if (objects.size() > 0){
 		redlineLayer.removeObjects(objects);
 	}
 	else
 		alert("Veuillez selectionner vos objets personnalisés.");
  	}
  	else
		alert("Aucun objet à effacer!");  	 
 }

function getParameter(param){
	var currentMap = getMap();
	if (param == "lat")
		return currentMap.getLat();
	if (param == "lon")
		return currentMap.getLon();
	if (param == "scale")
		return currentMap.getScale();
	if (param == "units")
		return currentMap.getUnits();
}
 
function reload()
{
	document.form1.OnSelectionChangedReport.value=0;
	getMap().removeMapLayer("Mes données");
	document.form1.OnSelectionChangedReport.value=1;
}

function onDigitizedPoint(map, point){	
	pointType = document.RedliningForm.textepoint.value;
	//on veut juste le xy du click
	if (pointType == "xy"){
		var xyPt = map.lonLatToMcs(point.getX(),point.getY() );
		alert("X = " + xyPt.getX() + ", Y = " + xyPt.getY());
	}
	if (pointType == "Texte"){
		textCounter = textCounter + 1;
		dernier_objet_redline="TEXT";
		
		var redlineSet = map.getRedlineSetup();
		var text = redlineSet.getTextAttr();
		if (styleOptionsInitialLoadingText == true){
			textHeightUnit = map.getUnits();
			textHeight = parseInt(map.getHeight(textHeightUnit)/20);
		}
		text.setHeight(textHeight, textHeightUnit);
		text.setRotation(textRotation);
		text.setColor(textColor);
		text.setFontName(textFont);
		text.setFontStyle(textFontStyle);	
		text.setBackMode(textBackMode);
		text.setBackColor(textBackColor);
		text.setHorizAlign(textHAlign);
		text.setVertAlign(textVAlign);
		var Text = "Text" + textCounter;
	    var myLayer = map.getMapLayer(document.RedliningForm.calque_actif.value);
    	if (myLayer == null){
        	var z=add_calque_defaut();
			myLayer = map.getMapLayer(document.RedliningForm.calque_actif.value);
			alert("Nous vous avons créé le calque 'moncalque' pour que vous puissiez dessiner...");
			}
		derniere_couche_redline=document.RedliningForm.calque_actif.value;		
	    var object = myLayer.getMapObject(Text);
	    if (object == null){
	        var object = myLayer.createMapObject(Text, Text, "")
		}
		var myText = prompt("Saisissez votre texte.","ici")
		if (myText != null){
			var text = object.addTextPrimitive(point, false,myText)
		}
	}
 	if (pointType == "Symbole") {
		var redlineSet = map.getRedlineSetup();
		var symbol = redlineSet.getSymbolAttr();

		if (styleOptionsInitialLoadingSymbol == true){
			symbolUnit = map.getUnits();
			symbolHeight = parseInt(map.getHeight(symbolUnit)/20);
			symbolWidth = parseInt(map.getWidth(symbolUnit)/20);			
		}
		symbol.setHeight(symbolHeight, symbolUnit);
		symbol.setWidth(symbolWidth, symbolUnit);
		symbol.setRotation(symbolRotation);
		symbol.setSymbol(symbolName);
		symbolCounter = symbolCounter +1;
		dernier_objet_redline="SYMBOL";
		var Text = "Symbol"+symbolCounter;
	    var myLayer = map.getMapLayer(document.RedliningForm.calque_actif.value);
    	if (myLayer == null){
        	var z=add_calque_defaut();
			myLayer = map.getMapLayer(document.RedliningForm.calque_actif.value);
			alert("Nous vous avons créé le calque 'moncalque' pour que vous puissiez dessiner...");
			}
		derniere_couche_redline=document.RedliningForm.calque_actif.value;		
	    var object = myLayer.getMapObject(Text);
	    if (object == null){
	        var object = myLayer.createMapObject(Text, Text, "")
		}
		object.addSymbolPrimitive(point, false)
	} 
}

var circleCounter =0;
var polylineCounter =0;
var polygonCounter =0;
var textCounter =0;
var symbolCounter =0;

function onDigitizedPolyline(map, numPoints, points){
	polylineCounter = polylineCounter +1;
	dernier_objet_redline="POLYLINE";
	var redlineSet = map.getRedlineSetup();
	var line = redlineSet.getLineAttr();
	line.setColor(lineColor);			
	line.setStyle(lineStyle);
	line.setThickness(lineThickness);
	var Text = "Polyline" + polylineCounter;
    var myLayer = map.getMapLayer(document.RedliningForm.calque_actif.value);
    if (myLayer == null){
        	var z=add_calque_defaut();
			myLayer = map.getMapLayer(document.RedliningForm.calque_actif.value);
			alert("Nous vous avons créé le calque 'moncalque' pour que vous puissiez dessiner...");	
			}
	derniere_couche_redline=document.RedliningForm.calque_actif.value;
    var obj = myLayer.getMapObject(Text);
    if (obj == null){
    	var obj = myLayer.createMapObject(Text, Text, "");
	}
    var user_vertices = map.createObject("mgcollection");
    user_vertices.add(numPoints);
    obj.addPolylinePrimitive(points, user_vertices, false);
}
 
function onDigitizedCircle(map, units, center, radius)
{
	circleCounter = circleCounter + 1;
	dernier_objet_redline="CIRCLE";
	var redlineSet = map.getRedlineSetup();
	var edge = redlineSet.getEdgeAttr();
	edge.setColor(edgeColor);			
	edge.setStyle(edgeStyle);
	edge.setThickness(edgeThickness);
	edge.setVisible(edgeVisible);
	var fill = redlineSet.getFillAttr();
	fill.setColor(fillColor);
	fill.setStyle(fillStyle);	
	fill.setHatchPattern(fillHatchPattern);
	fill.setBackColor(fillBkgndColor);
	fill.setBackMode(backMode);
	var Text = "Circle" + circleCounter; 
    var myLayer = map.getMapLayer(document.RedliningForm.calque_actif.value);
    if (myLayer == null){
        	var z=add_calque_defaut();
			myLayer = map.getMapLayer(document.RedliningForm.calque_actif.value);
			alert("Nous vous avons créé le calque 'moncalque' pour que vous puissiez dessiner...");
	}
	derniere_couche_redline=document.RedliningForm.calque_actif.value;
    var object = myLayer.getMapObject(Text);
    if (object == null)
        	var object = myLayer.createMapObject(Text, Text, "")
	var circle = object.addCirclePrimitive(center, false,radius,units,200)
}

function onDigitizedPolygon(map, numPoints, points)
{
	polygonCounter = polygonCounter + 1;
	dernier_objet_redline="POLYGON";
	var redlineSet = map.getRedlineSetup();
	var edge = redlineSet.getEdgeAttr();
	edge.setColor(edgeColor);			
	edge.setStyle(edgeStyle);
	edge.setThickness(edgeThickness);
	edge.setVisible(edgeVisible);
	
	var fill = redlineSet.getFillAttr();
	fill.setColor(fillColor);
	fill.setStyle(fillStyle);	
	fill.setHatchPattern(fillHatchPattern);
	fill.setBackColor(fillBkgndColor);
	fill.setBackMode(backMode);
	
	var Text = "Polygon" + polygonCounter;
    var myLayer = map.getMapLayer(document.RedliningForm.calque_actif.value);
    if (myLayer == null){
        	var z=add_calque_defaut();
			myLayer = map.getMapLayer(document.RedliningForm.calque_actif.value);
			alert("Nous vous avons créé le calque 'moncalque' pour que vous puissiez dessiner...");
		}
	derniere_couche_redline=document.RedliningForm.calque_actif.value;
    var obj = myLayer.getMapObject(Text);
    if (obj == null)
        var obj = myLayer.createMapObject(Text, Text, "");
    var user_vertices = map.createObject("mgcollection");
    user_vertices.add(numPoints);
    obj.addPolygonPrimitive(points, user_vertices, false);
}

var circleCounter =0;
var polylineCounter =0;
var polygonCounter =0;
var textCounter =0;
var edgeColor = 153;
var edgeStyle = "Solid";
var edgeThickness = 1;
var edgeVisible = true;
var lineColor = 153;
var lineStyle = "Solid";
var lineThickness = 1;
var fillColor = 153;
var fillStyle = "Solid";
var fillHatchPattern = "Diagonal45";
var fillBkgndColor = 1;
var backMode = "Transparent";
var textHeight = 150;
var textHeightUnit = "M";
var textRotation = 0.0;
var textColor = 153;
var textFont = "Arial";
var textFontStyle = "Regular";
var textBackMode = 0;
var textBackColor = 1;
var textHAlign = 0;
var textVAlign = 0;
var symbolHeight = 0.5;
var symbolWidth = 0.5;
var symbolUnit = "M";
var symbolRotation = 0.0;
var symbolName = "Wingdings_graphic - Wingdings Regular 177";
var styleOptionsInitialLoadingSymbol = true;
var styleOptionsInitialLoadingText = true;
var pointType = "I";
var dernier_objet_redline="";
var derniere_couche_redline="";
