//js tools by zhangfm //date:2008-1-22
function Z_Tools_NS(){function Z_JsLoader(){};Z_JsLoader.prototype.load=function(url,conf){var ss=document.getElementsByTagName("script");for(i=0;i<ss.length;i++){if(ss[i].src&&ss[i].src.indexOf(url)!=-1){this.onsuccess();return;};};var s=document.createElement("script");s.type="text/javascript";s.src=url;var head=document.getElementsByTagName("head")[0];head.appendChild(s);var self=this;if(conf)self.setConf(conf);s.onload=s.onreadystatechange=function(){if(this.readyState&&this.readyState=="loading")return;self.onsuccess();};s.onerror=function(){head.removeChild(s);self.onfailure();};};Z_JsLoader.prototype.setConf=function(conf){this.onsuccess=conf.onsuccess;this.onfailure=conf.onfailure;};Z_JsLoader.prototype.onsuccess=function(){};Z_JsLoader.prototype.onfailure=function(){};function Z_Function(){};Z_Function.getParams=function(s0){var sURL=window.location.href;var s=s0?s0:"?";if(sURL.indexOf(s)>0){var arURLParams=sURL.split(s);var arParams=arURLParams[1].split("&");var obj={_str:arURLParams[1]};for(var i=0;i<arParams.length;i++){var sParam=arParams[i].split("=");if((sParam[0]!="")&&(sParam[1]!=""))obj[sParam[0]]=sParam[1];};return obj;}else{return null;};};Z_Function.getCallBack=function(obj,func,args){return function(s){func.apply(obj,args);};};function Z_MapBar(){};Z_MapBar.getJsonUrl=function(p){var _w=600;var _h=400;var jsonUrl="http://ditu.mapbar.com/json/";var url="";switch(p.ac){case"lc":_url=(typeof(json_keyword)!="undefined")?json_keyword:(jsonUrl+"getPoiByKeyword.jsp");_url+="?&nlimit="+(p.nlimit||"8")+"&rn="+(p.rn||"10")+"&type="+encodeDURI(p.ktype||"")+"&keyword="+encodeDURI(p.keyword,1)+"&city="+encodeDURI(p.city)+"&width="+_w+"&height="+_h+"&pn="+(p.pn||"1")+"&refcenter=1";break;case"bsl":_url=typeof(json_busl)!="undefined"?json_busl:(jsonUrl+"getPoiNameList.jsp");_url+="?&orig="+encodeDURI(p.orig||"")+"&origLatLon="+(p.origLatLon||"")+"&origName="+encodeDURI(p.origName||"",1)+"&dest="+(p.dest||"")+"&destLatLon="+(p.destLatLon||"")+"&destName="+encodeDURI(p.destName||"",1)+"&origCity="+encodeDURI(p.city,1)+"&type=bus";break;case"bsr":_url=typeof(json_busr)!="undefined"?json_busr:(jsonUrl+"getBusByNid.jsp");_url+="?&orig="+(p.orig||"")+"&origLatLon="+(p.origLatLon||"")+"&origName="+encodeDURI(p.origName||"",1)+"&dest="+(p.dest||"")+"&destName="+encodeDURI(p.destName||"",1)+"&destLatLon="+(p.destLatLon||"")+"&width="+_w+"&height="+_h+"&city="+encodeDURI(p.city,1)+"&encode=utf-8";break;case"l":_url=typeof(json_line)!="undefined"?json_line:(jsonUrl+"getRouteNamesByKeyword.jsp");_url+="?&keyword="+encodeDURI(p.keyword,1)+"&city="+encodeDURI(p.city||"",1);break;case"s":_url=typeof(json_station)!="undefined"?json_station:(jsonUrl+"getPoiByKeyword.jsp");_url+="?&nlimit="+(p.nlimit||"8")+"&rn="+(p.rn||"10")+"&type="+encodeDURI("公交车站")+"&keyword="+encodeDURI(p.keyword,1)+"&city="+encodeDURI(p.city)+"&width="+_w+"&height="+_h+"&pn="+(p.pn||"1");break;case"nsl":_url=typeof(json_navl)!="undefined"?json_navl:(jsonUrl+"getPoiNameList.jsp");_url+="?&orig="+(p.orig||"")+"&origLatLon="+(p.origLatLon||"")+"&origName="+encodeDURI(p.origName||"",1)+"&dest="+(p.dest||"")+"&destLatLon="+(p.destLatLon||"")+"&destName="+encodeDURI(p.destName||"",1)+"&origCity="+encodeDURI(p.origCity||"",1)+"&destCity="+encodeDURI(p.destCity||"",1)+"&type=route";break;case"nsr":_url=typeof(json_navr)!="undefined"?json_navr:(jsonUrl+"getDriveByNid.jsp");_url+="?&style="+(p.style||0)+"&origCity="+encodeDURI(p.origCity||"",1)+"&orig="+(p.orig||"")+"&origName="+encodeDURI(p.origName||"",1)+"&origLatLon="+(p.origLatLon||"")+"&destCity="+encodeDURI(p.destCity||"",1)+"&dest="+(p.dest||"")+"&destName="+encodeDURI(p.destName||"",1)+"&destLatLon="+(p.destLatLon||"")+"&mid="+encodeDURI(p.mid||"",1)+"&width="+_w+"&height="+_h+"&encode=utf-8";break;case"nb":_url=typeof(json_nearby)!="undefined"?json_nearby:(jsonUrl+"getNearPoi.jsp");_url+="?&nlimit=10&strlatlon="+(p.strlatlon||"")+"&name="+encodeDURI(p.name||"",1)+"&pid="+encodeDURI(p.pid,1)+"&city="+encodeDURI(p.city)+"&poitype="+encodeDURI(p.poitype||"",1)+"&keytype=&range="+(p.range||2000)+"&width="+_w+"&height="+_h+"&pn="+(p.pn||"1");break;case"bp":break;case"mm":break;case"lsc":_url=typeof(json_keyword_c)!="undefined"?json_keyword_c:(jsonUrl+"getPoiByKeyword.jsp");_url+="?&rn="+(p.rn||"10")+"&keyword="+encodeDURI(p.keyword,1)+"&city="+encodeDURI("个人地图")+"&width="+_w+"&height="+_h+"&pn="+(p.pn||"1");break;case"_bl":_url=typeof(json_lineInfo)!="undefined"?json_lineInfo:(jsonUrl+"getRouteByRouteName.jsp");_url+="?&keyword="+encodeDURI(p.keyword,1)+"&city="+p.city;break;default:_url="";break;};return _url;};Z_MapBar.getArPs=function(sPs){var tmpPs=sPs.split(",");var arPs=[];for(var i=0;i<tmpPs.length;i++){arPs.push(new MPoint(tmpPs[i]));};return arPs;};Z_MapBar.getDefBrush=function(){var lBrush=new MBrush();with(lBrush){color='red';stroke=6;fill=false;bgcolor='red';transparency="60";bgtransparency="30";arrow=false;};return lBrush;};Z_MapBar.encodeDURI=encodeDURI;Z_MapBar.decodeDURI=decodeDURI;function encodeDURI(uri,com){if(com){return encodeURIComponent(decodeURIComponent(uri));};return encodeURI(decodeURI(uri));};function decodeDURI(uri,com){if(com){return decodeURIComponent(decodeURIComponent(uri));};return decodeURI(decodeURI(uri));};window.ZJsLoader=Z_JsLoader;window.ZFunction=Z_Function;window.ZMB=Z_MapBar;};if(typeof($)=="undefined"){window.$=function(id){return document.getElementById(id);};};Z_Tools_NS();
//js print by zhangfm
function Z_Print_NS(){
var W=window;
W._view={
m:{center:"HEGBSVXVVHVTW",zoom:8},
s:{name:"\u6ca1\u6709\u7ed3\u679c!",xy:"HEGBSVXVVHVTW"},
e:{name:"\u6ca1\u6709\u7ed3\u679c!",xy:"HEJACGWVVJIGF"},
i:{ind:0}
};
function ZPrint(){};
ZPrint.run=function(){
var p=ZFunction.getParams("#");
var pv=this.getViewParam();
this.openHtml(p,pv);
};
ZPrint.getViewParam=function(){
this.ptr1();
var _str="&_view=";
_str+="m:"+W._view.m.center+","+W._view.m.zoom+";";
_str+="s:"+encodeURIComponent(W._view.s.name)+","+W._view.s.xy+";";
_str+="e:"+encodeURIComponent(W._view.e.name)+","+W._view.e.xy+";";
_str+="i:"+W._view.i.ind+"";
var obj={_str:_str};
return obj;
};
ZPrint.ptr1=function(){
if(maplet){
var arView=((maplet.getCurrentMap().split("&"))[1].split("="))[1].split(",");
W._view.m.zoom=arView[0]-1;
W._view.m.center=arView[1];
};
};
ZPrint.ptr2=function(name,xy,isStart){
if(isStart){
W._view.s.name=name;
W._view.s.xy=xy;
}else{
W._view.e.name=name;
W._view.e.xy=xy;
}
};
ZPrint.ptr3=function(ind){
W._view.i.ind=ind;
};
ZPrint.openHtml=function(p,pv){
var u="/print/print_";
if(p==null)p={ac:"_default"};
if(typeof(p.ac)=="undefined")p={ac:"_default"};
switch(p.ac){
case"lc":
case"l":
case"s":
case"nb":
u+=("lc.html#"+p._str+pv._str);
break;
case"bsr":
case"nsr":
u+=("bsr.html#"+p._str+pv._str);
break;
case"bsl":
case"nsl":
u+=("bsl.html#"+p._str+pv._str);
break;
case"bp":
case"mm":
case"lsc":
default:
window.print();
return;
break;
}
window.open(u);
};
ZPrint.load=function(){
var ps=ZFunction.getParams("#");
try{
if(ps.ac!="bsl"||ps.ac!="nsl"){
var url=ZMB.getJsonUrl(ps);
(new ZJsLoader()).load(url,{onsuccess:ZFunction.getCallBack(ZPrint,this.json2dom,[ps]),onfailure:function(){}});
}else{
this.json2dom(ps);
}
}catch(Ex){
alert("打印页面载入出错，请查看输入参数!");
}
};
ZPrint.toViewParam=function(s){
var ar=s.split(";");
var obj={};
if(ar[0]){var m=ar[0].split(":")[1].split(",");obj.m={center:m[0],zoom:m[1]};};
if(ar[1]){var s=ar[1].split(":")[1].split(",");obj.s={name:decodeURIComponent(s[0]),xy:s[1]};};
if(ar[2]){var e=ar[2].split(":")[1].split(",");obj.e={name:decodeURIComponent(e[0]),xy:e[1]};};
if(ar[3]){var i=ar[3].split(":")[1];obj.i={ind:i};};
return obj;
};
ZPrint.json2dom=function(ps){
	var o=this;
	o.conf={
		center:new MPoint("北京市"),
		zoom:8,
		icoPath:"http://ditu.mapbar.com/images/"
	};
	var viewObj=this.toViewParam(ps._view);
		switch(ps.ac){
			case"lc":
			case"s":
			case"nb":
				var r,marker,rs=APRS.result;
				var icoPath=o.conf.icoPath+"icon/maplite/gif1/";
				oo=false;
				map=new initPrintMap("mapDivM");
				
				map.centerAndZoom(viewObj.m.center||APRS.mapinfo.center||o.conf.center,viewObj.m.zoom||APRS.mapinfo.scale||o.conf.zoom);
				map.addControl(new MStandardControl());
				map.showScale(true);
				
				var txt="搜索关键词："+APRS.keyword+"";
				if(ps.ac=="nb")txt+=" 查附近的："+APRS.poiTypeSrc;
				$("comInput").value=txt;
				txt="<ol>";
				for(var i=0;i<rs.length;i++){
					r=rs[i];
					if(i==5)txt+="</ol><ol class='floatR'>";
					txt+="<li><h2>"+r.num+". "+r.name+"</h2>"+r.address+"</li>";
					marker=new MMarker(new MPoint(r.strlatlon),new MIcon(icoPath+"tb"+(i+1)+".gif",32,32),null,null);
					map.addOverlay(marker);
				}
				txt+="</ol>";
				$("txtDiv").innerHTML=txt;
				break;
			
			case"bsr":
				var items=busResult.bus.item,defItemInd=viewObj.i.ind||0,defItem,stations,stationLen;
				var icoPath=o.conf.icoPath+"nw/";
				var txt="起点："+busResult.orig.name+"; 终点："+busResult.dest.name+"";
				$("comInput").value=txt;
				txt="";
				if(items.length==0)items.push({stations:[],detail:"",distance:"",routelatlons:[],pois:[]});
				defItem=items[defItemInd];
				stations=defItem.stations;
				stationLen=stations.length-1;
				$("txtDivS").innerHTML=busResult.orig.name;
				$("txtDivE").innerHTML=busResult.dest.name;
				$("txtDivR").innerHTML=defItem.detail;
				$("txtDivD").innerHTML=defItem.distance+"公里";
				oo=false;
				var map=new initPrintMap("mapDivM");
				
				map.centerAndZoom(viewObj.m.center||defItem.routecenter||o.conf.center,viewObj.m.zoom||defItem.routezoom||o.conf.zoom);
				map.addControl(new MStandardControl());
				map.showScale(true);
				maps=new initPrintMap("mapDivS");
				
				maps.centerAndZoom(busResult.orig.strlatlon||o.conf.center,o.conf.zoom);
				maps.addControl(new MStandardControl());
				maps.showScale(true);
				
				mape=new initPrintMap("mapDivE");
				
				mape.centerAndZoom(busResult.dest.strlatlon||o.conf.center,o.conf.zoom);
				mape.addControl(new MStandardControl());
				mape.showScale(true);
				var sPs=defItem.routelatlons.toString();
				var line=new MPolyline(ZMB.getArPs(sPs),ZMB.getDefBrush(),null);
				var arPs=[];
				var markerS=new MMarker(new MPoint(busResult.orig.strlatlon),new MIcon(icoPath+"qidian.gif",19,22,10,22),null,new MLabel(busResult.orig.name,10,-11));
				var markerE=new MMarker(new MPoint(busResult.dest.strlatlon),new MIcon(icoPath+"zhongdian.gif",19,22,10,22),null,new MLabel(busResult.dest.name,10,-11));
				var tmpS=new MMarker(new MPoint(busResult.orig.strlatlon),new MIcon(icoPath+"qidian.gif",19,22,10,22),null,new MLabel(busResult.orig.name,10,-11));
				var tmpE=new MMarker(new MPoint(busResult.dest.strlatlon),new MIcon(icoPath+"zhongdian.gif",19,22,10,22),null,new MLabel(busResult.dest.name,10,-11));
				arPs.push(tmpS);
				arPs.push(tmpE);
				var tmpPoi=stations[0].pois[0];
				$("tMapDivS").innerHTML="<strong>起点站：</strong>"+busResult.orig.name;
				if(tmpPoi[1]!=busResult.orig.strlatlon){
				arPs.push(new MMarker(new MPoint(tmpPoi[1]),new MIcon(icoPath+"qidian1.gif",32,32,16,32),null,new MLabel(tmpPoi[0],16,-16)));
				}
				tmpPoi=stations[stationLen].pois[stations[stationLen].pois.length-1];
				$("tMapDivE").innerHTML="<strong>终点站：</strong>"+busResult.dest.name;
				if(tmpPoi[1]!=busResult.dest.strlatlon){
				arPs.push(new MMarker(new MPoint(tmpPoi[1]),new MIcon(icoPath+"zhongdian1.gif",32,32,16,32),null,new MLabel(tmpPoi[0],16,-16)));
				}
				for(var i=0;i<defItem.pois.length;i++){
				arPs.push(new MMarker(new MPoint(defItem.pois[i].point),new MIcon(icoPath+"zhuan.gif",32,32,16,32),null,new MLabel(defItem.pois[i].name,16,-16)));
				}
				$("tMapDivM").innerHTML="<strong>整图：</strong>";
				map.addOverlay(line);
				for(var i=0;i<arPs.length;i++){
				map.addOverlay(arPs[i]);
				}
				maps.addOverlay(markerS);
				mape.addOverlay(markerE);
				break;
				
			case"l":
				if(typeof routeNamesByKey=="undefined"){
					return false;
				}else{
					var defItemInd=0;
					if(viewObj.i.ind)defItemInd=viewObj.i.ind;
					var keyword;
					if(routeNamesByKey.routes.item[defItemInd])keyword=routeNamesByKey.routes.item[defItemInd].name;
					var url=ZMB.getJsonUrl({ac:"_bl",keyword:keyword,city:ps.city});
					(new ZJsLoader()).load(url,{onsuccess:ZFunction.getCallBack(ZPrint,this.json2dom,[ps]),onfailure:function(){}})
				}
				var icoPath=o.conf.icoPath+"icon/custom/";
				if(typeof routeByName=="undefined"){
				}else{
				if(window._first){break;}else{window._first=true;}
				var routeTxt = "";
				if(routeByName.keyword != 'undefined')routeTxt=routeByName.keyword;
				var txt="公交路线搜索："+routeTxt;
				$("comInput").value=txt;
				oo=false;
				map=new initPrintMap("mapDivM");
				
				map.centerAndZoom(viewObj.m.center||routeByName.mapinfo.center||o.conf.center,viewObj.m.zoom||routeByName.mapinfo.scale||o.conf.zoom);
				map.addControl(new MStandardControl());
				map.showScale(true);
				
				var route=routeByName.route;
				var info=route.infomation;
				var items=route.stations.items;
				var str='<div class="busLineResult">';
				str+='<div class="BLRMain" id="busLines">';
				str+='<p>'+info+'</p>';
				str+='<div class="station">';
				for(var i=0;i<items.length;i++){
					str+="<a href='javascript:void(0)' onclick='window.marker.pt=new MPoint(\""+items[i].stationlatlon+"\");window.marker.label=new MLabel(\""+items[i].name+"\");window.marker.paint();window.map.refresh();'><em>"+items[i].id+"</em>"+items[i].name+"</a>";
				}
				str+='</div>';
				str+='<div class="indicatrix"><img src="images/icon_jt.gif" alt=""></div>';
				str+='</div></div>';
				$("txtDiv").innerHTML=str;
				var sPs=route.line[0].linelatlon.toString();
				var line=new MPolyline(ZMB.getArPs(sPs),ZMB.getDefBrush(),null);
				map.addOverlay(line);
				if(items[0])
					window.marker=new MMarker(new MPoint(items[0].stationlatlon),new MIcon(icoPath+"a-5.gif",32,32,16,32),null,new MLabel(items[0].name,10,-11));
				map.addOverlay(window.marker);
				}
				break;
			
			case"nsr":
				var item=drive.routes.item;
				var icoPath=o.conf.icoPath+"nw/";
				var txt="<strong>起点：</strong>"+drive.orig.name+"&nbsp;&nbsp;&nbsp;<strong>终点：</strong>"+drive.dest.name+"<br/>";
				$("comDiv").innerHTML=txt;
				txt="";
				for(var i=0;i<item.length;i++){
				txt+=(item[i].id+"."+item[i].strguide+"<br/>");
				}
				$("txtDivS").innerHTML=drive.orig.name;
				$("txtDivE").innerHTML=drive.dest.name;
				$("txtDivR").innerHTML=txt;
				$("txtDivD").innerHTML=drive.distance+"公里";
				oo=false;
				map=initPrintMap("mapDivM");
				
				map.centerAndZoom(viewObj.m.center||drive.mapinfo.center||o.conf.center,viewObj.m.zoom||drive.mapinfo.scale||o.conf.zoom);
				map.addControl(new MStandardControl());
				
				maps=initPrintMap("mapDivS");
				maps.centerAndZoom(drive.orig.strlatlon||o.conf.center,o.conf.zoom);
				map.addControl(new MStandardControl());
				
				mape=initPrintMap("mapDivE");
				
				mape.centerAndZoom(drive.dest.strlatlon||o.conf.center,o.conf.zoom);
				mape.addControl(new MStandardControl());
				
				var sPs=drive.routelatlon;
				var line=new MPolyline(ZMB.getArPs(sPs),ZMB.getDefBrush(),null);
				var arPs=[];
				var markerS=new MMarker(new MPoint(drive.orig.strlatlon),new MIcon(icoPath+"qidian.gif",19,22,10,22),null,new MLabel(drive.orig.name,10,-11));
				var markerE=new MMarker(new MPoint(drive.dest.strlatlon),new MIcon(icoPath+"zhongdian.gif",19,22,10,22),null,new MLabel(drive.dest.name,10,-11));
				var tmpS=new MMarker(new MPoint(drive.orig.strlatlon),new MIcon(icoPath+"qidian.gif",19,22,10,22),null,new MLabel(drive.orig.name,10,-11));
				var tmpE=new MMarker(new MPoint(drive.dest.strlatlon),new MIcon(icoPath+"zhongdian.gif",19,22,10,22),null,new MLabel(drive.dest.name,10,-11));
				arPs.push(tmpS);
				arPs.push(tmpE);
				$("tMapDivS").innerHTML="<strong>起点站：</strong>"+drive.orig.name;
				$("tMapDivE").innerHTML="<strong>终点站：</strong>"+drive.dest.name;
				$("tMapDivM").innerHTML="<strong>整图：</strong>";
				map.addOverlay(line);
				for(var i=0;i<arPs.length;i++){
					map.addOverlay(arPs[i]);
				}
				maps.addOverlay(markerS);
				mape.addOverlay(markerE);
				break;
			case"bsl":
			case"nsl":
				var icoPath=o.conf.icoPath+"nw/";
				oo=false;
				maps=new initPrintMap("mapDivS");
				maps.centerAndZoom(viewObj.s.xy||o.conf.center,o.conf.zoom);
				maps.addControl(new MStandardControl());
				maps.showScale(true);

				mape=new initPrintMap("mapDivE");
				mape.centerAndZoom(viewObj.e.xy||o.conf.center,o.conf.zoom);
				mape.addControl(new MStandardControl());
				mape.showScale(true);
				
				var markerS=new MMarker(new MPoint(viewObj.s.xy),new MIcon(icoPath+"qidian.gif",19,22,10,22),null,new MLabel(viewObj.s.name,10,-11));
				var markerE=new MMarker(new MPoint(viewObj.e.xy),new MIcon(icoPath+"zhongdian.gif",19,22,10,22),null,new MLabel(viewObj.e.name,10,-11));
				maps.addOverlay(markerS);
				mape.addOverlay(markerE);
				var txt="起点："+viewObj.s.name+"; 终点："+viewObj.e.name+"";
				$("comInput").value=txt;
				$("tMapDivS").innerHTML="<strong>起点站：</strong>"+viewObj.s.name;
				$("tMapDivE").innerHTML="<strong>终点站：</strong>"+viewObj.e.name;
				break;
			case"bp":
				break;
			case"mm":
				break;
			case"lsc":
				break;
			default:
				break;
		}
	
	//等待地图加载完在自动打印
	var printflag=false;
	itvl=setInterval(function(){
		//console.debug("no");
		if($("loading").style.display=="none"){
			//console.debug("maplet loaded");
			clearInterval(itvl);
			itvl=null;
			//如果页面上多于一个地图 
			if(getElementsByTagName$Id("div","loading").length>1){setTimeout(function(){if(!printflag){window.print();printflag=true;}},5000)}
			//页面上只有一个地图
			else{if(!printflag){window.print();printflag=true;}}
			
		}
	
	},100);
};
function getElementsByTagName$Id(tagName,id){var arr=[];var ss=document.getElementsByTagName(tagName);for(var i=0;i<ss.length;i++){if(ss[i].id==id)arr.push(ss[i]);	}return arr;}
ZPrint.clkOptHead=function(obj){
var a=obj.parentNode.parentNode[obj.name];
var opt="";
for(var i=0;i<a.length;i++){
if(a[i].checked)opt=a[i].value;
}
$("mapDiv").style.display=(opt=="both"||opt=="map")?"":"none";
$("txtDiv").style.display=(opt=="both"||opt=="txt")?"":"none";
};
ZPrint.clkOptMap=function(obj){
var a=obj.parentNode[obj.name];
var opt="";
for(var i=0;i<a.length;i++){
if(a[i].checked)opt=a[i].value;
}
$("mapSEDiv").style.display=(opt=="both"||opt=="se")?"":"none";
$("mapDivM").style.display=(opt=="both"||opt=="result")?"":"none";
};
window.ZPrint=ZPrint;
}
Z_Print_NS();

function initPrintMap(mapId){
	maplet = new Maplet(mapId);
	if(typeof maplet == "undefined"){setTimeout("initPrintMap('"+mapId+"')",100);}
	return maplet;
}