// aimsSelect.js
/*
*  JavaScript template file for ArcIMS HTML Viewer
*               dependent on aimsXML.js, ArcIMSparam.js, aimsCommon.js, aimsMap.js, aimsIdentify, and aimsLayers.js
*               To be interactive, dependent also on aimsDHTML.js, aimsClick.js, and aimsNavigation.js
*/

aimsSelectPresent=true;

var selectData = new Array();
var selectLeft = new Array();
var selectRight = new Array();
var selectTop = new Array();
var selectBottom = new Array();
var selMaxEnvelope = new Array();

var selectLayer="";
var selectType = "";
var selectCount = 0;
var selectBlurb = "";
var selectEnvelope="";
var highlightedOne = "";
        //mode - 0=selection; 1=query
var queryMode=1;
        //mode - 1=query; 2=box,point; 3=line,polygon
var selectionMode=1;
var setQueryString="";

var shapeBufferDistance = 0;

//Correction du bug de la légende
/*      var t;
        if (opener) {
                if (opener.parent.name=="MapFrame") {
                        t = opener.parent.parent.MapFrame;
                } else {
                        t = opener.parent;
                }
                } else {
                
                if (parent.parent.parent.MapFrame) {
                        t = parent.parent.parent.MapFrame;
                } else {
                        t=document;
                }
        
        }
        
        //variable de toc.htm
        var theCount = t.layerCount;
        var frmTop = parent.parent.frames['TopFrame']
        frmTop.chargerListeTheme();
        var lst = frmTop.listTheme;
        var lstLayer = frmTop.listThemeLayer;
        var bEtiquette = false;
*/



/*
***************************************************************************************

Selection functions 

***************************************************************************************
*/

// select feature
function select(e) {
        getMapXY(mouseX,mouseY);
        searchTolerance = (xDistance/iWidth) * pixelTolerance;
        var tempWest = mapX - searchTolerance;
        var tempNorth = mapY + searchTolerance;
        var tempEast = mapX + searchTolerance;
        var tempSouth = mapY - searchTolerance;
        queryStartRecord=1;
        selectEnvelope='maxy="' + forceComma(tempNorth) + '" maxx="' + forceComma(tempEast) + '" miny="' + forceComma(tempSouth) + '" minx="' + forceComma(tempWest) + '"';
        selectionMode=2;
        showRetrieveData();
        var theString = writeGetFeatures2(tempWest,tempSouth,tempEast,tempNorth);
        sendToServer(imsQueryURL,theString,selectXMLMode);
}

// start select box display
function startSelectBox(e) {
        if (checkIfActiveLayerAvailable()) {
                moveLayer("theMap",hspc,vspc);
                getImageXY(e);
                // keep it within the MapImage
                if ((mouseX<iWidth) && (mouseY<iHeight)) {
                        if (selectBox) {
                                stopSelectBox(e);
                        } else {
                                x1=mouseX;
                                y1=mouseY
                                x2=x1+1;
                                y2=y1+1;
                                zleft=x1;
                                ztop=y1;
                                zbottom=y1;
                                zright=x1
                                boxIt(x1,y1,x2,y2);
                                selectBox=true;
                                showLayer("zoomBoxTop");
                                showLayer("zoomBoxLeft");
                                showLayer("zoomBoxRight");
                                showLayer("zoomBoxBottom");
                        }
                        highlightedOne="";
                }
                return false;
        }

}

// stop select box display..... select
function stopSelectBox(e) {
        selectBox=false;
        hideLayer("zoomBoxTop");
        hideLayer("zoomBoxLeft");
        hideLayer("zoomBoxRight");
        hideLayer("zoomBoxBottom");
        if ((zright <zleft+2) && (zbottom < ztop+2)) {
                getMapXY(mouseX,mouseY);
                searchTolerance = (xDistance/iWidth) * pixelTolerance;
                tempLeft = mapX-searchTolerance;
                tempTop = mapY-searchTolerance;
                tempRight = mapX+searchTolerance;
                tempBottom = mapY+searchTolerance;
        } else {
                pixelX = xDistance / iWidth;
                var theY = iHeight - ztop;
                pixelY = yDistance / iHeight;
                tempTop = pixelY * theY + eBottom;
                tempRight = pixelX * zright + eLeft;
                tempLeft = pixelX * zleft + eLeft;
                theY = iHeight - zbottom;
                pixelY = yDistance / iHeight;
                tempBottom = pixelY * theY + eBottom;
        }
                window.scrollTo(0,0);
        
        queryStartRecord=1;
        var theString = writeGetFeatures2(tempLeft,tempBottom,tempRight,tempTop);
        selectEnvelope='maxy="' + forceComma(tempTop) + '" maxx="' + forceComma(tempRight) + '" miny="' + forceComma(tempBottom) + '" minx="' + forceComma(tempLeft) + '"';
        drawSelectBoundary=true;
        showBuffer=false;
        selectionMode=2;
        showRetrieveData();
        sendToServer(imsQueryURL,theString,selectXMLMode);
        return true;

}

// write out XML request to select features
function writeGetFeatures2(west1,south1,east1,north1) {
        if (swapSelectFields) {
                selectFields=selFieldList[ActiveLayerIndex];
        }
        var theEnvelope = 'maxy="' + forceComma(north1) + '" maxx="' + forceComma(east1) + '" miny="' + forceComma(south1) + '" minx="' + forceComma(west1 )+ '"';
        var theString = writeEnvelopeXML(ActiveLayer,ActiveLayerType,selectFields,maxFeaturesReturned,queryStartRecord,theEnvelope,useLimitExtent);
        selectLayer=ActiveLayer;
        selectType=ActiveLayerType;
        selectCount=0;
        hightlightedOne="";
        selectPoints.length=1;
        selectLeft.length=1;
        selectRight.length=1;
        selectTop.length=1;
        selectBottom.length=1;
        return theString;
}

function writeGetFeatures3() {
        if (swapSelectFields) {
                selectFields=selFieldList[ActiveLayerIndex];
        }
        var theString = writeEnvelopeXML(ActiveLayer,ActiveLayerType,selectFields,maxFeaturesReturned,queryStartRecord,selectEnvelope,useLimitExtent);
        selectLayer=ActiveLayer;
        selectType=ActiveLayerType;
        selectCount=0;
        hightlightedOne="";
        selectPoints.length=1;
        selectLeft.length=1;
        selectRight.length=1;
        selectTop.length=1;
        selectBottom.length=1;
        return theString;
}

// generic envelope select xml write routine
function writeEnvelopeXML(theLayer,theLayerType,theFields,maxReturned,startRec,theEnvelope,hasLimit) {
        var theString = '<ARCXML version="1.1">\n<REQUEST>\n<GET_FEATURES outputmode="xml" envelope="true" geometry="false"';
        theString += ' featurelimit="' + maxReturned + '" beginrecord="' + startRec + '">\n';
        theString += '<LAYER id="' + theLayer + '" />';
        theString += '<SPATIALQUERY subfields="' + theFields + '">';
        theString += '<SPATIALFILTER relation="area_intersection" >';
        theString += '<ENVELOPE ' + theEnvelope + ' />';
        theString += '</SPATIALFILTER>';
        if (hasLimit) {
                // keep this within the limitExtent
                theString += '<SPATIALFILTER relation="area_intersection">\n';
                theString += '<ENVELOPE maxx="' + forceComma(limitRight) + '" maxy="' + forceComma(limitTop) + '" minx="' + forceComma(limitLeft) + '" miny="' + forceComma(limitBottom) + '" />\n';
                theString += '</SPATIALFILTER>\n';
        }
        theString += '</SPATIALQUERY>';
        theString += '</GET_FEATURES>';
        theString += '</REQUEST>';
        theString += '</ARCXML>';
        return theString;

}

// write out xml request for selection by shape
function writeShapeSelect(theType) {
        if (swapSelectFields) {
                selectFields=selFieldList[ActiveLayerIndex];
        }
        var theString = '<ARCXML version="1.1">\n<REQUEST>\n<GET_FEATURES outputmode="xml" envelope="true" geometry="false"';
        theString += ' featurelimit="' + maxFeaturesReturned + '" beginrecord="' + queryStartRecord + '">\n';
        theString += '<LAYER id="' + ActiveLayer + '" />';
        theString += '<SPATIALQUERY subfields="' + selectFields + '">';
        theString += '<SPATIALFILTER relation="area_intersection" >';
        if ((shapeSelectBuffer) && (shapeBufferDistance>0)) {
                // do a buffer around the shape before selecting
                
                theString += '<BUFFER distance="' + forceComma(shapeBufferDistance) + '" ';
                
                theString += ' bufferunits="' + ScaleBarUnits + '"';
                theString += ' />\n';
        }
        if (theType==1) {
                theString += '<POLYLINE>\n<PATH>\n';
        } else if (theType==2) {
                theString += '<POLYGON>\n<RING>\n';
        } else {
                theString += '<MULTIPOINT>\n';
        }
        if (theType==0) {
                theString += '<POINT x="' + clickPointX[clickCount-1] + '" y="' + clickPointY[clickCount-1] + '" />\n';
        } else {
                for (var i=0;i<clickCount;i++) {
                        theString += '<POINT x="' + clickPointX[i] + '" y="' + clickPointY[i] + '" />\n'; 
                }
        }
        if (theType==0) {
                theString += '</MULTIPOINT>\n';
        } else if (theType==2) {
                theString += '</RING>\n</POLYGON>\n';
        } else {
                theString += '</PATH>\n</POLYLINE>\n';
        }
        theString += '</SPATIALFILTER>';
        if (useLimitExtent) {
                // keep this within the limitExtent
                theString += '<SPATIALFILTER relation="area_intersection">\n';
                theString += '<ENVELOPE maxx="' + forceComma(limitRight) + '" maxy="' + forceComma(limitTop) + '" minx="' + forceComma(limitLeft) + '" miny="' + forceComma(limitBottom) + '" />\n';
                theString += '</SPATIALFILTER>\n';
        }
        theString += '</SPATIALQUERY>';
        theString += '</GET_FEATURES>';
        theString += '</REQUEST>';
        theString += '</ARCXML>';
        selectLayer=ActiveLayer;
        selectType=ActiveLayerType;
        selectCount=0;
        hightlightedOne="";
        selectPoints.length=1;
        selectLeft.length=1;
        selectRight.length=1;
        selectTop.length=1;
        selectBottom.length=1;
        return theString;
        
}

// request a selection using a shape
function sendShapeSelect(theType) {
        queryStartRecord=1;
        selectionMode=3;
        showBuffer=false;
        if (theType==2) {
                if ((clickPointX[0]!=clickPointX[clickCount-1]) && (clickPointY[0]!=clickPointY[clickCount-1])) {
                        clickPointX[clickCount]=clickPointX[0];
                        clickPointY[clickCount]=clickPointY[0];
                        clickCount=clickCount+1;
                }
        }
        showRetrieveData();
        var theString = writeShapeSelect(theType);
        sendToServer(imsQueryURL,theString,selectXMLMode);
}

// request more records to display
function getMoreData(startRecord) {
	//alert("selectionMode ds getMoreData:   " + selectionMode + "\nstartRecord:    " + startRecord + "\nsetQueryString:    " + setQueryString + "\nLayerName[ActiveLayerIndex]:   " + LayerName[ActiveLayerIndex]);
        var theString = "";
        queryStartRecord = startRecord;
        if (selectionMode==1) {
                //query
                theString = writeQueryXML(setQueryString);
        } else if (selectionMode==2) {
                theString = writeGetFeatures3();
        } else {
                var theType = clickType-1;
                theString = writeShapeSelect(theType);
        }
        showRetrieveData();
        //alert("Ds function getMoreData   " + "\ntheString:   " + theString + "\nselectXMLMode:    " +  selectXMLMode);
        sendToServer(imsQueryURL,theString,selectXMLMode);
}

// Zoomer aux troncons de rues qui correspondent au ID_DICT passé en paramètre
function showHighlightPARC(NOM) {
		//alert(OID);
		//clearSelection();
                //var theString = 'OBJECTID ='  + OID ;
                var theString = 'NOM='   + dQuote + NOM + dQuote ;
                //var theString = 'NOM  = ' + NOM ;
                parent.TOC2Frame.TOCFrame.setActiveNomLayer('Points_interet_25k');
                ZoomToParc=true;
                //alert("theString:   " + theString);
                sendQueryStringMode(theString,1001);
			
}

// refresh map with hightlighted selection
function showHighlight(selNum) {
		//alert("ds showHighlight");
		highlightedOne = LayerIDField[ActiveLayerIndex] + " = " + selectPoints[selNum];
		//alert(selectLeft[selNum] + "," + selectRight[selNum]);
		var fWidth = selectRight[selNum] - selectLeft[selNum];
		var fHeight = selectTop[selNum] - selectBottom[selNum];
		var mWMargin = 0;
		var mHMargin = 0;
		if (selectType=="point") {			
			mWMargin = fullWidth * selectPointMargin;
			mHMargin = fullHeight * selectPointMargin;
			if (mWMargin > xDistance/2) {
				mWMargin = xDistance/2;
				mHMargin = yDistance/2;
			}
		} else {
			mWMargin = fWidth * selectMargin;
			mHMargin = fHeight * selectMargin; 
		}
		saveLastExtent();
		eLeft = selectLeft[selNum] - mWMargin;
		eRight = selectRight[selNum] + mWMargin;
		eTop = selectTop[selNum] + mHMargin;
		eBottom = selectBottom[selNum] - mHMargin;
		
		
		//POur forcer à afficher les travaux sélectionnés peu importe l'échelle (si < 2500, on force à 2500)
                if ((LayerName[ActiveLayerIndex] == "Profil_Finan_lien_10k") || (LayerName[ActiveLayerIndex] == "#Profil_Finan_lien_10k") || (LayerName[ActiveLayerIndex] == "Profil_Finan_travaux_en_cours_perma") || (LayerName[ActiveLayerIndex] == "#Profil_Finan_travaux_en_cours_perma")) {
			//alert("fWidth:    " + fWidth + "\nfHeight:    " + fHeight + "\ndistanceTemp:   " + distanceTemp + "\nlabelScale:   " + labelScale);	
			//alert("distancezoom:    " + distancezoom + "\nselectRight[selNum]:    " + selectRight[selNum] + "\nselectBottom[selNum]:    " + selectBottom[selNum] + "\nselectMargin:    " + selectMargin + "\niWidth:    " + iWidth );	
			if (labelScale<2500){
				
				var newScale = 2501 / 3780;
	                        //var xDistance = fullRight - fullLeft;
	                        var xScale = fWidth  / iWidth;
	                        
	                        var newXDistance = newScale * fWidth  / xScale;
	                        
	                
	                        
	                        //var yDistance = t.fullBottom - t.fullTop;
	                        var yScale = fHeight / iHeight;
	                        var newYDistance = newScale * fHeight / yScale;
	                        
	                        var xCenter = (eRight + eLeft)/2;
	                        var yCenter = (eBottom + eTop)/2;
	                        
	                        
	                        eRight = xCenter + (newXDistance/2);
	                        eLeft = xCenter - (newXDistance/2);
	                        eTop = yCenter + (newYDistance/2);
	                        eBottom = yCenter - (newYDistance/2);
	                        
	                        distanceTemp = Math.abs(eRight-eLeft);
	                        labelScale = (distanceTemp / iWidth) * 3780;
	                        
	                        //alert("apres\n\n\ndistanceTemp:   " + distanceTemp + "\nlabelScale:   " + labelScale + "\n\neLeft:  " + eLeft + "\neRight:  " + eRight + "\neTop:  " + eTop + "\neBottom:  " + eBottom);	
			}
			//alert("Apres:     labelScale:    " + labelScale + "\niWidth:     " + iWidth + "\ndistanceTemp:    " + distanceTemp);	
		}
		
		
		//alert(highlightedOne);
			legendTemp=legendVisible;
			legendVisible=false;
			sendMapXML();
			
}

// calculate max envelope for returned records
function calcSelectEnvelope() {
        if (selectCount>0) {
                selMaxEnvelope[0] = selectLeft[0];
                selMaxEnvelope[1] = selectBottom[0];
                selMaxEnvelope[2] = selectRight[0];
                selMaxEnvelope[3] = selectTop[0];
                if (selectCount>1) {
                        for (var i=1;i<selectCount;i++) {
                                if (selectLeft[i]<selMaxEnvelope[0]) selMaxEnvelope[0] = selectLeft[i];
                                if (selectBottom[i]<selMaxEnvelope[1]) selMaxEnvelope[1] = selectBottom[i];
                                if (selectRight[i]>selMaxEnvelope[2]) selMaxEnvelope[2] = selectRight[i];
                                if (selectTop[i]>selMaxEnvelope[3]) selMaxEnvelope[3] = selectTop[i];
                        }
                }
        }
}

function zoomToReturnedRecords() {
        calcSelectEnvelope();
        var fWidth = selMaxEnvelope[2] - selMaxEnvelope[0];
        var fHeight = selMaxEnvelope[3] - selMaxEnvelope[1];
        var mWMargin = 0;
        var mHMargin = 0;
        if ((fWidth==0) && (fHeight==0)) {                      
                mWMargin = fullWidth * selectPointMargin;
                mHMargin = fullHeight * selectPointMargin;
                if (mWMargin > xDistance/2) {
                        mWMargin = xDistance/2;
                        mHMargin = yDistance/2;
                }
        } else {
                mWMargin = fWidth * selectMargin;
                mHMargin = fHeight * selectMargin; 
        }
        saveLastExtent();
        eLeft = selMaxEnvelope[0] - mWMargin;
        eRight = selMaxEnvelope[2] + mWMargin;
        eTop = selMaxEnvelope[3] + mHMargin;
        eBottom = selMaxEnvelope[1] - mHMargin;
        var distanceTemp = Math.abs(eRight-eLeft);
        var labelScale = (distanceTemp / iWidth) * 3780;
        if (labelScale >= 10050) {
                parent.TOC2Frame.TOCFrame.masquerEtiquetteTheme('Voie de communication');}
                else {
                parent.TOC2Frame.TOCFrame.afficherEtiquetteTheme('Voie de communication');}
        sendMapXML();

}
// clear current selection
function clearSelection() {
        var theCount = selectCount;
        var theHL = highlightedOne;
        selectCount=0;
        showBuffer=false;
        highlightedOne="";
        selectPoints.length=0;
        selectLeft.length=0;
        selectRight.length=0;
        selectTop.length=0;
        selectBottom.length=0;
        drawSelectBoundary=false;
        showGeocode=false;
        clickCount=0;
        totalMeasure=0;
        currentMeasure=0;
        if (useTextFrame) {
                parent.TextFrame.document.open();
                parent.TextFrame.document.writeln('<meta http-equiv="Content-Type" content="text/html; charset=' + charSet + '"><html>');
                parent.TextFrame.document.writeln('<body bgcolor="White" text="Black" link="Blue" vlink="Blue">');
                parent.TextFrame.document.writeln('<FONT FACE="Arial" SIZE="-1"><b>' + parent.TopFrame.nomSousThemeLayer(LayerName[ActiveLayerIndex]) + '</b><br>');
                if (toolMode==20) {
                        parent.TextFrame.document.writeln(msgList[70]);
                        updateMeasureBox()
                        }
                parent.TextFrame.document.writeln('</body></html>');
                parent.TextFrame.document.close()
        } else {
                if (toolMode==20) {
                        showLayer("measureBox");
                        updateMeasureBox()
                }
        }
                        selectBlurb="";
                        sendMapXML();

}

// add Draw Selected Features to Map XML request
function addSelectToMap(){
        var selString = "";
        var sFactor = (eRight-eLeft) / iWidth
        if (((sFactor>=LayerMinScale[ActiveLayerIndex]) && (sFactor<=LayerMaxScale[ActiveLayerIndex]) && (LayerVisible[ActiveLayerIndex]==1)) || (canSelectInvisible)) {
                if ((selectCount>0) && (showSelectedFeatures)) {
                        selString +='<LAYER type="featureclass" name="Selected Features" visible="true">\n';
                        selString +='<DATASET fromlayer="' + LayerID[ActiveLayerIndex] + '" />\n';
                        if (selectionMode==1) {
                                selString +='<SPATIALQUERY  where="' + setQueryString + '"';
                                if (useLimitExtent) {
                                        // keep this within the limitExtent
                                        
                                        selString +='>\n<SPATIALFILTER relation="area_intersection">\n';
                                        selString +='<ENVELOPE maxx="' + forceComma(limitRight) + '" maxy="' + forceComma(limitTop) + '" minx="' + forceComma(limitLeft) + '" miny="' + forceComma(limitBottom) + '" />\n';
                                        selString +='</SPATIALFILTER>\n';
                                        selString +='</SPATIALQUERY>\n';
                                } else {
                                selString +='/>\n';
                                }
                        
                        } else {
                                selString +='<SPATIALQUERY>\n';
                                selString +='<SPATIALFILTER relation="area_intersection" >\n';
                                if (selectionMode==2) {
                                        selString +='<ENVELOPE ' + selectEnvelope + ' />\n';
                                } else {
                                        if ((shapeSelectBuffer) && (shapeBufferDistance>0)) {
                                                // do a buffer around the shape before selecting
                                                
                                                selString += '<BUFFER distance="' + forceComma(shapeBufferDistance) + '" ';
                                                
                                                selString += ' bufferunits="' + ScaleBarUnits + '"';
                                                selString += ' />\n';
                                        }
                                        if (clickType==2) {
                                                selString +='<POLYLINE>\n<PATH>\n';
                                        } else if (clickType==3) {
                                                selString +='<POLYGON>\n<RING>\n';
                                        } else {
                                                selString +='<MULTIPOINT>\n';
                                        }
                                        if (clickType==1) {
                                                selString +='<POINT x="' + clickPointX[clickCount-1] + '" y="' + clickPointY[clickCount-1] + '" />\n';
                                        } else {
                                                for (var i=0;i<clickCount;i++) {
                                                        selString +='<POINT x="' + clickPointX[i] + '" y="' + clickPointY[i] + '" />\n'; 
                                                }
                                        }
                                        if (clickType==3) {
                                                selString +='</RING>\n</POLYGON>\n';
                                        } else if (clickType==2) {
                                                selString +='</PATH>\n</POLYLINE>\n';
                                        } else {
                                                selString +='</MULTIPOINT>\n';
                                        }
                                }
                                selString +='</SPATIALFILTER>\n';
                                if (useLimitExtent) {
                                        // keep this within the limitExtent
                                        selString +='<SPATIALFILTER relation="area_intersection">\n';
                                        selString +='<ENVELOPE maxx="' + forceComma(limitRight) + '" maxy="' + forceComma(limitTop) + '" minx="' + forceComma(limitLeft) + '" miny="' + forceComma(limitBottom) + '" />\n';
                                        selString +='</SPATIALFILTER>\n';
                                } 
                                selString +='</SPATIALQUERY>\n';
                        }
                        selString +='<SIMPLERENDERER>\n';
                
                        if (selectType=="point") {
                                selString +='<SIMPLEMARKERSYMBOL color="' + selectColor + '" type="Circle" width="10" />\n';
                        } else if (selectType=="line") {
                                selString +='<SIMPLELINESYMBOL type="SOLID" color="' + selectColor + '" width="3" />\n';
                        } else {
                                selString +='<SIMPLEPOLYGONSYMBOL fillcolor="' + selectColor + '" filltype="solid" transparency="' + forceComma(transparentLevel) + '" boundarycolor="255,255,255" />\n';
                        }
                        selString +='</SIMPLERENDERER>\n';
                        selString +='</LAYER>\n';
                        
                
                }
                
                
                if (selectBlurb!="") {
                        // add SelectBlurb to Map XML request
                        selString +='<LAYER type="featureclass" name="Selected Features" visible="true">\n';
                        selString +='<DATASET fromlayer="' + LayerID[ActiveLayerIndex] + '" />\n';
                        selString +='<QUERY where="' + selectBlurb + '" />\n';
                        selString +='<SIMPLERENDERER>\n';
                
                        if (selectType=="point") {
                                selString +='<SIMPLEMARKERSYMBOL color="' + selectColor + '" type="Circle" width="10" />\n';
                        } else if (selectType=="line") {
                                selString +='<SIMPLELINESYMBOL type="SOLID" color="' + selectColor + '" width="3" />\n';
                        } else {
                                selString +='<SIMPLEPOLYGONSYMBOL fillcolor="' + selectColor + '" filltype="solid" transparency="' + forceComma(transparentLevel) + '" boundarycolor="255,255,255" />\n';
                                }
                        selString +='</SIMPLERENDERER>\n';
                        selString +='</LAYER>\n';
                
                }
                
                if (highlightedOne!="") {
                        // add Draw Highlighed Feature to Map XML request
                        selString +='<LAYER type="featureclass" name="Highlighted Feature" visible="true">\n';
                        selString +='<DATASET fromlayer="' + LayerID[ActiveLayerIndex] + '" />\n';
                        selString +='<QUERY where="' + highlightedOne + '" />\n';
                        selString +='<SIMPLERENDERER>\n';
                
                        if (selectType=="point") {
                                selString +='<SIMPLEMARKERSYMBOL color="' + highlightColor + '" type="Circle" width="10" />\n';
                        } else if (selectType=="line") {
                                selString +='<SIMPLELINESYMBOL type="SOLID" color="' + highlightColor + '" width="3" />\n';
                        } else {
                                selString +='<SIMPLEPOLYGONSYMBOL fillcolor="' + highlightColor + '" filltype="solid" transparency="' + forceComma(transparentLevel) + '" boundarycolor="255,255,255" />\n';
                        }
                        selString +='</SIMPLERENDERER>\n';
                        selString +='</LAYER>\n';
                }       
        }
        return selString;
}
