+ $(".search_form").on("submit", function(e) {
+ e.preventDefault();
+ if ($(".query_wrapper.routing").is(":visible")) {
+ // Routing
+ OSM.routing.requestRoute(true, true);
+ } else {
+ // Search
+ $("header").addClass("closed");
+ var query = $(this).find("input[name=query]").val();
+ if (query) {
+ OSM.router.route("/search?query=" + encodeURIComponent(query) + OSM.formatHash(map));
+ } else {
+ OSM.router.route("/" + OSM.formatHash(map));
+ }
+ }
+ });
+
+ $(".describe_location").on("click", function(e) {
+ e.preventDefault();
+ var precision = OSM.zoomPrecision(map.getZoom());
+ OSM.router.route("/search?query=" + encodeURIComponent(
+ map.getCenter().lat.toFixed(precision) + "," +
+ map.getCenter().lng.toFixed(precision)));
+ });
+
+ OSM.routing = OSM.Routing(map,'OSM.routing',$('.query_wrapper.routing'));
+ OSM.routing.chooseEngine('javascripts.directions.engines.osrm_car');
+
+ $(".get_directions").on("click",function(e) {
+ e.preventDefault();
+ $(".search").hide();
+ $(".routing").show();
+ $(".query_wrapper.routing [name=route_from]").focus();
+ $("#map").on('dragend dragover',function(e) { e.preventDefault(); });
+ $("#map").on('drop',function(e) { OSM.routing.handleDrop(e); e.preventDefault(); });
+ $(".routing_marker").on('dragstart',function(e) {
+ e.originalEvent.dataTransfer.effectAllowed = 'move';
+ e.originalEvent.dataTransfer.setData('id', this.id);
+ e.originalEvent.dataTransfer.setData('offsetX', e.originalEvent.target.width/2 - (e.originalEvent.x-e.target.x));
+ e.originalEvent.dataTransfer.setData('offsetY', e.originalEvent.target.height - (e.originalEvent.y-e.target.y));
+ });
+ });
+
+ $(".close_directions").on("click",function(e) {
+ e.preventDefault();
+ $(".search").show();
+ $(".routing").hide();
+ OSM.routing.close();
+ $("#map").off('dragend drop dragover');
+ $(".routing_marker").off('dragstart');
+ $(".query_wrapper.search [name=query]").focus();
+ });
+
+});