/*==============================================================================
	MPK
    Mpk.RouteLayer class implementation

    Javascript library
    Require OpenLayers library
    $Id: RouteLayer.js 1233 2008-02-28 11:00:58Z mmanzato $
==============================================================================*/


// Mpk.RouteLayer class
Mpk.RouteLayer = OpenLayers.Class(
    OpenLayers.Layer.GML, {

    /**
     * {OpenLayers.Layer.Markers} The layer for route markers (nested layer)
     */
    markersLayer: null,
    
    /**
     * Constructor
     */
    initialize: function(name, url, options) {
    
        this.markersLayer = new OpenLayers.Layer.Markers(name, {
                displayInLayerSwitcher: false
            });

        options = {
                style: {
                        strokeColor: '#0000ff',
                        strokeWidth: 8,
                        strokeOpacity: 0.5
                    },
                ratio: 10,
                format: Mpk.RouteFormat,
                formatOptions: {
                    routeLayer: this
                }
            };
            
        //url += "?SRS=EPSG:41001";
        newArguments = new Array(name, url, options);
        OpenLayers.Layer.GML.prototype.initialize.apply(this, newArguments);

        options2 = {
                displayInLayerSwitcher: false
            };
    },
    
    /**
     * @param marker {Openlayers.Marker} Marker to be added to the route
     *               markers layer
     */
    addMarker: function(marker) {
        this.markersLayer.addMarker(marker);
    },

    /**
     * Destructor
     */
    destroy: function() {
        OpenLayers.Layer.GML.prototype.destroy.apply(this, arguments);
//        OpenLayers.Layer.Markers.prototype.destroy.apply(this, arguments);
    },
    
    /**
     * Set layer visibility
     */
    setVisibility: function(visible, noEvent) {
        OpenLayers.Layer.GML.prototype.setVisibility.apply(this, arguments);
        this.markersLayer.setVisibility(visible, noEvent);
    },

    /**
     * Set layer map object
     */
    setMap: function(map) {
        OpenLayers.Layer.GML.prototype.setMap.apply(this, arguments);
        map.addLayer(this.markersLayer);
    },

    // moveTo()
    moveTo: function(bounds, zoomChanged, dragging) {
        OpenLayers.Layer.GML.prototype.moveTo.apply(this, arguments);
        this.markersLayer.moveTo(bounds, zoomChanged, dragging);
    },

    // redraw()
    redraw: function() {
        OpenLayers.Layer.GML.prototype.redraw.apply(this);
        this.markersLayer.moveTo();
    },

    /** @final @type String */
    CLASS_NAME: "Mpk.RouteLayer"
});

/*==============================================================================
    End of file
==============================================================================*/

