Geozet={};Geozet.Format={};Geozet.Format.XLSLUS={};Geozet.Format.XLSLUS=OpenLayers.Class(OpenLayers.Format.XML,{defaultVersion:"1.1.0",version:"1",parser:Geozet.Format.XLSLUS.v1,initialize:function(options){OpenLayers.Format.XML.prototype.initialize.apply(this,[options]);},writeGeocodeRequest:function(address,options){var version=(options&&options.version)||this.version||this.defaultVersion;if(!this.parser||this.parser.VERSION!=version){var format=Geozet.Format.XLSLUS["v"+version.replace(/\./g,"_")];if(!format){throw"Can't find a XLSLUS parser for version "+ version;} this.parser=new format(options);} var root=this.parser.writeGeocodeRequest(address);return OpenLayers.Format.XML.prototype.write.apply(this,[root]);},writeReverseGeocodeRequest:function(position,options){var version=(options&&options.version)||this.version||this.defaultVersion;if(!this.parser||this.parser.VERSION!=version){var format=Geozet.Format.XLSLUS["v"+version.replace(/\./g,"_")];if(!format){throw"Can't find a XLSLUS parser for version "+ version;} this.parser=new format(options);} var root=this.parser.writeReverseGeocodeRequest(position);return OpenLayers.Format.XML.prototype.write.apply(this,[root]);},read:function(data,options){if(typeof data=="string"){data=OpenLayers.Format.XML.prototype.read.apply(this,[data]);} var root=data.documentElement;var version=this.version;if(!version){version=root.getAttribute("version");if(!version){version=this.defaultVersion;}} if(!this.parser||this.parser.VERSION!=version){var format=Geozet.Format.XLSLUS["v"+version.replace(/\./g,"_")];if(!format){throw"Can't find a XLSLUS parser for version "+ version;} this.parser=new format(options);} var xlslus=this.parser.read(data);return xlslus;}});Geozet.Format.XLSAddress=OpenLayers.Class({addressee:null,countryCode:null,freeFormAddress:null,street:null,building:null,place:null,postalCode:null,initialize:function(countryCode,options){this.street=[];this.place={CountrySubdivision:null,CountrySecondarySubdivision:null,Municipality:null,MunicipalitySubdivision:null};OpenLayers.Util.extend(this,options);this.countryCode=countryCode;},format:function(){if(this.freeFormAddress){return this.freeFormAddress;}else{return this.getStreetText()+' '+this.getBuildingText() +' '+this.getPostalCodeText()+' '+this.getPlaceText();}},getStreetText:function(address){if(!address){address=this;} var text='';for(var si=0;si