GisArts.storeFields = {};
GisArts.storeFields['adres_zoeken'] =
[
    'num_woonplaats',
    'num_huisnummer',
    'num_openbare_ruimte',
    'huisnummers',
    'num_huisletter',
    'num_postcode',
    'num_type'
];

GisArts.colModel = {};

GisArts.colModel['adres_zoeken_search'] = new Ext.grid.ColumnModel(
    [
        {
            header: "Straatnaam",
            width: 100,
            sortable: true,
            dataIndex: 'num_openbare_ruimte'
        },
        {
            header: "Huisnummer",
            width: 75,
            sortable: true,
            dataIndex: 'huisnummers'
        },
        {
            header: "Woonplaats",
            width: 100,
            sortable: true,
            dataIndex: 'num_woonplaats'
        }
    ]
);

GisArts.featureInfoStart = function(evt) { 
    OpenLayers.Element.addClass(GisArts.app.map.viewPortDiv, "olCursorWait"); 
};

// scope is htmlObj
GisArts.markerClick = function(evt) {
    var wh = window.open(this.fotoURL, 'Foto', 'width=1024,height=768,scrollbars=no,toolbar=no,location=no');
    if (wh) {
        wh.focus();
    } else {
        Ext.MessageBox.show({icon: Ext.MessageBox.WARNING, 
            title: OpenLayers.i18n('gisarts.warning.title'),
            msg: OpenLayers.i18n('gisarts.popupwarning.text'),
            buttons: Ext.MessageBox.OK});
    }
};

GisArts.featureInfoEnd = function(evt) {
    OpenLayers.Element.removeClass(GisArts.app.map.viewPortDiv, "olCursorWait"); 
    if (GisArts.app.tooltip) {
        GisArts.app.tooltip.destroy();
    }
    var htmlObj = GisArts.createHTML(evt);
    // on click open up the big photo
    var marker = evt.object.marker;
    marker.events.element.style.cursor = 'pointer';
    if (htmlObj.fotoURL) {
        marker.events.register('click', htmlObj, GisArts.markerClick);
    }
    if (htmlObj.html !== '') {
        GisArts.app.tooltip = new Ext.ToolTip({target:marker.events.element,
            html: htmlObj.html, title: "Deze boom is kapvergunningplichtig", 
            autoHide:true, draggable:false, showDelay: 0});
        evt.getXY = function() { return [this.xy.x, this.xy.y]; };
        GisArts.app.tooltip.onMouseMove(evt);
        GisArts.app.tooltip.show();
    } else {
        Ext.MessageBox.show({icon: Ext.MessageBox.WARNING, title:
            "Waarschuwing", msg:
            "Geen beschermde boom gevonden.",
            buttons: Ext.MessageBox.OK});
    }
};

GisArts.createHTML = function(evt) {
    var html = '';
    var url = null;
    for (var i=0, len = evt.featurelist.length; i<len; i++) {
        for (var j=0, lenj = evt.featurelist[i].features.length; j<lenj; j++) {
            var urlValue = null;
            for (attr in evt.featurelist[i].features[j].attributes) {
                if (attr == 'url') {
                    urlValue = evt.featurelist[i].features[j].attributes[attr];
                } else {
                    var val;
                    if (attr === 'stamdiameter') {
                        val = evt.featurelist[i].features[j].attributes[attr] + ' cm';
                    } else if (attr === 'hoogte') {
                        val = evt.featurelist[i].features[j].attributes[attr] + ' m';
                    }
                    else if (attr === 'nederlandse_naam') {
                        val = '<b>'+evt.featurelist[i].features[j].attributes[attr]+'</b>';
                    } else {
                        val = evt.featurelist[i].features[j].attributes[attr];
                    }
                    attr = attr.replace('_', ' ');
                    html += attr + ": " + val + '<br/>';
                }
            }
            if (urlValue) {
                url = urlValue;
                var thumbnail = url.replace("/bomen/", "/bomen-thumbnails/");
                html += '<img width="204" height="153" src="'+thumbnail+'">';
            }
        }
    }
    return {html: html, fotoURL: url};
};

GisArts.createSearchOptions = function(map) {
    return [{
        xtype: 'searchoption',
        requestMethod: 'POST',
        url: GisArts.WFSOnlineResource,
        outputFormat: {type: 'GML2', mimetype: 'GML2'},
        bodyStyle: 'padding:10px;',
        maxFeatures: 250,
        map: map,
        typename: "adres_zoeken",
        searchfields: [
            {type: 'PROPERTYISLIKE', propertyname: 'num_openbare_ruimte', label: 'Straatnaam'},
            {type: 'PROPERTYISLIKE', propertyname: 'huisnummers', label: 'Huisnummer'},
            {type: 'PROPERTYISLIKE', propertyname: 'num_woonplaats', label: 'Woonplaats'}
        ],
        title: 'Adres zoeken'
    }];
};

GisArts.createModel = function() {
    return [
        {
            text: "Gemeentegrens",
            leaf: false,
            expanded: true,
            layerName: "Basis:gemeentegrens",
            checked: true,
            children: [
                {
                    text: "Gemeentegrens",
                    icon: "img/gemeentegrens.png",
                    leaf: true,
                    checked: true
                }
            ]
        },
		{
            text: "BAG",
            leaf: false,
            expanded: true,
            checked: true,
            children: [
                {
                    text: "Woonplaatsen",
                    icon: "img/woonplaats.png",
                    leaf: true,
                    layerName: "Basis:woonplaatsen",
                    maxScale: 125000,
                    checked: false
                },
		  {
                    text: "Adressen",
                    icon: "img/huisnummer.png",
                    maxScale: 3500,
                    leaf: true,
                    layerName: "Basis:Adres",
                    checked: true
                },
                {
                    text: "Panden",
                    icon: "img/gebouw.png",
                    leaf: true,
                    layerName: "Basis:gebouwen",
                    maxScale: 12500,
                    checked: true
                },
		  {
                    text: "Voorlopige panden",
                    icon: "img/voorlopiggebouw.gif",
                    leaf: true,
                    layerName: "Basis:gebouwen",
                    maxScale: 12500,
                    checked: true
                },
		  {
                    text: "Standplaatsen",
                    icon: "img/standplaats.gif",
                    leaf: true,
                    layerName: "Basis:gebouwen",
                    maxScale: 12500,
                    checked: true
                }
            ]
        },
        {
            text: "Topografie",
            leaf: false,
            expanded: true,
            checked: true,
            children: [
                {
                    text: "Topografie",
                    icon: "img/raster.gif",
                    maxScale: 12500,
                    leaf: true,
                    layerName: "Basis:topografie",
                    checked: true
                },
                {
                    text: "Straatnamen",
                    icon: "img/straatnaam.png",
                    maxScale: 3500,
                    leaf: true,
                    layerName: "Basis:straatnamen",
                    checked: true
                }
            ]
        },
        {
            text: "Kadastrale informatie",
            leaf: false,
            expanded: true,
            checked: true,
            layerName: "Basis:kadastrale_kaart",
            children: [
                {
                    text: "Percelen",
                    maxScale: 12500,
                    icon: "img/kadperceel.png",
                    leaf: true,
                    checked: true
                }
            ]
        },
        {
            text: "Beschermde bomen",
            leaf: false,
            expanded: true,
            checked: true,
            children: [                {
                    text: "Beschermde bomen",
	             layerName: "Bomen:beschermde_bomen",
                    icon: "img/bomen.png",
                    maxScale: 12500,
                    leaf: true,
                    checked: true
                }
            ]
        },
        {
           text: "Bomenstructuur",
           layerName: "Basis:structuur",
           leaf: true,
           checked: true,
           expanded: true,
           children: [
                   {text: "Bossen", icon: "img/bossen.gif", maxScale: 12500},
                   {text: "Hoofdbomenstructuur", icon: "img/hoofdbomenstructuur.gif", maxScale: 12500},
                   {text: "Nevenbomenstructuur", icon: "img/nevenbomenstructuur.gif", maxScale: 12500},
                   {text: "Hoofdbomenstructuur derden", icon: "img/hoofdbomenstructuurderden.gif", maxScale: 12500}
            ]
        },
	 {
           text: "Gebieden aanlegvergunning",
           layerName: "Basis:bomen_aanlegvergunning",
           leaf: true,
           checked: false,
           expanded: false,
           children: [
                   {text: "Aanlegvergunning", icon: "img/aanlegvergunning.gif", maxScale: 25000}
            ]
        },
        {
            text: "Luchtfoto's",
            leaf: false,
            expanded: true,
            checked: false,
            layerName: "Luchtfoto",
            children: [
                {
                    text: "2011",
                    maxScale: 12500,
                    icon: "img/luchtfoto.jpg",
                    leaf: true,
                    checked: false
                }
            ]
        },
        {
            text: "Cyclorama",
            leaf: false,
            expanded: true,
            layerName: "Cyclorama",
            checked: true,
            children: [
                {
                    text: "360 graden foto",
                    icon: "img/cyclo2011.gif",
                    maxScale: 3500,
                    leaf: true,
                    checked: false
                }
            ]
        }
     ];
};

