OpenLayers.Util.extend(OpenLayers.Lang.de,{'Attributes':'Attribute','Delete feature':'Objekt l&ouml;schen','Delete Feature':'Objekt l&ouml;schen','Do you really want to delete this feature ?':'Wirklich l&ouml;schen ?','Delete':'Löschen','Export KML':'skizzierte Elemente speichern als KML','Export':'Exportieren','Import KML':'KML importieren','Import':'Importieren','Edit Feature':'skizziertes Objekt editieren','LineString':'Linie','MultiLineString':'Mehrfachlinie','Point':'Punkt','MultiPoint':'Mehrfachpunkt','Polygon':'Polygon','MultiPolygon':'MultiPolygon','Label':'Beschriftung','Create point':'Punkt skizzieren','Create line':'Linie skizzieren:Ende mit Doppelklick','Create polygon':'Fläche skizzieren:Ende mit Doppelklick','Create label':'Text skizzieren','Delete all features':'Alle skizzierten Objekte l&ouml;schen','DeleteAll':'Alles löschen','Delete All Features':'Alle Objekte l&ouml;schen','Do you really want to delete all features ?':'Wollen Sie wirklich alle Objekte l&ouml;schen ?','RedLining Panel':'Zeichenmenu','Close':'Schliessen'});;(function(){Downloadify=window.Downloadify={queue:{},uid:(new Date).getTime(),getTextForSave:function(b){if(b=Downloadify.queue[b])return b.getData();return""},getFileNameForSave:function(b){if(b=Downloadify.queue[b])return b.getFilename();return""},saveComplete:function(b){(b=Downloadify.queue[b])&&b.complete();return true},saveCancel:function(b){(b=Downloadify.queue[b])&&b.cancel();return true},saveError:function(b){(b=Downloadify.queue[b])&&b.error();return true},addToQueue:function(b){Downloadify.queue[b.queue_name]=b},getUID:function(b){if(b.id=="")b.id="downloadify_"+Downloadify.uid++;return b.id}};Downloadify.create=function(b,c){b=typeof b=="string"?document.getElementById(b):b;return new Downloadify.Container(b,c)};Downloadify.Container=function(b,c){var a=this;a.el=b;a.enabled=true;a.dataCallback=null;a.filenameCallback=null;a.data=null;a.filename=null;function f(){a.options=c;if(!a.options.append)a.el.innerHTML="";a.flashContainer=document.createElement("span");a.el.appendChild(a.flashContainer);a.queue_name=Downloadify.getUID(a.flashContainer);if(typeof a.options.filename==="function")a.filenameCallback=a.options.filename;else if(a.options.filename)a.filename=a.options.filename;if(typeof a.options.data==="function")a.dataCallback=a.options.data;else if(a.options.data)a.data=a.options.data;var d={queue_name:a.queue_name,width:a.options.width,height:a.options.height},e={allowScriptAccess:"always"},g={id:a.flashContainer.id,name:a.flashContainer.id};if(a.options.enabled===false)a.enabled=false;if(a.options.transparent===true)e.wmode="transparent";if(a.options.downloadImage)d.downloadImage=a.options.downloadImage;swfobject.embedSWF(a.options.swf,a.flashContainer.id,a.options.width,a.options.height,"10",null,d,e,g);Downloadify.addToQueue(a)}a.enable=function(){var d=document.getElementById(a.flashContainer.id);d.setEnabled(true);a.enabled=true};a.disable=function(){var d=document.getElementById(a.flashContainer.id);d.setEnabled(false);a.enabled=false};a.getData=function(){if(!a.enabled)return"";return a.dataCallback?a.dataCallback():a.data?a.data:""};a.getFilename=function(){return a.filenameCallback?a.filenameCallback():a.filename?a.filename:""};a.complete=function(){typeof a.options.onComplete==="function"&&a.options.onComplete()};a.cancel=function(){typeof a.options.onCancel==="function"&&a.options.onCancel()};a.error=function(){typeof a.options.onError==="function"&&a.options.onError()};f()};Downloadify.defaultOptions={swf:"media/downloadify.swf",downloadImage:"images/download.png",width:100,height:30,transparent:true,append:false}})();typeof jQuery!="undefined"&&function(b){b.fn.downloadify=function(c){return this.each(function(){c=b.extend({},Downloadify.defaultOptions,c);var a=Downloadify.create(this,c);b(this).data("Downloadify",a)})}}(jQuery);;var swfobject=function(){var b="undefined",Q="object",n="Shockwave Flash",p="ShockwaveFlash.ShockwaveFlash",P="application/x-shockwave-flash",m="SWFObjectExprInst",j=window,K=document,T=navigator,o=[],N=[],i=[],d=[],J,Z=null,M=null,l=null,e=false,A=false;var h=function(){var v=typeof K.getElementById!=b&&typeof K.getElementsByTagName!=b&&typeof K.createElement!=b,AC=[0,0,0],x=null;if(typeof T.plugins!=b&&typeof T.plugins[n]==Q){x=T.plugins[n].description;if(x&&!(typeof T.mimeTypes!=b&&T.mimeTypes[P]&&!T.mimeTypes[P].enabledPlugin)){x=x.replace(/^.*\s+(\S+\s+\S+$)/,"$1");AC[0]=parseInt(x.replace(/^(.*)\..*$/,"$1"),10);AC[1]=parseInt(x.replace(/^.*\.(.*)\s.*$/,"$1"),10);AC[2]=/r/.test(x)?parseInt(x.replace(/^.*r(.*)$/,"$1"),10):0}}else{if(typeof j.ActiveXObject!=b){var y=null,AB=false;try{y=new ActiveXObject(p+".7")}catch(t){try{y=new ActiveXObject(p+".6");AC=[6,0,21];y.AllowScriptAccess="always"}catch(t){if(AC[0]==6){AB=true}}if(!AB){try{y=new ActiveXObject(p)}catch(t){}}}if(!AB&&y){try{x=y.GetVariable("$version");if(x){x=x.split(" ")[1].split(",");AC=[parseInt(x[0],10),parseInt(x[1],10),parseInt(x[2],10)]}}catch(t){}}}}var AD=T.userAgent.toLowerCase(),r=T.platform.toLowerCase(),AA=/webkit/.test(AD)?parseFloat(AD.replace(/^.*webkit\/(\d+(\.\d+)?).*$/,"$1")):false,q=false,z=r?/win/.test(r):/win/.test(AD),w=r?/mac/.test(r):/mac/.test(AD);/*@cc_on q=true;@if(@_win32)z=true;@elif(@_mac)w=true;@end@*/return{w3cdom:v,pv:AC,webkit:AA,ie:q,win:z,mac:w}}();var L=function(){if(!h.w3cdom){return}f(H);if(h.ie&&h.win){try{K.write("<script id=__ie_ondomload defer=true src=//:><\/script>");J=C("__ie_ondomload");if(J){I(J,"onreadystatechange",S)}}catch(q){}}if(h.webkit&&typeof K.readyState!=b){Z=setInterval(function(){if(/loaded|complete/.test(K.readyState)){E()}},10)}if(typeof K.addEventListener!=b){K.addEventListener("DOMContentLoaded",E,null)}R(E)}();function S(){if(J.readyState=="complete"){J.parentNode.removeChild(J);E()}}function E(){if(e){return}if(h.ie&&h.win){var v=a("span");try{var u=K.getElementsByTagName("body")[0].appendChild(v);u.parentNode.removeChild(u)}catch(w){return}}e=true;if(Z){clearInterval(Z);Z=null}var q=o.length;for(var r=0;r<q;r++){o[r]()}}function f(q){if(e){q()}else{o[o.length]=q}}function R(r){if(typeof j.addEventListener!=b){j.addEventListener("load",r,false)}else{if(typeof K.addEventListener!=b){K.addEventListener("load",r,false)}else{if(typeof j.attachEvent!=b){I(j,"onload",r)}else{if(typeof j.onload=="function"){var q=j.onload;j.onload=function(){q();r()}}else{j.onload=r}}}}}function H(){var t=N.length;for(var q=0;q<t;q++){var u=N[q].id;if(h.pv[0]>0){var r=C(u);if(r){N[q].width=r.getAttribute("width")?r.getAttribute("width"):"0";N[q].height=r.getAttribute("height")?r.getAttribute("height"):"0";if(c(N[q].swfVersion)){if(h.webkit&&h.webkit<312){Y(r)}W(u,true)}else{if(N[q].expressInstall&&!A&&c("6.0.65")&&(h.win||h.mac)){k(N[q])}else{O(r)}}}}else{W(u,true)}}}function Y(t){var q=t.getElementsByTagName(Q)[0];if(q){var w=a("embed"),y=q.attributes;if(y){var v=y.length;for(var u=0;u<v;u++){if(y[u].nodeName=="DATA"){w.setAttribute("src",y[u].nodeValue)}else{w.setAttribute(y[u].nodeName,y[u].nodeValue)}}}var x=q.childNodes;if(x){var z=x.length;for(var r=0;r<z;r++){if(x[r].nodeType==1&&x[r].nodeName=="PARAM"){w.setAttribute(x[r].getAttribute("name"),x[r].getAttribute("value"))}}}t.parentNode.replaceChild(w,t)}}function k(w){A=true;var u=C(w.id);if(u){if(w.altContentId){var y=C(w.altContentId);if(y){M=y;l=w.altContentId}}else{M=G(u)}if(!(/%$/.test(w.width))&&parseInt(w.width,10)<310){w.width="310"}if(!(/%$/.test(w.height))&&parseInt(w.height,10)<137){w.height="137"}K.title=K.title.slice(0,47)+" - Flash Player Installation";var z=h.ie&&h.win?"ActiveX":"PlugIn",q=K.title,r="MMredirectURL="+j.location+"&MMplayerType="+z+"&MMdoctitle="+q,x=w.id;if(h.ie&&h.win&&u.readyState!=4){var t=a("div");x+="SWFObjectNew";t.setAttribute("id",x);u.parentNode.insertBefore(t,u);u.style.display="none";var v=function(){u.parentNode.removeChild(u)};I(j,"onload",v)}U({data:w.expressInstall,id:m,width:w.width,height:w.height},{flashvars:r},x)}}function O(t){if(h.ie&&h.win&&t.readyState!=4){var r=a("div");t.parentNode.insertBefore(r,t);r.parentNode.replaceChild(G(t),r);t.style.display="none";var q=function(){t.parentNode.removeChild(t)};I(j,"onload",q)}else{t.parentNode.replaceChild(G(t),t)}}function G(v){var u=a("div");if(h.win&&h.ie){u.innerHTML=v.innerHTML}else{var r=v.getElementsByTagName(Q)[0];if(r){var w=r.childNodes;if(w){var q=w.length;for(var t=0;t<q;t++){if(!(w[t].nodeType==1&&w[t].nodeName=="PARAM")&&!(w[t].nodeType==8)){u.appendChild(w[t].cloneNode(true))}}}}}return u}function U(AG,AE,t){var q,v=C(t);if(v){if(typeof AG.id==b){AG.id=t}if(h.ie&&h.win){var AF="";for(var AB in AG){if(AG[AB]!=Object.prototype[AB]){if(AB.toLowerCase()=="data"){AE.movie=AG[AB]}else{if(AB.toLowerCase()=="styleclass"){AF+=' class="'+AG[AB]+'"'}else{if(AB.toLowerCase()!="classid"){AF+=" "+AB+'="'+AG[AB]+'"'}}}}}var AD="";for(var AA in AE){if(AE[AA]!=Object.prototype[AA]){AD+='<param name="'+AA+'" value="'+AE[AA]+'" />'}}v.outerHTML='<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"'+AF+">"+AD+"</object>";i[i.length]=AG.id;q=C(AG.id)}else{if(h.webkit&&h.webkit<312){var AC=a("embed");AC.setAttribute("type",P);for(var z in AG){if(AG[z]!=Object.prototype[z]){if(z.toLowerCase()=="data"){AC.setAttribute("src",AG[z])}else{if(z.toLowerCase()=="styleclass"){AC.setAttribute("class",AG[z])}else{if(z.toLowerCase()!="classid"){AC.setAttribute(z,AG[z])}}}}}for(var y in AE){if(AE[y]!=Object.prototype[y]){if(y.toLowerCase()!="movie"){AC.setAttribute(y,AE[y])}}}v.parentNode.replaceChild(AC,v);q=AC}else{var u=a(Q);u.setAttribute("type",P);for(var x in AG){if(AG[x]!=Object.prototype[x]){if(x.toLowerCase()=="styleclass"){u.setAttribute("class",AG[x])}else{if(x.toLowerCase()!="classid"){u.setAttribute(x,AG[x])}}}}for(var w in AE){if(AE[w]!=Object.prototype[w]&&w.toLowerCase()!="movie"){F(u,w,AE[w])}}v.parentNode.replaceChild(u,v);q=u}}}return q}function F(t,q,r){var u=a("param");u.setAttribute("name",q);u.setAttribute("value",r);t.appendChild(u)}function X(r){var q=C(r);if(q&&(q.nodeName=="OBJECT"||q.nodeName=="EMBED")){if(h.ie&&h.win){if(q.readyState==4){B(r)}else{j.attachEvent("onload",function(){B(r)})}}else{q.parentNode.removeChild(q)}}}function B(t){var r=C(t);if(r){for(var q in r){if(typeof r[q]=="function"){r[q]=null}}r.parentNode.removeChild(r)}}function C(t){var q=null;try{q=K.getElementById(t)}catch(r){}return q}function a(q){return K.createElement(q)}function I(t,q,r){t.attachEvent(q,r);d[d.length]=[t,q,r]}function c(t){var r=h.pv,q=t.split(".");q[0]=parseInt(q[0],10);q[1]=parseInt(q[1],10)||0;q[2]=parseInt(q[2],10)||0;return(r[0]>q[0]||(r[0]==q[0]&&r[1]>q[1])||(r[0]==q[0]&&r[1]==q[1]&&r[2]>=q[2]))?true:false}function V(v,r){if(h.ie&&h.mac){return}var u=K.getElementsByTagName("head")[0],t=a("style");t.setAttribute("type","text/css");t.setAttribute("media","screen");if(!(h.ie&&h.win)&&typeof K.createTextNode!=b){t.appendChild(K.createTextNode(v+" {"+r+"}"))}u.appendChild(t);if(h.ie&&h.win&&typeof K.styleSheets!=b&&K.styleSheets.length>0){var q=K.styleSheets[K.styleSheets.length-1];if(typeof q.addRule==Q){q.addRule(v,r)}}}function W(t,q){var r=q?"visible":"hidden";if(e&&C(t)){C(t).style.visibility=r}else{V("#"+t,"visibility:"+r)}}function g(s){var r=/[\\\"<>\.;]/;var q=r.exec(s)!=null;return q?encodeURIComponent(s):s}var D=function(){if(h.ie&&h.win){window.attachEvent("onunload",function(){var w=d.length;for(var v=0;v<w;v++){d[v][0].detachEvent(d[v][1],d[v][2])}var t=i.length;for(var u=0;u<t;u++){X(i[u])}for(var r in h){h[r]=null}h=null;for(var q in swfobject){swfobject[q]=null}swfobject=null})}}();return{registerObject:function(u,q,t){if(!h.w3cdom||!u||!q){return}var r={};r.id=u;r.swfVersion=q;r.expressInstall=t?t:false;N[N.length]=r;W(u,false)},getObjectById:function(v){var q=null;if(h.w3cdom){var t=C(v);if(t){var u=t.getElementsByTagName(Q)[0];if(!u||(u&&typeof t.SetVariable!=b)){q=t}else{if(typeof u.SetVariable!=b){q=u}}}}return q},embedSWF:function(x,AE,AB,AD,q,w,r,z,AC){if(!h.w3cdom||!x||!AE||!AB||!AD||!q){return}AB+="";AD+="";if(c(q)){W(AE,false);var AA={};if(AC&&typeof AC===Q){for(var v in AC){if(AC[v]!=Object.prototype[v]){AA[v]=AC[v]}}}AA.data=x;AA.width=AB;AA.height=AD;var y={};if(z&&typeof z===Q){for(var u in z){if(z[u]!=Object.prototype[u]){y[u]=z[u]}}}if(r&&typeof r===Q){for(var t in r){if(r[t]!=Object.prototype[t]){if(typeof y.flashvars!=b){y.flashvars+="&"+t+"="+r[t]}else{y.flashvars=t+"="+r[t]}}}}f(function(){U(AA,y,AE);if(AA.id==AE){W(AE,true)}})}else{if(w&&!A&&c("6.0.65")&&(h.win||h.mac)){A=true;W(AE,false);f(function(){var AF={};AF.id=AF.altContentId=AE;AF.width=AB;AF.height=AD;AF.expressInstall=w;k(AF)})}}},getFlashPlayerVersion:function(){return{major:h.pv[0],minor:h.pv[1],release:h.pv[2]}},hasFlashPlayerVersion:c,createSWF:function(t,r,q){if(h.w3cdom){return U(t,r,q)}else{return undefined}},removeSWF:function(q){if(h.w3cdom){X(q)}},createCSS:function(r,q){if(h.w3cdom){V(r,q)}},addDomLoadEvent:f,addLoadEvent:R,getQueryParamValue:function(v){var u=K.location.search||K.location.hash;if(v==null){return g(u)}if(u){var t=u.substring(1).split("&");for(var r=0;r<t.length;r++){if(t[r].substring(0,t[r].indexOf("="))==v){return g(t[r].substring((t[r].indexOf("=")+1)))}}}return""},expressInstallCallback:function(){if(A&&M){var q=C(m);if(q){q.parentNode.replaceChild(M,q);if(l){W(l,true);if(h.ie&&h.win){M.style.display="block"}}M=null;l=null;A=false}}}}}();;function GetFlashVersionActivex(i){try{var control=new ActiveXObject('ShockwaveFlash.ShockwaveFlash.'+i);var version=control.GetVariable("$version");var temp=version.split(" ");var version_array=temp[1].split(",");return parseFloat(version_array[0]+"."+version_array[2]);}
catch(e){return 0.0;}}
function GetFlashVersionPlugin(){var flash_version=0.0;if(navigator.plugins!==null&&navigator.plugins.length>0){if(navigator.plugins["Shockwave Flash 2.0"]||navigator.plugins["Shockwave Flash"]){var plugin_name=navigator.plugins["Shockwave Flash 2.0"]?"Shockwave Flash 2.0":"Shockwave Flash";var flash_desc=navigator.plugins[plugin_name].description;var desc_segments=flash_desc.split(" ");var major_segments=desc_segments[2].split(".");var major=major_segments[0];var minor_segments=(desc_segments[3]!="")?desc_segments[3].split("r"):desc_segments[4].split("r");var minor=minor_segments[1]>0?minor_segments[1]:0;flash_version=parseFloat(major+"."+minor);}
else{flash_version=-1;}}
else if(navigator.userAgent.toLowerCase().indexOf("webtv/2.6")!=-1){flash_version=4;}
else if(navigator.userAgent.toLowerCase().indexOf("webtv/2.5")!=-1){flash_version=3;}
else if(navigator.userAgent.toLowerCase().indexOf("webtv")!=-1){flash_version=2;}
else{flash_version=-1;}
return flash_version;}
function GetFlashVersion(){var is_ie=navigator.appVersion.toLowerCase().indexOf("msie")!=-1;var is_win=navigator.appVersion.toLowerCase().indexOf("win")!=-1;var is_opera=navigator.userAgent.toLowerCase().indexOf("opera")!=-1;for(i=12;i>0;i--){var flash_version=(is_ie&&is_win&&!is_opera)?GetFlashVersionActivex(i):GetFlashVersionPlugin();if(flash_version!==0){return flash_version;}}
return 0.0;};Ext.namespace("GeoExt.ux.data");GeoExt.ux.data.formats=[['KML','OpenLayers.Format.KML',{extractStyles:true,extractAttributes:true,kmlns:"http://www.opengis.net/kml/2.2"}],['GeoJSON','OpenLayers.Format.GeoJSON',{}],['GeoRSS','OpenLayers.Format.GeoRSS',{}],['GML','OpenLayers.Format.GML',{}]];GeoExt.ux.data.formats.getFormatConfig=function(format){for(var i=0;i<GeoExt.ux.data.formats.length;i++){if(GeoExt.ux.data.formats[i][0]==format){return GeoExt.ux.data.formats[i][2];}}};GeoExt.ux.data.FormatStore=new Ext.data.SimpleStore({fields:['shortName','openLayersClass','formatConfig'],data:GeoExt.ux.data.formats});;Ext.namespace("GeoExt.ux.data");GeoExt.ux.data.Export=function(map,format,layers,features){var exportLayers=[];var exportFeatures=[];if(features){exportFeatures=features;}else{if(layers){exportLayers=layers;}else{for(var i=0;i<map.layers.length;i++){var layer=map.layers[i];if(layer.CLASS_NAME){if(GeoExt.ux.data.Export.isLayerSupported(layer.CLASS_NAME)){exportLayers.push(layer);}}}}
for(var j=0;j<exportLayers.length;j++){var exportLayer=exportLayers[j];if(exportLayer.features){for(var k=0;k<exportLayer.features.length;k++){exportFeatures.push(exportLayer.features[k]);}}}}
if(format=='KML'){var kmlWriter=new OpenLayers.Format.KML(OpenLayers.Util.extend({externalProjection:new OpenLayers.Projection("EPSG:4326"),internalProjection:map.getProjectionObject()},GeoExt.ux.data.formats.getFormatConfig(format)));return kmlWriter.write(exportFeatures);}else if(format=='GeoJSON'){var geojsonWriter=new OpenLayers.Format.GeoJSON(GeoExt.ux.data.formats.getFormatConfig(format));return geojsonWriter.write(exportFeatures);}else if(format=='GeoRSS'){var georssWriter=new OpenLayers.Format.GeoRSS(GeoExt.ux.data.formats.getFormatConfig(format));return georssWriter.write(exportFeatures);}else if(format=='GML'){var gmlWriter=new OpenLayers.Format.GML(GeoExt.ux.data.formats.getFormatConfig(format));return gmlWriter.write(exportFeatures);}else{return'Format '+format+' not supported. Patch welcome !';}};GeoExt.ux.data.Export.content=null;GeoExt.ux.data.Export.format=null;GeoExt.ux.data.Export.exportWindow=null;GeoExt.ux.data.Export.SupportedLayerType=[['OpenLayers.Layer.Vector'],['OpenLayers.Layer.WFS'],['OpenLayers.Layer.GML'],['OpenLayers.Layer.GeoRSS']];GeoExt.ux.data.Export.isLayerSupported=function(className){for(var i=0;i<GeoExt.ux.data.Export.SupportedLayerType.length;i++){if(GeoExt.ux.data.Export.SupportedLayerType[i][0]===className){return true;}}
return false;};GeoExt.ux.data.Export.OpenWindowDownloadify=function(){GeoExt.ux.data.Export.exportWindow=new GeoExt.ux.LayerManagerExportWindow({filename:'export.'+GeoExt.ux.data.Export.format.toLowerCase(),filecontent:GeoExt.ux.data.Export.content.replace(/&lt;/g,'<').replace(/&gt;/g,'>')});GeoExt.ux.data.Export.exportWindow.show();};GeoExt.ux.data.Export.KMLExport=function(map,layers,features,downloadService){GeoExt.ux.data.Export.format='KML';GeoExt.ux.data.Export.content=GeoExt.ux.data.Export(map,GeoExt.ux.data.Export.format,layers,features);if(downloadService){var form=document.createElement("form");form.setAttribute("method",'POST');form.setAttribute("action",downloadService);var formatField=document.createElement("input");formatField.setAttribute("type","hidden");formatField.setAttribute("name","format");formatField.setAttribute("value",GeoExt.ux.data.Export.format);var contentField=document.createElement("input");contentField.setAttribute("type","hidden");contentField.setAttribute("name","content");contentField.setAttribute("value",GeoExt.ux.data.Export.content.replace(/&lt;/g,'<').replace(/&gt;/g,'>'));form.appendChild(formatField);form.appendChild(contentField);document.body.appendChild(form);form.submit();}else{if(GetFlashVersion()>10.00){GeoExt.ux.data.Export.OpenWindowDownloadify();}else{alert('Please install Flash 10 in order to use the following window.');GeoExt.ux.data.Export.OpenWindowDownloadify();}}};;Ext.namespace("GeoExt.ux.data");GeoExt.ux.data.importFeatures=null;GeoExt.ux.data.Import=function(map,layer,format,filecontent,features){GeoExt.ux.data.Import.importFeatures=[];if(format&&filecontent){if(format=='KML'){var kmlReader=new OpenLayers.Format.KML(OpenLayers.Util.extend({externalProjection:new OpenLayers.Projection("EPSG:4326"),internalProjection:map.getProjectionObject()},GeoExt.ux.data.formats.getFormatConfig(format)));GeoExt.ux.data.importFeatures=kmlReader.read(filecontent);}else if(format=='GML'){var gmlReader=new OpenLayers.Format.GML(GeoExt.ux.data.formats.getFormatConfig(format));GeoExt.ux.data.importFeatures=gmlReader.read(filecontent);}else if(format=='GeoJSON'){var geojsonReader=new OpenLayers.Format.GeoJSON(GeoExt.ux.data.formats.getFormatConfig(format));GeoExt.ux.data.importFeatures=geojsonReader.read(filecontent);}else if(format=='GeoRSS'){var georssReader=new OpenLayers.Format.GeoRSS(GeoExt.ux.data.formats.getFormatConfig(format));GeoExt.ux.data.importFeatures=georssReader.read(filecontent);}else{return'Format '+format+' not supported. Patch welcome !';}}
if(features){GeoExt.ux.data.importFeatures=features;}
if(!layer){layer=new OpenLayers.Layer.Vector("Import",{projection:map.displayProjection});map.addLayer(layer);}
layer.addFeatures(GeoExt.ux.data.importFeatures);return layer;};GeoExt.ux.data.Import.KMLImport=function(map,layer){GeoExt.ux.data.Export.format='KML';var importPanel=new GeoExt.ux.LayerManagerImportPanel({map:map,defaultFormat:'KML',layer:layer});importPanel.on('dataimported',function(panel,format,filecontent,features){alert(OpenLayers.i18n("KML data sucessfully imported in layer: "+panel.layer.name+" !"+" Number of imported features: "+features.length));importWindow.close();});var importWindow=new Ext.Window({id:'importwindow',modal:true,title:OpenLayers.i18n('Import KML'),height:135,width:290,items:[importPanel]});importWindow.show();};;Ext.namespace('GeoExt.ux');GeoExt.ux.LayerManagerExportPanel=Ext.extend(Ext.Panel,{map:null,border:false,defaultFormat:'KML',downloadService:null,formatCombo:null,exportLinkBox:null,initComponent:function(){this.formatCombo=new Ext.form.ComboBox({id:'layermanagerexportformat',fieldLabel:OpenLayers.i18n('Format'),store:GeoExt.ux.data.FormatStore,displayField:'shortName',typeAhead:true,mode:'local',triggerAction:'all',emptyText:'Select a format...',selectOnFocus:true,resizable:true});this.formatCombo.setValue(this.defaultFormat);this.exportLinkBox=new Ext.BoxComponent({id:'exportlink',autoEl:{html:'<a href=""></a>'}});this.items=[{layout:'form',border:false,items:[{layout:'column',border:false,defaults:{layout:'form',border:false,bodyStyle:'padding:5px 5px 5px 5px'},items:[{columnWidth:1,defaults:{anchor:'100%'},items:[this.formatCombo]}]}]},{layout:'column',border:false,defaults:{layout:'form',border:false,bodyStyle:'padding:5px 5px 5px 5px'},items:[{columnWidth:1,bodyCfg:{tag:'center'},items:[{xtype:'button',text:OpenLayers.i18n('Export'),handler:function(){GeoExt.ux.data.Export.content=GeoExt.ux.data.Export(this.map,this.formatCombo.getValue(),null,null);GeoExt.ux.data.Export.format=this.formatCombo.getValue();if(this.downloadService){var form=document.createElement("form");form.setAttribute("method",'POST');form.setAttribute("action",this.downloadService);var formatField=document.createElement("input");formatField.setAttribute("type","hidden");formatField.setAttribute("name","format");formatField.setAttribute("value",this.formatCombo.getValue());var contentField=document.createElement("input");contentField.setAttribute("type","hidden");contentField.setAttribute("name","content");contentField.setAttribute("value",GeoExt.ux.data.Export.content.replace(/&lt;/g,'<').replace(/&gt;/g,'>'));form.appendChild(formatField);form.appendChild(contentField);document.body.appendChild(form);form.submit();}else{if(Ext.isIE||Ext.isChrome||Ext.isSafari){if(GetFlashVersion()>10.00){GeoExt.ux.data.Export.OpenWindowDownloadify();}else{alert('Please install Flash 10 in order to use the following window');GeoExt.ux.data.Export.OpenWindowDownloadify();}}else if(Ext.isGecko){if(GetFlashVersion()>10.00){GeoExt.ux.data.Export.OpenWindowDownloadify();}else{this.exportLinkBox.getEl().dom.innerHTML='<a href="data:text/xml,'+GeoExt.ux.data.Export.content.replace(/"/g,'\'')+'" target="new">Right mouse click, Save As...</a>';}}else{alert('Your browser is not supported. Patch welcome !');}}
if(Ext.getCmp('layermanagerwindow')){Ext.getCmp('layermanagerwindow').close();}},scope:this}]}]},{layout:'column',border:false,defaults:{layout:'form',border:false,bodyStyle:'padding:5px 5px 5px 5px'},items:[{columnWidth:1,bodyCfg:{tag:'center'},items:[this.exportLinkBox]}]}];GeoExt.ux.LayerManagerExportPanel.superclass.initComponent.call(this);}});Ext.reg('gxux_layermanagerexportpanel',GeoExt.ux.LayerManagerExportPanel);;Ext.namespace('GeoExt.ux');GeoExt.ux.LayerManagerImportPanel=Ext.extend(Ext.Panel,{map:null,border:false,defaultFormat:'KML',layer:null,formatCombo:null,initComponent:function(){this.formatCombo=new Ext.form.ComboBox({id:'layermanagerimportformat',fieldLabel:OpenLayers.i18n('Format'),store:GeoExt.ux.data.FormatStore,displayField:'shortName',typeAhead:true,mode:'local',triggerAction:'all',emptyText:'Select a format...',selectOnFocus:true,resizable:true});this.formatCombo.setValue(this.defaultFormat);this.fileSelectorBox=new Ext.BoxComponent({id:'fileSelectorBox',autoEl:{html:'<input type="file" name="fileselector" id="fileselector"/>'}});this.items=[{layout:'form',border:false,items:[{layout:'column',border:false,defaults:{layout:'form',border:false,bodyStyle:'padding:5px 5px 5px 5px'},items:[{columnWidth:1,defaults:{anchor:'100%'},items:[this.formatCombo]}]}]},{layout:'column',border:false,defaults:{layout:'form',border:false,bodyStyle:'padding:5px 5px 5px 5px'},items:[{columnWidth:1,bodyCfg:{tag:'center'},items:[this.fileSelectorBox]}]},{layout:'column',border:false,defaults:{layout:'form',border:false,bodyStyle:'padding:5px 5px 5px 5px'},items:[{columnWidth:1,bodyCfg:{tag:'center'},items:[{xtype:'button',text:OpenLayers.i18n('Import'),handler:function(){if(document.getElementById('fileselector').value==""){alert(OpenLayers.i18n('Select a file to import'));}else{var filecontent;if(Ext.isIE){try{var objFSO=new ActiveXObject("Scripting.FileSystemObject");if(objFSO.FileExists(document.getElementById('fileselector').value)){filecontent=objFSO.OpenTextFile(document.getElementById('fileselector').value,1).ReadAll();}}
catch(e)
{alert('Dear IE user. Add this site in the list of trusted site and activate the ActiveX. '+e.description);return;}}else if(Ext.isGecko){filecontent=document.getElementById('fileselector').files.item(0).getAsText('UTF-8');}else{alert('Your browser is not supported. Patch welcome !');return;}
this.fireEvent('beforedataimported',this,this.formatCombo.getValue(),filecontent);this.layer=GeoExt.ux.data.Import(this.map,this.layer,this.formatCombo.getValue(),filecontent,null);this.fireEvent('dataimported',this,this.formatCombo.getValue(),filecontent,GeoExt.ux.data.importFeatures);}},scope:this}]}]}];this.addEvents('dataimported','beforedataimported');GeoExt.ux.LayerManagerImportPanel.superclass.initComponent.call(this);}});Ext.reg('gxux_layermanagerimportpanel',GeoExt.ux.LayerManagerImportPanel);;Ext.namespace('GeoExt.ux');GeoExt.ux.LayerManagerWindow=Ext.extend(Ext.Window,{map:null,downloadService:null,id:'layermanagerwindow',modal:true,title:OpenLayers.i18n('Layer Manager'),width:275,height:400,layout:'accordion',layoutConfig:{animate:true},exportPanel:null,importPanel:null,initComponent:function(){this.exportPanel=new GeoExt.ux.LayerManagerExportPanel({map:this.map,downloadService:this.downloadService,defaultFormat:'KML'});this.importPanel=new GeoExt.ux.LayerManagerImportPanel({map:this.map,defaultFormat:'KML'});this.importPanel.on('dataimported',function(panel,format,filecontent,features){alert(OpenLayers.i18n("KML data sucessfully imported in layer: "+panel.layer.name+" !"+" Number of imported features: "+features.length));});this.items=[{title:OpenLayers.i18n('Export'),items:[this.exportPanel]},{title:OpenLayers.i18n('Import'),items:[this.importPanel]}];GeoExt.ux.LayerManagerWindow.superclass.initComponent.call(this);}});Ext.reg('gxux_layermanagerwindow',GeoExt.ux.LayerManagerWindow);