

function init(){
    //eGV.Lang.ca = OpenLayersmyLocaleCa;

    var options = {
        "maxExtent": new OpenLayers.Bounds(258000,4485000,536000,4752000),
        "units": "m",
        "scales" : [1200000,500000,250000,125000,50000,25000,10000,5000,500],
        "projection": "EPSG:23031",
        "id":"eGVMapMontserrat",
        controls: [
        new OpenLayers.Control.Navigation()
        ]
        ,
        eventListeners: {
            "zoomend": changeScaleEvent,
            "addlayer": layerAdded
        }
    };


    var map = eGV.addMap(new eGV.Map("divMap",options));
    eGV.Lang.setCode("ca");
    eGV.includeStyle(eGV.scriptRoot + "egv/theme/default/style.css","csseGV");
    eGV.includeStyle("css/viewer.css","cssmap");

	
    // Esquemàtic
    var egvConnMDE = new eGV.Connection.WMS(
        "Mapa base MDE Catalunya",
        ["http://donosti.geodata.es/wms52/geodata/mapabase/mde"],
        {
            "format":"image/jpeg",
            "exceptions":"application/vnd.ogc.se_xml"
        },
        {
            "buffer":0,
            "isBaseLayer":true
        },

        {
            "id":"capesBaseMDE",
            "printServerURL":"http://donosti.geodata.es/wms52/geodata/mapabase/mde?",
            "name":"Mapa base MDE Catalunya"
        }
        );

    egvLayersMDE = [
    egvLayerMDE = new eGV.Layer({
        "name" : "mde",
        "title" : "MDE Catalunya (30 - 15 m)",
        "visible" : true,
        "queryable" : false,
        "minScale": 50000
    })
    ];

    map.addConnection(egvConnMDE);
    egvConnMDE.addLayers(egvLayersMDE);

    /*
    var eGVGroupBase = new eGV.LayersGroup({
        "id": "fonsEsq",
        "title": "Mapa esquemàtic",
        "showInLayerManager": false
        }
    );
*/
    var egvConnICC = new eGV.Connection.WMS(
        "Fons ICC",
        "http://shagrat.icc.es/lizardtech/iserv/ows",
        {
            "format":"image/jpeg",
            "exceptions":"application/vnd.ogc.se_xml"
        },
        {
            "buffer":0,
            "transitionEffect":"resize",
            "isBaseLayer":true,
            "ratio":1,
            "attribution":"&copy Institut Cartogr&agrave;fic de Catalunya"
        },

        {
            "id":"capesICC",
            "name":"Fons ICC"
        }
        );

    var egvLayersICC = [
    /*
        egvLayerTopo1 = new eGV.Layer({
            "name" : "mtc250m,mtc250m",
            "title" : "Topografic ICC 1:250.000",
            "visible" : false,
            "queryable" : false,
            "minScale": 1000000
        }),
        */
    egvLayerTopo2 = new eGV.Layer({
        "name" : "mtc50m,mtc50m",
        "title" : "Topografic ICC 1:50.000",
        "visible" : true,
        "queryable" : false,
        "maxScale": 50000,
        "minScale": 5000

    }),

    egvLayerTopo3 = new eGV.Layer({
        "name" : "mtc5m,mtc5m",
        "title" : "Topografic ICC 1:5.000",
        "visible" : true,
        "queryable" : false,
        "maxScale": 5000
    }),

    egvLayerOrto1 = new eGV.Layer({
        "name" : "sat250m,sat250m",
        "title" : "Imatge satelit ICC 1:250.000",
        "visible" : true,
        "queryable" : false,
        "minScale": 150000
    }),

    egvLayerOrto2 = new eGV.Layer({
        "name" : "orto25m,orto25m",
        "title" : "Ortofotoimatge ICC 1:25.000",
        "visible" : true,
        "queryable" : false,
        "maxScale": 150000,
        "minScale": 25000
    }),

    egvLayerOrto3 = new eGV.Layer({
        "name" : "orto5m,orto5m",
        "title" : "Ortofotoimatge ICC 1:5.000",
        "visible" : true,
        "queryable" : false,
        "maxScale": 25000,
        "minScale": 100
    })
    ];


    map.addConnection(egvConnICC);
    egvConnICC.addLayers(egvLayersICC);



    var eGVGroupTopo = new eGV.LayersGroup({
        "id": "fonsTopo",
        "title": "Mapa",
        "collapsed": false,
        "showInLayerManager": false
    }
    );
    
    var eGVGroupOrto = new eGV.LayersGroup({
        "id": "fonsOrto",
        "title": "Foto",
        "collapsed": false,
        "showInLayerManager": false
    }
    );
    eGVGroupOrto.addLayers([egvLayerOrto1,egvLayerOrto2,egvLayerOrto3]);


  


    // Referència
    var egvConnReferencia = new eGV.Connection.WMS("Referència",
        serverURL+"/wms52/ftp/ocells/referencia",
        {
            "format":"image/png",
            "exceptions":"application/vnd.ogc.se_xml",
            "transparent":"true",
            "infoFormat":"application/vnd.ogc.gml"
        },
        {
            "buffer":0,
            "ratio":1,
            "singleTile":true
        },

        {
            "id":"referencia",
            "name":"Capes de referència"
        }
        );
    egvLayersReferencia = [
    egvLayerCiutats = new eGV.Layer({
        "name" : "ciutats",
        "title" : "Toponímia nuclis urbans",
        "visible" : true,
        "queryable" : false,
        "showLegend" : false,
        "minScale": 50000
    })

    ];

    map.addConnection(egvConnReferencia);
    egvConnReferencia.addLayers(egvLayersReferencia);

    var eGVGroupReferencia = new eGV.LayersGroup({
        "id": "groupreferencia",
        "title": "Referència",
        "collapsed": false
    }

    );
 
    //eGVGroupReferencia.addLayers([egvLayerCiutats,egvLayerXarxaBasica,egvLayerXarxaComarcal]); eGVGroupReferencia.addLayer(egvLayerCiutats);
    // End

	
    //fields
  
    var eGVField00 = new eGV.Field({
        "name": "NOM_MUNI", 
        "alias": "Nom del municipi", 
        "visible": true, 
        "target": "" 
    } );
    var eGVField01 = new eGV.Field({
        "name": "CAPN_MUNI", 
        "alias": "Cap de municipi", 
        "visible": true, 
        "target": "" 
    } );
    var eGVField02 = new eGV.Field({
        "name": "SUP_MUNI",
        "alias": "Superfície (ha.)",
        "visible": true,
        "target": ""
    } );

    var eGVField10 = new eGV.Field({
        "name": "NOM3",
        "alias": "Nom de l'espai",
        "visible": true,
        "target": ""
    } );

    var eGVField20 = new eGV.Field({
        "name": "NOM_1",
        "alias": "Nom de l'espai",
        "visible": true,
        "target": ""
    } );
    //Field lists
    var eGVFieldList0 = new eGV.FieldList({
        "fields":[eGVField00,eGVField01,eGVField02], 
        "title": "Municipis de Catalunya", 
        "viewall":false
    } );

    var eGVFieldList1 = new eGV.FieldList({
        "fields":[eGVField10],
        "title": "Espais naturals", 
        "viewall":false
    } );
         
    var eGVFieldList2 = new
    eGV.FieldList({
        "fields":[eGVField20],
        "title": "Espais en propietat de l'OS",
        "viewall":false
    } );

	

	
    ///////////////////////////////////

    var egvConn2 = new eGV.Connection.WMS(
        "Límits administratius",
        serverURL+"/wms52/ftp/llenyoses/referencia", 
        {
            "format":"image/png",
            "transparent":"true",
            "exceptions":"application/vnd.ogc.se_xml",
            "infoFormat":"application/vnd.ogc.gml"
        }, 
        {
            "ratio":1,
            "singleTile":true
        },

        {
            "id":"limits",
            "name":"Límits administratius"
        } );
        
    var egvLayers2 = [
    egvLayerLim3 = new eGV.Layer({
        "id" : "limmuni",
        "name" : "municipi",
        "title" : "Límits municipals",
        "visible" : true,
        "queryable" : true,
        "fieldList": eGVFieldList0,
        "maxScale" : 600000
    }),

    egvLayerLim2 = new eGV.Layer({
        "id" : "limcom",
        "name" : "comarca",
        "title" : "Límits comarcals",
        "visible" : true,
        "queryable" : false,
        "minScale": 50000
    }),

    egvLayerLim1 = new eGV.Layer({
        "id" : "limprov",
        "name" : "provincia",
        "title" : "Límit província",
        "visible" : true,
        "queryable" : false,
        "minScale": 50000

    })
    ];

    map.addConnection(egvConn2);
    egvConn2.addLayers(egvLayers2);
	
	
	
    ///////////////////////////////////
	
    //eGVGroupBase.addLayers([egvLayerMDE,egvLayerLim1,egvLayerLim2,egvLayerLim3,egvLayerCiutats]);
	
    //Referència
    var egvConnEspais = new eGV.Connection.WMS(
        "Espais protegits",
        serverURL+"/wms52/ftp/ocells/atles",
        {
            "format":"image/png",
            "exceptions":"application/vnd.ogc.se_xml",
            "transparent":"true",
            "infoFormat":"application/vnd.ogc.gml"
        },
        {
            "buffer":0,
            "ratio":1,
            "singleTile":true
        },

        {
            "id":"espaisProtegits",
            "name":"Espais Protegits"
        }
        );
    egvLayersEspais = [
    egvLayerProtegits = new eGV.Layer({
        "name" : "espais_prot",
        "title" : "Espais naturals (PEIN + XN2000)",
        "visible" : false,
        "queryable" : true,
        "fieldList": eGVFieldList1
    }),
    egvLayerFTIP= new eGV.Layer({
        "name" : "espais_ftip",
        "title" : "Espais en propietat de l'Obra Social",
        "visible" : false,
        "queryable" : true,
        "fieldList": eGVFieldList2
    })
    ];

    map.addConnection(egvConnEspais);
    egvConnEspais.addLayers(egvLayersEspais);

    var eGVGroupEspais = new eGV.LayersGroup({
        "id": "groupespais",
        "title": "Espais protegits",
        "collapsed": false
    }
    );
    eGVGroupEspais.addLayers([egvLayerProtegits,egvLayerFTIP]);
    // POIS
		
    var egvConnPoi = new eGV.Connection.WMS(
        "Llenyoses",
        serverURL+"/wms52/ftp/llenyoses/especies",
        {
            "format":"image/png",
            "exceptions":"application/vnd.ogc.se_xml",
            "transparent":"true",
            "infoFormat":"application/vnd.ogc.gml"
        },
        {
            "buffer":0,
            "ratio":1,
            "singleTile":true,
            "isBaseLayer":false
        },

        {
            "id":"especies",
            "name":"Espècies llenyoses"
        }
        );
    egvConnPoi.olLayer.mergeNewParams({
        "id_especie" : "111"
    });
	
    var egvLayersPoi = [
    egvLayerPoi1 = new eGV.Layer({
        "id": "especies",
        "name" : "especies",
        "title" : "Cobertura",
        "visible" : true,
        "queryable" : true
    })
    ];
	
    map.addConnection(egvConnPoi);
    egvConnPoi.addLayers(egvLayersPoi);
	
	
    var eGVGroupPoi = new eGV.LayersGroup({
        "id": "grouppointsofinterest",
        "title": "Llenyoses",
        "collapsed": false
    }
    );
    eGVGroupPoi.addLayers([egvLayerPoi1]);
    // END POIS
		
    eGVGroupTopo.addLayers([egvLayerTopo2,egvLayerTopo3,egvLayerMDE,egvLayerLim1,egvLayerLim2,egvLayerLim3,egvLayerCiutats]);


    map.addControl(new OpenLayers.Control.Attribution({
        displayClass: "egvControlAttribution"
    }));
    var statusBar = eGV.addControl(new eGV.Control.ScaleStatusBar("divStatusBar",{
        "id":"stbar"
    }));
	
    var toolBar = eGV.addControl(new eGV.Control.ToolBar("divToolbar",{
        "id":"toolBar"
    }));
    map.addControl(toolBar);
    var nav = new OpenLayers.Control.NavigationHistory({
        displayClass: "egvControlButton"
    });

    nav.previous.title = eGV.Lang.translate("previous");
    nav.next.title = eGV.Lang.translate("next");
    
    map.addControl(nav);
  
    var wmsServers = new Array({
        "title":"CREAF-Mapa de cobertes, cultius i boscos",
        "url":"http://www.creaf.uab.es/cgi-bin/MiraMon5_0.cgi?"
    },

    {
        "title":"DMAH-Informació Medi Ambiental",
        "url":"http://sima.gencat.net:80/wmsconnector/com.esri.wms.Esrimap/sima2?"
    },

    {
        "title":"ICC-Base Topográfica (1:5000)",
        "url":"http://galileo.icc.es/wms/servlet/icc_bt5m_v_r?"
    },

    {
        "title":"ICC-Base Topográfica (1:50000)",
        "url":"http://galileo.icc.es/wms/servlet/icc_bt50m_v_r?"
    },

    {
        "title":"MEH-Cartografía Catastral",
        "url":"http://ovc.catastro.meh.es/Cartografia/WMS/ServidorWMS.aspx"
    },

    {
        "title":"Equipaments LocalRet",
        "url":"http://gis.localret.cat/wmsequipn/request.aspx"
    });
    map.addGroups([eGVGroupOrto,eGVGroupTopo,eGVGroupReferencia,eGVGroupEspais,eGVGroupPoi]);
    // var layerManager = eGV.addControl(new eGV.Control.LayersManagerCustom("divLayerSection",{"id":"myLayerManager","active":true,"legendType": "embedded","displayTitle":false,"displayExplanationText":false}));
    eGV.addControl(new LayersManagerCustom("divLayerSection",{
        "id":"myLayerManager",
        "active":true,
        "legendType": "embedded",
        "displayTitle":false,
        "displayExplanationText":false
    }));
  
    var controls = [
    new OpenLayers.Control.ZoomBox({
        displayClass: "egvControlButton egvControlZoomBox",
        title:"Apropar-se: seleccionar l'eina i dibuixar una finestra (o clicar) sobre el mapa."
    }),
    new OpenLayers.Control.ZoomBox({
        out: true,
        displayClass: "egvControlButton egvControlZoomOutClick",
        title:"Allunyar-se: seleccionar l'eina i clicar sobre el mapa."
    }),
    new OpenLayers.Control.Navigation({
        displayClass: "egvControlButton egvControlNavigation",
        title:"Desplaçar-se: seleccionar l\'eina i arrossegar el mapa"
    }),
    new eGV.Control({
        type: OpenLayers.Control.TYPE_BUTTON,
        displayClass: "egvControlButton egvControlZoomToMaxExtent",
        title:"Extensió total: tornar a la vista de tota Catalunya",
        trigger: MI.zoomToProvince
        }),
    new eGV.Control.InfoCustom("divLayerSection", {
        id:"infoControl",
        title: "Informació: seleccionar l'eina i clicar sobre un punt del mapa per a obtenir-ne les dades.",
        viewall : false
    }),
    nav.previous,
    nav.next,
    new eGV.Control.Ruler({
        statusbar: statusBar,
        displayClass: "egvControlButton egvControlRule",
        title :"Càlcul de distàncies: seleccionar l\'eina i clicar sobre el mapa els punt de mesura. Doble clic per finalitzar"
    }),
    new eGV.Control.Area({
        id:"eGV_AreaControl",
        statusbar: statusBar,
        displayClass: "egvControlButton egvControlArea",
        title :"Càlcul d'àrees: seleccionar l\'eina i clicar sobre el mapa els punt de mesura. Doble clic per finalitzar"
    }),
    new eGV.Control.WMSManagerCustom("divLayerSection",{
        id:"wmsControl",
        title: "WMS Manager: connexió a servidors WMS externs.",
        wmsServers: wmsServers,
        defaultWMSServer:""
    }),
    new eGV.Control({
        type: OpenLayers.Control.TYPE_BUTTON,
        displayClass: "egvControlButton egvControlLayersManager",
        title:"Gestor de capes: visualitzar les eines del gestor de capes",
        trigger: layerManagerFuncion
    })
    			
    ];
      
    toolBar.addControls(controls);
    toolBar.getControl("wmsControl").events.register("actionstart", UI, UI.displayLayersManagerDiv);
    toolBar.getControl("infoControl").events.register("actionend", UI, UI.displayLayersManagerDiv);
    
    
	  


    var baseLayers = [
    fonsTopo = eGV.getMap().getGroup("fonsTopo"),
    fonsOrto = eGV.getMap().getGroup("fonsOrto")
    ];
    eGV.addControl(new eGV.Control.BaseLayerSwitcher("divBaseLayerSwitcher",{
        activeBase:fonsTopo,
        bases:baseLayers,
        id:"eGVBaseLayersSwitcher"
    }));


    
    //here the loading bar is instantiated. the methods used for controlling its behaviour are replaced by the MI implementation
    var divLoading = document.getElementById("divMapLoading");
    var load = new OpenLayers.Control.LoadingPanel({
        div:divLoading,
        minimizeControl:MI.hideLoadingBar,
        maximizeControl:MI.showLoadingBar
    });
    map.addControl(load);
    var bounds = new OpenLayers.Bounds(258000,4485000,536000,4752000);
    map.zoomToExtent(bounds, true);
    document.getElementById('language').selectedIndex = 0;
    document.getElementById('llenyosa').selectedIndex = 0;


	
    
}

function layerManagerFuncion(){
    UI.displayLayersManagerDiv();
    eGV.getControl("myLayerManager").draw();
}

function wmsControlCall(){	
    eGV.getControl("toolBar").getControl("wmsControl").trigger();
}


