function ir(){this.dk=null;this.eu=null;};ir.prototype.add=function(bP){this.dk.push(bP);};var mI=0;ir.prototype.gP=function(xml){if(xml==null){return;}var status=xml.getElementsByTagName("Status");if(status==null||status.length<=0){return;}if(xml.getElementsByTagName("Status")[0].firstChild.nodeValue!="連線成功"){return;}this.eu=parseInt(xml.getElementsByTagName("TotalDistance")[0].firstChild.nodeValue);var cj=xml.getElementsByTagName("RouteResult");var mr=new Array();var hd=null;var ct=null;var mM=null;var gT=null;for(var i=0;i<cj.length;i++){var name=cj[i].getAttribute("Name");var length=cj[i].getAttribute("Length");var aw=cj[i].getAttribute("Distance");var gi=cj[i].getElementsByTagName("LineSegment");var gs=new Array();for(var gp=0;gp<gi.length;gp++){var ed=new Object();ed.id=gi[gp].getAttribute("RoadID");ed.T=new Array();var T=gi[gp].getElementsByTagName("Node");var x=T[0].getAttribute("X");var y=T[0].getAttribute("Y");hd=new bu(x,y);ed.T.push(hd);x=T[T.length-1].getAttribute("X");y=T[T.length-1].getAttribute("Y");ct=new bu(x,y);ed.aJ=new aa([hd,ct]);for(var j=1;j<T.length-1;j++){x=T[j].getAttribute("X");y=T[j].getAttribute("Y");var bW=new bu(x,y);ed.T.push(bW);ed.aJ.extend(bW);}ed.T.push(ct);gT=ed.T;gs.push(ed);}var ln=new iz(name,length,aw,gs);mr.push(ln);}this.dk=mr;};var fz=0;function iz(name,length,aw,dQ){this.name=name;this.length=length;this.aw=aw;this.dQ=dQ;};function mT(id,T,mA){};function eL(R){var l=document.createElement("li");l.appendChild(R);return l;};function aM(dR){var l=document.createElement("li");l.innerHTML=dR;return l;};function K(bB){this.bB=bB;this.map=null;this.gu="#0000FF";this.fG=10;this.ll="";this.gB="routeID_"+fz++;this.div=null;this.bx=null;this.ku=null;this.Z=null;this.aC=null;};K.prototype.fa=function(map){this.map=map;this.div=document.createElement("div");this.div.id=this.gB;map.bp.appendChild(this.div);this.Z=document.createElement("div");this.Z.id=this.div.id+"_path";this.aC=document.createElement("div");this.aC.id=this.div.id+"_arrow";this.aC.style.zIndex=10;this.div.appendChild(this.Z);this.div.appendChild(this.aC);this.jj(0.8);var ef=this;this.cF=null;this.scale=this.map.aR();this.map.aq(function(type,e){if(type=="move"){ef.be();if(ef.scale!=ef.map.aR()){if(ef.bm!=null){ef.bm.be(true);}if(ef.bS!=null){ef.bS.be(true);}ef.scale=ef.map.aR();}}});};K.prototype.es=function(jY,az,bG,shadow,aO,aX,aT,m){var icon=new fD();icon.image=jY;icon.az=az;icon.bG=bG;icon.shadow=shadow;icon.aO=aO;icon.aX=aX;icon.aT=aT;var at=new U(m,{icon:icon});at.cH(this.map);return at;};K.prototype.fU=function(ag){this.cF=ag;};K.prototype.jN=function(){return this.cF;};K.prototype.kA=function(color){this.gu=color;};K.prototype.jj=function(alpha){switch(L.type){case L.cs:if(this.Z.filters){this.Z.style.filter='alpha(opacity=45)';}break;case L.hh:this.Z.style.MozOpacity=(alpha==1)?0.999999:alpha;break;case L.hz:this.Z.style.khtmlOpacity=alpha;break;case L.hY:case L.hZ:this.Z.style.opacity=(alpha==1)?0.999999:alpha;break;}};K.prototype.kt=function(stroke){this.fG=stroke;};K.prototype.kr=function(color){this.lo=color;};K.prototype.jc=function(bB){this.bB=bB;};K.prototype.ma=function(){return this.bB;};K.prototype.jF=function(){if(this.bm!=null){this.bm.hide();}};K.prototype.kv=function(){if(this.bS!=null){this.bS.hide();}};K.prototype.fY=function(bW){if(this.bm==null){this.bm=this.es("image/st.gif",{width:16,height:32},{width:32,height:32},"image/shadow.png",{width:10,height:34},{width:37,height:34},"0,0,0,129,129,129,80,200,174,129,249,129,249,0",bW);}else{this.bm.hp(bW);this.bm.show();}};K.prototype.gC=function(bW){if(this.bS==null){this.bS=this.es("image/dt.gif",{width:16,height:32},{width:32,height:32},"image/shadow.png",{width:10,height:34},{width:37,height:34},"0,0,0,129,129,129,80,200,174,129,249,129,249,0",bW);}else{this.bS.hp(bW);this.bS.show();}};K.prototype.be=function(){if(!this.bB){return;}if(!this.map){return;}if(this.Z){this.Z.innerHTML="";}if(this.aC){this.aC.innerHTML="";}var cj=this.bB.dk;var gE=0;var de=this.map.af;var hs={x:de.x-this.map.root.offsetWidth/2,y:de.y-this.map.root.offsetHeight/2};var kx={x:hs.x+this.map.root.offsetWidth,y:hs.y+this.map.root.offsetHeight};var jg=this.map.ay(hs);var jo=this.map.ay(kx);var dV=new aa([jg,jo]);var jh=false;var fw=new Array();var fC=new Array();var gE=0;var cl=50;var hP=0;if(cj==null){return;}for(var i=0;i<cj.length;i++){var ag=cj[i];var dQ=ag.dQ;var dW=null;var cz=null;var bx=null;var dc=null;for(var ff=0;ff<dQ.length;ff++){var T=dQ[ff].T;if(dV.dj(dQ[ff].aJ)){var hd=this.map.I(T[0]);var ct=this.map.I(T[T.length-1]);var dh=hd;fw.push(hd.x);fC.push(hd.y);for(var gq=1;gq<T.length-1;gq++){var pt=this.map.I(T[gq]);if(pt.x<dh.x+5&&pt.x>dh.x-5&&pt.y<dh.y+5&&pt.y>dh.y-5){continue;}fw.push(pt.x);fC.push(pt.y);dh=pt;}fw.push(ct.x);fC.push(ct.y);if(dW==null){dW=document.createElement("div");dW.id=this.Z.id+"_"+hP;bx=new jsGraphics(dW);bx.setStroke(this.fG);if(this.cF!=null&&this.cF==ag){bx.setColor("#FFFF00");}else{bx.setColor(this.gu);}this.Z.appendChild(dW);var cz=document.createElement("div");cz.id=this.aC.id+"_"+hP++;dc=new jsGraphics(cz);dc.setColor("#00FFFF");this.aC.appendChild(cz);}iV(bx,fw,fC);fw.length=0;fC.length=0;}}}function iV(cn,fw,fC){cn.drawPolyline(fw,fC);cn.paint();};function lx(cn,cY,gw,cl,aw){return 0;var dx=gw.x-cY.x;var dy=gw.y-cY.y;var dz=Math.sqrt(dx*dx+dy*dy);aw+=dz;if(dz<cl&&aw<cl){return aw;}var jf=3;var fp=dz/cl-1;var sin=dy/dz;var cos=dx/dz;var a=2*jf;var c=2*jf;var b=2*jf;var my=a*cos;var mt=a*sin;var mw= -b*cos+c*sin;var mv= -b*sin-c*cos;var mx= -b*cos-c*sin;var ms= -b*sin+c*cos;if(fp>1){var iG=cY.x;var iA=cY.y;for(var kN=0;kN<fp;kN++){iG+=cl*cos;iA+=cl*sin;cn.hI([iG+mw,iG+mx,iG+my],[iA+mv,iA+ms,iA+mt]);aw=0;}cn.paint();}else if(aw>cl){var iG=(cY.x+gw.x)/2;var iA=(cY.y+gw.y)/2;cn.hI([iG+mw,iG+mx,iG+my],[iA+mv,iA+ms,iA+mt]);aw=0;cn.paint();}return aw;}};K.prototype.kF=function(){};K.prototype.jk=function(target){J.t(target,"click",this.gQ);J.t(target,"mouseover",function(e){this.iK=this.style.cursor;this.style.cursor="move"});J.t(target,"mouseout",function(e){this.style.cursor=this.iK});};K.prototype.gQ=function(){};var mJ="";var P={eb:null,fv:null,dZ:new Array(),map:null,bn:null,eS:function(map){P.map=map;P.bn=new K();P.bn.fa(P.map);},gz:function(dG){P.eb=dG;P.bn.fY(dG);},setEndPoint:function(dG){P.fv=dG;P.bn.gC(dG);},kW:function(dG){P.dZ.push(dG);},kb:function(index){P.dZ.splice(index,1);},bB:function(){if(P.eb==null||P.fv==null){return false;}P.bc(P.eb,P.fv);if(P.dZ!=null&&P.dZ.length>0){}},bc:function(cY,gw){var source=this;/*prompt('路徑規劃',url + '?CommandID=Routing0001&StartX='+cY.ac+'&StartY='+cY.Y+'&EndX='+gw.ac+'&EndY='+gw.Y);*/$.post(url,{CommandID:'Routing0001',StartX:cY.ac,StartY:cY.Y,EndX:gw.ac,EndY:gw.Y},function(xml){var bB=new ir();bB.gP(xml);var gN=document.getElementById("path_panel");if(gN){gN.innerHTML="";var block=document.createElement("ul");block.innerHTML="<li><strong>總距離："+bB.eu+"m</strong></li>";gN.appendChild(block);var cj=bB.dk;for(var i=0;i<cj.length;i++){var ag=cj[i];var gJ=document.createElement("ul");var fT=document.createElement("a");fT.innerHTML=ag.name;fT.href="javascript:void(0)";fT.bP=ag;fT.onclick=function(e){var cY=this.bP.dQ[0].T[0];P.bn.fU(this.bP);imap.ar(cY,true);if(this.aW==null){this.aW=document.createElement("ul");this.aW.appendChild(aM("道路名稱："+this.bP.name));this.aW.appendChild(aM("道路長度："+this.bP.length));this.aW.appendChild(aM("距目標距離："+this.bP.aw));}imap.bq(cY,this.aW,null);};gJ.appendChild(eL(fT));gJ.appendChild(aM("道路長度 = "+ag.length));gJ.appendChild(aM("距目標距離 = "+ag.aw));block.appendChild(eL(gJ));}}P.bn.jc(bB);P.bn.be();});}};function aa(ah){this.bF=999999999;this.cQ= -999999999;this.bN=999999999;this.cP= -999999999;if(ah!=null){for(var i=0;i<ah.length;i++){this.extend(ah[i]);}}};aa.prototype.cX=function(aJ){return this.cQ=aJ.cQ&&this.bF==aJ.bF&&this.cP==aJ.cP&&this.bN==aJ.bN;};aa.prototype.extend=function(m){var Y=m.Y;var ac=m.ac;if(ac<this.bN){this.bN=ac;}if(ac>this.cP){this.cP=ac;}if(Y<this.bF){this.bF=Y;}if(Y>this.cQ){this.cQ=Y;}};aa.prototype.eT=function(){return new bu(this.cP,this.cQ);};aa.prototype.eF=function(O){return new bu(this.bN,this.bF);};aa.prototype.gY=function(O){if(!this.dj(O)){return null;}else{return new aa([this.min(),this.max(),O.min(),O.max()]);}};aa.prototype.dj=function(O){var w=this.cP-this.bN;var h=this.cQ-this.bF;var lU=O.cP-O.bN;var lM=O.cQ-O.bF;return(((Math.abs(this.bN-O.bN)<=w)&&(Math.abs(this.bF-O.bF)<=h))||((Math.abs(this.bN-O.bN)<=lU)&&(Math.abs(this.bF-O.bF)<=lM)));};aa.prototype.contains=function(aV){if(aV.bF!=null){return this.bN<=aV.bN&&aV.cP<=this.cP&&this.bF<=aV.bF&&aV.cQ<=this.cQ;}else if(aV.Y!=null){return this.bN<=aV.ac&&aV.ac<=this.cP&&this.bF<=aV.Y&&aV.Y<=this.cQ;}else{return false;}};var url="EMapSDK.aspx"; 