
	

	///////////////////全局变量///////////////////		
		var mapABC;//本api中用的MMap引用
		var tempCloseId;//要关闭的容器id
		var tempZoomLevel;//要设置的视野值
		var tempKeyword;//要搜索的关键字
		var abcHelperGlobalCityName="北京";//用于名称搜索显示城市名称的全局变量
		var abcHelperGlobalCityCode="010";//用于名称搜索显示城市区号的全局变量
		var abcHelperSearchResultPoints = new Array();//保存搜索的点
		var abcHelperData="";//保存标注导出数据的变量
		var abcHelperLocalResultPoint;//用于保存定位搜索返回点
		//城市切换框架
		var tempMode;
		var tempContainerId;
		var abcHelperCityCenterBlockInfo = 
			"<div id=\"abcHelperCityCenterBlock\" class=\"mapabc_tip\" style=\"display:block;\" >"+
			"<div class=\"tip_title\">城市切换"+
			"<img class=\"img_2\" src=\"images/close.gif\"  onclick=\"abcHelperClose('abcHelperCityCenterBlock')\" "+
			"alt=\"关闭\" width=\"16\" height=\"15\" border=\"0\"/></div>"+
			"<div class=\"tip_contain\" id=\"abcHelperCityInnerPanel\" style=\"display:block\">"+
			"</div></div>";
	///////////////////全局变量///////////////////	
	
	/*
		使用abchelper 帮助文档时必须先调用的方法
		此方法用于避免不同用户为MMap对象取不同的名字而设计，
		统一api内部MMap对象用名
	*/
	function useABCHelper(mapObj){
		mapABC = mapObj;
		mapABC.showNavigator(false);
		mapABC.addPopupMenuItem ("城市切换", "abcHelperCityCenter", false);
		mapABC.addPopupMenuItem ("名称查询", "abcHelperSearch", false);
		mapABC.addPopupMenuItem ("地址定位", "abcHelperLocal", false);
		mapABC.addPopupMenuItem ("公交换乘", "abcHelperBusSearch", false);
		mapABC.addPopupMenuItem ("驾车导航", "abcHelperRouteSearch", false);
		mapABC.addPopupMenuItem ("清空", "abcHelperClear", false);
		mapABC.addPopupMenuItem ("测距", "abcHelperMeasure", false);
		mapABC.addEventListener(MMap.EVENT_GEOMETRY_CREATED, abcHelperSaveData);
		mapABC.addEventListener(MMap.EVENT_GEOMETRY_CHANGED, abcHelperSaveData);
		mapABC.addEventListener(MMap.EVENT_GEOMETRY_REMOVED, abcHelperSaveData);
		mapABC.addEventListener(MMap.EVENT_POPUP_MENU_CLICK,abcHelperPopupMenuClickHander);
	}
	//////////////////////////////全局工具类方法开始////////////////////////////
	//设置信息到某个元素上
	function setInnerHTML(containerId,info){
		document.getElementById(containerId).innerHTML = info;
	}


	//将某个窗口显示
	function abcHelperOpen(openId){
		try{
			var tempOpener = document.getElementById(openId);
			tempOpener.style.display = "block";   
			if(openId == "abcHelperControlPanel"){  //修改图片下掉问题所加的语句
				setVV(openId);  //修改图片下掉问题所加的语句
			}                   //修改图片下掉问题所加的语句
		}catch(err){
			alert(err.name + ":" + err.message);
		}
	}
	//将某个窗口关闭
	function abcHelperClose(closeId){
		try{
			var tempCloser = document.getElementById(closeId);
			tempCloser.style.display = "none";
			
		}catch(err){
			alert(err.name + ":" + err.message);
		}
	}
	//当关闭搜索、公交、驾车等窗口时，将所有搜索返回的点删除
	function abcHelperRemoveSearchPoints(){
		//将事先保存的搜索返回的点集合迭代删除
		try{
			for(var i=0;i<abcHelperSearchResultPoints.length;i++){
				var point = abcHelperSearchResultPoints[i];
				mapABC.removeOverlay(point);
			}
		}catch(err){}
	}
	//收起或展开
	function abcHelperTransPageStatus(pageId,imageId){//abcHelperSearchCityBlock
		try{
			if(document.getElementById(pageId).style.display == "none"){
				document.getElementById(pageId).style.display = "block";
				setVV(pageId);
				document.getElementById(imageId).src = "images/img_s.gif";
				document.getElementById(imageId).alt = "收起";
			}else{
				document.getElementById(pageId).style.display = "none";
				document.getElementById(imageId).src = "images/img_b.gif";
				document.getElementById(imageId).alt = "展开";
			}
		}catch(err){
			alert(err.name + ":" + err.message);
		}
	}
	function setVV(pageId){
		if(pageId=='abcHelperLocalBlockPage') {
			document.getElementById(pageId).style.height = '165px';
			return ;
		}
		var ie6falg = false;
		if (window.XMLHttpRequest) {
		 if(!window.ActiveXObject){
		 } else {
		 }
		} else {
		 ie6falg = true;
		} 

		if(ie6falg){
			var st = document.styleSheets['lfp'];
			var oRule=st.rules[0];
			if(oRule.style.height.indexOf('%') == -1){
				var g = parseInt(parseInt(oRule.style.height)*0.7);
				document.getElementById(pageId).style.height = g + "px";
			}
		}
	}

	function abcHelperDirHandle(buttonId,flag){
		var tempElement = document.getElementById(buttonId).className;
		var tempArr = tempElement.split(" ");
		var tempString = "";
		if(flag){
			tempString = tempArr[0]+ "_hover";
		}else{
			tempString = tempArr[0].replace("_hover","");
		}
		resultClassName = tempString + " " + tempArr[1];
		document.getElementById(buttonId).className = resultClassName;
	}
////////////////////////////右键菜单点击处理实现开始///////////////////////////////////////

function abcHelperPopupMenuClickHander(event){
	var tempMenuId = abcHelperGetPopupMenuId(event);
	if(tempMenuId =="abcHelperCityCenter"){
		abcHelperSetCityCenter('ALL','abcHelperControlPanel',9);
	}else if(tempMenuId =="abcHelperSearch"){
		showKeywordSearchBlock('ALL','abcHelperControlPanel');
	}else if(tempMenuId =="abcHelperLocal"){
		showLocalSearchBlock('abcHelperControlPanel');
	}else if(tempMenuId =="abcHelperBusSearch"){
		abcHelperGetBusSearchService('ALL','abcHelperControlPanel');
	}else if(tempMenuId =="abcHelperRouteSearch"){
		abcHelperGetRouteSearchService('ALL','abcHelperControlPanel');
	}else if(tempMenuId =="abcHelperMeasure"){
		abcHelperMeasure();
	}else if(tempMenuId =="abcHelperClear"){
		abcHelperRemoveAll();
	}
}

function abcHelperGetPopupMenuId(event){
	var tempArgs = event.args;
	var tempArray = tempArgs.split(",");
	var tempArrayLen = tempArray.length;
	var tempMenuId = tempArray[tempArrayLen-1];
	return tempMenuId;
}


////////////////////////////右键菜单点击处理实现结束///////////////////////////////////////

	//////////////////////////////全局工具类方法结束////////////////////////////
	/*
		内部设计，可设置城市信息获得方式和点击城市后的回调方法
		回调方法--即要求的点击城市后要调用的方法
		回调方法中可获得城市名字信息cityName
		可调用本api中的city.ctn2c(cityName)获得城市区号;
							 city.ctxy(cityName)获得城市的中心坐标
																		坐标格式：{横坐标,纵坐标}的数组;
							 city.ctall(cityName)获得该城市的全部信息
																		信息格式：{城市名,区号,横坐标,纵坐标,矢量版视野值}的数组;
		参数说明：mode---要获得信息的方式
									BYLETTERORDER--以拼音排序方式获得城市信息
									BYCITYRELATION--以城市所属省关系获得城市信息
									其他字符串--以上两种都获得
					  methodName---回调方法方法名
					  containId---装城市信息的容器id
	*/
	function abcHelperShowCityList(mode,methodName){
		var result = "";
		if(mode == "BYLETTERORDER"){//以拼音排序方式获得城市信息
			result = getCityListByLetterOrder(methodName);
		}else if(mode == "BYCITYRELATION"){//以城市所属省关系获得城市信息
			result = getCityListByCityRelation(methodName);
		}else {//上述两个方式的信息都获得
			result += getCityList(methodName);
		}
		return result;
	}
	
	/*
		暴露给用户，用于设置城市中心
		zoomlevel---当点击城市名时的视野值
		其他参考abcHelperShowCityList方法
	*/
	function abcHelperSetCityCenter(mode,containerId,zoomLevel){
		//调用一个方法返回一个
		var result = abcHelperShowCityList(mode,"abcHelpSetCityCenterCallback");
		setInnerHTML(containerId,abcHelperCityCenterBlockInfo);
		setInnerHTML("abcHelperCityInnerPanel",result);
		abcHelperOpen(containerId);
		if(mode!="BYLETTERORDER" || mode!= "BYCITYRELATION"){
			MM_showHideLayers("type1","type12");
		}
		abcHelperOpen("abcHelperCityInnerPanel");
		tempZoomLevel = zoomLevel;
	}
	//设置城市信息到用于搜索的全局变量
	function setGlobalCityName(cityName){
		var flag = false;//标志该城市有公交搜索信息
		for (var h = 0; h < citylist.hot_buscity.length ; ++ h){
			var tempCityName = citylist.hot_buscity[h];
			if(tempCityName == cityName){
				flag = true;
			}
		}
		var cities = citylist.bus_city;
		for (var t in cities){
			if (cities[t].length > 0){
				for (var i = 0;i < cities[t].length; ++i){
					if(cities[t][i] == cityName){
						flag = true;
					}
				}
			}
		}
		var tempCityCode = city.ctn2c(cityName)
		if(flag){//如果该城市有公交搜索信息
			//将用于城市公交搜索的城市名和城市区号修改
			abcHelperBusGlobalCityName = cityName;
			abcHelperBusGlobalCityCode = tempCityCode;
		}
		abcHelperGlobalCityName = cityName;
		abcHelperGlobalCityCode = tempCityCode;
		abcHelperRouteStartCityName = cityName;//驾车起点城市
		abcHelperRouteStartCityCode = tempCityCode;//驾车起点区号
	}

	/*
		设置城市中心回调方法
		参数说明：cityName---城市名
	*/
	function abcHelpSetCityCenterCallback(cityName){
		setGlobalCityName(cityName);//调用方法设置城市信息
		abcHelperGlobalCityName = cityName;
		abcHelperGlobalCityCode = city.ctn2c(cityName);
		try{
			//用城市名查得城市的中心信息
			var center = city.ctxy(cityName);
			if (typeof mapABC != "undefined"){
				//设置视野值和中心坐标---tempZoomLevel为调用abcHelperSetCityCenter方法时的zoomLevel
				mapABC.removeAllOverlays();
				mapABC.setZoomAndCenter(tempZoomLevel,new MLatLng(center[1],center[0]));
			}
		}catch(err){
			alert(err.name +":" +err.message);
		}
		abcHelperClose("abcHelperCityCenterBlock");//隐藏窗口
	}

	//地图放大
	function abcHelperZoomIn(){
		
		mapABC.zoomIn();
	}
	//地图缩小
	function abcHelperZoomOut(){
		mapABC.zoomOut();
	}
	function abcHelperRemoveAll(){
		mapABC.removeAllOverlays();
		mapABC.quitMouseDraw();
	}
	function abcHelperPan(dir){
		if(typeof dir == "undefined" || dir == "" || dir == "up"){
			mapABC.pan('up',100,2);
		}else if(dir == "down"){
			mapABC.pan('down',100,2);
		}else if(dir == "right"){
			mapABC.pan('right',100,2);
		}else if(dir == "left"){
			mapABC.pan('left',100,2);
		}
	}

	//////////////////////////////搜索的内部实现开始////////////////////////////////////
	//暴露给用户，用于获得搜索的字符串和搜索服务
	function showKeywordSearchBlock(mode,containerId){
		var info = 
						'<div id=\"abcHelperSearchCityBlock\" class=\"mapabc_tip\" style=\"display:block;\" >'
						+'<div class=\"tip_title\">名称查询'
						+'<img id=\"abcHelperSearchTransImg\" class=\"img_1\" src=\"images/img_s.gif\" '
						+'onclick=\"abcHelperTransPageStatus(\'abcHelperSearchCityBlockPage\','
						+'\'abcHelperSearchTransImg\')\"'
						+' alt=\"收起\" width=\"14\" height=\"14\" border=\"0\"/>'
						+'<img class=\"img_2\" src=\"images/close.gif\"  onclick=\"abcHelperClose(\'abcHelperSearchCityBlock\');abcHelperRemoveSearchPoints();\"'
						+' alt=\"关闭\" width=\"16\" height=\"15\" border=\"0\"/></div>'
						+'<div class=\"tip_contain\" id=\"abcHelperSearchCityBlockPage\" style=\"overflow:auto;\" >'
						+'<p class=\"search_name\">在&nbsp;'
						+'<a id=\"abcHelperSearchCityName\" style=\"color:#ff0000;\" '
						+ 'href=\"#\" onclick=\"abcHelperShowCityInfoForSearch(\'' + mode +'\''
						+ ',\'abcHelperControlPanel\');\">'
						+ abcHelperGlobalCityName+'</a>&nbsp;中搜索</p>'
						+'<div style=\"text-align:left;\">'
						+'<input style=\"margin-left:5px;\" type=\"text\" onkeydown=\"if(event.keyCode==13)abcHelperSearch();\" id=\"abcHelperSearchKeyWord\"  name=\"abcHelperSearchKeyWord\" value=\"\" size=\"20\" maxlength=\"20\">&nbsp;'
						+'<input style=\"width:45px;height:20px;\" type=\"button\" value=\"搜索\" onclick=\"abcHelperSearch();\">'
						+'</div><div class=\"serch_city_div\" id=\"abcHelperSearchInnerPanel\"></div></div></div>';
		tempMode = mode;
		tempContainerId = containerId;
		setInnerHTML(containerId,info);
		abcHelperOpen(containerId);
	}
	//暴露给用户，搜索功能的实现
	function abcHelperSearch(){
		//清空内存中的点
		abcHelperSearchResultPoints = new Array();
		var citycode = abcHelperGlobalCityCode;//城市电话区号从城市名字的查询中获得
		var keyword = document.getElementById("abcHelperSearchKeyWord").value;//从abcSearchForm表单中获得
		if(keyword==""){
			alert("请输入搜索关键字！");
			return false;
		}
		//提醒地图使用者，正在搜索
		setInnerHTML("abcHelperSearchInnerPanel","正在搜索...");
		mapABC.quitMouseDraw();
		var number = 9;
		try{
			//数据封装
			var sis = new MSISSearch();//自定义sis变量调用查询方法
			var searchpointpara = new MSearchPointPara();//自定义searchpointpara变量调用设置参数方法
			
			sis.setSISCallbackFunction(abcHelpKeywordCallBack); 
			//开始把得到的参数传入set方法中
			searchpointpara.setCitycode(citycode);
			searchpointpara.setKeyword(keyword);
			searchpointpara.setNumber(number);

			sis.searchByKeyword(searchpointpara);
		}catch(err){
			alert(err.name + ":" + err.message);
		}
	}
	//搜索实现abcHelperSearch中sis注册的回调方法
	function abcHelpKeywordCallBack(data){

		mapABC.removeAllOverlays();

		var result = "<div>";
		if (data.count != 0) {
			var resultLen = data.poilist.length;

			for (var i = 0; i < resultLen; i++) {

				var x = data.poilist[i].x;
				var y = data.poilist[i].y;
				var sContent = "";

				var pointStyle = new MStyle();//调用MStyle设置TIP窗口样式
				pointStyle.lineColor = 0xFFFFFF;//lineColor：线条颜色，RGB颜色格式
				pointStyle.lineSize = 2;//lineSize：线条的宽度。单位是像素
				pointStyle.fillColor = 0x4b8bd9;//fillColor：填充颜色，RGB颜色格式
				pointStyle.fillOpacity = 80;//fillOpacity：填充的不透明度
				pointStyle.labelColor = 0xFFFFFF;//labelColor：tips的label文字颜色，RGB颜色格式
				pointStyle.leading = 2;//leading：文字行距

				//textContent：tip窗口的文本内容
				pointStyle.textContent = abcHelperPointInfoHandle(data.poilist[i]);
				var point = new MPointOverlay(new MLatLng(y,x),i+1,pointStyle,'abcHelperOverlay'+(i+1));
				
				abcHelperSearchResultPoints.push(point);//将点加入数组中，关闭窗口时候删除数组中所有点

				var temp = '<p style=\"cursor:hand;cursor:pointer;\" class=\"bai\" onMouseOver=\"mapABC.setCenterByLatLng(\''+y+'\',\''+x
					+'\');mapABC.openTipById(\'' + 'abcHelperOverlay'+ (i+1) + '\');this.className=\'mapabc_gray\';\" onmouseout=\"this.className=\'bai\';\">'
					+ '<b>' +　(i+1) +'</b>.&nbsp;'+ data.poilist[i].name + '</p>';

				result += temp;
			}
			result += '</div>';
			setInnerHTML("abcHelperSearchInnerPanel",result);
			abcHelperOpen("abcHelperSearchInnerPanel");
			mapABC.drawPoints(abcHelperSearchResultPoints);
		} else {
			alert("对不起！此城市没有您要查找的关键字");
			setInnerHTML("abcHelperSearchInnerPanel","--搜索完毕--");
		}
	}

	function abcHelperShowCityInfoForSearch(mode,containerId){
		try{
			//设置城市切换框架
			setInnerHTML(containerId,abcHelperCityCenterBlockInfo);
			abcHelperOpen(containerId);
			//设置城市信息到城市切换框架
			var result = abcHelperShowCityList(mode,"abcHelperCityTransferCallback");
			setInnerHTML("abcHelperCityInnerPanel",result);
			abcHelperOpen(containerId);
			if(mode!="BYLETTERORDER" || mode!= "BYCITYRELATION"){
				MM_showHideLayers("type1","type12");
			}
			abcHelperOpen("abcHelperCityInnerPanel");
		}catch(err){
			alert(err.name + ":" + err.message);
		}
	}

	function abcHelperCityTransferCallback(cityName){
		var cityCenter = city.ctxy(cityName);
		setGlobalCityName(cityName);
		mapABC.setCenterByLatLng(cityCenter[1],cityCenter[0]);
		abcHelperClose("abcHelperCityCenterBlock");
		showKeywordSearchBlock(tempMode,tempContainerId);
	}


	//////////////////////////////搜索的内部实现结束/////////////////////

	
	//////////////////////////////定位的内部实现开始/////////////////////
	//暴露给用户，用于定位
	function showLocalSearchBlock(containerId){
		var info = 
				"<div id=\"abcHelperLocalBlock\" class=\"tip_dw\"  >"
				+"<div class=\"tip_title\">地址定位"
				+"<img id='abcHelperLocalTransImg' class=\"img_1\" src=\"images/img_s.gif\" "
				+"onclick=\"abcHelperTransPageStatus('abcHelperLocalBlockPage',"
				+"'abcHelperLocalTransImg')\" "
				+" alt=\"收起\" width=\"14\" height=\"14\" border=\"0\"/>"
				+"<img class=\"img_2\" src=\"images/close.gif\"  "
				+"onclick=\"abcHelperClose('abcHelperLocalBlock');abcHelperRemoveLocalResult();\" "
				+"alt=\"关闭\" width=\"16\" height=\"15\" border=\"0\"/></div>"
				+"<div class=\"tip_contain\" style=\"display:block\" id=\"abcHelperLocalBlockPage\">"
				+"<p style=\"margin-top:3px;\"><font color=\"#000000\"><b>地址定位：</b></font>"
				+"<input name=\"abcHelperKeyword\" size=\"15\" id=\"abcHelperKeyword\" maxlength=\"20\" onkeydown=\"if(event.keyCode==13)abcHelpLocalSearch();\" ></p>"
				+"<p><font color=\"#545454\">如：北京市海淀区苏州街3号</p>"
				+"<p style=\"height:25px;text-align:center;\"><input style=\"width:80px;height:25px;\" "
				+"type=\"button\" value=\"开始定位\" onclick=\"abcHelpLocalSearch();\"></p><p id=\"abcHelperLocalNotice\"></p> "
				+"</div></div>";
		setInnerHTML(containerId,info);
		abcHelperOpen(containerId);
	}
	//内部设计，定位搜索方法
	function abcHelpLocalSearch(){
		//获得定位关键字
		abcHelperRemoveLocalResult();
		var keyword = document.getElementById("abcHelperKeyword").value;
		tempKeyword = keyword;
		if(keyword ==null || keyword.length==0){
			alert("请输入要定位的地址!");
			return false;
		}
		setInnerHTML("abcHelperLocalNotice","正在定位...");
		try{
			var geoCode = new MGeoCode();
			var address = new MAddress(); 
			var arr = new Array(); 
			geoCode.setCallbackFunction(abcHelpLocationSearchCallback); 
			//调用MAddress的address方法 
			address.setAddress(keyword); 
			arr.push(address); //将address对象加载到数组里 
			//调用MGeoCode类中的geocoding方法把数组做为参数输入 
			geoCode.geocoding(arr);
		}catch(err){
			alert(err.name +":" + err.message);
		}
	}
	function abcHelperRemoveLocalResult(){
		try{
			mapABC.removeOverlay(abcHelperLocalResultPoint);
		}catch(err){}
	}
	//定位搜索回调方法
	function abcHelpLocationSearchCallback(data){
		var grade = data.getGrade();
		if(grade >= 7){//当返回数据的级别小于3时，认为不精确
			var lng = data.getLongitude();//获得横坐标
			var lat = data.getLatitude();//获得纵坐标
				//调用方法对定位所标出的点进行删除
			abcHelperRemoveLocalInfo();
			var sContent = "";
			var pointStyle = new MStyle();//调用MStyle设置TIP窗口样式
			pointStyle.lineColor = 0xFFFFFF;//lineColor：线条颜色，RGB颜色格式
			pointStyle.lineSize = 2;//lineSize：线条的宽度。单位是像素
			pointStyle.fillColor = 0x4b8bd9;//fillColor：填充颜色，RGB颜色格式
			pointStyle.fillOpacity = 80;//fillOpacity：填充的不透明度
			pointStyle.labelColor = 0xFFFFFF;//labelColor：tips的label文字颜色，RGB颜色格式
			pointStyle.leading = 2;//leading：文字行距
			sContent += tempKeyword;
			abcHelperLocalResultPoint = new MPointOverlay(new MLatLng(lat,lng),sContent,pointStyle,"1");
			mapABC.addOverlay(abcHelperLocalResultPoint,true);
		}else{
			alert("您需要的地址无法精确定位！");
		}
		setInnerHTML("abcHelperLocalNotice","--定位结束--");
	}
	function abcHelperRemoveLocalInfo(){
		try{
			//删除原先定位的点
			mapABC.removeOverlay(abcHelperLocalResultPoint);
		}catch(err){}//捕捉异常后不处理
	}
	//////////////////////////////定位的内部实现结束/////////////////////

	function abcHelperMeasure(){
		mapABC.addEventListener(MMap.EVENT_MEASURE_LINE_DRAWN,abcHelperMapDBClicked);
		mapABC.measure();
	}

	function abcHelperMapDBClicked(event){
		mapABC.setMapMode(MMapMode.BROWSE);
		mapABC.quitMouseDraw();
		//一次测距完成后退出测距模式
		mapABC.removeEventListener(MMap.EVENT_MEASURE_LINE_DRAWN, abcHelperMapDBClicked);
	}

	////////////////////////////标注功能实现开始////////////////////////////////
	//暴露给用户，标注功能
	function abcHelperCreatePoint(){
		//将其转换为编辑模式
		mapABC.setMapMode(MMapMode.EDIT);
		var defaultPointStyle = new MStyle();
		defaultPointStyle.canBeTop = true;
		mapABC.addGeometry(MGeometry.TYPE_POINT, defaultPointStyle,"1");
	}
	//数据导出
	function abcHelperSaveData(){
		//注册数据导出事件，当数据导出时执行abcHelperExportDataCallback方法
		mapABC.addEventListener(MMap.EVENT_EXPORT_MAP_DATA, abcHelperExportDataCallback);
		mapABC.exportMapData();
	}

	//将数据保存
	function abcHelperExportDataCallback(event){
		var tempArgs = event.args;
		var tempMapId = tempArgs.split(",")[0];
		abcHelperData = tempArgs.replace(tempMapId+",","");
		
	}

	//用于导出数据
	function abcHelperImportData(){
		mapABC.removeAllOverlays();
		if(typeof abcHelperData != "undefined" || abcHelperData!=""){
			mapABC.importMapData(abcHelperData);
		}
	}

	////////////////////////////标注功能实现结束////////////////////////////////

	


//////////////////////////////////////驾车搜索实现开始/////////////////////////////////////
var startName,endName;
var startcitycode,endcitycode;
var abcHelperRouteSearchSIS,abcHelperRouteSearchStartPara,abcHelperRouteSearchEndPara,abcHelperRouteSearchPara;
var route_flag = 1;//判断起点与终点
var route_start_x="",route_start_y="",route_start_name="",route_start_type="",route_start_address="",route_start_tel="",route_start_pid="",route_start_citycode="",route_start_cityname="";
var route_end_x="",route_end_y="",route_end_name="",route_end_type="",route_end_address="",route_end_tel="",route_end_pid="",route_end_citycode="",route_end_cityname="";

var route_NN=0;//判断是否查询过.
var tempStartOrNot;
var abcHelperRouteSearchStartX,abcHelperRouteSearchStartY;
var abcHelperRouteSearchEndX,abcHelperRouteSearchEndY;
var abcHelperRouteSearchStartPointInfo="",abcHelperRouteSearchStartPointInfo="";
var abcHelperRouteSearchStartResult="",abcHelperRouteSearchEndResult="";
var abcHelperRouteStartPointInfo= new Array(),abcHelperRouteEndPointInfo = new Array();
var abcHelperRecentRouteStartIndex,abcHelperRecentRouteEndIndex;
var abcHelperRouteStartPoint,abcHelperRouteEndPoint;
//用于驾车搜搜时候的起、终点城市城市名
var abcHelperRouteStartCityName="北京",abcHelperRouteEndCityName="北京";
//用于驾车搜搜时候的起、终点城市区号
var abcHelperRouteStartCityCode="010",abcHelperRouteEndCityCode="010";
//暴露给用户，用于获得驾车路线搜索框
function abcHelperGetRouteSearchService(mode,containerId){
	var info = "<div id=\"abcHelperRouteBlock\" class=\"mapabc_tip\" style=\"display:block;\" >"
	+"<div class=\"tip_title\">驾车导航<img id='abcHelperRouteTransImg' class=\"img_1\" src=\"images/img_s.gif\""
	+" onclick=\"abcHelperTransPageStatus('abcHelperRouteBlockPage','abcHelperRouteTransImg')\" "
	+" alt=\"收起\" width=\"14\" height=\"14\" border=\"0\"/>"
	+"<img class=\"img_2\" src=\"images/close.gif\"  "
	+"onclick=\"abcHelperClose('abcHelperRouteBlock');abcHelperRemoveRouteInfo();\" "
	+"alt=\"关闭\" width=\"16\" height=\"15\" border=\"0\"/></div>"
	+"<div class=\"tip_contain\" id=\"abcHelperRouteBlockPage\">"
	+"<div class=\"jc_t\"><p style=\"\">起点：</p><p style=\"color:#f00;\">"
	+"<a style=\"color:#f00;\" id=\"abcHelperStartCityName\" href=\"#\" "
	+"onclick=\"abcHelperShowCityInfoForRouteSearch(\'ALL\',"
	+"\'abcHelperControlPanel\',true);\">"
	+abcHelperRouteStartCityName
	+"</a></p><p style=\"clear:both;\"><input name=\"abcHelperRouteStartName\" id=\"abcHelperRouteStartName\"  onkeydown=\"if(event.keyCode==13)abcHelperRouteSearch();\" type=\"text\" style=\"width:170px;\" /></p></div>"
  	+"<div class=\"jc_t\"><p>终点：</p><p style=\"color:#f00;\">"
	+"<a style=\"color:#f00;\" id=\"abcHelperEndCityName\" href=\"#\" "
	+"onclick=\"abcHelperShowCityInfoForRouteSearch(\'ALL\',"
	+"\'abcHelperControlPanel\',false);\">"
	+abcHelperRouteEndCityName
	+"</a></p><p style=\"\clear:both;\"><input name=\"abcHelperRouteEndName\" id=\"abcHelperRouteEndName\"  onkeydown=\"if(event.keyCode==13)abcHelperRouteSearch();\" type=\"text\" style=\"width:170px;\" /></p></div>"
  	+"<div class=\"jc_t\" style=\"text-align:center;margin-bottom:0px;\"><input "
	+"type=\"button\" onclick=\"abcHelperRouteSearch()\" value=\"搜索\" style=\"width:50px;height:20px;\"/></div>"
	+"<div class=\"result_bus_serch\" style=\"\" id=\"abcHelperRouteInnerPanel\" ></div></div>";
	tempMode = mode;
	tempContainerId = containerId;
	try{
		setInnerHTML(containerId,info);
		abcHelperOpen(containerId);
	}catch(err){
		alert(err.name +":" + err.message);
	}
}

function abcHelperRemoveRouteInfo(){
	try{
		mapABC.removeOverlay(abcHelperRouteStartPoint);
		mapABC.removeOverlay(abcHelperRouteEndPoint);
		mapABC.removeAllPolylineOverlays();
	}catch(err){}
}

//内部设计
function abcHelperShowCityInfoForRouteSearch(mode,containerId,startOrNot){
	try{
		//设置城市切换框架
		setInnerHTML(containerId,abcHelperCityCenterBlockInfo);
		abcHelperOpen(containerId);
		//设置城市信息到城市切换框架
		var result = abcHelperShowCityList(mode,"abcHelperSetCityNameForRoute");
		setInnerHTML("abcHelperCityInnerPanel",result);
		abcHelperOpen(containerId);
		if(mode!="BYLETTERORDER" || mode!= "BYCITYRELATION"){
			MM_showHideLayers("type1","type12");
		}
		abcHelperOpen("abcHelperCityInnerPanel");
	}catch(err){
		alert(err.name + ":" + err.message);
	}
	tempStartOrNot = startOrNot;
}

//当点击公交搜索中的城市时，执行的方法
function abcHelperSetCityNameForRoute(cityName){
	try{
		if(tempStartOrNot){
			setGlobalCityName(cityName);//如果是设置起点城市，则将其他搜索城市信息设置，否则，不设置
		}else{
			abcHelperRouteEndCityCode = city.ctn2c(cityName);
			abcHelperRouteEndCityName = cityName;
		}
		abcHelperClose("abcHelperControlPanel");//关闭城市选择窗口
	}catch(err){
		alert(err.name + ":" + err.message);
	}
	abcHelperGetRouteSearchService(tempMode,tempContainerId);
}

//内部实现，执行驾车路线的方法
function abcHelperRouteSearch(){
	
	//清空起点和终点保存的数据
	abcHelperRouteStartPointInfo = new Array();
	abcHelperRouteEndPointInfo = new Array();
	abcHelperRouteSearchStartResult="";
	abcHelperRouteSearchEndResult="";
	route_NN=0;
	startName = document.getElementById("abcHelperRouteStartName").value;
	endName = document.getElementById("abcHelperRouteEndName").value;
	if(startName.length == 0 ){
		alert("请输入起点关键字！");
		return false;
	}
	if(endName.length == 0 ){
		alert("请输入终点关键字！");
		return false;
	}
	//提醒地图用户，正在搜索
	setInnerHTML("abcHelperRouteInnerPanel","正在搜索...");
	mapABC.quitMouseDraw();
	startcitycode = abcHelperRouteStartCityCode;
	endcitycode = abcHelperRouteEndCityCode;
	abcHelperRouteSearchSIS = new MSISSearch();
	abcHelperRouteSearchStartPara = new MSearchPointPara();
	abcHelperRouteSearchEndPara = new MSearchPointPara();
	abcHelperRouteSearchPara = new MSearchRoutPara();
	abcHelperRouteSearchSIS.setSISCallbackFunction(abcHelperRouteSearchCallback);
	
	route_flag=1;
	abcHelperRouteSearchStartPara.setCitycode(startcitycode);
	abcHelperRouteSearchStartPara.setKeyword(startName);
	abcHelperRouteSearchStartPara.setNumber(9); 
	abcHelperRouteSearchStartPara. setPageSum(1);
	abcHelperRouteSearchStartPara. setBatch(1); 
	abcHelperRouteSearchSIS.searchByKeyword (abcHelperRouteSearchStartPara); 
}

//内部实现，驾车搜索的回调方法
function abcHelperRouteSearchCallback(data){
	if(route_flag==2)
	{
		var road_length =0;
		var route_line = "";
		var phone_xin="";
		var route_map = data;

		for(var i=0;i<route_map.segmengList.length;i++)
		{
			//驾车路线信息
			route_line += "<div  class=\"car_info\"><p style=\"cursor:hand;cursor:pointer;\" onMouseover=\"this.className = 'mapabc_gray';\""
			+" onMouseout=\"this.className = 'bai';\">"
			+(i+1)+"．"+route_map.segmengList[i].textInfo +"</p></div>";

			phone_xin += route_map.segmengList[i].textInfo+"．";
						
			road_length = road_length + parseInt(route_map.segmengList[i].roadLength);
		}

		if(road_length>1000)
		{
			road_length = road_length/1000;
		}

		var routeInfo = "<div class=\"car_info\"><p>起：</p><p>"+ route_start_name +"</p></div>"+
						route_line + "<div class=\"car_info\"><p>终：</p><p>"+route_end_name+"</p></div>"
						+"<div style=\"text-indent:5px;\" class=\"car_info\">行驶："+road_length+"公里</div>";
						
		setInnerHTML("abcHelperRouteInnerPanel",routeInfo);
		abcHelperOpen("abcHelperRouteInnerPanel");
		var poi_xy_r = route_map.coors.split(",");
		arrX_r = "";//行车路线的X串
		arrY_r = "";//行车路线的Y串
		for(var e=0;e<poi_xy_r.length-1;e=e+2){	
			if(e==poi_xy_r.length-3){
				arrX_r += poi_xy_r[e];
				arrY_r += poi_xy_r[e+1];
			}else{
				arrX_r += poi_xy_r[e]+",";
				arrY_r += poi_xy_r[e+1]+",";
			}
		}
		//利用相关数据进行画点
		routeaddline(arrX_r,arrY_r,route_start_y,route_start_x,route_end_y,route_end_x);
	}
	else
	{
		if(route_flag==1)
		{
			var rs = eval('(data)');
			abcHelperRouteSearchStartResult = "<p ><b>请选择起点：</b></p><div class=\"start_str\" style=\"border:1px solid #d3d3d3;margin-left:2px;\">";
				if(rs.count!=0){					
					var routeStartName,routeStartX,routeStartY;
					for(var i=0;i<rs.poilist.length;i++){
						routeStartName = rs.poilist[i].name;
						routeStartX = rs.poilist[i].x;
						routeStartY = rs.poilist[i].y;
						if(i==0){//默认为搜索第一个点
							route_start_name = routeStartName;
							route_start_x = routeStartX;
							route_start_y = routeStartY;
						}
						abcHelperRouteSearchStartResult += 
							"<p style=\"cursor:hand;cursor:pointer;\" id=\"abcHelperRouteSearchStartName"+ (i+1) +"\" onclick=\""
							+"abcHelperRouteSearchHandleStart('"+routeStartX+"','"+routeStartY+"','"
							+routeStartName+"','" + i + "');\">"+(i+1) + "." + routeStartName+"</p>";
						var startPointInfo = abcHelperPointInfoHandle(rs.poilist[i]);
						abcHelperRouteStartPointInfo.push(startPointInfo);
					}
				}else{
					abcHelperRouteSearchStartResult += "--没有匹配的起点信息--";
					route_start_x = "";
					route_start_y = "";
				}
				start_end_route();
				abcHelperRouteSearchStartResult += "</div>";
		}else{
			var rs = eval('(data)');
			abcHelperRouteSearchEndResult = "<p ><b>请选择终点：</b></p><div class=\"start_str\" style=\"border:1px solid #d3d3d3;margin-left:2px;\">";
			if(rs.count!=0){				
				for(var i=0;i<rs.poilist.length;i++){
					var routeEndName,routeEndX,routeEndY;
					routeEndName = rs.poilist[i].name;
					routeEndX = rs.poilist[i].x;
					routeEndY = rs.poilist[i].y;
					if(i==0){//默认为搜索第一个点
						route_end_name = routeEndName;
						route_end_x = routeEndX;
						route_end_y = routeEndY;
					}
					abcHelperRouteSearchEndResult += 
							"<p style=\"cursor:hand;cursor:pointer;\" id=\"abcHelperRouteSearchEndName"+ (i+1) +"\" onclick=\""
							+"abcHelperRouteSearchHandleEnd('"+routeEndX+"','"+routeEndY+"','"
							+routeEndName+"','" + i + "');\">"+(i+1) +"."+routeEndName+"</p>";
					var endPointInfo = abcHelperPointInfoHandle(rs.poilist[i]);
						abcHelperRouteEndPointInfo.push(endPointInfo);
				}
				
			}else{
				abcHelperRouteSearchEndResult += "--没有匹配的终点信息--"
				route_end_x = "";
				route_end_y = "";
			}
			abcHelperRouteSearchEndResult += "</div><p style=\"text-align:center;\"><input "
					+"style=\"text-align:center;margin:5px auto;width:50px;line-height:17px;height:20px;\""
					+" type=\"button\" value=\"查询\" onclick=\"abcHelperRouteLineSearch();\"></p>";
			setInnerHTML("abcHelperRouteInnerPanel",abcHelperRouteSearchStartResult+abcHelperRouteSearchEndResult);
		}
	}
}

function abcHelperRouteSearchHandleStart(startX,startY,startName,recentIndex){
	route_start_x = startX;
	route_start_y = startY;
	route_start_name = startName;
	abcHelperRecentRouteStartIndex = recentIndex;
	var tempRecentIndex = parseInt(recentIndex);
	var startNameId = "abcHelperRouteSearchStartName"+(tempRecentIndex + 1);
	var tempStartNameId = "";
	for(var i=1;i<10;i++){
		try{
			tempStartNameId = "abcHelperRouteSearchStartName" + i;
			if(tempStartNameId == startNameId){
				document.getElementById(tempStartNameId).className = "p_onclick";
			}else{
				document.getElementById(tempStartNameId).className = "p_default";
			}
		}catch(err){}
	}
	//将驾车搜索起点输入框的值改为所选的名字
	document.getElementById("abcHelperRouteStartName").value = startName;
}

function abcHelperRouteSearchHandleEnd(endX,endY,endName,recentIndex){
	route_end_x = endX;
	route_end_y = endY;
	route_end_name = endName;
	abcHelperRecentRouteEndIndex = recentIndex;
	var tempRecentIndex = parseInt(recentIndex);
	var startNameId = "abcHelperRouteSearchEndName"+(tempRecentIndex + 1);
	var tempStartNameId = "";
	for(var i=1;i<10;i++){
		try{
			tempStartNameId = "abcHelperRouteSearchEndName" + i;
			if(tempStartNameId == startNameId){
				document.getElementById(tempStartNameId).className = "p_onclick";
			}else{
				document.getElementById(tempStartNameId).className = "p_default";
			}
		}catch(err){}
	}
	//将驾车搜索起点输入框的值改为所选的名字
	document.getElementById("abcHelperRouteEndName").value = endName;
}

function abcHelperGetRoutePointInfo(tempIndex,isStart){
	var tempInfo;
	if(isStart){
		tempInfo = abcHelperRouteStartPointInfo
	}else{
		tempInfo = abcHelperRouteEndPointInfo;
	}
	return tempInfo[tempIndex];
}

//内部实现，用于执行终点、驾车线路的方法
function start_end_route(){
	
	route_flag=0;
	abcHelperRouteSearchEndPara.setCitycode(endcitycode);
	abcHelperRouteSearchEndPara.setKeyword(endName);
	abcHelperRouteSearchEndPara.setNumber(9); 
	abcHelperRouteSearchEndPara.setPageSum(1); 
	abcHelperRouteSearchEndPara.setBatch(1); 
	abcHelperRouteSearchSIS.searchByKeyword(abcHelperRouteSearchEndPara);	
}

function abcHelperRouteLineSearch(){
	route_flag=2;
	if(route_start_x == "" || route_start_y ==""){
		alert("不能获得起点信息！");
		return false;
	}
	if(route_end_x == "" || route_end_y ==""){
		alert("不能获得终点信息！");
		return false;
	}
	setInnerHTML("abcHelperRouteInnerPanel","正在搜索...");
	abcHelperRouteSearchPara.setStartXY(route_start_x,route_start_y);
	abcHelperRouteSearchPara.setEndXY(route_end_x,route_end_y);
	abcHelperRouteSearchPara.setCitycode(startcitycode);
	abcHelperRouteSearchPara.setType("drive");
	abcHelperRouteSearchSIS.searchBusAndDrive(abcHelperRouteSearchPara);
}

//用于画出驾车线路的方法
function routeaddline(arrX,arrY,startY,startX,endY,endX){
	mapABC.quitMouseDraw();
	mapABC.removeAllOverlays();
	var startObj=new MStyle();
		startObj.lineColor="0xFFFFFF";
		startObj.lineOpacity="80";
		startObj.fillColor="0x4b8bd9";
		startObj.lineSize="2";
		startObj.fillOpacity="100";
		startObj.labelColor="0xFFFFFF";
		startObj.textContent = abcHelperGetRoutePointInfo(abcHelperRecentRouteStartIndex,true);

    var endObj=new MStyle();
		endObj.textContent= abcHelperGetRoutePointInfo(abcHelperRecentRouteEndIndex,false);
		endObj.lineColor="0xFFFFFF";
		endObj.lineOpacity="80";
		endObj.fillColor="0x4b8bd9";
		endObj.lineSize="2";
		endObj.fillOpacity="100";
		endObj.labelColor="0xFFFFFF";
    var lineObj=new MStyle();
	lineObj.lineSize=6;
	lineObj.lineColor=0x0000ff;
	lineObj.lineOpacity="60";
    var startPoint = new MPointOverlay(new MLatLng(startY,startX), "起点", startObj);
	abcHelperRouteStartPoint = startPoint;
    var endPoint = new MPointOverlay(new MLatLng(endY,endX),"终点", endObj);
	abcHelperRouteEndPoint = endPoint;
	mapABC.drawDriveLine(arrX, arrY, startPoint, endPoint, lineObj );
	mapABC.setCenterByLatLng(startY,startX);
}

//////////////////////////////////////驾车搜索实现结束/////////////////////////////////////



/////////////////////////////////////////公交搜索实现开始//////////////////////////////
var abcHelperBusGlobalCityName="北京",abcHelperBusGlobalCityCode="010";
var abcHelperBusSearchStartName,abcHelperBusSearchEndName;
var abcHelperBusSearchCityCode;
var abcHelperBusSearchStartPara,abcHelperBusSearchEndPara,abcHelperBusSearchPara,abcHelperBusSearchSIS;
var abcHelperBusSearchStartResult="",abcHelperBusSearchEndResult="";
var abcHelperBusSearchStartPointInfo=new Array(),abcHelperBusSearchEndPointInfo=new Array();
var abcHelperRecentBusStartIndex=0,abcHelperRecentBusEndIndex=0;
var nn_b = 1;//判断起点与终点
var abcHelperBusStartX,abcHelperBusStartY;
var abcHelperBusEndX,abcHelperBusEndY;
var abcHelperBusStartPoint,abcHelperBusEndPoint;
var abcHelperBusLineX= new Array(),abcHelperBusLineY= new Array();
var abcHelperBusLineChangeX= new Array(),abcHelperBusLineChangeY= new Array();


function abcHelperGetBusSearchService(mode,containerId){
		var info = "<div id=\"abcHelperBusBlock\" class=\"mapabc_tip\" style=\"display:block;\" >"
		+"<div class=\"tip_title\">公交换乘"
		+"<img class=\"img_1\" id=\"abcHelperBusTransImg\" src=\"images/img_s.gif\" "
		+"onclick=\"abcHelperTransPageStatus('abcHelperBusBlockPage','abcHelperBusTransImg');\""
		+" alt=\"收起\" width=\"14\" height=\"14\" border=\"0\"/>"
		+"<img class=\"img_2\" src=\"images/close.gif\"  onclick=\"abcHelperClose('abcHelperBusBlock');mapABC.removeAllOverlays();\""
		+" alt=\"关闭\" width=\"16\" height=\"15\" border=\"0\"/></div>"
		+"<div id=\"abcHelperBusBlockPage\"class=\"tip_contain\">"
		+"<p>请选择要查询的城市：<a id=\"abcHelperBusCityName\" style=\"color:#f00;\" href=\"#\" "
		+"onclick=\"abcHelperShowCityInfoForBus(\'ALL\',"
		+"\'abcHelperSetCityNameForBS\',\'abcHelperControlPanel\')\">"
		+ abcHelperBusGlobalCityName + "</a>"
		+"</p><p>起点：<input name=\"\" id=\"abcHelperBusStartName\" onkeydown=\"if(event.keyCode==13)abcHelperBusSearch();\" name=\"abcHelperBusStartName\" type=\"text\" size=\"20\" maxlength=\"20\"/></p>"
		+"<p>终点：<input name=\"\" id=\"abcHelperBusEndName\" name=\"abcHelperBusEndName\"  onkeydown=\"if(event.keyCode==13)abcHelperBusSearch();\" type=\"text\"  size=\"20\" maxlength=\"20\"/></p>"
		+"<p style=\"text-align:center;\"><input type=\"button\" "
		+" value=\"公交查询\" style=\"width:60px;height:20px;\" onclick=\"abcHelperBusSearch();\"/></p>"
		+"<div class=\"result_bus_serch\" id=\"abcHelperBusInnerPanel\">" 
		+"</div></div></div>";
		tempMode = mode;
		tempContainerId = containerId;
		setInnerHTML(containerId,info);
		abcHelperOpen(containerId);
}

//用于获得城市信息的方法，并将获得的城市信息显示到某一位置
function abcHelperShowCityInfoForBus(mode,methodName,containerId){
	setInnerHTML(containerId,abcHelperCityCenterBlockInfo);
	abcHelperOpen(containerId);
	var result = abcHelperGetBusCityInfo(mode,methodName);
	setInnerHTML("abcHelperCityInnerPanel",result);
	abcHelperOpen("abcHelperCityInnerPanel");
	if(mode != "BYLETTERORDER" || mode != "BYCITYRELATION"){
		MM_showHideLayers("type1","type12");
	}
}

//内部实现
function abcHelperGetBusCityInfo(mode,methodName){
	var result = "";
	if(mode == "BYLETTERORDER"){//以拼音排序方式获得城市信息
		result = getCityListByLetterOrderForRB(methodName);
	}else if(mode == "BYCITYRELATION"){//以城市所属省关系获得城市信息
		result = getCityListByCityRelationForRB(methodName);
	}else {//上述两个方式的信息都获得
		result += getCityInfoForRB(methodName);
	}
	return result;
}

//为公交搜索设置城市信息
function abcHelperSetCityNameForBS(cityName){
	try{
		var cityCode = city.ctn2c(cityName);
		var center = city.ctxy(cityName);
		mapABC.setCenterByLatLng(center[1],center[0]);
		setBusGlobalCityCode(cityCode);//设置公交查询的城市区号
	}catch(err){
		alert(err.name +":" + err.message);
	}
	abcHelperGetBusSearchService(tempMode,tempContainerId);
}

function setBusGlobalCityCode(cityCode){
	var tempCityName = city.ctc2n(cityCode);
	//公交搜索相关变量的修改
	abcHelperBusGlobalCityName = tempCityName;
	abcHelperBusGlobalCityCode = cityCode;
	//名称搜索相关变量的修改
	abcHelperGlobalCityName = tempCityName;
	abcHelperGlobalCityCode = cityCode;
	//驾车搜索相关变量的修改
	abcHelperRouteStartCityName=tempCityName;
	abcHelperRouteEndCityName=tempCityName;
	abcHelperRouteStartCityCode=cityCode;
	abcHelperRouteEndCityCode=cityCode;
}

//执行公交搜索的方法
function abcHelperBusSearch(){
	
	//清空起点和终点保存的数据
	abcHelperBusSearchStartPointInfo=new Array();
	abcHelperBusSearchEndPointInfo=new Array();
	abcHelperBusSearchStartResult = "";
	abcHelperBusSearchEndResult = "";
	abcHelperBusLineX = new Array();
	abcHelperBusLineY = new Array();
	abcHelperBusLineChangeX = new Array();
	abcHelperBusLineChangeY = new Array();
	//获取公交搜索的起、终点关键字
	abcHelperBusSearchStartName = document.getElementById("abcHelperBusStartName").value;
	abcHelperBusSearchEndName = document.getElementById("abcHelperBusEndName").value;
	if(abcHelperBusSearchStartName.length == 0 ){
		alert("请输入起点关键字！");
		return false;
	}
	if(abcHelperBusSearchEndName.length == 0 ){
		alert("请输入终点关键字！");
		return false;
	}
	//提醒地图用户，正在搜索
	setInnerHTML("abcHelperBusInnerPanel","正在搜索...");
	mapABC.quitMouseDraw();
	//获取用于公交搜索的城市区号(全局变量)
	abcHelperBusSearchCityCode = abcHelperBusGlobalCityCode;
	
	abcHelperBusSearchSIS = new MSISSearch();
	abcHelperBusSearchStartPara = new MSearchPointPara();
	abcHelperBusSearchEndPara = new MSearchPointPara();
	abcHelperBusSearchPara = new MSearchRoutPara();
	abcHelperBusSearchSIS.setSISCallbackFunction(abcHelperBusSearchCallback);
	
	nn_b=1;//标志开始搜索起点
	abcHelperBusSearchStartPara.setCitycode(abcHelperBusSearchCityCode);
	abcHelperBusSearchStartPara.setKeyword(abcHelperBusSearchStartName);
	abcHelperBusSearchStartPara.setNumber(9); 
	abcHelperBusSearchStartPara.setBatch(1); 
	abcHelperBusSearchSIS.searchByKeyword (abcHelperBusSearchStartPara); 
	
}
//公交查询的回调方法
function abcHelperBusSearchCallback(data){
	if(nn_b==2){//表示路线搜索完毕，进行数据表现和画图

	var busdata = new MBusData(data);
	var busplans = busdata.getBusPlans();
	var busplan;

	var str_x_array = new Array();
	var str_y_array = new Array();
	var hc_x_array = new Array();
	var hc_y_array = new Array();
	var bus_line = "";
	var bus_map = data;
	var bus_count = bus_map["busList"].length;
	for(var i=0;i<bus_count;i++){
			var bus_text="";var bus_num="";var xy_hc="";var bus_length=0;
			busplan = busplans[i];
			str_x_array[i] = busplan.getBusLineXCoords();
			str_y_array[i] = busplan.getBusLineYCoords();
			hc_x_array[i] = busplan.getExchangeStopXCoords();
			hc_y_array[i] = busplan.getExchangeStopYCoords();
			var startStationName = "";
			var endStationName = "";
			for(var k=0;k<bus_map.busList[i].segmentList.length;k++){
				if(k==0){
					startStationName = bus_map.busList[i].segmentList[k].startName;								
				}
				bus_text += "<p style=\"border-bottom:1px solid #c5c5c5;\">步行&nbsp;"+bus_map.busList[i].segmentList[k].footLength +"米&nbsp;到达车站</p>"
					+"<p>"+bus_map.busList[i].segmentList[k].busName + "&nbsp;&nbsp;&nbsp;"
					+ bus_map.busList[i].segmentList[k].passDepotCount +"站</p>"
					+ "<p style=\"text-indent:2em;\"><font style=\"color:#656565;\">在</font>&nbsp;" + bus_map.busList[i].segmentList[k].startName + "&nbsp;<font style=\"color:#656565;\">上车</font></p>" 
					+ "<p style=\"border-bottom:1px solid #c5c5c5;text-indent:2em;\"><font style=\"color:#656565;\">在</font>&nbsp;" + bus_map.busList[i].segmentList[k].endName + "&nbsp;<font style=\"color:#656565;\">下车</font></p>";
				if(k==bus_map.busList[i].segmentList.length-1){
					endStationName = bus_map.busList[i].segmentList[k].endName;
					bus_text += "<p style=\"border-bottom:1px solid #c5c5c5;\">步行&nbsp;"+ bus_map.busList[i].segmentList[k].footLength +"米&nbsp;到达目的地</p>"
					}									
			bus_length = bus_length + parseInt(bus_map.busList[i].segmentList[k].driverLength);
			if(bus_map.busList[i].segmentList.length==1){xy_hc="";}
			}
			bus_line += "<div class=\"car_info\" onclick=\"transBusLine("+ i +");\"><p class=\"bus_fa_cor1\" style=\"background:url(images/add_name_bg.gif) repeat-x;width:100%;height:23px;line-height:23px;color:#ffffff;\">方案<b>"+(i+1)+"</b>:&nbsp;</p><p style=\"border-bottom:1px solid #c5c5c5;color:#656565;\">起点："+ startStationName
			+"</p>"+bus_text+"<p style=\"color:#656565;\">终点："+ endStationName +"</p></div>";
			abcHelperBusLineX.push(busplan.getBusLineXCoords());
			abcHelperBusLineY.push(busplan.getBusLineYCoords());
			abcHelperBusLineChangeX.push(busplan.getExchangeStopXCoords());
			abcHelperBusLineChangeY.push(busplan.getExchangeStopYCoords());
		}
		setInnerHTML("abcHelperBusInnerPanel",bus_line);
		abcHelperOpen("abcHelperBusInnerPanel");
	drawABusLine(str_x_array[0],str_y_array[0],abcHelperBusStartX,abcHelperBusStartY,abcHelperBusEndX,abcHelperBusEndY,hc_x_array[0],hc_y_array[0]);
	}else{
		if(nn_b==1){//表示为起点搜索
			var rs = eval('(data)');
				if(rs.count!=0){
					//组织起点结果字符串
					abcHelperBusSearchStartResult ="<p ><b>请选择起点：</b></p><div class=\"start_str\" style=\"border:1px solid #d3d3d3;margin-left:2px;\">";
					var start_name,start_x,start_y;
					for(var i=0;i<rs.poilist.length;i++){
						start_name = rs.poilist[i].name;
						start_x=rs.poilist[i].x;
						start_y=rs.poilist[i].y;
						if(i==0){//默认为搜索第一个点
							abcHelperBusStartX = start_x;
							abcHelperBusStartY = start_y;
						}
						abcHelperBusSearchStartResult += 
							"<p style=\"cursor:hand;cursor:pointer;\" id=\"abcHelperBusSearchStartName"+ (i+1) +"\" onclick=\""
							+"abcHelperBusSearchHandleStart('"+start_x+"','"+start_y+"','"
							+start_name+"','" + i + "');\">"+(i+1) +"."+start_name+"</p>";
						var startPointInfo = abcHelperPointInfoHandle(rs.poilist[i]);
						//保存起点数据到数组
						abcHelperBusSearchStartPointInfo.push(startPointInfo);
					}
				}else{
					abcHelperBusSearchStartResult += "--没有匹配的起点信息--";
					abcHelperBusStartX = "";
					abcHelperBusStartY = "";
				}
			abcHelperBusSearchStartResult += "</div>";
			start_end_bus();//继续执行结果点搜索
		}else{//表示为终点搜索
			var rs = eval('(data)');
			if(rs.count!=0){
				abcHelperBusSearchEndResult = "<p ><b>请选择终点：</b></p><div class=\"start_str\" style=\"border:1px solid #d3d3d3;margin-left:2px;\">"
				var end_name,end_x,end_y;
				for(var i=0;i<rs.poilist.length;i++){
					
					end_name = rs.poilist[i].name;
					end_x=rs.poilist[i].x;
					end_y=rs.poilist[i].y;
					if(i==0){//默认为搜索第一个点
						abcHelperBusEndX = end_x;
						abcHelperBusEndY = end_y;
					}
					abcHelperBusSearchEndResult += 
							"<p style=\"cursor:hand;cursor:pointer;\" id=\"abcHelperBusSearchEndName"+ (i+1) +"\" onclick=\""
							+"abcHelperBusSearchHandleEnd('"+end_x+"','"+end_y+"','"
							+end_name+"','" + i + "');\">"+(i+1) +"."+end_name+"</p>";
					var endPointInfo = abcHelperPointInfoHandle(rs.poilist[i]);
					//保存终点数据到数组
					abcHelperBusSearchEndPointInfo.push(endPointInfo);
				} 
				abcHelperBusSearchEndResult += 
					"</div><p style=\"text-align:center;\"><input "
					+"style=\"text-align:center;margin:5px auto;width:50px;line-height:17px;height:20px;\""
					+" type=\"button\" value=\"查询\" onclick=\"abcHelperBusLineSearch();\"></p>";
				setInnerHTML("abcHelperBusInnerPanel",abcHelperBusSearchStartResult+abcHelperBusSearchEndResult);
			}else {
					abcHelperBusSearchEndResult += "--没有匹配的终点信息--";
					abcHelperBusEndX = "";
					abcHelperBusEndY = "";
			}
		}
	}
}
//内部实现，代码抽象，整理点上数据
function abcHelperPointInfoHandle(tempData){
	try{
		var type = tempData["type"];
		if (type == "" || type == "undefined" || type == null) {
			type = "暂无";
		}
		var address = tempData["address"];
		if (address == "" || address == "undefined" || address == null) {
			address = "暂无";
		}
		var tel = tempData["tel"];
		if (tel == "" || tel == "undefined" || tel == null) {
			tel = "暂无";
		}
		var name = tempData.name;
		var result ="";
		result += '<font color=\"#FFFFFF\">名称：'+name+'</font>';
		result += '<br /><font color=\"#FFFFFF\">类型：'+type+'</font>';
		result += '<br /><font color=\"#FFFFFF\">地址：'+address+'</font>';
		result += '<br /><font color=\"#FFFFFF\">电话：'+tel+'</font>';
	}catch(err){
		alert(err.name +":"+ err.message);
	}
	return result;
}
//点击公交搜索起点列表项时执行的方法
function abcHelperBusSearchHandleStart(startX,startY,startName,recentIndex){
	//将公交路线搜索所需的起点坐标参数进行修改
	abcHelperBusStartX =startX;
	abcHelperBusStartY = startY;
	abcHelperRecentBusStartIndex = recentIndex;
	var tempRecentIndex = parseInt(recentIndex);
	var startNameId = "abcHelperBusSearchStartName"+(tempRecentIndex + 1);
	var tempStartNameId = "";
	for(var i = 1;i < 10; i++){
		try{
			tempStartNameId = "abcHelperBusSearchStartName" + i;
			if(tempStartNameId == startNameId){
				document.getElementById(tempStartNameId).className = "p_onclick";
			}else{
				document.getElementById(tempStartNameId).className = "p_default";
			}
		}catch(err){}
	}
	//将公交搜索起点输入框的值改为所选的名字
	document.getElementById("abcHelperBusStartName").value = startName;
}
//点击公交搜索终点列表项时执行的方法
function abcHelperBusSearchHandleEnd(endX,endY,endName,recentIndex){
	//将公交路线搜索所需的起点坐标参数进行修改
	abcHelperBusEndX =endX;
	abcHelperBusEndY = endY;
	abcHelperRecentBusEndIndex = recentIndex;
	var tempRecentIndex = parseInt(recentIndex);
	var startNameId = "abcHelperBusSearchEndName"+(tempRecentIndex + 1);
	var tempStartNameId = "";
	for(var i=1;i<10;i++){
		tempStartNameId = "abcHelperBusSearchEndName" + i;
		try{
			if(tempStartNameId == startNameId){
				document.getElementById(tempStartNameId).className = "p_onclick";
			}else{
				document.getElementById(tempStartNameId).className = "p_default";
			}
		}catch(err){}
	}
	//将公交搜索起点输入框的值改为所选的名字
	document.getElementById("abcHelperBusEndName").value = endName;
}

function start_end_bus(){
	nn_b=0;
	abcHelperBusSearchEndPara.setCitycode(abcHelperBusSearchCityCode);
	abcHelperBusSearchEndPara.setKeyword(abcHelperBusSearchEndName);
	abcHelperBusSearchEndPara.setNumber(9); 
	abcHelperBusSearchEndPara. setPageSum(1); 
	abcHelperBusSearchEndPara. setBatch(1); 
	abcHelperBusSearchSIS.searchByKeyword(abcHelperBusSearchEndPara);

}
function abcHelperBusLineSearch(){
	if(abcHelperBusStartX =="" || abcHelperBusStartY == ""){
		alert("不能获得起点信息!");
		return false;
	}
	if(abcHelperBusEndX =="" || abcHelperBusEndY == ""){
		alert("不能获得终点信息!");
		return false;
	}
	nn_b=2;	
	setInnerHTML("abcHelperBusInnerPanel","正在搜索...");
	abcHelperBusSearchPara.setStartXY(abcHelperBusStartX,abcHelperBusStartY);
	abcHelperBusSearchPara.setEndXY(abcHelperBusEndX,abcHelperBusEndY);
	abcHelperBusSearchPara.setCitycode(abcHelperBusSearchCityCode);
	abcHelperBusSearchPara.setType("bus");
	abcHelperBusSearchSIS.searchBusAndDrive(abcHelperBusSearchPara);	

}
//用于获得点的数据
function abcHelperGetBusPointInfo(tempIndex,isStart){
	var tempInfo;
	if(isStart){
		tempInfo = abcHelperBusSearchStartPointInfo
	}else{
		tempInfo = abcHelperBusSearchEndPointInfo;
	}
	return tempInfo[tempIndex];
}	
//公交画图方法
function drawABusLine(arrX,arrY,qdpoix,qdpoiy,zdpoix,zdpoiy,changex,changey)
{	
try{
	mapABC.quitMouseDraw();
	mapABC.removeAllOverlays();
	var startObj=new MStyle();
		startObj.lineColor="0xFFFFFF";
		startObj.lineOpacity="80";
		startObj.fillColor="0xEF501A";
		startObj.lineSize="2";
		startObj.fillOpacity="100";
		startObj.fillColor = "0x4b8bd9";
		startObj.labelColor="0xFFFFFF";
		startObj.textContent = abcHelperGetBusPointInfo(abcHelperRecentBusStartIndex,true);;
	var endObj=new MStyle();
		endObj.textContent = abcHelperGetBusPointInfo(abcHelperRecentBusEndIndex,false);
		endObj.lineColor="0xFFFFFF";
		endObj.lineOpacity="80";
		endObj.fillColor="0xEF501A";
		endObj.lineSize="2";
		endObj.fillOpacity="100";
		endObj.fillColor = "0x4b8bd9";
		endObj.labelColor="0xFFFFFF";
		abcHelperBusStartPoint = startObj;
		abcHelperBusEndPoint = endObj;
	var lineObj=new MStyle();
	lineObj.lineSize=6;
	lineObj.lineColor=0x0000ff;
	lineObj.lineOpacity="60";
	var startPoint = new MPointOverlay(new MLatLng(qdpoiy,qdpoix), "起点", startObj);
	var endPoint = new MPointOverlay(new MLatLng(zdpoiy,zdpoix), "终点", endObj);
	abcHelperBusStartPoint = startPoint;
	abcHelperBusEndPoint = endPoint;
	if(qdpoix == "" || qdpoix == "null" || zdpoix == "" || zdpoiy =="null"){}else{
		var busFlag = abcHandleChangeXY(arrX,arrY,changex,changey);
		if(busFlag){
			changex = "";
			changey = "";
		}
		mapABC.drawBusLine(arrX, arrY, changex, changey, startPoint, endPoint, lineObj,true);
		drawBusWalkLine(arrX,arrY,new MLatLng(qdpoiy,qdpoix),new MLatLng(zdpoiy,zdpoix));
		mapABC.setCenterByLatLng(qdpoiy,qdpoix);
	}
	}catch(err){
		alert(err.name +":" + err.message);
	}
}

function abcHandleChangeXY(arrX,arrY,changex,changey){
	var tempArrX = arrX.split(",");
	var tempArrY = arrY.split(",");
	var tempChangeXArr = changex.split(",");
	if(tempChangeXArr.length==2 && tempChangeXArr[1]==""){
		changex = changex.substring(0,changex.length-1);
		changey = changey.substring(0,changey.length-1);
		if(changex== tempArrX[tempArrX.length-1] || changey == tempArrY[tempArrY.length-1]){
			return true;
		}
	}
	return false;
}

function drawBusWalkLine(busLineX,busLineY,startPos,endPos){
	var tempArrX = busLineX.split(",");	
	var tempArrY = busLineY.split(",");
	var busStartX = tempArrX[0];
	var busStartY = tempArrY[0];
	var busEndX = tempArrX[tempArrX.length-1];
	var busEndY = tempArrY[tempArrY.length-1];
	var polylineStyle = new MStyle();
	polylineStyle.lineColor = 0xff0000;
	polylineStyle.lineSize = 6;
	polylineStyle.lineOpacity = "80";
	var polylineStart = new MPolylineOverlay([startPos,new MLatLng(busStartY,busStartX)],polylineStyle);
	var polylineEnd = new MPolylineOverlay([endPos,new MLatLng(busEndY,busEndX)],polylineStyle);
	mapABC.addOverlay(polylineStart);
	mapABC.addOverlay(polylineEnd);
}

//移动鼠标到某种公交换乘方案上时，执行该方法重新画路线
function transBusLine(tempIndex){
	mapABC.quitMouseDraw();
	mapABC.removeAllOverlays();
	var busLineX = abcHelperBusLineX[tempIndex];
	var busLineY = abcHelperBusLineY[tempIndex];
	var changeX = abcHelperBusLineChangeX[tempIndex];
	var changeY = abcHelperBusLineChangeY[tempIndex];
	var lineObj=new MStyle();
	lineObj.lineSize = 6;
	lineObj.lineColor = 0x0000ff;
	lineObj.lineOpacity = "80";
	var busFlag = abcHandleChangeXY(busLineX,busLineY,changeX,changeY);
	if(busFlag){
		changeX = "";
		changeY = "";
	}
	mapABC.drawBusLine(busLineX, busLineY, changeX, changeY,abcHelperBusStartPoint,abcHelperBusEndPoint,lineObj,true);
	drawBusWalkLine(busLineX,busLineY,abcHelperBusStartPoint.pos,abcHelperBusEndPoint.pos);
	mapABC.setZoomAndCenter(mapABC.getZoomLevel(),abcHelperBusStartPoint.pos);
}

/////////////////////////////////////////公交搜索实现结束//////////////////////////////

