 
  
var map;
var markers;
var Xpar = "";
var Ypar = "";
var Zpar = "";
var Cpar = "";
var Fpar = "";
var Tpar = "";
var consultaCoord=1;
var coordMax = new OpenLayers.Bounds(258000,4485000,536000,4752000);
var boxes;
var boxesSel;
var bEines;
var sf;
var vector;
var p23031 = new OpenLayers.Projection('EPSG:23031'); 
var p4326 = new OpenLayers.Projection("EPSG:4326");
var SRS = "EPSG:4326";
var markers;
var servidor="http://delta.icc.cat/cgi-bin/mapserv?map=/opt/idec/dades/rcc/";
var ruta=document.location.href;
if(ruta.indexOf('localhost')!=-1 || ruta.indexOf('doctorandreu')!=-1 ){
	servidor="http://doctorandreu.icc.local/cgi-bin/mapserv.exe?map=e:/usuaris/v.pascual/dades/rcc/";
	
	//servidor="http://localhost/cgi-bin/mapserv.exe?map=c:/temp/rcc/rcc.map&";
	}

//drawbox
 var dbbox = new OpenLayers.StyleMap({
	 "default": new OpenLayers.Style({
                fillOpacity: 0.2,fillColor: "#FFF8AF",strokeColor:"#FFF8AF",strokeWidth:3
            }),
            "select": new OpenLayers.Style({
           	 fillOpacity: 0.2,
                fillColor: "#FFF8AF",
                strokeColor:"#FFF8AF",
                strokeWidth:3
            }),
            
            "temporary": new OpenLayers.Style({
              	 fillOpacity: 0.2,
                 fillColor: "#FFF8AF",
                 strokeColor:"#FFF8AF",
                 strokeWidth:3
             })
        });
 
 
 var lookup = {
                'CT-1M': {fillOpacity: 0.3,fillColor: "#FDFF00",strokeColor:"#C964B9",strokeWidth:2},
                'MET-15': {fillOpacity: 0.3,fillColor: "#FDFF00",strokeColor:"#28002F",strokeWidth:2},
                'BT-5M': {fillOpacity: 0.3,fillColor: "#FDFF00",strokeColor:"#3258BF",strokeWidth:2},
                'OF-5M': {fillOpacity: 0.3,fillColor: "#FDFF00",strokeColor:"#0000FF",strokeWidth:2},
                'OI-5M': {fillOpacity: 0.3,fillColor: "#FDFF00",strokeColor:"#41E6F0",strokeWidth:2},
                'BT-25M': {fillOpacity: 0.3,fillColor: "#FDFF00",strokeColor:"#C15B57",strokeWidth:2},
                'OF-25M': {fillOpacity: 0.3,fillColor: "#FDFF00",strokeColor:"#FC4544",strokeWidth:2},
                'OI-25M': {fillOpacity: 0.3,fillColor: "#FDFF00",strokeColor:"#7F1725",strokeWidth:2},
                'OF-25C': {fillOpacity: 0.3,fillColor: "#FDFF00",strokeColor:"#7EAB91",strokeWidth:2},
                'OI-25C': {fillOpacity: 0.3,fillColor: "#FDFF00",strokeColor:"#7F1725",strokeWidth:2},
                'BT-50M': {fillOpacity: 0.3,fillColor: "#FDFF00",strokeColor:"#8655B3",strokeWidth:2}
            }

 
 //

 
 var stboxes = new OpenLayers.StyleMap({
     "default": new OpenLayers.Style({
    	 fillOpacity: 0.3,
         fillColor: "#FF7200",
         strokeColor:"#FF00E2",
         strokeWidth:4
     }),
     "select": new OpenLayers.Style({
    	 fillOpacity: 0.3,
         fillColor: "#FFDFDF",
         strokeColor:"#FF00E2",
         strokeWidth:4
     })
 });

 
  stboxes.addUniqueValueRules("default", "nik", lookup);
 
var selboxes = new OpenLayers.StyleMap({
     fillOpacity: 0.3,
     fillColor: "#FFF8AF",
     //strokeColor:"#FF00E2",
     strokeColor: "#FFF8AF",
     strokeWidth:4
 });
 
		
		OpenLayers.ImgPath = '/idecwebservices/share/javascript/OL/theme/default/img/';

		
		//loadTranslationTable("traduccions.i18n",lang); 
		 
	      OpenLayers.IMAGE_RELOAD_ATTEMPTS = 3;
	          OpenLayers.Util.onImageLoadErrorColor = "transparent";
	          
			  var bounds = new OpenLayers.Bounds(258000,4485000,536000,4752000); // Limits 250 000 arrodonits
	          //var resolutions = [1100,550,275,100,50,25,10,5,2,1,0.5]; 
	          var resolutions= [550,275,100,50,25,10,5,2,1,0.5,0.25];
	         
	          function init(){   
	                
	        // $T('body');
	        	  
	          var options = {
			   maxExtent: bounds,
	         
			    //maxExtent: bounds,
			   	//nuevo
			   	resolutions: [1100,550,275,100,50,25,10,5,2,1,0.5,0.25],
			   	//zoom: -1,
			   	//viejos
			   	//maxResolution: 1100,
			    units: 'm',
			    projection: p23031,
			    controls:[]
			    //numZoomLevels: 15
			};
	          	          
	            //var options = {projection: "EPSG:23031",units: "m",resolutions: resolutions,maxExtent:bounds};
	        map = new OpenLayers.Map('mapa', options);
	 			    	        
		    
	        
		      var bt50m = new rcc.WMS(
			   "Base topogrāfica de Catalunya 1:50 000 (BT-50M) v3.1 ", servidor+"RCC_BT-50M.map&",
			    {
				   layers: 'GML2',
				   format:"image/png",
				   exceptions:"application/vnd.ogc.se_xml",
				   bgcolor:'0xFFFFFF', transparent:'true'
				},
		        {keyWFS:'BT-50M',keyLegend:'<span class="bt50m">&nbsp;&nbsp;&nbsp;&nbsp;</span>',buffer:0, isBaseLayer: false,singleTile:true,opacity:0.7, visibility: false, group:"Āmbits i disponibilitat de les metadades"}
			  );
              
               var met15m = new rcc.WMS(
			   "Model d´Elevacions del Terreny de Catalunya 15 x 15 metres (MET-15) v2.0 ", servidor+"RCC_MET-15.map&",
			    {
				   layers: 'GML2',
				   format:"image/png",
				   exceptions:"application/vnd.ogc.se_xml",
				   bgcolor:'0xFFFFFF', transparent:'true'
				},
		        {keyWFS:'MET-15',buffer:0,keyLegend:'<span class="met15">&nbsp;&nbsp;&nbsp;&nbsp;</span>', isBaseLayer: false,singleTile:true,opacity:0.7, visibility: false, group:"Āmbits i disponibilitat de les metadades"}
			  );

		      var bt25m = new  rcc.WMS(
			   "Base topogrāfica de Catalunya 1:25 000 (BT-25M) v1.0 ", servidor+"RCC_BT-25M.map&",
			    {
				   layers: 'GML2',				   
				   format:"image/png",
				   exceptions:"application/vnd.ogc.se_xml",
				   bgcolor:'0xFFFFFF', transparent:'true'
				},
		        {keyWFS:'BT-25M',keyLegend:'<span class="bt25m">&nbsp;&nbsp;&nbsp;&nbsp;</span>',buffer:0, isBaseLayer: false,singleTile:true,opacity:0.7, visibility: false,
					group:"Āmbits i disponibilitat de les metadades"}
			  );

              var of25m = new  rcc.WMS(
			   "Ortofotomapa de Catalunya 1:25 000 (OF-25M) v6.0 ", servidor+"RCC_OF-25M.map&",
			    {
				   layers: 'GML2',				   
				   format:"image/png",
				   exceptions:"application/vnd.ogc.se_xml",
				   bgcolor:'0xFFFFFF', transparent:'true'
				},
		        {keyWFS:'OF-25M',buffer:0,keyLegend:'<span class="of25m">&nbsp;&nbsp;&nbsp;&nbsp;</span>', isBaseLayer: false,singleTile:true,opacity:0.7, visibility: false,
					group:"Āmbits i disponibilitat de les metadades"}
			  );
              
              var oi25m = new  rcc.WMS(
			   "Ortofoto infraroja de Catalunya 1:25 000 (OI-25M) v2.0 ", servidor+"RCC_OI-25M.map&",
			    {
				   layers: 'GML2',				   
				   format:"image/png",
				   exceptions:"application/vnd.ogc.se_xml",
				   bgcolor:'0xFFFFFF', transparent:'true'
				},
		        {keyWFS:'OI-25M',buffer:0,keyLegend:'<span class="oi25m">&nbsp;&nbsp;&nbsp;&nbsp;</span>', isBaseLayer: false,singleTile:true,opacity:0.7, visibility: false,
					group:"Āmbits i disponibilitat de les metadades"}
			  );
              
              
              
               var of25c = new  rcc.WMS(
			   "Ortofoto de Catalunya 1:2 500 (OF-25C) v3.3 ", servidor+"RCC_OF-25C.map&",
			    {
				   layers: 'GML2',				   
				   format:"image/png",
				   exceptions:"application/vnd.ogc.se_xml",
				   bgcolor:'0xFFFFFF', transparent:'true'
				},
		        {keyWFS:'OF-25C',buffer:0,keyLegend:'<span class="of25c">&nbsp;&nbsp;&nbsp;&nbsp;</span>', isBaseLayer: false,singleTile:true,opacity:0.7, visibility: false,
					group:"Āmbits i disponibilitat de les metadades"}
			  );
              
              var oi25c = new  rcc.WMS(
			   "Ortofoto infraroja de Catalunya 1:2 500 (OI-25C) v1.1 ", servidor+"RCC_OI-25C.map&",
			    {
				   layers: 'GML2',				   
				   format:"image/png",
				   exceptions:"application/vnd.ogc.se_xml",
				   bgcolor:'0xFFFFFF', transparent:'true'
				},
		        {keyWFS:'OI-25C',buffer:0,keyLegend:'<span class="oi25c">&nbsp;&nbsp;&nbsp;&nbsp;</span>', isBaseLayer: false,singleTile:true,opacity:0.7, visibility: false,
					group:"Āmbits i disponibilitat de les metadades"}
			  );
              
 	      //http://galileo.icc.cat:8399/arcgis/services/icc_ct1m_v_r/MapServer/WMSServer?LAYERS=0%2C1%2C3%2C4%2C5%2C6&FORMAT=image%2Fpng&EXCEPTIONS=application%2Fvnd.ogc.se_xml&TRANSPARENT=true&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&STYLES=&SRS=EPSG%3A23031&BBOX=360400,4561800,386000,4587400&WIDTH=256&HEIGHT=256
		      var ct1m = new rcc.WMS(
			   "Cartografia topogrāfica 1:1.000 (CT-1M) v2.1", "http://galileo.icc.cat:8399/arcgis/services/icc_ct1m_v_r/MapServer/WMSServer?",
			    {
				   layers: '1,3,4,5,6',				 
				   format:"image/png",
				   exceptions:"application/vnd.ogc.se_xml",
				   bgcolor:'0xFFFFFF', transparent:'true'
				},
		        {keyWFS:'CT-1M',buffer:0,keyLegend:'<span class="ct1m">&nbsp;&nbsp;&nbsp;&nbsp;</span>', isBaseLayer: false,singleTile:true,opacity:0.9, visibility: false, 
					group:"Āmbits i disponibilitat de les metadades"}
			  );

              
               

              
              
		      var bt5m = new rcc.WMS(
			 "Base topogrāfica de Catalunya 1:5 000 (BT-5M) v2.0", servidor+"RCC_BT-5M.map&",
			    {
				  
				   layers: 'GML2',				  
				   format:"image/png",
				   exceptions:"application/vnd.ogc.se_xml",
				   bgcolor:'0xFFFFFF', transparent:'true'
				},
		        {keyWFS:'BT-5M', reproject: false,keyLegend:'<span class="bt5m">&nbsp;&nbsp;&nbsp;&nbsp;</span>',buffer:0,singleTile:true,opacity:0.7, isBaseLayer: false, visibility: false,
					group:"Āmbits i disponibilitat de les metadades"}
			  );
			  
		      var of5m = new rcc.WMS(
		 			 "Ortofotomapa de Catalunya 1:5 000 (OF-5M) v5.0", servidor+"RCC_OF-5M.map&",
		 			    {
		 				  
		 				   layers: 'GML2',				  
		 				   format:"image/png",
		 				   exceptions:"application/vnd.ogc.se_xml",
		 				   bgcolor:'0xFFFFFF', transparent:'true'
		 				},
		 		        {keyWFS:'OF-5M',buffer:0,keyLegend:'<span class="of5m">&nbsp;&nbsp;&nbsp;&nbsp;</span>',singleTile:true,opacity:0.7, isBaseLayer: false, visibility: false, group:"Āmbits i disponibilitat de les metadades"}
		 			  );
		 			  
		       var oi5m = new rcc.WMS(
		 			 "Ortofoto infraroja de Catalunya 1:5 000 (OI-5M) v1.0", servidor+"RCC_OI-5M.map&",
		 			    {
		 				  
		 				   layers: 'GML2',				  
		 				   format:"image/png",
		 				   exceptions:"application/vnd.ogc.se_xml",
		 				   bgcolor:'0xFFFFFF', transparent:'true'
		 				},
		 		        {keyWFS:'OI-5M',keyLegend:'<span class="oi5m">&nbsp;&nbsp;&nbsp;&nbsp;</span>',buffer:0,singleTile:true,opacity:0.7, isBaseLayer: false, visibility: false,
		 					group:"Āmbits i disponibilitat de les metadades"}
		 			  );
		 			  
		  
	          //,displayInLayerSwitcher:false
			vector = new OpenLayers.Layer.Vector("dibuix", {styleMap:dbbox,displayInLayerSwitcher:false});
            markers = new OpenLayers.Layer.Markers( "marca",{displayInLayerSwitcher:false} );
				
            boxes  = new  OpenLayers.Layer.Vector( "Boxes", {styleMap:stboxes,displayInLayerSwitcher:false,visibility: true, rendererOptions: {zIndexing: true}});
            //boxesSel  = new OpenLayers.Layer.Vector( "BoxesSel", {styleMap:selboxes,displayInLayerSwitcher:false} );
            
           

           
          
	 var wms = new OpenLayers.Layer.WMS("topo",
		"http://sagitari.icc.cat/tilecache/tilecache.py?",
	    {layers: 'topo', format:"image/jpeg", exceptions:"application/vnd.ogc.se_xml"},
	    {buffer:0, transitionEffect:'resize','displayInLayerSwitcher':false});
	 
	 
	
	
	          
			  var layers = [wms,ct1m,of25c,oi25c,bt5m,of5m,oi5m,bt25m,of25m,oi25m,bt50m,met15m,markers, vector,boxes];
			 
		  
			  
			  var eventListeners = {"activate": this.controlActivated, scope:this};
	 		  //var measureOptions = {paneldiv: options.paneldiv, handlerOptions: {freehand: false, persist: true}, eventListeners: eventListeners};
	 		 //var modifyOptions = {eventListeners: eventListeners, mode: OpenLayers.Control.ModifyFeature.RESHAPE | OpenLayers.Control.ModifyFeature.DRAG};
	 
	   	    	

			
			 
			 
	     var overviewMapSize = new OpenLayers.Size(128, 123);
	    var genericMapOptions = {projection: "EPSG:23031", units: 'm', maxExtent: bounds};
		
		var imgRefe = "/ideLocal/visual/images/refe/xti.jpeg";
		
		var referencia = new OpenLayers.Layer.Image(
			    "Overview", imgRefe, bounds, overviewMapSize
		);
		
		var overviewOptions = {
			mapOptions: genericMapOptions,
			size: overviewMapSize,
			layers: [referencia]
		}

		// Hack: Mapa de referčncia inamovible
		var ovControl = new OpenLayers.Control.OverviewMap(overviewOptions);
		ovControl.isSuitableOverview = function() { return true; };
		
		bEines= new rcc.EditingToolbar(vector);
		
	    map.addControl(ovControl);
	    map.addLayers(layers);    
		map.addControl( new OpenLayers.Control.PanZoom());  
		map.addControl( new OpenLayers.Control.Attribution());
		map.addControl( new OpenLayers.Control.Navigation());
		map.addControl(bEines);
		
		var click = new rcc.Click();
        map.addControl(click);
        click.activate();

		
	    map.addControl( new rcc.LayerSwitcher({'div':OpenLayers.Util.getElement('panel'), 'activeColor':'#FFFFFF'}));

		map.zoomTo(1);
		
		
$('lResultats').style.display='none';

		
}	

function  trans23031To4326(x0,y0,x1,y1){
                    var point1 = new OpenLayers.LonLat(x0, y0); 
				    point1 = point1.transform(p23031,p4326);
					var point2 = new OpenLayers.LonLat(x1, y1); 
				    point2 = point2.transform(p23031,p4326);
				    var mbbox = new OpenLayers.Bounds(point1.lon, point1.lat, point2.lon, point2.lat);
                    return mbbox;

}	

function trans4326To23031 (x0,y0,x1,y1){
                    var point1 = new OpenLayers.LonLat(x0, y0); 
				    point1 = point1.transform(p4326,p23031);
					var point2 = new OpenLayers.LonLat(x1, y1); 
				    point2 = point2.transform(p4326,p23031);
                   
				    var mbbox = new OpenLayers.Bounds(point1.lon, point1.lat, point2.lon, point2.lat);
                    return mbbox;

}	

function xurroToBounds(xurro,epsg){

    var bounds;
    var bbox=new Object();
    
    xurro=trim(xurro);
    if(xurro.indexOf(" ")!=-1){xurro=xurro.replace(" ",",");}
   var xurros=new Array();
      
    
  xurros=xurro.split(",");
  
    
        bbox.x0=trim(xurros[0]);
        bbox.y0=xurros[1];
        bbox.x1=xurros[2];
        bbox.y1=xurros[3];
      
        if(epsg=="4326"){
            bounds=trans23031To4326(bbox.x0,bbox.y0,bbox.x1,bbox.y1);
        }else if (epsg=="23031"){
        var cc=bbox.x0;
           var pos=cc.indexOf('.');
        
           if(pos > 3 || pos==-1){ //no val tranformacio
           
           bounds=new OpenLayers.Bounds(bbox.x0,bbox.y0,bbox.x1,bbox.y1);
           }else{
          
        	bounds=trans4326To23031(bbox.x0,bbox.y0,bbox.x1,bbox.y1);
            }
        }else{
            bounds=new OpenLayers.Bounds(bbox.x0,bbox.y0,bbox.x1,bbox.y1);
        }

return bounds;

}

function onFeatureSelect(feature){

	var ia=feature.attributes.ia;
	
	sf.unselectAll();
	sf.select(feature);
	
var ob=splitX(ia,'#');
	
    ia="#"+ob[1]+".";
	
	jQuery(oTable.fnSettings().aoData).each(function (){
		jQuery(this.nTr).removeClass('row_selected');
	});
	

	var aTrs = oTable.fnGetNodes();
	
	//oTable.fnSettings().aiDisplay	
   
     for ( var i=0 ; i < aTrs.length ; i++ ){
     
      var dd=oTable.fnGetData(i);
      
      var ii=dd[6]+".";
    
      	if ( ii.indexOf(ia)!=-1 ){
        
       		
			jQuery(aTrs[i]).addClass('row_selected');
            
            
           //oTable.fnUpdate(string,i,tr o num col 7, true);
          // var upd="0"+dd[7];
           //alert(1);
           //console.info( oTable.fnUpdate(upd,i,7, true));
         
	}
      
    
    }
	/*
    for ( var i=0 ; i<aTrs.length ; i++ ){
    
		var ee=Object.values(aTrs[i]);
		     
		for ( var j=20 ; j< 26 ; j++ ){
			
			var ii;			
			
			ii=ee.join(''); 	
		
		if ( ii.indexOf(ia)!=-1 ){
        
        
		
			jQuery(aTrs[i]).addClass('row_selected');
            
            
           // oTable.fnUpdate(string,i,tr o num col 7, true);
         
	}
	}
    aTrs="";
	}

*/

}
function netejaCapa(capa){

if(capa=="boxes"){

	
if(boxes){

         
                        sf=map.getControlsByClass('OpenLayers.Control.SelectFeature');
                      
                        for(k=0; k < sf.length;k++){
                        	map.removeControl(sf[k]);
                        }
                       
                        if(map.getLayersByName('Boxes')){
                        	
                        	map.removeLayer(boxes,false);
                        }
                        
                       
                       boxes  = new OpenLayers.Layer.Vector( "Boxes", {styleMap:stboxes,displayInLayerSwitcher:false,visibility: true} );
                        map.addLayer(boxes);
                       
                       
                      sf = new OpenLayers.Control.SelectFeature(boxes,{clickFeature: onFeatureSelect, multiple: false, hover: false});

                        map.addControl(sf);
                        sf.activate();
                        
                        }
  }                    



if(capa=="vector"){

	//if(vector){

 if(map.getLayersByName('dibuix')){map.removeLayer(vector,false); }
	                        
	                       
	                        vector = new OpenLayers.Layer.Vector("dibuix", {styleMap:dbbox,displayInLayerSwitcher:false});
	                        map.addLayer(vector);
	                       
	                 
	                        
	                       // }
	
	
	
	
	
	
	  }      


if(capa=="marca"){

	// Es detecta si s'ha creat la marca
	var layerMarked = map.getLayersByName("marca")[0];
	// Si marca creada, s'elimina.
	if(layerMarked != null) layerMarked.destroy();

	var markers = new OpenLayers.Layer.Markers( "marca",{displayInLayerSwitcher:false} );
	map.addLayer(markers);
	  }      






}





function obteCapesActives(){
	var cape = new Array();
	for (var i=0; i < map.layers.length; i++) {
		var layer = map.layers[i];
		
		if (layer.getVisibility()){
			if (layer.CLASS_NAME == "rcc.WMS"){
				
				cape.push(layer.keyWFS);
				
			}
			}
			}
	
	return cape;
	
}


function activaCapesMapa(nick){
	for (var i=0; i < map.layers.length; i++) {
		var layer = map.layers[i];
		
		//if (!layer.getVisibility()){
			if (layer.CLASS_NAME == "rcc.WMS"){
			var kk=layer.keyWFS;
           
				if (kk.contains(nick)){
					
						if (!layer.getVisibility()){
								
									map.layers[i].setVisibility(true);
									if(document.all){
										var dd=map.getExtent();
										map.zoomToExtent(dd);
									}
									//alert(1);
						}else{
							map.layers[i].setVisibility(false);
						}
				}else{
				map.layers[i].setVisibility(false);
				}
			}
			}
	//alert(2);
	//window.status="capaactiva";
}

function netejaMapa(){
	
	netejaCapa("boxes");
	netejaCapa("marca");
	netejaCapa("vector");
	map.zoomToExtent(coordMax);
	map.zoomTo(1);
}
