var map,toolbar,vectorlyr;var fullExtent;var popup;var gcalles,gsatelital,ghibrido,grelieve;var entidadSeleccionada,selector;var url_proxy_SE,proxy,readerSE,datosnomenclador,grillanomenclador;function addSeparator(toolbar){toolbar.add(new Ext.Toolbar.Spacer());toolbar.add(new Ext.Toolbar.Separator());toolbar.add(new Ext.Toolbar.Spacer());}
function cuandoCierroPopup(evt){selector.unselect(entidadSeleccionada);}
function identificar(feature){entidadSeleccionada=feature;var atributos='<table style="border-style:none;font-size:0.9em;font-family:Verdana">'+'<tr><td><b>Nombre: </b></td><td>'+feature.attributes.Nombre+'</td></tr>'+'<tr><td><b>Tipo: </b></td><td>'+feature.attributes.Tipo+'</td></tr>'+'<tr><td><b>Descripcion: </b></td><td>'+feature.attributes.Descripcion+'</td></tr>'+'<tr><td><b>Fuente: </b></td><td>'+feature.attributes.Fuente+'</td></tr>'+'<tr><td><b>Longitud: </b></td><td>'+feature.attributes.Longitud+'</td></tr>'+'<tr><td><b>Latitud: </b></td><td>'+feature.attributes.Latitud+'</td></tr>'+'</table>';popup=new OpenLayers.Popup.FramedCloud("featureAttibutes",feature.geometry.getBounds().getCenterLonLat(),null,atributos,null,true,cuandoCierroPopup);popup.opacity=0.5;map.addPopup(popup,true);}
function noIdentificar(evt){popup.destroy();popup=null;OpenLayers.Event.stop(evt);}
function initToolbarContent(){fullExtent=new OpenLayers.Control.Button({title:'Vista a toda la Argentina',trigger:function fullExtent(){map.setCenter(new OpenLayers.LonLat(-7040957.791694444,-5016574.79924676),4);return false;}});toolbar.addControl(fullExtent,{iconCls:'zoomfull',toggleGroup:'map'});addSeparator(toolbar);toolbar.addControl(new OpenLayers.Control.ZoomBox({title:'Zoom in: click in the map or use the left mouse button and drag to create a rectangle'}),{iconCls:'zoomin',toggleGroup:'map'});toolbar.addControl(new OpenLayers.Control.ZoomBox({out:true,title:'Zoom out: click in the map or use the left mouse button and drag to create a rectangle'}),{iconCls:'zoomout',toggleGroup:'map'});toolbar.addControl(new OpenLayers.Control.DragPan({isDefault:true,title:'Pan map: keep the left mouse button pressed and drag the map'}),{iconCls:'pan',toggleGroup:'map'});addSeparator(toolbar);var nav=new OpenLayers.Control.NavigationHistory();map.addControl(nav);nav.activate();toolbar.add(new Ext.Toolbar.Button({iconCls:'back',tooltip:'Vista anterior',handler:nav.previous.trigger}));toolbar.add(new Ext.Toolbar.Button({iconCls:'next',tooltip:'Vista siguiente',handler:nav.next.trigger}));addSeparator(toolbar);selector=new OpenLayers.Control.SelectFeature(vectorlyr,{hover:true,multiple:false,title:'Identificar',onSelect:identificar,onUnselect:noIdentificar});toolbar.addControl(selector,{iconCls:'identificar',toggleGroup:'map'});addSeparator(toolbar);toolbar.add(new Ext.Toolbar.Button({text:'Callejero',tooltip:'Ver mapa callejero',handler:function(){map.setBaseLayer(gcalles);}}));toolbar.add(new Ext.Toolbar.Button({text:'Satelital',tooltip:'Ver mapa satelital',handler:function(){map.setBaseLayer(gsatelite);}}));toolbar.add(new Ext.Toolbar.Button({text:'Hibrido',tooltip:'Ver mapa hibrido',handler:function(){map.setBaseLayer(ghibrido);}}));toolbar.add(new Ext.Toolbar.Button({text:'Relieve',tooltip:'Ver mapa fisico',handler:function(){map.setBaseLayer(grelieve);}}));addSeparator(toolbar);toolbar.add(new Ext.Toolbar.Button({text:'Limpiar mapa',tooltip:'Borra los bboxes del mapa',handler:function(){for(var i=vectorlyr.features.length-1;i>=0;i--){var entidad=vectorlyr.features[i];vectorlyr.destroyFeatures(entidad);}}}));toolbar.activate();}
function despuesLayoutExt(){map.addLayer(gcalles);map.addLayer(gsatelite);map.addLayer(grelieve);}
function mapInit(){OpenLayers.ProxyHost="../proxy/proxy.cgi?url=";mapfish.SERVER_BASE_URL='http://demo.mapfish.org/mapfishsample/1.0/';OpenLayers.IMAGE_RELOAD_ATTEMPTS=5;OpenLayers.Util.onImageLoadErrorColor='transparent';map=new OpenLayers.Map($('map'),{projection:new OpenLayers.Projection('EPSG:900913'),displayProjection:new OpenLayers.Projection('EPSG:4326'),units:'m',theme:null,maxResolution:0.5971642833709717,numZoomLevels:19,maxExtent:new OpenLayers.Bounds(-20037508.34,-20037508.34,20037508.34,20037508.34),controls:[new OpenLayers.Control.ScaleLine(),new OpenLayers.Control.KeyboardDefaults(),new OpenLayers.Control.PanZoomBar({zoomWordlIcon:false}),new OpenLayers.Control.Navigation({zoomWheelEnabled:true,handleRightClicks:false})]});ghibrido=new OpenLayers.Layer.Google('Hibrido',{sphericalMercator:true,type:G_HYBRID_MAP});ghibrido.setIsBaseLayer(true);map.addLayer(ghibrido);gcalles=new OpenLayers.Layer.Google('Callejero',{sphericalMercator:true,type:G_NORMAL_MAP});gsatelite=new OpenLayers.Layer.Google('Satelite',{sphericalMercator:true,type:G_SATELLITE_MAP});grelieve=new OpenLayers.Layer.Google('Relieve',{sphericalMercator:true,type:G_PHYSICAL_MAP});vectorlyr=new OpenLayers.Layer.Vector('Toponimos',{visibility:true,displayInLayerSwitcher:true});map.addLayer(vectorlyr);var estiloBase=new OpenLayers.Style({fillColor:'#8AC5FF',fillOpacity:0.6,strokeColor:'red',strokeOpacity:1,strokeWidth:2.0});var estiloSeleccion=new OpenLayers.Style({fillColor:'#FFFFC1',fillOpacity:0.4,strokeColor:'yellow',strokeOpacity:1,strokeWidth:2.0});vectorlyr.styleMap=new OpenLayers.StyleMap({'default':estiloBase,'select':estiloSeleccion});var verCoordenadas=new OpenLayers.Control.MousePosition({element:OpenLayers.Util.getElement('mouseposition'),prefix:'<b>Longitud: </b>',separator:'<b> Latitud: </b>',numDigits:5});map.addControl(verCoordenadas);toolbar=new mapfish.widgets.toolbar.Toolbar({map:map,configurable:false});map.setCenter(new OpenLayers.LonLat(-7040957.791694444,-5016574.79924676),4);var cajatextotopo=new Ext.form.TextField({id:'cajatextotopo',fieldLabel:'Lugar a buscar',width:250,vtype:'alphanum',allowBlank:true,blankText:'Se requieren al menos tres caracteres para buscar un lugar.',minLength:3,minLengthText:'Se requieren al menos tres caracteres para buscar un lugar.'});var boton=new Ext.Button({id:'botonbuscatopo',text:'Buscar',handler:function(){if(cajatextotopo.isValid()){var cadbusqtopo=Ext.getCmp('cajatextotopo').getValue();url_proxy_SE="../topojson/sincallback.php?busca="+cadbusqtopo;proxy=new Ext.data.HttpProxy({url:url_proxy_SE});readerSE=new Ext.data.JsonReader({totalProperty:'totalresultados',root:'topoPROSIGA'},[{name:'rank'},{name:'name',type:'string'},{name:'scope',type:'string'},{name:'description',type:'string'},{name:'minx',type:'float'},{name:'miny',type:'float'},{name:'maxx',type:'float'},{name:'maxy',type:'float'},{name:'custodian',type:'string'},{name:'lon',type:'float'},{name:'lat',type:'float'}]);datosnomenclador=new Ext.data.Store({proxy:proxy,reader:readerSE});datosnomenclador.load();var expansor=new Ext.grid.RowExpander({tpl:new Ext.Template('<hr>','<b>Tipo:</b> {tipo}<br>','<b>Detalles:</b> {descripcion}')});var expansor=new Ext.grid.RowExpander({tpl:new Ext.Template('<p style="font-family:Verdana"> {description} <br>Longitud: {lon}<br>Latitud: {lat}</p>')});function negrita(val){return'<b>'+val+'</b>';}
grillanomenclador=new Ext.grid.GridPanel({store:datosnomenclador,columns:[expansor,{id:'name',header:"Nombre",width:160,renderer:negrita,sortable:true,dataIndex:'name',tooltip:'Doble click en la fila hace zoom al lugar'},{header:"Tipo",width:75,sortable:true,autoextend:true,renderer:Ext.util.Format.uppercase,dataIndex:'scope',tooltip:'Doble click en la fila hace zoom al lugar'}],autoExpandColumn:'2',autoHeight:true,plugins:expansor,height:300,el:'resultados'});grillanomenclador.render();grillanomenclador.expand();grillanomenclador.on('rowdblclick',function(grid,rowIndex,e){var rec=grillanomenclador.getSelectionModel().getSelected();var bbox=new OpenLayers.Bounds(rec.get('minx'),rec.get('miny'),rec.get('maxx'),rec.get('maxy'));var bboxMercator=bbox.transform(new OpenLayers.Projection('EPSG:4326'),map.getProjectionObject());map.zoomToExtent(bboxMercator);var bboxFeature=new OpenLayers.Feature.Vector(bboxMercator.toGeometry(),{'Nombre':rec.get('name'),'Tipo':rec.get('scope'),'Descripcion':rec.get('description'),'Fuente':rec.get('custodian'),'Longitud':rec.get('lon'),'Latitud':rec.get('lat')});vectorlyr.addFeatures(bboxFeature);});}else{Ext.MessageBox.alert('Atenci&oacute;n','<span style="font-weight:bold;color:red">Debe escribir el nombre del lugar</span>');}}});var formularioNomencla=new Ext.form.FormPanel({renderTo:'busqueda',frame:true,labelAlign:'top',labelWidth:75,items:[cajatextotopo],buttons:[boton]});var mapPanel=new mapfish.widgets.MapComponent({region:'center',layout:'fit',border:false,margins:'0 0 0 5',map:map,tbar:toolbar,listeners:{afterlayout:despuesLayoutExt}});var viewport=new Ext.Viewport({layout:'border',items:[{region:'west',title:'Nomenclador PROSIGA',id:'west',width:300,collapsible:true,collapsed:true,split:true,minSize:220,maxSize:500,margins:'0 0 0 0',defaults:{border:true,frame:true},layout:'border',items:[{region:'north',id:'west-north',collapsible:false,autoHeight:true,contentEl:'busqueda'},{region:'center',id:'west-center',margins:'0 0 0 0',contentEl:'resultados',autoScroll:true,layout:'fit'},{region:'south',id:'west-south',title:'Coordenadas WGS84',collapsible:false,height:57,contentEl:'position'}]},{region:'center',id:'center-panel',layout:'border',boder:false,items:mapPanel}]});viewport.doLayout();initToolbarContent();Ext.get('loading').fadeOut({remove:true});Ext.getCmp('west').expand();}

