//
// only used for Interface.js
//
var szResultDelimiter = ";";
var szResultItemDelimiter = ",";

var szResultInfoDelimiter = ";";
var szResultInfoItemDelimiter = "=";
var szResultInfoMaptoolsDelimiter = ",";

var szAspImageUrlPath = "images/";
var szAspOprtUrlPath = "/OprtAsp/";
// 2000-09-06, cyu
// instead of szAspOprtUrlPath
var szNormalInfoWindowUrl = "page/info.htm";
// 2000-09-06

var szDiapImageName = "show.gif";
var szRemoveImageName = "delete.gif";

var szCrLf = "";
var szFormRefineName = "formRefine";

var nSels = 0;
var arySel, arySelName;

var nTableRows = 0;
var blTableIsRadioType = false;
var szTableRowTypes = "";
var aryTableVariants;

//
//	only used for 公交换乘. 
//		assigned in interGenQueryGJRoutePage(),
//		accessed in interSubmitShowGJRoute() and interSubmitShowGJRoutePart().
//
var szStartEndInfo;		// format is "S_LYR, E_LYR, S_FID, E_FID"
//

var i_frmMappage, i_frmInfopage, i_frmOprtpage;

// 2000-08-23, added by cyu
var szOutputWindowName = "_Go2mapOutputWindow_";
var szOutputPlaceName = "";
var objOutputWindow;

var szOutputWindowScriptUrl = self.location.href.substr( 0, self.location.href.lastIndexOf( "/" ) ) + "/page/refine.htm";
var szOutputPageHtml;
// 2000-08-23


function interGetOutputPlaceName( szMaptool, szType, aryOutputPlace )
{
	var i, n = aryOutputPlace.length;
	var aryWhich;
	var szMaptool_i, szType_i, szPlace;

	for( i=0; i < n; ++i ) {
		aryWhich = aryOutputPlace[i].split(".");
		szMaptool_i = aryWhich[0];
		szType_i = aryWhich[1];
		szPlace = aryWhich[2];
		if( (szMaptool_i == "*" || szMaptool_i == szMaptool) && (szType_i == "*" || szType_i == szType) ) {
			if( szPlace == "input" )
				return i_frmMappage.szLayerInput;
			if( szPlace == "window" )
				return szOutputWindowName;
		}
	}
	return i_frmMappage.szLayerOutput;
}

function interGetCalleeWindowName()
{
	var szCalleeName;

	if( szOutputPlaceName == szOutputWindowName )
		szCalleeName = "self";	// "opener";
	else if( szOutputPlaceName == i_frmMappage.szLayerInput )
		szCalleeName = "frmInfopage";
	else
		szCalleeName = "self";

	return szCalleeName;
}

function interDisplayResultInfoPage( resultset, resultinfo, aryOutputPlace, frmMappage, frmOprtpage )
{
	var aryResultInfo, aryRow, aryList;
	var aryUserRet;		// [0] = new rsType, [1] = szHtm
	var rsTitle, rsType, rsHead, rsTail;
	var szHtm = "";
	var szURL;

	i_frmMappage  = frmMappage;
	i_frmOprtpage = frmOprtpage;
	i_frmInfopage = this;
	blEEyeShow = false;
	if( resultset != "" )
		aryRow = resultset.split( szResultDelimiter );
	aryResultInfo = resultinfo.split( szResultInfoDelimiter );

//	rsMaptool = i_frmMappage.commGetItemFromRet( aryResultInfo, "MapTool", szResultInfoItemDelimiter );
	rsType = i_frmMappage.commGetItemFromRet( aryResultInfo, "Type", szResultInfoItemDelimiter );
	rsHead = i_frmMappage.commGetItemFromRet( aryResultInfo, "Head", szResultInfoItemDelimiter );
	rsTail = i_frmMappage.commGetItemFromRet( aryResultInfo, "Tail", szResultInfoItemDelimiter );
	rsTitle = i_frmMappage.commGetItemFromRet( aryResultInfo, "Title", szResultInfoItemDelimiter );
	if( rsTitle == "" ) rsTitle = "返回信息";
	if( rsTitle == "周边环境" ) rsTitle = "线路查询_关键词确认";
	if( rsHead != "" && rsHead.indexOf("<red>") > 1 ){
		var tmpAry = rsHead.split("<red>");
		rsHead = tmpAry[0] + "<font style=\"color:red\">" + tmpAry[1];
	}
	szOutputPlaceName = interGetOutputPlaceName( i_frmMappage.szLastMaptool, rsType, aryOutputPlace );

	var fnUserDisp = eval( "window.userDisplayResultInfoPage_" + rsType );
	if( fnUserDisp ) {
		aryUserRet = fnUserDisp( aryRow, resultinfo );
		rsType = aryUserRet[0];
		szHtm += aryUserRet[1];
	}

	switch( rsType ) {
	// 以下是基本返回类型：
	case "purl":
		szURL = aryRow[0];
		if( (szURL != "") && (szURL.length > 1) )
			self.open( szURL, null );
		else
			alert( "没有可访问页面。" );
		return true;

	case "murl":
		szURL = aryRow[0];
		if( (szURL != "") && (szURL.length > 1) )
			i_frmMappage.parent.location.replace(szURL);
		else
			alert( "没有可访问的地图页面。" );
		return true;

	case "desc":
		szHtm += resultset;
		break;

	case "list":
		var rsRowMaptools, rsRowOprtAsps, rsRowImages;
		rsRowMaptools = i_frmMappage.commGetItemFromRet( aryResultInfo, "ListMaptools", szResultInfoItemDelimiter );
		rsRowOprtAsps = i_frmMappage.commGetItemFromRet( aryResultInfo, "ListOprtAsps", szResultInfoItemDelimiter );
		rsRowImages = i_frmMappage.commGetItemFromRet( aryResultInfo, "ListImages", szResultInfoItemDelimiter );
		szHtm += interGenListPage( aryRow, rsRowMaptools, rsRowOprtAsps, rsRowImages, i_frmMappage.szLastMaptool );
		break;

	case "table":
		var rsRowTypes, rsTableHeader;
		rsRowTypes = i_frmMappage.commGetItemFromRet( aryResultInfo, "TableColTypes", szResultInfoItemDelimiter );
		rsTableHeader = i_frmMappage.commGetItemFromRet( aryResultInfo, "TableHeader", szResultInfoItemDelimiter );
		szHtm += interGenTablePage( aryRow, rsRowTypes, rsTableHeader );
		break;

	case "select":
		szHtm += interGenSelectPage( aryRow );
		break;

	case "ClickEagleEyes":
		szHtm +=  aryRow ;
		if( szOutputPlaceName == szOutputWindowName ) {
			szOutputPageHtml = szHtm;
			objOutputWindow = self.open( szOutputWindowScriptUrl, szOutputPlaceName );
		}
		else
			i_frmMappage.lcReplaceLayerContent( szOutputPlaceName, szHtm );
		return true;
	
	// 以下是需要特殊处理的 maptool：
	case "Ruler":
		szHtm += interGenRulerPage( aryRow );
		break;
	case "QueryGJRoute":
		szHtm += interGenQueryGJRoutePage( aryRow );
		break;
	case "ListMyWorld":
		szHtm += interGenListMyWorldPage( aryRow );
		break;
	case "ListMyQuery":
		szHtm += interGenListMyQueryPage( aryRow );
		break;
	case "ShowInfoPage":
	case "ShowThemInfoPage":
		szOutputPageHtml = aryRow;
		self.open( szNormalInfoWindowUrl, rsType );
		return true;

	case "userDispAll":
		lcReplaceLayerContent( szLayerOutput, szHtm );
		return true;
	case "userDisp":
		break;


	// 以下是专为租用者的需求而增加的：
	case "HrDatID":
		// 租用者在此处添加处理ID的代码
		// 此时，变量 aryRow[0] 中保存的是 租用者ID 号
		alert(resultset);
		break;
		
	default:
		break;
	}

	var content = '';

	if( rsHead.indexOf("月票发售点图层")> 0)
	{
		content = '<br><font style="font-size:9pt;line-height:1.5"><img src="images/s04.gif">月末最后一天至次月20日<br><img src="images/s16.gif">月末最后一天至次月15日<br><img src="images/s10.gif">月末最后一天至次月5日<br><img src="images/s39.gif">月末最后一天至次月4日<br><img src="images/s12.gif">月末最后一天至次月3日<br></font>';
	} else	if( rsHead.indexOf("北京_公交派出所") > 1)
	{
		content = '';
	} else	if( rsHead.indexOf("公交车服务图层") > 1)
	{
		content = '<br><font style="font-size:9pt;line-height:1.5"><img src="images/s04.gif">加油加气图例<br><img src="images/s39.gif">车辆租赁图例<br><img src="images/s21.gif">车辆保修、救援图例<br></font>';
	}

	rsHead = rsHead + content;

//	if( rsTail != "" && rsType == 'QueryGJRoute' ){
//		var content =	'';//'<hr size=1><b>公交线路图例：</b><br><br><font style="font-size:9pt"><font color="#FF0000"><b>━━</b></font> 月票无效<br><font color="#0000FF"><b>━━</b></font> 月票有效<br><font color="#FF00FF"><b>━━</b></font> 空调车</font> ';
//		rsHead = rsHead + content;
//	}

	szHtm = "<table border=0><font style=\"font-size:9pt\"><b style=\"font: bolder 9pt 宋体_GB2312\">" + rsTitle + "</b><hr size=1>" + rsHead + "<br>" + szHtm + "</font>";

	if( rsTail != "" )
		szHtm += "<hr size=1><font style=\"font-size:9pt\">" + rsTail + "</font>";

	if( szOutputPlaceName == szOutputWindowName ) {
		szOutputPageHtml = szHtm;
		objOutputWindow = self.open( szOutputWindowScriptUrl, szOutputPlaceName );
	}
	else if( szHtm.indexOf("查询列表") < 0 )	//	**************	//
		i_frmMappage.lcReplaceLayerContent( szOutputPlaceName, '<font color="#A1E0AE">'+ szHtm + '</font>' );

	return true;
} // end of interDisplayResultInfoPage


////////////////////////////////////////////////////////////////////////////////
//
//		Generate the result information page
//
////////////////////////////////////////////////////////////////////////////////
//
// 测距显示
function interGenRulerPage( aryRow )
{
	var szHtm = "";
	var dfNewDist = aryRow[0];

	var szCalleeWindowName = interGetCalleeWindowName();	// 2000-08-23, added by cyu

	i_frmMappage.dfSumDistance = aryRow[1];
	szHtm += "本次距离：" + dfNewDist + " 公里<br>";
	szHtm += "累计距离：" + i_frmMappage.dfSumDistance + " 公里<br><br>";
	szHtm += "<a href=\"javascript:" + szCalleeWindowName + ".interSubmitClearRuler();\">清空距离值</a>";
	return szHtm;
}

// 生成公交结果，并处理
// 每个换乘方案的返回串格式：
//		0. 换乘次数，
//		1. 策略，
//		2. 公交车次，车次Fid，
//		4. 上车站站名，上车站站Fid，上车站节点序号，
//		7. 下车站站名，下车站站Fid，下车站节点序号，
//		10. ...(循环前八项)，
//		18. 返回值(如距离、时间或票价等，与策略有关)
// 换乘方案之间用西文分号隔开。
function interGenQueryGJRoutePage( aryRow )
{
	var nPreItems = 2;					// 前两项是“换乘次数”和“策略”
	var nBusIdx   = 0 + nPreItems;		// “公交车次”的下标是 2
	var nStartIdx = 2 + nPreItems;		// “上车站站名”的下标是 4
	var nEndIdx   = 5 + nPreItems;		// “下车站站名”的下标是 7
	var nItemsPerChange = 8;			// 每次换车包含八项（3到10）

	var i, j;
	var nLidx, nSidx, nEidx;
	var nChanges, szMethod, szLastMethod, szResult;
	var szHtm = "", szPreText;
	var szApart, szAroute, szAend, szAinfo;
	var szParamL, szParamS, szParamE, szOrgParam, szInfoVar;
	var aryCol;

	var szCalleeWindowName = interGetCalleeWindowName();	// 2000-08-23, added by cyu, but NOT use in this function

	// 显示换乘方案
	//szAinfo = " href=\"javascript:interResultInfoClick( \'InfoTextClick\', "
	//szApart = " href=\"javascript:interSubmitShowGJRoutePart( ";
	szAinfo = "<font color=blue>";
	szApart = "<font color=blue>";
	szAroute = " title=画出这条换乘方案 href=\"javascript:interSubmitShowGJRoute( ";
	szAend = " );\">";
	szLastMethod = "";
	for( i=0; i < aryRow.length-2; ++i ) {
		szOrgParam = "\'" + aryRow[i] + "\'";
		aryCol = aryRow[i].split( szResultItemDelimiter );
		nChanges = parseInt( aryCol[0] );
		szMethod = aryCol[1];
		szResult = aryCol[aryCol.length - 1];

		if( szLastMethod != szMethod ) {
			szLastMethod = szMethod;
		}
		
		// 公交特例 －月票有效、票价0元
		if(aryRow.join("").indexOf( "0元" ) > 0 )
		{
			if( nChanges > 1) {
				szHtm += "<br>" + 
					//"<a " + szAroute + szOrgParam + szAend + "<b>方案 " + (i+1) + "</b></a>" +
					"<b><font color=red>方案 " + (i+1) + "</font></b>" +
					"  >>  换乘<i>" + (nChanges-1) + "</i> 次。 ：<br>";
			} else if( nChanges == 1) {
				szHtm += "<br>" + 
					//"<a " + szAroute + szOrgParam + szAend + "<b>方案 " + (i+1) + "</b></a>" +
					"<b><font color=red>方案 " + (i+1) + "</font></b>" +
					"  >> ：<br>";
			}
			
		} else if(aryRow.join("").indexOf( "0元" ) <= 0 )
		{
			if( nChanges > 1) {
				szHtm += "<br>" + 
					//"<a " + szAroute + szOrgParam + szAend + "<b>方案 " + (i+1) + "</b></a>" +
					"<b><font color=red>方案 " + (i+1) + "</font></b>" +
					"  >>  换乘<i>" + (nChanges-1) + "</i> 次，全程大约<i>" + szResult + "</i> ：<br>";
			} else if( nChanges == 1) {
				szHtm += "<br>" + 
					//"<a " + szAroute + szOrgParam + szAend + "<b>方案 " + (i+1) + "</b></a>" +
					"<b><font color=red>方案 " + (i+1) + "</font></b>" +
					"  >>  全程大约<i>" + szResult + "</i> ：<br>";
			}
			
		}


		//szHtm += "<br>" + "<a " + szAroute + szOrgParam + szAend + "<b>方案 " + (i+1) + "</b></a>  >>  换乘<i>" + (nChanges-1) + "</i> 次，全程大约<i>" + szResult + "</i> ：<br>";
		for( j=0; j < nChanges; ++j ) {
			if( j == 0 )
				szPreText = "先乘";
			else if( j == 1 )
				szPreText = "换乘";
			else if( j == nChanges-1 )
				szPreText = "最后换乘";
			else
				szPreText = "再换乘";

			nLidx = nBusIdx   + j * nItemsPerChange ;
			nSidx = nStartIdx + j * nItemsPerChange ;
			nEidx = nEndIdx   + j * nItemsPerChange ;
			szParamL = " \'L" + j + "\', ";
			szParamS = " \'S" + j + "\', ";
			szParamE = " \'E" + j + "\', ";
			//szHtm += szPreText +
				//" <a " + szApart + szParamL + szOrgParam + szAend + aryCol[ nLidx ] + "</a> 路，在" + 
				//" <a " + szApart + szParamS + szOrgParam + szAend + aryCol[ nSidx ] + "</a> 站上车，至" +
				//" <a " + szApart + szParamE + szOrgParam + szAend + aryCol[ nEidx ] + "</a> 站下车；<br>" ;
			szHtm += szPreText +
				szApart + aryCol[ nLidx ] + "</font> 路，在" + 
				szApart + aryCol[ nSidx ] + "</font> 站上车，至" +
				szApart + aryCol[ nEidx ] + "</font> 站下车；</td></tr><br>" ;
//alert(szHtm);
			//szParamL = " \'LayerName==" + szMasterCity + "_公交线路!!FIDs==" + aryCol[ nLidx+1 ] + "\' ";
			//szParamS = " \'LayerName==" + szMasterCity + "_公交车站!!FIDs==" + aryCol[ nSidx+1 ] + "\' ";
			//szParamE = " \'LayerName==" + szMasterCity + "_公交车站!!FIDs==" + aryCol[ nEidx+1 ] + "\' ";
			//szHtm += "<b>" + szPreText + "</b>" +
				//" <a title=画出公交线路 " + szAinfo + szParamL + szAend + aryCol[ nLidx ] + "</a> 路，在" + 
				//" <a title=画出上车车站 " + szAinfo + szParamS + szAend + aryCol[ nSidx ] + "</a> 站上车，至" +
				//" <a title=画出下车车站 " + szAinfo + szParamE + szAend + aryCol[ nEidx ] + "</a> 站下车；<br>" ;
		}
	}
	szStartEndInfo = aryRow[ aryRow.length-1 ];
	return szHtm + "<br>&nbsp;&nbsp;<input type='button' value='查看地图'class='smallbutton' onClick='chakanditu();'>&nbsp;&nbsp;<input type='button' value='打印' class='smallbutton' onClick='window.print();'>";
} // end of interGenQueryGJRoutePage

function interGenListMyQueryPage( aryRow )
{
	var i;
	var szHtm = "";
	var aryCol;

	var szCalleeWindowName = interGetCalleeWindowName();	// 2000-08-23, added by cyu

	nTableRows = aryRow.length;
	// form start
	szHtm += "<form name=" + szFormRefineName + ">" + szCrLf;
	szHtm += "<center>" +
		"<A href=\"javascript:" + szCalleeWindowName + ".interSubmitDispUserQuery();\">" + 	"<img src=" + szAspImageUrlPath + szDiapImageName + " border=0></a>  " + 
		"<A href=\"javascript:" + szCalleeWindowName + ".interSubmitDelUserQuery();\">" + 	"<img src=" + szAspImageUrlPath + szRemoveImageName + " border=0></a>        " + 
		"<a href=\"javascript:" + szCalleeWindowName + ".interSetAllCheckbox();\"><img src=\"/mappage/images/quanxuan.gif\" border=0></a>  " +
		"<a href=\"javascript:" + szCalleeWindowName + ".interClearAllCheckbox();\"><img src=\"/mappage/images/quanbuxuan.gif\" border=0></a>  " +
		"</center>" + szCrLf;
	for( i=0; i < nTableRows; ++i ) {
		aryCol = aryRow[i].split( szResultItemDelimiter );
		szHtm += "<input type=checkbox name=cbx_" + i + " value=" + aryCol[0] + ">  " + aryCol[1] + "<br>";
	}
	// form end
	szHtm += "</form>" + szCrLf;
	return szHtm;
} // end of interGenListMyQueryPage

function interGenListMyWorldPage( aryRow )
{
	var i;
	var szHtm = "";
	var aryCol;

	var szCalleeWindowName = interGetCalleeWindowName();	// 2000-08-23, added by cyu

	nTableRows = aryRow.length;
	// form start
	szHtm += "<form name=" + szFormRefineName + ">" + szCrLf;
	szHtm += "<center>" +
		"<A href=\"javascript:" + szCalleeWindowName + ".interSubmitDispUserPoint();\">" + 	"<img src=" + szAspImageUrlPath + szDiapImageName + " border=0></a>  " + 
		"<A href=\"javascript:" + szCalleeWindowName + ".interSubmitDelUserPoint();\">" + 	"<img src=" + szAspImageUrlPath + szRemoveImageName + " border=0></a>        " + 
		"<a href=\"javascript:" + szCalleeWindowName + ".interSetAllCheckbox();\"><img src=\"/mappage/images/quanxuan.gif\" border=0></a>  " +
		"<a href=\"javascript:" + szCalleeWindowName + ".interClearAllCheckbox();\"><img src=\"/mappage/images/quanbuxuan.gif\" border=0></a>  " +
		"</center>" + szCrLf;
	for( i=0; i < nTableRows; ++i ) {
		aryCol = aryRow[i].split( szResultItemDelimiter );
		szHtm += "<input type=checkbox name=cbx_" + i + " value=" + aryCol[0] + ">  " + aryCol[1] + "<br>";
	}
	// form end
	szHtm += "</form>" + szCrLf;
	return szHtm;
} // end of interGenListMyWorldPage


////////////////////////////////////////////////////////////////////////////////
//
//		Common function to generate the result information page 
//			for common type : table, list, select
//
////////////////////////////////////////////////////////////////////////////////
function interGenTablePage( aryRow, rsRowTypes, rsTableHeader )
{
	var i, j;
	var szHtm = "";
	var szMaptool, szVariant, szDisplay;
	var aryCol, nCols;
	var aryRowTypes, aryTableHeader;
	var nIdxVariant = -1;

	var szCalleeWindowName = interGetCalleeWindowName();	// 2000-08-23, added by cyu

	nTableRows = aryRow.length;
	szTableRowTypes = rsRowTypes;
	aryTableVariants = new Array();
	blTableIsRadioType = false;

	aryRowTypes = szTableRowTypes.split( szResultInfoMaptoolsDelimiter );
	nCols = aryRowTypes.length;
	if( rsTableHeader != "" )
		aryTableHeader = rsTableHeader.split( szResultInfoMaptoolsDelimiter );

	// 合法性检查
	if( nCols != aryTableHeader.length )
		return "返回信息格式错误！";

	for( j=0; j < nCols; ++j ) {
		if( aryRowTypes[j] == "variant" )
			nIdxVariant = j;
		else if( aryRowTypes[j] == "radio" )
			blTableIsRadioType = true;
	}

	// form start
	szHtm = "<form name=" + szFormRefineName + " onsubmit=\"return " + szCalleeWindowName + ".interRefineTableType();\">" + szCrLf;
	// table header
	szHtm += "<table border=1 align=center bgcolor=#7ea7e9 width=100%>" + szCrLf;
	if( rsTableHeader != "" ) {
		szHtm += "<tr align=center><!-- Header -->" + szCrLf;
		for( j=0; j < nCols; ++j ) {
			if( nIdxVariant != j )
				szHtm += "<td style=\"font: bolder 10pt 楷体_GB2312; color: blue;\">" + aryTableHeader[j] + "</td>";
		}
		szHtm += "</tr>" + szCrLf;
	}

	// table body
	var szReadonly, szChecked, szDisable

	for( i=0; i < nTableRows; ++i ) {
		aryCol = aryRow[i].split( szResultItemDelimiter );
		szHtm += "<tr><!-- Line:" + (i+1) + " -->" + szCrLf;
		if( nIdxVariant != -1 )
			aryTableVariants[i] = aryCol[nIdxVariant];

		for( j=0; j < nCols; ++j ) {
			szReadonly = "";
			szChecked = "";
			szDisable = "";

			switch( aryRowTypes[j] ) {
			case "keytext":
				szHtm += "<td><b>" + aryCol[j] + "</b></td>";
				break;
			case "text":
				szHtm += "<td>" + aryCol[j] + "</td>";
				break;

			case "input":
				if( aryCol[j] != "" )
					;//szReadonly = " readonly";
				else
					aryCol[j] = "--请输入名称--";

				szHtm += "<td><input type=text name=txt_" + i + j +
					" value=" + aryCol[j] + szReadonly + "></td>";
				break;

			case "checkbox":
				if( aryCol[j] == "1" )
					szChecked = " checked";
				szHtm += "<td align=center><input type=checkbox name=cbx_" + i + j +
					szChecked + "></td>";
				break;

			case "radio":
				if( aryCol[j] == "1" )
					szChecked = " checked";
				szHtm += "<td align=center><input type=radio name=radioSelectOne" +
					szChecked + "></td>";
				break;

			case "image":
				if( aryCol[j].substr(0,1) != "/" )
					aryCol[j] = szAspImageUrlPath + aryCol[j];
				szHtm += "<td><img src=\"" + aryCol[j] + "\" border=0></td>";
				break;

			case "href":
				szHtm += "<td><a href=\"" + aryCol[j] + "\" target=_blank>" + aryCol[j] + "</a></td>";
				break;

			case "variant":
				break;

			default:
				break;
			}
		}
		szHtm += "</tr>" + szCrLf;
	}

	// table tail
	szHtm += "</table>" + szCrLf;

	// whether need refine?
	if( nIdxVariant != -1 || blTableIsRadioType == true ) {
		szHtm += "<br><center>" +
				"<input type=reset name=btnReset value=\" 恢 复 \">  " +
				"&nbsp;&nbsp;<input type=submit name=btnOK value=\" 确 认 \" class='smallbutton'>" +
				"</center><br>";
	}
	// form end
	szHtm += "</form>" + szCrLf;
	return szHtm;
} // end of interGenTablePage

function interGenListPage( aryRow, rsRowMaptools, rsRowOprtAsps, rsRowImages, szLastMaptool )
{
	var i, j, n;
	var szHtm = "";
	var szMaptool, szVariant, szDisplay;
	var szOprtAsp, szImgUrl;
	var aryCol;
	var aryRowMaptools, aryRowOprtAsps, aryRowImages;
	var szVarHirerID = "!!HirerID==" + i_frmMappage.szHirerID;

	var szCalleeWindowName = interGetCalleeWindowName();	// 2000-08-23, added by cyu, but NOT use in this function

	aryRowMaptools = rsRowMaptools.split( szResultInfoMaptoolsDelimiter );
	aryRowOprtAsps = rsRowOprtAsps.split( szResultInfoMaptoolsDelimiter );
	aryRowImages = rsRowImages.split( szResultInfoMaptoolsDelimiter );

	for( i=0, n=0; i < aryRow.length; ++i ) {
		aryCol = aryRow[i].split( szResultItemDelimiter );

		for( j=0; j < aryRowMaptools.length; ++j ) {
			szMaptool = aryRowMaptools[j];
			szOprtAsp = aryRowOprtAsps[j];
			szImgUrl = aryRowImages[j];
			szDisplay = aryCol[j*2];
			szVariant = i_frmMappage.commChangeLinkChar( aryCol[ j*2+1 ] );

			if( szMaptool == "" || szVariant == "" ) {
				if( j == 0 ) {
					szHtm += "<br>" ;
					if( szDisplay != "" )
						szHtm += " <B>" + szDisplay +"</B>";
					else {
						++n;
						szHtm += n + "." ;
					}
				}
				// else error!
			}
			else {
				if( j==0 ) {
					++n;
					szHtm += n + "." ;
				}

				if( szMaptool == "ShowInfoPage" && szDisplay == "HrDatID" ) {
					// 租用者在此处添加显示一般信息的代码
					// 此时，变量 szVariant 中保存的是 租用者ID 号
					szHtm += "<a href=\"XXXXXXXXXXX.asp?ID=" + szVariant + "\" target=\"_blank\">信息</a>";
				}
				if( szMaptool == "ShowGJCZList" ) {
					szHtm += " " +
						//"<a href=\"javascript:mtSubmitFindBus('" + szVariant + "')\" ><img src=images/busstation.gif border=0></a>";
						"<img src=images/busstation.gif border=0>";
				}
				else {
					if( szImgUrl != "" ) {
						if( szImgUrl.substr(0,1) != "/" )
							szImgUrl = szAspImageUrlPath + szImgUrl;
						szDisplay = "<img src=\'" + szImgUrl + "\' title=\'" + szDisplay + "\' align=middle border=0>";
					}
					if( szMaptool == "purl" ) {
						szHtm += " " +
							"<a href=\"" + szVariant + "\" target=_blank>" + szDisplay + "</a>";
					}
					else if( szMaptool == "murl" ) {
						if( szVariant.substr(szVariant.length-4) != ".htm" )
							szVariant += szVarHirerID;
						szHtm += " " +
							"<a href=\"" + szVariant + "\" target=_top>" + szDisplay + "</a>";
					}
					else {
						szHtm += " " + 
							//"<a href=\"javascript:interResultInfoClick( " +
							//"\'" + szMaptool + "\', \'" + szVariant + "\' );\">"  +
							szDisplay ;
							//+ "</a>";
					}
				}
			}
		}
		szHtm += "<br>" ;
		//alert(szHtm);
	}
	szHtm += "<br>&nbsp;&nbsp;<input type='button' value='打印' class='smallbutton' onClick='window.print();'>&nbsp;<input type='button' value='查看地图' class='smallbutton' onClick=FNMap()>";
	return szHtm;
} // end of interGenListPage

function interGenSelectPage( aryRow )
{
	var i;
	var szHtm = "";
	var szFuncName = "interRefineSelectType";	//"mtRefineSelectType";

	var szCalleeWindowName = interGetCalleeWindowName();	// 2000-08-23, added by cyu

	interGenSelectItem( aryRow );

	for( i=1; i <= nSels; ++i ) {
		szHtm += arySelName[i] + "： " + arySel[i] + "<br><br>";
	}
	szHtm = 
		"<form name=" + szFormRefineName + " onsubmit=\"return interRefineSelectType();\">" + 
		szHtm +  
		"<hr size=0>" + 
		"&nbsp;&nbsp;<input type=submit name=btnOK value=\" 确 认 \" class='smallbutton'>" +
		//"<a href=\"javascript:" + szCalleeWindowName + "." + szFuncName + "();\">确认</a>" + 
		"</form>" ;
	return szHtm;
} // end of interGenSelectPage

function interGenSelectItem( aryRow )
{
	var nOpts;
	var nAllOpts;
	var strDisplay, strValue;
	var aryOpt;
	var szOptName;
	var idx;

	nAllOpts = aryRow.length;

	nSels = 0;
	szOptName = "<!-- 循环之前 -->";

	arySelName = new Array();
	arySel = new Array();

	arySelName[ nSels ] = szOptName;
	arySel[ nSels ] = "<select name=Refine" + nSels + ">";

	for( nOpts = 0;  nOpts < nAllOpts; ++nOpts ) {
		aryOpt = aryRow[ nOpts ].split( szResultItemDelimiter );
		if( aryOpt[0] != szOptName ) {
			arySel[ nSels ] += "</select>";
			nSels++;

			szOptName = aryOpt[0];
			arySelName[ nSels ] = szOptName;
			arySel[ nSels ] = "<select name=Refine" + nSels + ">";
		}

		strDisplay = aryOpt[1];
		strValue = i_frmMappage.commChangeLinkChar( aryOpt[ aryOpt.length-1 ] );
		arySel[ nSels ] += '<option value="' + strValue + '">' + strDisplay;
	}

	arySel[ nSels ] += "</select>";
	return true;
} // end of interGenSelectItem


////////////////////////////////////////////////////////////////////////////////
//
//		Refine for common type : list, table, select
//
////////////////////////////////////////////////////////////////////////////////
function interResultInfoClick( maptool, param )
{
	i_frmMappage.mtQuerySubmit( maptool, param );
	//return false;
}

function interRefineTableType()
{
	var param = "Refine==0";
	var formRefine = interGetRefineForm();
	var i, j, nCols;
	var aryRowTypes;
	var szSymbol = "";

	aryRowTypes = szTableRowTypes.split( szResultInfoMaptoolsDelimiter );
	nCols = aryRowTypes.length;

	if( blTableIsRadioType == true ) {
		i = 0;
		if( self.formRefine.radioSelectOne.length > 0 ) {
			for( i=0; i < nTableRows; ++i ) {
				if( eval( "(formRefine.radioSelectOne[" + i + "].checked) ? 1 : 0" ) == 1 )
					break;
			}
		}
		param += i;
		szSymbol = ",";
		for( j=0; j < nCols; ++j ) {
			switch( aryRowTypes[j] ) {
			case "input":
				param += szSymbol + eval( "formRefine.txt_" + i + j + ".value" );
				break;

			case "checkbox":
				param += szSymbol + eval( "(formRefine.cbx_" + i + j + ".checked) ? 1 : 0" );
				break;

			default:
				break;
			}
		}
		i_frmMappage.mtQuerySubmit( i_frmMappage.szLastMaptool, param );
		return;// false;
	}

	szSymbol = "!!";
	for( i=0; i < nTableRows; ++i ) {
		param += szSymbol + aryTableVariants[i] + "==";
		szSymbol = "";
		for( j=0; j < nCols; ++j ) {
			switch( aryRowTypes[j] ) {
			case "input":
				param += szSymbol + eval( "formRefine.txt_" + i + j + ".value" );
				szSymbol = ",";
				break;

			case "checkbox":
				param += szSymbol + eval( "(formRefine.cbx_" + i + j + ".checked) ? 1 : 0" );
				szSymbol = ",";
				break;

			default:
				break;
			}
		}
		szSymbol = "!!";
	}

	i_frmMappage.mtQuerySubmit( i_frmMappage.szLastMaptool, param );
//	return false;
} // end of interRefineTableType

function interRefineSelectType()
{
	var param = "";
	var szSymbol = "";
	var formRefine = interGetRefineForm();
	var i;
	var szEval;

	for( i=1; i <= nSels; ++i ) {
		szEval = "formRefine.Refine" + i + ".options[ formRefine.Refine" + i + ".selectedIndex ].value";
		param += szSymbol + eval( szEval );
		szSymbol = "!!";
	}
	i_frmMappage.mtQuerySubmit( i_frmMappage.szLastMaptool, param );
//	return false;
} // end of interRefineSelectType


////////////////////////////////////////////////////////////////////////////////
//
//		Common function for Refine form
//
////////////////////////////////////////////////////////////////////////////////
function interGetRefineForm()
{
//i_frmMappage.parent.vbstop();
	var formRefine;
	if( szOutputPlaceName == szOutputWindowName )
		;//formRefine = eval( "objOutputWindow.document.all." + szFormRefineName );
	else
		formRefine = i_frmMappage.lcGetLayerObject( szOutputPlaceName, szFormRefineName );
	return formRefine;
}

function interSetAllCheckbox()
{
	var formRefine = interGetRefineForm();
	var i;

	for( i=0; i < nTableRows; ++i ) {
		eval( "formRefine.cbx_" + i + ".checked = true;" );
	}
}

function interClearAllCheckbox()
{
	var formRefine = interGetRefineForm();
	var i;

	for( i=0; i < nTableRows; ++i ) {
		eval( "formRefine.cbx_" + i + ".checked = false;" );
	}
}

function interGenVariant( szTag )
{
	var formRefine = interGetRefineForm();
	var i;
	var szVariant = "", szSymbol = "";
	var fChk, szVal;

	for( i=0; i < nTableRows; ++i ) {
		fChk = eval( "formRefine.cbx_" + i + ".checked" );
		szVal = eval( "formRefine.cbx_" + i + ".value" );
		if( fChk == true && szVal.substr(0,szTag.length) == szTag ) {
			szVariant += szSymbol + szVal.substr(szTag.length);
			szSymbol = ",";
		}
	}
	return szVariant;
}


////////////////////////////////////////////////////////////////////////////////
//
//		for maptool : ListMyWorld
//
////////////////////////////////////////////////////////////////////////////////
function interSubmitDispUserPoint()
{
	var maptool = "DispUserPoint";
	var param = interGenVariant( "U" );

	if( param == "" )
		alert( "请先选中一些小方框，再做“显示”操作" );
	else {
		param = "User==" + param;
		i_frmMappage.mtQuerySubmit( maptool, param );
	}
	//return false;
}

function interSubmitDelUserPoint()
{
	var maptool = "DelUserPoint";
	var param = interGenVariant( "U" );

	if( param == "" )
		alert( "请先选中一些小方框，再做“删除”操作" );
	else {
		var blRet = window.confirm("确认要删除这些对象吗？");
		if( blRet ) {
			param = "User==" + param;
			i_frmMappage.mtQuerySubmit( maptool, param );
		}
	}
	//return false;
}


////////////////////////////////////////////////////////////////////////////////
//
//		for maptool : ListMyQuery
//
////////////////////////////////////////////////////////////////////////////////
function interSubmitDispUserQuery()
{
	var paramLable = interGenVariant( "L" );
	var paramTemp = interGenVariant( "T" );
	var paramPoint = interGenVariant( "P" );

	if( paramLable + paramTemp + paramPoint == "" )
		alert( "请先选中一些小方框，再做“显示”操作" );
	else {
		var maptool = "DispUserQuery";
		var param = 
			"Label==" + paramLable +
			"!!Temp==" + paramTemp +
			"!!Point==" + paramPoint +
			"!!RemoveTemp==1" ;
		i_frmMappage.mtQuerySubmit( maptool, param );
	}
	//return false;
}

function interSubmitDelUserQuery()
{
	var paramLable = interGenVariant( "L" );
	var paramTemp = interGenVariant( "T" );
	var paramPoint = interGenVariant( "P" );

	if( paramLable + paramTemp + paramPoint == "" )
		alert( "请先选中一些小方框，再做“删除”操作" );
	else {
		var blRet = window.confirm("确认要删除这些对象吗？");
		if( blRet ) {
			var maptool = "DelUserQuery";
			var param = 
				"Label==" + paramLable +
				"!!Temp==" + paramTemp +
				"!!Point==" + paramPoint ;
			i_frmMappage.mtQuerySubmit( maptool, param );
		}
	}
	//return false;
}


////////////////////////////////////////////////////////////////////////////////
//
//		for maptool : QueryGJRoute
//
////////////////////////////////////////////////////////////////////////////////
function interSubmitShowGJRoute( szRouteMsg )
{
	//alert("ok");
	var xinwindow;
	var aryStartEndInfo = szStartEndInfo.split( "," );
	var maptool = "ShowGJRoute_bjbus";
	var param = 
		"RouteMsg==" + szRouteMsg +
		"!!S_LYR==" + aryStartEndInfo[0] +
		"!!E_LYR==" + aryStartEndInfo[1] +
		"!!S_FID==" + aryStartEndInfo[2] +
		"!!E_FID==" + aryStartEndInfo[3] ;
		xinwindow = window.open("http://www.bjbus.com/bus_map/mappage.asp")
		xinwindow.mtQuerySubmit( maptool,param );
	//i_frmMappage.mtQuerySubmit( maptool, param );
}

function interSubmitShowGJRoutePart( szWhichPart, szRouteMsg )
{
	blEEyeShow = false;
	var aryStartEndInfo = szStartEndInfo.split( "," );
	var maptool = "ShowGJRoutePart_bjbus";
	var param = 
		"RouteMsg==" + szRouteMsg + "!!Part==" + szWhichPart +
		"!!S_LYR==" + aryStartEndInfo[0] +
		"!!E_LYR==" + aryStartEndInfo[1] +
		"!!S_FID==" + aryStartEndInfo[2] +
		"!!E_FID==" + aryStartEndInfo[3] ;
	i_frmMappage.mtQuerySubmit( maptool, param );
}


////////////////////////////////////////////////////////////////////////////////
//
//		for maptool : ClearRuler
//
////////////////////////////////////////////////////////////////////////////////
function interSubmitClearRuler()
{
	var szHtm = "";
	i_frmMappage.dfSumDistance = 0.0;
	szHtm += "本次距离：0 公里<br>";
	szHtm += "累计距离：" + i_frmMappage.dfSumDistance + " 公里<br><br>";
	szHtm = "<font style=\"font-size:9pt\"><b style=\"font: bolder 9pt 楷体_GB2312\">测距</b><hr size=1><br>" + szHtm + "</font>";
	i_frmMappage.lcReplaceLayerContent( i_frmMappage.szLayerOutput, '<font color="#A1E0AE">'+ szHtm + '</font>' );

	var maptool = "ClearRuler";
	var param = "";
	i_frmMappage.mtQuerySubmit( maptool, param );
}


////////////////////////////////////////////////////////////////////////////////
//
//		for maptool : any for 鹰眼
//
////////////////////////////////////////////////////////////////////////////////
function interDisplayAndDrawEagleEye( aryEagleEyeResult )
{
	var szHtm;
	var nTop = 40;
	szHtm = '鹰眼 <a href=\"/maphelpv4/default.asp?maptool=鹰眼\" target=_blank>' +
			'<IMG  src="images/help.gif" border=0 ></a>' +
			'<br><hr size=1>' + 
			//'<div id=EagleEyeMap style=\"position:absolute; top:' + nTop + '; left:0; width:' + nEagleEyeMapWidth + '; height:' + nEagleEyeMapHeight + ';\">' +
			'<div id=EagleEyeMap style=\"position:absolute; top:' + "155" + '; left:192; width:' + "106" + '; height:' + "93" + ';\">' +
			'<img onclick=\"interDDED()\" src=' + aryEagleEyeResult[0] + ' border=1>' + 
			'<div id=EagleRect style=\"position:absolute; top:0; left:0; width:10; height:6; border: 1px solid #ff0000; visibility:hidden\">' +
			'<table border="1" width="100%" height="100%" bordercolor="#FF0000" cellspacing="0" cellpadding="0"></div>' +
			'</div>' ;
	lcReplaceLayerContent( szLayerOutput, szHtm );	

	for( i=1; i<5; ++i ) {
		aryEagleEyeResult[i] = parseInt(aryEagleEyeResult[i]);
	}
	EagleRect.style.visibility="visible";
	EagleRect.style.top = aryEagleEyeResult[2];
	EagleRect.style.left = aryEagleEyeResult[1];
	EagleRect.style.width = aryEagleEyeResult[3];
	EagleRect.style.height = aryEagleEyeResult[4];
} 

function interDDED()
{
	var Idstr = event.srcElement.id;
	var EagleClickX, EagleClickY;

	EagleClickX = window.event.offsetX;
	EagleClickY = window.event.offsetY;
	var maptool = "EagleEyePan";
	var param = "ClickX_EE==" + EagleClickX + "!!ClickY_EE==" + EagleClickY;
	mtQuerySubmit( maptool, param )
}

	function WindowStatus(){
		window.status = " X = " + window.event .offsetX + "      Y = " + window.event .offsetY +
						"   DivName = " + event.srcElement .id;
	}

//
//	公交换乘
//----------------------
var szStartName = "";
var szEndName = "";

function interQueryBusTransferResult(szDesc,szRet)
{
	
	var aryDesc = szDesc.split(",");
	var aryRet = szRet.split(";");
	var aryItem;
	var szHtm = "";
	var i,j;
	var nIndex = 0;
	var szParam;
	var szHighLightFunTag = "javascript:";
	var szFunEndTag = ");";
	var ShowMap=""
	if(aryDesc[0] == "Middle"){
		
		szHtm = "";
		for(i=1;i<aryDesc.length;i++){
			szHtm += "<br>第 " + i + " 端点:<br><select name=\"sel" + i + "\">";
			
			if(i != 1) nIndex += parseInt(aryDesc[i-1]);
			for(j=nIndex;j<(nIndex + parseInt(aryDesc[i]));j++){
				aryItem = aryRet[j].split(",");
				szParam = aryItem[0] + "," + aryItem[1] + "," + aryItem[2]; 
				szHtm += "<option value=\"" + szParam + "\">" + aryItem[2];
			}	
			szHtm += "</select>";
		}
		
		interWindowOpen( "page/reInfo.htm",szHtm)
	}else if(aryDesc[0] == "Final"){
		if (szStartName== "" && szEndName ==""){
			szStartName = gj1;
			szEndName = gj2;	
		}
		
		var vienumber=0;
		
		if(aryDesc[2]<=5 && aryDesc[2]>0)
			{
				vienumber=aryDesc[2];
			}else if (aryDesc[2]>5)
			{
				vienumber=5;
			}
		

		szHtm = "<b>公交换乘</b><hr>从 <i>" + szStartName + "</i> 到 <i>" + szEndName + "</i> ，提供<b>"+vienumber+"</b>条<font color=red>"+ GJmethodview +"</font>优选方案:<br><br>"
		//for(i=0;i<aryRet.length;i++)  
		for(i=0;i<vienumber;i++)
		{
			var j;
			var nIdx = 2;
			var nChangeTimes = 8;
			aryItem = aryRet[i].split(",");
			szParam = aryRet[i];
			ShowMap="javascript:opener.mtShowGJ(\'"  + szParam + "\')"
			szHtm += "<a href=\"javascript:opener.mtShowGJ(\'"  + szParam + "\')" + "\" style=\"cursor:hand;font-weight:bold\">第 " + (i + 1) + " 种:</a>";
			if(aryItem[0] > 0){
				szHtm += "换乘 " + aryItem[0] + " 次<br>"	
			}
			for(j=0;j<=aryItem[0];j++){
				if(j==0 && aryItem[0] > 0)
					szHtm += "先换乘 "
				if(j==aryItem[0] && aryItem[0] > 0 )
					szHtm += "最后换乘 "
				if(j > 0 && j < aryItem[0])
					szHtm += "换乘 "
				if(aryItem[0]==0)
					szHtm += "换乘 "
				
				// szParam Format. ex: "'北京_公司企业','15'"
				
				// 1. Bus Line
				szHtm += "<a href=\"" +szHighLightFunTag  + "\" style=\"cursor:hand;font-weight:bold\">" + aryItem[nIdx + nChangeTimes*j] + "</a>";
				// 2. First Stop
				szHtm += " 在 <a href=\"" +szHighLightFunTag + "\" style=\"cursor:hand;font-weight:bold\">" + aryItem[nIdx + nChangeTimes*j + 2] + "</a> 站上车，在 ";
				// 3. Second Stop
				szHtm += "<a href=\"" +szHighLightFunTag + "\" style=\"cursor:hand;font-weight:bold\">" + aryItem[nIdx + nChangeTimes*j + 5] + "</a> 站下车"
				if(j==aryItem[0])
				szHtm += "。"
				else{
				szHtm += "；";
				}
			}
			szHtm += "<br><br>";
		}
		szHtm+="<input value=打开地图 class=smallbutton type=button onClick="+ShowMap+">&nbsp;&nbsp;<input class=smallbutton type=button name=Button value=打印 onClick=init()>"
		//alert(szHtm);
		lcReplaceWindowContent(szHtm);
		//lcReplaceLayerContent(szLayerOutput, szHtm);
		//document.all.layerOutput.innerHTML = szHtm
		
	}
}

function interShowBusTransfer(param)
{
	var maptool = "ShowBusTransfer";
	var param = "RouteMsg==" + param;
	mtQuerySubmit( maptool, param ) 
}
function lcReplaceWindowContent(content)
{
     strInsert=content;
     ResultWindow=window.open("page/result.htm","ResultWindow","width=420,height=255,top=5,left=360,resizable=yes,scrollbars=yes,menubar=no,toolbar=no");
}
