var idlist=[];

function getBusLine(id){
	var url='/resource/js/busline/'+map+'/'+id+'.js';
	var line=eval('('+postData(url)+')');
	var xs=line.xs;
	var ys=line.ys;
	var stations=line.stations;

	var up_tmp=[];
	var down_tmp=[];
	for(var i=0;i<stations.length;i++){
		if(stations[i].state==0){
			up_tmp[up_tmp.length]=stations[i];
			down_tmp[down_tmp.length]=stations[i];
		}
		else if(stations[i].state==1){
			up_tmp[up_tmp.length]=stations[i];
		}
		else if(stations[i].state==-1){
			down_tmp[down_tmp.length]=stations[i];
		}
	}
	var half=Math.floor(down_tmp.length/2);
	var length=down_tmp.length;
	for(var i=0;i<half;i++){
		var a=down_tmp[i];
		down_tmp[i]=down_tmp[length-1-i];
		down_tmp[length-1-i]=a;
	}

	var xx=xs.split(';');
	var yy=ys.split(';');
	var upx=xx[0].split(',');
	var upy=yy[0].split(',');
	var downx;
	var downy;
	if(xx.length>1){
		downx=xx[1].split(',');
		downy=yy[1].split(',');
		for(var i=upx.length-1;i>=0;i--){
			if(upx[i]==downx[downx.length-1]){
				var xt=upx.slice(0,i).reverse();
				var yt=upy.slice(0,i).reverse();
				downx=downx.concat(xt);
				downy=downy.concat(yt);
			}
		}
	}
	else{
		downx=xx[0].split(',').reverse();
		downy=yy[0].split(',').reverse();
	}

	var up=[];
	var down=[];
	var ids=[];
	if(true){
		var upi=0;
		for(var i=0;i<upx.length;i++){
			if(up_tmp.length&&Math.abs(up_tmp[upi].x-upx[i])<=2&&Math.abs(up_tmp[upi].y-upy[i])<=2){
				up.push(up_tmp[upi]);
				ids[up_tmp[upi].id]=1;
				if(upi==up_tmp.length-1){
					//upMax=i;
					break;
				}
				upi++;
			}
			else{
				up.push({x:upx[i],y:upy[i]});
			}
		}
		var downi=0;
		for(var i=0;i<downx.length;i++){
			if(down_tmp.length&&down_tmp[downi]&&Math.abs(down_tmp[downi].x-downx[i])<=2&&Math.abs(down_tmp[downi].y-downy[i])<=2){
				down.push(down_tmp[downi]);
				if(ids[down_tmp[downi].id]){
					ids[down_tmp[downi].id]+=2;
				}
				else{
					ids[down_tmp[downi].id]=2;
				}
				downi++;
			}
			else{
				down.push({x:downx[i],y:downy[i]});
			}
		}
	}
	line.upStations=up_tmp;
	line.downStations=down_tmp;
	line.up=up;
	line.down=down;
	return line;
}
function getLine(blid1,blid2,id1,id2,id3){
	var line1=null;
	var line2=null;
	var bl1=null;
	var bl2=null;
	if(blid1&&id1&&id2){
		line1=getBusLine(blid1);
		var stations=line1.stations;
		for(var i=0;i<stations.length;i++){
			if(stations[i].id==id1){
				bl1=line1.up;
				break;
			}
			if(stations[i].id==id2){
				bl1=line1.down;
				break;
			}
		}
	}
	if(blid2&&id3){
		line2=getBusLine(blid2);
		var stations=line2.stations;
		for(var i=0;i<stations.length;i++){
			if(stations[i].id==id2){
				bl2=line2.up;
				break;
			}
			if(stations[i].id==id3){
				bl2=line2.down;
				break;
			}
		}
	}
	var line=[];
	var flag=false;
	var len2=0;
	if(bl1){
		for(var i=0;i<bl1.length;i++){
			if(bl1[i].id&&bl1[i].id==id1)flag=true;
			if(flag){
				line.push(bl1[i]);
			}
			if(bl1[i].id&&bl1[i].id==id2){
				flag=false;
				break;
			}			
		}
	}
	if(bl2){
		for(var i=0;i<bl2.length;i++){
			if(flag){
				line.push(bl2[i]);
				len2++;
			}
			if(bl2[i].id&&bl2[i].id==id2)flag=true;			
			if(bl2[i].id&&bl2[i].id==id3){
				flag=false;
				break;
			}
		}
	}
	if(blid1&&!bl1&&!bl2){
		line1=getBusLine(blid1);
		line=line1.up;
	}
	return {line:line,len2:len2};
}
function drawBusLine(blid1,blid2,id1,id2,id3){
	//switchNavView(0);
	cleanLine();
	$('divMapClear').style.display='';
	//var line=getLine(50040,50041,570,387,676);
	var result=getLine(blid1,blid2,id1,id2,id3);
	var line=result.line;
	var len2=result.len2;
	var x=line[0].x;
	var y=line[0].y;
	xs=x;
	ys=y;
	for(var i=1;i<line.length-len2;i++){
		xs+=','+line[i].x;
		ys+=','+line[i].y;
		//alert(line[i].x+','+line[i].y);
	}
	popomap.zoomto(4);
	popomap.go2xy(x,y);
	var o={id:0,x:x,y:y,xs:xs,ys:ys,autoZoom:true,strokecolor:'#00FF00',strokeweight:3,endarrow:'block'};
	if(brw=='ie')popomap.drawLine(o);
	xs=line[0].x+','+line[1].x;
	ys=line[0].y+','+line[1].y;
	o={id:2,x:x,y:y,xs:xs,ys:ys,autoZoom:true,strokecolor:'#00FF00',strokeweight:3,endarrow:'block'};
	if(brw=='ie')popomap.drawLine(o);
	if(len2){
		var x2=line[line.length-len2-1].x;
		var y2=line[line.length-len2-1].y;
		var xs2=x2;
		var ys2=y2;
		for(var i=line.length-len2;i<line.length;i++){
			xs2+=','+line[i].x;
			ys2+=','+line[i].y;
			//alert(line[i].x+','+line[i].y);
		}
		var o={id:3,x:x2,y:y2,xs:xs2,ys:ys2,autoZoom:true,strokecolor:'#0000FF',strokeweight:3,endarrow:'block'};
		if(brw=='ie')popomap.drawLine(o);
	}
	var signType='busStation';
	for(var i=0;i<line.length;i++){
		if(!line[i].id) continue;
		//idlist[idlist.length]=popomap.createUserPop(line[i],{global:true,display:true,idStr:'lineSt'+line[i].id});
		this.idlist[this.idlist.length]=omapApi.createSignExt(signType,line[i],{global:true,display:true,idStr:'lineSt'+line[i].id});
	}
}
function mapClear(){
	//setSmartClose();
	cleanLine();
	cleanUserPop();
}
function cleanLine(){
	popomap.destroyAllG();
	for(var i=0;i<idlist.length;i++){
		var id=idlist[i];
		popomap.removePop(id);
	}
	idlist=[];
	//setSmartClose();
	$('divMapClear').style.display='none';
}
function showStation(id,x,y,name){
	if(!x||!y) return;
	popomap.removePop('lineSt2');
	popomap.go2xy(x,y);
	var obj={id:id,x:x,y:y,name:name,type:'bs',ico:'bs_2.gif'};
	popomap.createSignExt('userPop',obj,{global:true,display:true,idStr:'lineSt2'});
}