aimsBufferPresent=true;var drawTargetLayer=true;var bufferTargetLayer="";var bufferTargetLayerIndex=0;var bufferDistance=5;var bufferSmoothEdges=1/100;var getBufferedData=false;function writeBufferForm(){var t;if(useTextFrame){t="parent.MapFrame";}else{t="opener";if(parent.MapFrame!=null){t="opener.parent.MapFrame";}}var WindowContent='';var HeaderContent='';HeaderContent+=('			<script language="javascript">');HeaderContent+=('var t = '+t+';');HeaderContent+=('function doBuffer() {');HeaderContent+=('	var f = document.forms[0];');HeaderContent+=('	t.bufferDistance = f.theDistance.value;');HeaderContent+=('	theIndex = f.theTarget.selectedIndex;');HeaderContent+=('	if (theIndex>0) {');HeaderContent+=('		t.bufferTargetLayer = f.theTarget.options[theIndex].text;');HeaderContent+=('		t.bufferTargetLayerIndex = parseInt(f.theTarget.options[theIndex].value);');HeaderContent+=('		t.getBufferedData = f.getData.checked;');HeaderContent+=('		t.drawTargetLayer=true;');HeaderContent+=('	} else {');HeaderContent+=('		t.drawTargetLayer=false;');HeaderContent+=('		t.getBufferedData = false;');HeaderContent+=('	}');HeaderContent+=('	if (parseFloat(f.theDistance.value)>=0) {');HeaderContent+=('		t.bufferIt();');HeaderContent+=('	} else {');HeaderContent+=('		alert("'+msgList[81]+'");');HeaderContent+=('	}');HeaderContent+=('	self.close();');HeaderContent+=('}');HeaderContent+=('</script>');WindowContent+=('<div align="center"><form onsubmit="doBuffer(); return false;">');WindowContent+=('<table cellspacing="2" cellpadding="0" bgcolor="'+textFrameFormColor+'" width=100%>');WindowContent+=('<tr><td align="center"><small>'+msgList[82]);WindowContent+=('<select  name=theTarget>');WindowContent+=('<option value=-1>'+msgList[87]);for(var i=0;i<layerCount;i++){if(LayerType[i]!="image"){WindowContent+=('<option value='+i+'>'+LayerName[i]+'</option>');}}WindowContent+=('</select><br />');WindowContent+=('<label for="Buffer_Distance">'+msgList[83]+'</label><input type="Text" id="Buffer_Distance" name="theDistance" value="0" size="5" /> ');var j=1;for(var k=0;k<sUnitList.length;k++){if(ScaleBarUnits==sUnitList[k]){j=k};}WindowContent+=(sUnitList[j]);WindowContent+=(msgList[84]);WindowContent+=(LayerName[ActiveLayerIndex]);WindowContent+=('</small></td></tr>');WindowContent+=('<tr><td align="center">');WindowContent+=('<input type="Button" name="theButton" value="'+buttonList[9]+'" onclick="doBuffer()" />');WindowContent+=('<input type="checkbox" id="Display_Attributes_Checkbox" name="getData" value="'+buttonList[10]+'"');if(getBufferedData){WindowContent+=(' CHECKED');}WindowContent+=(' /><small><label for="Display_Attributes_Checkbox">'+msgList[85]+'</label></small>');WindowContent+=('</td></tr>');WindowContent+=('</table></form></div>');Create_Pop_Up_Window('Buffer',HeaderContent,WindowContent,'BufferForm','width=500,height=300,scrollbars=yes,resizable=yes');}function bufferIt(){hideLayer("measureBox");showBuffer=true;sendMapXML();}function addBufferToMap(){var buffString="";var tlType;if(selectionMode==1){if(drawTargetLayer){buffString+='<LAYER type="featureclass" name="theBufferTarget" visible="true">\n';buffString+='<DATASET fromlayer="'+LayerID[ActiveLayerIndex]+'" />\n';buffString+='<SPATIALQUERY where="'+setQueryString+'" >\n';buffString+='<BUFFER distance="'+forceComma(bufferDistance)+'" ';buffString+=' bufferunits="'+ScaleBarUnits.toLowerCase()+'"';buffString+='>\n';if(useLimitExtent){buffString+='<SPATIALQUERY>\n';buffString+='<SPATIALFILTER relation="area_intersection">\n';buffString+='<ENVELOPE maxx="'+forceComma(limitRight)+'" maxy="'+forceComma(limitTop)+'" minx="'+forceComma(limitLeft)+'" miny="'+forceComma(limitBottom)+'" />\n';buffString+='</SPATIALFILTER>\n';buffString+='</SPATIALQUERY>\n';}buffString+='<TARGETLAYER id="'+LayerID[bufferTargetLayerIndex]+'" />\n';buffString+='</BUFFER>\n';buffString+='</SPATIALQUERY>\n';buffString+='<SIMPLERENDERER>\n';tlType=LayerType[bufferTargetLayerIndex];if(tlType=="point"){buffString+='<SIMPLEMARKERSYMBOL color="'+highlightColor+'" type="Circle" width="10" />\n';}else if(tlType=="line"){buffString+='<SIMPLELINESYMBOL color="'+highlightColor+'" width="2" />\n';}else{buffString+='<SIMPLEPOLYGONSYMBOL fillcolor="'+highlightColor+'" filltype="solid" transparency="'+forceComma(5/10) + '" boundarycolor="255,255,255" />\n';}buffString+='</SIMPLERENDERER>\n';buffString+='</LAYER>\n';}buffString+='<LAYER type="featureclass" name="theBufferPolygons" visible="true">\n';buffString+='<DATASET fromlayer="'+LayerID[ActiveLayerIndex]+'" />\n';buffString+='<SPATIALQUERY where="'+setQueryString+'" >\n';buffString+='<BUFFER distance="'+forceComma(bufferDistance)+'" bufferunits="'+ScaleBarUnits.toLowerCase()+'" />\n';buffString+='</SPATIALQUERY>\n';buffString+='<SIMPLERENDERER>\n';buffString+='<SIMPLEPOLYGONSYMBOL fillcolor="100,100,100" filltype="solid" transparency="'+forceComma(35/100) + '" boundarycolor="255,255,255" />\n';buffString+='</SIMPLERENDERER>\n';buffString+='</LAYER>\n';}else if((selectionMode==2)||(selectionMode==3)){if(drawTargetLayer){buffString+='<LAYER type="featureclass" name="theBufferTarget" visible="true">\n';buffString+='<DATASET fromlayer="'+LayerID[ActiveLayerIndex]+'" />\n';buffString+='<SPATIALQUERY>\n';buffString+='<BUFFER distance="'+forceComma(bufferDistance)+'" bufferunits="'+ScaleBarUnits.toLowerCase()+'">\n';buffString+='<TARGETLAYER id="'+LayerID[bufferTargetLayerIndex]+'" />\n';if(useLimitExtent){buffString+='<SPATIALQUERY>\n';buffString+='<SPATIALFILTER relation="area_intersection">\n';buffString+='<ENVELOPE maxx="'+forceComma(limitRight)+'" maxy="'+forceComma(limitTop)+'" minx="'+forceComma(limitLeft)+'" miny="'+forceComma(limitBottom)+'" />\n';buffString+='</SPATIALFILTER>\n';buffString+='</SPATIALQUERY>\n';}buffString+='</BUFFER>\n';buffString+='<SPATIALFILTER relation="area_intersection">\n';if(selectionMode==2){buffString+='<ENVELOPE '+selectEnvelope+' />\n';}else{if(clickType==2){buffString+='<POLYLINE>\n<PATH>\n';}else if(clickType==3){buffString+='<POLYGON>\n<RING>\n';}else{buffString+='<MULTIPOINT>\n';}for(var i=0;i<clickCount;i++){buffString+='<POINT x="'+clickPointX[i]+'" y="'+clickPointY[i]+'" />\n';}if(clickType==3){buffString+='</RING>\n</POLYGON>\n';}else if(clickType==2){buffString+='</PATH>\n</POLYLINE>\n';}else{buffString+='</MULTIPOINT>\n';}}buffString+='</SPATIALFILTER>\n';buffString+='</SPATIALQUERY>\n';buffString+='<SIMPLERENDERER>\n';tlType=LayerType[bufferTargetLayerIndex];if(tlType=="point"){buffString+='<SIMPLEMARKERSYMBOL color="'+highlightColor+'" type="Circle" width="10" />\n';}else if(tlType=="line"){buffString+='<SIMPLELINESYMBOL color="'+highlightColor+'" width="2" />\n';}else{buffString+='<SIMPLEPOLYGONSYMBOL fillcolor="'+highlightColor+'" filltype="solid" transparency="'+forceComma(35/100) + '" boundarycolor="255,255,255" />\n';}buffString+='</SIMPLERENDERER>\n';buffString+='</LAYER>\n';}buffString+='<LAYER type="featureclass" name="theBuffer" visible="true">\n';buffString+='<DATASET fromlayer="'+LayerID[ActiveLayerIndex]+'" />\n';buffString+='<SPATIALQUERY>\n';buffString+='<BUFFER distance="'+forceComma(bufferDistance)+'" bufferunits="'+ScaleBarUnits.toLowerCase()+'" />\n';buffString+='<SPATIALFILTER relation="area_intersection">\n';if(selectionMode==2){buffString+='<ENVELOPE '+selectEnvelope+' />\n';}else{if(clickType==2){buffString+='<POLYLINE>\n<PATH>\n';}else if(clickType==3){buffString+='<POLYGON>\n<RING>\n';}else{buffString+='<MULTIPOINT>\n';}for(var k=0;k<clickCount;k++){buffString+='<POINT x="'+clickPointX[k]+'" y="'+clickPointY[k]+'" />\n';}if(clickType==3){buffString+='</RING>\n</POLYGON>\n';}else if(clickType==2){buffString+='</PATH>\n</POLYLINE>\n';}else{buffString+='</MULTIPOINT>\n';}}buffString+='</SPATIALFILTER>\n';if(useLimitExtent){buffString+='<SPATIALFILTER relation="area_intersection">\n';buffString+='<ENVELOPE maxx="'+forceComma(limitRight)+'" maxy="'+forceComma(limitTop)+'" minx="'+forceComma(limitLeft)+'" miny="'+forceComma(limitBottom)+'" />\n';buffString+='</SPATIALFILTER>\n';}buffString+='</SPATIALQUERY>\n';buffString+='<SIMPLERENDERER>\n';buffString+='<SIMPLEPOLYGONSYMBOL fillcolor="100,100,100" filltype="solid" transparency="'+forceComma(5/10) + '" boundarycolor="255,255,255" />\n';buffString+='</SIMPLERENDERER>\n';buffString+='</LAYER>\n';}else{}return buffString;}function writeGetBufferedData(){var buffString="";queryStartRecord=0;showRetrieveData();switch(selectionMode){case 1:buffString=writeQueryBufferXML();break;case 2:buffString=writeEnvelopeBufferXML();break;case 3:buffString=writeShapeBufferXML(clickType-1);break;}return buffString;}function writeQueryBufferXML(){if(swapSelectFields){selectFields=selFieldList[bufferTargetLayerIndex];}var targetLayerType=LayerType[bufferTargetLayerIndex];var theString='<ARCXML version="1.1">\n<REQUEST>\n<GET_FEATURES outputmode="xml" geometry="false" envelope="false" ';theString+='>\n';theString+='<LAYER id="'+ActiveLayer+'" ftype="'+ActiveLayerType+'" />\n';theString+='<SPATIALQUERY where="'+setQueryString+'">\n';theString+='<BUFFER distance="'+forceComma(bufferDistance)+'" bufferunits="'+ScaleBarUnits.toLowerCase()+'" >\n';theString+='<TARGETLAYER id="'+LayerID[bufferTargetLayerIndex]+'"/>\n';theString+='<SPATIALQUERY subfields="'+selectFields+'" />\n';theString+='</BUFFER>\n';if(useLimitExtent){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>\n';theString+='</GET_FEATURES>';theString+='</REQUEST>';theString+='</ARCXML>';return theString;}function writeShapeBufferXML(theType){if(swapSelectFields){selectFields=selFieldList[bufferTargetLayerIndex];}var theString='<ARCXML version="1.1">\n<REQUEST>\n<GET_FEATURES outputmode="xml" envelope="false" geometry="false" ';theString+='>\n';theString+='<LAYER id="'+ActiveLayer+'" ftype="'+ActiveLayerType+'" />';theString+='<SPATIALQUERY>';if(useLimitExtent){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+='<SPATIALFILTER relation="area_intersection" >';if(theType==1){theString+='<POLYLINE>\n<PATH>\n';}else{theString+='<POLYGON>\n<RING>\n';}for(var i=0;i<clickCount;i++){theString+='<POINT x="'+clickPointX[i]+'" y="'+clickPointY[i]+'" />\n';}if(theType==2){theString+='</RING>\n</POLYGON>\n';}else{theString+='</PATH>\n</POLYLINE>\n';}theString+='</SPATIALFILTER>';if(useLimitExtent){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+='<BUFFER distance="'+forceComma(bufferDistance)+'" bufferunits="'+ScaleBarUnits.toLowerCase()+'" >\n';theString+='<TARGETLAYER id="'+LayerID[bufferTargetLayerIndex]+'">\n';theString+='<SPATIALQUERY subfields="'+selectFields+'" />\n';theString+='</TARGETLAYER>\n';theString+='</BUFFER>\n';theString+='</SPATIALQUERY>';theString+='</GET_FEATURES>';theString+='</REQUEST>';theString+='</ARCXML>';return theString;}function writeEnvelopeBufferXML(){if(swapSelectFields){selectFields=selFieldList[bufferTargetLayerIndex];}var theString='<ARCXML version="1.1">\n<REQUEST>\n<GET_FEATURES outputmode="xml" envelope="false" geometry="false"';theString+='>\n';theString+='<LAYER id="'+ActiveLayer+'" ftype="'+ActiveLayerType+'" />\n';theString+='<SPATIALQUERY>';theString+='<SPATIALFILTER relation="area_intersection" >\n';theString+='<ENVELOPE '+selectEnvelope+' />';theString+='</SPATIALFILTER>\n';if(useLimitExtent){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+='<BUFFER distance="'+forceComma(bufferDistance)+'" bufferunits="'+ScaleBarUnits.toLowerCase()+'" >\n';theString+='<TARGETLAYER id="'+LayerID[bufferTargetLayerIndex]+'"/>\n';theString+='<SPATIALQUERY subfields="'+selectFields+'" />\n';theString+='</BUFFER>\n';theString+='</SPATIALQUERY>';theString+='</GET_FEATURES>';theString+='</REQUEST>';theString+='</ARCXML>';return theString;}function getBufferAttributeData(theReply){var WindowContent='';var HeaderContent='';setLayerFields(bufferTargetLayerIndex);var theError=getXMLErrorMessage(theReply);var fList="";var lpos1=1;var lpos2=1;var epos=1;var spos=1;var morePoints=true;var moreFeatures=true;var featureCount=justGetFeatureCount(theReply);var pos=0;var startpos=0;var endpos=xmlEndPos;var stillMore=false;pos=theReply.indexOf('hasmore="true"',endpos);if(pos!=-1){stillMore=true;}pos=0;var tempCount=0;var selectedData="";var inData="";var xStr="";var yStr="";var eNorth="";var eSouth="";var eWest="";var eEast="";var fCount=featureCount;var selectCount2=0;var tempString="";var Win1=parent.TextFrame;var theFrame="parent.MapFrame";if(featureCount>0){newSelectCount+=1;WindowContent+=('<STRONG>'+LayerName[bufferTargetLayerIndex]+'</STRONG>');WindowContent+=('<table border="1" cellspacing="0" cellpadding="2" nowrap bgcolor="'+tableBackColor+'">');endpos=1;for(var i=0;i<fCount;i++){inData=parseRecordString(theReply,endpos);endpos=xmlEndPos;selectedData=inData;epos=theReply.indexOf("</FEATURE",endpos);if(showSelectedData){var showHyper=false;if(hyperLinkLayers!=null){for(var s1=0;s1<hyperLinkLayers.length;s1++){if(hyperLinkLayers[s1]==LayerName[bufferTargetLayerIndex]){showHyper=true;}}}var tempActiveLayer=ActiveLayer;var tempActiveLayerIndex=ActiveLayerIndex;var tempActiveLayerType=ActiveLayerType;ActiveLayer=bufferTargetLayer;ActiveLayerIndex=bufferTargetLayerIndex;ActiveLayerType=LayerType[bufferTargetLayerIndex];var fName1=getFieldNames(selectedData);var fValue1=getFieldValues(selectedData);var idFieldNum=-1;var shapeFieldNum=-1;if(hideIDFieldData){for(var f=0;f<fName1.length;f++){if(fName1[f]==LayerIDField[ActiveLayerIndex]){idFieldNum=f;}}}if(hideShapeFieldData){for(var g=0;g<fName1.length;g++){if(fName1[g]==LayerShapeField[ActiveLayerIndex]){shapeFieldNum=g;}}}ActiveLayer=tempActiveLayer;ActiveLayerIndex=tempActiveLayerIndex;ActiveLayerType=tempActiveLayerType;if(selectCount2==0){WindowContent+=('<tr><th><SMALL>'+msgList[86]+'</SMALL></a></th>');for(var h=0;h<fName1.length;h++){if((h!=idFieldNum)&&(h!=shapeFieldNum)){var f2=-1;if(useFieldAlias){for(var f3=0;f3<AliasFieldName.length;f3++){if(AliasFieldName[f3]==fName1[h]){f2=f3;}}}if(f2!=-1){WindowContent+=('<th><SMALL>'+AliasFieldAlias[f2]+'</SMALL></a></th>');}else{WindowContent+=('<th><SMALL>'+fName1[h]+'</SMALL></a></th>');}}}WindowContent+=('</tr>');}WindowContent+=('<tr><td>');WindowContent+=('<SMALL>'+(selectCount2+queryStartRecord+1)+'</SMALL>');WindowContent+=('</td>');for(var k=0;k<fName1.length;k++){if((k!=idFieldNum)&&(k!=shapeFieldNum)){WindowContent+=('<TD>');var isHyper=false;if(showHyper){for(var s1a=0;s1a<hyperLinkFields.length;s1a++){if(hyperLinkFields[s1a]==fName1[k]){var theLinkURL=currentHyperLinkPrefix+fValue1[k]+currentHyperLinkSuffix;WindowContent+=('<a href="'+theLinkURL+'" target="_blank">');isHyper=true;}}}var s2=-1;for(var s1b=0;s1b<LayerFields.length;s1b++){if(fName1[k]==LayerFields[s1b]){s2=s1b;}}if(LayerFieldType[s2]=="91"){var theDate;if(isNaN(fValue1[k])){theDate=fValue1[k];}else{theDate=new Date(parseInt(fValue1[k]));}WindowContent+=('<SMALL>'+theDate+'</SMALL>');theDate=null;}else{WindowContent+=('<SMALL>'+fValue1[k]+'</SMALL>');}if(isHyper){WindowContent+=('</a>');}WindowContent+=('</td>');}}WindowContent+=('</tr>');fName1=null;fValue1=null;}selectCount2+=1;}WindowContent+=('</table>');}else{WindowContent+=('<STRONG>'+LayerName[bufferTargetLayerIndex]+'</STRONG><SMALL>');WindowContent+=('<br />'+msgList[64]);if(debugOn>0){WindowContent+=('<br />'+msgList[65]+'<br />');WindowContent+=(untag(theReply));}else{if(theError!=""){WindowContent+=('<br />'+msgList[66]+'<br />');WindowContent+=(theError);}}WindowContent+=('</SMALL>');}Create_Pop_Up_Window(titleList[10],HeaderContent,WindowContent,'BufferWindow','width=575,height=200,scrollbars=yes,resizable=yes');setLayerFields(ActiveLayerIndex);hideRetrieveData();}

