Ext.namespace("amografik");amografik.layout=(function(){var getHeader=function(){return{border:false,contentEl:'header'};};var getFooter=function(){return{border:false,contentEl:'footer'};};var getPrintPanel=function(){return{title:OpenLayers.i18n('Print'),xtype:'print-simple',id:'printpanel',configUrl:api.baseConfig.printUrl+'/info.json',serviceParams:{locale:'de_CH'},listeners:{'render':function(e){this.layerTree=Ext.getCmp('layertree');}},map:map,formConfig:{labelAlign:'top',defaults:{anchor:'100%'},items:[{xtype:'textfield',fieldLabel:OpenLayers.i18n('mf.print.mapTitle'),name:'mapTitle',autoCreate:{tag:"input",type:"text",size:"20",maxLength:"60",autocomplete:"off"},value:''},{xtype:'textarea',fieldLabel:OpenLayers.i18n('mf.print.comment'),name:'comment',height:75,value:'',autoCreate:{tag:"textarea",style:"width:100px;height:60px;",autocomplete:"off",wrap:'off'},enableKeyEvents:true},{xtype:'hidden',name:'lang'+OpenLayers.Lang.getCode(),value:true}]}};};var getLayerTreePanel=function(){return api.createLayerTree({title:OpenLayers.i18n('Layer Tree')});};var getCenteringPanel=function(){return{title:OpenLayers.i18n('Locate by coordinates'),items:{labelAlign:'top',xtype:'coordsrecenter',border:false,showCenter:true,cls:'coordrecenter',defaultZoom:8,map:map}};};var getSearchBoxPanel=function(){return{title:OpenLayers.i18n('Search'),items:[Ext.apply(api.createSearchBox({ref:api.baseConfig.ref}),{})]};};var getLocatePanel=function(){var resultTplSn=new Ext.XTemplate('<tpl for=".">','<div class="x-combo-list-item">','<h3><span>{name}</span></h3>',' ({kanton}) - {gemname}','</div>','</tpl>');var resultTplCnt=new Ext.XTemplate('<tpl for=".">','<div class="x-combo-list-item">','<h3><span>{name} - {kuerzel}</span></h3>','</div>','</tpl>');var resultTplCities=new Ext.XTemplate('<tpl for=".">','<div class="x-combo-list-item">','<h3><span>{gemname}</span></h3>','</div>','</tpl>');var resultTplNPA=new Ext.XTemplate('<tpl for=".">','<div class="x-combo-list-item">','<h3><span>{plz} - {bfs_name_h}</span></h3>','</div>','</tpl>');return{title:OpenLayers.i18n('Locate'),labelAlign:'top',xtype:'wsrecenter',border:false,cls:'wsrecenter',defaultZoom:4,defaults:{anchor:'100%'},map:map,wsRecenterServices:[{id:'swissnames',label:OpenLayers.i18n('Swissnames'),url:api.baseConfig.wsRecenterSwissnamesUrl,urlSuffixGeo:'/features',paramIdGeo:'ids',scaleField:'objectorig',urlSuffixList:'/properties',ref:api.baseConfig.locateRef,paramList:'return=id,gemname,name,kanton,objectorig',listFields:['id','name','gemname','kanton','objectorig'],tpl:resultTplSn.compile(),isDefault:true},{id:'cantons',label:OpenLayers.i18n('Cantons'),url:api.baseConfig.wsRecenterCantonUrl,urlSuffixGeo:'/features',paramIdGeo:'ids',urlSuffixList:'/properties',ref:api.baseConfig.locateRef,paramList:'return=id,name,kuerzel',listFields:['id','name','kuerzel'],tpl:resultTplCnt.compile()},{id:'cities',label:OpenLayers.i18n('Cities'),url:api.baseConfig.wsRecenterCommunesUrl,urlSuffixGeo:'/features',paramIdGeo:'ids',urlSuffixList:'/properties',ref:api.baseConfig.locateRef,displayField:'gemname',paramList:'return=id,gemname',tpl:resultTplCities.compile(),listFields:['id','gemname']},{id:'NPA',label:OpenLayers.i18n('NPA'),url:api.baseConfig.wsRecenterPostalcodesUrl,urlSuffixGeo:'/features',paramIdGeo:'ids',urlSuffixList:'/properties',ref:api.baseConfig.locateRef,displayField:'plz',paramList:'return=id,plz,bfs_name_h',tpl:resultTplNPA.compile(),listFields:['id','bfs_name_h','plz']}]};};var getOverviewMapPanel=function(){return{title:OpenLayers.i18n('Overview Map'),contentEl:'overviewmap'};};var getApplicationInfo=function(){return{margins:'5 0 0 5',border:false,minHeight:200,width:295,html:'<div id="shortAdvice">'+OpenLayers.i18n("GetFeatureInfo help text",{getfeatureinfo_img_src:'<img src="mfbase/mapfish/img/info.png" />'})+'</div>'};};var getAccordion=function(){return{width:295,collapsible:true,collapseMode:'mini',animCollapse:false,split:true,layout:'accordion',border:false,minSize:100,maxSize:380,margins:'5 0 0 5',layoutConfig:{animate:true},defaults:{border:false,frame:false,autoHeight:true,width:'auto',bodyStyle:'padding: 3px;',map:map},items:[getLayerTreePanel(),getPrintPanel(),getOverviewMapPanel()]};};var getSidePanel=function(){return{width:300,border:false,margins:'5 0 0 5',layoutConfig:{animate:true},items:[Ext.apply(getAccordion()),Ext.apply(getApplicationInfo())]};};var getMapPanel=function(){return Ext.apply(api.createMapPanel(),{margins:'5 5 0 0',tbar:api.createToolbar(),bbar:new Ext.BoxComponent({el:'mapinfo'})});};var getQueryResultsPanel=function(){return{id:'queryResults',height:200,split:true,collapsible:true,collapsed:true,collapseMode:'mini',animCollapse:false,border:false};};var getPayloadPanel=function(){return{layout:'border',region:'center',border:false,margins:'0 0 0 0',items:[Ext.apply(getMapPanel(),{region:'center'})]};};return{init:function(){Ext.QuickTips.init();api=new amografik.API({isMainApp:true});map=api.createMap();new Ext.Viewport({layout:"border",items:[Ext.apply(getHeader(),{region:'north'}),Ext.apply(getPayloadPanel(),{region:'center'}),Ext.apply(getSidePanel(),{region:'west'}),Ext.apply(getFooter(),{region:'south'})]});}};})();Ext.onReady(amografik.layout.init);Ext.namespace('mapfish.widgets','mapfish.widgets.recenter');mapfish.widgets.recenter.Ws=function(config){Ext.apply(this,config);mapfish.widgets.recenter.Ws.superclass.constructor.call(this);};Ext.extend(mapfish.widgets.recenter.Ws,mapfish.widgets.recenter.Base,{wsRecenterstore:null,wsRecenterServicestore:null,wsRecenterCurrentService:null,errorMsg:OpenLayers.i18n('mf.recenter.ws.error'),currentWsRecenterCombo:null,resultTpl:null,initComponent:function(){Ext.form.TriggerField.override({afterRender:function(){Ext.form.TriggerField.superclass.afterRender.call(this);var y;if(Ext.isIE&&!this.hideTrigger&&this.el.getY()!=(y=this.trigger.getY())){this.el.position();this.el.setY(y);}}});this.resultTpl=new Ext.XTemplate('<tpl for=".">','<div class="x-combo-list-item">','<h3><span>{name}</span></h3>','</div>','</tpl>');mapfish.widgets.recenter.Ws.superclass.initComponent.apply(this);},addItems:function(){this.removeAll();this.initWsRecenterService();this.initWsRecenterServicestore();this.initWsRecenterstore();if(this.wsRecenterServices.length>1){var wsRecenterServices=new Ext.form.ComboBox({fieldLabel:OpenLayers.i18n('mf.recenter.ws.service'),name:'wsRecenterServices',anchor:'100%',value:'',displayField:'label',valueField:'id',store:this.wsRecenterServicestore,mode:'local',listeners:{select:function(combo,record,index){this.onWsRecenterServicesSelect(combo);},scope:this},triggerAction:'all',forceSelection:true,editable:false});wsRecenterServices.setValue(this.wsRecenterCurrentService.id);this.add(wsRecenterServices);}
this.currentWsRecenterCombo=new Ext.form.ComboBox({fieldLabel:OpenLayers.i18n(this.wsRecenterCurrentService.label),name:this.wsRecenterCurrentService.name||'wsRecenter',value:'',tpl:this.wsRecenterCurrentService.tpl||this.resultTpl,displayField:this.wsRecenterCurrentService.displayField||'name',mode:'remote',minChars:2,typeAhead:true,valueField:'id',store:this.wsRecenterstore,listeners:{select:function(combo,record,index){this.onWsRecenterSelect(combo);},specialkey:function(combo,event){if(event.getKey()==event.ENTER){this.onWsRecenterSelect(combo);}},scope:this},forceSelection:true,hideTrigger:true});this.add(this.currentWsRecenterCombo);if(this.scales){this.addScaleCombo('Ws');}},onWsRecenterServicesSelect:function(combo){this.setWsRecenterService(combo.value);},onWsRecenterSelect:function(combo){if(combo.value.length==0){return;}
var scaleField=this.wsRecenterCurrentService.scaleField||null;var url=this.wsRecenterCurrentService.url;url+=this.wsRecenterCurrentService.urlSuffixGeo+'?';url+=this.wsRecenterCurrentService.paramIdGeo+'='+combo.value;url+='&ref='+this.wsRecenterCurrentService.ref;url+=(scaleField)?'&scalefield='+(scaleField):'';OpenLayers.Request.GET({url:url,success:function(response){var values=this.getForm().getValues();var zoom;var f=new OpenLayers.Format.GeoJSON();var feature=f.read(response.responseText)[0];if(!feature){return;}
if(feature.geometry.CLASS_NAME=="OpenLayers.Geometry.Polygon"&&!!feature.geometry.getBounds()){this.recenterOnBbox(feature.geometry.getBounds());}else if(feature.geometry.CLASS_NAME=="OpenLayers.Geometry.Point"&&!!feature.geometry.x&&!!feature.geometry.y){if(this.scales&&values.scaleValue){var resolution=OpenLayers.Util.getResolutionFromScale(values.scaleValue,this.map.units);zoom=this.map.getZoomForResolution(resolution);}
if(scaleField){var scaleValue=feature.attributes[scaleField];var resolution=OpenLayers.Util.getResolutionFromScale(scaleValue,this.map.units);zoom=this.map.getZoomForResolution(resolution);}
this.recenterOnCoords(feature.geometry.x,feature.geometry.y,zoom);}},failure:function(response){var msg=this.errorMsg+"<br /><br />"+url+"<br /><br />";msg+=response.status+"<br />"+response.statusText;this.showError(msg);},scope:this});},initWsRecenterService:function(){for(var i=0,len=this.wsRecenterServices.length;i<len;i++){if(this.wsRecenterServices[i].isDefault){this.wsRecenterCurrentService=this.wsRecenterServices[i];}}},setWsRecenterService:function(serviceId){for(var i=0;i<this.wsRecenterServices.length;i++){if(this.wsRecenterServices[i].id==serviceId){this.wsRecenterCurrentService=this.wsRecenterServices[i];}}
if(this.currentWsRecenterCombo.view){this.currentWsRecenterCombo.view.tpl=this.wsRecenterCurrentService.tpl||this.resultTpl;this.currentWsRecenterCombo.view.refresh();}else{this.currentWsRecenterCombo.tpl=this.wsRecenterCurrentService.tpl||this.resultTpl;}
this.currentWsRecenterCombo.displayField=this.wsRecenterCurrentService.displayField;var url=this.wsRecenterCurrentService.url;url+=this.wsRecenterCurrentService.urlSuffixList+'?';url+=this.wsRecenterCurrentService.paramList;if(this.wsRecenterCurrentService.ref)
url+='&ref='+this.wsRecenterCurrentService.ref;if(this.wsRecenterCurrentService.scaleField)
url+='&scalefield='+this.wsRecenterCurrentService.scaleField;this.wsRecenterstore.proxy.conn.url=url;var reader=Ext.data.Record.create(this.wsRecenterCurrentService.listFields);this.wsRecenterstore.reader=new Ext.data.JsonReader({root:"results",id:"id"},reader);this.wsRecenterstore.load();var combo=this.currentWsRecenterCombo.getEl();var newLabel=OpenLayers.i18n(this.wsRecenterCurrentService.label);combo.up('.x-form-item').down('.x-form-item-label').update(newLabel+OpenLayers.i18n(':'));},initWsRecenterstore:function(){var ref=(this.wsRecenterCurrentService.ref)?'&ref='+
this.wsRecenterCurrentService.ref:'';var scaleField=(this.wsRecenterCurrentService.scaleField)?'&scalefield='+
this.wsRecenterCurrentService.scaleField:'';this.wsRecenterstore=new Ext.data.JsonStore({url:this.wsRecenterCurrentService.url
+this.wsRecenterCurrentService.urlSuffixList
+'?'+this.wsRecenterCurrentService.paramList
+ref
+scaleField,root:"results",id:"id",fields:this.wsRecenterCurrentService.listFields,listeners:{loadexception:function(proxy,options,response){if(response.status<200||response.status>=300){var msg=this.errorMsg+"<br /><br />";msg+=this.wsRecenterstore.proxy.conn.url+"<br /><br />"
msg+=response.status+"<br />"+response.statusText;this.showError(msg);}},scope:this}});},initWsRecenterServicestore:function(){var myData=[];for(var i=0;i<this.wsRecenterServices.length;i++){myData[i]=[this.wsRecenterServices[i].id,this.wsRecenterServices[i].label];}
this.wsRecenterServicestore=new Ext.data.SimpleStore({fields:['id','label'],data:myData});},wsDomain:function(){var str=this.wsRecenterUrl;var s=str.indexOf('//');var end=str.indexOf('/',s+2);var d=str.substring(s+2,end);return d;}});Ext.reg('wsrecenter',mapfish.widgets.recenter.Ws);
