var info;
var popup;
var popup;
        var Popup = OpenLayers.Class(OpenLayers.Popup.FramedCloud, {
            onclick: function(e) {
                //OpenLayers.Event.stop(e, false);
            }
        });
var selected_text;
selected_text= ""; 
function disp_text()
   {
    f = document.getElementById('selectZoomArea');
    w = f.selectedIndex; 
   selected_text = f.options[w].text;
   }
// create namespace
Ext.namespace('toolbarExample');

// Caching Norgeskart
var url = "http://gatekeeper1.geonorge.no/BaatGatekeeper/gk/gk.cache?" + "gkt=" + key;
var urlNIB = "http://wms.geonorge.no/skwms1/wms.norgeibilder/" + ticket + "?";
OpenLayers.Util.onImageLoadErrorColor = 'transparent';
var map;
///
OpenLayers.Control.Click = OpenLayers.Class(OpenLayers.Control, {
    defaultHandlerOptions: {
        'single': true,
        'double': false,
        'pixelTolerance': 0,
        'stopSingle': false,
        'stopDouble': false
    },

    initialize: function(options) {
        this.handlerOptions = OpenLayers.Util.extend(
        {}, this.defaultHandlerOptions
                );
        OpenLayers.Control.prototype.initialize.apply(
                this, arguments
                );
        this.handler = new OpenLayers.Handler.Click(
                this, {
            'click': this.trigger
        }, this.handlerOptions
                );
    },

    trigger: function(e) {
        var lonlat = map.getLonLatFromViewPortPx(e.xy);
        alert("Du klikket nÃ¦r " + lonlat.lat + " N, " + lonlat.lon + " E");
    }

});

////

function zoomMap(minX, minY, maxX, maxY) {
    map.zoomToExtent(new OpenLayers.Bounds(minX, minY, maxX, maxY));
}
// Zoom til kommune
function zoomMapOnChange(value) {
    if (value) {
        value = value.split(";");
        var id = value[0];
        var extent = value[1].split(",");
        if (extent[0] != '0') {
            zoomMap(extent[0], extent[1], extent[2], extent[3]);
        }
    }
}
function get_poi(value) {
	var poi_url = 'http://naturkart.no/kulturminnekart/Ostfoldkart/POI/get_POI.php?file=';
    if (value) {
        var id = value[0];
        window.location.href=(poi_url+value);    
    }
}
// create application
toolbarExample.app = function() {
    OpenLayers.ProxyHost = "/cgi-bin/proxy.cgi?url=";

    // private vars:
    var toolbar, viewport, vectorLayer;

    // private functions
    var createMap = function() {
        map = new OpenLayers.Map('mymap', {
            projection: "EPSG:32632",
            controls: [new OpenLayers.Control.MousePosition({numDigits:2}),new OpenLayers.Control.ScaleLine(),new OpenLayers.Control.PanZoomBar()],
            maxExtent: new OpenLayers.Bounds(-2000000.0,3500000.0,3545984.0,9045984.0),
            units: "m",
            maxResolution:21664.0,   // tilsvarer zoom level 3 (hele er 21664.0)
            numZoomLevels: 19       // egentlig 18, men maxResolution tilsvarer zoom level 3 (fÃ¸lgelig er 0-3 skrudd av) 
        });

 map.addControl(new OpenLayers.Control.LoadingPanel());
        function mousePositionWestSouthformatOutput(lonLat) {
            var s = new Proj4js.Point(lonLat.lon, lonLat.lat);
            Proj4js.transform(new Proj4js.Proj("EPSG:32632"), new Proj4js.Proj("EPSG:4326"), s);

            var digits = parseInt(mousePositionWestSouth.numDigits, 10);

            var newHtml =
                    '<table width="100%" height="100%" border="0">' +
                        //Application coordinates
                    '<tr><td align="center">' +
                    'EPSG 32632 X / Y:<br />' +
                    lonLat.lon.toFixed(0) +
                    mousePositionWestSouth.separator +
                    lonLat.lat.toFixed(0) +
                    mousePositionWestSouth.suffix +
                    '</td></tr>' +

                        //ESPG:4326 (WGS 84)
                    '<tr><td align="center">' +
                    'EPSG 4326 Lat / Lon:<br />' +
                    s.y.toFixed(digits) + mousePositionWestSouth.separator + s.x.toFixed(digits) +
                    '</td></tr>' +

                        //Image coordinates
                        //'<tr><td align="center">' +
                        //'<br />' +
                        //'X / Y: ' + map.getPixelFromLonLat(lonLat).x + mousePositionWestSouth.separator + map.getPixelFromLonLat(lonLat).y +
                        //'</td></tr>' +

                        //Scale
                    '<tr><td align="center">' +
                        //'EPSG 4326 Lat / Lon:<br />' +
                    'M&aring;lestokk 1:' + Math.round(map.getScale()) +
                    '</td></tr>' +
                    '</table>';
            return newHtml;
        }

        // ##### TESTING mouseposition
        //View mouse position in west-south panel
        var mousePositionWestSouth = new OpenLayers.Control.MousePosition({
            div: document.getElementById('help'),
            formatOutput: mousePositionWestSouthformatOutput
        });
        map.addControl(mousePositionWestSouth);
        // #### END TESTING ##############
    };


    var createWmsLayer = function(name, url, params, options) {
        map.addLayer(new OpenLayers.Layer.WMS(name, url, params, options));
    };
    var createWfsLayer = function(name, url, params, options) {
        map.addLayer(new OpenLayers.Layer.WFS(name, url, params, options));
    };
    var createGmlLayer = function(name, url, params, options) {
        map.addLayer(new OpenLayers.Layer.GML(name, url, params, options));
    };
    var createMapServerLayer = function(name, url, params, options) {
        map.addLayer(new OpenLayers.Layer.MapServer(name, url, params, options));
    };

    var addMapControls = function() {
        // navigation control
        var navControl = new OpenLayers.Control.Navigation({
            type: OpenLayers.Control.TYPE_TOGGLE,
            zoomWheelEnabled: true
        });
        map.addControl(navControl);
        navControl.activate();
    };

    var createToolbar = function() {
        toolbar = new mapfish.widgets.toolbar.Toolbar({
            map: map,
            configurable: false
        });

        // this is a quick fix for http://trac.mapfish.org/trac/mapfish/ticket/126
        toolbar.autoHeight = false;
        toolbar.height = 25;
    };

    var addSeparator = function() {
        toolbar.add(new Ext.Toolbar.Spacer());
        toolbar.add(new Ext.Toolbar.Separator());
        toolbar.add(new Ext.Toolbar.Spacer());
    };   
    // Custom rendering Template
    var resultTpl = new Ext.XTemplate(
        '<tpl for="."><div class="search-item"><h3>{navn} <span class="norm">({komm})</span>',
        '<span>{gardsnavn}',
        '<tpl if="art!=&quot;&quot;">',
        ' ({art})',
        '</tpl>',     
        '</span></h3></div></tpl>'
    );
  Ext.QuickTips.init(); // to display button quicktips
 //  var value = Ext.get("date").dom.options[Ext.get("date").dom.selectedIndex].value;  
   var ds = new Ext.data.Store({
        proxy: new Ext.data.HttpProxy({
             method: 'GET',
             url: 'ajax/get_data.php',
             baseParams: 'query'
        }),
     //   baseParams:{komm:  document.getElementById('selectZoomArea').options[document.getElementById('selectZoomArea').selectedIndex].text},
     //   autoLoad: {params:{start: 0, limit: 10}},
        reader: new Ext.data.JsonReader({
            root: 'data',
            totalProperty: 'totalCount',
            id: 'locid'
        }, [
        	{name: 'locid', mapping: 'locid'},
            {name: 'gardsnavn', mapping: 'gardsnavn'},
            {name: 'navn', mapping: 'navn'},
            {name: 'x', mapping: 'x'},	
            {name: 'y', mapping: 'y'},
            {name: 'bilde', mapping: 'bilde'},
            {name: 'komm', mapping: 'komm'},
            {name: 'art', mapping: 'art'},
            {name: 'lokalitetsid', mapping: 'lokalitetsid'}
        ] )
    });
ds.on('beforeload', function(store) {
//  ## remove this at least!! //       ds.baseParams = {komm:  document.getElementById('selectZoomArea').options[document.getElementById('selectZoomArea').selectedIndex].text};
    Ext.apply(ds.baseParams, {
    	komm: document.getElementById('selectZoomArea').options[document.getElementById('selectZoomArea').selectedIndex].text
    });
    });
     var freeTextSearch = new Ext.form.ComboBox({
        store: ds,
        displayField:'navn',
        minChars : 3,//for input query param
        typeAhead: false,
        loadingText: 'S&oslash;ker...',
    	width: 220,
    	autoHeight :true,
        pageSize:20,
        hideTrigger:true,
        emptyText:'Skriv inn søketekst...',
        minLengthText : 'Søket må ha minst 3 tegn ...',
        istEmptyText : 'Ingen treff!',
        tpl: resultTpl,
   //     applyTo: 'search',
        itemSelector: 'div.search-item',
        onSelect: function(record){ 
              var x =String.format('{0}'); var y =String.format('{1}'); 
     //         map.setCenter(new OpenLayers.LonLat(record.data.x,record.data.y), 10);
              
                var ll = new OpenLayers.LonLat(record.data.x,record.data.y);
   				map.setCenter(ll, 14);
   				var xy = map.getViewPortPxFromLonLat(ll);
   				xy.x = Math.round(xy.x);
				xy.y = Math.round(xy.y);
   				info.getInfoForClick({xy: xy}); // info being a reference to the
												// GetFeatureInfo control;
              //  String.format('http://extjs.com/forum/showthread.php?t={0}&p={1}', record.data.topicId, record.id);
             // var combo = Ext.getCmp('selectZoomArea'); alert(combo.getValue());
              
        }
    });
	var createViewport = function() {
        viewport = new Ext.Viewport({
            layout: 'border',
            items: [
                new Ext.BoxComponent({
                    region: 'north',
                    el: 'north',
                    height: 40
                }),{
                    region: 'west',
                    // title: 'OVERSIKT',
                    split: false,
                    collapsible: false,
                    collapseMode: 'mini',
                    frame: true,
                    width: 200,
                    minSize: 175,
                    maxSize: 400,
                    margins: '0 0 0 5',
                    layout: 'border',
                    autoScroll: false,
                    defaults: {
                        border: true,
                        frame: true
                    },
                    items: [
                        {
                            region: 'center',
                            id: 'west-panel',
                            //	title: 'Navigering',
                            //split: true,
                            width: 200,
                            //frame: true,
                            minSize: 175,
                            maxSize: 400,
                            //collapsible: true,
                            margins: '0 0 0 0',
                            //		layout: 'accordion',
                            layoutConfig:{
                                animate: true
                            },
                            items: [
                                {
                                    title: 'Velg kart og kulturminner',
                                    region: 'north',
                                    collapsible: false,
                                    autoHeight: true,
                                    xtype: 'layertree',
                                    map: map
                                },
                                {
                                    //	layout:'border',
                                    title:'G&aring; til kommune:',
                                    collapsed: false,
                                    titleCollapse: false,
                                    items: [
                                        {
                                            region: 'center',
                                            contentEl: 'zoomToArea',
                                            border: false
                                        }
                                    ]
                                },
                                {
                                    title: 'S&oslash;k etter kulturminner:',
                                    height: 100,
                                    split:true,
                                    collapsible: false,
                                    autoScroll: false,
                                    tools: [{id:'help',
                                    handler: function(event, toolEl, panel){
								        if (!panel.tooltip) {
								            panel.tooltip = new Ext.ToolTip({
								            target: toolEl,
								            html: '<p>Her kan du søke både med tekst og tall, f.eks. lokalitetsnummer, navn, type kulturminne (gravhaug), el. <br/>Velger du kommune først begrenses søket til valgt kommune. Nullstill kommune-valget ved å velge <b>Hele Østfold</b>.<p>',
								            title: 'Tips for å søke',
								            autoHide: false,
								            closable: true,
								            draggable:true
								            });
								        }
								        panel.tooltip.show();
								    }
								}],
                                
                                	items: [freeTextSearch] }, 
                                {
                                    title: 'Last ned GPS filer til Garmin:',
                                    height: 150,
                                    collapsible: false,
                                    items: [{
                                    contentEl: 'nodelist'
                                    }]
                                }
                            ]
                        },
                        {
                            title: 'Kartdatum',
                            height: 120,
                            minSize: 120,
                            maxSize: 300,
                            split:true,
                            collapsible: false,
                            autoScroll: true,
                            region: 'south',
                            contentEl: 'help'
                        }
                    ]
                },{
                    region: 'center',
                    //title: 'map',
                    layout: 'fit',
                    frame: false,
                    border: true,
                    margins: '5 5 0 0',
                    items: [
                        {
                            xtype: 'mapcomponent',
                            map: map,
                            tbar: toolbar,
                            border: false
                        }
                    ]
                },{
                    region: 'south',
                    id: 'statusBar',
                    border: false,
                    bodyStyle: 'text-align:left;padding:0px;',
                    height: 25,
                    margins: '5 0 0 0',
                    frame: true,
                    html: 'a status bar'
                }
            ]
        });
    };

    var setToolbarContent = function() {

        toolbar.addControl(
                new OpenLayers.Control.ZoomToMaxExtent({
                    map: map,
                    title: 'Zoom til kartets maksimumsvisning'
                }), {
            iconCls: 'zoomfull',
            toggleGroup: 'map'
        }
                );

        addSeparator();

        toolbar.addControl(
                new OpenLayers.Control.ZoomBox({
                    title: 'Zoom inn: klikk i kartet eller bruk venstre museknapp for å tegne en rektangel'
                }), {
            iconCls: 'zoomin',
            toggleGroup: 'map'
        }
                );
        toolbar.addControl(
                new OpenLayers.Control.ZoomBox({
                    out: true,
                    title: 'Zoom ut: klikk i kartet eller bruk venstre museknapp for å tegne en rektangel'
                }), {
            iconCls: 'zoomout',
            toggleGroup: 'map'
        }
                );
        toolbar.addControl(
                new OpenLayers.Control.DragPan({
                    isDefault: true,
                    title: 'Pan kartet: hold venstre museknapp inne og dra i kartet'
                }), {
            iconCls: 'pan',
            toggleGroup: 'map'
        }
                );
        toolbar.addControl(
                new OpenLayers.Control.DragPan({
                    title: 'Vis info: klikk på et ikon for å vise mere informasjon'
                }), {
            iconCls: 'info',
            toggleGroup: 'map'
        }
                );
        addSeparator();

        //	addSeparator();
        var nav = new OpenLayers.Control.NavigationHistory();
        map.addControl(nav);
        nav.activate();
        var buttonPrevious = new Ext.Toolbar.Button({
            iconCls: 'back',
            tooltip: 'Forrige visning',
            disabled: true,
            handler: nav.previous.trigger
        });
        var buttonNext = new Ext.Toolbar.Button({
            iconCls: 'next',
            tooltip: 'Neste visning',
            disabled: true,
            handler: nav.next.trigger
        });

        toolbar.add(buttonPrevious);
        toolbar.add(buttonNext);

        addSeparator();
        //measure handler
        //createMeasureControls = function(map, toolbar) {
        // style the sketch fancy
        var sketchSymbolizers = {
            "Point": {
                pointRadius: 4,
                graphicName: "square",
                fillColor: "white",
                fillOpacity: 1,
                strokeWidth: 1,
                strokeOpacity: 1,
                strokeColor: "#333333"
            },
            "Line": {
                strokeWidth: 3,
                strokeOpacity: 1,
                strokeColor: "#666666",
                strokeDashstyle: "dash"
            },
            "Polygon": {
                strokeWidth: 2,
                strokeOpacity: 1,
                strokeColor: "#666666",
                fillColor: "white",
                fillOpacity: 0.3
            }
        };
        //Style of measure controls
        var style = new OpenLayers.Style();
        style.addRules([
            new OpenLayers.Rule({symbolizer: sketchSymbolizers})
        ]);
        var styleMap = new OpenLayers.StyleMap({"default": style});
        // Measure bottons and functionalities
        var measureControls = {
            line: new OpenLayers.Control.Measure(
                    OpenLayers.Handler.Path, {
                persist: true,
                handlerOptions: {
                    layerOptions: {styleMap: styleMap}
                		}
            		}
                 ),
            polygon: new OpenLayers.Control.Measure(
                    OpenLayers.Handler.Polygon, {
                persist: true,
                handlerOptions: {
                    layerOptions: {styleMap: styleMap}
                		}
            		}
                   )};
        var control;
        var iconclass;

        function handleMeasurements(event) {
            var units;
            var geometry = event.geometry;
            var order = event.order;
            var element = document.getElementById('measurementText');
            var out = "";
            if (order == 1) {
                var length = calcVincenty(geometry);
                units = " m";
                if (length > 1000.0) {
                    length /= 1000;
                    units = " km";
                }
                out = " Avstand: ";
                out += length.toFixed(2) + units;
            } else {
                var area = approxPolyAreaOnSphere(geometry);
                units = " m";
                if (area > 1000000.0) {
                    area /= 1000000;
                    units = " km";
                }
                out = " Areal: ";
                out += area.toFixed(2) + units + "<sup>2</sup>";
            }
            element.innerHTML = out;
        }

        for (var key in measureControls) {
            control = measureControls[key];
            if (key == 'line') {
                iconclass = 'calculateLength';
                tiptool = 'M&aring;l avstand';
            } else {
                iconclass = 'calculateArea';
                tiptool = 'M&aring;l areal';
            }
            control.events.on({
                "measure": handleMeasurements,
                "measurepartial": handleMeasurements
            });
            toolbar.addControl(control, {
                iconCls: iconclass,
                toggleGroup: 'map',
                tooltip: tiptool
            });
        }

        toolbar.add(new Ext.Toolbar.Spacer());
        toolbar.addElement('measurementText');
        function toRadian(angle) {
            return angle * Math.PI / 180.0;
        }

        // Distance and surface calculators
        var target_proj = new OpenLayers.Projection("EPSG:4326");
        var source_projection = new OpenLayers.Projection("EPSG:32632");

        function transformToLatLon(point) {
            var new_point = new OpenLayers.Geometry.Point(point.x, point.y);
            OpenLayers.Projection.transform(new_point, source_projection, target_proj);
            return new_point;
        }

        function calcVincenty(geometry) {
            var dist = 0;
            for (var i = 1; i < geometry.components.length; i++) {
                // transform to EPSG:4326
                var first_wgs = transformToLatLon(geometry.components[i - 1]);
                var second_wgs = transformToLatLon(geometry.components[i]);
                dist += OpenLayers.Util.distVincenty(
                {lon: first_wgs.x, lat: first_wgs.y},
                {lon: second_wgs.x, lat: second_wgs.y}
                        );
            }
            return dist * 1000.0; // in [m]
        }

        function approxPolyAreaOnSphere(geometry) {
            var area = 0.0;
            if (geometry.components && (geometry.components.length > 0)) {
                var linear_ring = geometry.components[0];
                if (linear_ring.components && (linear_ring.components.length > 2)) {
                    // calculate area of polygon on sphere
                    var factor = 6378137.0 * 6378137.0 / 2.0;
                    for (var i = 0; i < linear_ring.components.length - 1; i++) {
                        // transform to EPSG:4326
                        var first_wgs = transformToLatLon(linear_ring.components[i]);
                        var second_wgs = transformToLatLon(linear_ring.components[i + 1]);
                        area += toRadian(second_wgs.x - first_wgs.x) * (2 + Math.sin(toRadian(first_wgs.y)) + Math.sin(toRadian(second_wgs.y)));
                    }
                    area = Math.abs(area * factor);
                }
            }
            return area;
        }

        nav.previous.events.register(
                "activate",
                buttonPrevious,
                function() {
                    this.setDisabled(false);
                }
                );
        nav.previous.events.register(
                "deactivate",
                buttonPrevious,
                function() {
                    this.setDisabled(true);
                }
                );
        nav.next.events.register(
                "activate",
                buttonNext,
                function() {
                    this.setDisabled(false);
                }
                );
        nav.next.events.register(
                "deactivate",
                buttonNext,
                function() {
                    this.setDisabled(true);
                }
                );

    };

    // public space:
    return {
        setStatus: function(text) {
            Ext.getCmp('statusBar').body.dom.innerHTML = text;
        },
        init: function() {
            createMap();
            // Norgeskart og europa cached
           createWmsLayer('Bakgrunnskart', url,
           {layers: 'europa', format: 'image/png',transparent: 'true'},
           {isBaseLayer: true, transitionEffect: 'resize', buffer: 0,ratio: 1,} 
            		);     
        	createWmsLayer('Norgeskart', url,
           {layers: 'topo2', format: 'image/jpeg',transparent: 'true'},
           {isBaseLayer: false, visibility: true, transitionEffect: 'resize', buffer: 0,ratio: 1,}
                   );

           createWmsLayer('Norge i bilder', urlNIB,
           {layers: 'SatelliteImage,OrtofotoAlle', format: 'image/png',transparent: 'true'},
           { singleTile: true, ratio: 1, isBaseLayer: false, visibility: false, transitionEffect: 'resize'}
                   );        
            createWmsLayer(
                    "<span class='arkminne'>Arkeologiske minner</span>", "http://naturkart.no:8080/geoserver/wms",
            {layers: 'kulturminner_ns:arkminne',format: 'image/png', transparent: 'true'}, {singleTile: true, ratio: 1, isBaseLayer:false}
                    );

            createWmsLayer(
                    "<span class='kulturminne'>Kulturminner</span>", "http://naturkart.no:8080/geoserver/wms",
            {layers: 'kulturminner_ns:alleMinusArkminne',format: 'image/png', transparent: 'true'}, { singleTile: true, ratio: 1, isBaseLayer:false}
                    );

            addMapControls();
            createToolbar();
            createViewport();

//            map.setCenter(new OpenLayers.LonLat(627740, 6583720), 7);
            //   if (!map.getCenter()) map.zoomToMaxExtent();
            setToolbarContent();
            toolbar.activate();

           // var popup;
          //  var info;
            	info = new OpenLayers.Control.WMSGetFeatureInfo({
                url: 'http://naturkart.no:8080/geoserver/wms',
                title: 'Identify features by clicking',
                queryVisible: true,
                infoFormat:'application/vnd.ogc.gml',
                eventListeners: {
                    getfeatureinfo: function(event) {
                        if (popup) {
                            map.removePopup(popup);
                        }
                        var contentHtml = '';
                        // Manage the features
                        if (event.features.length > 0) {
                            for (var i = 0; i < event.features.length; i++) {
                                var feature = event.features[i];
                                // Identify the type
                                if (feature.gml.featureType == 'arkminne' || feature.gml.featureType == 'alleMinusArkminne') {
                                    // Create HTML content for this feature type
                                    //  contentHtml = contentHtml + '<br><h1>' + feature.gml.featureType + '</h1>';
                                    var gardsnavn = feature.attributes['gardsnavn'];
                                    var navn = feature.attributes['navn'];
                                    var epost = feature.attributes['epost'];
                                    var lokalitetsid = feature.attributes['lokalitetsid'] 
                                    if (gardsnavn === null) {
                                        gardsnavn = '';
                                    }
                                    if (navn === null) {
                                        navn = '';
                                    }
                                    contentHtml = contentHtml + '<h2>' + feature.attributes['art'] + '</h2>';
                                    contentHtml = contentHtml + gardsnavn + ' | ' + navn + '<br/>';
                                    if (feature.attributes['bilde']>0){
                                    var imgcount = feature.attributes['bilde'];
                                    var lokalitetsid = feature.attributes['lokalitetsid'];
                                    var i=0;
                                    for (i=1;i<=imgcount;i++){
                                    contentHtml = contentHtml + '<a class="group" rel="lightbox" href="Eksport/BilderAvKulturminner/512/'+ lokalitetsid +'-'+i+'.jpg" /><img src="Eksport/BilderAvKulturminner/80/'+ lokalitetsid +'-'+i+'.jpg" /></a>&nbsp;';
                                    }
                                    };
                                    contentHtml = contentHtml + '<span class="lesPDF">Les <a href="' + feature.attributes['urltilpdfark'] + '" target="_blank">mer</a> om dette minne.</span>';
                                    contentHtml = contentHtml + '<span class="popItem"><a href="http://kulturminnekart.no/ostfold/?x='+feature.attributes['x']+'&amp;y='+feature.attributes['y']+'">Direkte link</a> til dette minne.</span>';
                                    contentHtml = contentHtml + '<span class="sendMail"><a href="mailto:' +epost+ '?subject=Tilleggsopplysninger om kulturminnenr. '+lokalitetsid+'&body=Direkte link til kulturminne:%0Ahttp://kulturminnekart.no/ostfold/?x='+feature.attributes['x']+'%26y='+feature.attributes['y']+'%0AOpplysninger:%0A">Meld inn</a> opplysninger om dette eller andre kulturminner.</span><br/>';                                    }
                            }
                        } else {
                            // Doesn't show any popup if no features.
                            return;
                        }
                        var popup = new Popup(
                                "chicken",
                                map.getLonLatFromPixel(event.xy),
                                null,
                                contentHtml,
                                null,
                                true
                                );
                        popup.autoSize = true;
                        map.addPopup(popup, true);
      			      	Ext.ux.Lightbox.register("a[rel^=lightbox]",true);
                    }
                }
            });
            map.addControl(info);
            info.activate();
            
        // If URL contains ref. to a location:
                        var args = OpenLayers.Util.getParameters();
            if (args.x && args.y) {
                var position = new OpenLayers.LonLat(parseFloat(args.x), parseFloat(args.y));
                map.setCenter(position, 12);
                var xy = map.getViewPortPxFromLonLat(position);
                xy.x = Math.round(xy.x);
                xy.y = Math.round(xy.y);
                   info.getInfoForClick({xy: xy});
            	} else {
                	map.setCenter(new OpenLayers.LonLat(627740, 6583720), 7);
            		}
		// display some text in the status bar:
            Ext.get('loading').remove();
            Ext.get('loading-mask').fadeOut({remove:true});
            this.setStatus('Status: map app ready');
        }
   };   
}(); // end of app
