// aimsCustom.js
/*
*  JavaScript template file for ArcIMS HTML Viewer
*		dependent on aimsXML.js, ArcIMSparam.js, aimsCommon.js, aimsMap.js,
*		aimsLayers.js, aimsDHTML.js
*		aimsClick.js, aimsNavigation.js,
*/

// global variables
	aimsCustomPresent=true;
	// change these to send XML response to custom function.
	// use numbers >= 1000 and match in useCustomFunction()
	// defaults are defined in aimsXML.js and use standard functions
	
	// xml response mode for selection
	selectXMLMode = 6;
	// xml response mode for identify
	identifyXMLMode = 7;
	// xml response mode for query
	queryXMLMode = 8;
	// xml response mode for find
	findXMLMode = 14;
	// xml response mode hyperlink
	hyperlinkXMLMode = 15;




// custom function for handling clicks 
// 		flow redirected here when
//		toolMode set to >=1000
function customMapTool(e) {
				if (toolMode == 1001) {
						// insert code here
						return false;
					
				}
				if (toolMode == 1002) {
						// insert code here

				}

}

// send  XML response to custom function
//		flow  redirected here when
//		XMLMode >=1000
function useCustomFunction(theReply) {
	if (XMLMode==1001) {
		// insert code here
	} else if (XMLMode==1002) {
		// insert code here
	} else if (XMLMode==2001) {
		//alert(theReply);
		//alert(getEnvelopeXYs(theReply),1);
		activityExtents = getEnvelopeXYs(theReply,1);
		parent.MapFrame.zoomToEnvelope(activityExtents[0] - 2000,activityExtents[1] - 2000,activityExtents[2] + 2000,activityExtents[3] + 2000);
		UpdateTrailInfo();
		
	} else if (XMLMode==2002) {
		
	    sendMapXML();
	} else {
		alert(msgList[55] + XMLMode + msgList[56]);
	}
	hideLayer("LoadData");
}

// add custom stuff to Map XML request. . . between selection and geocode
function addCustomToMap1(){
	var customString = "";
	/*
		customString += '<LAYER type="ACETATE" name="theMode">\n';
		customString += '<OBJECT units="PIXEL">\n<TEXT coord="5 ' + (iHeight-10) + '" label="This is a test">\n';
		customString += '<TEXTMARKERSYMBOL fontstyle="BOLD" fontsize="12" font="ARIAL" fontcolor="' + modeMapColor + '" ';
		customString += 'threed="TRUE" glowing="' + modeMapGlow + '" />\n</TEXT>\n</OBJECT>';
		customString += '\n</LAYER>\n';
	*/
	return customString;
}

// add custom stuff to Map XML request. . . between clickpoints and copyright
function addCustomToMap2(){
	var customString = "";
	
	return customString;
}

// add custom stuff to Map XML request. . . under modeOnMap
function addCustomToMap3(){
	var customString = "";
		/*
		customString += '<LAYER type="ACETATE" name="theMode">\n';
		customString += '<OBJECT units="PIXEL">\n<TEXT coord="5 ' + (iHeight-10) + '" label="This is a test">\n';
		customString += '<TEXTMARKERSYMBOL fontstyle="BOLD" fontsize="12" font="ARIAL" fontcolor="' + modeMapColor + '" ';
		customString += 'threed="TRUE" glowing="' + modeMapGlow + '" />\n</TEXT>\n</OBJECT>';
		customString += '\n</LAYER>\n';
		alert(customString);
		*/
	return customString;
}

// add custom stuff to Map XML request. . . on top of everything
function addCustomToMap4(){
	var customString = "";
	
	return customString;
}

// extract layers to download
function extractIt() {
	hideLayer("measureBox");
	alert(msgList[51]);
}

function open_dir_window(trailData)
{
 	var win1;
 	var parkingID;
	var trailAdd;
	var trailCity;
	var trailState;
	var trailZip;
	var stopPos;
	var startPos;

	//alert(trailData);

	startPos = trailData.indexOf("|");
	stopPos = trailData.indexOf("|", startPos + 1 );
	parkingID = parseInt(trailData.substring(0, startPos));
	
	trailAdd = trailData.substring(startPos + 1, stopPos);
	
	startPos = stopPos;
	stopPos = trailData.indexOf("|", startPos + 1 );
	trailCity = trailData.substring(startPos + 1, stopPos);

	startPos = stopPos;
	stopPos = trailData.indexOf("|", startPos + 1 );
	trailState = trailData.substring(startPos + 1, stopPos);

	startPos = stopPos;
	stopPos = trailData.indexOf("|", startPos + 1 );
	trailZip = trailData.substring(startPos + 1, stopPos);	

	win1 = window.open(websiteURL + '/mq_directions.asp?a2="' + trailAdd + '"&c2="' + trailCity + '"&s2="' + trailState + '"&z2=' + trailZip,'mywindow','width=600,height=600,toolbar=yes,location=yes,directories=yes,status=yes,menubar=yes,scrollbars=yes,copyhistory=yes,resizable=yes');
	//win1.a1 = trailAdd;	
	//win1.z1	= trailZip;
	//win1.load();

}

function UpdateTrailInfo() {
		var str = '<html><head><title>Trail Information</title><style><!-- @import url(CSS/mct.css); table { font-family:Arial,sans-serif; font-style:normal; font-weight:normal; font-size:12px; color:black;} --></style></head>\n';
        str += '<body bgcolor="#b0deb4" leftmargin="0" marginwidth="0" topmargin="0" marginheight="0" rightmargin="10">\n';
		str += '<table width="80%" cellpadding="5">\n';
		str += '<tr align="left" valign="top"><td width="20"></td><td>\n';
        str += '<H3 style="margin-top:0; margin-bottom:0;"><font color=#000000>' + TrailName + '</H3></td>\n';
        //parking lot stuff
		str += '<td width="85">Parking Lots:</td>\n';
		for (Count=1; Count<=parent.TrailNameFrame.parkingArray.length-1;Count++) {
			//str += '<td><a href="javascript:' + 'parent.MapFrame.showParking(\'' + parent.TrailNameFrame.parkingArray[Count] + '\')">' + Count + '</a></td>';
			//str += '<td width="30" ><a href="javascript:' + 'parent.MapFrame.showParking(\'' + parent.TrailNameFrame.parkingArray[Count] + '\')">' + Count + '</a></td>\n';
			str += '<td width="15" ><a href="javascript:parent.MapFrame.open_dir_window(\'' + parent.TrailNameFrame.parkingArray[Count] + '\')" onmouseout="parent.MapFrame.hideLayer(\'ParkingHighLight\');" onmouseover="parent.MapFrame.showParking(\'' + parent.TrailNameFrame.parkingArray[Count] + '\')">' + Count + '</a></td>\n';
		}
        str += '<td></td></tr><tr><td width="20"></td><td colspan="11">' + TrailInfo + '</font>\n';
        str += '</td></tr></table>\n';
        str += '</body></html>\n';
        var Win1;
        Win1 = parent.TextFrame;
        Win1.document.open();
        Win1.document.writeln(str);
        Win1.document.close();

}

function showParking(trailData) {
	var parkingID;
	var trailAdd;
	var trailCity;
	var trailState;
	var trailZip;
	var stopPos;
	var startPos;
	
	startPos = trailData.indexOf("|");
	stopPos = trailData.indexOf("|", startPos + 1 );
	parkingID = parseInt(trailData.substring(0, startPos));
	
	trailAdd = trailData.substring(startPos + 1, stopPos - 1);

	startPos = stopPos;
	stopPos = trailData.indexOf("|", startPos + 1 );
	trailCity = trailData.substring(startPos + 1, stopPos - 1);

	startPos = stopPos;
	stopPos = trailData.indexOf("|", startPos + 1 );
	trailState = trailData.substring(startPos + 1, stopPos - 1);
	
	startPos = stopPos;
	stopPos = trailData.indexOf("|", startPos + 1 );
	trailZip = trailData.substring(startPos + 1, stopPos - 1);
	
	coordXY = trailData.substring(stopPos + 1);	

	//Convert map XY to image XY
	var inX;
	var inY;
	startPos = coordXY.indexOf(",");
	inX = coordXY.substring(0, startPos - 1);
	inY = coordXY.substring(startPos + 1);
	toPixelXY(inX,inY);
//	
//	showParkingPoint = true;
//	sendMapXML();
//	showParkingPoint = false;

	//Display parking highlight layer, and position over spot
	
	showLayer("ParkingHighLight");
	moveLayer("ParkingHighLight", pX - 10, (iHeight - pY)-10);
}

function addPointToMap(){
	var customString = '';
	customString += '<LAYER type="ACETATE" name="theMode">\n';
	customString += '<OBJECT units="pixel">\n<POINT coords="' + forceComma(pX) + coordsDelimiter + forceComma(pY) + '">\n'; //+ forceComma(ptX) + coordsDelimiter + forceComma(ptY) + '">\n';
	customString += '<SIMPLEMARKERSYMBOL  type="circle"  color="0,0,0" width="20" overlap="false" />\n</POINT>';
	customString += '\n</OBJECT>';
	customString += '\n</LAYER>\n';
	return customString;
}

// Toggle map layer on/off
function fnToggleLayerVisible(layerName) {
	var t = parent.MapFrame;
	var i = findLayerIndexByName(layerName);

	// where vis=1 means visible, vis=0 means hidden
	if (LayerVisible[i] == 1){LayerVisible[i] = 0;}
	else {LayerVisible[i] = 1;}
	// Refresh the map
	t.sendMapXML();

}

// find layer's index by its name
function findLayerIndexByName(layerName) {
  for (var i=0; i<layerCount; i++)
    if (LayerName[i]==layerName) return i;
  return -1;
}


