var viewport;var overviewWin;var styleWin;var helpWin;var onGetExt=function(response){var box=response.responseText;var tabCoords=box.split(",");bounds=new OpenLayers.Bounds(tabCoords[0],tabCoords[1],tabCoords[2],tabCoords[3]);map.zoomToExtent(bounds);}
var onSelectCommune=function(combo,record){Ext.Ajax.request({url:'commune.php',success:onGetExt,params:{i:record.get('i')}});}
var onJsonError=function(dataProxy,options,response,e){var errJsonReader=new Ext.data.JsonReader({root:"errs",successProperty:'ok',fields:["msg"]});if(response.status==200){var rs=errJsonReader.read(response);alert("Erreur: "+rs.records[0].get('msg'));}else
alert("Connexion impossible au serveur ("+response.status+")");}
var createViewport=function(){viewport=new Ext.Viewport({layout:'border',items:[new Ext.BoxComponent({region:'north',el:'north',height:32,margins:{left:5,top:5}}),{region:'west',width:230,border:true,margins:'5 0 5 5',frame:false,split:true,layout:'anchor',collapsible:true,items:[{title:'Zoom rapide sur une commune',bodyStyle:'padding:5px',xtype:'form',border:false,anchor:'100%',hideLabels:true,items:[{id:'communeSel',xtype:'combo',width:190,typeAhead:true,forceSelection:true,emptyText:"Entrez un nom..",loadingText:"R&eacute;cuperation de la liste..",displayField:'n',valueField:'i',tpl:'<tpl for="."><div class="x-combo-list-item">{n} ({i})</div></tpl>',triggerAction:'all',store:new Ext.data.JsonStore({url:'commune.php',listeners:{loadexception:onJsonError}}),listeners:{select:onSelectCommune}}]},{title:'Arbre des couches',bodyStyle:'padding:3px',xtype:'layertree',id:'layerTree',map:map,model:treemodel,enableDD:true,anchor:'100% -61',border:false,plugins:[mapfish.widgets.LayerTree.createDisableLayersPlugin(72),mapfish.widgets.LayerTree.createContextualMenuPlugin(['opacitySlideDirect'])]}]},{region:'center',layout:'fit',frame:false,border:true,margins:'5 5 5 0',items:[{xtype:'gx_mappanel',id:'mapPanel',map:map,tbar:ttoolbar,bbar:btoolbar,border:false}]}]});overviewWin=new Ext.Window({title:"Carte de situation",width:186,closable:false,items:[{html:'<div id="overviewMapContainer"></div>'}]});overviewWin.show();helpWin=new Ext.Window({title:"Aide",closable:true,width:600,height:400,closeAction:'hide',id:'helpwin',autoScroll:true,autoLoad:'help.html'});styleWin=new Ext.Window({title:"Style de dessin",closable:true,height:250,closeAction:'hide',layout:'accordion',layoutConfig:{animate:true},items:[{id:'fillPanel',title:'Style du fond',xtype:'panel',items:[{id:'fillColorPalette',xtype:'colorpalette',value:currentstyle.fillColor},{id:'fillOpacity',xtype:'slider',increment:5,value:currentstyle.fillOpacity,plugins:new GeoExt.SliderTip({getText:function(slider){return"Transparence:"+slider.getValue()+"%";}})}]},{id:'strokePanel',title:'Style de trait',xtype:'panel',items:[{id:'strokeColorPalette',xtype:'colorpalette',value:currentstyle.strokeColor},{id:'strokeWidth',xtype:'combo',mode:'local',listWidth:147,width:130,editable:false,triggerAction:'all',title:"Epaisseur de trait",store:[[0,'0px'],[1,'1px'],[2,'2px'],[3,'3px'],[4,'4px'],[5,'5px']],tpl:'<tpl for="."><div class="x-combo-list-item">{text}<div style="border-top:{text} solid; height:0px; width:100px"></div></div></tpl>',emptyText:"Epaisseur"}]},{id:'fontPanel',title:'Style de texte',xtype:'panel',items:[{id:'textColorPalette',xtype:'colorpalette',value:currentstyle.textColor},{id:'textSize',xtype:'combo',mode:'local',listWidth:147,width:130,editable:false,triggerAction:'all',title:"Taille du texte",store:['9pt','10pt','11pt','12pt','14pt','16pt','20pt'],tpl:'<tpl for="."><div class="x-combo-list-item" style="font-size:{text}">{text}</div></tpl>',emptyText:"Taille"}]}]});};var btoolbar,ttoolbar;var createToolbars=function(){ttoolbar=new Ext.Toolbar({autoHeight:false,height:30});btoolbar=new Ext.Toolbar({autoHeight:false,height:25});}
function createPopup(title,items,lonlat,width){var popup=new GeoExt.Popup({title:title,map:map,layout:'fit',lonlat:lonlat,items:items});if(Ext.isIE)popup.setWidth(width);popup.show();}
function handleDistanceMeasurements(event){var vertices=event.geometry.getVertices();var geometry=vertices[vertices.length-1];var lonlat=new OpenLayers.LonLat(geometry.x,geometry.y);createPopup("Mesure de distance",[{xtype:'label',html:"Distance: "+event.measure.toFixed(1)+" "+event.units,cls:'craig-popup'}],lonlat,180);}
function handleAreaMeasurements(event){var surface;var geometry=event.geometry.getCentroid();var lonlat=new OpenLayers.LonLat(geometry.x,geometry.y);if(event.units=='km')
surface=event.measure.toFixed(1)*100;else
surface=event.measure.toFixed(1)/10000;createPopup("Mesure de surface",[{xtype:'label',html:"Surface: "+surface+" ha",cls:'craig-popup'}],lonlat,180);}
function resizeColumnsWidth(g){var v=g.getView();var cm=g.getColumnModel();for(var j=0;j<cm.getColumnCount();j++){var e=v.getHeaderCell(j);var m=Ext.util.TextMetrics.createInstance(e);var w=m.getWidth(e.textContent||e.innerText);for(var k=0,n=v.getRows().length;k<n;k++){e=v.getCell(k,j);m=Ext.util.TextMetrics.createInstance(e);w=Math.max(w,m.getWidth(e.textContent||e.innerText));}
cm.setColumnWidth(j,w+12);}}
function handleGetFeatureInfo(event){var couches=new Array();if(event.features.length==0){createPopup("Attention",[{xtype:'label',html:"Aucun objet &agrave; l'endroit s&eacute;lectionn&eacute;",cls:'craig-popup'}],map.getLonLatFromViewPortPx(event.xy),230);return;}
for(var i=0;i<event.features.length;i++){var f=event.features[i];var found=0;for(var j=0;j<couches.length&&found==0;j++){if(couches[j].type==f.type){found=1;couches[j].records.push(f.attributes);}}
if(found==0){var c={type:f.type,columns:new Array(),fields:new Array(),records:new Array()};c.records.push(f.attributes);for(var attr in f.attributes){c.columns.push({header:attr,dataIndex:attr});c.fields.push(attr);}
couches.push(c);}}
var panel=new Ext.TabPanel({width:600,height:200,activeTab:0});for(var i=0;i<couches.length;i++){var c=couches[i];panel.add(new Ext.grid.GridPanel({store:new Ext.data.JsonStore({fields:c.fields,autoLoad:true,data:c.records}),loadMask:true,columns:c.columns,autoScroll:true,deferRowRender:false,title:c.type,listeners:{activate:resizeColumnsWidth}}));}
createPopup("Objets",[panel],map.getLonLatFromViewPortPx(event.xy),610);}
function btnToggled(button,state){var iconpath=button.icon;var btEl=button.getEl().child(button.buttonSelector);var selTool=btoolbar.items.get('selectedTool');if(state){btEl.setStyle('background-image','url('+iconpath.replace(".png","-enabled.png")+')');if(selTool)
selTool.setText(button.tooltip,false);}else{btEl.setStyle('background-image','url('+iconpath.replace("-enabled.png",".png")+')');if(selTool)
selTool.setText('aucun');}}
function createZoomToMaxExtent(){return new GeoExt.Action({control:new OpenLayers.Control.ZoomToMaxExtent(),tooltip:"Zoomer sur l'ensemble de l'&eacute;tendue",map:map,iconCls:'btn-toolbar',icon:'../images/boutons/affichage_initial.png'});}
function createZoomIn(){return new GeoExt.Action({control:new OpenLayers.Control.ZoomIn(),tooltip:'Zoomer',map:map,iconCls:'btn-toolbar',icon:'../images/boutons/zoom_plus.png'});}
function createZoomBox(){return new GeoExt.Action({control:new OpenLayers.Control.ZoomBox(),tooltip:'Zoomer sur une boite',map:map,iconCls:'btn-toolbar',icon:'../images/boutons/zoom_rectangle.png',toggleGroup:'map',toggleHandler:btnToggled});}
function createZoomOut(){return new GeoExt.Action({control:new OpenLayers.Control.ZoomOut(),tooltip:'D&eacute;zoomer',map:map,iconCls:'btn-toolbar',icon:'../images/boutons/zoom_moins.png'});}
function createDragPan(){return new GeoExt.Action({control:new OpenLayers.Control.DragPan({isDefault:true}),tooltip:'D&eacute;placer',map:map,iconCls:'btn-toolbar',icon:'../images/boutons/deplacer.png',toggleGroup:'map',toggleHandler:btnToggled});}
var drawVectorFeatureHandler=function(geometry){var newPoly=new OpenLayers.Feature.Vector(geometry,{},{fillColor:'#'+currentstyle.fillColor,fillOpacity:1-(currentstyle.fillOpacity/100.0),strokeColor:'#'+currentstyle.strokeColor,strokeOpacity:1,strokeWidth:currentstyle.strokeWidth,pointRadius:6});drawlayer.addFeatures(newPoly);}
function createDrawPoint(){var drawPointCtrl=new OpenLayers.Control.DrawFeature(drawlayer,OpenLayers.Handler.Point);drawPointCtrl.handler.callbacks.done=drawVectorFeatureHandler;return new GeoExt.Action({control:drawPointCtrl,tooltip:'Dessiner un point',map:map,iconCls:'btn-toolbar',icon:'../images/boutons/dessiner_point.png',toggleGroup:'map',toggleHandler:btnToggled});}
function createDrawCircle(){var drawCircleCtrl=new OpenLayers.Control.DrawFeature(drawlayer,OpenLayers.Handler.RegularPolygon,{handlerOptions:{sides:40,angle:0,irregular:true}});drawCircleCtrl.handler.callbacks.done=drawVectorFeatureHandler;return new GeoExt.Action({control:drawCircleCtrl,tooltip:'Dessiner un cercle',map:map,iconCls:'btn-toolbar',icon:'../images/boutons/dessiner_cercle.png',toggleGroup:'map',toggleHandler:btnToggled});}
function createDrawPath(){var drawPathCtrl=new OpenLayers.Control.DrawFeature(drawlayer,OpenLayers.Handler.Path);drawPathCtrl.handler.callbacks.done=drawVectorFeatureHandler;return new GeoExt.Action({control:drawPathCtrl,tooltip:'Dessiner une ligne',map:map,iconCls:'btn-toolbar',icon:'../images/boutons/dessiner_ligne.png',toggleGroup:'map',toggleHandler:btnToggled});}
function createDrawPoly(){var drawPolyCtrl=new OpenLayers.Control.DrawFeature(drawlayer,OpenLayers.Handler.Polygon);drawPolyCtrl.handler.callbacks.done=drawVectorFeatureHandler;return new GeoExt.Action({control:drawPolyCtrl,tooltip:'Dessiner un polygone',map:map,iconCls:'btn-toolbar',icon:'../images/boutons/dessiner_polygone.png',toggleGroup:'map',toggleHandler:btnToggled});}
function createDrawTxt(){var drawTxtCtrl=new OpenLayers.Control.DrawFeature(drawlayer,OpenLayers.Handler.Point);drawTxtCtrl.handler.callbacks.done=function(geometry){Ext.MessageBox.prompt('Texte','Entrez le texte:',function(btn,returnValue){if(btn=='ok'){drawlayer.addFeatures(new OpenLayers.Feature.Vector(geometry,{text:returnValue},{label:returnValue,fontColor:'#'+currentstyle.textColor,fontSize:currentstyle.textSize}));}});}
return new GeoExt.Action({control:drawTxtCtrl,tooltip:'Ecrire du texte',map:map,iconCls:'btn-toolbar',icon:'../images/boutons/texte.png',toggleGroup:'map',toggleHandler:btnToggled});}
function createModifyFeature(){return new GeoExt.Action({control:new OpenLayers.Control.ModifyFeature(drawlayer,{mode:OpenLayers.Control.ModifyFeature.ROTATE|OpenLayers.Control.ModifyFeature.RESHAPE|OpenLayers.Control.ModifyFeature.DRAG}),tooltip:'Modifier un objet',map:map,iconCls:'btn-toolbar',icon:'../images/boutons/deplacer_dessin.png',toggleGroup:'map',toggleHandler:btnToggled});}
function createShowStylewin(){Ext.getCmp('fillColorPalette').on('select',function(palette,selColor){currentstyle.fillColor=selColor;var features=drawlayer.selectedFeatures;if(features.length){features[0].style.fillColor='#'+selColor;drawlayer.redraw();}});Ext.getCmp('strokeColorPalette').on('select',function(palette,selColor){currentstyle.strokeColor=selColor;var features=drawlayer.selectedFeatures;if(features.length){features[0].style.strokeColor='#'+selColor;drawlayer.redraw();}});Ext.getCmp('fillOpacity').on('change',function(slider,value){currentstyle.fillOpacity=value;var features=drawlayer.selectedFeatures;if(features.length){features[0].style.fillOpacity=1-(value/100.0);drawlayer.redraw();}});Ext.getCmp('strokeWidth').on('select',function(combo,record,idx){currentstyle.strokeWidth=record.get('value');var features=drawlayer.selectedFeatures;if(features.length){features[0].style.strokeWidth=record.get('value');drawlayer.redraw();}});Ext.getCmp('textColorPalette').on('select',function(slider,value){currentstyle.textColor=value;var features=drawlayer.selectedFeatures;if(features.length){features[0].style.textColor=value;drawlayer.redraw();}});Ext.getCmp('textSize').on('select',function(combo,record,idx){currentstyle.textSize=record.get('text');var features=drawlayer.selectedFeatures;if(features.length){features[0].style.textSize=record.get('text');drawlayer.redraw();}});return new Ext.Action({handler:function(){styleWin.show();styleWin.alignTo(Ext.get('mapPanel'),'tr-tr',[-10,40]);},tooltip:'Changer le style de dessin',iconCls:'btn-toolbar',icon:'../images/boutons/palette_couleur.png'});}
function createGetFeatureInfo(){var featureInfo=new OpenLayers.Control.WMSGetFeatureInfo({maxFeatures:10,queryVisible:true,drillDown:true,infoFormat:"application/vnd.ogc.gml",layerUrls:queryablelayerurls,layers:map.getLayersByName(queryablelayersname)});featureInfo.events.on({"getfeatureinfo":handleGetFeatureInfo});return new GeoExt.Action({control:featureInfo,map:map,iconCls:'btn-toolbar',icon:'../images/boutons/information.png',tooltip:'Information',toggleGroup:'map',toggleHandler:btnToggled});}
function createLineMeasure(){var lineMeasure=new OpenLayers.Control.Measure(OpenLayers.Handler.Path);lineMeasure.events.on({"measure":handleDistanceMeasurements});return new GeoExt.Action({control:lineMeasure,map:map,iconCls:'btn-toolbar',icon:'../images/boutons/mesurer.png',tooltip:'Mesurer une distance',toggleGroup:'map',toggleHandler:btnToggled});}
function createPolygonMeasure(){var polygonMeasure=new OpenLayers.Control.Measure(OpenLayers.Handler.Polygon);polygonMeasure.events.on({"measure":handleAreaMeasurements});return new GeoExt.Action({control:polygonMeasure,map:map,iconCls:'btn-toolbar',icon:'../images/boutons/calculer_surface.png',tooltip:'Mesurer une surface',toggleGroup:'map',toggleHandler:btnToggled});}
function createNextPrevious(){ctrl=new OpenLayers.Control.NavigationHistory();map.addControl(ctrl);return[new GeoExt.Action({tooltip:"Vue pr&eacute;c&eacute;dente",control:ctrl.previous,iconCls:'btn-toolbar',icon:'../images/boutons/vue_precedente.png',disabled:true}),new GeoExt.Action({tooltip:"Vue suivante",control:ctrl.next,iconCls:'btn-toolbar',icon:'../images/boutons/vue_suivante.png',disabled:true})];}
function createZoomSelector(){var scaleStore=new GeoExt.data.ScaleStore({map:map});var zoomSelector=new Ext.form.ComboBox({store:scaleStore,width:150,tpl:'<tpl for="."><div class="x-combo-list-item">1 : {[parseInt(Math.round(values.scale))]}</div></tpl>',editable:false,triggerAction:'all',mode:'local'});zoomSelector.on('select',function(combo,record,index){map.zoomTo(record.data.level);},this);map.events.register('zoomend',this,function(){var scale=scaleStore.queryBy(function(record){return this.map.getZoom()==record.data.level;});if(scale.length>0){scale=scale.items[0];zoomSelector.setValue("1 : "+parseInt(Math.round(scale.data.scale)));}else{if(!zoomSelector.rendered)return;zoomSelector.clearValue();}});zoomSelector.setValue("1 : "+parseInt(Math.round(map.scales[map.zoom])));return zoomSelector;}
function createHelpWin(){return new Ext.Action({text:'Aide',handler:function(){helpWin.show();}});}
function createSelectedToolLabel(){return new Ext.form.Label({cls:'toolbar-label',html:'Outil s&eacute;lectionn&eacute;&nbsp;:&nbsp'});}
function createSelectedTool(){return new Ext.form.Label({cls:'toolbar-label',id:'selectedTool',text:'aucun'});}
function createCoordsField(){var coordsField=new Ext.form.Label({id:"mouseCoords",cls:'toolbar-label'});return coordsField;}
function createMousePositionControl(){var ctrl=new OpenLayers.Control.MousePosition({id:0,prefix:'Coordonn&eacute;es X : ',separator:' - Y : ',div:document.getElementById("mouseCoords"),displayProjection:new OpenLayers.Projection("EPSG:2154"),numDigits:0});map.addControl(ctrl);}
function createCoordsProjSelector(){var storeCoords=new Ext.data.SimpleStore({fields:['id','coords'],data:[['1','Lambert 93'],['2','Lambert 2 etendu'],['3','Wgs 84']]});var coordsSelector=new Ext.form.ComboBox({store:storeCoords,displayField:'coords',title:'Coordonn&eacute;es',typeAhead:true,editable:false,bodyStyle:'text-align:left;padding:0px;',mode:'local',valueField:'id',width:120,triggerAction:'all',value:'1',selectOnFocus:true});coordsSelector.on('select',function(item){var ctrl=map.getControl(0);switch(item.getValue()){case'1':{ctrl.displayProjection=new OpenLayers.Projection("EPSG:2154");ctrl.numDigits=0;break;}case'2':{ctrl.displayProjection=new OpenLayers.Projection("EPSG:27572");ctrl.numDigits=0;break;}case'3':{ctrl.displayProjection=new OpenLayers.Projection("EPSG:4326");ctrl.numDigits=2;break;}}},this);return coordsSelector;}
var fillToolbars=function(){ttoolbar.add(createZoomToMaxExtent());ttoolbar.add(' ','-',' ');ttoolbar.add(createZoomIn());ttoolbar.add(createZoomBox());ttoolbar.add(createZoomOut());ttoolbar.add(createDragPan());ttoolbar.add(' ','-',' ');ttoolbar.add(createDrawPoint())
ttoolbar.add(createDrawCircle())
ttoolbar.add(createDrawPath())
ttoolbar.add(createDrawTxt())
ttoolbar.add(createModifyFeature());ttoolbar.add(createShowStylewin());ttoolbar.add(' ','-',' ');ttoolbar.add(createGetFeatureInfo());ttoolbar.add(createLineMeasure());ttoolbar.add(createPolygonMeasure());ttoolbar.add(' ','-',' ');ttoolbar.add(createNextPrevious());ttoolbar.add(' ','-',' ');ttoolbar.add(createZoomSelector());btoolbar.add(createHelpWin());btoolbar.add(' ','-',' ');btoolbar.add(createSelectedToolLabel());btoolbar.add(createSelectedTool());btoolbar.addFill();btoolbar.addField(createCoordsField());createMousePositionControl();btoolbar.add(' ','-',' ');btoolbar.add(createCoordsProjSelector());};function removeMask(){maskdiv=document.getElementById("loading-mask");maskdiv.style.display="none";}
OpenLayers.ProxyHost='proxy?url=';Ext.BLANK_IMAGE_URL='js/mapfish/ext/resources/images/default/s.gif';Ext.namespace('appli');appli.app=function(){var createMap=function(){map=new OpenLayers.Map({projection:"EPSG:2154",controls:[],maxExtent:new OpenLayers.Bounds(620000,6390000,820000,6640000),scales:(typeof(mapscales)=="object"?mapscales:[500000,250000,100000,50000,25000,10000,5000,2500,1000,500]),units:'m'});};var createDrawLayer=function(){drawlayer=new OpenLayers.Layer.Vector("drawlayer");map.addLayer(drawlayer);};var addLayers=function(){map.addLayer(new OpenLayers.Layer("Empty",{isBaseLayer:true}));for(var i=0;i<tmslayers.length;i++)
map.addLayer(new OpenLayers.Layer.TMS(tmslayers[i].name,tmslayers[i].url,tmslayers[i].options));for(var i=0;i<wmslayers.length;i++)
map.addLayer(new OpenLayers.Layer.WMS(wmslayers[i].name,wmslayers[i].url,wmslayers[i].params,wmslayers[i].options));if(drawlayer)
createDrawLayer();};var addMapControls=function(){var navControl=new OpenLayers.Control.Navigation({type:OpenLayers.Control.TYPE_TOGGLE,zoomWheelEnabled:true});map.addControl(navControl);navControl.activate();map.addControl(new OpenLayers.Control.KeyboardDefaults());var options={layers:[new OpenLayers.Layer.Image('Overview','images/overview.png',new OpenLayers.Bounds(616645.461,6373912.479,825766.407,6652274.139),new OpenLayers.Size(150,200),{numZoomLevels:1})],div:Ext.get('overviewMapContainer'),size:new OpenLayers.Size(160,210),mapOptions:{units:'m',projection:"EPSG:2154"}};overviewWin.alignTo(Ext.get('mapPanel'),'tl-tl',[10,40]);var ovControl=new OpenLayers.Control.OverviewMap(options);ovControl.isSuitableOverview=function(){return true;};map.addControl(ovControl);map.addControl(new OpenLayers.Control.ScaleLine({'bottomOutUnits':''}));map.addControl(new OpenLayers.Control.LoadingPanel());map.addControl(new OpenLayers.Control.Attribution());};return{init:function(){Ext.QuickTips.init();createMap();addLayers();createToolbars();createViewport();addMapControls();fillToolbars();if(typeof(finish)=="function")
finish();}};}();Ext.onReady(appli.app.init,appli.app,{delay:Ext.isIE?200:0});
