Ext.namespace("FFA");Ext.namespace("FFA.dialog");Ext.namespace("FFA.tree");Ext.namespace("FFA.toolbar");function isObject(a){return a.constructor.toString().indexOf("Object")==-1?false:true}function isString(a){return a.constructor.toString().indexOf("String")==-1?false:true}function isGlobalObjectDefined(a){return typeof window[a]!="undefined"}function Clone(){}function clone(a){Clone.prototype=a;return new Clone}function ajaxJSONRequest(d,b,a,c){Ext.Ajax.request({url:d,callback:handleJSONAsyncLoad,succCallback:b,errorCallback:a,options:c})}function handleJSONAsyncLoad(a,f,b){if(f){var d="text/plain",c="application/json";if(b.getResponseHeader("Content-Type").substring(0,d.length).toLowerCase()==d){a.errorCallback&&a.errorCallback("Der skete en fejl p\u00e5 server: "+b.responseText,"SERVER");return}if(b.getResponseHeader("Content-Type").substring(0,c.length).toLowerCase()==c){var e=Ext.util.JSON.decode(b.responseText);e&&a.succCallback(e,a)}else a.errorCallback&&a.errorCallback("Forkert data modtaget. Forventer mimetype "+c+", men modtog: "+b.getResponseHeader("Content-Type"),"CONTENTTYPE")}else a.errorCallback&&a.errorCallback("Kunne ikke hente data.... Pr\u00f8v at genindl\u00e6se siden (F5), ellers kontakt administrator","NETWORK")};FFA.dialog.AboutDialog=function(){};FFA.dialog.AboutDialog=Ext.extend(Ext.Window,{id:"about-win",el:"divDialog_About",layout:"fit",width:550,height:400,closeAction:"hide",bodyCssClass:"helpWin",plain:true,items:null,autoLoad:{url:"about.htm"},initComponent:function(){var a=this;Ext.apply(this,{buttons:[{text:"Luk",handler:function(){a.hide()}}]});FFA.dialog.AboutDialog.superclass.initComponent.apply(this,arguments)}});var addressSearchWin=null;FFA.dialog.AddressDialog=function(){};FFA.dialog.AddressDialog=Ext.extend(Ext.Window,{id:"divAdresseOpslag",applyTo:"divDialog_AdresseOpslag",closeAction:"hide",bodyCssClass:"popupBody",plain:true,title:"Adresse opslag",resizable:false,collapsible:true,collapsedCls:"adresseCollapsible",width:"661px",initComponent:function(){var a=this;Ext.apply(this,{items:[{id:"AdrInnerTable",layout:"table",width:"100%",height:"100%",border:false,layoutConfig:{columns:3},items:[{border:false,html:"Vejnavn og husnummer",width:"341px",height:"15px"},{border:false,html:"By",width:"157px",height:"15px"},{border:false,html:"&nbsp;",height:"15px",width:"90px"},{border:false,id:"inputVej",xtype:"textfield",maxLength:52,width:"344px"},{border:false,id:"inputBy",xtype:"textfield",maxLength:21,width:"159px"},{border:false,layout:"hbox",align:"center",items:[{xtype:"button",text:"S\u00f8g",width:"40px",listeners:{click:AdrDoFind}},{xtype:"button",text:"Ryd",style:"margin-left: 6px",width:"44px",listeners:{click:AdrClear}}]},{border:false,colspan:2,html:'<select id="selectVej" style="VISIBILITY: hidden;width:100%" size="5"></select>'},{border:false,html:"&nbsp;"},{colspan:2,border:false,items:[{border:false,id:"DivText",html:"&nbsp;"},{border:false,id:"ErrText",html:"&nbsp;",cls:"red"}]},{border:false,border:false,html:"&nbsp;"}]}],buttonAlign:"right",buttons:[{text:"Luk",handler:function(){a.hide()}}]});FFA.dialog.AddressDialog.superclass.initComponent.apply(this,arguments)},showWin:function(b){AdrClear();this.show(b);var a=Ext.getCmp("inputVej");a&&a.focus(false,200)},afterRender:function(){FFA.dialog.AddressDialog.superclass.afterRender.apply(this,arguments);SetUpAddressSearch()}});FFA.dialog.SettingsDialog=function(){};FFA.dialog.SettingsDialog=Ext.extend(Ext.Window,{id:"divSettings",applyTo:"divDialog_Settings",closeAction:"hide",bodyCssClass:"popupBody",plain:true,title:"Indstillinger",resizable:false,collapsible:true,collapsedCls:"settingsCollapsible",width:"450px",buttonAlign:"right",initComponent:function(){var a=this;Ext.apply(this,{buttons:[{text:"Luk",handler:function(){a.hide()}}],items:[{xtype:"panel",id:"divSettingsInner",border:false,cls:"settInner",items:[{html:"Lagstyring",cls:"settHeading",border:false},{border:false,cls:"settItems",items:[new Ext.form.Checkbox({id:"multipleLayers",cls:"checkbox",value:20,boxLabel:"Vis flere fotoserier (max 20)",helpText:"Hvis dette er valgt, kan der v\u00e6lges flere historiske lag ad gangen. <br /><b>Bem\u00e6rk:</b> Hvis der v\u00e6lges mere end et lag, s\u00e5 er det ikke l\u00e6ngere muligt at bruge overbl\u00e6ndings funktionen. Hvis der v\u00e6lges for mange lag p\u00e5 samme tid, kan det p\u00e5virke hastigheden af siden.",listeners:{check:function(b,a){viewport.mapCtrl.removeExceedHistSelectedLayers(a?b.value:1)}},afterRender:function(){Ext.QuickTips.register({target:"multipleLayers",text:this.helpText,enabled:true});Ext.form.Checkbox.superclass.afterRender.call(this)}}),new Ext.form.Checkbox({id:"layersInTreeStructure",cls:"checkbox",value:false,boxLabel:"Vis lag i tr\u00e6struktur",helpText:"Deaktivere opdateringen af synlige historiske lag, n\u00e5r der navigeres rundt i kortet..",listeners:{check:function(e,b){if(b)viewport.mapCtrl.getPrimaryMap().removeVisibleLayersEvent();else viewport.mapCtrl.getPrimaryMap().addVisibleLayersEvent();var c=Ext.getCmp("chkUpdateVisibleLayers");c&&c.setDisabled(b);var a=viewport.tree;if(a){var d=b?a.treeAvailStyles.StyleTree:a.treeAvailStyles.StyleFlatList;node=a.getRootNode();a.updateTreeLayout(node,d)}}},afterRender:function(){Ext.QuickTips.register({target:"layersInTreeStructure",text:this.helpText,enabled:true});Ext.form.Checkbox.superclass.afterRender.call(this)}}),new Ext.form.Checkbox({id:"chkUpdateVisibleLayers",cls:"checkbox",checked:true,boxLabel:"Vis kun historiske lag, der er synlige inden for det valgte omr\u00e5de",listeners:{check:function(c,b){if(b)viewport.mapCtrl.getPrimaryMap().addVisibleLayersEvent();else{viewport.mapCtrl.getPrimaryMap().removeVisibleLayersEvent();var a=viewport.tree;if(a){node=a.getRootNode();a.updateTreeLayout(node,a.treeStyle)}}}}})]},{border:false,cls:"settSpacer",html:"<div class='hr'><hr /></div>"},{html:"Generelt",cls:"settHeading",border:false},{border:false,cls:"settItems",items:[new Ext.form.Checkbox({id:"showCoords",cls:"checkbox",value:20,boxLabel:"Vis koordinater",listeners:{check:function(b,a){if(a)Ext.getCmp("coordview").show();else Ext.getCmp("coordview").hide()}}})]}]}]});FFA.dialog.SettingsDialog.superclass.initComponent.apply(this,arguments)}});FFA.dialog.SingleImageDialog=function(){};FFA.dialog.SingleImageDialog=Ext.extend(Ext.Window,{id:"single-image-win",el:"divDialog_SingleImage",layout:"fit",width:700,height:520,minHeight:520,title:"Download flyfotos",closeAction:"hide",bodyCssClass:"popupBody",plain:true,items:null,listeners:{hide:function(b){var a=Ext.getCmp("single-image-win-images");a&&b.resetWin(a)}},initComponent:function(){var a=this;Ext.apply(this,{items:[{border:false,xtype:"panel",layout:{type:"vbox",pack:"start",align:"stretch"},items:[{id:"single-image-win-label",layout:"fit",border:false,items:[new Ext.Container({layout:"fit",id:"single-image-win-label-loading",html:"<div class='SingleImageTextLoading'>Henter data...</div>",hidden:true}),new Ext.Container({layout:"fit",id:"single-image-win-label-info",html:"<div class='SingleImageText'>F\u00f8lgende fotos blev fundet for den valgte koordinat <span id='coord'></span>.<br /> Viser kun fotos fra aktive serier.</div>",hidden:false}),new Ext.Container({layout:"fit",id:"single-image-win-label-error",bodyCssClass:"SingleImageTextError",html:"",hidden:true})]},{xtype:"panel",border:false,bodyCssClass:"single-image-win-images-body",id:"single-image-win-images",layout:{type:"hbox",align:"stretch",pack:"start"},flex:2,items:[]}]}],buttons:[{text:"Luk",handler:function(){a.hide()}}]});FFA.dialog.AboutDialog.superclass.initComponent.apply(this,arguments)},addImages:function(a,h,e){var d="STYLES=default&FORMAT=image%2Fjpeg&TRANSPARENT=false&BGCOLOR=0xFFFFFF&SHOWSCALEBAR=false&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&EXCEPTIONS=application%2Fvnd.ogc.se_inimage&SRS=EPSG%3A25832&SCANID="+a.id+"&BBOX=0,0,"+a.width+","+a.height,f=a.serviceUrl+d+"&WIDTH=300&HEIGHT=300",c=a.serviceUrl+d+"&WIDTH=1000&HEIGHT=1000",b=viewport.tree.getNoteTextById(a.layer),g=b;b=b==null?a.layer:b;b=b.length>38?b.substring(0,34)+"...":b;var i=new Ext.Panel({border:false,padding:"10px 5px 2px 1px",id:"single-image-win-image-panel-"+e,layout:{type:"auto"},items:[new Ext.Container({cls:"single-image-win-image-panel-cls-lbl",hideBorders:true,html:"<a href='"+c+"' title='Se fotoet i stor udgave' target='_blank'>Flyfoto nr. "+e.toString()+"</a>"}),new Ext.Panel({border:false,html:"<a href='"+c+"' alt='Klik p\u00e5 fotoet for at se de i fuld st\u00f8rrelse' target='_blank'><img src='"+f+"' width='300' height='300' alt='Klik p\u00e5 fotoet for at se de i fuld st\u00f8rrelse' title='Klik p\u00e5 fotoet for at se de i fuld st\u00f8rrelse' /></a>"}),new Ext.Container({hideBorders:true,html:"<div class='single-image-win-image-panel-cls-md'><table border='0'><tr><td class='single-image-win-image-panel-cls-md-lbl'>Serie:</td><td class='single-image-win-image-panel-cls-md-data'><span title='"+g+"'>"+b+"</span></td></tr><tr><td class='single-image-win-image-panel-cls-md-lbl'>\u00c5r:</td><td class='single-image-win-image-panel-cls-md-data'>"+a.year+"</td></tr><tr><td class='single-image-win-image-panel-cls-md-lbl'>Flyvelinje:</td><td class='single-image-win-image-panel-cls-md-data'>"+a.flightline+"</td></tr><tr><td class='single-image-win-image-panel-cls-md-lbl'>Fotonr.:</td><td class='single-image-win-image-panel-cls-md-data'>"+a.photoNumber+"</td></tr></table></div>"})]});h.add(i)},resetWin:function(a){a.removeAll(true);Ext.getCmp("single-image-win-label-loading").show();Ext.getCmp("single-image-win-label-info").hide();Ext.getCmp("single-image-win-label-error").hide()},showWin:function(b){this.show();var a=this,c=Ext.getCmp("single-image-win-images");if(c){this.resetWin(c);var d=viewport.mapCtrl.getSelectedLayers();if(d!=null)Ext.Ajax.request({url:"SingleImageWS/FindImagesByBBOX.ashx",success:function(e){if(e.status==200&&e.responseText!="")try{var d=Ext.util.JSON.decode(e.responseText);if(d)if(d.status=="OK"){if(d.items.length==0){Ext.getCmp("single-image-win-label-loading").hide();var f=Ext.getCmp("single-image-win-label-error");f.update("Ingen fotos blev fundet for koordinat E: "+a.formatCoord(b.lon)+", N: "+a.formatCoord(b.lat)+".");f.show();return}for(i=0;i<d.items.length;i++)a.addImages(d.items[i],c,i+1);Ext.getCmp("single-image-win-label-loading").hide();Ext.getCmp("single-image-win-label-info").show();var g=Ext.get("coord");g.dom.innerHTML="(E: "+a.formatCoord(b.lon)+", N:"+a.formatCoord(b.lat)+")";c.doLayout(false,true);c.show()}else a.writeError(d.statusMsg?d.statusMsg:"Ukendt fejl.");else a.writeError("Ukendt fejl.")}catch(h){a.writeError(h)}},failure:function(b){a.writeError("Kunne ikke hente data fra serveren (fejlkode: "+b.status+").")},params:{layers:d.join(","),BBOX:this.createBBOX(b),maxCount:10}});else a.writeError("Der er ikke valgt nogle histroiske flyfoto lag fra menuen til venstre.")}},createBBOX:function(a){return a.lon-10+","+(a.lat-10)+","+(a.lon+10)+","+(a.lat+10)},writeError:function(b){var a=Ext.getCmp("single-image-win-label-error");if(a){Ext.getCmp("single-image-win-label-loading").hide();Ext.getCmp("single-image-win-label-info").hide();a.update("<div class='SingleImageText'>"+b+"</div>");a.show()}},formatCoord:function(a){return parseInt(a)}});FFA.dialog.ActionLoadMultipleMetadata=Ext.extend(Ext.form.Action.Load,{type:"metadataload",loadedData:null,dataToShow:0,constructor:function(a,b){FFA.dialog.ActionLoadMultipleMetadata.superclass.constructor.call(this,a,b);this.reader=a.reader},success:function(b){var a=this.processResponse(b);if(a===true||!a.success||!a.data){this.failureType=Ext.form.Action.LOAD_FAILURE;this.form.afterAction(this,false);return}this.loadedData=a.data;this.dataToShow=0;this.showData()},showData:function(){this.form.clearInvalid();if(this.loadedData.length>0){if(this.dataToShow+1>this.loadedData.length)this.dataToShow=0;this.form.setValues(this.loadedData[this.dataToShow]);this.form.setValues({periode:this.formatPeriode(this.loadedData[this.dataToShow].startDate,this.loadedData[this.dataToShow].endDate)});this.dataToShow++}else{this.form.setValues(this.loadedData);this.form.setValues({periode:this.formatPeriode(this.loadedData.startDate,this.loadedData.endDate)})}this.form.afterAction(this,true)},getNumberOfData:function(){return this.loadedData?this.loadedData.length:0},getCurrentDataIndex:function(){return this.dataToShow>0?this.dataToShow-1:0},formatPeriode:function(a,b){return a!=null?b==null||a===b?this.formatDate(a):this.formatDate(a)+" til "+this.formatDate(b):""},formatDate:function(b){var a=Date.parseDate(b,"Y-m-d");return a!=null?a.format("d.m.Y"):""}});FFA.dialog.MetadaDialog=function(){};FFA.dialog.MetadataDialog=Ext.extend(Ext.Window,{id:"dialogMetadata",el:"divDialog_Metadata",layout:"fit",width:560,height:500,closeAction:"hide",bodyCssClass:"popupBody",title:"Metadata",plain:true,items:null,padding:"0px",dataAction:null,titleText:null,titleDefText:"Metadata for %mid%",initComponent:function(){var a=this;Ext.apply(this,{items:[new Ext.form.FormPanel({id:"metadataView",padding:"5px",labelPad:10,bodyCssClass:"popupBody",border:false,autoScroll:true,items:[{xtype:"label",id:"status",text:"Henter data....",anchor:"100%"},{xtype:"textfield",fieldLabel:"Projekt id",name:"projectId",anchor:"100%",readOnly:true},{xtype:"textfield",fieldLabel:"Rekvirent",name:"photoOrderer",anchor:"100%",readOnly:true},{xtype:"textfield",fieldLabel:"Ejer/rettigheder",name:"photoCopyright",anchor:"100%",readOnly:true},{xtype:"textfield",fieldLabel:"Fotograferet af",name:"photoCompany",anchor:"100%",readOnly:true},{xtype:"textfield",fieldLabel:"\u00c5rgang",name:"flightYear",anchor:"100%",readOnly:true},{xtype:"textfield",fieldLabel:"Optagelsesperiode",name:"periode",anchor:"100%",readOnly:true},{xtype:"textfield",fieldLabel:"M\u00e5lforhold",name:"scale",anchor:"100%",readOnly:true},{xtype:"textarea",fieldLabel:"Beskrivelse",name:"description",anchor:"100% 50%",readOnly:true}]})],buttons:[{id:"multipleMetadataBtn",text:"Vis flere serier",handler:function(){var a=Ext.getCmp("dialogMetadata");if(a!=null&&a.dataAction!=null){a.dataAction.showData();a.updateWinTitle(a.dataAction.getNumberOfData(),a.dataAction.getCurrentDataIndex())}},hidden:true},{text:"Luk",handler:function(){a.hide()}}]});FFA.dialog.MetadataDialog.superclass.initComponent.apply(this,arguments)},showWin:function(d,c){var b=Ext.getCmp("metadataView"),a=this;if(b){this.titleText=this.titleDefText.replace("%mid%",d);this.show();this.updateStatusState("Henter data....",true,false);this.updateFieldItemsState(b,false);this.dataAction=new FFA.dialog.ActionLoadMultipleMetadata(b.getForm(),{url:METADATA_URL.replace("%id%",c),failure:function(c,b){a.updateStatusState("Kunne ikke hente metadata: "+b.result.errorMsg,true,true);a.updateMultipleMetadataViewBtn(false);a.updateWinTitle()},success:function(b){a.updateStatusState("",false,false);a.updateFieldItemsState(b,true);a.updateMultipleMetadataViewBtn(a.dataAction.getNumberOfData()>1);a.updateWinTitle(a.dataAction.getNumberOfData(),a.dataAction.getCurrentDataIndex())}});b.getForm().doAction(this.dataAction)}},updateStatusState:function(d,c,b){var a=Ext.getCmp("status");if(a){if(b)a.addClass("MetadaErrorlabel");else a.removeClass("MetadaErrorlabel");if(c){a.setVisible(true);a.setText(d)}else a.setVisible(false)}},updateFieldItemsState:function(b,c){var a=Ext.getCmp("status");a&&b.items.each(function(b){b.id!=a.id&&b.setVisible(c);return true})},updateMultipleMetadataViewBtn:function(b){var a=Ext.getCmp("multipleMetadataBtn");a&&a.setVisible(b)},updateWinTitle:function(a,b){if(a==null||a==1)this.setTitle(this.titleText);else this.setTitle(this.titleText+" ("+(b+1)+"/"+a+")")}});JO_OL_ToggleClick=OpenLayers.Class(OpenLayers.Control,{type:OpenLayers.Control.TYPE_TOOL,autoActivate:false,initialize:function(){OpenLayers.Control.prototype.initialize.apply(this,arguments);this.events.on({activate:this.clickOn});this.events.on({deactivate:this.clickOff})},clickOn:function(){this.map.events.on({click:this.handleClick})},clickOff:function(){this.map.events.un({click:this.handleClick})},handleClick:function(){}});FFAOL=OpenLayers.Class({});FFAOL.Navigation=OpenLayers.Class(OpenLayers.Control.Navigation,{activate:function(){this.zoomWheelEnabled&&this.handlers.wheel.activate();this.handlers.click.activate();this.zoomBoxEnabled&&this.zoomBox.activate();return OpenLayers.Control.prototype.activate.apply(this,arguments)}});Ext.namespace("FFA.map");FFA.map.MapPanelBase=function(){};FFA.map.MapPanelBase=Ext.extend(GeoExt.MapPanel,{MAP_STYLE_ARR:{sCoverage:{level:2,name:"coverage"},sEdges:{level:1,name:"edges"},sDefault:{level:0,name:"default"}},settings:null,olSettings:null,mapContainer:null,BLENDING_LAYER_NAME:"dropLayer",mapStyleLevel:null,border:false,layout:"fit",active:false,navCtrlId:null,eventStopProcessing:false,eventInProgress:false,zoomEventTiggered:false,prevZoomLevel:1,initComponent:function(){this.mapStyleLevel=this.lookupStyleLevel("sCoverage");FFA.map.MapPanelBase.superclass.initComponent.apply(this,arguments)},updateMapLayerNameTitle:function(b){var a=document.getElementById(this.id+"_LAYERNAME_PANEL");if(a)a.innerHTML=b},getBaseSettings:function(){var a={},c=new OpenLayers.Bounds(4.3e5,6e6,905000,6475000),b=new FFAOL.Navigation({id:this.id+"_OL_CTRL_Navigation",autoActivate:this.active});this.navCtrlId=b.id;a.scaleLine=new OpenLayers.Control.ScaleLine({bottomOutUnits:""});a.coordview=new OpenLayers.Control.MousePosition({div:document.getElementById("coordviewCtl"),prefix:"E ",separator:", N ",suffix:" (UTM32/Euref89)",numDigits:0});a.copyright=new OpenLayers.Control.Attribution;a.copyright.updateAttribution=this.createCopyrightBox();a.olOptions={maxExtent:c,minResolution:.05,maxResolution:1e3,scales:[2.5e6,1.5e6,1e6,7.5e5,5e5,2.5e5,100000.5,50000.5,25000.5,1e4,8e3,6e3,4e3,2e3,1e3,500],units:"m",projection:"EPSG:25832",allOverlays:false,controls:[a.scaleLine,a.copyright,b,a.coordview,new OpenLayers.Control.ZoomBox({autoActivate:false,id:this.id+"_OL_CTRL_ZoomBoxIn",type:"ZoomBoxIn",moveCtrl:true}),new OpenLayers.Control.ZoomBox({autoActivate:false,id:this.id+"_OL_CTRL_ZoomBoxOut",type:"ZoomBoxOut",out:true,moveCtrl:true}),new OpenLayers.Control.DragPan({autoActivate:false,id:this.id+"_OL_CTRL_DragPan",type:"DragPan",isDefault:true,moveCtrl:true}),new JO_OL_ToggleClick({autoActivate:false,id:this.id+"_OL_CTRL_FFASingleImages",handleClick:function(a){var b=this.getLonLatFromPixel(new OpenLayers.Pixel(a.xy.x,a.xy.y));viewport.dialogs.singleImageDiag.showWin(b)},clickOn:function(){JO_OL_ToggleClick.prototype.clickOn.apply(this,arguments);this.map.div.style.cursor="crosshair"},clickOff:function(){JO_OL_ToggleClick.prototype.clickOff.apply(this,arguments);this.map.div.style.cursor="default"}})],ownerPanel:this};return a},createCopyrightBox:function(){return function(){OpenLayers.Control.Attribution.prototype.updateAttribution.apply(this);var c=[];function d(b){for(var a=0;a<c.length;a++)if(c[a]==b)return true;return false}if(this.map&&this.map.layers){for(var b=this.map.getLayersBy("visibility",true),a=0,e=b.length;a<e;a++)b[a].attribution&&!d(b[a].attribution)&&c.push(b[a].attribution);this.div.innerHTML="<span class='copyright'>"+c.join(this.separator)+"</span>"}}},findStyle:function(a,e,f){var b=!f?"default":f;if(a&&a.joSettings&&a.joSettings.useStyleFallback){var d=this.reverselookupStyleLevel(e);b=this.MAP_STYLE_ARR[d].name}if(a&&a.joSettings){if(a.joSettings.baseLayer&&a.joSettings.baseLayer.styles!=undefined)if(isString(a.joSettings.baseLayer.styles))b=a.joSettings.baseLayer.styles;else{if(!this.map.baseLayer)return b;var g=this.map.baseLayer.id,c=a.joSettings.baseLayer.styles[g];if(c)if(isObject(c)){var d=this.reverselookupStyleLevel(e);if(d)if(c[d])b=c[d];else if(a.joSettings.useStyleFallback)b=this.MAP_STYLE_ARR[d].name}else b=c}if(a.joSettings.layer&&a.joSettings.layer.styles!=undefined)if(isString(a.joSettings.layer.styles))b=a.joSettings.layer.styles;else{var c=a.joSettings.layer.styles[a.id];if(c)if(isObject(c)){var d=this.reverselookupStyleLevel(e);if(d)if(c[d])b=c[d];else if(a.joSettings.useStyleFallback)b=this.MAP_STYLE_ARR[d].name}else b=c}}return b},findStyleSetup:function(a,e,h,f){var b=!f?"default":f;if(!this.map)return b;if(a&&a.useStyleFallback){var d=this.reverselookupStyleLevel(e);b=this.MAP_STYLE_ARR[d].name}if(a){if(a.baseLayer&&a.baseLayer.styles)if(isString(a.baseLayer.styles))b=a.baseLayer.styles;else{if(!this.map.baseLayer)return b;var g=this.map.baseLayer.id,c=a.baseLayer.styles[g];if(c)if(isObject(c)){var d=this.reverselookupStyleLevel(e);if(d)if(c[d])b=c[d];else if(a.useStyleFallback)b=this.MAP_STYLE_ARR[d].name}else b=c}if(a.layer&&a.layer.styles)if(isString(a.layer.styles))b=a.layer.styles;else{var c=a.layer.styles[h];if(c)if(isObject(c)){var d=this.reverselookupStyleLevel(e);if(d)if(c[d])b=c[d];else if(layer.joSettings.useStyleFallback)b=this.MAP_STYLE_ARR[d].name}else b=c}}return b},applyStyleByLayer:function(a,c){if(!a)return;var b=this.findStyle(a,c!=null?c:this.mapStyleLevel);if(a.params.LAYERS.indexOf(","))for(var d=0;d<a.params.LAYERS.split(",").length-1;d++)b+=","+b;a.params.STYLES=b},applyStyleByLayerToAllLayers:function(b){for(var a=0;a<this.map.layers.length;a++)this.applyStyleByLayer(this.map.layers[a],b)},lookupStyleLevel:function(b){if(this.MAP_STYLE_ARR)for(var a in this.MAP_STYLE_ARR)if(a==b)return this.MAP_STYLE_ARR[a].level},reverselookupStyleLevel:function(b){if(this.MAP_STYLE_ARR)for(var a in this.MAP_STYLE_ARR)if(this.MAP_STYLE_ARR[a].level==b)return a;return null},hasZoomLevelChange:function(){return this.prevZoomLevel!=this.map.zoom},changeBaseLayer:function(b){var d="",c=null;if(b!=null){b.id==this.BLENDING_LAYER_NAME&&this.applyStyleByLayer(b);c=this.map.baseLayer.id;this.map.setBaseLayer(b);for(var a=0;a<this.map.layers.length;a++)!this.map.layers[a].isBaseLayer&&this.map.layers[a].getVisibility()&&this.applyStyleByLayer(this.map.layers[a])}return c},zoomToExtent:function(a){this.active&&this.map.zoomToExtent(a)},zoomTo:function(a){this.active&&this.map.zoomTo(a)},applyFixes:function(){this.settings.scaleLine.div.className+=" legend";this.settings.copyright.div.className+=" legend";var b=document.createElement("div");b.className="bottomBox";var a=document.createElement("div");a.id=this.id+"_LAYERNAME_PANEL";a.className="layernamePanel legend";a.innerHTML="&nbsp;";b.appendChild(a);this.map.div.firstChild.appendChild(b)},connectBtnToOLControl:function(d,b,c){var a=this.map.getControl(this.id+"_"+d);if(a!=null)if(c=="trigger_next"&&a.CLASS_NAME=="OpenLayers.Control.NavigationHistory"){b.on("click",a.next.trigger,a);a.next.events.register("activate",b,function(){b.setDisabled(false)});a.next.events.register("deactivate",b,function(){b.setDisabled(true)})}else if(c=="trigger_prev"&&a.CLASS_NAME=="OpenLayers.Control.NavigationHistory"){b.on("click",a.previous.trigger,a);a.previous.events.register("activate",b,function(){b.setDisabled(false)});a.previous.events.register("deactivate",b,function(){b.setDisabled(true)})}else if(a.type==OpenLayers.Control.TYPE_BUTTON)b.on("click",a.trigger,a);else{var e=this;b.on("toggle",function(c,b){if(e.active&&a.active!=b)if(b)a.activate();else a.deactivate()},b)}},lockPhotoFrame:function(c,b){for(var a=0;a<this.map.getNumLayers();a++)if(this.map.layers[a].type=="hist")if(c)this.map.layers[a].params.VIEWCENTER=Math.floor(b.lon)+","+Math.floor(b.lat);else delete this.map.layers[a].params.VIEWCENTER},setPhotoFrameVisibility:function(b){for(var a=0;a<this.map.getNumLayers();a++)this.map.layers[a].type=="hist"&&this.map.layers[a].mergeNewParams({showframe:b?1:0})},setPhotoBorderVisibility:function(b){for(var a=0;a<this.map.getNumLayers();a++)this.map.layers[a].type=="hist"&&this.map.layers[a].mergeNewParams({showedges:b?1:0})},getSilder:function(){return Ext.getCmp("slider")},enabledDisabledSlider:function(c){var a=c,b=this.mapContainer;if(a==undefined||a==null)a=Ext.getCmp("slider");if(a!=null)if(b.activeMaps==1&&this.isStyleLevelEqual(this.mapStyleLevel,"sDefault")&&b.getNumSelectedHistLayers()==1){b.bToolbar.updateSliderStatus(true);a.enable()}else{if(a.layer!=null){a.setValue(100);a.changeLayerOpacity(a,a.maxValue)}a.disable();b.bToolbar.updateSliderStatus(false)}},releaseSliderLayer:function(){var a=Ext.getCmp("slider");if(a!=null){var b=a.delay;a.delay=0;a.setValue(100);a.changeLayerOpacity(a,a.maxValue);a.delay=b}},isStyleLevelEqual:function(a,b){lv=this.lookupStyleLevel(b);return lv!=undefined?a==lv:false},updateFotoBAFStatus:function(){var a=true;if(this.isStyleLevelEqual(this.mapStyleLevel,"sDefault"))a=false;this.mapContainer.tToolbar.updateFotoBAFUIStatus(a)},updateMPPrecision:function(){var b=this.map.resolution,a=this.map.getControl("coordview");if(a&&b)if(b<.5)a.numDigits=2;else if(b<1)a.numDigits=1;else a.numDigits=0},getCurrentActiveMoveControl:function(){for(var a=0;a<this.map.controls.length;a++)if(this.map.controls[a].moveCtrl&&this.map.controls[a].active)return this.map.controls[a].type;return null},removeStdEvents:function(){this.map.events.un({movestart:this.mapMoveStart,zoomend:this.mapZoomEvent,moveend:this.mapMoveEvent,scope:this.map});var a=this.map.getControl(this.navCtrlId);a!=null&&a.deactivate()},addStdEvents:function(){this.map.events.on({movestart:this.mapMoveStart,zoomend:this.mapZoomEvent,moveend:this.mapMoveEvent,scope:this.map});var a=this.map.getControl(this.navCtrlId);a!=null&&a.activate()},mapMoveStart:function(a){a.object.ownerPanel.eventInProgress=true;a.object.ownerPanel.prevZoomLevel=a.object.zoom},mapZoomEvent:function(b){if(!b&&!b.object&&!b.object.ownerPanel)return;var a=b.object.ownerPanel,e=null;if(a.eventInProgress){e=a.calcStyLevel(b.object.resolution,true);a.applyStyleByLayerToAllLayers()}else e=a.calcStyLevel(b.object.resolution);if(!a.eventStopProcessing){if(e!=a.mapStyleLevel){a.mapStyleLevel=e;a.enabledDisabledSlider();a.updateFotoBAFStatus()}a.updateMPPrecision();a.triggerMap=b.object.id;var c=a.mapContainer.getActiveMapWin();if(c!=null)for(var d=0;d<c.length;d++){c[d].zoomEventTiggered=true;if(b.object.id!=c[d].map.id){c[d].eventStopProcessing=true;c[d].map.zoomToExtent(b.object.getExtent(),true)}}}else{a.mapStyleLevel=e;a.eventStopProcessing=false}},mapMoveEvent:function(a){if(a.object.ownerPanel.eventStopProcessing){a.object.ownerPanel.eventStopProcessing=false;return}if(!a&&!a.object&&!a.object.ownerPanel)return;var b=a.object.ownerPanel.mapContainer.getActiveMapWin();if(b!=null&&!a.object.ownerPanel.zoomEventTiggered)for(var c=0;c<b.length;c++)if(a.object.id!=b[c].map.id){b[c].eventStopProcessing=true;b[c].map.setCenter(a.object.getCenter())}a.object.ownerPanel.zoomEventTiggered=false},registerEvents:function(a){a.events.register("loadstart",this,function(){this.mapContainer.numLayersLoading+=1;if(this.mapContainer.numLayersLoading==1){var c=document.getElementById("workingDiv");c.style.visibility="visible"}if(this.hasZoomLevelChange()){var b=this.calcStyLevel(this.map.resolution);this.applyStyleByLayer(a,b)}this.eventInProgress=false});a.events.register("loadend",this,function(){this.mapContainer.numLayersLoading-=1;if(this.mapContainer.numLayersLoading==0){var a=document.getElementById("workingDiv");a.style.visibility="hidden"}});a.events.register("loadcancel",this,function(){this.mapContainer.numLayersLoading-=1;if(this.mapContainer.numLayersLoading==0){var a=document.getElementById("workingDiv");a.style.visibility="hidden"}})},calcStyLevel:function(a,b){if(b==null)b=false;return a==null||a>150||b&&a>80?this.lookupStyleLevel("sCoverage"):a>20||b&&a>17?this.lookupStyleLevel("sEdges"):this.lookupStyleLevel("sDefault")}});FFA.map.MapPanel=function(){};FFA.map.MapPanel=Ext.extend(FFA.map.MapPanelBase,{firstBaseLayer:null,navHistName:null,applyLayerOptions:function(a,b){if(!a.options.transitionEffect)a.options.transitionEffect="resize";if(b=="WMS"){if(!a.options.buffer)a.options.buffer=0;if(a.options.singleTile)a.options.ratio=1}},initComponent:function(){this.active=true;this.settings=this.getBaseSettings();this.navHistName=this.id+"_OL_CTRL_NavigationHistory";this.settings.olOptions.controls=this.settings.olOptions.controls.concat([new OpenLayers.Control.PanZoom({slideRatio:.35}),new OpenLayers.Control.ZoomToMaxExtent({id:this.id+"_OL_CTRL_ZoomToMaxExtent"}),new OpenLayers.Control.NavigationHistory({id:this.navHistName,autoActivate:true,limit:20})]);this.settings.zoom=1;Ext.apply(this,{map:this.settings.olOptions,listeners:{render:function(a){a.dropZone=new Ext.dd.DropZone(a.body,{ddGroup:"ddLayerGroup",getTargetFromEvent:function(a){return a.getTarget()},onNodeOver:function(){return Ext.dd.DropZone.prototype.dropAllowed},onNodeDrop:function(b,c,d,a){a.node.getUI().toggleCheck(true);return true}})}}});FFA.map.MapPanel.superclass.initComponent.apply(this,arguments)},addWMSLayers:function(b){var h=[],g=null,c=null,f=null,a,d;if(!b.baseLayers)return;if(isGlobalObjectDefined("selectedLayersSettings"))g=selectedLayersSettings;lrArr=[];for(a=0;a<b.baseLayers.length;a++){b.baseLayers[a].name=b.baseLayers[a].name.trim();if(b.baseLayers[a].type=="WMTS"){b.baseLayers[a].config.name=b.baseLayers[a].name;b.baseLayers[a].config.url=b.baseLayers[a].url;this.applyLayerOptions(b.baseLayers[a],"WMTS")}else{this.applyLayerOptions(b.baseLayers[a],"WMS");c=new OpenLayers.Layer.WMS(b.baseLayers[a].name,b.baseLayers[a].url,b.baseLayers[a].params,b.baseLayers[a].options)}c.type="base";c.id=b.baseLayers[a].name;if(this.firstBaseLayer==null)this.firstBaseLayer=c.id;this.registerEvents(c);if(g&&g.baseLayer)c.setVisibility(g.baseLayer==c.id);else c.setVisibility(b.baseLayers[a].defaultShow==true);c.joSettings=b.baseLayers[a].joSettings;if(!c.joSettings)c.joSettings={};f=new GeoExt.data.LayerRecord({title:b.baseLayers[a].name,layer:c});if(f!=null)if(c.visibility)lrArr.unshift(f);else lrArr.push(f)}for(a=0;a<lrArr.length;a++)this.layers.add(lrArr[a]);var i="",e=[];for(a=0;a<b.histLayers.length;a++){e=b.histLayers[a].params.layers.split(",");for(d=0;d<e.length;d++){params=b.histLayers[a].params;e[d]=e[d].trim();params.layers=e[d];params.styles=this.findStyleSetup(b.histLayers[a].joSettings,this.mapStyleLevel,e[d]);this.applyLayerOptions(b.histLayers[a],"WMS","HIST");c=new OpenLayers.Layer.WMS(e[d],b.histLayers[a].url,params,b.histLayers[a].options);c.id=b.histLayers[a].name+":"+e[d];c.joSettings=b.histLayers[a].joSettings;c.type="hist";if(!c.joSettings)c.joSettings={};c.joSettings.useStyleFallback=true;this.registerEvents(c);c.setVisibility(false);f=new GeoExt.data.LayerRecord({title:c.id,layer:c});f!=null&&this.layers.add(f)}}layerName=[];for(a=0;a<b.otherLayers.length;a++){e=b.otherLayers[a].params.layers.split(",");for(d=0;d<e.length;d++){params=b.otherLayers[a].params;e[d]=e[d].trim();params.layers=e[d];c=new OpenLayers.Layer.WMS(e[d],b.otherLayers[a].url,params,b.otherLayers[a].options);c.id=b.otherLayers[a].name+":"+e[d];c.joSettings=b.otherLayers[a].joSettings;c.type="other";this.applyLayerOptions(b.otherLayers[a],"WMS","OTHER");if(!c.joSettings)c.joSettings={};c.joSettings.useStyleFallback=true;this.registerEvents(c);c.setVisibility(false);f=new GeoExt.data.LayerRecord({title:c.id,layer:c});f!=null&&this.layers.add(f)}}},showWMSLayers:function(c){for(var d=this.map.getLayersBy("visibility",true),a=0;a<d.length;a++)!d[a].isBaseLayer&&d[a].setVisibility(false);if(c.histLayers!=null)for(a=0;a<c.histLayers.length;a++){var b=this.map.getLayer(c.histLayers[a]);if(b!=null){style=this.findStyle(b,this.mapStyleLevel);b.mergeNewParams({styles:style});b.setVisibility(true)}}b=null;if(c.otherLayers!=null)for(a=0;a<c.otherLayers.length;a++){b=this.map.getLayer(c.otherLayers[a]);if(b!=null){style=this.findStyle(b,this.mapStyleLevel);b.mergeNewParams({styles:style});b.setVisibility(true)}}},removeStdEvents:function(){this.removeVisibleLayersEvent();var a=this.map.getControl(this.navHistName);a!=null&&a.deactivate();FFA.map.MapPanel.superclass.removeStdEvents.apply(this,arguments)},addStdEvents:function(){this.addVisibleLayersEvent();this.map.events.triggerEvent("moveend");var a=this.map.getControl(this.navHistName);a!=null&&a.activate();FFA.map.MapPanel.superclass.addStdEvents.apply(this,arguments)},addVisibleLayersEvent:function(){this.map.events.register("moveend",this.map,this.visibleLayerMoveEndEvent)},removeVisibleLayersEvent:function(){this.map.events.unregister("moveend",this.map,this.visibleLayerMoveEndEvent)},visibleLayerMoveEndEvent:function(){ajaxJSONRequest(VISIBLE_LAYERS_URL+"BBOX="+this.getExtent().toBBOX()+"&model="+model,this.ownerPanel.mapContainer.updateTree)},updateVisibleLayer:function(){ajaxJSONRequest(VISIBLE_LAYERS_URL+"BBOX="+this.map.getExtent().toBBOX()+"&model="+model,this.mapContainer.updateTree)}});FFA.map.SingleImageMapPanel=function(){};FFA.map.SingleImageMapPanel=Ext.extend(FFA.map.MapPanelBase,{primaryMap:null,htmlTemplate:"<div id='#ID#_InactiveNode' class='InactiveItem'><div style='text-align:center'>Tr\u00e6k et historisk flyfotolag hertil</div></div>",initComponent:function(){var a=this;this.settings=this.getBaseSettings();Ext.apply(this,{html:this.htmlTemplate.replace("#ID#",this.id),map:this.settings.olOptions,listeners:{render:function(b){b.dropZone=new Ext.dd.DropZone(b.body,{ddGroup:"ddLayerGroup",getTargetFromEvent:function(a){return a.getTarget()},onNodeOver:function(){return Ext.dd.DropZone.prototype.dropAllowed},onNodeDrop:function(h,i,j,g){var f=a.primaryMap.map.getLayer(g.node.id);if(f){var c=f.clone(),e=b.map.baseLayer;c.isBaseLayer=true;c.options.singleTile=true;c.params.TRANSPARENT=false;c.params.FORMAT="image/jpeg";c.params.BGCOLOR="0xFFFFFFFF";b.registerEvents(c);a.active&&b.removeStdEvents();b.map.addLayer(c);b.map.setBaseLayer(c);e!=null&&b.map.removeLayer(e);if(b.mapStyleLevel!=b.primaryMap.mapStyleLevel)b.mapStyleLevel=b.primaryMap.mapStyleLevel;b.applyStyleByLayerToAllLayers();if(!a.active){b.active=true;var d=Ext.get(b.id+"_InactiveNode");d&&d.remove()}b.addStdEvents();b.updateMapLayerNameTitle(g.node.text)}return true}})}}});FFA.map.SingleImageMapPanel.superclass.initComponent.apply(this,arguments)},addStdEvents:function(){this.map.zoomToExtent(this.primaryMap.map.getExtent(),true);this.updateCurrentControlStatus(true);FFA.map.SingleImageMapPanel.superclass.addStdEvents.apply(this,arguments)},lockPhotoFrame:function(c,b){for(var a=0;a<this.map.getNumLayers();a++)if(c)this.map.layers[a].params.VIEWCENTER=Math.floor(b.lon)+","+Math.floor(b.lat);else delete this.map.layers[a].params.VIEWCENTER},updateCurrentControlStatus:function(c){if(c){var b=this.primaryMap.getCurrentActiveMoveControl();if(b!=null)for(var a=0;a<this.map.controls.length;a++)this.map.controls[a].moveCtrl&&b==this.map.controls[a].type&&this.map.controls[a].activate()}else for(var a=0;a<this.map.controls.length;a++)this.map.controls[a].deactivate()}});FFA.map.MapContainer=function(){};FFA.map.MapContainer=Ext.extend(Ext.Panel,{mapPanelPos:{PRIMARY:0,UPPER_RIGHT:1,LOWER_LEFT:2,LOWER_RIGHT:3},layerTypes:{HIST_LAYER:0,OTHER_LAYER:1},maxHistLayersSelected:1,otherLayerSelected:[],histLayersSelected:[],tToolbar:null,bToolbar:null,activeMaps:1,mapPanels:[],panels:{mapPan1:null,mapPan2:null,mapPan4:null},numLayersLoading:0,removePrevWin:function(){var a=null;if((a=this.findById("mupl-1-win"))!=null){a.remove(this.mapPanels[this.mapPanelPos.PRIMARY],false);this.panels.mapPan1=this.removeAll(false)}else if((a=this.findById("mupl-2-win"))!=null){a.items.get(0).remove(this.mapPanels[this.mapPanelPos.PRIMARY],false);a.items.get(1).remove(this.mapPanels[this.mapPanelPos.UPPER_RIGHT],false);this.panels.mapPan2=this.removeAll(false)}else if((a=this.findById("mupl-4-win"))!=null){a.items.get(0).remove(this.mapPanels[this.mapPanelPos.PRIMARY],false);a.items.get(0).remove(this.mapPanels[this.mapPanelPos.LOWER_LEFT],false);a.items.get(1).remove(this.mapPanels[this.mapPanelPos.UPPER_RIGHT],false);a.items.get(1).remove(this.mapPanels[this.mapPanelPos.LOWER_RIGHT],false);this.panels.mapPan4=this.removeAll(false)}},isSameWindow:function(a){return this.findById("mupl-"+a+"-win")},getLayerIndexInArr:function(c,a,d){if(a){for(var b=0;b<a.length;b++)if(a[b]==c)return b;if(d){a.push(c);return a.length-1}}return-1},initComponent:function(){var a=this;this.mapPanels.push(new FFA.map.MapPanel({id:"mapUpperLeft",el:"mapDivConUpperLeft",mapContainer:a}));this.mapPanels.push(new FFA.map.SingleImageMapPanel({id:"mapUpperRight",el:"mapDivConUpperRight",primaryMap:this.mapPanels[this.mapPanelPos.PRIMARY],mapContainer:a}));this.mapPanels.push(new FFA.map.SingleImageMapPanel({id:"mapLowerLeft",el:"mapDivConLowerLeft",primaryMap:this.mapPanels[this.mapPanelPos.PRIMARY],mapContainer:a}));this.mapPanels.push(new FFA.map.SingleImageMapPanel({id:"mapLowerRight",el:"mapDivConLowerRight",primaryMap:this.mapPanels[this.mapPanelPos.PRIMARY],mapContainer:a}));this.tToolbar=new FFA.toolbar.TopToolbar({mapCtrl:this});this.bToolbar=new FFA.toolbar.BottomToolbar({mapCtrl:this});Ext.apply(this,{id:"mapPanel",layout:"fit",border:false,tbar:a.tToolbar,bbar:a.bToolbar,items:[this.createMapWin(1)]});FFA.map.MapContainer.superclass.initComponent.apply(this,arguments)},createMapWin:function(c){var a=0,b=null;if(c==1){for(a=0;a<this.mapPanels.length;a++)delete this.mapPanels[a].flex;b=new Ext.Panel({id:"mupl-1-win",layout:"fit",border:false,items:[this.mapPanels[this.mapPanelPos.PRIMARY]]})}else if(c==2){for(a=0;a<this.mapPanels.length;a++)delete this.mapPanels[a].flex;b=new Ext.Panel({id:"mupl-2-win",layout:"hbox",layoutConfig:{align:"stretch",pack:"start"},items:[{id:"mapPanelLeft",layout:"fit",border:false,flex:1,bodyCssClass:"panel2-maps-top",items:[this.mapPanels[this.mapPanelPos.PRIMARY]]},{id:"mapPanelRight",layout:"fit",border:false,flex:1,bodyCssClass:"panel2-maps-bottom",items:[this.mapPanels[this.mapPanelPos.UPPER_RIGHT]]}]})}else if(c==4){for(a=0;a<this.mapPanels.length;a++)this.mapPanels[a].flex=1;b={id:"mupl-4-win",layout:"hbox",layoutConfig:{align:"stretch",pack:"start"},border:false,items:[{id:"mapPanelLeft",layout:"vbox",layoutConfig:{align:"stretch",pack:"start"},flex:1,border:false,bodyCssClass:"panel4-maps-left",items:[this.mapPanels[this.mapPanelPos.PRIMARY],this.mapPanels[this.mapPanelPos.LOWER_LEFT]]},{id:"mapPanelRight",layout:"vbox",layoutConfig:{align:"stretch",pack:"start"},flex:1,border:false,bodyCssClass:"panel4-maps-right",items:[this.mapPanels[this.mapPanelPos.UPPER_RIGHT],this.mapPanels[this.mapPanelPos.LOWER_RIGHT]]}]}}return b},showNumberOfMaps:function(b){if(this.isSameWindow(b))return;for(var a=0;a<this.activeMaps;a++)this.mapPanels[a].removeStdEvents();this.removePrevWin();switch(b){case 2:if(this.panels.pan2!=null)this.addControl(this.panels.pan2);else this.add(this.createMapWin(2));this.activeMaps=2;break;case 4:if(this.panels.pan4!=null)this.addControl(this.panels.pan4);else this.add(this.createMapWin(4));this.activeMaps=4;break;default:if(this.panels.pan1!=null)this.addControl(this.panels.pan1);else this.add(this.createMapWin(1));this.activeMaps=1}this.mapPanels[this.mapPanelPos.PRIMARY].enabledDisabledSlider();this.doLayout();this.mapPanels[this.mapPanelPos.PRIMARY].map.updateSize();for(var a=this.mapPanelPos.UPPER_RIGHT;a<this.mapPanels.length;a++)if(a<this.activeMaps&&this.mapPanels[a].active){if(this.mapPanels[a].mapStyleLevel!=this.mapPanels[a].primaryMap.mapStyleLevel){this.mapPanels[a].mapStyleLevel=this.mapPanels[a].primaryMap.mapStyleLevel;this.mapPanels[a].applyStyleByLayerToAllLayers()}this.mapPanels[a].map.updateSize();this.mapPanels[a].addStdEvents()}this.mapPanels[this.mapPanelPos.PRIMARY].addStdEvents()},getPrimaryMap:function(){return this.mapPanels[this.mapPanelPos.PRIMARY]},changeBaseLayer:function(b,a){return(a=this.validateCtrl(a))!=null?this.mapPanels[a].changeBaseLayer(b):null},changeBaseLayerByName:function(b,a){return(a=this.validateCtrl(a))!=null?this.changeBaseLayer(this.mapPanels[a].map.getLayer(b),a):null},updateCustomBaseLayer:function(d){var c=this.mapPanels[this.mapPanelPos.PRIMARY].map.getLayer(d.id),b=this.mapPanels[this.mapPanelPos.PRIMARY].map.getLayer(this.mapPanels[this.mapPanelPos.PRIMARY].BLENDING_LAYER_NAME);b&&this.mapPanels[this.mapPanelPos.PRIMARY].map.removeLayer(b,false);if(c){this.removeLayer(d);var a=c.clone();this.mapPanels[this.mapPanelPos.PRIMARY].registerEvents(a);a.setIsBaseLayer(true);a.id=this.mapPanels[this.mapPanelPos.PRIMARY].BLENDING_LAYER_NAME;a.name=this.mapPanels[this.mapPanelPos.PRIMARY].BLENDING_LAYER_NAME;this.mapPanels[this.mapPanelPos.PRIMARY].map.addLayer(a);this.mapPanels[this.mapPanelPos.PRIMARY].map.setLayerIndex(a,0);return true}return false},zoomToExtent:function(b,a){(a=this.validateCtrl(a))!=null&&this.mapPanels[a].zoomToExtent(b)},zoomTo:function(b,a){(a=this.validateCtrl(a))!=null&&this.mapPanels[a].zoomTo(b)},validateCtrl:function(a){return!a?this.mapPanelPos.PRIMARY:a>-1&&a<this.mapPanels.length?ctrl:null},addLayer:function(a){var c=a.getOwnerTree(),b="";if(!c)return;if(!a.isOtherLayer()){if(this.histLayersSelected.length>=this.maxHistLayersSelected){var g=this.histLayersSelected.shift(),e=c.getNodeById(g);e!=null&&this.removeLayer(e)}b=a.getLayerName();if(b!=""){this.getLayerIndexInArr(b,this.histLayersSelected,true)>-1&&c.toggleHighlightPNode(a.parentNode,a.id,true);var d=this.mapPanels[this.mapPanelPos.PRIMARY].getSilder();if(d!=null){d.layer=this.mapPanels[this.mapPanelPos.PRIMARY].map.getLayer(b);a.updateHistLayerSelectStyle(true);this.mapPanels[this.mapPanelPos.PRIMARY].enabledDisabledSlider(d)}}this.mapPanels[this.mapPanelPos.PRIMARY].updateMapLayerNameTitle(this.histLayersSelected.length>1?a.text+", m. fl.":a.text)}else{b=a.getLayerName();if(b!="")this.getLayerIndexInArr(b,this.otherLayerSelected,true)>-1&&c.toggleHighlightPNode(a.parentNode,a.id,true)}var f={histLayers:this.histLayersSelected,otherLayers:this.otherLayerSelected};this.mapPanels[this.mapPanelPos.PRIMARY].showWMSLayers(f)},removeLayer:function(a){var e=a.getOwnerTree(),b="",d=-1;if(!e)return;if(!a.isOtherLayer()){var c=this.mapPanels[this.mapPanelPos.PRIMARY].getSilder(),f=this.mapPanels[this.mapPanelPos.PRIMARY].map.getLayer(a.getLayerName());if(c!=null&&f!=null&&c.layer&&c.layer.id==f.id){this.mapPanels[this.mapPanelPos.PRIMARY].releaseSliderLayer();c.layer=null}a.getUI().removeClass("histLayerSelected");b=a.getLayerName();if(b!="")if((d=this.getLayerIndexInArr(b,this.histLayersSelected,false))>-1){this.histLayersSelected.splice(d,1);e.toggleHighlightPNode(a.parentNode,a.id,false)}a.toggleCheck();this.mapPanels[this.mapPanelPos.PRIMARY].enabledDisabledSlider();this.mapPanels[this.mapPanelPos.PRIMARY].updateMapLayerNameTitle("&nbsp;")}else{b=a.getLayerName();if(b!="")if((d=this.getLayerIndexInArr(b,this.otherLayerSelected,true))>-1){this.otherLayerSelected.splice(d,1);e.toggleHighlightPNode(a.parentNode,a.id,false)}}var g={histLayers:this.histLayersSelected,otherLayers:this.otherLayerSelected};this.mapPanels[this.mapPanelPos.PRIMARY].showWMSLayers(g)},removeExceedHistSelectedLayers:function(a){if(this.histLayersSelected.length>a){var c=viewport.tree;while(this.histLayersSelected.length>a){var b=c.getNodeById(this.histLayersSelected.shift());b!=null&&this.removeLayer(b)}}this.maxHistLayersSelected=a},getActiveMapWin:function(){var a=[];if(this.activeMaps==2){this.mapPanels[this.mapPanelPos.PRIMARY].active&&a.push(this.mapPanels[this.mapPanelPos.PRIMARY]);this.mapPanels[this.mapPanelPos.UPPER_RIGHT].active&&a.push(this.mapPanels[this.mapPanelPos.UPPER_RIGHT]);return a}else if(this.activeMaps==4){for(var b=0;b<this.mapPanels.length;b++)this.mapPanels[b].active&&a.push(this.mapPanels[b]);return a}else return null},applyFixes:function(){for(var a=0;a<this.mapPanels.length;a++)this.mapPanels[a].applyFixes()},addControl:function(c,a){if(!a)for(var b=0;b<this.mapPanels.length;b++)this.mapPanels[b].map.addControl(c);else this.validateCtrl(a)&&this.mapPanels[a].map.addControl(c)},connectBtnToOLControl:function(b,d,c){for(var a=0;a<this.mapPanels.length;a++)this.mapPanels[a].connectBtnToOLControl(b,d,c)},lockPhotoFrame:function(b){for(var c=this.mapPanels[this.mapPanelPos.PRIMARY].map.getCenter(),a=0;a<this.mapPanels.length;a++)this.mapPanels[a].lockPhotoFrame(b,c)},setPhotoFrameVisibility:function(b){for(var a=0;a<this.mapPanels.length;a++)this.mapPanels[a].setPhotoFrameVisibility(b)},setPhotoBorderVisibility:function(b){for(var a=0;a<this.mapPanels.length;a++)this.mapPanels[a].setPhotoBorderVisibility(b)},enableControls:function(){this.tToolbar!=null&&this.tToolbar.enableControls();this.bToolbar!=null&&this.bToolbar.enableControls()},getNumSelectedHistLayers:function(){return this.histLayersSelected.length},getSelectedLayers:function(b,c){var a=[];b&&a.push(this.getPrimaryMap().baseLayer.id);a.push(this.histLayersSelected);c&&a.push(this.oi);if(a.length==1&&a[0]=="")a=null;return a},updateTree:function(b){var a=viewport.tree;a!=null&&a.treeStyle==a.treeAvailStyles.StyleFlatList&&a.updateLayerList(b)},triggerMapEvent:function(a){this.mapPanels[this.mapPanelPos.PRIMARY].map.events.triggerEvent(a)}});Ext.namespace("FFA.toolbar");FFA.toolbar.ToolbarBase=function(){};FFA.toolbar.ToolbarBase=Ext.extend(Ext.Toolbar,{addToolbarSeparator:function(b,a){if(b!=null){if(a==null)a=true;return[new Ext.Toolbar.Spacer({id:b+"_SpacerLeft",hidden:!a}),new Ext.Toolbar.Separator({id:b+"_Seperator",hidden:!a}),new Ext.Toolbar.Spacer({id:b+"_SpacerRight",hidden:!a})]}else return[new Ext.Toolbar.Spacer,new Ext.Toolbar.Separator,new Ext.Toolbar.Spacer]},enableControl:function(d,a,c){var b=Ext.getCmp(d);if(!a)a=false;if(b!=null){b.setDisabled(a);c&&b.toggle()}},changeControlVisibility:function(c,a){if(a==null)a=false;var b=Ext.getCmp(c);b!=null&&b.setVisible(a)},changeSeperatorVisibility:function(b,a){this.changeControlVisibility(b+"_SpacerLeft",a);this.changeControlVisibility(b+"_Seperator",a);this.changeControlVisibility(b+"_SpacerRight",a)}});FFA.toolbar.TopToolbar=function(){};FFA.toolbar.TopToolbar=Ext.extend(FFA.toolbar.ToolbarBase,{mapCtrl:null,autoHeight:false,height:"25px",keyMap:null,initComponent:function(){var a=this;Ext.apply(this,{items:[this.addControl2Map("ZoomToMaxExtent",{id:"zoomMaxExtent",disabled:true,iconCls:"zoomfull",enabledToggle:false,tooltip:"Zoom til maksimal kortudsnit (shift + f)"}),this.addToolbarSeparator(),this.addControl2Map("ZoomBoxIn",{id:"zoomIn",allowDepress:false,disabled:true,iconCls:"zoomin",toggleGroup:"map",enabledToggle:true,pressed:false,tooltip:"Zoom ind (shift + i): Klik i kortet, eller brug venstre museknap til at tr&aelig;kke et rektangel"}),this.addControl2Map("ZoomBoxOut",{id:"zoomOut",allowDepress:false,disabled:true,iconCls:"zoomout",toggleGroup:"map",enabledToggle:true,pressed:false,tooltip:"Zoom ud (shift + u): Klik i kortet, eller brug venstre museknap til at tr&aelig;kke et rektangel"}),this.addControl2Map("DragPan",{id:"pan",allowDepress:false,disabled:true,iconCls:"pan",toggleGroup:"map",enabledToggle:true,pressed:false,tooltip:"Panorer kort (shift + p): Hold venstre museknap nede og tr&aelig;k kortet"}),this.addControl2Map("FFASingleImages",{id:"fotoSingleImage",disabled:true,iconCls:"fotoSingleImage",toggleGroup:"map",enabledToggle:true,tooltip:"Klik p&aring; en position i kortet for at downloade fotos (viser kun fotos fra aktive serier)"}),this.addToolbarSeparator(),this.addControl2Map("NavigationHistory",{iconCls:"back",tooltip:"Forrige kortudsnit",disabled:true},"trigger_prev"),this.addControl2Map("NavigationHistory",{iconCls:"next",tooltip:"N&aelig;ste kortudsnit",disabled:true},"trigger_next"),this.addToolbarSeparator(),new Ext.Toolbar.Button({id:"lockFrame",disabled:true,iconCls:"lockFrameIco",tooltip:"Fastl&aring;s sorteringen af tiles. (shift + l)",enabledToggle:true,toggleGroup:"lockframe",listeners:{toggle:function(){a.mapCtrl.lockPhotoFrame(this.pressed?true:false)}}}),new Ext.Toolbar.Button({id:"fotoframe",disabled:true,iconCls:"fotoframe",tooltip:"Vis uden besk&aelig;ring",enabledToggle:true,toggleGroup:"fotoframe",handler:function(b){a.mapCtrl.setPhotoFrameVisibility(b.pressed?true:false)}}),new Ext.Toolbar.Button({id:"fotoborder",disabled:true,iconCls:"fotoborder",tooltip:"Vis besk&aelig;ringskanter",isDefault:true,pressed:true,toggleGroup:"fotoborder",enabledToggle:true,handler:function(b){a.mapCtrl.setPhotoBorderVisibility(b.pressed?true:false)}}),this.addToolbarSeparator(),new Ext.Toolbar.Button({id:"mupl1Win",allowDepress:false,pressed:true,tooltip:"1 vindue",tooltipType:"title",disabled:true,iconCls:"win1Ico",toggleGroup:"numFotoWin",handler:function(){a.enableControl("fotoSingleImage",false);a.mapCtrl.showNumberOfMaps(1)}}),new Ext.Toolbar.Button({id:"mupl2Win",allowDepress:false,tooltip:"2 vinduer",tooltipType:"title",disabled:true,iconCls:"win2Ico",toggleGroup:"numFotoWin",handler:function(){a.enableControl("fotoSingleImage",true);var b=Ext.getCmp("fotoSingleImage");if(b!=null&&b.pressed){b=Ext.getCmp("zoomIn");b&&b.toggle(true)}a.mapCtrl.showNumberOfMaps(2)}}),new Ext.Toolbar.Button({id:"mupl4Win",allowDepress:false,tooltip:"4 vinduer",tooltipType:"title",disabled:true,iconCls:"win4Ico",toggleGroup:"numFotoWin",handler:function(){a.enableControl("fotoSingleImage",true);var b=Ext.getCmp("fotoSingleImage");if(b!=null&&b.pressed){b=Ext.getCmp("zoomIn");b&&b.toggle(true)}a.mapCtrl.showNumberOfMaps(4)}}),this.addToolbarSeparator(),new Ext.Toolbar.Button({id:"adressesoegning",text:"Adresse",tooltip:"Adresse opslag",disabled:true,handler:function(){var a=viewport.dialogs.addressDiag;a&&a.showWin(this)}}),this.addToolbarSeparator(),new Ext.Toolbar.Button({id:"settingsBtn",text:"Indstillinger",tooltip:"Indstillinger",disabled:true,handler:function(){var a=viewport.dialogs.settingsDiag;a&&a.show(this)}}),this.addToolbarSeparator(),new Ext.Toolbar.Button({tooltip:"L&aelig;s mere om FlyfotoArkivet",text:"Om",disabled:false,handler:function(){winAbout=viewport.dialogs.aboutDiag;winAbout&&winAbout.show(this)}})]});FFA.toolbar.TopToolbar.superclass.initComponent.apply(this,arguments);this.keyMap=new Ext.KeyMap(document,[{key:"f",shift:true,fn:function(){var a=Ext.getCmp("zoomMaxExtent");a!=null&&a.fireEvent("click")},scope:this},{key:"i",shift:true,fn:function(){var a=Ext.getCmp("zoomIn");a!=null&&!a.pressed&&a.toggle(true)},scope:this},{key:"u",shift:true,fn:function(){var a=Ext.getCmp("zoomOut");a!=null&&!a.pressed&&a.toggle(true)},scope:this},{key:"p",shift:true,fn:function(){var a=Ext.getCmp("pan");a!=null&&!a.pressed&&a.toggle(true)},scope:this},{key:"l",shift:true,fn:function(){var a=Ext.getCmp("lockFrame");a!=null&&a.toggle()},scope:this}]);this.keyMap.disable()},enableControls:function(){this.enableControl("zoomMaxExtent");this.enableControl("zoomIn",false,true);this.enableControl("zoomOut");this.enableControl("pan");this.enableControl("fotoSingleImage");this.enableControl("lockFrame");this.enableControl("adressesoegning");this.enableControl("settingsBtn");this.enableControl("mupl1Win");this.enableControl("mupl2Win");this.enableControl("mupl4Win");this.keyMap.enable()},updateFotoBAFUIStatus:function(a){this.enableControl("fotoframe",a);this.enableControl("fotoborder",a)},addControl2Map:function(b,c,d){var a=new Ext.Button(c);this.mapCtrl.connectBtnToOLControl("OL_CTRL_"+b,a,d);return a}});FFA.toolbar.BottomToolbar=function(){};FFA.toolbar.BottomToolbar=Ext.extend(FFA.toolbar.ToolbarBase,{mapCtrl:null,autoHeight:false,height:"20px",initComponent:function(){var a=null,c=this;if(this.mapCtrl!=null){var d=this.mapCtrl.getPrimaryMap().map,b=new GeoExt.data.ScaleStore({map:d});a=new Ext.form.ComboBox({id:"scale",disabled:true,store:b,editable:false,emptyText:"Maalforhold",width:100,forceSelection:true,mode:"local",triggerAction:"all",tpl:'<tpl for="."><div class="x-combo-list-item">1 : {[FFA.toolbar.BottomToolbar.prototype.formatScale(parseInt(values.scale))]}</div></tpl>',listeners:{select:function(b,a){a&&a.data&&a.data.level>=0&&c.mapCtrl.zoomTo(a.data.level)}}});d.events.register("zoomend",this,function(){var d=b.queryBy(function(a){return this.map.getZoom()==a.data.level});if(d.length>0){d=d.items[0];a.setValue("1 : "+c.formatScale(parseInt(d.data.scale)))}else{if(!a.rendered)return;a.clearValue()}})}else a=new Ext.Panel({html:"",cls:"btnToolbarspace"});Ext.apply(this,{items:[new Ext.BoxComponent({id:"scaleLbl",disabled:true,html:"M&aring;lforhold: ",cls:"btnToolbarspace"}),a,this.addToolbarSeparator(),new Ext.BoxComponent({id:"sliderLbl",disabled:true,html:"Overbl&aelig;nding: ",cls:"btnToolbarspace",hidden:true}),new Ext.BoxComponent({id:"sliderLblBlue",disabled:true,html:"<img src='./images/blueDot.png' width='10' height='10' border='0'>",cls:"baseLayerSelectedImg",hidden:true}),{id:"slider",disabled:true,xtype:"gx_opacityslider",changeVisibility:false,aggressive:true,width:200,increment:10,minValue:0,maxValue:100,value:100,hidden:true},new Ext.BoxComponent({id:"sliderLblRed",disabled:true,html:"<img src='./images/redDot.png' width='10' height='10' border='0'>",cls:"histLayerSelectedImg",hidden:true}),this.addToolbarSeparator("sliderSep",false),new Ext.BoxComponent({id:"coordview",contentEl:"coordviewCtl",disabled:true,hidden:true})]});FFA.toolbar.ToolbarBase.superclass.initComponent.apply(this,arguments)},formatScale:function(c){var a=c.toString(),b="";if(a.length>3&&a.length%3>0){b=a.substring(0,a.length%3)+".";a=a.substring(a.length%3)}while(a!=""&&a.length>3){b=b+a.substring(0,3)+".";a=a.substring(3)}return b==""?a:b+a},toggleCoordCtrVisibility:function(a){if(a)Ext.getCmp("coordview").show();else Ext.getCmp("coordview").hide()},enableControls:function(){this.enableControl("scaleLbl");this.enableControl("scale");this.enableControl("coordview")},updateSliderStatus:function(a){this.enableControl("sliderLbl",!a);this.enableControl("sliderLblBlue",!a);this.enableControl("sliderLblRed",!a);this.changeControlVisibility("sliderLbl",a);this.changeControlVisibility("sliderLblBlue",a);this.changeControlVisibility("slider",a);this.changeControlVisibility("sliderLblRed",a);this.changeSeperatorVisibility("sliderSep",a)}});FFA.tree.TreeNodeUI=Ext.extend(Ext.tree.TreeNodeUI,{renderElements:function(a){FFA.tree.TreeNodeUI.superclass.renderElements.apply(this,arguments);this.renderMetadata(a)},renderMetadata:function(a){if(a.metaId){var b=a.ui.getEl().childNodes[0];if(b){var c="&nbsp;<a href='#' title='"+a.getOwnerTree().metadata_title+"' onclick='viewport.dialogs.metadataDiag.showWin(\""+a.text+'", "'+a.metaId+"\")' class='treenodeRadio'><img src='images/metadataicon.png' height='14' width='14' class='metalinkImg'></a>";Ext.DomHelper.insertHtml("beforeEnd",b,c)}}}});FFA.tree.TreeNode=Ext.extend(Ext.tree.TreeNode,{constructor:function(a){a=a||{};a.uiProvider=FFA.tree.TreeNodeUI;FFA.tree.TreeNode.superclass.constructor.apply(this,arguments)},isOtherLayer:function(){return this.attributes.isOtherLayer==true},updateHistLayerSelectStyle:function(a){if(a)this.getUI().addClass("histLayerSelected");else this.getUI().removeClass("histLayerSelected")},getLayerName:function(){return this.attributes.layerName},toggleCheck:function(a){if(!a)a=false;if(!this.rendered){if(this.attributes)this.attributes.checked=a}else this.getUI().toggleCheck(a)},onclick:function(){FFA.tree.TreeNode.superclass.onclick.apply(this,arguments);this.getUI().removeClass("x-tree-selected")},afterrender:function(){alert("hej");Ext.DomHelper.insertHtml("beforeEnd",node.ui.getEl().childNodes[0],"&nbsp;<a href='#' title='lll' class='treenodeRadio'><img src='images/metadataicon.png' height='14' width='14' class='metalinkImg'></a>")}});FFA.tree.TreeRadioNodeUI=Ext.extend(FFA.tree.TreeNodeUI,{renderElements:function(b,a,h,g){this.indentMarkup=b.parentNode?b.parentNode.ui.getChildIndent():"";var f=typeof a.checked=="boolean",i=b.attributes.radioGrp||"radioGrp",j="",k=a.href?a.href:Ext.isGecko?"":"#";buf=['<li class="x-tree-node"><div ext:tree-node-id="',b.id,'" class="x-tree-node-el x-tree-node-leaf x-unselectable ',a.cls,a.checked?"baseLayerSelected":"",'" unselectable="on">','<span class="x-tree-node-indent">',this.indentMarkup,"</span>",'<img src="',this.emptyIcon,'" class="x-tree-ec-icon x-tree-elbow" />','<img src="',a.icon||this.emptyIcon,'" class="x-tree-node-icon',a.icon?" x-tree-node-inline-icon":"",a.iconCls?" "+a.iconCls:"",'" unselectable="on" />',f?'<input class="x-tree-node-cb" type="radio" id="'+b.id+'" name="'+i+'" '+(a.checked?'checked="checked" />':"/>"):"",'<a><span unselectable="on" class="treenodeRadio">',b.text,"</span></a></div>",'<ul class="x-tree-node-ct" style="display:none;"></ul>',"</li>"].join("");if(a.checked)radioGroup=b.id;var e;if(g!==true&&b.nextSibling&&(e=b.nextSibling.ui.getEl()))this.wrap=Ext.DomHelper.insertHtml("beforeBegin",e,buf);else this.wrap=Ext.DomHelper.insertHtml("beforeEnd",h,buf);this.elNode=this.wrap.childNodes[0];this.ctNode=this.wrap.childNodes[1];var c=this.elNode.childNodes;this.indentNode=c[0];this.ecNode=c[1];this.iconNode=c[2];var d=3;if(f){this.checkbox=c[3];d++}this.anchor=c[d];this.textNode=c[d].firstChild;this.renderMetadata(b)},onClick:function(a){var b=a.getTarget("input");if(b){this.fireEvent("click",this.node,a);return true}b=a.getTarget("a");if(b)return true;a.stopEvent();return false},onDblClick:function(a){a.stopEvent();return false},toggleCheck:function(){FFA.tree.TreeRadioNodeUI.superclass.toggleCheck.apply(this,arguments)}});FFA.tree.TreeRadioNode=Ext.extend(FFA.tree.TreeNode,{constructor:function(a){a=a||{};a.uiProvider=FFA.tree.TreeRadioNodeUI;a.draggable=false;a.isTarget=false;a.allowDrag=false;a.allowDrop=false;a.listeners={click:this.onClick,checkchange:this.onCheckChange};FFA.tree.TreeNode.superclass.constructor.apply(this,arguments)},onClick:function(){this.changeBaseLayerByNode();return false},onCheckChange:function(b,a){a&&this.changeBaseLayerByNode();return false},changeBaseLayerByNode:function(){var a=this.getOwnerTree();if(a!=null&&a.mapCtrl!=null){var b=a.mapCtrl.changeBaseLayerByName(this.getLayerName());lNode=a.getNodeById(b);lNode&&lNode.getUI().removeClass("baseLayerSelected");this.getUI().addClass("baseLayerSelected")}},getLayerName:function(){return this.attributes.layerName}});FFA.tree.TreeRadioDragTargetNode=function(a){FFA.tree.TreeRadioDragTargetNode.superclass.constructor.call(this,a);this.allowDrop=true;this.isTarget=true;this.allowChildren=false;this.disabled=true};Ext.extend(FFA.tree.TreeRadioDragTargetNode,FFA.tree.TreeRadioNode,{});FFA.tree.TreePanel=function(){};FFA.tree.TreePanel=Ext.extend(Ext.tree.TreePanel,{treeAvailStyles:{StyleFlatList:0,StyleTree:1},treeStyle:null,qTipMinLength:2,metadata_title:"Vis metadata",handleCheckChange:false,ddGroup:"ddLayerGroup",mapCtrl:null,region:"center",id:"layers",layout:"fit",border:false,collapsible:false,hideCollapseTool:true,useArrows:true,rootVisible:true,enableDD:false,enableDrop:true,enableDrag:true,dropConfig:{ddGroup:"ddLayerGroup",appendOnly:true,onNodeDrop:function(b,e,f,a){if(!b.node.isTarget)return true;var c=a.node.getOwnerTree();if(!c&&!c.mapCtrl)return;if(c.mapCtrl.updateCustomBaseLayer(a.node)){var d=(a.node.parentNode&&a.node.parentNode.id!="hist"?a.node.parentNode.text+" - ":"")+a.node.text;b.node.setText(d);b.node.enable();b.node.toggleCheck(true)}return true},onNodeOver:function(a){return a.node.isTarget?this.dropAllowed:this.dropNotAllowed}},autoScroll:true,headerCfg:{cls:"x-panel-header"},root:{text:"Henter....",draggable:false,id:"source",rootVisible:true,leaf:true},title:"Korttema",iconCls:"nav",searchChildNodes:function(b,c){for(var a=0;a<b.childNodes.length;a++)if(b.childNodes[a].id==c)return b.childNodes[a];else if(b.childNodes[a].hasChildNodes())return this.searchChildNodes(b.childNodes[a],c);return null},addNodesToTreeInTreeStyle:function(a){var b;if(!a.children||a.children.length==0){if(a.toolTip)a.qtip=a.toolTip;return this.addLeaf(a,"")}else{b=new Ext.tree.TreeNode(a);b.draggable=false;b.isTarget=false;for(var f=b.id=="hist"&&!(this.treeStyle==this.treeAvailStyles.StyleTree),d=a.children,c=0;c<d.length;c++)if(f){var e=[];this.addNodesToTreeInFlatStyle(d[c],e,"","");b.appendChild(e)}else b.appendChild(this.addNodesToTreeInTreeStyle(d[c]));return b}},addNodesToTreeInFlatStyle:function(a,f,c,b){var d;if(!a.children||a.children.length==0){if(c.length+a.text.length>this.qTipMinLength){if(!b)b=c;if(a.toolTip)a.qtip=b+a.text+"<br />"+a.toolTip;else a.qtip=b+a.text}f.push(this.addLeaf(a,c,true))}else{d=new Ext.tree.TreeNode(a);d.draggable=false;d.isTarget=false;for(var g=a.children,e=0;e<g.length;e++)if(a.shortText)this.addNodesToTreeInFlatStyle(g[e],f,c+a.shortText+" - ",b+d.text+" - ");else this.addNodesToTreeInFlatStyle(g[e],f,c+d.text+" - ")}},addLeaf:function(a,d,c){var b=null;if(a.layerName)a.id=a.layerName;if(a.baseLayer)if(a.dropTarget)b=new FFA.tree.TreeRadioDragTargetNode(a);else b=new FFA.tree.TreeRadioNode(a);else{b=new FFA.tree.TreeNode(a);b.isTarget=false}b.leaf=true;if(a.metaId&&a.metaId!="-1")b.metaId=a.metaId;if(a.isOtherLayer)b.draggable=false;if(c)b.text=d+(a.shortText?a.shortText:b.text);return b},initComponent:function(){this.treeStyle=this.treeAvailStyles.StyleFlatList;FFA.tree.TreePanel.superclass.initComponent.apply(this,arguments)},loadData:function(b){var a=this.getRootNode();if(a){a.children=b;this.updateTreeLayout(a,this.treeStyle);this.on("checkchange",function(a,b){if(!this.handleCheckChange&&this.mapCtrl!=null){this.handleCheckChange=true;if(b)this.mapCtrl.addLayer(a);else this.mapCtrl.removeLayer(a);this.handleCheckChange=false}})}},updateTreeLayout:function(b,c){if(b){this.treeStyle=c;var a=this.addNodesToTreeInTreeStyle(b);a.children=b.children;a.leaf=false;a.expanded=true;a.visibility=false;this.rootVisible=false;this.setRootNode(a);this.render()}},getNodeById:function(b){var c=this.nodeHash[b];if(c)return c;else{var a=this.nodeHash.hist;return a?this.searchChildNodes(a,b):null}},toggleHighlightPNode:function(a,d,e){var b=false,c=a!=null?a.id:"";while(a!=null&&a.id!=this.root.id){a.eachChild(function(a){if(a.isLeaf()){if(a.ui.isChecked()&&d!=a.id){b=true;return false}}else if(c!=a.id&&Ext.fly(a).hasClass("mlLayerSelected")){b=true;return false}});if(!b)if(e){a.ui.addClass("mlLayerSelected");Ext.fly(a).addClass("mlLayerSelected")}else{a.ui.removeClass("mlLayerSelected");Ext.fly(a).removeClass("mlLayerSelected")}else return;c=a.id;a=a.parentNode}},updateLayerList:function(d){var a=this.getNodeById("hist");if(a)for(var b=0;b<a.childNodes.length;b++){a.childNodes[b].getUI().hide();for(var c=0;c<d.length;c++)a.childNodes[b].id==d[c]&&a.childNodes[b].getUI().show()}},getNoteTextById:function(b){var a=this.getNodeById(b);return a?a.text:null}});FFA.Viewport=function(){};FFA.Viewport=Ext.extend(Ext.Viewport,{id:"viewport",layout:"border",tree:null,mapCtrl:null,dialogs:null,initComponent:function(){Ext.QuickTips.init();var a=this;this.mapCtrl=new FFA.map.MapContainer;this.tree=new FFA.tree.TreePanel({mapCtrl:this.mapCtrl});Ext.apply(this,{items:[new Ext.BoxComponent({region:"north",el:"north"}),{region:"west",id:"ctrTabs",title:"Navigation",width:230,border:true,margins:"5 0 0 5",frame:false,split:true,collapsible:true,layout:"accordion",layoutConfig:{animate:true},items:[a.tree]},new Ext.Panel({id:"mainWindow",region:"center",layout:"fit",deferredRender:false,frame:false,border:true,margins:"5 5 0 0",items:[a.mapCtrl]})],dialogs:{addressDiag:new FFA.dialog.AddressDialog,settingsDiag:new FFA.dialog.SettingsDialog,aboutDiag:new FFA.dialog.AboutDialog,metadataDiag:new FFA.dialog.MetadataDialog,singleImageDiag:new FFA.dialog.SingleImageDialog}});FFA.Viewport.superclass.initComponent.apply(this,arguments)},enableControls:function(){this.mapCtrl!=null&&this.mapCtrl.enableControls()},applyFixes:function(){this.mapCtrl!=null&&this.mapCtrl.applyFixes()}});var viewport;Ext.onReady(function(){if(!isGlobalObjectDefined("model"))model="model_geomidt";viewport=new FFA.Viewport;viewport.applyFixes();ajaxJSONRequest(DATA_MODEL_URL+"model="+model,updateMapData,updateMapDataError)});function updateMapData(a){if(!a.wmsLayers||!a.model){alert("Data mangler, kontakt venlist administrator");return}if(viewport.mapCtrl&&viewport.tree){viewport.mapCtrl.getPrimaryMap().addWMSLayers(a.wmsLayers);viewport.tree.loadData(a.model);viewport.enableControls();applySkinSettings();viewport.mapCtrl.getPrimaryMap().addStdEvents()}}function applySkinSettings(){if(isGlobalObjectDefined("selectedLayersSettings")){var a=null;if(viewport.tree){if(selectedLayersSettings.baseLayer){a=viewport.tree.getNodeById(selectedLayersSettings.baseLayer);if(a){var b=viewport.tree.getNodeById(viewport.mapCtrl.getPrimaryMap().firstBaseLayer);a.getUI().toggleCheck(true);b&&b.getUI().removeClass("baseLayerSelected")}}if(selectedLayersSettings.histLayers){a=viewport.tree.getNodeById(selectedLayersSettings.histLayers);a&&a.getUI().toggleCheck(true)}if(selectedLayersSettings.otherLayers)for(i=0;i<selectedLayersSettings.otherLayers.length;i++){a=viewport.tree.getNodeById(selectedLayersSettings.otherLayers[i]);a&&a.getUI().toggleCheck(true)}}}if(isGlobalObjectDefined("centerCoords")&&isGlobalObjectDefined("startUpExtent")&&startUpExtent.length==4&&centerCoords.length==2){viewport.mapCtrl.zoomToExtent(new OpenLayers.Bounds(startUpExtent[0],startUpExtent[1],startUpExtent[2],startUpExtent[3]));viewport.mapCtrl.getPrimaryMap().updateVisibleLayer()}else viewport.mapCtrl.zoomTo(1)}function updateMapDataError(b){alert("Der opstod desv\u00e6rre en fejl under opstarten af l\u00f8sningen. Pr\u00f8v at genindl\u00e6se l\u00f8sningen ved at trykke F5\nHvis fejlen forts\u00e6tter kontakt venligst support@jo-informatik.dk?Subject=Flyfotoarkivet\n\nYderligere fejlbeskrivelse:\n"+b);if(Ext.isOpera)try{var a=navigator.userAgent.substring(navigator.userAgent.indexOf("Version/")+8);if(a!=""&&parseFloat(a)<=11)document.getElementById("OperaError").style.display="inline-block"}catch(d){}};
