- var endpoints = [
- Endpoint($("input[name='route_from']"), OSM.MARKER_GREEN),
- Endpoint($("input[name='route_to']"), OSM.MARKER_RED)
- ];
-
- var expiry = new Date();
- expiry.setYear(expiry.getFullYear() + 10);
-
- function Endpoint(input, iconUrl) {
- var endpoint = {};
-
- endpoint.marker = L.marker([0, 0], {
- icon: L.icon({
- iconUrl: iconUrl,
- iconSize: [25, 41],
- iconAnchor: [12, 41],
- popupAnchor: [1, -34],
- shadowUrl: OSM.MARKER_SHADOW,
- shadowSize: [41, 41]
- }),
- draggable: true,
- autoPan: true
- });
-
- endpoint.marker.on('drag dragend', function (e) {
- var dragging = (e.type === 'drag');
- if (dragging && !chosenEngine.draggable) return;
- if (dragging && awaitingRoute) return;
- endpoint.setLatLng(e.target.getLatLng());
- if (map.hasLayer(polyline)) {
- getRoute(false, !dragging);
- }
- });
-
- input.on("keydown", function() {
- input.removeClass("error");
- });
-
- input.on("change", function (e) {
- awaitingGeocode = true;
-
- // make text the same in both text boxes
- var value = e.target.value;
- endpoint.setValue(value);
- });
-
- endpoint.setValue = function(value, latlng) {
- endpoint.value = value;
- delete endpoint.latlng;
- input.removeClass("error");
- input.val(value);
-
- if (latlng) {
- endpoint.setLatLng(latlng);
- } else {
- endpoint.getGeocode();
- }
- };
-
- endpoint.getGeocode = function() {
- // if no one has entered a value yet, then we can't geocode, so don't
- // even try.
- if (!endpoint.value) {
- return;
- }