// aimsKeyHab.js
/*
*  JavaScript template file for ArcIMS HTML Viewer
*		dependent on aimsXML.js, ArcIMSparam.js, aimsIdentify.js
*		To be interactive, dependent also on aimsDHTML.js, aimsClick.js, and aimsNavigation.js
*/


var khcSelectFields="#ALL#";
var khcLayer="17";
var khcLayerType="polygon";
var khcLayerIndex=0;


// identify reserve
function greenWebIdentify(e) {
	if (checkIfGWLayerAvailable()) {
		//alert("Made it to NEW resIdentify in NPWS.js");
		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;
		var theString = writeIdentifyXML(khcLayer,khcLayerType,khcSelectFields,west1,south1,east1,north1,maxFeaturesReturned,useLimitExtent);
		showRetrieveData();
		sendToServer(imsQueryURL,theString,greenWebIDXMLMode);
	}
}

function greenWebDisplayData(theReply) {
 	var khcPath = getPath(document.location.pathname);
	var khcHyperLinkPrefix = khcPath + "assemblage_info/";
	var khcHyperLinkSuffix = ".htm";
	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 tempString = "";
	var fCount = featureCount;
	selectCount = 0;
	var tempString="";
	var Win1 = parent.QueryFrame; //MES
	var theFrame = "parent.MapFrame";
	var selectPoints=new Array();
	if (featureCount > 0) {
		//alert("theReply = " + theReply);
		var	Win1 = window.open("","QueryWindow","width=430,height=420,scrollbars=yes,resizable=no");
		Win1.document.writeln('<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">');
		Win1.document.writeln('<html><meta http-equiv="Content-Type" content="text/html; charset=' + charSet + '"><head><title>Revegetation and Regeneration Site Identify</title>');
           Win1.document.writeln('<SCRIPT TYPE="text/javascript">');
           Win1.document.writeln('<!--');
           Win1.document.writeln('function popup(mylink, windowname)');
           Win1.document.writeln('{');
           Win1.document.writeln('if (! window.focus)return true;');
           Win1.document.writeln('var href;');
           Win1.document.writeln('if (typeof(mylink) == \'string\')');
        Win1.document.writeln('href=mylink;');
           Win1.document.writeln('else');
        Win1.document.writeln('href=mylink.href;');
           Win1.document.writeln('window.open(href, windowname, \'width=440,height=670,scrollbars=yes,resizable=yes,dependent=yes\');');
           Win1.document.writeln('return false;');
           Win1.document.writeln('}');
           Win1.document.writeln('//-->');
           Win1.document.writeln('</SCRIPT>');
           Win1.document.writeln('</head>');


//http://gisweb/Website/Dev/NPWS_Maps/keyhabs/images/yellow_background.gif
//http://gisweb/Website/Dev/NPWS_Maps/green/images/spacer.gif
		Win1.document.writeln('<body bgcolor="' + QueryFrameBackColor + '" text="Black" link="Blue"  vlink="Blue" topmargin="0" leftmargin="0" marginwidth="0" marginheight="0" BACKGROUND="images/yellow_background.gif" LEFTMARGIN=0 onload="window.focus()">');
		Win1.document.writeln('<FONT FACE="Arial" SIZE="-1">');
		Win1.document.writeln('<table cellpadding="0" cellspacing="0" border="0" width="100%">');
		Win1.document.writeln('<tr>');
		Win1.document.writeln('<td width="7">');
		Win1.document.writeln('<img src="images/spacer.gif" width="7" height="10" alt="" border="0">');
		Win1.document.writeln('</td>');
		Win1.document.writeln('<td>');
		Win1.document.writeln('<img src="images/title_id.gif" height="112">');
		Win1.document.writeln('</td>');
		Win1.document.writeln('<td width="5">');
		Win1.document.writeln('<img src="images/spacer.gif" width="5" height="10" alt="" border="0">');
		Win1.document.writeln('</td>');
		Win1.document.writeln('</tr>');
		Win1.document.writeln('</table>');
	


		endpos = 1;
		for (var i=0;i<fCount;i++) {
			if (fCount > 1) {
				Win1.document.write('<FONT FACE="Arial,sans-serif" SIZE="-2"><BR><b>&nbsp;Record ' + (i+1) + '</b><BR></FONT>');
			}
			inData = parseRecordString(theReply, endpos);
			endpos = xmlEndPos;
			//selectedData = clearLeadingSpace(inData);
			selectedData = inData;
			theField="SITE_ID";
			startpos=0;
 			theID = justGetFieldValue(selectedData,theField,startpos);
			theField="SITE_NAME";
			startpos=0;
 			theName = justGetFieldValue(selectedData,theField,startpos);

			theField="COUNCIL_AR";
			startpos=0;
 			theLga = justGetFieldValue(selectedData,theField,startpos);

			theField="VEGETATION";
			startpos=0;
			theVegetation = justGetFieldValue(selectedData,theField,startpos);

			theField="DATE_PLANT";
			startpos=0;
 			theDateplant = justGetFieldValue(selectedData,theField,startpos);

			theField="PLANTED_BY";
			startpos=0;
 			thePlantby = justGetFieldValue(selectedData,theField,startpos);

			theField="CONTACT_NA";
			startpos=0;
			theContactname = justGetFieldValue(selectedData,theField,startpos);

			theField="SITE_FEATU";
			startpos=0;
 			theSitefeature = justGetFieldValue(selectedData,theField,startpos);
			
			theField="STATUS";
			startpos=0;
 			theStatus = justGetFieldValue(selectedData,theField,startpos);
		
			Win1.document.writeln('<FONT FACE="Arial,sans-serif" SIZE="-1">');
			Win1.document.writeln('<TABLE WIDTH="80%" ALIGN="Center">');
			Win1.document.writeln('<TR>');		
			Win1.document.writeln('<Th valign="top" align="left" width="40%">');	
			Win1.document.writeln('<FONT FACE="Arial" SIZE="-1"><B>Site ID: </B></FONT>');
			Win1.document.writeln('</Th>');	
			Win1.document.writeln('<TD valign="top">');
			Win1.document.writeln('<FONT FACE="Arial" SIZE="-1">' + theID + '</FONT>');
			Win1.document.writeln('</TD>');
			Win1.document.writeln('</TR>');
			Win1.document.writeln('<TR>');
			Win1.document.writeln('<TD valign="top">');	
			Win1.document.writeln('<FONT FACE="Arial" SIZE="-1"><B>Site Name:</B></FONT>');
			Win1.document.writeln('</TD>');	
			Win1.document.writeln('<TD valign="top">');
			Win1.document.writeln('<FONT FACE="Arial" SIZE="-1">' + theName + '</FONT>');
			Win1.document.writeln('</TD>');
			Win1.document.writeln('</TR>');
			Win1.document.writeln('<TR>');
			Win1.document.writeln('<TD valign="top">');	
			Win1.document.writeln('<FONT FACE="Arial" SIZE="-1"><B>Council Name:</B></FONT>');
			Win1.document.writeln('</TD>');	
			Win1.document.writeln('<TD valign="top">');
			Win1.document.writeln('<FONT FACE="Arial" SIZE="-1">' + theLga+ '</FONT>');
			Win1.document.writeln('</TD>');
			Win1.document.writeln('</TR>');
			Win1.document.writeln('<TR>');
			Win1.document.writeln('<TD valign="top">');	
			Win1.document.writeln('<FONT FACE="Arial" SIZE="-1"><B>Vegetation Type:</B></FONT>');
			Win1.document.writeln('</TD>');	
			Win1.document.writeln('<TD valign="top">');
			Win1.document.writeln('<FONT FACE="Arial" SIZE="-1">' + theVegetation + '</FONT>');
			Win1.document.writeln('</TD>');
			Win1.document.writeln('</TR>');
			Win1.document.writeln('<TR>');
			Win1.document.writeln('<TD valign="top">');	
			Win1.document.writeln('<FONT FACE="Arial" SIZE="-1"><B>Status:</B></FONT>');
			Win1.document.writeln('</TD>');	
			Win1.document.writeln('<TD valign="top">');
			Win1.document.writeln('<FONT FACE="Arial" SIZE="-1">' + theStatus + '</FONT>');
			Win1.document.writeln('</TD>');
			Win1.document.writeln('</TR>');
			Win1.document.writeln('<TR>');
			Win1.document.writeln('<TD valign="top">');	
			Win1.document.writeln('<FONT FACE="Arial" SIZE="-1"><B>Date Planted:</B></FONT>');
			Win1.document.writeln('</TD>');	
			Win1.document.writeln('<TD valign="top">');
			Win1.document.writeln('<FONT FACE="Arial" SIZE="-1">' + theDateplant + '</FONT>');
			Win1.document.writeln('</TD>');
			Win1.document.writeln('</TR>');
			Win1.document.writeln('<TR>');
			Win1.document.writeln('<TD valign="top">');	
			Win1.document.writeln('<FONT FACE="Arial" SIZE="-1"><B>Planted By:</B></FONT>');
			Win1.document.writeln('</TD>');	
			Win1.document.writeln('<TD valign="top">');
			Win1.document.writeln('<FONT FACE="Arial" SIZE="-1">' + thePlantby + '</FONT>');
			Win1.document.writeln('</TD>');
			Win1.document.writeln('</TR>');
			Win1.document.writeln('<TR>');
			Win1.document.writeln('<TD valign="top">');	
			Win1.document.writeln('<FONT FACE="Arial" SIZE="-1"><B>Contact Name:</B></FONT>');
			Win1.document.writeln('</TD>');	
			Win1.document.writeln('<TD valign="top">');
			Win1.document.writeln('<FONT FACE="Arial" SIZE="-1">' + theContactname + '</FONT>');
			Win1.document.writeln('</TD>');
			Win1.document.writeln('</TR>');
			Win1.document.writeln('<TR>');
			Win1.document.writeln('<TD valign="top">');	
			Win1.document.writeln('<FONT FACE="Arial" SIZE="-1"><B>Site Features:</B></FONT>');
			Win1.document.writeln('</TD>');	
			Win1.document.writeln('<TD valign="top">');
			Win1.document.writeln('<FONT FACE="Arial" SIZE="-1">' + theSitefeature + '</FONT>');
			Win1.document.writeln('</TD>');
			Win1.document.writeln('</TR>');

						Win1.document.writeln('</TABLE>');
			// Print out assemblage table
			Win1.document.writeln('</body>');
			Win1.document.writeln('</html>');

		}
		Win1.document.close();
	}

	hideRetrieveData();
	
}


//NPWS MES
// parse XML response for selected features
// modified for reserve query
function XXkeyHabDisplayData(theReply) {
	setLayerFields(reserveLayerIndex);
	checkHyperLinkLayer(reserveLayerIndex);
	//alert("resDisplayData");
	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 tempString = "";
	var fCount = featureCount;
	selectCount = 0;
	var tempString="";
	var Win1 = parent.QueryFrame; //MES
	var theFrame = "parent.MapFrame";
	var selectPoints=new Array();
	if (featureCount > 0) {
		newSelectCount += 1;
		showSelectedData = true;
		if (showSelectedData) {
			Win1 = parent.QueryFrame;
			Win1.document.open();
			Win1.document.writeln('<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">');
			Win1.document.writeln('<html><meta http-equiv="Content-Type" content="text/html; charset=' + charSet + '"><head><title>' + titleList[7] + '</title></head>');
			Win1.document.writeln('<body bgcolor="' + QueryFrameBackColor + '" text="Black" link="Blue" vlink="Blue" LEFTMARGIN=0 onload="window.focus()">');
			Win1.document.writeln('<center><FONT FACE="Arial" SIZE="-1"><b>' + LayerName[ActiveLayerIndex] + '</b></FONT></center>');
		}
		endpos = 1;
		for (var i=0;i<fCount;i++) {
			if (fCount > 1) {
				Win1.document.write('<FONT FACE="Arial,sans-serif" SIZE="-2"><b>Record ' + (i+1) + '</b></FONT>');
			}
			Win1.document.writeln('<FONT FACE="Arial,sans-serif" SIZE="-1">');
			Win1.document.write('<TABLE WIDTH="100%">');
			if ((toolMode!=4) && (toolMode!=50)) {
				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);
			selectedData = inData;
			epos = theReply.indexOf("</FEATURE",endpos);
			if (showSelectedData) {
				var showHyper = true;
				var fName1 = getFieldNames(selectedData);
				var fValue1 = getFieldValues(selectedData);
				selectPoints[selectCount] = getIdValue(fName1, fValue1);
				var idFieldNum = -1;
				var shapeFieldNum = -1;
				// hide ID column header
				for (var f=0;f<fName1.length;f++) {
					if (fName1[f]==LayerIDField[reserveLayerIndex]) idFieldNum = f;
				}
				// hide Shape column header
				for (var f=0;f<fName1.length;f++) {
					if (fName1[f]==LayerShapeField[reserveLayerIndex]) shapeFieldNum = f;
				}
				/*alert("reached field alias");
				theFieldNames = "RES_CODE,SHORT_NAME,TYPE,IUCN,GAZ_DATE";
				var resAliasFieldName = theFieldNames.split(",");
				
				theFieldAlias = "Code,Reserve Name,Reserve Type,IUCN Cat,Gazette Date";
				var resAliasFieldAlias = theFieldAlias.split(","); */
				
				for (var cnt=0;cnt<fName1.length;cnt++) {
					if ((cnt!=idFieldNum) && (cnt!=shapeFieldNum)) {
						if (isEven(cnt)) {
							//alert("Made it to true");
							Win1.document.write('<TR BGCOLOR="White">');
							} else {
							//alert("Made it to False");
							Win1.document.write('<TR BGCOLOR="Silver">');
						}
						
						var f2 = -1;
						if (useFieldAlias) {
							for (var f3=0;f3<resAliasFieldName.length;f3++) {
								if (resAliasFieldName[f3]==fName1[cnt]) f2 = f3;
							}
						}
						
						if (f2!=-1) {
							var theField = resAliasFieldAlias[f2];
							} else {
							var theField = fName1[cnt];
						}
						
						var s2 = -1;
						for (var s1=0;s1<LayerFields.length;s1++) {
							if (fName1[cnt]==LayerFields[s1]) s2=s1;
						}
						if (LayerFieldType[s2]=="91") {
							if (isNaN(fValue1[cnt])) {
								var theDate = fValue1[cnt];
								} else {
								var theDateObj = new Date(parseFloat(fValue1[cnt]));
								var d = theDateObj.getDate();
								var day = (d < 10) ? '0' + d : d;
								var m = theDateObj.getMonth();
								var month = (m < 10) ? '0' + m : m;
								var y = theDateObj.getYear();
								var year = (y < 1000) ? 1900 + y : y;
								var theDate = day + "/" + month + "/" + year;
							}
							var theValue = theDate;
							theDate=null;
							} else {
							// put html entity for spaces so display is correct
							var theValue = fValue1[cnt].replace(/ /g, "&nbsp;");
						}
						
						var isHyper=false;
						if (showHyper) {
							//alert("made it to showHyper");
							for (var s1=0;s1<hyperLinkFields.length;s1++) {
								if (hyperLinkFields[s1]==fName1[cnt]) {
									var theLinkURL = currentHyperLinkPrefix + fValue1[cnt] + currentHyperLinkSuffix;
									var aRef = '<a href="' + theLinkURL + '" target="_blank">';
									//alert(aRef);
									isHyper=true;
								}
							}
						}
						if (isHyper) {
							Win1.document.write('<TD><FONT FACE="Arial,sans-serif" SIZE="-1"><B>' + theField + '</B></FONT></TD><TD>' + aRef + '<FONT FACE="Arial,sans-serif" SIZE="-1">' + theValue + '</FONT></A></TD>');
							} else {
							Win1.document.write('<TD><FONT FACE="Arial,sans-serif" SIZE="-1"><B>' + theField + '</B></FONT></TD>' + '<TD><FONT FACE="Arial,sans-serif" SIZE="-1">' + theValue + '</FONT></TD>');
						}
						Win1.document.write('</TR>');
					}
				}
				fName1 = null;
				fValue1 = null;
			}
			
			selectCount += 1;
			Win1.document.writeln('</TABLE>');
			Win1.document.writeln('<br>');
		}
		if (showSelectedData) {
			
			Win1.document.writeln('<FONT FACE="Arial" SIZE="-2">');
			if (toolMode!=25) {
				if (queryStartRecord>1) {
					var prevRecord = queryStartRecord - maxFeaturesReturned;
					if (prevRecord<1) prevRecord=1;
					Win1.document.write('<a href="javascript:' + theFrame + '.resGetMoreData(' + prevRecord + ')">' + msgList[61] + maxFeaturesReturned + msgList[62] + '</a>&nbsp;&nbsp;&nbsp;');
				}
				if (stillMore) {
					var nextRecord=featureCount + queryStartRecord;
					Win1.document.writeln('<a href="javascript:' + theFrame + '.resGetMoreData(' + nextRecord + ')">' + msgList[63] + '</a>');
				}
			}
			
			// NPWS Mod to add link to search for Reseve again
			var theImgSource=appDir + "images/tool_images/find_1.gif"
			var theAspSource=appDir + "SubMenu.htm"
			Win1.document.writeln('</FONT>');
			Win1.document.writeln('<FONT FACE="Arial,sans-serif" SIZE="-1">');
			//Win1.document.writeln('<BR>');
			Win1.document.write('<img src="' + theImgSource + '" width=22 height=22 hspace=0 ');
			Win1.document.writeln('vspace=0 border=0 name="Park" alt="Return to Menu">');
			Win1.document.writeln('<B><A HREF="' + theAspSource + '">Return to Menu</A></B>');
			
			//Win1.document.writeln('</font></center></body></html>');
			Win1.document.writeln('</font></body></html>');
			Win1.document.close();
		}
		//alert("toolMode:" + toolMode);
		
		if ((queryStartRecord==1) && ((toolMode!=4) && (toolMode!=50)) && (toolMode!=25)) {
			if ((selectCount==1) && (zoomToSingleSelect)) {
				if ((selectCount==1) && (zoomToSingleSelect)) {
					var fWidth = selectRight[0] - selectLeft[0];
					var fHeight = selectTop[0] - selectBottom[0];
					var mWMargin = 0;
					var mHMargin = 0;
					mWMargin = fWidth * selectMargin;
					mHMargin = fHeight * selectMargin;
				}
				saveLastExtent();
				eLeft = selectLeft[0] - mWMargin;
				eRight = selectRight[0] + mWMargin;
				eTop = selectTop[0] + mHMargin;
				eBottom = selectBottom[0] - mHMargin;
				if (!zoomToFeature) {
					eLeft = lastLeft;
					eBottom = lastBottom;
					eRight = lastRight;
					eTop = lastTop;
				}
			}
			selectCount=0;
			
			if (highlightIdentify) {
				highlightedOne=LayerIDField[reserveLayerIndex] + " IN (" + selectPoints + ")";
				sendMapXML();
			}
		}
		
		
		} else {
		Win1 = parent.QueryFrame;
		Win1.document.open();
		
		Win1.document.writeln('<html><meta http-equiv="Content-Type" content="text/html; charset=' + charSet + '"><head>');
		Win1.document.writeln('	<title>' + titleList[8] + '</title>');
		Win1.document.writeln('</head>');
		Win1.document.writeln('<body BGCOLOR="White" TEXT="Black" LEFTMARGIN=0 TOPMARGIN=0>');
		Win1.document.writeln('<FONT FACE="Arial"><B>You are currently searching in the ' + LayerName[reserveLayerIndex] +' layer</B></font><FONT FACE="Arial" size="-2">');
		Win1.document.writeln('<br><br>' + msgList[64]);
		Win1.document.writeln('<br><br>Try zooming in more to find the reserve you are after');
		if (debugOn>0) {
			Win1.document.writeln('<p>' + msgList[65] + '<br>');
			Win1.document.writeln(untag(theReply));
			} else {
			if (theError!="") {
				Win1.document.writeln('<p>' + msgList[66] + '<br>');
				Win1.document.writeln(theError);
			}
		}
		
		//NPWS
		var theAspSource=appDir + "SubMenu.htm";
		Win1.document.writeln('<BR>');
		Win1.document.writeln('<BR>');
		Win1.document.write('<FONT FACE="Arial" SIZE="-1">');
		Win1.document.writeln('<B><A HREF="' + theAspSource + '"> Return to Menu </A></B></FONT>');
		
		Win1.document.writeln('</FONT>');
		Win1.document.writeln('</body></html>');
		Win1.document.close();
	}
	if (toolMode==4) selectCount=0;
	Win1=null;
	hideRetrieveData();
}

// check to see if active layer is in scale threshold and visible
// so it can be used for querying
function checkIfGWLayerAvailable() {
	// is the override flag set?
	if (canSelectInvisible) {
		return true;
		} else {
		// is the current scale within the scale min and max?
		if ((mapScaleFactor>=LayerMinScale[khcLayerIndex]) && (mapScaleFactor<=LayerMaxScale[khcLayerIndex])) {
			// is the active layer visible?
			if (LayerVisible[khcLayerIndex]==1) {
				return true;
				
				} else {
				var msg = msgList[104] + LayerName[khcLayerIndex] + msgList[102] + LayerName[khcLayerIndex] + msgList[108];
				
				alert(msg);
				return false;
			}
			} else {
			var msg = msgList[104] + LayerName[khcLayerIndex] + msgList[101];
			//if ((!listAllLayers) && (hasTOC)) msg += msgList[103];
			alert(msg);
			return false;
		}
	}
}


