// aimsIdentify.js
/*
*  JavaScript template file for ArcIMS HTML Viewer
*		dependent on aimsXML.js, ArcIMSparam.js, aimsCommon.js, aimsMap.js, and aimsLayers.js
*		To be interactive, dependent also on aimsDHTML.js, aimsClick.js, and aimsNavigation.js
*/

aimsIdentifyPresent=true;

// hyperlink variables
var currentHyperLinkLayer="";
var currentHyperLinkField="";
var currentHyperLinkPrefix="";
var currentHyperLinkSuffix="";
var hyperlinkWindowWidth=500;
var hyperlinkWindowHeight=400;
var newX="";
var newY="";
// variable for search tolerance... dynamically set in app
var searchTolerance=1/100;
// starting record position for returned records
var queryStartRecord=0;

if (imsQueryURL=="") {
	imsQueryURL= imsURL + "&CustomService=Query";
}
var canQuery=true;
var newSelectCount=0;
var selectPoints = new Array();

// can features be selected if invisible or not within layer scale threshholds?
var canSelectInvisible=true;
var addAttributeToMap = "";

/*
***************************************************************************************

Identify functions 

***************************************************************************************
*/

// identify feature
function identify(e) {
	if (checkIfActiveLayerAvailable()) {
	//    ActiveLayer = 3;
		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;
		var theString = writeGetFeatures(tempWest,tempSouth,tempEast,tempNorth);
	
		showRetrieveData();
		sendToServer(imsQueryURL,theString,identifyXMLMode);
	}
}

// hyperlink from feature in active layer
function hyperLink(e) {
	if (checkIfActiveLayerAvailable()) {
		if (currentHyperLinkLayer!="") {
			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;
			var tempSwap = swapSelectFields;
			swapSelectFields=false;
			var tempSelect = selectFields;
			selectFields = LayerIDField[ActiveLayerIndex] + " " + LayerShapeField[ActiveLayerIndex] + " " + currentHyperLinkField;
			var theString = writeGetFeatures(tempWest,tempSouth,tempEast,tempNorth);
			selectFields = tempSelect;
			swapSelectFields=tempSwap;
			showRetrieveData();
			//if (useTextFrame) parent.TextFrame.document.location = "text.htm";
			sendToServer(imsQueryURL,theString,hyperlinkXMLMode);
		} else {
			alert(msgList[47]);
		}
	}
}


function writeGetFeatures(west1,south1,east1,north1) {
	if (swapSelectFields) {
		selectFields=selFieldList[ActiveLayerIndex];
	}
	var useString = writeIdentifyXML(ActiveLayer,ActiveLayerType,selectFields,west1,south1,east1,north1,maxFeaturesReturned,useLimitExtent);
	hightlightedOne="";
	return useString;
}

function writeIdentifyXML(theLayer,theLayerType,theFields,leftX,bottomY,rightX,topY,maxReturned,hasLimit) {
	var theString = '<ARCXML version="1.1">\n<REQUEST>\n<GET_FEATURES outputmode="xml" envelope="false" geometry="false" featurelimit="' + maxReturned + '">\n';
	theString += '<LAYER id="' + theLayer + '" />';
	theString += '<SPATIALQUERY subfields="' + theFields + '">';
	theString += '<SPATIALFILTER relation="area_intersection" >';
	theString += '<ENVELOPE maxy="' + forceComma(topY) + '" maxx="' + forceComma(rightX) + '" miny="' + forceComma(bottomY) + '" minx="' + forceComma(leftX) + '" />';
	theString += '</SPATIALFILTER>';
	theString += '</SPATIALQUERY>';
	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 += '</GET_FEATURES>';
	theString += '</REQUEST>';
	theString += '</ARCXML>';
	return theString;

}

function displayAttributeData(theReply) {
        
        parent.ToolFrame.zoomin.src="images/zoomin_1.gif";
        parent.ToolFrame.zoomout.src="images/zoomout_1.gif";
        parent.ToolFrame.pan.src="images/pan_1.gif";

	setLayerFields(ActiveLayerIndex);
	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==1) {
	    if (toolMode!=4) {
				var theXYs = getEnvelopeXYs(theReply, 1)
				selectLeft[0] = theXYs[0];
				selectBottom[0] = theXYs[1];
				selectRight[0] = theXYs[2];
				selectTop[0] = theXYs[3];
				//endpos = xmlEndPos;
			}	
	  	showHighlight(0);  
	} 
	*/
	 if (featureCount > 0) {
		newSelectCount += 1;
		if (showSelectedData) {
			Win1 = window.open("","QueryWindow","width=400,height=330,scrollbars=yes,resizable=yes");
				theFrame = "opener";
				if (parent.MapFrame!=null) theFrame = "opener.parent.MapFrame";	
		  	
			Win1.document.open();
			Win1.document.writeln('<html><head><title>Query/Selection Results</title></head>');
			Win1.document.writeln('<body bgcolor="white" text="Black" link="Blue" vlink="Gray" LEFTMARGIN=0 onload="window.focus()">');
			Win1.document.writeln('<FONT FACE="Arial" SIZE="-1"><p><b>Listed are the parcels located on the street you searched. Click on the record number of the parcel you are interested to view the map and Business Development and Incentive Zones:</b></p>');
			Win1.document.writeln('<table border="0" cellspacing="0" cellpadding="2" nowrap bgcolor="' + tableBackColor + '">');
		}
		endpos = 1;	
		for (var i=0;i<fCount;i++) {
			if (toolMode!=4) {
				var theXYs = getEnvelopeXYs(theReply, endpos)
				selectLeft[selectCount] = theXYs[0];
				selectBottom[selectCount] = theXYs[1];
				selectRight[selectCount] = theXYs[2];
				selectTop[selectCount] = theXYs[3];
				endpos = xmlEndPos;
			}	
			inData = parseRecordString(theReply, endpos);
			endpos = xmlEndPos;
			selectedData = clearLeadingSpace(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[ActiveLayerIndex]) showHyper=true;
						if (hyperLinkLayers[s1] == LayerName[ActiveLayerIndex]) alert("hyperLinkLayers[s1],LayerName[ActiveLayerIndex],s1,ActiveLayerIndex" + hyperLinkLayers[s1] + LayerName[ActiveLayerIndex] + s1 + ActiveLayerIndex);
					}
				}
					
				var fName1 = getFieldNames(selectedData);
				var fValue1 = getFieldValues(selectedData);
				selectPoints[selectCount] = getIdValue(fName1, fValue1);		
				if (selectCount==0) {
					Win1.document.write('<tr><th bgcolor="#ffffcc"><FONT FACE="Arial" SIZE="-1">Rec</FONT></a></th>');
					for (var f=0;f<fName1.length;f++) {
						var f2 = -1;
						if (useFieldAlias) {
							for (var f3=0;f3<AliasFieldName.length;f3++) {
								if (AliasFieldName[f3]==fName1[f]) f2 = f3;
							}
						}
						//if ((f2!=-1) && (AliasFieldAlias[f2]=="APN")) {
						if (f2!=-1) {
							Win1.document.write('<th bgcolor="#ffffcc"><FONT FACE="Arial" SIZE="-1">' + AliasFieldAlias[f2] + '</FONT>&nbsp;</a></th>');
						}
					}
					Win1.document.writeln('</tr>');
				}
				Win1.document.write('<tr>');
			                    var ef = i/2;
								ef = ef.toString();  
								if (ef.substring(((ef.length)-2),(ef.length))!=".5") {
				                   Win1.document.write('<TD>');	
								} else {
								    Win1.document.write('<TD bgcolor="#ffffcc">');	
					            }	
				if (toolMode!=4) Win1.document.write('<a href="javascript:' + theFrame + '.showHighlight(' + selectCount + ')">');
				Win1.document.write('<FONT FACE="Arial" SIZE="-1">' + (selectCount+queryStartRecord+1) + '</FONT>');
				if (toolMode!=4) Win1.document.write('</a>');
				Win1.document.writeln('</td>');
				
				 for (var f=0;f<fName1.length;f++) {	
			
						var s2 = -1;
						for (var s1=0;s1<LayerFields.length;s1++) {
						    if (useFieldAlias) {
								for (var s3=0;s3<AliasFieldName.length;s3++) {
									if (AliasFieldName[s3]==fName1[f]) s2=f;
								}
							}
				
						}
						
					
							if (s2 != -1) {
							     var ev = i/2;
								 ev = ev.toString();  
								if (ev.substring(((ev.length)-2),(ev.length))!=".5") {
				                   Win1.document.write('<TD>');	
								} else {
								    Win1.document.write('<TD bgcolor="#ffffcc">');	
								}			
							tempString = fValue1[s2];
							
							Win1.document.write('<FONT FACE="Arial" SIZE="-1">' + tempString + '&nbsp;</FONT>');
							
						    
							Win1.document.writeln('</td>');
						
						}
		
				}
				Win1.document.writeln('</tr>');
				fName1 = null;
				fValue1 = null;
				
			}
			selectCount += 1;
					
		}
		if (showSelectedData) {
			
			Win1.document.writeln('</table>');
			if (toolMode!=25) {
				if (queryStartRecord>0) {
					var prevRecord = queryStartRecord - maxFeaturesReturned;
					if (prevRecord<0) prevRecord=0;
					Win1.document.write('<a href="javascript:' + theFrame + '.getMoreData(' + prevRecord + ')">Previous ' + maxFeaturesReturned + ' Records</a>&nbsp;&nbsp;&nbsp;');
				}
				if (stillMore) {
					var nextRecord=featureCount + queryStartRecord;
					Win1.document.writeln('<a href="javascript:' + theFrame + '.getMoreData(' + nextRecord + ')">More Records</a>');
				}
			}
			Win1.document.writeln('</font></body></html>');
			Win1.document.close();
		}
	} 
	
	if (featureCount==0) {
		/* Win1 = window.open("","QueryWindow","width=250,height=100,scrollbars=yes,resizable=yes");
		Win1.document.open();
		Win1.document.writeln('<html><head>');
		Win1.document.writeln('	<title>Select Results</title>');
		Win1.document.writeln('</head>');
		Win1.document.writeln('<body BGCOLOR="White" TEXT="Black" LEFTMARGIN=0 TOPMARGIN=0>');
		Win1.document.writeln('<FONT FACE="Arial">');
		Win1.document.writeln('<br>There is no matching apn or address for your query.');
		if (debugOn>0) {
			Win1.document.writeln('<p>Returned ArcXML Response:<br>');
			Win1.document.writeln(untag(theReply));
		} else {
			if (theError!="") {
				Win1.document.writeln('<p>Server returned:<br>');
				Win1.document.writeln(theError);
			}
		}
		Win1.document.writeln('</FONT>');
		Win1.document.writeln('</body></html>');
		Win1.document.close();
               */
                alert("There is no matching apn or address for your query. Click OK and try again");
	}
	if ((toolMode==4) || (toolMode==9))  selectCount=0;
	Win1=null;
	hideRetrieveData();
	
}
	
	

function parseHyperLink(theReply) {
	//alert(theReply);
	var fList="";
	var lpos1 = 1;
	var lpos2 = 1;
	var pos = 0;
	var startpos = 0;
	var endpos = 0;
	var fString = theReply.substring(startpos,endpos);
	var featureCount = justGetFeatureCount(theReply);
	var linkString = "width=" + hyperlinkWindowWidth + ",height=" + hyperlinkWindowHeight + ",scrollbars=yes,resizable=yes"
	var selectedData="";
	var fCount = featureCount;
	
	selectCount = 0;
	var tempString="";
	if (featureCount > 0) {
		var searchStr = currentHyperLinkField + "=";
		
		newSelectCount += 1;

		endpos = 1;
		pos = theReply.indexOf(searchStr,1);
		startpos = pos + searchStr.length + 1;
		endpos =theReply.indexOf(dQuote,startpos);
		inData = theReply.substring(startpos,endpos);
		var theLinkURL = currentHyperLinkPrefix + inData + currentHyperLinkSuffix;
		if (parent.TextFrame!=null) {
			parent.TextFrame.document.open();
			parent.TextFrame.document.writeln('<html><meta http-equiv="Content-Type" content="text/html; charset=' + charSet + '"><head>');
			parent.TextFrame.document.writeln('	<title>' + titleList[9] + 's</title>');
			parent.TextFrame.document.writeln('</head>');
			parent.TextFrame.document.writeln('<body BGCOLOR="White" TEXT="Black" LEFTMARGIN=0 TOPMARGIN=0>');
			parent.TextFrame.document.writeln('<FONT FACE="Arial"><B>' + LayerName[ActiveLayerIndex] +'</B></font><FONT FACE="Arial" size="-2">');
			parent.TextFrame.document.writeln('<br>' + msgList[67] + theLinkURL );
			parent.TextFrame.document.writeln('</FONT>');
			parent.TextFrame.document.writeln('</body></html>');
			parent.TextFrame.document.close();
		}
		var Win1=open(theLinkURL,"",linkString);
	} else {
	

		if (parent.TextFrame!=null) {
			parent.TextFrame.document.open();
			parent.TextFrame.document.writeln('<html><meta http-equiv="Content-Type" content="text/html; charset=' + charSet + '"><head>');
			parent.TextFrame.document.writeln('	<title>' + titleList[9] + '</title>');
			parent.TextFrame.document.writeln('</head>');
			parent.TextFrame.document.writeln('<body BGCOLOR="White" TEXT="Black" LEFTMARGIN=0 TOPMARGIN=0>');
			parent.TextFrame.document.writeln('<FONT FACE="Arial"><B>' + LayerName[ActiveLayerIndex] +'</B></font><FONT FACE="Arial" size="-2">');
			parent.TextFrame.document.writeln('<br>' + msgList[68]);
			if (debugOn>0) {
				parent.TextFrame.document.writeln('<p>' + msgList[65] + '<br>');
				parent.TextFrame.document.writeln(untag(theReply));
			}
			parent.TextFrame.document.writeln('</FONT>');
			parent.TextFrame.document.writeln('</body></html>');
			parent.TextFrame.document.close();
		} else {
			var msg = msgList[69];
			if (debugOn>0) {
				msg = msg + msgList[9] + theReply;
			}
			alert(msg);
		}
	}
	hideRetrieveData();
}

// are there any selected features?
function checkSelected() {
	var isOk = false;
	if (selectCount>0) isOk = true;
	return isOk;
}

function checkHyperLinkLayer(layerIndex) {
	var canLink = false;

	for (var i=0; i<hyperLinkLayers.length; i++) {

			if (LayerName[layerIndex]==hyperLinkLayers[i]) {
				canLink=true;
				currentHyperLinkLayer=LayerName[layerIndex];
				currentHyperLinkField=hyperLinkFields[i];
				currentHyperLinkPrefix=hyperLinkPrefix[i];
				currentHyperLinkSuffix=hyperLinkSuffix[i];
			}
	}
	return canLink;

}


function checkIfActiveLayerAvailable() {

	if (canSelectInvisible) {
		return true;
	} else {
	
		if ((mapScaleFactor>=LayerMinScale[ActiveLayerIndex]) && (mapScaleFactor<=LayerMaxScale[ActiveLayerIndex])) {
		
			if (LayerVisible[ActiveLayerIndex]==1) {
				return true;
			
			} else {
				var msg = msgList[104] + LayerName[ActiveLayerIndex] + msgList[102] + LayerName[ActiveLayerIndex] + msgList[108];
				
				alert(msg);
				return false;
			}
		} else {
			var msg = msgList[104] + LayerName[ActiveLayerIndex] + msgList[101];
			
			alert(msg);
			return false;
		}
	}
}


/**************************************************************
*	functions and variables for Identify All
*	drill down through visible layers
**************************************************************/

var replyArray = new Array();
var fID = 0;
var fIndex = 0;
var idEast;
var idWest;
var idSouth;
var idNorth;

function identifyAll1(e) {
	fID = 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;
	idSouth = tempSouth;
	idNorth = tempNorth;
	idWest = tempWest;
	idEast = tempEast;
	replyArray.length=0;
	var j =-1;
	for (var i=(LayerID.length-1);i>=0;i--) {
		replyArray[i]="";
		if ((mapScaleFactor>=LayerMinScale[i]) && (mapScaleFactor<=LayerMaxScale[i]) && (LayerVisible[i]) && (LayerIsFeature[i])) j = i;
	}
	if (j>-1) {
		fID=j;
		var theString = writeGetFeaturesDrill(tempWest,tempSouth,tempEast,tempNorth,fID);

		showRetrieveData();
		sendToServer(imsQueryURL,theString,10);

	} else {
		alert(msgList[111]);
	}
}


function identifyAll(tempWest,tempSouth,tempEast,tempNorth) {
	fID = 0;
	//highlightedOne="";
	
	idSouth = tempSouth;
	idNorth = tempNorth;
	idWest = tempWest;
	idEast = tempEast;
	replyArray.length=0;

	var theString = writeGetFeaturesDrill(tempWest,tempSouth,tempEast,tempNorth,fID);
	
	showRetrieveData();
	sendToServer(imsQueryURL,theString,10);
	
}


function doIdentifyAll(theReply) {
 //alert(theReply);
   replyArray[fID] = theReply;
   fID++;
  // alert(fID);
   if (fID < (LayerID.length)) {
   		if (LayerIsFeature[fID]) {
      		theString = writeGetFeaturesDrill(idWest,idSouth,idEast,idNorth,fID);
		    showRetrieveData();
	  		sendToServer(imsQueryURL,theString,10);
			
	   	} else {
			doIdentifyAll("");
		}
   }
   
   if (fID == (LayerID.length)) {
	
	displayAttributeDataforDrill(replyArray);
	fID = 0;
	
   }
 }  


function writeGetFeaturesDrill(west1,south1,east1,north1,thefID) {
	if (swapSelectFields) {
		selectFields=selFieldList[thefID];
	}
	showId = true;
		
	var useString = writeIdentifyXML(LayerID[thefID],LayerType[thefID],selectFields,west1,south1,east1,north1,maxFeaturesReturned,useLimitExtent);
	hightlightedOne="";
	return useString;
}

function getIDMap() {
               //	alert(highlightedOne);
				var tempWidth = iWidth;
	           var tempHeight = iHeight;
				eLeft = idWest - 2000;
				eRight = idEast + 2000;
				eTop = idNorth + 2000;
				eBottom = idSouth - 2000;
	            selectCount = 1;
				iWidth=495;
	            iHeight=400;
			   var aString = writeXML();
			   showRetrieveData();
	           sendToServer(imsURL,aString,101);
			   hideRetrieveData();
			   iWidth=tempWidth;
	           iHeight = tempHeight;
	          tempWidth=null;
	          tempHeight=null;
	           aString=null;
	      
}


function getOVMap(eLeft,eRight,eTop,eBottom) {

	theText = writeOVXML();
        sendToServer(imsOVURL,theText,2);



}

function displayAttributeDataforDrill(theReplyArray) {
  
    showRetrieveData();

	var ppc = "";
	ppc += '<center><font face="arial" size=-1><strong>Search Results</strong></font></center>';

	var lyrCount = 0;
	var SDRRFL_selected=false;
	 for (b=0;b<theReplyArray.length;b++) {
	    var linkId = 999;
	 	if (theReplyArray[b]!="") {
		   
			theReply = theReplyArray[b];
			
			if (b==5) {
			ppc += '<br><table border="0" width="670" cellspacing="0" cellpadding="0" ><tr><font color="red" size=-1><strong>Business Development and Incentive Zone(s):</strong></font></tr></table>';
			}
			
//mehmet			if (b==13) {
			if (b==15) {
			     ppc += '<br>';
			}
			setLayerFields(b);
			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 fCount = featureCount;
			
			selectCount = 0;
			var tempString="";
			
//mehmet			if ((featureCount==0) && (b>4) && (b<13)) {
			if ((featureCount==0) && (b>4) && (b<15)) {
			  ppc += '<table border="0" size="95%" cellspacing="0" cellpadding="0" nowrap bgcolor="' + tableBackColor + '">';	
			  ppc += '<tr><td><LI></LI></td>';
			  ppc += '<td><font size=-1>' + LayerName[b] + '&nbsp;&nbsp; N/A</font></td></tr>';
			  ppc += '</table>';
			} 
						
			if (featureCount > 0) {
	 	   
				var showHyper = false;
						if (hyperLinkLayers!=null) {
							for (var s1=0;s1<hyperLinkLayers.length;s1++) {
								if (hyperLinkLayers[s1] == LayerName[b]) {
										linkId = s1;
								} 
								
							}
						}
				newSelectCount += 1;
				endpos = 1;

				ppc += '<table border="0" size="95%" cellspacing="0" cellpadding="0" nowrap bgcolor="' + tableBackColor + '">';						
				for (var i=0;i<fCount;i++) {
		
					inData = parseRecordString(theReply, endpos);
					//alert(inData);
					endpos = xmlEndPos;
					//selectedData = clearLeadingSpace(inData);
					selectedData = inData;
					
					epos = theReply.indexOf("</FEATURE",endpos);
					if (showSelectedData) {
						//alert("2\n" + selectedData);
						
						var fName1 = getFieldNames(selectedData);
						var fValue1 = getFieldValues(selectedData);
						var idFieldNum = -1;
						var shapeFieldNum = -1;
						if (hideIDFieldData) {
							// hide ID column header
							for (var f=0;f<fName1.length;f++) {
								if (fName1[f]==LayerIDField[ActiveLayerIndex]) idFieldNum = f;
							}
						}
						if (hideShapeFieldData) {
							// hide Shape column header
							for (var f=0;f<fName1.length;f++) {
								if (fName1[f]==LayerShapeField[ActiveLayerIndex]) shapeFieldNum = f;
							}
						}
						if (selectCount==0) {
							ppc += '<tr>';
						
							for (var f=0;f<fName1.length;f++) {
								if ((f!=idFieldNum) && (f!=shapeFieldNum)) {
									var f2 = -1;
									if (useFieldAlias) {
										for (var f3=0;f3<AliasFieldName.length;f3++) {
											if (AliasFieldName[f3]==fName1[f]) f2 = f3;
										}
									}
								//alert(f2);
								 if (f2!=-1) {
//mehmet								     if (b>4 && b<13) {
								     if (b>4 && b<15) {
				
									   ppc += '<td><LI></LI></td>';
									   
									   
									   if (linkId==999) {
										ppc += '<td><FONT SIZE="-1" color="green"><strong>' +  AliasFieldAlias[f2] + '&nbsp;&nbsp;</strong></FONT></td>';
										
								        } 
										else {
												ppc += '<td><FONT FACE="Arial" SIZE="-2"><strong><a href="' + hyperLinkFields[linkId] + '">' + AliasFieldAlias[f2] + '&nbsp;&nbsp;</a></strong></FONT></td>';
										}
										
// mehmet								if ((b!=13) && (b!=15)) {
										if (b!=13) {
											ppc += '<td><FONT FACE="Arial" SIZE="-2">' + fValue1[f] + '</FONT></td>';
										}
											
									} else {
									
								ppc += '<td><FONT color="red" SIZE="-1"><b>' + AliasFieldAlias[f2] + '&nbsp;&nbsp;</b></FONT></td>';	
                                						
										ppc += '<td><FONT FACE="Arial" SIZE="-2">' + fValue1[f] + '</FONT></td>';
									}
									
								 }
									
								}
							}
							ppc += '</tr>';
						}	
						fName1 = null;
						fValue1 = null;
					}
					selectCount += 1;
									
				}
				ppc += '</table>';
				lyrCount++
              
			} else {
				if (listAllLayersInIDAll) {
		       
		     	}

			}
	  	}
	  
	 }
	  
 
    addAttributeToMap = ppc;

    hideRetrieveData();
	newX=mapX;
	newY=mapY;
	showId=false;
	getIDMap();
	//showId=false;
} 


// checks if any layer has hyperlink at location and links to first one matching
function hyperLinkAny(e) {
	if (hyperLinkLayers.length>0) {
		var j = -1;
		fIndex = 0;
		for (var i=layerCount-1;i>-1;i--) {
			
			if ((mapScaleFactor>=LayerMinScale[i]) && (mapScaleFactor<=LayerMaxScale[i]) && (LayerVisible[i]==1)) {
				fIindex = -1;
				for (var k = hyperLinkLayers.length-1;k>-1;k--) {
					if (hyperLinkLayers[k]==LayerName[i]) {
alert("hyperLinkLayers[s1],LayerName[ActiveLayerIndex],s1,ActiveLayerIndex here 4" + hyperLinkLayers[k] + LayerName[i] + k +i);
						fIndex = k;
						j = i;
					}
				}
			}

		}
		if (j>-1) {
			fID = j;
			highlightedOne="";
			var theX = mouseX;
			var theY = mouseY;
			getMapXY(theX,theY);
			searchTolerance = (xDistance/iWidth) * pixelTolerance;
			var west1 = mapX - searchTolerance;
			var north1 = mapY + searchTolerance;
			var east1 = mapX + searchTolerance;
			var south1 = mapY - searchTolerance;
			idSouth = south1;
			idNorth = north1;
			idWest = west1;
			idEast = east1;
			var tempSwap = swapSelectFields;
			swapSelectFields=false;
			var tempSelect = selectFields;
			selectFields = LayerIDField[fID] + " " + LayerShapeField[fID] + " " + hyperLinkFields[fIndex];
			var theString = writeIdentifyXML(LayerID[fID],LayerType[fID],selectFields,west1,south1,east1,north1,maxFeaturesReturned,useLimitExtent);

			selectFields = tempSelect;
			swapSelectFields=tempSwap;
			showRetrieveData();

			sendToServer(imsQueryURL,theString,16);
			
		} else {
			alert(msgList[114]);
		}
	} else {
		alert(msgList[115]);
	}
}

function parseHyperLinkAny(theReply) {

	var fList="";
	var lpos1 = 1;
	var lpos2 = 1;
	var pos = 0;
	var startpos = 0;
	var endpos = 0;
	var fString = theReply.substring(startpos,endpos);
	var featureCount = justGetFeatureCount(theReply);
	var linkString = "width=" + hyperlinkWindowWidth + ",height=" + hyperlinkWindowHeight + ",scrollbars=yes,resizable=yes"
	var selectedData="";
	var fCount = featureCount;
	//alert("displayAttributeData()[featurecount=" + featureCount + "]");
	selectCount = 0;
	var tempString="";
	if (featureCount > 0) {
		var searchStr = hyperLinkFields[fIndex] + "=";
		
		newSelectCount += 1;

		endpos = 1;
		pos = theReply.indexOf(searchStr,1);
		startpos = pos + searchStr.length + 1;
		endpos =theReply.indexOf(dQuote,startpos);
		inData = theReply.substring(startpos,endpos);
		var theLinkURL = hyperLinkPrefix[fIndex] + inData + hyperLinkSuffix[fIndex];
		if (parent.TextFrame!=null) {
			parent.TextFrame.document.open();
			parent.TextFrame.document.writeln('<html><meta http-equiv="Content-Type" content="text/html; charset=' + charSet + '"><head>');
			parent.TextFrame.document.writeln('	<title>' + titleList[9] + 's</title>');
			parent.TextFrame.document.writeln('</head>');
			parent.TextFrame.document.writeln('<body BGCOLOR="White" TEXT="Black" LEFTMARGIN=0 TOPMARGIN=0>');
			parent.TextFrame.document.writeln('<FONT FACE="Arial"><B>' + LayerName[fID] +'</B></font><FONT FACE="Arial" size="-2">');
			parent.TextFrame.document.writeln('<br>' + msgList[67] + theLinkURL );
			parent.TextFrame.document.writeln('</FONT>');
			parent.TextFrame.document.writeln('</body></html>');
			parent.TextFrame.document.close();
		}
		var Win1=open(theLinkURL,"",linkString);
	} else if (fID<layerCount) {
			fID++;
			var j = -1;
			if ((mapScaleFactor>=LayerMinScale[fID]) && (mapScaleFactor<=LayerMaxScale[fID]) && (LayerVisible[fID]==1)) {
				fIindex = -1;
				for (var k = hyperLinkLayers.length-1;k>-1;k--) {
					if (hyperLinkLayers[k]==LayerName[fID]) {
						fIndex = k;
						j = fID;
//alert("hyperLinkLayers[s1],LayerName[ActiveLayerIndex],k,fID" + hyperLinkLayers[k] + LayerName[ActiveLayerIndex] + k + fID);
					}
				}
			}
			if (j>-1) {
				var tempSwap = swapSelectFields;
				swapSelectFields=false;
				var tempSelect = selectFields;
				selectFields = LayerIDField[fID] + " " + LayerShapeField[fID] + " " + hyperLinkFields[fIndex];
				var theString = writeIdentifyXML(LayerID[fID],LayerType[fID],selectFields,idWest,idSouth,idEast,idNorth,maxFeaturesReturned,useLimitExtent);
	
				selectFields = tempSelect;
				swapSelectFields=tempSwap;
				showRetrieveData();
				//if (useTextFrame) parent.TextFrame.document.location = "text.htm";
				sendToServer(imsQueryURL,theString,16);
			} else {
				parseHyperLinkAny("");
			}
	

	} else {
	
		//alert(tempString);
		if (parent.TextFrame!=null) {
			parent.TextFrame.document.open();
			parent.TextFrame.document.writeln('<html><meta http-equiv="Content-Type" content="text/html; charset=' + charSet + '"><head>');
			parent.TextFrame.document.writeln('	<title>' + titleList[9] + '</title>');
			parent.TextFrame.document.writeln('</head>');
			parent.TextFrame.document.writeln('<body BGCOLOR="White" TEXT="Black" LEFTMARGIN=0 TOPMARGIN=0>');
			parent.TextFrame.document.writeln('<FONT FACE="Arial" size="-1">');
			
			parent.TextFrame.document.writeln('<br>' + msgList[116]);
		
			parent.TextFrame.document.writeln('</FONT>');
			parent.TextFrame.document.writeln('</body></html>');
			parent.TextFrame.document.close();
		} else {
			var msg = msgList[69];
			if (debugOn>0) {
				msg = msg + msgList[9] + theReply;
			}
			alert(msg);
		}
	}
	hideRetrieveData();
}

