var createDrillPage = false;
var replyArray = new Array();
var sendStats = false;
var fieldStat = '';
var theMin = 0;
var theMax = 0;
var theString;
var fID = 0;
var fEast;
var fWest;
var fSouth;
var fNorth;
var reverseFieldList = new Array();

for (a=0;a<selFieldList.length;a++) {
	reverseFieldList[a] = selFieldList[a];
}

reverseFieldList.reverse();
var fromDrill = "";

function doDrill(theReply) {
   //drill tool loop sequence
   replyArray[fID] = theReply;
   fID++;
   if (fID < (drillArray.length)) {
        theString = writeGetFeaturesDrill(fWest,fSouth,fEast,fNorth,drillArray[fID]);
        //alert("doDrill \n" + fID + "\n" + theString);
		sendToServer(imsQueryURL,theString,1004);
   }
   if (fID == (drillArray.length)) {
//   if (fID == (LayerID.length)) {
		createDrillPage = false;
		//replyArray.reverse();
		displayAttributeDataforDrill(replyArray);
		//var ActiveLayerIndex = 4;
   }
 }  //end doDrill()

function drillIdentify(e) {
    fID = 0;    //this is here so you can do a drillID again.
	//var ActiveLayerIndex = 0;
	highlightedOne="";
	var theX = mouseX;
	var theY = mouseY;
	getMapXY(theX,theY);
	searchTolerance = (xDistance/iWidth) * pixelTolerance;
	var tempWest = mapX - searchTolerance;
	var tempNorth = mapY + searchTolerance;
	var tempEast = mapX + searchTolerance;
	var tempSouth = mapY - searchTolerance;
	fSouth = tempSouth;
	fNorth = tempNorth;
	fWest = tempWest;
	fEast = tempEast;
	var theString = writeGetFeaturesDrill(tempWest,tempSouth,tempEast,tempNorth,drillArray[fID]);
	//alert("drillIdentify " + theString);
	showRetrieveData();
	sendToServer(imsQueryURL,theString,1004);
}

// write XML to identify features for drill ID
function writeGetFeaturesDrill(west1,south1,east1,north1,thefID) {
	selectFields=reverseFieldList[thefID];
	var useString = writeIdentifyXML(thefID,LayerType[thefID],selectFields,west1,south1,east1,north1,useLimitExtent);
	//alert("writeGetFeaturesDrill " + useString);
	hightlightedOne="";
	return useString;
}

function pullValue (theStr, theList) {
  var theval="";
  var theindex=-1;
  var thelen=0;
  var thenum=0;
  var theright=0;

  thelst = theList.split("|");
  
  for (var i=0;i < thelst.length; i++) {
     theval = thelst[i];
     theindex = theval.indexOf(theStr, 0);
     //alert ("pullValue " + theindex);
     if (theindex != -1)
        {                  
           thelen = theval.length;
           thenum = theval.indexOf (":", 0);
           theright = theval.substr(thenum + 1, (thelen - thenum));
           return theright;
  	}
  }
   //gets out and not found
   return "";
}

// parse XML response for drill functions
function displayAttributeDataforDrill(theReplyArray) {
   showRetrieveData();
	if ((useExternalWindow) || (!useTextFrame)) {
			Win1 = window.open("","QueryWindow","width=575,height=120,scrollbars=yes,resizable=yes");
			theFrame = "opener";
			if (parent.MapFrame!=null) theFrame = "opener.parent.MapFrame";
	} else {
			Win1 = parent.TextFrame;
			Win1.document.open();
	}
	Win1.document.open();
	Win1.document.writeln('<html><head><title>Identify Results</title></head>');
	Win1.document.writeln('<body BGCOLOR="#D7EBFF" text="Navy" link="Blue" vlink="Gray" LEFTMARGIN=0 onload="window.focus()"><center>');
	Win1.document.writeln('<b><FONT FACE="Arial" COLOR="NAVY">Identify Results</FONT></b><br><br>');
	Win1.document.writeln('<table border="1" size="95%" cellspacing="0" cellpadding="3" nowrap BGCOLOR="#D7EBFF">');
	for (b=0;b<theReplyArray.length;b++) {
		theReply = theReplyArray[b];
		var mynum = totalLayerNum0 - drillArray[b];
		setLayerFields(mynum);
		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;
		selectCount = 0;
		var tempString="";
		var Win1 = parent.TextFrame;
		var theFrame = "parent.MapFrame";
		if (featureCount > 0) {
			newSelectCount += 1;
			endpos = 1;
			for (var i=0;i<fCount;i++) {
				inData = parseRecordString(theReply, endpos);
				endpos = xmlEndPos;
				selectedData = clearLeadingSpace(inData);
				epos = theReply.indexOf("</FEATURE",endpos);
				if (showSelectedData) {
					var fName1 = getFieldNames(selectedData);
					//alert(fName1);
					var fValue1 = getFieldValues(selectedData);
					selectPoints[selectCount] = getIdValue(fName1, fValue1);
					if (selectCount==0) {
						Win1.document.write('<tr>');
						for (var f=0;f<fName1.length;f++) {
							var f2 = -1;
							var s2 = -1;
							var my1 = 0;
							var my2 = 0;
							var mystring = fName1[f];
							//alert(mystring + LayerFields[s1]);
							var len = mystring.length;
							for (var s1=0;s1<LayerFields.length;s1++) {
								if (fName1[f]==LayerFields[s1]) s2=s1;
							//alert(mystring + LayerFields[s1]);
							}

							if (useFieldAlias) {
								for (var f3=0;f3<AliasFieldName.length;f3++) {
									//alert("f3=" + f3 + " AliasFieldName[f3]=" + AliasFieldName[f3] + " | " + fName1[f]);
									if (AliasFieldName[f3]==fName1[f]) f2 = f3;
								}
							}
							if (f2!=-1) {
								if ((fName1[f].substring(len-8,len) == "OBJECTID") || (fName1[f].substring(len-9,len) == "SE_ROW_ID") || (fName1[f].substring(len-5,len) == "SHAPE") || (fName1[f] == "AREA") || (fName1[f] == "PERIMETER") || (fName1[f] == "COASTALL_") || (fName1[f] == "COASTALL_I") || (fName1[f] == "#SHAPE#") || (fName1[f] == "SHAPE.fid") || (fName1[f].substring(len-9,len) == "SHAPE_FID") || (fName1[f] == "#ID#")) {
								my1 = my2;
								} else {
									Win1.document.write('<td><FONT FACE="Arial" SIZE="-2">' + AliasFieldAlias[f2] + '</FONT></td>');
								}
							} else {
								if ((fName1[f].substring(len-8,len) == "OBJECTID") || (fName1[f].substring(len-9,len) == "SE_ROW_ID") || (fName1[f].substring(len-5,len) == "SHAPE") || (fName1[f] == "AREA") || (fName1[f] == "PERIMETER") || (fName1[f] == "COASTALL_") || (fName1[f] == "COASTALL_I") || (fName1[f] == "#SHAPE#") || (fName1[f] == "SHAPE.fid") || (fName1[f].substring(len-9,len) == "SHAPE_FID") || (fName1[f] == "#ID#")) {
									my1 = my2;
								} else {
									Win1.document.write('<td><FONT FACE="Arial" SIZE="-2">' + fName1[f] + '</FONT></td>');
								}
							}
							if (fName1[f] == "LAYERS.GIS.ACCOUNTS.ACCOUNT") {
								Win1.document.write('<td><FONT FACE="Arial" SIZE="-2"><a href="http://www.ccappraiser.com/Show_parcel.asp?acct=' + fValue1[f] + '&gen=T&tax=T&bld=T&oth=T&sal=T&lnd=T&leg=T" target="_blank">' + fValue1[f] + '</a></FONT></td></tr>');
							} else if (fName1[f] == "LAYERS.GIS.ELU.LANDUSE") {
								Win1.document.write('<td><FONT FACE="Arial" SIZE="-2"><a href="../gis/Existing Land Use.htm" target="_blank">' + fValue1[f] + '</a></FONT></td></tr>');
							} else if (fName1[f] == "LAYERS.GIS.FEMA_W_LOMR.FZONE") {
								Win1.document.write('<td><FONT FACE="Arial" SIZE="-2"><a href="../gis/femanew.htm" target="_blank">' + fValue1[f] + '</a></FONT></td></tr>');
							} else if (fName1[f] == "LAYERS.GIS.PREFMAP.FZONE") {
								Win1.document.write('<td><FONT FACE="Arial" SIZE="-2"><a href="../gis/fema_old.htm" target="_blank">' + fValue1[f] + '</a></FONT></td></tr>');
							} else if (fName1[f] == "LAYERS.GIS.ZONING_NEW.ZONE_") {
								Win1.document.write('<td><FONT FACE="Arial" SIZE="-2"><a href="../gis/zoning.htm" target="_blank">' + fValue1[f] + '</a></FONT></td></tr>');
							} else if (fName1[f] == "LAYERS.GIS.LOTS.SUBDIV") {
								Win1.document.write('<td><FONT FACE="Arial" SIZE="-2"><a href="../gis/subdiv.htm" target="_blank">' + fValue1[f] + '</a></FONT></td></tr>');
							} else if ((fName1[f].substring(len-8,len) == "OBJECTID") || (fName1[f].substring(len-9,len) == "SE_ROW_ID") || (fName1[f].substring(len-5,len) == "SHAPE") || (fName1[f] == "AREA") || (fName1[f] == "PERIMETER") || (fName1[f] == "COASTALL_") || (fName1[f] == "COASTALL_I") || (fName1[f] == "SHAPE.fid") || (fName1[f] == "#SHAPE#") || (fName1[f].substring(len-9,len) == "SHAPE_FID") || (fName1[f] == "#ID#")) {
								my1 = my2;
							} else if (fName1[f] == "LAYERS.GIS.FLUM.NEWLU") {
								if (fValue1[f] == "Charlotte Harbor CRA") {
									Win1.document.write('<td><FONT FACE="Arial" SIZE="-2"><a href="http://www.charlottecountyfl.com/cra/maps.htm" target="_blank">' + fValue1[f] + '</a></FONT></td></tr>');
								} else {
									Win1.document.write('<td><FONT FACE="Arial" SIZE="-2">' + fValue1[f] + '</FONT></td></tr>');
								}
							} else if ((fName1[f].substring(len-8,len) == "OBJECTID") || (fName1[f].substring(len-9,len) == "SE_ROW_ID") || (fName1[f].substring(len-5,len) == "SHAPE") || (fName1[f] == "AREA") || (fName1[f] == "PERIMETER") || (fName1[f] == "COASTALL_") || (fName1[f] == "COASTALL_I") || (fName1[f] == "SHAPE.fid") || (fName1[f] == "#SHAPE#") || (fName1[f].substring(len-9,len) == "SHAPE_FID") || (fName1[f] == "#ID#")) {

							} else {
								Win1.document.write('<td><FONT FACE="Arial" SIZE="-2">' + fValue1[f] + '</FONT></td></tr>');
							}
						}
					}
					fName1 = null;
					fValue1 = null;
				}
				selectCount += 1;
			}
		} else {
		}
	}//end for  
    Win1.document.writeln('</table></center></body></html>');
    Win1.document.close();
    Win1=null;
    fromDrill = true;
    clearSelection();
    fromDrill = false;
    hideRetrieveData();
} //end function