var map;
var foto;
//OpenLayers.IMAGE_RELOAD_ATTEMPTS = 5;
var format = 'image/png';
var zoom_maximo = 4;
var boxruta;
var paso = 0;
var identificador = 3;
var estilo_linea = {
        strokeColor: "#FF0000",
        strokeWidth: 2,
        strokeDashstyle: "solid",
        pointRadius: 2,
        pointerEvents: "visiblePainted"
    };
var layer_style = OpenLayers.Util.extend({}, OpenLayers.Feature.Vector.style['default']);
layer_style.fillOpacity = 0.2;
layer_style.graphicOpacity = 1;



function init(id){
	identificador = id;
	if (paso==1){map.destroy();}
	var bounds = new OpenLayers.Bounds(
            648447.999999999, 4821710.999999999,
            659492.999999999, 4825249.999999999
        );
	boxruta = new OpenLayers.Bounds(
            648491, 4821743,
            659471, 4825217
        );
	/*funciones para los controles de navegacion*/
  /*  OpenLayers.Control.CustomNavToolbar = OpenLayers.Class(OpenLayers.Control.Panel, {
	    initialize: function(options) {OpenLayers.Control.Panel.prototype.initialize.apply(this, [options]);
	        this.addControls([new OpenLayers.Control.Navigation(), new OpenLayers.Control.ZoomBox({alwaysZoom:true})]);
			this.displayClass = 'olControlNavToolbar'},draw: function() {var div = OpenLayers.Control.Panel.prototype.draw.apply(this, arguments);this.activateControl(this.controls[0]);return div;}});
    */OpenLayers.Control.ZoomOut = OpenLayers.Class(OpenLayers.Control, {
        type: OpenLayers.Control.TYPE_BUTTON,
        trigger: function(){if (zoom_maximo<map.getZoom()){this.map.zoomOut(); }},
			CLASS_NAME: "OpenLayers.Control.ZoomOut" });
    OpenLayers.Control.ZoomToMaxExtent = OpenLayers.Class(OpenLayers.Control, {
        type: OpenLayers.Control.TYPE_BUTTON,
        trigger: function() {if (this.map) {this.map.zoomToExtent(boxruta, true);}},
        CLASS_NAME: "OpenLayers.Control.ZoomToMaxExtent"  });
	 
         var options = {
        	 controls : [new OpenLayers.Control.PanPanel(),new OpenLayers.Control.ZoomPanel()/*,new OpenLayers.Control.CustomNavToolbar()*/],
             maxExtent: bounds,
             maxResolution: 43.14453125,
             projection: "EPSG:23029",
             units: 'm'
         };
         map = new OpenLayers.Map('map', options);
	 map.addControl(new OpenLayers.Control.LayerSwitcher());

     
         // setup tiled layer
         foto = new OpenLayers.Layer.WMS(
             "Orotfoto Ribadeo", "/geoserver/wms",
             {
                 layers: 'BaseRibadeo',
                 srs: 'EPSG:23029',
                 format: format,
                 tiled: 'true',
                 tilesOrigin : "648447.999999999,4821710.999999999"
             },
             {buffer: 0,
		  'displayInLayerSwitcher':false} 
         );
        var punto = new OpenLayers.Layer.WMS("Puntos", "http://82.98.132.249:8081/geoserver/wms",
        		{srs : 'EPSG:23029',
        	    layers : 'ribadeo:puntos',
				format : 'image/png',
				cql_filter : 'rutaid='+identificador,
				transparent : true,
				tiled: 'true'
			},{singleTile: false, ratio: 1} );
        var ruta = new OpenLayers.Layer.WMS("Ruta", "http://82.98.132.249:8081/geoserver/wms",
        		{srs : 'EPSG:23029',
        	    layers : 'ribadeo:ruta',
				format : 'image/png',
				cql_filter : 'rutaid='+identificador,
				transparent : true,
				tiled: 'true'
			},{singleTile: false, ratio: 1} );
        var bifurcaciones = new OpenLayers.Layer.WMS("Bifurcaciones", "http://82.98.132.249:8081/geoserver/wms",
        		{srs : 'EPSG:23029',
        	    layers : 'ribadeo:bifurcaciones',
				format : 'image/png',
				cql_filter : 'rutaid='+identificador,
				transparent : true,
				tiled: 'true'
			},{singleTile: false, ratio: 1} );
  	var ruas = new OpenLayers.Layer.WMS(
                    "Ruas", "http://82.98.132.249:8081/geoserver/wms",
                    {
                        srs: 'EPSG:23029',
                        layers: 'ribadeo:vruas',
				transparent : true,
                        format: 'image/png'
                    },
                    {singleTile: true, ratio: 1} 
                );
	ruas.setVisibility(false);
         
         map.addLayers([foto,punto,ruta,bifurcaciones,ruas]);
     paso=1;
   a();
     
}
function a(){
OpenLayers.loadURL('/geoserver/wfs?service=WFS&version=1.0.0&request=GetFeature&typename=ribadeo:puntos&CQL_FILTER=rutaid='+identificador+'&srsName=EPSG:23029', '', this, Respuesta);     
	
}
function Respuesta(transport){   
    if(transport.responseXML != null){
     var tmp = transport.responseXML.getElementsByTagName('gml:Box');
     if (tmp[0]!=null){
     var coorStr = tmp[0].childNodes[0].childNodes[0].data;
     var coorMin = coorStr.split(' ')[0];
     var coorMax = coorStr.split(' ')[1];
     boxruta = new OpenLayers.Bounds(coorMin.split(',')[0], coorMin.split(',')[1],coorMax.split(',')[0],coorMax.split(',')[1]);
	 map.zoomToExtent(boxruta, false);
	 
     }

    }
}


