var MapBindedFormView = Class.create(FormView,{
  initialize: function($super, mapView) {
    $super();
    this.map = mapView.map;
    this.fromToOverlay = new FromToOverlay({ map: this.map,
                                             label: mapView.label});

    // initialize dep / arr icon if provided
    var fromLat = $('fromLat').value;
    var fromLng = $('fromLng').value;
    var fromString = $('fromString').value;
    if ( fromLat != "" && fromLng != "") {
      this.fromToOverlay.set( "fromLat", parseFloat( fromLat));
      this.fromToOverlay.set( "fromLng", parseFloat( fromLng));
      this.fromToOverlay.set( "fromName", fromString);
    }
    var toLat = $('toLat').value;
    var toLng = $('toLng').value;
    var toString = $('toString').value;
    if ( toLat != "" && toLng != "") {
      this.fromToOverlay.set( "toLat", parseFloat( toLat));
      this.fromToOverlay.set( "toLng", parseFloat( toLng));
      this.fromToOverlay.set( "toName", toString);
    }
  }

});

MapBindedFormView.addMethods({

  resetHiddenFileds: function($super,fromOrTo) {
    $super(fromOrTo);

    this.fromToOverlay.set( fromOrTo+"Lat", null);
    this.fromToOverlay.set( fromOrTo+"Lng", null);
    this.fromToOverlay.set( fromOrTo+"Name", null);
    this.fromToOverlay.draw();
  },

  setHiddenFields: function($super,input, li) {
    $super(input, li);

    var fromOrTo = this.inputFromOrTo(input);
    this.fromToOverlay.set( fromOrTo+"Lat", $(li).readAttribute("lat"));
    this.fromToOverlay.set( fromOrTo+"Lng", $(li).readAttribute("lng"));
    this.fromToOverlay.set( fromOrTo+"Name", $F(fromOrTo+"String"));
    this.fromToOverlay.draw();
    this.fromToOverlay.fitSelection();
  },
  
  setExtremity: function($super, way, stop_type, stop_id, stop_string, lat, lng) {
    $super(way, stop_type, stop_id, stop_string, lat, lng);

    var orientation = way == "departure" ? "from" : "to";
    this.fromToOverlay.set( orientation+"Lat", lat);
    this.fromToOverlay.set( orientation+"Lng", lng);
    this.fromToOverlay.set( orientation+"Name", stop_string);

    this.fromToOverlay.draw();
    this.fromToOverlay.fitSelection();
  }

});




