	var mappletConfig={ll:"34.96478,105.08019",zm:4,mt:"www.51ditu.com",configGroup:"Train"};
	var railwayMarkers=[],railwayLines=[];
	var railwayIcon={src:"/huoche/img/markerIcon.gif.aspx",size:[16,16],anchor:[8,16]};
	var holder;
	mappletConfig.onInit=function()
	{
		holder=this;
		this.initMiniWins();
		var indexNode=document.getElementById("titleDiv");
		var pageType=indexNode.getAttribute("type");
		var points=[];
		switch(pageType)
		{
			case "list":
				var trainData=document.getElementById("trainDataDiv");
				window.segments=[];
				for(var segmentChild=trainData.firstChild;segmentChild;segmentChild=segmentChild.nextSibling)
				{
					var segment={sStation:segmentChild.getAttribute("sStation"),eStation:segmentChild.getAttribute("eStation"),span:segmentChild.getElementsByTagName("span")[0],routes:[],selectedIndex:0};
					segmentChild=segmentChild.nextSibling;
					for(var i=1;i<segmentChild.rows.length;i++)
					{
						var row=segmentChild.rows[i];
						if(!row.getAttribute("title")){continue;}
						var route={line1:row.getAttribute("title"),sStop1:row.getAttribute("sStop"),eStop1:row.getAttribute("eStop"),segment:segment,index:segment.routes.length,radio:row.cells[0].firstChild};
						K_Event.bind(route.radio,"click",route,onRouteClick)
						segment.routes.push(route);
						var ll=row.getAttribute("ll").split("O");
						if(ll[0] && ll[1])
						{
							if(ll[0]>7300000 && ll[0]<13600000 && ll[1]>300000 && ll[1]<5400000)
							{
								route.sPoint1=[ll[1]/100000,ll[0]/100000];
							}
							else if (ll[0]>73 && ll[0]<136 && ll[1]>3 && ll[1]<54)
							{
								route.sPoint1=[ll[1],ll[0]];
							}
							points.push(route.sPoint1);
						}
						if(ll[2] && ll[3])
						{
							if(ll[2]>7300000 && ll[2]<13600000 && ll[3]>300000 && ll[3]<5400000)
							{
								route.ePoint1=[ll[3]/100000,ll[2]/100000];
							}
							else if (ll[2]>73 && ll[2]<136 && ll[3]>3 && ll[3]<54)
							{
								route.ePoint1=[ll[3],ll[2]];
							}
							points.push(route.ePoint1);
						}
						if(row.cells[0].rowSpan==2)
						{
							i++;
							row=segmentChild.rows[i];
							route.line2=row.getAttribute("title");
							route.sStop2=row.getAttribute("sStop");
							route.eStop2=row.getAttribute("eStop");
							ll=row.getAttribute("ll").split("O");
							if(ll[0] && ll[1])
							{
								route.sPoint2=[ll[1]/100000,ll[0]/100000];
								points.push(route.sPoint2);
							}
							if(ll[2] && ll[3])
							{
								route.ePoint2=[ll[3]/100000,ll[2]/100000];
								points.push(route.ePoint2);
							}
						}
					}
					if(segment.routes.length>0)
					{
						window.segments.push(segment);
					}
				}
				drawRouteOverlays();
				break;
			case "line":
				var trainData=document.getElementById("trainData");
				currentName=indexNode.getAttribute("title");
				var keyResult=new RegExp("^([^-]+)\\(([^-]+)-([^-]+)\\)$").exec(currentName);
				var pointkey=keyResult[2]+"_"+keyResult[1]+"_"+keyResult[3];
				for(var i=1;i<trainData.rows.length;i++)
				{
					var row=trainData.rows[i];
					var ll=row.getAttribute("ll").split("O");
					if(ll[0] && ll[1])
					{
						var point;
						if(ll[0]>7300000 && ll[0]<13600000 && ll[1]>300000 && ll[1]<5400000)
						{
							point=[ll[1]/100000,ll[0]/100000];
						}
						else if (ll[0]>73 && ll[0]<136 && ll[1]>3 && ll[1]<54)
						{
							point=[ll[1],ll[0]];
						}
						if(!point){continue;}
						points.push(point);
						var lStation={name:row.getAttribute("title"),point:point}
						lStation.stationIndex=i-1;
						lStation.marker=getStationMarker(lStation.name,lStation.point);
						railwayMarkers.push(lStation.marker);
					}
				}
				loadPoints(pointkey);
				break;
			case "railway":
				var trainData=document.getElementById("trainData");
				currentName=indexNode.getAttribute("title");
				for(var i=1;i<trainData.rows.length;i++)
				{
					var row=trainData.rows[i];
					var ll=row.getAttribute("ll").split("O");
					if(ll[0] && ll[1])
					{
						var point;
						if(ll[0]>7300000 && ll[0]<13600000 && ll[1]>300000 && ll[1]<5400000)
						{
							point=[ll[1]/100000,ll[0]/100000];
						}
						else if (ll[0]>73 && ll[0]<136 && ll[1]>3 && ll[1]<54)
						{
							point=[ll[1],ll[0]];
						}
						if(!point){continue;}
						points.push(point);
						var rStation={name:row.getAttribute("title"),point:point}
						rStation.stationIndex=i-1;
						rStation.marker=getStationMarker(rStation.name,rStation.point);
						railwayMarkers.push(rStation.marker);
					}
				}
				addLinePoints(points);
				break;
			case "route":
				var trainData=document.getElementById("trainDataDiv");
				var pointkeys=[];
				for(var segmentChild=trainData.firstChild;segmentChild;segmentChild=segmentChild.nextSibling)
				{
					segmentChild=segmentChild.nextSibling;
					if(pointkeys.length==0)
					{
						pointkeys.push(segmentChild.rows[1].getAttribute("title"));
					}
					pointkeys.push(segmentChild.getAttribute("title"));
					pointkeys.push(segmentChild.rows[segmentChild.rows.length-1].getAttribute("title"));
					for(var i=1;i<segmentChild.rows.length;i++)
					{
						var row=segmentChild.rows[i];
						var stop={stationName:row.getAttribute("title")};
						var ll=row.getAttribute("ll").split("O");
						if(ll[0] && ll[1])
						{
							var point;
							if(ll[0]>7300000 && ll[0]<13600000 && ll[1]>300000 && ll[1]<5400000)
							{
								point=[ll[1]/100000,ll[0]/100000];
							}
							else if (ll[0]>73 && ll[0]<136 && ll[1]>3 && ll[1]<54)
							{
								point=[ll[1],ll[0]];
							}
							if(!point){continue;}
							stop.point=point;
							points.push(stop.point);
							var marker=getStationMarker(stop.stationName,stop.point);
							railwayMarkers.push(marker);
							stop.marker=marker;
						}
					}
				}
				loadPoints(pointkeys.join("_"));
				break;
			case "station":
				currentName=indexNode.getAttribute("title");
				var lng=indexNode.getAttribute("lng");
				var lat=indexNode.getAttribute("lat");
				if(lng && lat)
				{
					var point=[lat,lng];
					points.push(point);
					var marker=getStationMarker(currentName,point);
					railwayMarkers.push(marker);
				}
				holder.loadApplet("K_PanoramioPhotoControl");
				break;
		}
		this.getMap().getBestMap(points);
	}
	function onRouteClick()
	{
		this.radio.checked=true;
		this.segment.span.innerHTML=this.line2?("乘坐<strong>"+this.line1+"</strong>在<strong>"+this.sStop2+"</strong>换乘<strong>"+this.line2+"</strong>"):("乘坐<strong>"+this.line1+"</strong>");
		this.segment.selectedIndex=this.index;
		var path="";
		for(var i=0;i<window.segments.length;i++)
		{
			var segment=window.segments[i];
			var route=segment.routes[segment.selectedIndex];
			if(i==0)
			{
				path+=route.sStop1;
			}
			path+="_"+route.line1+"_"+route.eStop1;
			if(route.line2)
			{
				path+="_"+route.line2+"_"+route.eStop2;
			}
		}
		document.getElementById("routeLink").href="/huoche/fangan/"+encodeURI(path)+".aspx";
		drawRouteOverlays();
	}
	function drawRouteOverlays()
	{
		var marker,line;
		while(marker=railwayMarkers.pop())
		{
			holder.getMap().removeMarker(marker);
		}
		while(line=railwayLines.pop())
		{
			holder.getMap().removePolyline(line);
		}
		var points=[];
		var pointkeys=[];
		for(var i=0;i<window.segments.length;i++)
		{
			var segment=window.segments[i];
			var route=segment.routes[segment.selectedIndex];
			if(i==0 && route.sPoint1)
			{
				var marker=getStationMarker(route.sStop1,route.sPoint1);
				railwayMarkers.push(marker);
				points.push(route.sPoint1);
			}
			if(route.ePoint1)
			{
				var marker=getStationMarker(route.eStop1,route.ePoint1);
				railwayMarkers.push(marker);
				points.push(route.ePoint1);
			}
			if(i==0)
			{
				pointkeys.push(route.sStop1);
			}
			pointkeys.push(route.line1);
			pointkeys.push(route.eStop1);
			if(route.line2 && route.ePoint2)
			{
				var marker=getStationMarker(route.eStop2,route.ePoint2);
				railwayMarkers.push(marker);
				points.push(route.ePoint2);
				pointkeys.push(route.line2);
				pointkeys.push(route.eStop2);
			}
		}
		loadPoints(pointkeys.join("_"));
	}
	function getStationMarker(name,point)
	{
		return holder.getMap().addMarker({icon:railwayIcon,ll:point,name:name,url:'/huoche/zhandian/'+encodeURI(name)+'.aspx',exact:true});
	}
	function loadPoints(key)
	{
		K_ScriptLoader.getObject().load("http://service.dituren.cn/services/train_getroutepoints?c=onPointsLoaded&key="+encodeURI(key));
	}
	function onPointsLoaded(p)
	{
		if(!p || p.length<0){return;}
		railwayLines.push(addLinePoints(p));
	}
	function addLinePoints(points)
	{
		return holder.getMap().addPolyline({lls:points,style:'railway',weight:4,color:'#000000',opacity:0.8});
	}