var stop_label_space=210;var stop_spacing=40;var row_spacing=30;var right_padding=100;var direction_separator_spacing=10;var origin_x=10;var origin_y=stop_label_space;var last_x=0;var last_y=0;var x=origin_x;var y=0;var canvas_width=0;var canvas_height=0;function draw_base_stop(d,f,g){var b=f.name;b=b.replace("SOUTHBOUND","SB");b=b.replace("NORTHBOUND","NB");b=b.replace("EASTBOUND","EB");b=b.replace("WESTBOUND","WB");var a=f.scheduled?"stop scheduled":"stop";var h=d.circle(x,y,5).attr("class",a);var e=d.text(x,y,b).attr({"class":"stop_name"}).translate(12,0);e.rotate(g,x,y)}function draw_stop(a){a.circle(x,y,3).attr("class","stop_aux")}function moveto(b,a){last_x=x;last_y=y;x=b;y=a}function get_direction_name(b,a){switch(b){case"NS":return a?"south":"north";case"EW":return a?"west":"east"}}function draw_primary_stops(b,c,f){var d=f?55:-55;var a=x;for(i in c){draw_base_stop(b,c[i],d);moveto(x+stop_spacing,y)}var e=b.path({"class":"route_path"}).moveTo(a,y).lineTo(x-stop_spacing,y).andClose().toBack()}var scrollers=[];function draw_route(d,q,l,h,a){var n=l.length>h.length?l.length:h.length;canvas_width=n*stop_spacing+right_padding;canvas_height=stop_label_space*2+(a.length+2)*row_spacing+direction_separator_spacing*2;d.setSize(canvas_width,canvas_height);moveto(origin_x,stop_label_space);draw_primary_stops(d,l,0);y+=30;moveto(origin_x,y);var m=-1;var f=-1;var e=0;for(i in a){if(e!=a[i]["direction"]){y+=direction_separator_spacing;e=a[i]["direction"];scrollers.push(d.text(90,y-14,"trips "+get_direction_name(q.directions,0)+"bound").attr("class","direction_separator_label").toBack());scrollers.push(d.text(90,y+8,"trips "+get_direction_name(q.directions,1)+"bound").attr("class","direction_separator_label").toBack());d.path().moveTo(0,y).lineTo(canvas_width+right_padding,y).attr("class","direction_separator").andClose();y+=row_spacing+direction_separator_spacing}for(j in a[i]["stops"]){if(a[i]["stops"][j]==1){if(m==-1){m=x}f=x;draw_stop(d)}x+=stop_spacing}var b=d.path().moveTo(m,y).lineTo(f,y);b.andClose().toBack().attr("class","route_path_aux");var k=a[i]["direction"]?"right":"left";var c=a[i]["direction"]==0?m:f;var g=a[i]["headsign"].replace("&amp;","&");var o=d.text(c,y+8,g).attr("class","route_headsign "+k);o.left_bound=m;o.right_bound=f;o.direction=a[i]["direction"];scrollers.push(o);y+=row_spacing;x=origin_x;m=-1;f=-1}origin_y=y;moveto(origin_x,origin_y);draw_primary_stops(d,h,1);moveto(origin_x,30);d.text(x,y,q.code+" "+q.name).attr({"class":"route_header"}).toBack()}var scroll_animate_duration=500;var canvas_container=null;var canvas_container_obj=null;function initialize_scrollers(){canvas_container=$("#canvas_container");canvas_container_obj=canvas_container.get(0);canvas_container.scroll(function(){var a=this.scrollLeft+this.clientWidth;for(i in scrollers){if(!scrollers[i].direction){if(scrollers[i].left_bound==null){scrollers[i].animate({x:this.scrollLeft+90},300)}else{if(scrollers[i].left_bound<this.scrollLeft&&scrollers[i].right_bound>this.scrollLeft){scrollers[i].animate({x:this.scrollLeft},scroll_animate_duration)}else{if(scrollers[i].left_bound>this.scrollLeft){scrollers[i].animate({x:scrollers[i].left_bound},scroll_animate_duration)}}}}else{if(scrollers[i].direction&&scrollers[i].left_bound<a&&scrollers[i].right_bound>a){scrollers[i].animate({x:a},scroll_animate_duration)}else{if(scrollers[i].right_bound<a){scrollers[i].animate({x:scrollers[i].right_bound},scroll_animate_duration)}}}}});canvas_container.scroll()}function viewport_drag(a){canvas_container_obj.scrollLeft=a.cursorOffsetX-a.pageX};