function B(id){this.id=id;this.jy=id;this.ea=null;this.name=id;this.description=null;this.cI=null;this.color=null;this.lineWidth=0;this.opacity=0.0;this.ja=new Array();this.et=null;this.eu=null;this.visible=true;this.eh=true;this.dw=true;this.cQ=null;this.fc=null;this.directionsDisplay=null;this.googlePolylineArray=null;this.fH=null;this.fI=null;this.noServiceDisplayed=false;};B.prototype.ft=function(){this.googlePolylineArray=new Array();this.fH=new Array();this.fI=new Array();for(var gs=0;gs<this.eu.length;gs++){var jJ=null;jJ=aE(this.eu[gs]);var hz=new GPolyline(jJ,this.color,this.lineWidth,this.opacity,{fT:this.name});var cP=this.name;GEvent.addListener(hz,"click",function(gv){if(!fq){aM(gv,cP);}});map.addOverlay(hz);this.googlePolylineArray.push(hz);var dg=bh(this.eu[gs]);for(var i=0;i<dg.length;i++){var marker=aR(dg[i].fF,dg[i].cR);map.addOverlay(marker);if(map.getZoom()>=dh){marker.show();}else{marker.hide();}this.fI.push(marker);}}eg=this.et;for(var i=0;i<eg.length;i++){var marker=aA(eg[i].fF,en,this.name,this.description,eg[i].cE,eg[i].jb,this.id,eg[i].direction,eg[i].directionDisplay,this.color);//@1
map.addOverlay(marker);if(map.getZoom()>=jd&&fb){marker.show();}else{marker.hide();}this.fH.push(marker);}if(map.getZoom()>=jd&&fb){this.eh=true;}else{this.eh=false;}this.visible=true;};B.prototype.fA=function(ho){var hn= -1;for(var x=0;x<this.cQ.length;x++){if(this.cQ[x]==ho){hn=x;break}}if(hn<0)return;var hg=false;eg=bE(this.eu[hn]);for(var i=0;i<eg.length;i++){if(!this.gF(eg[i])){var marker=aA(eg[i].fF,en,this.name,this.description,eg[i].cE,eg[i].jb,this.id,eg[i].direction,eg[i].directionDisplay,this.color);//@1
map.addOverlay(marker);if(map.getZoom()>=jd&&fb){marker.show();}else{marker.hide();}this.fH.push(marker);hg=true;}}if(hg){var jJ=aE(this.eu[hn]);var hz=new GPolyline(jJ,this.color,this.lineWidth,this.opacity,{fT:this.name});var cP=this.name;GEvent.addListener(hz,"click",function(gv){aM(gv,cP);});map.addOverlay(hz);this.googlePolylineArray.push(hz);var dg=bh(this.eu[hn]);for(var i=0;i<dg.length;i++){var marker=aR(dg[i].fF,dg[i].cR);map.addOverlay(marker);if(map.getZoom()>=dh){marker.show();}else{marker.hide();}this.fI.push(marker);}}if(map.getZoom()>=jd&&fb){this.eh=true;}else{this.eh=false;}this.visible=true;};B.prototype.gF=function(ee){for(var x=0;x<this.fH.length;x++){if(ee.jb==this.fH[x].jb){return true;}}return false;};B.prototype.show=function(){for(var gs=0;gs<this.googlePolylineArray.length;gs++){this.googlePolylineArray[gs].show();}for(var i=0;i<this.fH.length;i++){if(map.getZoom()>=jd&&fb){this.fH[i].show();}else{this.fH[i].hide();}}for(var i=0;i<this.fI.length;i++){if(map.getZoom()>=dh){this.fI[i].show();}else{this.fI[i].hide();}}this.visible=true;if(map.getZoom()>=jd&&fb){this.eh=true;}else{this.eh=false;}};B.prototype.hide=function(){for(var gs=0;gs<this.googlePolylineArray.length;gs++){this.googlePolylineArray[gs].hide();}for(var i=0;i<this.fH.length;i++){this.fH[i].hide();}for(var i=0;i<this.fI.length;i++){this.fI[i].hide();}if(fK!=null&&fO==this.id){fK.hide();}this.visible=false;this.eh=false;};B.prototype.remove=function(){G(this);for(var gs=0;gs<this.googlePolylineArray.length;gs++){GEvent.clearInstanceListeners(this.googlePolylineArray[gs]);map.removeOverlay(this.googlePolylineArray[gs]);this.googlePolylineArray[gs]=null;}for(var i=0;i<this.fH.length;i++){this.fH[i].hide();GEvent.clearInstanceListeners(this.fH[i]);map.removeOverlay(this.fH[i]);this.fH[i]=null;}for(var i=0;i<this.fI.length;i++){this.fI[i].hide();map.removeOverlay(this.fI[i]);this.fI[i]=null;}this.visible=false;this.eh=false;};B.prototype.fC=function(du){var cB=null;for(var i=0;i<this.ja.length;i++){if(du==this.ja[i].du){cB=this.ja[i];break;}}return cB;};B.prototype.jj=function(gr){for(var i=0;i<this.ja.length;i++){this.ja[i].active=gr;}};function v(hC){var ec=null;for(var i=0;i<er.length;i++){if(hC==er[i].id){ec=er[i];break;}}return ec;};function Q(hC){var eA=null;for(var i=0;i<ei.length;i++){if(hC==ei[i].av){eA=ei[i];break;}}return eA;};function cf(ec,cC){if(ec.cQ==null)return false;for(var i=0;i<ec.cQ.length;i++){if(ec.cQ[i]==cC)return true;}return false;};function bo(a,b){if(a.ea<b.ea)return-1;if(a.ea>b.ea)return+1;return 0;};function aE(ev){var hA=new Array();for(var i=0;i<ev.length;i++){if(!ev[i].gb){hA.push(ev[i].fF);}}return hA;};function bE(ev){var eg=new Array();for(var i=0;i<ev.length;i++){if(ev[i].gn){eg.push(ev[i]);}}return eg;};function bh(ev){var dg=new Array();for(var i=0;i<ev.length;i++){if(ev[i].gb){dg.push(ev[i]);}}return dg;};function aM(gv,cP){if(fl.style.visibility=="hidden"&&tooltip.style.visibility=="hidden"){var totalBuses=0;var ec=v(cP);if(fl.ec!=ec){fl.ec=ec;fl.totalBuses=null;}var hR="<br/><span class='boxLabel'>Route: </span>"+cP;hR+=(ec.description==""?"":" - "+ec.description);if(supervisor){var totalBuses=(ec.ja==null?"0":ec.ja.length);var prevBuses=fl.totalBuses==null?"0":fl.totalBuses;if(prevBuses!=totalBuses||fl.totalBuses==null){hR+="<br/><span class='boxLabel'>Number of buses on route: </span>"+(ec.ja==null?"0":ec.ja.length);}else{return;}}hR+="<br />";if(ec.cI!=null&&ec.cI.length>0){is=ec.cI;iw=null;iv=cP;hR+="<br /><span onclick='ap();' class='linkAppearance'>View Service Bulletin(s)</span>"}if(schedulesAvailable){hR+="<br /><div><a href='"+jspGetSchedulePDF+"&route="+cP+"' target='_blank'>"+"<span class='linkAppearance'>Route Schedule</span>"+"</a><br />&nbsp;</div>";}map.openInfoWindowHtml(gv,hR,{onCloseFn:polyLineClickClose});fX=true;fl.type="route";fY=cP;fZ=gv;if(!supervisor)fl.type="none";fl.totalBuses=totalBuses;}};function polyLineClickClose(){fl.totalBuses=null;}