// This file is generated, do not edit!

OpenLayers.Lang.de=OpenLayers.Util.applyDefaults({'unhandledRequest':"Unbehandelte Anfragerückmeldung ${statusText}",'permalink':"Permalink",'overlays':"Overlays",'baseLayer':"Grundkarte",'sameProjection':"Die Übersichtskarte funktioniert nur, wenn sie dieselbe Projektion wie die Hauptkarte verwendet",'readNotImplemented':"Lesen nicht implementiert.",'writeNotImplemented':"Schreiben nicht implementiert.",'noFID':"Ein Feature, für das keine FID existiert, kann nicht aktualisiert werden.",'errorLoadingGML':"Fehler beim Laden der GML-Datei ${url}",'browserNotSupported':"Ihr Browser unterstützt keine Vektordarstellung. Aktuell unterstützte Renderer:\n${renderers}",'componentShouldBe':"addFeatures : Komponente sollte vom Typ ${geomType} sein",'commitSuccess':"WFS-Transaktion: ERFOLGREICH ${response}",'commitFailed':"WFS-Transaktion: FEHLGESCHLAGEN ${response}",'googleWarning':"Der Google-Layer konnte nicht korrekt geladen werden.<br><br>"+"Um diese Meldung nicht mehr zu erhalten, wählen Sie einen anderen "+"Hintergrundlayer aus dem LayerSwitcher in der rechten oberen Ecke.<br><br>"+"Sehr wahrscheinlich tritt dieser Fehler auf, weil das Skript der "+"Google-Maps-Bibliothek nicht eingebunden wurde oder keinen gültigen "+"API-Schlüssel für Ihre URL enthält.<br><br>"+"Entwickler: Für Hilfe zum korrekten Einbinden des Google-Layers "+"<a href='http://trac.openlayers.org/wiki/Google' "+"target='_blank'>hier klicken</a>",'getLayerWarning':"Der ${layerType}-Layer konnte nicht korrekt geladen werden.<br><br>"+"Um diese Meldung nicht mehr zu erhalten, wählen Sie einen anderen "+"Hintergrundlayer aus dem LayerSwitcher in der rechten oberen Ecke.<br><br>"+"Sehr wahrscheinlich tritt dieser Fehler auf, weil das Skript der "+'"${layerLib}"-Bibliothek nicht eingebunden wurde.<br><br>'+"Entwickler: Für Hilfe zum korrekten Einbinden von Layern "+"<a href='http://trac.openlayers.org/wiki/${layerLib}' "+"target='_blank'>hier klicken</a>",'scale':"Maßstab = 1 : ${scaleDenom}",'end':''},OpenLayers.Lang["en"]);OpenLayers.Lang.en={'unhandledRequest':"Unhandled request return ${statusText}",'permalink':"Permalink",'overlays':"Overlays",'baseLayer':"Base Layer",'sameProjection':"The overview map only works when it is in the same projection as the main map",'readNotImplemented':"Read not implemented.",'writeNotImplemented':"Write not implemented.",'noFID':"Can't update a feature for which there is no FID.",'errorLoadingGML':"Error in loading GML file ${url}",'browserNotSupported':"Your browser does not support vector rendering. Currently supported renderers are:\n${renderers}",'componentShouldBe':"addFeatures : component should be an ${geomType}",'getFeatureError':"getFeatureFromEvent called on layer with no renderer. This usually means you "+"destroyed a layer, but not some handler which is associated with it.",'minZoomLevelError':"The minZoomLevel property is only intended for use "+"with the FixedZoomLevels-descendent layers. That this "+"wfs layer checks for minZoomLevel is a relic of the"+"past. We cannot, however, remove it without possibly "+"breaking OL based applications that may depend on it."+" Therefore we are deprecating it -- the minZoomLevel "+"check below will be removed at 3.0. Please instead "+"use min/max resolution setting as described here: "+"http://trac.openlayers.org/wiki/SettingZoomLevels",'commitSuccess':"WFS Transaction: SUCCESS ${response}",'commitFailed':"WFS Transaction: FAILED ${response}",'googleWarning':"The Google Layer was unable to load correctly.<br><br>"+"To get rid of this message, select a new BaseLayer "+"in the layer switcher in the upper-right corner.<br><br>"+"Most likely, this is because the Google Maps library "+"script was either not included, or does not contain the "+"correct API key for your site.<br><br>"+"Developers: For help getting this working correctly, "+"<a href='http://trac.openlayers.org/wiki/Google' "+"target='_blank'>click here</a>",'getLayerWarning':"The ${layerType} Layer was unable to load correctly.<br><br>"+"To get rid of this message, select a new BaseLayer "+"in the layer switcher in the upper-right corner.<br><br>"+"Most likely, this is because the ${layerLib} library "+"script was not correctly included.<br><br>"+"Developers: For help getting this working correctly, "+"<a href='http://trac.openlayers.org/wiki/${layerLib}' "+"target='_blank'>click here</a>",'scale':"Scale = 1 : ${scaleDenom}",'layerAlreadyAdded':"You tried to add the layer: ${layerName} to the map, but it has already been added",'reprojectDeprecated':"You are using the 'reproject' option "+"on the ${layerName} layer. This option is deprecated: "+"its use was designed to support displaying data over commercial "+"basemaps, but that functionality should now be achieved by using "+"Spherical Mercator support. More information is available from "+"http://trac.openlayers.org/wiki/SphericalMercator.",'methodDeprecated':"This method has been deprecated and will be removed in 3.0. "+"Please use ${newMethod} instead.",'boundsAddError':"You must pass both x and y values to the add function.",'lonlatAddError':"You must pass both lon and lat values to the add function.",'pixelAddError':"You must pass both x and y values to the add function.",'unsupportedGeometryType':"Unsupported geometry type: ${geomType}",'pagePositionFailed':"OpenLayers.Util.pagePosition failed: element with id ${elemId} may be misplaced.",'end':'','filterEvaluateNotImplemented':"evaluate is not implemented for this filter type."};OpenLayers.Lang.fr={'unhandledRequest':"Requête non gérée, retournant ${statusText}",'permalink':"Permalien",'overlays':"Calques",'baseLayer':"Calque de base",'sameProjection':"La carte de situation ne fonctionne que lorsque sa projection est la même que celle de la carte principale",'readNotImplemented':"Lecture non implémentée.",'writeNotImplemented':"Ecriture non implémentée.",'noFID':"Impossible de mettre à jour un objet sans identifiant (fid).",'errorLoadingGML':"Erreur au chargement du fichier GML ${url}",'browserNotSupported':"Votre navigateur ne supporte pas le rendu vectoriel. Les renderers actuellement supportés sont : \n${renderers}",'componentShouldBe':"addFeatures : le composant devrait être de type ${geomType}",'getFeatureError':"getFeatureFromEvent a été appelé sur un calque sans renderer. Cela signifie généralement que vous "+"avez détruit cette couche, mais que vous avez conservé un handler qui lui était associé.",'minZoomLevelError':"La propriété minZoomLevel doit seulement être utilisée "+"pour des couches FixedZoomLevels-descendent. Le fait que "+"cette couche WFS vérifie la présence de minZoomLevel "+"est une relique du passé. Nous ne pouvons toutefois la "+"supprimer sans casser des applications qui pourraient en dépendre."+" C'est pourquoi nous la déprécions -- la vérification du minZoomLevel "+"sera supprimée en version 3.0. A la place, merci d'utiliser "+"les paramètres de résolutions min/max tel que décrit sur : "+"http://trac.openlayers.org/wiki/SettingZoomLevels",'commitSuccess':"Transaction WFS : SUCCES ${response}",'commitFailed':"Transaction WFS : ECHEC ${response}",'googleWarning':"La couche Google n'a pas été en mesure de se charger correctement.<br><br>"+"Pour supprimer ce message, choisissez une nouvelle BaseLayer "+"dans le sélecteur de couche en haut à droite.<br><br>"+"Cela est possiblement causé par la non-inclusion de la "+"librairie Google Maps, ou alors parce que la clé de l'API "+"ne correspond pas à votre site.<br><br>"+"Développeurs : pour savoir comment corriger ceci, "+"<a href='http://trac.openlayers.org/wiki/Google' "+"target='_blank'>cliquez ici</a>",'getLayerWarning':"La couche ${layerType} n'est pas en mesure de se charger correctement.<br><br>"+"Pour supprimer ce message, choisissez une nouvelle BaseLayer "+"dans le sélecteur de couche en haut à droite.<br><br>"+"Cela est possiblement causé par la non-inclusion de la "+"librairie ${layerLib}.<br><br>"+"Développeurs : pour savoir comment corriger ceci, "+"<a href='http://trac.openlayers.org/wiki/${layerLib}' "+"target='_blank'>cliquez ici</a>",'scale':"Echelle ~ 1 : ${scaleDenom}",'layerAlreadyAdded':"Vous avez essayé d'ajouter à la carte le calque : ${layerName}, mais il est déjà présent",'reprojectDeprecated':"Vous utilisez l'option 'reproject' "+"sur la couche ${layerName}. Cette option est dépréciée : "+"Son usage permettait d'afficher des données au dessus de couches raster commerciales."+"Cette fonctionalité est maintenant supportée en utilisant le support de la projection "+"Mercator Sphérique. Plus d'information est disponible sur "+"http://trac.openlayers.org/wiki/SphericalMercator.",'methodDeprecated':"Cette méthode est dépréciée, et sera supprimée à la version 3.0. "+"Merci d'utiliser ${newMethod} à la place.",'boundsAddError':"Vous devez passer les deux valeurs x et y à la fonction add.",'lonlatAddError':"Vous devez passer les deux valeurs lon et lat à la fonction add.",'pixelAddError':"Vous devez passer les deux valeurs x et y à la fonction add.",'unsupportedGeometryType':"Type de géométrie non supporté : ${geomType}",'pagePositionFailed':"OpenLayers.Util.pagePosition a échoué: l'élément d'id ${elemId} pourrait être mal positionné.",'end':''};OpenLayers.Lang.it={'unhandledRequest':"Codice di ritorno della richiesta ${statusText}",'permalink':"Permalink",'overlays':"Overlays",'baseLayer':"Livello base",'sameProjection':"La mini mappa funziona solamente se ha la stessa proiezione della mappa principale",'readNotImplemented':"Lettura non implementata.",'writeNotImplemented':"Scrittura non implementata.",'noFID':"Impossibile aggiornare un elemento grafico che non abbia il FID.",'errorLoadingGML':"Errore nel caricamento del file GML ${url}",'browserNotSupported':"Il tuo browser non supporta il rendering vettoriale. I renderizzatore attualemnte supportati sono:\n${renderers}",'componentShouldBe':"addFeatures : il componente dovrebbe essere di tipo ${geomType}",'getFeatureError':"getFeatureFromEvent chiamata su di un livello senza renderizzatore. Ciò significa che "+"il livello è stato cancellato, ma non i gestori associati ad esso.",'minZoomLevelError':"La proprietà minZoomLevel è da utilizzare solamente "+"con livelli che abbiano FixedZoomLevels. Il fatto che "+"questo livello wfs controlli la proprietà minZoomLevel è "+"un retaggio del passato. Non possiamo comunque rimuoverla "+"senza rompere le vecchie applicazioni che dipendono su di essa."+"Quindi siamo costretti a deprecarla -- minZoomLevel "+"e sarà rimossa dalla vesione 3.0. Si prega di utilizzare i "+"settaggi di risoluzione min/max come descritto qui: "+"http://trac.openlayers.org/wiki/SettingZoomLevels",'commitSuccess':"Transazione WFS: SUCCESS ${response}",'commitFailed':"Transazione WFS: FAILED ${response}",'googleWarning':"Il livello Google non è riuscito a caricare correttamente.<br><br>"+"Per evitare questo messaggio, seleziona un nuovo BaseLayer "+"nel selettore di livelli nell'angolo in alto a destra.<br><br>"+"Più precisamente, ciò accade perchè la libreria Google Maps "+"non è stata inclusa nella pagina, oppure non contiene la "+"corretta API key per il tuo sito.<br><br>"+"Sviluppatori: Per aiuto su come farlo funzionare correttamente, "+"<a href='http://trac.openlayers.org/wiki/Google' "+"target='_blank'>clicca qui</a>",'getLayerWarning':"Il livello ${layerType} non è riuscito a caricare correttamente.<br><br>"+"Per evitare questo messaggio, seleziona un nuovo BaseLayer "+"nel selettore di livelli nell'angolo in alto a destra.<br><br>"+"Più precisamente, ciò accade perchè la libreria ${layerLib} "+"non è stata inclusa nella pagina.<br><br>"+"Sviluppatori: Per aiuto su come farlo funzionare correttamente, "+"<a href='http://trac.openlayers.org/wiki/${layerLib}' "+"target='_blank'>clicca qui</a>",'scale':"Scala = 1 : ${scaleDenom}",'layerAlreadyAdded':"Stai cercando di aggiungere il livello: ${layerName} alla mappa, ma tale livello è già stato aggiunto.",'reprojectDeprecated':"Stai utilizzando l'opzione 'reproject' sul livello ${layerName}. "+"Questa opzione è deprecata: il suo utilizzo è stato introdotto per"+"supportare il disegno dei dati sopra mappe commerciali, ma tale "+"funzionalità dovrebbe essere ottenuta tramite l'utilizzo della proiezione "+"Spherical Mercator. Per maggiori informazioni consultare qui "+"http://trac.openlayers.org/wiki/SphericalMercator.",'methodDeprecated':"Questo metodo è stato deprecato e sarà rimosso dalla versione 3.0. "+"Si prega di utilizzare il metodo ${newMethod} in alternativa.",'boundsAddError':"Devi specificare i valori di x e y alla funzione add.",'lonlatAddError':"Devi specificare i valori di lon e lat alla funzione add.",'pixelAddError':"Devi specificare i valori di x e y alla funzione add.",'unsupportedGeometryType':"Tipo di geometria non supportata: ${geomType}",'pagePositionFailed':"OpenLayers.Util.pagePosition fallita: l'elemento con id ${elemId} è posizionato in modo errato.",'end':''};OpenLayers.Util.extend(OpenLayers.Lang.de,{'mf.layertree.opacity':'Opazität','mf.layertree.remove':'Ausblenden','mf.layertree.zoomToExtent':'Zoom object zoomen','mf.print.mapTitle':'Titel','mf.print.comment':'Bemerkung','mf.print.loadingConfig':'Laden der Konfiguration...','mf.print.serverDown':' Der Druck-Systemdienst funktioniert nicht','mf.print.unableToPrint':"Unable to print",'mf.print.generatingPDF':"Generierung des PDFs...",'mf.print.dpi':'DPI','mf.print.scale':'Massstab','mf.print.rotation':'Rotation','mf.print.print':'Drücken','mf.print.resetPos':'Reset Pos.','mf.print.layout':'Layout','mf.print.addPage':'Seite hinzufügen','mf.print.remove':'Seite entfernen','mf.print.clearAll':'Alles löschen','mf.print.pdfReady':'Das PDF-Dokument kann heruntergeladen werden.','mf.print.noPage':'Keine Seite ausgewählt, bitte auf "'+this['mf.print.addPage']+'"-'+'Button klicken um eine Seite zu hinzufügen.','mf.print.print-tooltip':'Generate a PDF with at least the extent shown on the map','mf.error':'Fehler','mf.warning':'Warnung','mf.information':'Information','mf.recenter.x':'X','mf.recenter.y':'Y','mf.recenter.submit':'Recenter','mf.recenter.missingCoords':'Some coordinates are missing.','mf.recenter.outOfRangeCoords':'Submitted coordinates (${myX}, ${myY}) are not in the map area<br />'+'and must be within following ranges:<br/>'+'${coordX} between ${minCoordX} and ${maxCoordX},<br />'+'${coordY} between ${minCoordY} and ${maxCoordY}','mf.recenter.ws.error':'Ein Fehler ist bei Zugang zum Webdienst vorgekommen:','mf.recenter.ws.service':'Ausgewählter Webdienst'});OpenLayers.Util.extend(OpenLayers.Lang.en,{'mf.layertree.opacity':'Opacity','mf.layertree.remove':'Remove','mf.layertree.zoomToExtent':'Zoom to extent','mf.print.mapTitle':'Title','mf.print.comment':'Comments','mf.print.loadingConfig':'Loading the configuration...','mf.print.serverDown':'The print service is not working','mf.print.unableToPrint':"Unable to print",'mf.print.generatingPDF':"Generating PDF...",'mf.print.dpi':'DPI','mf.print.scale':'Scale','mf.print.rotation':'Rotation','mf.print.print':'Print','mf.print.resetPos':'Reset Pos.','mf.print.layout':'Layout','mf.print.addPage':'Add page','mf.print.remove':'Remove page','mf.print.clearAll':'Clear all','mf.print.pdfReady':'Your PDF document is ready.','mf.print.noPage':'No page selected, click on the "Add page" button to add one.','mf.print.print-tooltip':'Generate a PDF with at least the extent shown on the map','mf.error':'Error','mf.warning':'Warning','mf.information':'Information','mf.recenter.x':'X','mf.recenter.y':'Y','mf.recenter.submit':'Recenter','mf.recenter.missingCoords':'Some coordinates are missing.','mf.recenter.outOfRangeCoords':'Submitted coordinates (${myX}, ${myY}) are not in the map area<br />'+'and must be within following ranges:<br/>'+'${coordX} between ${minCoordX} and ${maxCoordX},<br />'+'${coordY} between ${minCoordY} and ${maxCoordY}','mf.recenter.ws.error':'An error occured when accessing the distant webservice:','mf.recenter.ws.service':'Selected service'});OpenLayers.Util.extend(OpenLayers.Lang.fr,{'scale':"Echelle = 1 : ${scaleDenom}",'mf.layertree.opacity':'Opacité','mf.layertree.remove':'Supprimer','mf.layertree.zoomToExtent':'Zoom sur l\'emprise','mf.print.mapTitle':'Titre','mf.print.comment':'Commentaires','mf.print.unableToPrint':"Impossible d'imprimer",'mf.print.generatingPDF':"Génération du PDF...",'mf.print.dpi':'Résolution','mf.print.scale':'Échelle','mf.print.rotation':'Rotation','mf.print.print':'Imprimer','mf.print.resetPos':'Réinit. pos.','mf.print.layout':'Format','mf.print.addPage':'Ajouter page','mf.print.remove':'Enlever page','mf.print.clearAll':'Supprimer toutes','mf.print.pdfReady':'Votre document PDF est prêt.','mf.print.noPage':'Pas de page sélectionnée, appuyez sur le bouton "Ajouter page" pour en créer une.','mf.print.print-tooltip':'Générer un PDF contenant au moins l\'étendue de la présente carte','mf.error':'Erreur','mf.warning':'Attention','mf.information':'Information','mf.recenter.x':'X','mf.recenter.y':'Y','mf.recenter.submit':'Recentrer','mf.recenter.missingCoords':'Les coordonnées sont incomplètes.','mf.recenter.outOfRangeCoords':'Les coordonnées fournies (${myX}, ${myY}) sont en dehors de la carte.<br />'+'Elles doivent être comprises dans les limites suivantes :<br/>'+'${coordX} entre ${minCoordX} et ${maxCoordX},<br />'+'${coordY} entre ${minCoordY} et ${maxCoordY}','mf.recenter.ws.error':'Une erreur est survenue lors de l\'accès au webservice distant:','mf.recenter.ws.service':'Service sélectionné'});OpenLayers.Util.extend(OpenLayers.Lang.it,{'mf.layertree.opacity':'Opacity','mf.layertree.remove':'Remove','mf.layertree.zoomToExtent':'Zoom to extent','mf.print.mapTitle':'Titolo','mf.print.comment':'Commento','mf.print.loadingConfig':'Caricamento in corso','mf.print.serverDown':'Server non disponibile','mf.print.unableToPrint':'Errore stampa','mf.print.generatingPDF':'Creare PDF','mf.print.dpi':'Risoluzione (dpi)','mf.print.scale':'Scala','mf.print.rotation':'Rotazione','mf.print.print':'Stampa','mf.print.resetPos':'Reinizializzare','mf.print.layout':'Layout di pagina','mf.print.addPage':'Add page','mf.print.remove':'Remove page','mf.print.clearAll':'Clear all','mf.print.pdfReady':'Your PDF document is ready.','mf.print.noPage':'No page selected, click on the "Add page" button to add one.','mf.print.print-tooltip':'Generate a PDF with at least the extent shown on the map','mf.error':'Errore','mf.warning':'Attenzione','mf.information':'Informazioni','mf.recenter.x':'X','mf.recenter.y':'Y','mf.recenter.submit':'Recenter','mf.recenter.missingCoords':'Some coordinates are missing.','mf.recenter.outOfRangeCoords':'Submitted coordinates (${myX}, ${myY}) are not in the map area<br />'+'and must be within following ranges:<br/>'+'${coordX} between ${minCoordX} and ${maxCoordX},<br />'+'${coordY} between ${minCoordY} and ${maxCoordY}','mf.recenter.ws.error':'An error occured when accessing the distant webservice:','mf.recenter.ws.service':'Selected service'});OpenLayers.Util.extend(OpenLayers.Lang.de,{'Mountainbikeland':'','Flyerland':'Flyer-Land','Themen offnen':'Themen öffnen','Themen schliessen':'Grössere Karte','Drucken':'','Druckfeld schliessen':'','Search':'Suchen...','mf.print.print':'Drucken','Tram':'Tram / Bus','Berghuette':'SAC- / Berghütte','Route unmarkieren':'Markierung entfernen','Geo search...':'Suche Ort, PLZ, ...','Keine':'','Please wait...':'Bitte warten...','You selected too many layers':'Achtung: Die maximale Anzahl von Themen, die durch die Webkarte gleichzeitig dargestellt werden kann, ist überschritten.<br><br>Bitte schliessen Sie dieses Fenster und deaktivieren Sie nicht mehr benötigte Themen.<br><br>Wir danken für das Verständnis.'});OpenLayers.Util.extend(OpenLayers.Lang.en,{'Veloland':'Cycling in Switzerland','Wanderland':'Hiking in Switzerland','Mountainbikeland':'Mountainbiking in Switzerland','Skatingland':'Skating in Switzerland','Kanuland':'Canoeing in Switzerland','Routen':'Routes','National':'National','Regional':'Regional','Lokal':'Local','Etappen':'Sections','Lokale Angebote':'Local offers','Mietvelo':'Cycle rental','Veloservice':'Cycle service','Wanderwegnetz':'Hiking-trail network','Mietbike':'Bike rental','Bikeservice':'Bike service','Rafting':'','Kanuclub':'Canoeing Club','Buchbare Angebote':'Bookable offers','Bahn - Bus - Schiff':'Rail, bus, boat','Haltestellen':'Public transport stops','Bahn':'Train','Bus':'','Tram':'Tram / Bus','Schiff':'Boat','Seilbahn':'Aerial cableway','Standseilbahn':'Funicular railway','Empfehlungen':'Recommendations','Orte':'Places','Übernachten':'Accommodation','Hotel':'','Bed & Breakfast':'','Jugendherberge':'Youth hostel','Backpacker / Herberge':'Backpackers / hostel ','Gruppenunterkunft':'Group accommodation','Übernachten im Stroh':'Sleeping in straw','Bauernhof mit Zimmer':'Farm accommodation','Ferienwohnung':'Vacation apartment','Campingplatz':'Camping site','Berghuette':'SAC / mountain hut','Sehenswürdigkeiten':'Places of interest','Natur':'','Kultur':'Culture','Erlebnisse':'Experiences','Einkaufen':'Shopping','Flyerland':'Flyer-Land','Themen offnen':'Open topics','Themen schliessen':'Enlarged map','Drucken':'Print','Druckfeld schliessen':'Close Print','Search':'Search...','Koordinaten (m): ':'Coordinates (m): ','Geo search...':'Search place, PLZ, ...','SchweizMobil':'SwitzerlandMobility','Veloland Schweiz':'Cycling in Switzerland','Wanderland Schweiz':'Hiking in Switzerland','Mountainbikeland Schweiz':'Mountainbiking in Switzerland','Skatingland Schweiz':'Skating in Switzerland','Kanuland Schweiz':'Canoeing in Switzerland','Route unmarkieren':'Remove marking','Route markieren':'Mark route','Keine':'','Please wait...':'','You selected too many layers':'Please note: the maximum number of subjects that can be shown simultaneously on the web map has been exceeded. <br><br> Please close this window and deactivate subjects no longer required.<br><br>Thank you for your cooperation.'});OpenLayers.Util.extend(OpenLayers.Lang.fr,{'Veloland':'La Suisse à vélo','Wanderland':'La Suisse à pied','Mountainbikeland':'La Suisse à VTT','Skatingland':'La Suisse en rollers','Kanuland':'La Suisse en canoë','Routen':'Itinéraires','National':'National','Regional':'Régional','Lokal':'Local','Etappen':'Etapes','Lokale Angebote':'Offres locales','Mietvelo':'Vélo de location','Veloservice':'Service vélo','Wanderwegnetz':'Réseau de sentiers pédestres','Mietbike':'VTT de location','Bikeservice':'Service VTT','Rafting':'Tour de rafting','Kanuclub':'Club de canoë','Buchbare Angebote':'Offres à réserver','Bahn - Bus - Schiff':'Trains, bus, bateaux','Haltestellen':'Arrêts','Bahn':'Chemin de fer','Bus':'','Tram':'Tram / Bus','Schiff':'Bateau','Seilbahn':'Téléphérique','Standseilbahn':'Funiculaire','Empfehlungen':'Recommendations','Orte':'Lieux','Übernachten':'Hébergements','Hotel':'Hôtel','Bed & Breakfast':'','Jugendherberge':'Auberge de jeunesse','Backpacker / Herberge':'Backpacker / auberge','Gruppenunterkunft':'Logement de groupes','Übernachten im Stroh':'Aventure sur la paille','Bauernhof mit Zimmer':'Ferme avec chambre','Ferienwohnung':'Appartement de vacances','Campingplatz':'Camping','Berghuette':'Cabane (du CAS)','Sehenswürdigkeiten':'Curiosités','Natur':'Nature','Kultur':'Culture','Erlebnisse':'Découvertes','Einkaufen':'Achats','Flyerland':'La Suisse en Flyer','Themen offnen':'Ouvrir les thèmes','Themen schliessen':'Carte plus grande','Drucken':'Imprimer','Druckfeld schliessen':'Fermer la fenêtre d\'impression','Koordinaten (m): ':'Coordonnées (m): ','Search':'Recherche...','Geo search...':'Recherche lieu, NPA, ...','SchweizMobil':'SuisseMobile','Veloland Schweiz':'La Suisse à vélo','Wanderland Schweiz':'La Suisse à pied','Mountainbikeland Schweiz':'La Suisse à VTT','Skatingland Schweiz':'La Suisse en rollers','Kanuland Schweiz':'La Suisse en canoë','Route unmarkieren':'Effacer le tracé','Route markieren':'Tracer l\'itinéraire','Keine':'','Please wait...':'Veuillez patienter...','You selected too many layers':'Attention: le nombre maximum de thèmes pouvant être affichés simultanément sur la carte Web est dépassé. <br><br>Veuillez fermer cette fenêtre et désactiver les thèmes dont vous n\'avez plus besoin. <br><br> Nous vous remercions de votre compréhension'});OpenLayers.Util.extend(OpenLayers.Lang.it,{'Veloland':'La Svizzera in bici','Wanderland':'La Svizzera a piedi','Mountainbikeland':'La Svizzera in mountain bike','Skatingland':'La Svizzera in skating','Kanuland':'La Svizzera in canoa','Routen':'Percorsi','National':'Nazionale','Regional':'Regionale','Lokal':'Locale','Etappen':'Tappe','Lokale Angebote':'Offerte locali ','Mietvelo':'Bici a noleggio','Veloservice':'Assistenza bici','Wanderwegnetz':'Rete di sentieri escursionistici','Mietbike':'MTB a noleggio','Bikeservice':'Assistenza MTB','Rafting':'','Kanuclub':'Club canoisti','Buchbare Angebote':'Offerte prenotabili','Bahn - Bus - Schiff':'Treno, bus, battello','Haltestellen':'Fermata','Bahn':'Treno','Bus':'','Tram':'Tram / Bus','Schiff':'Battello','Seilbahn':'Funivia','Standseilbahn':'Funicolare','Empfehlungen':'Consigli','Orte':'Località','Übernachten':'Alloggio','Hotel':'Albergo','Bed & Breakfast':'','Jugendherberge':'Ostello per la gioventù','Backpacker / Herberge':'Backpacker/ ostello','Gruppenunterkunft':'Alloggio per comitive','Übernachten im Stroh':'Dormire sulla paglia','Bauernhof mit Zimmer':'Fattoria con camera','Ferienwohnung':'Appartamento di vacanza','Campingplatz':'Campeggio','Berghuette':'Capanna CAS / Rifugio','Sehenswürdigkeiten':'Curiosità','Natur':'Natura e paesaggio','Kultur':'Cultura','Erlebnisse':'Attrattive','Einkaufen':'Acquisti','Flyerland':'La Svizzera con Flyer','Themen offnen':'Aprire i temi','Themen schliessen':'Mappa più grande','Drucken':'Stampa','Druckfeld schliessen':'Chiudere stampa','Search':'Ricerca...','Koordinaten (m): ':'Coordinate (m): ','Geo search...':'Ricerca località, NPA, ...','SchweizMobil':'SvizzeraMobile','Veloland Schweiz':'La Svizzera in bici','Wanderland Schweiz':'La Svizzera a piedi','Mountainbikeland Schweiz':'La Svizzera in mountain bike','Skatingland Schweiz':'La Svizzera in skating','Kanuland Schweiz':'La Svizzera in canoa','Route unmarkieren':'Rimuovere marcatura','Route markieren':'Marcare il percorso','Keine':'','Please wait...':'','You selected too many layers':'Attenzione: è stato superato il numero massimo di temi visualizzabili contemporaneamente sulla cartina Web. <br><br>Si prega di chiudere le finestre e disattivare i temi non necessari.<br><br>Grazie per la collaborazione.'});Proj4js={defaultDatum:'WGS84',transform:function(source,dest,point){if(!source.readyToUse||!dest.readyToUse){this.reportError("Proj4js initialization for "+source.srsCode+" not yet complete");return point;}
if((source.srsProjNumber=="900913"&&dest.datumCode!="WGS84")||(dest.srsProjNumber=="900913"&&source.datumCode!="WGS84")){var wgs84=Proj4js.WGS84;this.transform(source,wgs84,point);source=wgs84;}
if(source.projName=="longlat"){point.x*=Proj4js.common.D2R;point.y*=Proj4js.common.D2R;}else{if(source.to_meter){point.x*=source.to_meter;point.y*=source.to_meter;}
source.inverse(point);}
if(source.from_greenwich){point.x+=source.from_greenwich;}
point=this.datum_transform(source.datum,dest.datum,point);if(dest.from_greenwich){point.x-=dest.from_greenwich;}
if(dest.projName=="longlat"){point.x*=Proj4js.common.R2D;point.y*=Proj4js.common.R2D;}else{dest.forward(point);if(dest.to_meter){point.x/=dest.to_meter;point.y/=dest.to_meter;}}
return point;},datum_transform:function(source,dest,point){if(source.compare_datums(dest)){return point;}
if(source.datum_type==Proj4js.common.PJD_NODATUM||dest.datum_type==Proj4js.common.PJD_NODATUM){return point;}
if(source.datum_type==Proj4js.common.PJD_GRIDSHIFT)
{alert("ERROR: Grid shift transformations are not implemented yet.");}
if(dest.datum_type==Proj4js.common.PJD_GRIDSHIFT)
{alert("ERROR: Grid shift transformations are not implemented yet.");}
if(source.es!=dest.es||source.a!=dest.a||source.datum_type==Proj4js.common.PJD_3PARAM||source.datum_type==Proj4js.common.PJD_7PARAM||dest.datum_type==Proj4js.common.PJD_3PARAM||dest.datum_type==Proj4js.common.PJD_7PARAM)
{source.geodetic_to_geocentric(point);if(source.datum_type==Proj4js.common.PJD_3PARAM||source.datum_type==Proj4js.common.PJD_7PARAM){source.geocentric_to_wgs84(point);}
if(dest.datum_type==Proj4js.common.PJD_3PARAM||dest.datum_type==Proj4js.common.PJD_7PARAM){dest.geocentric_from_wgs84(point);}
dest.geocentric_to_geodetic(point);}
if(dest.datum_type==Proj4js.common.PJD_GRIDSHIFT)
{alert("ERROR: Grid shift transformations are not implemented yet.");}
return point;},reportError:function(msg){},extend:function(destination,source){destination=destination||{};if(source){for(var property in source){var value=source[property];if(value!==undefined){destination[property]=value;}}}
return destination;},Class:function(){var Class=function(){this.initialize.apply(this,arguments);};var extended={};var parent;for(var i=0;i<arguments.length;++i){if(typeof arguments[i]=="function"){parent=arguments[i].prototype;}else{parent=arguments[i];}
Proj4js.extend(extended,parent);}
Class.prototype=extended;return Class;},bind:function(func,object){var args=Array.prototype.slice.apply(arguments,[2]);return function(){var newArgs=args.concat(Array.prototype.slice.apply(arguments,[0]));return func.apply(object,newArgs);};},scriptName:"proj4js-combined.js",defsLookupService:'http://spatialreference.org/ref',libPath:null,getScriptLocation:function(){if(this.libPath)return this.libPath;var scriptName=this.scriptName;var scriptNameLen=scriptName.length;var scripts=document.getElementsByTagName('script');for(var i=0;i<scripts.length;i++){var src=scripts[i].getAttribute('src');if(src){var index=src.lastIndexOf(scriptName);if((index>-1)&&(index+scriptNameLen==src.length)){this.libPath=src.slice(0,-scriptNameLen);break;}}}
return this.libPath||"";},loadScript:function(url,onload,onfail,loadCheck){var script=document.createElement('script');script.defer=false;script.type="text/javascript";script.id=url;script.src=url;script.onload=onload;script.onerror=onfail;script.loadCheck=loadCheck;if(/MSIE/.test(navigator.userAgent)){script.onreadystatechange=this.checkReadyState;}
document.getElementsByTagName('head')[0].appendChild(script);},checkReadyState:function(){if(this.readyState=='loaded'){if(!this.loadCheck()){this.onerror();}else{this.onload();}}}};Proj4js.Proj=Proj4js.Class({readyToUse:false,title:null,projName:null,units:null,datum:null,initialize:function(srsCode){this.srsCodeInput=srsCode;if(srsCode.indexOf('urn:')==0){var urn=srsCode.split(':');if((urn[1]=='ogc'||urn[1]=='x-ogc')&&(urn[2]=='def')&&(urn[3]=='crs')&&urn.length==7){srsCode=urn[4]+':'+urn[6];}}else if(srsCode.indexOf('http://')==0){var url=srsCode.split('#');if(url[0].match(/epsg.org/)){srsCode='EPSG:'+url[1];}else if(url[0].match(/RIG.xml/)){srsCode='IGNF:'+url[1];}}
this.srsCode=srsCode.toUpperCase();if(this.srsCode.indexOf("EPSG")==0){this.srsCode=this.srsCode;this.srsAuth='epsg';this.srsProjNumber=this.srsCode.substring(5);}else if(this.srsCode.indexOf("IGNF")==0){this.srsCode=this.srsCode;this.srsAuth='IGNF';this.srsProjNumber=this.srsCode.substring(5);}else if(this.srsCode.indexOf("CRS")==0){this.srsCode=this.srsCode;this.srsAuth='CRS';this.srsProjNumber=this.srsCode.substring(4);}else{this.srsAuth='';this.srsProjNumber=this.srsCode;}
this.loadProjDefinition();},loadProjDefinition:function(){if(Proj4js.defs[this.srsCode]){this.defsLoaded();return;}
var url=Proj4js.getScriptLocation()+'defs/'+this.srsAuth.toUpperCase()+this.srsProjNumber+'.js';Proj4js.loadScript(url,Proj4js.bind(this.defsLoaded,this),Proj4js.bind(this.loadFromService,this),Proj4js.bind(this.checkDefsLoaded,this));},loadFromService:function(){var url=Proj4js.defsLookupService+'/'+this.srsAuth+'/'+this.srsProjNumber+'/proj4js/';Proj4js.loadScript(url,Proj4js.bind(this.defsLoaded,this),Proj4js.bind(this.defsFailed,this),Proj4js.bind(this.checkDefsLoaded,this));},defsLoaded:function(){this.parseDefs();this.loadProjCode(this.projName);},checkDefsLoaded:function(){if(Proj4js.defs[this.srsCode]){return true;}else{return false;}},defsFailed:function(){Proj4js.reportError('failed to load projection definition for: '+this.srsCode);Proj4js.defs[this.srsCode]=Proj4js.defs['WGS84'];this.defsLoaded();},loadProjCode:function(projName){if(Proj4js.Proj[projName]){this.initTransforms();return;}
var url=Proj4js.getScriptLocation()+'projCode/'+projName+'.js';Proj4js.loadScript(url,Proj4js.bind(this.loadProjCodeSuccess,this,projName),Proj4js.bind(this.loadProjCodeFailure,this,projName),Proj4js.bind(this.checkCodeLoaded,this,projName));},loadProjCodeSuccess:function(projName){if(Proj4js.Proj[projName].dependsOn){this.loadProjCode(Proj4js.Proj[projName].dependsOn);}else{this.initTransforms();}},loadProjCodeFailure:function(projName){Proj4js.reportError("failed to find projection file for: "+projName);},checkCodeLoaded:function(projName){if(Proj4js.Proj[projName]){return true;}else{return false;}},initTransforms:function(){Proj4js.extend(this,Proj4js.Proj[this.projName]);this.init();this.readyToUse=true;},parseDefs:function(){this.defData=Proj4js.defs[this.srsCode];var paramName,paramVal;if(!this.defData){return;}
var paramArray=this.defData.split("+");for(var prop=0;prop<paramArray.length;prop++){var property=paramArray[prop].split("=");paramName=property[0].toLowerCase();paramVal=property[1];switch(paramName.replace(/\s/gi,"")){case"":break;case"title":this.title=paramVal;break;case"proj":this.projName=paramVal.replace(/\s/gi,"");break;case"units":this.units=paramVal.replace(/\s/gi,"");break;case"datum":this.datumCode=paramVal.replace(/\s/gi,"");break;case"nadgrids":this.nagrids=paramVal.replace(/\s/gi,"");break;case"ellps":this.ellps=paramVal.replace(/\s/gi,"");break;case"a":this.a=parseFloat(paramVal);break;case"b":this.b=parseFloat(paramVal);break;case"rf":this.rf=parseFloat(paramVal);break;case"lat_0":this.lat0=paramVal*Proj4js.common.D2R;break;case"lat_1":this.lat1=paramVal*Proj4js.common.D2R;break;case"lat_2":this.lat2=paramVal*Proj4js.common.D2R;break;case"lat_ts":this.lat_ts=paramVal*Proj4js.common.D2R;break;case"lon_0":this.long0=paramVal*Proj4js.common.D2R;break;case"alpha":this.alpha=parseFloat(paramVal)*Proj4js.common.D2R;break;case"lonc":this.longc=paramVal*Proj4js.common.D2R;break;case"x_0":this.x0=parseFloat(paramVal);break;case"y_0":this.y0=parseFloat(paramVal);break;case"k_0":this.k0=parseFloat(paramVal);break;case"k":this.k0=parseFloat(paramVal);break;case"r_a":this.R_A=true;break;case"zone":this.zone=parseInt(paramVal);break;case"south":this.utmSouth=true;break;case"towgs84":this.datum_params=paramVal.split(",");break;case"to_meter":this.to_meter=parseFloat(paramVal);break;case"from_greenwich":this.from_greenwich=paramVal*Proj4js.common.D2R;break;case"pm":paramVal=paramVal.replace(/\s/gi,"");this.from_greenwich=Proj4js.PrimeMeridian[paramVal]?Proj4js.PrimeMeridian[paramVal]:parseFloat(paramVal);this.from_greenwich*=Proj4js.common.D2R;break;case"no_defs":break;default:}}
this.deriveConstants();},deriveConstants:function(){if(this.nagrids=='@null')this.datumCode='none';if(this.datumCode&&this.datumCode!='none'){var datumDef=Proj4js.Datum[this.datumCode];if(datumDef){this.datum_params=datumDef.towgs84.split(',');this.ellps=datumDef.ellipse;this.datumName=datumDef.datumName?datumDef.datumName:this.datumCode;}}
if(!this.a){var ellipse=Proj4js.Ellipsoid[this.ellps]?Proj4js.Ellipsoid[this.ellps]:Proj4js.Ellipsoid['WGS84'];Proj4js.extend(this,ellipse);}
if(this.rf&&!this.b)this.b=(1.0-1.0/this.rf)*this.a;if(Math.abs(this.a-this.b)<Proj4js.common.EPSLN){this.sphere=true;this.b=this.a;}
this.a2=this.a*this.a;this.b2=this.b*this.b;this.es=(this.a2-this.b2)/this.a2;this.e=Math.sqrt(this.es);if(this.R_A){this.a*=1.-this.es*(Proj4js.common.SIXTH+this.es*(Proj4js.common.RA4+this.es*Proj4js.common.RA6));this.a2=this.a*this.a;this.b2=this.b*this.b;this.es=0.;}
this.ep2=(this.a2-this.b2)/this.b2;if(!this.k0)this.k0=1.0;this.datum=new Proj4js.datum(this);}});Proj4js.Proj.longlat={init:function(){},forward:function(pt){return pt;},inverse:function(pt){return pt;}};Proj4js.defs={'WGS84':"+title=long/lat:WGS84 +proj=longlat +ellps=WGS84 +datum=WGS84 +units=degrees",'EPSG:4326':"+title=long/lat:WGS84 +proj=longlat +a=6378137.0 +b=6356752.31424518 +ellps=WGS84 +datum=WGS84 +units=degrees",'EPSG:4269':"+title=long/lat:NAD83 +proj=longlat +a=6378137.0 +b=6356752.31414036 +ellps=GRS80 +datum=NAD83 +units=degrees",'EPSG:3785':"+title= Google Mercator +proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +no_defs"};Proj4js.defs['GOOGLE']=Proj4js.defs['EPSG:3785'];Proj4js.defs['EPSG:900913']=Proj4js.defs['EPSG:3785'];Proj4js.defs['EPSG:102113']=Proj4js.defs['EPSG:3785'];Proj4js.common={PI:3.141592653589793238,HALF_PI:1.570796326794896619,TWO_PI:6.283185307179586477,FORTPI:0.78539816339744833,R2D:57.29577951308232088,D2R:0.01745329251994329577,SEC_TO_RAD:4.84813681109535993589914102357e-6,EPSLN:1.0e-10,MAX_ITER:20,COS_67P5:0.38268343236508977,AD_C:1.0026000,PJD_UNKNOWN:0,PJD_3PARAM:1,PJD_7PARAM:2,PJD_GRIDSHIFT:3,PJD_WGS84:4,PJD_NODATUM:5,SRS_WGS84_SEMIMAJOR:6378137.0,SIXTH:.1666666666666666667,RA4:.04722222222222222222,RA6:.02215608465608465608,RV4:.06944444444444444444,RV6:.04243827160493827160,msfnz:function(eccent,sinphi,cosphi){var con=eccent*sinphi;return cosphi/(Math.sqrt(1.0-con*con));},tsfnz:function(eccent,phi,sinphi){var con=eccent*sinphi;var com=.5*eccent;con=Math.pow(((1.0-con)/(1.0+con)),com);return(Math.tan(.5*(this.HALF_PI-phi))/con);},phi2z:function(eccent,ts){var eccnth=.5*eccent;var con,dphi;var phi=this.HALF_PI-2*Math.atan(ts);for(i=0;i<=15;i++){con=eccent*Math.sin(phi);dphi=this.HALF_PI-2*Math.atan(ts*(Math.pow(((1.0-con)/(1.0+con)),eccnth)))-phi;phi+=dphi;if(Math.abs(dphi)<=.0000000001)return phi;}
alert("phi2z has NoConvergence");return(-9999);},qsfnz:function(eccent,sinphi,cosphi){var con;if(eccent>1.0e-7){con=eccent*sinphi;return((1.0-eccent*eccent)*(sinphi/(1.0-con*con)-(.5/eccent)*Math.log((1.0-con)/(1.0+con))));}else{return(2.0*sinphi);}},asinz:function(x){if(Math.abs(x)>1.0){x=(x>1.0)?1.0:-1.0;}
return Math.asin(x);},e0fn:function(x){return(1.0-0.25*x*(1.0+x/16.0*(3.0+1.25*x)));},e1fn:function(x){return(0.375*x*(1.0+0.25*x*(1.0+0.46875*x)));},e2fn:function(x){return(0.05859375*x*x*(1.0+0.75*x));},e3fn:function(x){return(x*x*x*(35.0/3072.0));},mlfn:function(e0,e1,e2,e3,phi){return(e0*phi-e1*Math.sin(2.0*phi)+e2*Math.sin(4.0*phi)-e3*Math.sin(6.0*phi));},srat:function(esinp,exp){return(Math.pow((1.0-esinp)/(1.0+esinp),exp));},sign:function(x){if(x<0.0)return(-1);else return(1);},adjust_lon:function(x){x=(Math.abs(x)<this.PI)?x:(x-(this.sign(x)*this.TWO_PI));return x;},adjust_lat:function(x){x=(Math.abs(x)<this.HALF_PI)?x:(x-(this.sign(x)*this.PI));return x;},latiso:function(eccent,phi,sinphi)
{if(Math.abs(phi)>this.HALF_PI)return+Number.NaN;if(phi==this.HALF_PI)return Number.POSITIVE_INFINITY;if(phi==-1.0*this.HALF_PI)return-1.0*Number.POSITIVE_INFINITY;var con=eccent*sinphi;return Math.log(Math.tan((this.HALF_PI+phi)/2.0))+eccent*Math.log((1.0-con)/(1.0+con))/2.0;},fL:function(x,L){return 2.0*Math.atan(x*Math.exp(L))-this.HALF_PI;},invlatiso:function(eccent,ts){var phi=this.fL(1.0,ts);var Iphi=0.0;var con=0.0;do{Iphi=phi;con=eccent*Math.sin(Iphi);phi=this.fL(Math.exp(eccent*Math.log((1.0+con)/(1.0-con))/2.0),ts)}while(Math.abs(phi-Iphi)>1.0e-12);return phi;},sinh:function(x)
{var r=Math.exp(x);r=(r-1.0/r)/2.0;return r;},cosh:function(x)
{var r=Math.exp(x);r=(r+1.0/r)/2.0;return r;},tanh:function(x)
{var r=Math.exp(x);r=(r-1.0/r)/(r+1.0/r);return r;},asinh:function(x)
{var s=(x>=0?1.0:-1.0);return s*(Math.log(Math.abs(x)+Math.sqrt(x*x+1.0)));},acosh:function(x)
{return 2.0*Math.log(Math.sqrt((x+1.0)/2.0)+Math.sqrt((x-1.0)/2.0));},atanh:function(x)
{return Math.log((x-1.0)/(x+1.0))/2.0;},gN:function(a,e,sinphi)
{var temp=e*sinphi;return a/Math.sqrt(1.0-temp*temp);}};Proj4js.datum=Proj4js.Class({initialize:function(proj){this.datum_type=Proj4js.common.PJD_WGS84;if(proj.datumCode&&proj.datumCode=='none'){this.datum_type=Proj4js.common.PJD_NODATUM;}
if(proj&&proj.datum_params){for(var i=0;i<proj.datum_params.length;i++){proj.datum_params[i]=parseFloat(proj.datum_params[i]);}
if(proj.datum_params[0]!=0||proj.datum_params[1]!=0||proj.datum_params[2]!=0){this.datum_type=Proj4js.common.PJD_3PARAM;}
if(proj.datum_params.length>3){if(proj.datum_params[3]!=0||proj.datum_params[4]!=0||proj.datum_params[5]!=0||proj.datum_params[6]!=0){this.datum_type=Proj4js.common.PJD_7PARAM;proj.datum_params[3]*=Proj4js.common.SEC_TO_RAD;proj.datum_params[4]*=Proj4js.common.SEC_TO_RAD;proj.datum_params[5]*=Proj4js.common.SEC_TO_RAD;proj.datum_params[6]=(proj.datum_params[6]/1000000.0)+1.0;}}}
if(proj){this.a=proj.a;this.b=proj.b;this.es=proj.es;this.ep2=proj.ep2;this.datum_params=proj.datum_params;}},compare_datums:function(dest){if(this.datum_type!=dest.datum_type){return false;}else if(this.a!=dest.a||Math.abs(this.es-dest.es)>0.000000000050){return false;}else if(this.datum_type==Proj4js.common.PJD_3PARAM){return(this.datum_params[0]==dest.datum_params[0]&&this.datum_params[1]==dest.datum_params[1]&&this.datum_params[2]==dest.datum_params[2]);}else if(this.datum_type==Proj4js.common.PJD_7PARAM){return(this.datum_params[0]==dest.datum_params[0]&&this.datum_params[1]==dest.datum_params[1]&&this.datum_params[2]==dest.datum_params[2]&&this.datum_params[3]==dest.datum_params[3]&&this.datum_params[4]==dest.datum_params[4]&&this.datum_params[5]==dest.datum_params[5]&&this.datum_params[6]==dest.datum_params[6]);}else if(this.datum_type==Proj4js.common.PJD_GRIDSHIFT){return strcmp(pj_param(this.params,"snadgrids").s,pj_param(dest.params,"snadgrids").s)==0;}else{return true;}},geodetic_to_geocentric:function(p){var Longitude=p.x;var Latitude=p.y;var Height=p.z?p.z:0;var X;var Y;var Z;var Error_Code=0;var Rn;var Sin_Lat;var Sin2_Lat;var Cos_Lat;if(Latitude<-Proj4js.common.HALF_PI&&Latitude>-1.001*Proj4js.common.HALF_PI){Latitude=-Proj4js.common.HALF_PI;}else if(Latitude>Proj4js.common.HALF_PI&&Latitude<1.001*Proj4js.common.HALF_PI){Latitude=Proj4js.common.HALF_PI;}else if((Latitude<-Proj4js.common.HALF_PI)||(Latitude>Proj4js.common.HALF_PI)){Proj4js.reportError('geocent:lat out of range:'+Latitude);return null;}
if(Longitude>Proj4js.common.PI)Longitude-=(2*Proj4js.common.PI);Sin_Lat=Math.sin(Latitude);Cos_Lat=Math.cos(Latitude);Sin2_Lat=Sin_Lat*Sin_Lat;Rn=this.a/(Math.sqrt(1.0e0-this.es*Sin2_Lat));X=(Rn+Height)*Cos_Lat*Math.cos(Longitude);Y=(Rn+Height)*Cos_Lat*Math.sin(Longitude);Z=((Rn*(1-this.es))+Height)*Sin_Lat;p.x=X;p.y=Y;p.z=Z;return Error_Code;},geocentric_to_geodetic:function(p){var genau=1.E-12;var genau2=(genau*genau);var maxiter=30;var P;var RR;var CT;var ST;var RX;var RK;var RN;var CPHI0;var SPHI0;var CPHI;var SPHI;var SDPHI;var At_Pole;var iter;var X=p.x;var Y=p.y;var Z=p.z?p.z:0.0;var Longitude;var Latitude;var Height;At_Pole=false;P=Math.sqrt(X*X+Y*Y);RR=Math.sqrt(X*X+Y*Y+Z*Z);if(P/this.a<genau){At_Pole=true;Longitude=0.0;if(RR/this.a<genau){Latitude=Proj4js.common.HALF_PI;Height=-this.b;return;}}else{Longitude=Math.atan2(Y,X);}
CT=Z/RR;ST=P/RR;RX=1.0/Math.sqrt(1.0-this.es*(2.0-this.es)*ST*ST);CPHI0=ST*(1.0-this.es)*RX;SPHI0=CT*RX;iter=0;do
{iter++;RN=this.a/Math.sqrt(1.0-this.es*SPHI0*SPHI0);Height=P*CPHI0+Z*SPHI0-RN*(1.0-this.es*SPHI0*SPHI0);RK=this.es*RN/(RN+Height);RX=1.0/Math.sqrt(1.0-RK*(2.0-RK)*ST*ST);CPHI=ST*(1.0-RK)*RX;SPHI=CT*RX;SDPHI=SPHI*CPHI0-CPHI*SPHI0;CPHI0=CPHI;SPHI0=SPHI;}
while(SDPHI*SDPHI>genau2&&iter<maxiter);Latitude=Math.atan(SPHI/Math.abs(CPHI));p.x=Longitude;p.y=Latitude;p.z=Height;return p;},geocentric_to_geodetic_noniter:function(p){var X=p.x;var Y=p.y;var Z=p.z?p.z:0;var Longitude;var Latitude;var Height;var W;var W2;var T0;var T1;var S0;var S1;var Sin_B0;var Sin3_B0;var Cos_B0;var Sin_p1;var Cos_p1;var Rn;var Sum;var At_Pole;X=parseFloat(X);Y=parseFloat(Y);Z=parseFloat(Z);At_Pole=false;if(X!=0.0)
{Longitude=Math.atan2(Y,X);}
else
{if(Y>0)
{Longitude=Proj4js.common.HALF_PI;}
else if(Y<0)
{Longitude=-Proj4js.common.HALF_PI;}
else
{At_Pole=true;Longitude=0.0;if(Z>0.0)
{Latitude=Proj4js.common.HALF_PI;}
else if(Z<0.0)
{Latitude=-Proj4js.common.HALF_PI;}
else
{Latitude=Proj4js.common.HALF_PI;Height=-this.b;return;}}}
W2=X*X+Y*Y;W=Math.sqrt(W2);T0=Z*Proj4js.common.AD_C;S0=Math.sqrt(T0*T0+W2);Sin_B0=T0/S0;Cos_B0=W/S0;Sin3_B0=Sin_B0*Sin_B0*Sin_B0;T1=Z+this.b*this.ep2*Sin3_B0;Sum=W-this.a*this.es*Cos_B0*Cos_B0*Cos_B0;S1=Math.sqrt(T1*T1+Sum*Sum);Sin_p1=T1/S1;Cos_p1=Sum/S1;Rn=this.a/Math.sqrt(1.0-this.es*Sin_p1*Sin_p1);if(Cos_p1>=Proj4js.common.COS_67P5)
{Height=W/Cos_p1-Rn;}
else if(Cos_p1<=-Proj4js.common.COS_67P5)
{Height=W/-Cos_p1-Rn;}
else
{Height=Z/Sin_p1+Rn*(this.es-1.0);}
if(At_Pole==false)
{Latitude=Math.atan(Sin_p1/Cos_p1);}
p.x=Longitude;p.y=Latitude;p.z=Height;return p;},geocentric_to_wgs84:function(p){if(this.datum_type==Proj4js.common.PJD_3PARAM)
{p.x+=this.datum_params[0];p.y+=this.datum_params[1];p.z+=this.datum_params[2];}
else if(this.datum_type==Proj4js.common.PJD_7PARAM)
{var Dx_BF=this.datum_params[0];var Dy_BF=this.datum_params[1];var Dz_BF=this.datum_params[2];var Rx_BF=this.datum_params[3];var Ry_BF=this.datum_params[4];var Rz_BF=this.datum_params[5];var M_BF=this.datum_params[6];var x_out=M_BF*(p.x-Rz_BF*p.y+Ry_BF*p.z)+Dx_BF;var y_out=M_BF*(Rz_BF*p.x+p.y-Rx_BF*p.z)+Dy_BF;var z_out=M_BF*(-Ry_BF*p.x+Rx_BF*p.y+p.z)+Dz_BF;p.x=x_out;p.y=y_out;p.z=z_out;}},geocentric_from_wgs84:function(p){if(this.datum_type==Proj4js.common.PJD_3PARAM)
{p.x-=this.datum_params[0];p.y-=this.datum_params[1];p.z-=this.datum_params[2];}
else if(this.datum_type==Proj4js.common.PJD_7PARAM)
{var Dx_BF=this.datum_params[0];var Dy_BF=this.datum_params[1];var Dz_BF=this.datum_params[2];var Rx_BF=this.datum_params[3];var Ry_BF=this.datum_params[4];var Rz_BF=this.datum_params[5];var M_BF=this.datum_params[6];var x_tmp=(p.x-Dx_BF)/M_BF;var y_tmp=(p.y-Dy_BF)/M_BF;var z_tmp=(p.z-Dz_BF)/M_BF;p.x=x_tmp+Rz_BF*y_tmp-Ry_BF*z_tmp;p.y=-Rz_BF*x_tmp+y_tmp+Rx_BF*z_tmp;p.z=Ry_BF*x_tmp-Rx_BF*y_tmp+z_tmp;}}});Proj4js.Point=Proj4js.Class({initialize:function(x,y,z){if(typeof x=='object'){this.x=x[0];this.y=x[1];this.z=x[2]||0.0;}else if(typeof x=='string'){var coords=x.split(',');this.x=parseFloat(coords[0]);this.y=parseFloat(coords[1]);this.z=parseFloat(coords[2])||0.0;}else{this.x=x;this.y=y;this.z=z||0.0;}},clone:function(){return new Proj4js.Point(this.x,this.y,this.z);},toString:function(){return("x="+this.x+",y="+this.y);},toShortString:function(){return(this.x+", "+this.y);}});Proj4js.PrimeMeridian={"greenwich":0.0,"lisbon":-9.131906111111,"paris":2.337229166667,"bogota":-74.080916666667,"madrid":-3.687938888889,"rome":12.452333333333,"bern":7.439583333333,"jakarta":106.807719444444,"ferro":-17.666666666667,"brussels":4.367975,"stockholm":18.058277777778,"athens":23.7163375,"oslo":10.722916666667};Proj4js.Ellipsoid={"MERIT":{a:6378137.0,rf:298.257,ellipseName:"MERIT 1983"},"SGS85":{a:6378136.0,rf:298.257,ellipseName:"Soviet Geodetic System 85"},"GRS80":{a:6378137.0,rf:298.257222101,ellipseName:"GRS 1980(IUGG, 1980)"},"IAU76":{a:6378140.0,rf:298.257,ellipseName:"IAU 1976"},"airy":{a:6377563.396,b:6356256.910,ellipseName:"Airy 1830"},"APL4.":{a:6378137,rf:298.25,ellipseName:"Appl. Physics. 1965"},"NWL9D":{a:6378145.0,rf:298.25,ellipseName:"Naval Weapons Lab., 1965"},"mod_airy":{a:6377340.189,b:6356034.446,ellipseName:"Modified Airy"},"andrae":{a:6377104.43,rf:300.0,ellipseName:"Andrae 1876 (Den., Iclnd.)"},"aust_SA":{a:6378160.0,rf:298.25,ellipseName:"Australian Natl & S. Amer. 1969"},"GRS67":{a:6378160.0,rf:298.2471674270,ellipseName:"GRS 67(IUGG 1967)"},"bessel":{a:6377397.155,rf:299.1528128,ellipseName:"Bessel 1841"},"bess_nam":{a:6377483.865,rf:299.1528128,ellipseName:"Bessel 1841 (Namibia)"},"clrk66":{a:6378206.4,b:6356583.8,ellipseName:"Clarke 1866"},"clrk80":{a:6378249.145,rf:293.4663,ellipseName:"Clarke 1880 mod."},"CPM":{a:6375738.7,rf:334.29,ellipseName:"Comm. des Poids et Mesures 1799"},"delmbr":{a:6376428.0,rf:311.5,ellipseName:"Delambre 1810 (Belgium)"},"engelis":{a:6378136.05,rf:298.2566,ellipseName:"Engelis 1985"},"evrst30":{a:6377276.345,rf:300.8017,ellipseName:"Everest 1830"},"evrst48":{a:6377304.063,rf:300.8017,ellipseName:"Everest 1948"},"evrst56":{a:6377301.243,rf:300.8017,ellipseName:"Everest 1956"},"evrst69":{a:6377295.664,rf:300.8017,ellipseName:"Everest 1969"},"evrstSS":{a:6377298.556,rf:300.8017,ellipseName:"Everest (Sabah & Sarawak)"},"fschr60":{a:6378166.0,rf:298.3,ellipseName:"Fischer (Mercury Datum) 1960"},"fschr60m":{a:6378155.0,rf:298.3,ellipseName:"Fischer 1960"},"fschr68":{a:6378150.0,rf:298.3,ellipseName:"Fischer 1968"},"helmert":{a:6378200.0,rf:298.3,ellipseName:"Helmert 1906"},"hough":{a:6378270.0,rf:297.0,ellipseName:"Hough"},"intl":{a:6378388.0,rf:297.0,ellipseName:"International 1909 (Hayford)"},"kaula":{a:6378163.0,rf:298.24,ellipseName:"Kaula 1961"},"lerch":{a:6378139.0,rf:298.257,ellipseName:"Lerch 1979"},"mprts":{a:6397300.0,rf:191.0,ellipseName:"Maupertius 1738"},"new_intl":{a:6378157.5,b:6356772.2,ellipseName:"New International 1967"},"plessis":{a:6376523.0,rf:6355863.0,ellipseName:"Plessis 1817 (France)"},"krass":{a:6378245.0,rf:298.3,ellipseName:"Krassovsky, 1942"},"SEasia":{a:6378155.0,b:6356773.3205,ellipseName:"Southeast Asia"},"walbeck":{a:6376896.0,b:6355834.8467,ellipseName:"Walbeck"},"WGS60":{a:6378165.0,rf:298.3,ellipseName:"WGS 60"},"WGS66":{a:6378145.0,rf:298.25,ellipseName:"WGS 66"},"WGS72":{a:6378135.0,rf:298.26,ellipseName:"WGS 72"},"WGS84":{a:6378137.0,rf:298.257223563,ellipseName:"WGS 84"},"sphere":{a:6370997.0,b:6370997.0,ellipseName:"Normal Sphere (r=6370997)"}};Proj4js.Datum={"WGS84":{towgs84:"0,0,0",ellipse:"WGS84",datumName:"WGS84"},"GGRS87":{towgs84:"-199.87,74.79,246.62",ellipse:"GRS80",datumName:"Greek_Geodetic_Reference_System_1987"},"NAD83":{towgs84:"0,0,0",ellipse:"GRS80",datumName:"North_American_Datum_1983"},"NAD27":{nadgrids:"@conus,@alaska,@ntv2_0.gsb,@ntv1_can.dat",ellipse:"clrk66",datumName:"North_American_Datum_1927"},"potsdam":{towgs84:"606.0,23.0,413.0",ellipse:"bessel",datumName:"Potsdam Rauenberg 1950 DHDN"},"carthage":{towgs84:"-263.0,6.0,431.0",ellipse:"clark80",datumName:"Carthage 1934 Tunisia"},"hermannskogel":{towgs84:"653.0,-212.0,449.0",ellipse:"bessel",datumName:"Hermannskogel"},"ire65":{towgs84:"482.530,-130.596,564.557,-1.042,-0.214,-0.631,8.15",ellipse:"mod_airy",datumName:"Ireland 1965"},"nzgd49":{towgs84:"59.47,-5.04,187.44,0.47,-0.1,1.024,-4.5993",ellipse:"intl",datumName:"New Zealand Geodetic Datum 1949"},"OSGB36":{towgs84:"446.448,-125.157,542.060,0.1502,0.2470,0.8421,-20.4894",ellipse:"airy",datumName:"Airy 1830"}};Proj4js.WGS84=new Proj4js.Proj('WGS84');Proj4js.Datum['OSB36']=Proj4js.Datum['OSGB36'];Proj4js.Proj.aea={init:function(){if(Math.abs(this.lat1+this.lat2)<Proj4js.common.EPSLN){Proj4js.reportError("aeaInitEqualLatitudes");return;}
this.temp=this.b/this.a;this.es=1.0-Math.pow(this.temp,2);this.e3=Math.sqrt(this.es);this.sin_po=Math.sin(this.lat1);this.cos_po=Math.cos(this.lat1);this.t1=this.sin_po;this.con=this.sin_po;this.ms1=Proj4js.common.msfnz(this.e3,this.sin_po,this.cos_po);this.qs1=Proj4js.common.qsfnz(this.e3,this.sin_po,this.cos_po);this.sin_po=Math.sin(this.lat2);this.cos_po=Math.cos(this.lat2);this.t2=this.sin_po;this.ms2=Proj4js.common.msfnz(this.e3,this.sin_po,this.cos_po);this.qs2=Proj4js.common.qsfnz(this.e3,this.sin_po,this.cos_po);this.sin_po=Math.sin(this.lat0);this.cos_po=Math.cos(this.lat0);this.t3=this.sin_po;this.qs0=Proj4js.common.qsfnz(this.e3,this.sin_po,this.cos_po);if(Math.abs(this.lat1-this.lat2)>Proj4js.common.EPSLN){this.ns0=(this.ms1*this.ms1-this.ms2*this.ms2)/(this.qs2-this.qs1);}else{this.ns0=this.con;}
this.c=this.ms1*this.ms1+this.ns0*this.qs1;this.rh=this.a*Math.sqrt(this.c-this.ns0*this.qs0)/this.ns0;},forward:function(p){var lon=p.x;var lat=p.y;this.sin_phi=Math.sin(lat);this.cos_phi=Math.cos(lat);var qs=Proj4js.common.qsfnz(this.e3,this.sin_phi,this.cos_phi);var rh1=this.a*Math.sqrt(this.c-this.ns0*qs)/this.ns0;var theta=this.ns0*Proj4js.common.adjust_lon(lon-this.long0);var x=rh1*Math.sin(theta)+this.x0;var y=this.rh-rh1*Math.cos(theta)+this.y0;p.x=x;p.y=y;return p;},inverse:function(p){var rh1,qs,con,theta,lon,lat;p.x-=this.x0;p.y=this.rh-p.y+this.y0;if(this.ns0>=0){rh1=Math.sqrt(p.x*p.x+p.y*p.y);con=1.0;}else{rh1=-Math.sqrt(p.x*p.x+p.y*p.y);con=-1.0;}
theta=0.0;if(rh1!=0.0){theta=Math.atan2(con*p.x,con*p.y);}
con=rh1*this.ns0/this.a;qs=(this.c-con*con)/this.ns0;if(this.e3>=1e-10){con=1-.5*(1.0-this.es)*Math.log((1.0-this.e3)/(1.0+this.e3))/this.e3;if(Math.abs(Math.abs(con)-Math.abs(qs))>.0000000001){lat=this.phi1z(this.e3,qs);}else{if(qs>=0){lat=.5*PI;}else{lat=-.5*PI;}}}else{lat=this.phi1z(e3,qs);}
lon=Proj4js.common.adjust_lon(theta/this.ns0+this.long0);p.x=lon;p.y=lat;return p;},phi1z:function(eccent,qs){var con,com,dphi;var phi=Proj4js.common.asinz(.5*qs);if(eccent<Proj4js.common.EPSLN)return phi;var eccnts=eccent*eccent;for(var i=1;i<=25;i++){sinphi=Math.sin(phi);cosphi=Math.cos(phi);con=eccent*sinphi;com=1.0-con*con;dphi=.5*com*com/cosphi*(qs/(1.0-eccnts)-sinphi/com+.5/eccent*Math.log((1.0-con)/(1.0+con)));phi=phi+dphi;if(Math.abs(dphi)<=1e-7)return phi;}
Proj4js.reportError("aea:phi1z:Convergence error");return null;}};Proj4js.Proj.sterea={dependsOn:'gauss',init:function(){Proj4js.Proj['gauss'].init.apply(this);if(!this.rc){Proj4js.reportError("sterea:init:E_ERROR_0");return;}
this.sinc0=Math.sin(this.phic0);this.cosc0=Math.cos(this.phic0);this.R2=2.0*this.rc;if(!this.title)this.title="Oblique Stereographic Alternative";},forward:function(p){p.x=Proj4js.common.adjust_lon(p.x-this.long0);Proj4js.Proj['gauss'].forward.apply(this,[p]);sinc=Math.sin(p.y);cosc=Math.cos(p.y);cosl=Math.cos(p.x);k=this.k0*this.R2/(1.0+this.sinc0*sinc+this.cosc0*cosc*cosl);p.x=k*cosc*Math.sin(p.x);p.y=k*(this.cosc0*sinc-this.sinc0*cosc*cosl);p.x=this.a*p.x+this.x0;p.y=this.a*p.y+this.y0;return p;},inverse:function(p){var lon,lat;p.x=(p.x-this.x0)/this.a;p.y=(p.y-this.y0)/this.a;p.x/=this.k0;p.y/=this.k0;if((rho=Math.sqrt(p.x*p.x+p.y*p.y))){c=2.0*Math.atan2(rho,this.R2);sinc=Math.sin(c);cosc=Math.cos(c);lat=Math.asin(cosc*this.sinc0+p.y*sinc*this.cosc0/rho);lon=Math.atan2(p.x*sinc,rho*this.cosc0*cosc-p.y*this.sinc0*sinc);}else{lat=this.phic0;lon=0.;}
p.x=lon;p.y=lat;Proj4js.Proj['gauss'].inverse.apply(this,[p]);p.x=Proj4js.common.adjust_lon(p.x+this.long0);return p;}};function phi4z(eccent,e0,e1,e2,e3,a,b,c,phi){var sinphi,sin2ph,tanph,ml,mlp,con1,con2,con3,dphi,i;phi=a;for(i=1;i<=15;i++){sinphi=Math.sin(phi);tanphi=Math.tan(phi);c=tanphi*Math.sqrt(1.0-eccent*sinphi*sinphi);sin2ph=Math.sin(2.0*phi);ml=e0*phi-e1*sin2ph+e2*Math.sin(4.0*phi)-e3*Math.sin(6.0*phi);mlp=e0-2.0*e1*Math.cos(2.0*phi)+4.0*e2*Math.cos(4.0*phi)-6.0*e3*Math.cos(6.0*phi);con1=2.0*ml+c*(ml*ml+b)-2.0*a*(c*ml+1.0);con2=eccent*sin2ph*(ml*ml+b-2.0*a*ml)/(2.0*c);con3=2.0*(a-ml)*(c*mlp-2.0/sin2ph)-2.0*mlp;dphi=con1/(con2+con3);phi+=dphi;if(Math.abs(dphi)<=.0000000001)return(phi);}
Proj4js.reportError("phi4z: No convergence");return null;}
function e4fn(x){var con,com;con=1.0+x;com=1.0-x;return(Math.sqrt((Math.pow(con,con))*(Math.pow(com,com))));}
Proj4js.Proj.poly={init:function(){var temp;if(this.lat0=0)this.lat0=90;this.temp=this.b/this.a;this.es=1.0-Math.pow(this.temp,2);this.e=Math.sqrt(this.es);this.e0=Proj4js.common.e0fn(this.es);this.e1=Proj4js.common.e1fn(this.es);this.e2=Proj4js.common.e2fn(this.es);this.e3=Proj4js.common.e3fn(this.es);this.ml0=Proj4js.common.mlfn(this.e0,this.e1,this.e2,this.e3,this.lat0);},forward:function(p){var sinphi,cosphi;var al;var c;var con,ml;var ms;var x,y;var lon=p.x;var lat=p.y;con=Proj4js.common.adjust_lon(lon-this.long0);if(Math.abs(lat)<=.0000001){x=this.x0+this.a*con;y=this.y0-this.a*this.ml0;}else{sinphi=Math.sin(lat);cosphi=Math.cos(lat);ml=Proj4js.common.mlfn(this.e0,this.e1,this.e2,this.e3,lat);ms=Proj4js.common.msfnz(this.e,sinphi,cosphi);con=sinphi;x=this.x0+this.a*ms*Math.sin(con)/sinphi;y=this.y0+this.a*(ml-this.ml0+ms*(1.0-Math.cos(con))/sinphi);}
p.x=x;p.y=y;return p;},inverse:function(p){var sin_phi,cos_phi;var al;var b;var c;var con,ml;var iflg;var lon,lat;p.x-=this.x0;p.y-=this.y0;al=this.ml0+p.y/this.a;iflg=0;if(Math.abs(al)<=.0000001){lon=p.x/this.a+this.long0;lat=0.0;}else{b=al*al+(p.x/this.a)*(p.x/this.a);iflg=phi4z(this.es,this.e0,this.e1,this.e2,this.e3,this.al,b,c,lat);if(iflg!=1)return(iflg);lon=Proj4js.common.adjust_lon((Proj4js.common.asinz(p.x*c/this.a)/Math.sin(lat))+this.long0);}
p.x=lon;p.y=lat;return p;}};Proj4js.Proj.equi={init:function(){if(!this.x0)this.x0=0;if(!this.y0)this.y0=0;if(!this.lat0)this.lat0=0;if(!this.long0)this.long0=0;},forward:function(p){var lon=p.x;var lat=p.y;var dlon=Proj4js.common.adjust_lon(lon-this.long0);var x=this.x0+this.a*dlon*Math.cos(this.lat0);var y=this.y0+this.a*lat;this.t1=x;this.t2=Math.cos(this.lat0);p.x=x;p.y=y;return p;},inverse:function(p){p.x-=this.x0;p.y-=this.y0;var lat=p.y/this.a;if(Math.abs(lat)>Proj4js.common.HALF_PI){Proj4js.reportError("equi:Inv:DataError");}
var lon=Proj4js.common.adjust_lon(this.long0+p.x/(this.a*Math.cos(this.lat0)));p.x=lon;p.y=lat;}};Proj4js.Proj.merc={init:function(){if(this.lat_ts){if(this.sphere){this.k0=Math.cos(this.lat_ts);}else{this.k0=Proj4js.common.msfnz(this.es,Math.sin(this.lat_ts),Math.cos(this.lat_ts));}}},forward:function(p){var lon=p.x;var lat=p.y;if(lat*Proj4js.common.R2D>90.0&&lat*Proj4js.common.R2D<-90.0&&lon*Proj4js.common.R2D>180.0&&lon*Proj4js.common.R2D<-180.0){Proj4js.reportError("merc:forward: llInputOutOfRange: "+lon+" : "+lat);return null;}
var x,y;if(Math.abs(Math.abs(lat)-Proj4js.common.HALF_PI)<=Proj4js.common.EPSLN){Proj4js.reportError("merc:forward: ll2mAtPoles");return null;}else{if(this.sphere){x=this.x0+this.a*this.k0*Proj4js.common.adjust_lon(lon-this.long0);y=this.y0+this.a*this.k0*Math.log(Math.tan(Proj4js.common.FORTPI+0.5*lat));}else{var sinphi=Math.sin(lat);var ts=Proj4js.common.tsfnz(this.e,lat,sinphi);x=this.x0+this.a*this.k0*Proj4js.common.adjust_lon(lon-this.long0);y=this.y0-this.a*this.k0*Math.log(ts);}
p.x=x;p.y=y;return p;}},inverse:function(p){var x=p.x-this.x0;var y=p.y-this.y0;var lon,lat;if(this.sphere){lat=Proj4js.common.HALF_PI-2.0*Math.atan(Math.exp(-y/this.a*this.k0));}else{var ts=Math.exp(-y/(this.a*this.k0));lat=Proj4js.common.phi2z(this.e,ts);if(lat==-9999){Proj4js.reportError("merc:inverse: lat = -9999");return null;}}
lon=Proj4js.common.adjust_lon(this.long0+x/(this.a*this.k0));p.x=lon;p.y=lat;return p;}};Proj4js.Proj.utm={dependsOn:'tmerc',init:function(){if(!this.zone){Proj4js.reportError("utm:init: zone must be specified for UTM");return;}
this.lat0=0.0;this.long0=((6*Math.abs(this.zone))-183)*Proj4js.common.D2R;this.x0=500000.0;this.y0=this.utmSouth?10000000.0:0.0;this.k0=0.9996;Proj4js.Proj['tmerc'].init.apply(this);this.forward=Proj4js.Proj['tmerc'].forward;this.inverse=Proj4js.Proj['tmerc'].inverse;}};Proj4js.Proj.eqdc={init:function(){if(!this.mode)this.mode=0;this.temp=this.b/this.a;this.es=1.0-Math.pow(this.temp,2);this.e=Math.sqrt(this.es);this.e0=Proj4js.common.e0fn(this.es);this.e1=Proj4js.common.e1fn(this.es);this.e2=Proj4js.common.e2fn(this.es);this.e3=Proj4js.common.e3fn(this.es);this.sinphi=Math.sin(this.lat1);this.cosphi=Math.cos(this.lat1);this.ms1=Proj4js.common.msfnz(this.e,this.sinphi,this.cosphi);this.ml1=Proj4js.common.mlfn(this.e0,this.e1,this.e2,this.e3,this.lat1);if(this.mode!=0){if(Math.abs(this.lat1+this.lat2)<Proj4js.common.EPSLN){Proj4js.reportError("eqdc:Init:EqualLatitudes");}
this.sinphi=Math.sin(this.lat2);this.cosphi=Math.cos(this.lat2);this.ms2=Proj4js.common.msfnz(this.e,this.sinphi,this.cosphi);this.ml2=Proj4js.common.mlfn(this.e0,this.e1,this.e2,this.e3,this.lat2);if(Math.abs(this.lat1-this.lat2)>=Proj4js.common.EPSLN){this.ns=(this.ms1-this.ms2)/(this.ml2-this.ml1);}else{this.ns=this.sinphi;}}else{this.ns=this.sinphi;}
this.g=this.ml1+this.ms1/this.ns;this.ml0=Proj4js.common.mlfn(this.e0,this.e1,this.e2,this.e3,this.lat0);this.rh=this.a*(this.g-this.ml0);},forward:function(p){var lon=p.x;var lat=p.y;var ml=Proj4js.common.mlfn(this.e0,this.e1,this.e2,this.e3,lat);var rh1=this.a*(this.g-ml);var theta=this.ns*Proj4js.common.adjust_lon(lon-this.long0);var x=this.x0+rh1*Math.sin(theta);var y=this.y0+this.rh-rh1*Math.cos(theta);p.x=x;p.y=y;return p;},inverse:function(p){p.x-=this.x0;p.y=this.rh-p.y+this.y0;var con,rh1;if(this.ns>=0){var rh1=Math.sqrt(p.x*p.x+p.y*p.y);var con=1.0;}else{rh1=-Math.sqrt(p.x*p.x+p.y*p.y);con=-1.0;}
var theta=0.0;if(rh1!=0.0)theta=Math.atan2(con*p.x,con*p.y);var ml=this.g-rh1/this.a;var lat=this.phi3z(this.ml,this.e0,this.e1,this.e2,this.e3);var lon=Proj4js.common.adjust_lon(this.long0+theta/this.ns);p.x=lon;p.y=lat;return p;},phi3z:function(ml,e0,e1,e2,e3){var phi;var dphi;phi=ml;for(var i=0;i<15;i++){dphi=(ml+e1*Math.sin(2.0*phi)-e2*Math.sin(4.0*phi)+e3*Math.sin(6.0*phi))/e0-phi;phi+=dphi;if(Math.abs(dphi)<=.0000000001){return phi;}}
Proj4js.reportError("PHI3Z-CONV:Latitude failed to converge after 15 iterations");return null;}};Proj4js.Proj.tmerc={init:function(){this.e0=Proj4js.common.e0fn(this.es);this.e1=Proj4js.common.e1fn(this.es);this.e2=Proj4js.common.e2fn(this.es);this.e3=Proj4js.common.e3fn(this.es);this.ml0=this.a*Proj4js.common.mlfn(this.e0,this.e1,this.e2,this.e3,this.lat0);},forward:function(p){var lon=p.x;var lat=p.y;var delta_lon=Proj4js.common.adjust_lon(lon-this.long0);var con;var x,y;var sin_phi=Math.sin(lat);var cos_phi=Math.cos(lat);if(this.sphere){var b=cos_phi*Math.sin(delta_lon);if((Math.abs(Math.abs(b)-1.0))<.0000000001){Proj4js.reportError("tmerc:forward: Point projects into infinity");return(93);}else{x=.5*this.a*this.k0*Math.log((1.0+b)/(1.0-b));con=Math.acos(cos_phi*Math.cos(delta_lon)/Math.sqrt(1.0-b*b));if(lat<0)con=-con;y=this.a*this.k0*(con-this.lat0);}}else{var al=cos_phi*delta_lon;var als=Math.pow(al,2);var c=this.ep2*Math.pow(cos_phi,2);var tq=Math.tan(lat);var t=Math.pow(tq,2);con=1.0-this.es*Math.pow(sin_phi,2);var n=this.a/Math.sqrt(con);var ml=this.a*Proj4js.common.mlfn(this.e0,this.e1,this.e2,this.e3,lat);x=this.k0*n*al*(1.0+als/6.0*(1.0-t+c+als/20.0*(5.0-18.0*t+Math.pow(t,2)+72.0*c-58.0*this.ep2)))+this.x0;y=this.k0*(ml-this.ml0+n*tq*(als*(0.5+als/24.0*(5.0-t+9.0*c+4.0*Math.pow(c,2)+als/30.0*(61.0-58.0*t+Math.pow(t,2)+600.0*c-330.0*this.ep2)))))+this.y0;}
p.x=x;p.y=y;return p;},inverse:function(p){var con,phi;var delta_phi;var i;var max_iter=6;var lat,lon;if(this.sphere){var f=Math.exp(p.x/(this.a*this.k0));var g=.5*(f-1/f);var temp=this.lat0+p.y/(this.a*this.k0);var h=Math.cos(temp);con=Math.sqrt((1.0-h*h)/(1.0+g*g));lat=Proj4js.common.asinz(con);if(temp<0)
lat=-lat;if((g==0)&&(h==0)){lon=this.long0;}else{lon=Proj4js.common.adjust_lon(Math.atan2(g,h)+this.long0);}}else{var x=p.x-this.x0;var y=p.y-this.y0;con=(this.ml0+y/this.k0)/this.a;phi=con;for(i=0;true;i++){delta_phi=((con+this.e1*Math.sin(2.0*phi)-this.e2*Math.sin(4.0*phi)+this.e3*Math.sin(6.0*phi))/this.e0)-phi;phi+=delta_phi;if(Math.abs(delta_phi)<=Proj4js.common.EPSLN)break;if(i>=max_iter){Proj4js.reportError("tmerc:inverse: Latitude failed to converge");return(95);}}
if(Math.abs(phi)<Proj4js.common.HALF_PI){var sin_phi=Math.sin(phi);var cos_phi=Math.cos(phi);var tan_phi=Math.tan(phi);var c=this.ep2*Math.pow(cos_phi,2);var cs=Math.pow(c,2);var t=Math.pow(tan_phi,2);var ts=Math.pow(t,2);con=1.0-this.es*Math.pow(sin_phi,2);var n=this.a/Math.sqrt(con);var r=n*(1.0-this.es)/con;var d=x/(n*this.k0);var ds=Math.pow(d,2);lat=phi-(n*tan_phi*ds/r)*(0.5-ds/24.0*(5.0+3.0*t+10.0*c-4.0*cs-9.0*this.ep2-ds/30.0*(61.0+90.0*t+298.0*c+45.0*ts-252.0*this.ep2-3.0*cs)));lon=Proj4js.common.adjust_lon(this.long0+(d*(1.0-ds/6.0*(1.0+2.0*t+c-ds/20.0*(5.0-2.0*c+28.0*t-3.0*cs+8.0*this.ep2+24.0*ts)))/cos_phi));}else{lat=Proj4js.common.HALF_PI*Proj4js.common.sign(y);lon=this.long0;}}
p.x=lon;p.y=lat;return p;}};Proj4js.defs["GOOGLE"]="+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +no_defs";Proj4js.defs["EPSG:900913"]=Proj4js.defs["GOOGLE"];Proj4js.Proj.gstmerc={init:function(){var temp=this.b/this.a;this.e=Math.sqrt(1.0-temp*temp);this.lc=this.long0;this.rs=Math.sqrt(1.0+this.e*this.e*Math.pow(Math.cos(this.lat0),4.0)/(1.0-this.e*this.e));var sinz=Math.sin(this.lat0);var pc=Math.asin(sinz/this.rs);var sinzpc=Math.sin(pc);this.cp=Proj4js.common.latiso(0.0,pc,sinzpc)-this.rs*Proj4js.common.latiso(this.e,this.lat0,sinz);this.n2=this.k0*this.a*Math.sqrt(1.0-this.e*this.e)/(1.0-this.e*this.e*sinz*sinz);this.xs=this.x0;this.ys=this.y0-this.n2*pc;if(!this.title)this.title="Gauss Schreiber transverse mercator";},forward:function(p){var lon=p.x;var lat=p.y;var L=this.rs*(lon-this.lc);var Ls=this.cp+(this.rs*Proj4js.common.latiso(this.e,lat,Math.sin(lat)));var lat1=Math.asin(Math.sin(L)/Proj4js.common.cosh(Ls));var Ls1=Proj4js.common.latiso(0.0,lat1,Math.sin(lat1));p.x=this.xs+(this.n2*Ls1);p.y=this.ys+(this.n2*Math.atan(Proj4js.common.sinh(Ls)/Math.cos(L)));return p;},inverse:function(p){var x=p.x;var y=p.y;var L=Math.atan(Proj4js.common.sinh((x-this.xs)/this.n2)/Math.cos((y-this.ys)/this.n2));var lat1=Math.asin(Math.sin((y-this.ys)/this.n2)/Proj4js.common.cosh((x-this.xs)/this.n2));var LC=Proj4js.common.latiso(0.0,lat1,Math.sin(lat1));p.x=this.lc+L/this.rs;p.y=Proj4js.common.invlatiso(this.e,(LC-this.cp)/this.rs);return p;}};Proj4js.Proj.ortho={init:function(def){;this.sin_p14=Math.sin(this.lat0);this.cos_p14=Math.cos(this.lat0);},forward:function(p){var sinphi,cosphi;var dlon;var coslon;var ksp;var g;var lon=p.x;var lat=p.y;dlon=Proj4js.common.adjust_lon(lon-this.long0);sinphi=Math.sin(lat);cosphi=Math.cos(lat);coslon=Math.cos(dlon);g=this.sin_p14*sinphi+this.cos_p14*cosphi*coslon;ksp=1.0;if((g>0)||(Math.abs(g)<=Proj4js.common.EPSLN)){var x=this.a*ksp*cosphi*Math.sin(dlon);var y=this.y0+this.a*ksp*(this.cos_p14*sinphi-this.sin_p14*cosphi*coslon);}else{Proj4js.reportError("orthoFwdPointError");}
p.x=x;p.y=y;return p;},inverse:function(p){var rh;var z;var sinz,cosz;var temp;var con;var lon,lat;p.x-=this.x0;p.y-=this.y0;rh=Math.sqrt(p.x*p.x+p.y*p.y);if(rh>this.a+.0000001){Proj4js.reportError("orthoInvDataError");}
z=Proj4js.common.asinz(rh/this.a);sinz=Math.sin(z);cosi=Math.cos(z);lon=this.long0;if(Math.abs(rh)<=Proj4js.common.EPSLN){lat=this.lat0;}
lat=Proj4js.common.asinz(cosz*this.sin_p14+(y*sinz*this.cos_p14)/rh);con=Math.abs(lat0)-Proj4js.common.HALF_PI;if(Math.abs(con)<=Proj4js.common.EPSLN){if(this.lat0>=0){lon=Proj4js.common.adjust_lon(this.long0+Math.atan2(p.x,-p.y));}else{lon=Proj4js.common.adjust_lon(this.long0-Math.atan2(-p.x,p.y));}}
con=cosz-this.sin_p14*Math.sin(lat);if((Math.abs(con)>=Proj4js.common.EPSLN)||(Math.abs(x)>=Proj4js.common.EPSLN)){lon=Proj4js.common.adjust_lon(this.long0+Math.atan2((p.x*sinz*this.cos_p14),(con*rh)));}
p.x=lon;p.y=lat;return p;}};Proj4js.Proj.somerc={init:function(){var phy0=this.lat0;this.lambda0=this.long0;var sinPhy0=Math.sin(phy0);var semiMajorAxis=this.a;var invF=this.rf;var flattening=1/invF;var e2=2*flattening-Math.pow(flattening,2);var e=this.e=Math.sqrt(e2);this.R=semiMajorAxis*Math.sqrt(1-e2)/(1-e2*Math.pow(sinPhy0,2.0));this.alpha=Math.sqrt(1+e2/(1-e2)*Math.pow(Math.cos(phy0),4.0));this.b0=Math.asin(sinPhy0/this.alpha);this.K=Math.log(Math.tan(Math.PI/4.0+this.b0/2.0))
-this.alpha*Math.log(Math.tan(Math.PI/4.0+phy0/2.0))
+this.alpha*e/2*Math.log((1+e*sinPhy0)/(1-e*sinPhy0));},forward:function(p){var Sa1=Math.log(Math.tan(Math.PI/4.0-p.y/2.0));var Sa2=this.e/2.0*Math.log((1+this.e*Math.sin(p.y))/(1-this.e*Math.sin(p.y)));var S=-this.alpha*(Sa1+Sa2)+this.K;var b=2.0*(Math.atan(Math.exp(S))-Math.PI/4.0);var I=this.alpha*(p.x-this.lambda0);var rotI=Math.atan(Math.sin(I)/(Math.sin(this.b0)*Math.tan(b)+
Math.cos(this.b0)*Math.cos(I)));var rotB=Math.asin(Math.cos(this.b0)*Math.sin(b)-
Math.sin(this.b0)*Math.cos(b)*Math.cos(I));p.y=this.R/2.0*Math.log((1+Math.sin(rotB))/(1-Math.sin(rotB)))
+this.y0;p.x=this.R*rotI+this.x0;return p;},inverse:function(p){var Y=p.x-this.x0;var X=p.y-this.y0;var rotI=Y/this.R;var rotB=2*(Math.atan(Math.exp(X/this.R))-Math.PI/4.0);var b=Math.asin(Math.cos(this.b0)*Math.sin(rotB)
+Math.sin(this.b0)*Math.cos(rotB)*Math.cos(rotI));var I=Math.atan(Math.sin(rotI)/(Math.cos(this.b0)*Math.cos(rotI)-Math.sin(this.b0)*Math.tan(rotB)));var lambda=this.lambda0+I/this.alpha;var S=0.0;var phy=b;var prevPhy=-1000.0;var iteration=0;while(Math.abs(phy-prevPhy)>0.0000001)
{if(++iteration>20)
{Proj4js.reportError("omercFwdInfinity");return;}
S=1.0/this.alpha*(Math.log(Math.tan(Math.PI/4.0+b/2.0))-this.K)
+this.e*Math.log(Math.tan(Math.PI/4.0
+Math.asin(this.e*Math.sin(phy))/2.0));prevPhy=phy;phy=2.0*Math.atan(Math.exp(S))-Math.PI/2.0;}
p.x=lambda;p.y=phy;return p;}};Proj4js.Proj.stere={ssfn_:function(phit,sinphi,eccen){sinphi*=eccen;return(Math.tan(.5*(Proj4js.common.HALF_PI+phit))*Math.pow((1.-sinphi)/(1.+sinphi),.5*eccen));},TOL:1.e-8,NITER:8,CONV:1.e-10,S_POLE:0,N_POLE:1,OBLIQ:2,EQUIT:3,init:function(){this.phits=this.lat_ts?this.lat_ts:Proj4js.common.HALF_PI;var t=Math.abs(this.lat0);if((Math.abs(t)-Proj4js.common.HALF_PI)<Proj4js.common.EPSLN){this.mode=this.lat0<0.?this.S_POLE:this.N_POLE;}else{this.mode=t>Proj4js.common.EPSLN?this.OBLIQ:this.EQUIT;}
this.phits=Math.abs(this.phits);if(this.es){var X;switch(this.mode){case this.N_POLE:case this.S_POLE:if(Math.abs(this.phits-Proj4js.common.HALF_PI)<Proj4js.common.EPSLN){this.akm1=2.*this.k0/Math.sqrt(Math.pow(1+this.e,1+this.e)*Math.pow(1-this.e,1-this.e));}else{t=Math.sin(this.phits);this.akm1=Math.cos(this.phits)/Proj4js.common.tsfnz(this.e,this.phits,t);t*=this.e;this.akm1/=Math.sqrt(1.-t*t);}
break;case this.EQUIT:this.akm1=2.*this.k0;break;case this.OBLIQ:t=Math.sin(this.lat0);X=2.*Math.atan(this.ssfn_(this.lat0,t,this.e))-Proj4js.common.HALF_PI;t*=this.e;this.akm1=2.*this.k0*Math.cos(this.lat0)/Math.sqrt(1.-t*t);this.sinX1=Math.sin(X);this.cosX1=Math.cos(X);break;}}else{switch(this.mode){case this.OBLIQ:this.sinph0=Math.sin(this.lat0);this.cosph0=Math.cos(this.lat0);case this.EQUIT:this.akm1=2.*this.k0;break;case this.S_POLE:case this.N_POLE:this.akm1=Math.abs(this.phits-Proj4js.common.HALF_PI)>=Proj4js.common.EPSLN?Math.cos(this.phits)/Math.tan(Proj4js.common.FORTPI-.5*this.phits):2.*this.k0;break;}}},forward:function(p){var lon=p.x;lon=Proj4js.common.adjust_lon(lon-this.long0);var lat=p.y;var x,y;if(this.sphere){var sinphi,cosphi,coslam,sinlam;sinphi=Math.sin(lat);cosphi=Math.cos(lat);coslam=Math.cos(lon);sinlam=Math.sin(lon);switch(this.mode){case this.EQUIT:y=1.+cosphi*coslam;if(y<=Proj4js.common.EPSLN){F_ERROR;}
y=this.akm1/y;x=y*cosphi*sinlam;y*=sinphi;break;case this.OBLIQ:y=1.+this.sinph0*sinphi+this.cosph0*cosphi*coslam;if(y<=Proj4js.common.EPSLN){F_ERROR;}
y=this.akm1/y;x=y*cosphi*sinlam;y*=this.cosph0*sinphi-this.sinph0*cosphi*coslam;break;case this.N_POLE:coslam=-coslam;lat=-lat;case this.S_POLE:if(Math.abs(lat-Proj4js.common.HALF_PI)<this.TOL){F_ERROR;}
y=this.akm1*Math.tan(Proj4js.common.FORTPI+.5*lat);x=sinlam*y;y*=coslam;break;}}else{coslam=Math.cos(lon);sinlam=Math.sin(lon);sinphi=Math.sin(lat);if(this.mode==this.OBLIQ||this.mode==this.EQUIT){X=2.*Math.atan(this.ssfn_(lat,sinphi,this.e));sinX=Math.sin(X-Proj4js.common.HALF_PI);cosX=Math.cos(X);}
switch(this.mode){case this.OBLIQ:A=this.akm1/(this.cosX1*(1.+this.sinX1*sinX+this.cosX1*cosX*coslam));y=A*(this.cosX1*sinX-this.sinX1*cosX*coslam);x=A*cosX;break;case this.EQUIT:A=2.*this.akm1/(1.+cosX*coslam);y=A*sinX;x=A*cosX;break;case this.S_POLE:lat=-lat;coslam=-coslam;sinphi=-sinphi;case this.N_POLE:x=this.akm1*Proj4js.common.tsfnz(this.e,lat,sinphi);y=-x*coslam;break;}
x=x*sinlam;}
p.x=x*this.a+this.x0;p.y=y*this.a+this.y0;return p;},inverse:function(p){var x=(p.x-this.x0)/this.a;var y=(p.y-this.y0)/this.a;var lon,lat;var cosphi,sinphi,tp=0.0,phi_l=0.0,rho,halfe=0.0,pi2=0.0;var i;if(this.sphere){var c,rh,sinc,cosc;rh=Math.sqrt(x*x+y*y);c=2.*Math.atan(rh/this.akm1);sinc=Math.sin(c);cosc=Math.cos(c);lon=0.;switch(this.mode){case this.EQUIT:if(Math.abs(rh)<=Proj4js.common.EPSLN){lat=0.;}else{lat=Math.asin(y*sinc/rh);}
if(cosc!=0.||x!=0.)lon=Math.atan2(x*sinc,cosc*rh);break;case this.OBLIQ:if(Math.abs(rh)<=Proj4js.common.EPSLN){lat=this.phi0;}else{lat=Math.asin(cosc*sinph0+y*sinc*cosph0/rh);}
c=cosc-sinph0*Math.sin(lat);if(c!=0.||x!=0.){lon=Math.atan2(x*sinc*cosph0,c*rh);}
break;case this.N_POLE:y=-y;case this.S_POLE:if(Math.abs(rh)<=Proj4js.common.EPSLN){lat=this.phi0;}else{lat=Math.asin(this.mode==this.S_POLE?-cosc:cosc);}
lon=(x==0.&&y==0.)?0.:Math.atan2(x,y);break;}}else{rho=Math.sqrt(x*x+y*y);switch(this.mode){case this.OBLIQ:case this.EQUIT:tp=2.*Math.atan2(rho*this.cosX1,this.akm1);cosphi=Math.cos(tp);sinphi=Math.sin(tp);if(rho==0.0){phi_l=Math.asin(cosphi*this.sinX1);}else{phi_l=Math.asin(cosphi*this.sinX1+(y*sinphi*this.cosX1/rho));}
tp=Math.tan(.5*(Proj4js.common.HALF_PI+phi_l));x*=sinphi;y=rho*this.cosX1*cosphi-y*this.sinX1*sinphi;pi2=Proj4js.common.HALF_PI;halfe=.5*this.e;break;case this.N_POLE:y=-y;case this.S_POLE:tp=-rho/this.akm1;phi_l=Proj4js.common.HALF_PI-2.*Math.atan(tp);pi2=-Proj4js.common.HALF_PI;halfe=-.5*this.e;break;}
for(i=this.NITER;i--;phi_l=lat){sinphi=this.e*Math.sin(phi_l);lat=2.*Math.atan(tp*Math.pow((1.+sinphi)/(1.-sinphi),halfe))-pi2;if(Math.abs(phi_l-lat)<this.CONV){if(this.mode==this.S_POLE)lat=-lat;lon=(x==0.&&y==0.)?0.:Math.atan2(x,y);p.x=Proj4js.common.adjust_lon(lon+this.long0);p.y=lat;return p;}}}}};Proj4js.Proj.nzmg={iterations:1,init:function(){this.A=new Array();this.A[1]=+0.6399175073;this.A[2]=-0.1358797613;this.A[3]=+0.063294409;this.A[4]=-0.02526853;this.A[5]=+0.0117879;this.A[6]=-0.0055161;this.A[7]=+0.0026906;this.A[8]=-0.001333;this.A[9]=+0.00067;this.A[10]=-0.00034;this.B_re=new Array();this.B_im=new Array();this.B_re[1]=+0.7557853228;this.B_im[1]=0.0;this.B_re[2]=+0.249204646;this.B_im[2]=+0.003371507;this.B_re[3]=-0.001541739;this.B_im[3]=+0.041058560;this.B_re[4]=-0.10162907;this.B_im[4]=+0.01727609;this.B_re[5]=-0.26623489;this.B_im[5]=-0.36249218;this.B_re[6]=-0.6870983;this.B_im[6]=-1.1651967;this.C_re=new Array();this.C_im=new Array();this.C_re[1]=+1.3231270439;this.C_im[1]=0.0;this.C_re[2]=-0.577245789;this.C_im[2]=-0.007809598;this.C_re[3]=+0.508307513;this.C_im[3]=-0.112208952;this.C_re[4]=-0.15094762;this.C_im[4]=+0.18200602;this.C_re[5]=+1.01418179;this.C_im[5]=+1.64497696;this.C_re[6]=+1.9660549;this.C_im[6]=+2.5127645;this.D=new Array();this.D[1]=+1.5627014243;this.D[2]=+0.5185406398;this.D[3]=-0.03333098;this.D[4]=-0.1052906;this.D[5]=-0.0368594;this.D[6]=+0.007317;this.D[7]=+0.01220;this.D[8]=+0.00394;this.D[9]=-0.0013;},forward:function(p){var lon=p.x;var lat=p.y;var delta_lat=lat-this.lat0;var delta_lon=lon-this.long0;var d_phi=delta_lat/Proj4js.common.SEC_TO_RAD*1E-5;var d_lambda=delta_lon;var d_phi_n=1;var d_psi=0;for(n=1;n<=10;n++){d_phi_n=d_phi_n*d_phi;d_psi=d_psi+this.A[n]*d_phi_n;}
var th_re=d_psi;var th_im=d_lambda;var th_n_re=1;var th_n_im=0;var th_n_re1;var th_n_im1;var z_re=0;var z_im=0;for(n=1;n<=6;n++){th_n_re1=th_n_re*th_re-th_n_im*th_im;th_n_im1=th_n_im*th_re+th_n_re*th_im;th_n_re=th_n_re1;th_n_im=th_n_im1;z_re=z_re+this.B_re[n]*th_n_re-this.B_im[n]*th_n_im;z_im=z_im+this.B_im[n]*th_n_re+this.B_re[n]*th_n_im;}
x=(z_im*this.a)+this.x0;y=(z_re*this.a)+this.y0;p.x=x;p.y=y;return p;},inverse:function(p){var x=p.x;var y=p.y;var delta_x=x-this.x0;var delta_y=y-this.y0;var z_re=delta_y/this.a;var z_im=delta_x/this.a;var z_n_re=1;var z_n_im=0;var z_n_re1;var z_n_im1;var th_re=0;var th_im=0;for(n=1;n<=6;n++){z_n_re1=z_n_re*z_re-z_n_im*z_im;z_n_im1=z_n_im*z_re+z_n_re*z_im;z_n_re=z_n_re1;z_n_im=z_n_im1;th_re=th_re+this.C_re[n]*z_n_re-this.C_im[n]*z_n_im;th_im=th_im+this.C_im[n]*z_n_re+this.C_re[n]*z_n_im;}
for(i=0;i<this.iterations;i++){var th_n_re=th_re;var th_n_im=th_im;var th_n_re1;var th_n_im1;var num_re=z_re;var num_im=z_im;for(n=2;n<=6;n++){th_n_re1=th_n_re*th_re-th_n_im*th_im;th_n_im1=th_n_im*th_re+th_n_re*th_im;th_n_re=th_n_re1;th_n_im=th_n_im1;num_re=num_re+(n-1)*(this.B_re[n]*th_n_re-this.B_im[n]*th_n_im);num_im=num_im+(n-1)*(this.B_im[n]*th_n_re+this.B_re[n]*th_n_im);}
th_n_re=1;th_n_im=0;var den_re=this.B_re[1];var den_im=this.B_im[1];for(n=2;n<=6;n++){th_n_re1=th_n_re*th_re-th_n_im*th_im;th_n_im1=th_n_im*th_re+th_n_re*th_im;th_n_re=th_n_re1;th_n_im=th_n_im1;den_re=den_re+n*(this.B_re[n]*th_n_re-this.B_im[n]*th_n_im);den_im=den_im+n*(this.B_im[n]*th_n_re+this.B_re[n]*th_n_im);}
var den2=den_re*den_re+den_im*den_im;th_re=(num_re*den_re+num_im*den_im)/den2;th_im=(num_im*den_re-num_re*den_im)/den2;}
var d_psi=th_re;var d_lambda=th_im;var d_psi_n=1;var d_phi=0;for(n=1;n<=9;n++){d_psi_n=d_psi_n*d_psi;d_phi=d_phi+this.D[n]*d_psi_n;}
var lat=this.lat0+(d_phi*Proj4js.common.SEC_TO_RAD*1E5);var lon=this.long0+d_lambda;p.x=lon;p.y=lat;return p;}};Proj4js.Proj.mill={init:function(){},forward:function(p){var lon=p.x;var lat=p.y;var dlon=Proj4js.common.adjust_lon(lon-this.long0);var x=this.x0+this.a*dlon;var y=this.y0+this.a*Math.log(Math.tan((Proj4js.common.PI/4.0)+(lat/2.5)))*1.25;p.x=x;p.y=y;return p;},inverse:function(p){p.x-=this.x0;p.y-=this.y0;var lon=Proj4js.common.adjust_lon(this.long0+p.x/this.a);var lat=2.5*(Math.atan(Math.exp(0.8*p.y/this.a))-Proj4js.common.PI/4.0);p.x=lon;p.y=lat;return p;}};Proj4js.Proj.sinu={init:function(){this.R=6370997.0;},forward:function(p){var x,y,delta_lon;var lon=p.x;var lat=p.y;delta_lon=Proj4js.common.adjust_lon(lon-this.long0);x=this.R*delta_lon*Math.cos(lat)+this.x0;y=this.R*lat+this.y0;p.x=x;p.y=y;return p;},inverse:function(p){var lat,temp,lon;p.x-=this.x0;p.y-=this.y0;lat=p.y/this.R;if(Math.abs(lat)>Proj4js.common.HALF_PI){Proj4js.reportError("sinu:Inv:DataError");}
temp=Math.abs(lat)-Proj4js.common.HALF_PI;if(Math.abs(temp)>Proj4js.common.EPSLN){temp=this.long0+p.x/(this.R*Math.cos(lat));lon=Proj4js.common.adjust_lon(temp);}else{lon=this.long0;}
p.x=lon;p.y=lat;return p;}};Proj4js.Proj.vandg={init:function(){this.R=6370997.0;},forward:function(p){var lon=p.x;var lat=p.y;var dlon=Proj4js.common.adjust_lon(lon-this.long0);var x,y;if(Math.abs(lat)<=Proj4js.common.EPSLN){x=this.x0+this.R*dlon;y=this.y0;}
var theta=Proj4js.common.asinz(2.0*Math.abs(lat/Proj4js.common.PI));if((Math.abs(dlon)<=Proj4js.common.EPSLN)||(Math.abs(Math.abs(lat)-Proj4js.common.HALF_PI)<=Proj4js.common.EPSLN)){x=this.x0;if(lat>=0){y=this.y0+Proj4js.common.PI*this.R*Math.tan(.5*theta);}else{y=this.y0+Proj4js.common.PI*this.R*-Math.tan(.5*theta);}}
var al=.5*Math.abs((Proj4js.common.PI/dlon)-(dlon/Proj4js.common.PI));var asq=al*al;var sinth=Math.sin(theta);var costh=Math.cos(theta);var g=costh/(sinth+costh-1.0);var gsq=g*g;var m=g*(2.0/sinth-1.0);var msq=m*m;var con=Proj4js.common.PI*this.R*(al*(g-msq)+Math.sqrt(asq*(g-msq)*(g-msq)-(msq+asq)*(gsq-msq)))/(msq+asq);if(dlon<0){con=-con;}
x=this.x0+con;con=Math.abs(con/(Proj4js.common.PI*this.R));if(lat>=0){y=this.y0+Proj4js.common.PI*this.R*Math.sqrt(1.0-con*con-2.0*al*con);}else{y=this.y0-Proj4js.common.PI*this.R*Math.sqrt(1.0-con*con-2.0*al*con);}
p.x=x;p.y=y;return p;},inverse:function(p){var dlon;var xx,yy,xys,c1,c2,c3;var al,asq;var a1;var m1;var con;var th1;var d;p.x-=this.x0;p.y-=this.y0;con=Proj4js.common.PI*this.R;xx=p.x/con;yy=p.y/con;xys=xx*xx+yy*yy;c1=-Math.abs(yy)*(1.0+xys);c2=c1-2.0*yy*yy+xx*xx;c3=-2.0*c1+1.0+2.0*yy*yy+xys*xys;d=yy*yy/c3+(2.0*c2*c2*c2/c3/c3/c3-9.0*c1*c2/c3/c3)/27.0;a1=(c1-c2*c2/3.0/c3)/c3;m1=2.0*Math.sqrt(-a1/3.0);con=((3.0*d)/a1)/m1;if(Math.abs(con)>1.0){if(con>=0.0){con=1.0;}else{con=-1.0;}}
th1=Math.acos(con)/3.0;if(p.y>=0){lat=(-m1*Math.cos(th1+Proj4js.common.PI/3.0)-c2/3.0/c3)*Proj4js.common.PI;}else{lat=-(-m1*Math.cos(th1+PI/3.0)-c2/3.0/c3)*Proj4js.common.PI;}
if(Math.abs(xx)<Proj4js.common.EPSLN){lon=this.long0;}
lon=Proj4js.common.adjust_lon(this.long0+Proj4js.common.PI*(xys-1.0+Math.sqrt(1.0+2.0*(xx*xx-yy*yy)+xys*xys))/2.0/xx);p.x=lon;p.y=lat;return p;}};Proj4js.Proj.eqc={init:function(){if(!this.x0)this.x0=0;if(!this.y0)this.y0=0;if(!this.lat0)this.lat0=0;if(!this.long0)this.long0=0;if(!this.lat_ts)this.lat_ts=0;if(!this.title)this.title="Equidistant Cylindrical (Plate Carre)";this.rc=Math.cos(this.lat_ts);},forward:function(p){var lon=p.x;var lat=p.y;var dlon=Proj4js.common.adjust_lon(lon-this.long0);var dlat=Proj4js.common.adjust_lat(lat-this.lat0);p.x=this.x0+(this.a*dlon*this.rc);p.y=this.y0+(this.a*dlat);return p;},inverse:function(p){var x=p.x;var y=p.y;p.x=Proj4js.common.adjust_lon(this.long0+((x-this.x0)/(this.a*this.rc)));p.y=Proj4js.common.adjust_lat(this.lat0+((y-this.y0)/(this.a)));return p;}};Proj4js.Proj.gauss={init:function(){sphi=Math.sin(this.lat0);cphi=Math.cos(this.lat0);cphi*=cphi;this.rc=Math.sqrt(1.0-this.es)/(1.0-this.es*sphi*sphi);this.C=Math.sqrt(1.0+this.es*cphi*cphi/(1.0-this.es));this.phic0=Math.asin(sphi/this.C);this.ratexp=0.5*this.C*this.e;this.K=Math.tan(0.5*this.phic0+Proj4js.common.FORTPI)/(Math.pow(Math.tan(0.5*this.lat0+Proj4js.common.FORTPI),this.C)*Proj4js.common.srat(this.e*sphi,this.ratexp));},forward:function(p){var lon=p.x;var lat=p.y;p.y=2.0*Math.atan(this.K*Math.pow(Math.tan(0.5*lat+Proj4js.common.FORTPI),this.C)*Proj4js.common.srat(this.e*Math.sin(lat),this.ratexp))-Proj4js.common.HALF_PI;p.x=this.C*lon;return p;},inverse:function(p){var DEL_TOL=1e-14;var lon=p.x/this.C;var lat=p.y;num=Math.pow(Math.tan(0.5*lat+Proj4js.common.FORTPI)/this.K,1./this.C);for(var i=Proj4js.common.MAX_ITER;i>0;--i){lat=2.0*Math.atan(num*Proj4js.common.srat(this.e*Math.sin(p.y),-0.5*this.e))-Proj4js.common.HALF_PI;if(Math.abs(lat-p.y)<DEL_TOL)break;p.y=lat;}
if(!i){Proj4js.reportError("gauss:inverse:convergence failed");return null;}
p.x=lon;p.y=lat;return p;}};Proj4js.Proj.omerc={init:function(){if(!this.mode)this.mode=0;if(!this.lon1){this.lon1=0;this.mode=1;}
if(!this.lon2)this.lon2=0;if(!this.lat2)this.lat2=0;var temp=this.b/this.a;var es=1.0-Math.pow(temp,2);var e=Math.sqrt(es);this.sin_p20=Math.sin(this.lat0);this.cos_p20=Math.cos(this.lat0);this.con=1.0-this.es*this.sin_p20*this.sin_p20;this.com=Math.sqrt(1.0-es);this.bl=Math.sqrt(1.0+this.es*Math.pow(this.cos_p20,4.0)/(1.0-es));this.al=this.a*this.bl*this.k0*this.com/this.con;if(Math.abs(this.lat0)<Proj4js.common.EPSLN){this.ts=1.0;this.d=1.0;this.el=1.0;}else{this.ts=Proj4js.common.tsfnz(this.e,this.lat0,this.sin_p20);this.con=Math.sqrt(this.con);this.d=this.bl*this.com/(this.cos_p20*this.con);if((this.d*this.d-1.0)>0.0){if(this.lat0>=0.0){this.f=this.d+Math.sqrt(this.d*this.d-1.0);}else{this.f=this.d-Math.sqrt(this.d*this.d-1.0);}}else{this.f=this.d;}
this.el=this.f*Math.pow(this.ts,this.bl);}
if(this.mode!=0){this.g=.5*(this.f-1.0/this.f);this.gama=Proj4js.common.asinz(Math.sin(this.alpha)/this.d);this.longc=this.longc-Proj4js.common.asinz(this.g*Math.tan(this.gama))/this.bl;this.con=Math.abs(this.lat0);if((this.con>Proj4js.common.EPSLN)&&(Math.abs(this.con-Proj4js.common.HALF_PI)>Proj4js.common.EPSLN)){this.singam=Math.sin(this.gama);this.cosgam=Math.cos(this.gama);this.sinaz=Math.sin(this.alpha);this.cosaz=Math.cos(this.alpha);if(this.lat0>=0){this.u=(this.al/this.bl)*Math.atan(Math.sqrt(this.d*this.d-1.0)/this.cosaz);}else{this.u=-(this.al/this.bl)*Math.atan(Math.sqrt(this.d*this.d-1.0)/this.cosaz);}}else{Proj4js.reportError("omerc:Init:DataError");}}else{this.sinphi=Math.sin(this.at1);this.ts1=Proj4js.common.tsfnz(this.e,this.lat1,this.sinphi);this.sinphi=Math.sin(this.lat2);this.ts2=Proj4js.common.tsfnz(this.e,this.lat2,this.sinphi);this.h=Math.pow(this.ts1,this.bl);this.l=Math.pow(this.ts2,this.bl);this.f=this.el/this.h;this.g=.5*(this.f-1.0/this.f);this.j=(this.el*this.el-this.l*this.h)/(this.el*this.el+this.l*this.h);this.p=(this.l-this.h)/(this.l+this.h);this.dlon=this.lon1-this.lon2;if(this.dlon<-Proj4js.common.PI)this.lon2=this.lon2-2.0*Proj4js.common.PI;if(this.dlon>Proj4js.common.PI)this.lon2=this.lon2+2.0*Proj4js.common.PI;this.dlon=this.lon1-this.lon2;this.longc=.5*(this.lon1+this.lon2)-Math.atan(this.j*Math.tan(.5*this.bl*this.dlon)/this.p)/this.bl;this.dlon=Proj4js.common.adjust_lon(this.lon1-this.longc);this.gama=Math.atan(Math.sin(this.bl*this.dlon)/this.g);this.alpha=Proj4js.common.asinz(this.d*Math.sin(this.gama));if(Math.abs(this.lat1-this.lat2)<=Proj4js.common.EPSLN){Proj4js.reportError("omercInitDataError");}else{this.con=Math.abs(this.lat1);}
if((this.con<=Proj4js.common.EPSLN)||(Math.abs(this.con-HALF_PI)<=Proj4js.common.EPSLN)){Proj4js.reportError("omercInitDataError");}else{if(Math.abs(Math.abs(this.lat0)-Proj4js.common.HALF_PI)<=Proj4js.common.EPSLN){Proj4js.reportError("omercInitDataError");}}
this.singam=Math.sin(this.gam);this.cosgam=Math.cos(this.gam);this.sinaz=Math.sin(this.alpha);this.cosaz=Math.cos(this.alpha);if(this.lat0>=0){this.u=(this.al/this.bl)*Math.atan(Math.sqrt(this.d*this.d-1.0)/this.cosaz);}else{this.u=-(this.al/this.bl)*Math.atan(Math.sqrt(this.d*this.d-1.0)/this.cosaz);}}},forward:function(p){var theta;var sin_phi,cos_phi;var b;var c,t,tq;var con,n,ml;var q,us,vl;var ul,vs;var s;var dlon;var ts1;var lon=p.x;var lat=p.y;sin_phi=Math.sin(lat);dlon=Proj4js.common.adjust_lon(lon-this.longc);vl=Math.sin(this.bl*dlon);if(Math.abs(Math.abs(lat)-Proj4js.common.HALF_PI)>Proj4js.common.EPSLN){ts1=Proj4js.common.tsfnz(this.e,lat,sin_phi);q=this.el/(Math.pow(ts1,this.bl));s=.5*(q-1.0/q);t=.5*(q+1.0/q);ul=(s*this.singam-vl*this.cosgam)/t;con=Math.cos(this.bl*dlon);if(Math.abs(con)<.0000001){us=this.al*this.bl*dlon;}else{us=this.al*Math.atan((s*this.cosgam+vl*this.singam)/con)/this.bl;if(con<0)us=us+Proj4js.common.PI*this.al/this.bl;}}else{if(lat>=0){ul=this.singam;}else{ul=-this.singam;}
us=this.al*lat/this.bl;}
if(Math.abs(Math.abs(ul)-1.0)<=Proj4js.common.EPSLN){Proj4js.reportError("omercFwdInfinity");}
vs=.5*this.al*Math.log((1.0-ul)/(1.0+ul))/this.bl;us=us-this.u;var x=this.x0+vs*this.cosaz+us*this.sinaz;var y=this.y0+us*this.cosaz-vs*this.sinaz;p.x=x;p.y=y;return p;},inverse:function(p){var delta_lon;var theta;var delta_theta;var sin_phi,cos_phi;var b;var c,t,tq;var con,n,ml;var vs,us,q,s,ts1;var vl,ul,bs;var dlon;var flag;p.x-=this.x0;p.y-=this.y0;flag=0;vs=p.x*this.cosaz-p.y*this.sinaz;us=p.y*this.cosaz+p.x*this.sinaz;us=us+this.u;q=Math.exp(-this.bl*vs/this.al);s=.5*(q-1.0/q);t=.5*(q+1.0/q);vl=Math.sin(this.bl*us/this.al);ul=(vl*this.cosgam+s*this.singam)/t;if(Math.abs(Math.abs(ul)-1.0)<=Proj4js.common.EPSLN)
{lon=this.longc;if(ul>=0.0){lat=Proj4js.common.HALF_PI;}else{lat=-Proj4js.common.HALF_PI;}}else{con=1.0/this.bl;ts1=Math.pow((this.el/Math.sqrt((1.0+ul)/(1.0-ul))),con);lat=Proj4js.common.phi2z(this.e,ts1);theta=this.longc-Math.atan2((s*this.cosgam-vl*this.singam),con)/this.bl;lon=Proj4js.common.adjust_lon(theta);}
p.x=lon;p.y=lat;return p;}};Proj4js.Proj.lcc={init:function(){if(!this.lat2){this.lat2=this.lat0;}
if(!this.k0)this.k0=1.0;if(Math.abs(this.lat1+this.lat2)<Proj4js.common.EPSLN){Proj4js.reportError("lcc:init: Equal Latitudes");return;}
var temp=this.b/this.a;this.e=Math.sqrt(1.0-temp*temp);var sin1=Math.sin(this.lat1);var cos1=Math.cos(this.lat1);var ms1=Proj4js.common.msfnz(this.e,sin1,cos1);var ts1=Proj4js.common.tsfnz(this.e,this.lat1,sin1);var sin2=Math.sin(this.lat2);var cos2=Math.cos(this.lat2);var ms2=Proj4js.common.msfnz(this.e,sin2,cos2);var ts2=Proj4js.common.tsfnz(this.e,this.lat2,sin2);var ts0=Proj4js.common.tsfnz(this.e,this.lat0,Math.sin(this.lat0));if(Math.abs(this.lat1-this.lat2)>Proj4js.common.EPSLN){this.ns=Math.log(ms1/ms2)/Math.log(ts1/ts2);}else{this.ns=sin1;}
this.f0=ms1/(this.ns*Math.pow(ts1,this.ns));this.rh=this.a*this.f0*Math.pow(ts0,this.ns);if(!this.title)this.title="Lambert Conformal Conic";},forward:function(p){var lon=p.x;var lat=p.y;if(lat<=90.0&&lat>=-90.0&&lon<=180.0&&lon>=-180.0){}else{Proj4js.reportError("lcc:forward: llInputOutOfRange: "+lon+" : "+lat);return null;}
var con=Math.abs(Math.abs(lat)-Proj4js.common.HALF_PI);var ts,rh1;if(con>Proj4js.common.EPSLN){ts=Proj4js.common.tsfnz(this.e,lat,Math.sin(lat));rh1=this.a*this.f0*Math.pow(ts,this.ns);}else{con=lat*this.ns;if(con<=0){Proj4js.reportError("lcc:forward: No Projection");return null;}
rh1=0;}
var theta=this.ns*Proj4js.common.adjust_lon(lon-this.long0);p.x=this.k0*(rh1*Math.sin(theta))+this.x0;p.y=this.k0*(this.rh-rh1*Math.cos(theta))+this.y0;return p;},inverse:function(p){var rh1,con,ts;var lat,lon;x=(p.x-this.x0)/this.k0;y=(this.rh-(p.y-this.y0)/this.k0);if(this.ns>0){rh1=Math.sqrt(x*x+y*y);con=1.0;}else{rh1=-Math.sqrt(x*x+y*y);con=-1.0;}
var theta=0.0;if(rh1!=0){theta=Math.atan2((con*x),(con*y));}
if((rh1!=0)||(this.ns>0.0)){con=1.0/this.ns;ts=Math.pow((rh1/(this.a*this.f0)),con);lat=Proj4js.common.phi2z(this.e,ts);if(lat==-9999)return null;}else{lat=-Proj4js.common.HALF_PI;}
lon=Proj4js.common.adjust_lon(theta/this.ns+this.long0);p.x=lon;p.y=lat;return p;}};Proj4js.Proj.laea={init:function(){this.sin_lat_o=Math.sin(this.lat0);this.cos_lat_o=Math.cos(this.lat0);},forward:function(p){var lon=p.x;var lat=p.y;var delta_lon=Proj4js.common.adjust_lon(lon-this.long0);var sin_lat=Math.sin(lat);var cos_lat=Math.cos(lat);var sin_delta_lon=Math.sin(delta_lon);var cos_delta_lon=Math.cos(delta_lon);var g=this.sin_lat_o*sin_lat+this.cos_lat_o*cos_lat*cos_delta_lon;if(g==-1.0){Proj4js.reportError("laea:fwd:Point projects to a circle of radius "+2.0*R);return null;}
var ksp=this.a*Math.sqrt(2.0/(1.0+g));var x=ksp*cos_lat*sin_delta_lon+this.x0;var y=ksp*(this.cos_lat_o*sin_lat-this.sin_lat_o*cos_lat*cos_delta_lon)+this.y0;p.x=x;p.y=y;return p;},inverse:function(p){p.x-=this.x0;p.y-=this.y0;var Rh=Math.sqrt(p.x*p.x+p.y*p.y);var temp=Rh/(2.0*this.a);if(temp>1){Proj4js.reportError("laea:Inv:DataError");return null;}
var z=2.0*Proj4js.common.asinz(temp);var sin_z=Math.sin(z);var cos_z=Math.cos(z);var lon=this.long0;if(Math.abs(Rh)>Proj4js.common.EPSLN){var lat=Proj4js.common.asinz(this.sin_lat_o*cos_z+this.cos_lat_o*sin_z*p.y/Rh);var temp=Math.abs(this.lat0)-Proj4js.common.HALF_PI;if(Math.abs(temp)>Proj4js.common.EPSLN){temp=cos_z-this.sin_lat_o*Math.sin(lat);if(temp!=0.0)lon=Proj4js.common.adjust_lon(this.long0+Math.atan2(p.x*sin_z*this.cos_lat_o,temp*Rh));}else if(this.lat0<0.0){lon=Proj4js.common.adjust_lon(this.long0-Math.atan2(-p.x,p.y));}else{lon=Proj4js.common.adjust_lon(this.long0+Math.atan2(p.x,-p.y));}}else{lat=this.lat0;}
p.x=lon;p.y=lat;return p;}};Proj4js.Proj.aeqd={init:function(){this.sin_p12=Math.sin(this.lat0);this.cos_p12=Math.cos(this.lat0);},forward:function(p){var lon=p.x;var lat=p.y;var ksp;var sinphi=Math.sin(p.y);var cosphi=Math.cos(p.y);var dlon=Proj4js.common.adjust_lon(lon-this.long0);var coslon=Math.cos(dlon);var g=this.sin_p12*sinphi+this.cos_p12*cosphi*coslon;if(Math.abs(Math.abs(g)-1.0)<Proj4js.common.EPSLN){ksp=1.0;if(g<0.0){Proj4js.reportError("aeqd:Fwd:PointError");return;}}else{var z=Math.acos(g);ksp=z/Math.sin(z);}
p.x=this.x0+this.a*ksp*cosphi*Math.sin(dlon);p.y=this.y0+this.a*ksp*(this.cos_p12*sinphi-this.sin_p12*cosphi*coslon);return p;},inverse:function(p){p.x-=this.x0;p.y-=this.y0;var rh=Math.sqrt(p.x*p.x+p.y*p.y);if(rh>(2.0*Proj4js.common.HALF_PI*this.a)){Proj4js.reportError("aeqdInvDataError");return;}
var z=rh/this.a;var sinz=Math.sin(z);var cosz=Math.cos(z);var lon=this.long0;var lat;if(Math.abs(rh)<=Proj4js.common.EPSLN){lat=this.lat0;}else{lat=Proj4js.common.asinz(cosz*this.sin_p12+(p.y*sinz*this.cos_p12)/rh);var con=Math.abs(this.lat0)-Proj4js.common.HALF_PI;if(Math.abs(con)<=Proj4js.common.EPSLN){if(lat0>=0.0){lon=Proj4js.common.adjust_lon(this.long0+Math.atan2(p.x,-p.y));}else{lon=Proj4js.common.adjust_lon(this.long0-Math.atan2(-p.x,p.y));}}else{con=cosz-this.sin_p12*Math.sin(lat);if((Math.abs(con)<Proj4js.common.EPSLN)&&(Math.abs(p.x)<Proj4js.common.EPSLN)){}else{var temp=Math.atan2((p.x*sinz*this.cos_p12),(con*rh));lon=Proj4js.common.adjust_lon(this.long0+Math.atan2((p.x*sinz*this.cos_p12),(con*rh)));}}}
p.x=lon;p.y=lat;return p;}};Proj4js.Proj.moll={init:function(){},forward:function(p){var lon=p.x;var lat=p.y;var delta_lon=Proj4js.common.adjust_lon(lon-this.long0);var theta=lat;var con=Proj4js.common.PI*Math.sin(lat);for(var i=0;true;i++){var delta_theta=-(theta+Math.sin(theta)-con)/(1.0+Math.cos(theta));theta+=delta_theta;if(Math.abs(delta_theta)<Proj4js.common.EPSLN)break;if(i>=50){Proj4js.reportError("moll:Fwd:IterationError");}}
theta/=2.0;if(Proj4js.common.PI/2-Math.abs(lat)<Proj4js.common.EPSLN)delta_lon=0;var x=0.900316316158*this.a*delta_lon*Math.cos(theta)+this.x0;var y=1.4142135623731*this.a*Math.sin(theta)+this.y0;p.x=x;p.y=y;return p;},inverse:function(p){var theta;var arg;p.x-=this.x0;var arg=p.y/(1.4142135623731*this.a);if(Math.abs(arg)>0.999999999999)arg=0.999999999999;var theta=Math.asin(arg);var lon=Proj4js.common.adjust_lon(this.long0+(p.x/(0.900316316158*this.a*Math.cos(theta))));if(lon<(-Proj4js.common.PI))lon=-Proj4js.common.PI;if(lon>Proj4js.common.PI)lon=Proj4js.common.PI;arg=(2.0*theta+Math.sin(2.0*theta))/Proj4js.common.PI;if(Math.abs(arg)>1.0)arg=1.0;var lat=Math.asin(arg);p.x=lon;p.y=lat;return p;}};Proj4js.defs["EPSG:21781"]="+title=CH1903 / LV03 +proj=somerc +lat_0=46.95240555555556 +lon_0=7.439583333333333 +x_0=600000 +y_0=200000 +ellps=bessel +towgs84=674.374,15.056,405.346,0,0,0,0 +units=m +no_defs";VelolandInteropParser=OpenLayers.Class(OpenLayers.Control,{center:null,scale:null,layers:[],hilight:[],land:null,app:null,currentInteropParam:null,initialize:function(options){OpenLayers.Control.prototype.initialize.apply(this,arguments);},getApp:function(){if(!this.app){this.app=this.land.substr(0,1).toUpperCase()
+this.land.substr(1,this.land.length)
+'land';}
return this.app;},addLayersFor:function(name){if(this.land=='velo'||this.land=='wander'||this.land=='skating'||this.land=='mtb'||this.land=='kanu'){this.layers.push(this.land+name+'national',this.land+name+'regional');if(this.land!='kanu'){this.layers.push(this.land+name+'local');}}else{this.layers.push('velo'+name+'national','velo'+name+'regional','velo'+name+'local','wander'+name+'national','wander'+name+'regional','wander'+name+'local','skating'+name+'national','skating'+name+'regional','skating'+name+'local','mtb'+name+'national','mtb'+name+'regional','mtb'+name+'local','kanu'+name+'national','kanu'+name+'regional');}},setMap:function(map){OpenLayers.Control.prototype.setMap.apply(this,arguments);var args=OpenLayers.Util.getParameters();this.land=window.veloland.land;if(args.lon_i&&args.lat_i&&window.Proj4js){var nbdigits=(args.lon_i>9999999)?2:1;var lon=parseFloat(args.lon_i.substr(0,nbdigits)+'.'+args.lon_i.substr(nbdigits,args.lon_i.length-nbdigits));var lat=parseFloat(args.lat_i.substr(0,2)+'.'+args.lat_i.substr(2,args.lat_i.length-2));var source=new Proj4js.Proj('EPSG:4326');var dest=new Proj4js.Proj('EPSG:21781');var p=new Proj4js.Point(lon,lat);Proj4js.transform(source,dest,p);args.X=parseInt(p.x);args.Y=parseInt(p.y);}
if(args.X&&args.Y){this.center=new OpenLayers.LonLat(parseFloat(args.X),parseFloat(args.Y));if(args.scale){this.scale=args.scale;}
this.map.events.register('changebaselayer',this,this.setCenter);this.setCenter();this.addLayersFor('route');this.currentInteropParam='xy';}
if(args.route){if(this.land=='velo'||this.land=='wander'||this.land=='skating'||this.land=='mtb'||this.land=='kanu'){var routen=[this.getApp()+'RoutenNational',this.getApp()+'RoutenRegional'];if(this.land!='kanu'){routen.push(this.getApp()+'RoutenLokal');}
this.storeHilight(routen,args.route);}
this.addLayersFor('route');this.currentInteropParam='route';}
if(args.etappe){if(this.land=='velo'||this.land=='wander'||this.land=='skating'||this.land=='mtb'||this.land=='kanu'){var etappen=[this.getApp()+'EtappenNational',this.getApp()+'EtappenRegional'];if(this.land!='kanu'){etappen.push(this.getApp()+'EtappenLokal');}
this.storeHilight(etappen,args.etappe);}
this.addLayersFor('etappe');this.currentInteropParam='etappe';}
if(args.layer){this.layers=this.layers.concat(args.layer);this.currentInteropParam='layer';}
if(args.vkpt){var vkptlayers=['OffentlicherBahn','OffentlicherBus','OffentlicherTramBus','OffentlicherSchiff','OffentlicherSeilbahn','OffentlicherStandseilbahn'];this.layers=this.layers.concat(vkptlayers);this.storeHilight(vkptlayers,args.vkpt);this.addLayersFor('route');this.currentInteropParam='vkpt';}
if(args.uebernachten){var unlayers=['PointsHotel','PointsBedBreak','PointsJugen','PointsBackpacker','PointsGruppen','PointsUbernachten','PointsBauernhof','PointsFerien','PointsCamping','PointsBerghuette'];this.layers=this.layers.concat(unlayers);this.storeHilight(unlayers,args.uebernachten);this.addLayersFor('route');this.currentInteropParam='uebernachten';}
if(args.poi){if(args.category){var hilight=args.category;switch(args.category){case'natur':hilight='Natur';break;case'kultur':hilight='Kultur';break;case'erlebnisse':hilight='Erlebnisse';break;}
this.layers.push(hilight);}
if(args.poi=='all'){hilight=['Natur','Kultur','Erlebnisse'];this.layers=this.layers.concat(hilight);}
this.storeHilight(hilight,args.poi);this.addLayersFor('route');this.currentInteropParam='poi';}
if(args.einkaufen){hilight=['Migros'];this.layers=this.layers.concat(hilight);this.storeHilight(hilight,args.einkaufen);this.addLayersFor('route');this.currentInteropParam='einkaufen';}
if(args.ebikestation){hilight=['VelolandEbikestation'];this.layers=this.layers.concat(hilight);this.storeHilight(hilight,args.ebikestation);this.addLayersFor('route');}
for(var key in args){if(key!='mode'&&key!='lang'&&key!='route'&&key!='land'&&key!='X'&&key!='Y'&&key!='scale'&&key!='layer'&&key!='poi'&&key!='category'&&key!='vkpt'&&key!='p'&&key!='uebernachten'&&key!='etappe'&&key!='einkaufen'&&key!='ebikestation'&&key!='lon_i'&&key!='lat_i'){var val=args[key];var layer=hilight=key;var activateRoutes=false;switch(key){case'kanton':hilight='Kantone';activateRoutes=true;break;case'gemeinde':hilight='Gemeinden';activateRoutes=true;break;case'orte':hilight='Orte';activateRoutes=true;this.currentInteropParam=key;break;case'natur':hilight='Natur';activateRoutes=true;break;case'kultur':hilight='Kultur';activateRoutes=true;break;case'erlebnisse':hilight='Erlebnisse';activateRoutes=true;break;case'slowup':hilight='Slowup';activateRoutes=true;this.map.isSlowUp=true;break;case'club':hilight='KanulandClub';activateRoutes=true;break;case'servicestelle':layer=this.land+key;hilight=this.getApp()+'Service';activateRoutes=true;break;case'mietstation':layer=this.land+key;hilight=this.getApp()+'Miet';activateRoutes=true;break;case'lokaleangebote':activateRoutes=true;layer=this.land+key;hilight=this.getApp()+'LokaleAngebote';break;case'rafting':activateRoutes=true;layer=this.land+key;hilight=this.getApp()+'Rafting';break;}
if(activateRoutes){this.addLayersFor('route');}
this.layers.push(layer);this.storeHilight(hilight,val);}}
if(this.layers.length>0){this.map.events.register('addlayertree',this,this.configureLayersAndHilight);}},storeHilight:function(layers,val){if(!(layers instanceof Array)){layers=[layers];}
if(!isNaN(val)){this.hilight.push({layers:layers,ids:[val]});}else if(val instanceof Array){this.hilight.push({layers:layers,ids:val});}},setCenter:function(){if(this.map.baseLayer){this.map.events.unregister('changebaselayer',this,this.setCenter);var zoom=null;if(this.scale){var res=OpenLayers.Util.getResolutionFromScale(this.scale,this.map.baseLayer.units);zoom=this.map.getZoomForResolution(res);}
this.map.setCenter(this.center,zoom);}},configureLayersAndHilight:function(){var tree=veloland.layout.treeLayers;if(tree){this.map.events.unregister('addlayertree',this,this.configureLayersAndHilight);if(this.hilight.length>0){if(this.hilight[0].ids!='all'){veloland.layertree.recenterOnObjects(this.hilight[0].layers[0],this.hilight[0].ids);for(var i=0,n=this.hilight.length;i<n;i++){veloland.layertree.highlightObjects(this.hilight[i].layers,this.hilight[i].ids);}}}
for(var i=0,n=this.layers.length;i<n;i++){var node=tree.nodeIdToNode[this.layers[i]];if(!node)continue;tree.setNodeChecked(node,true);}
if(this.currentInteropParam){var nodeId=null;switch(this.currentInteropParam){case'vkpt':nodeId='bahn';break;case'uebernachten':nodeId='ubernacht';break;case'einkaufen':nodeId='einkaufen';break;case'poi':nodeId='sehen';break;case'orte':nodeId='ortegrp';break;case'etappe':nodeId=this.land+'etappe';break;}
if(nodeId){this.unfoldTree(tree,nodeId);}}}},unfoldTree:function(tree,nodeId){if(tree){var rootNode=tree.getRootNode();var secondNodeId=null;if(nodeId==this.land+'etappe'){secondNodeId=nodeId;nodeId=this.land;}
for(var i=0,n=rootNode.childNodes.length;i<n;i++){if(rootNode.childNodes[i].id==nodeId){if(!rootNode.childNodes[i].expanded){rootNode.childNodes[i].toggle();}
if(secondNodeId){var firstNode=rootNode.childNodes[i];for(var j=0,m=firstNode.childNodes.length;j<m;j++){if(firstNode.childNodes[j].id==secondNodeId){var secondNode=firstNode.childNodes[j];if(!secondNode.expanded){secondNode.toggle();}
if(!secondNode.attributes.checked){tree.setNodeChecked(secondNode,true);for(var k=0,l=secondNode.childNodes.length;k<l;k++){if(secondNode.childNodes[k].disabled){secondNode.childNodes[k].enable();}
if(!secondNode.childNodes[k].attributes.checked){tree.setNodeChecked(secondNode.childNodes[k],true);}}}
break;}}}
break;}}}}});OpenLayers.Handler.PointOverride=OpenLayers.Class(OpenLayers.Handler,{point:null,layer:null,multi:false,drawing:false,mouseDown:false,lastDown:null,lastUp:null,persist:false,layerOptions:null,initialize:function(control,callbacks,options){OpenLayers.Handler.prototype.initialize.apply(this,arguments);},activate:function(){if(!OpenLayers.Handler.prototype.activate.apply(this,arguments)){return false;}
var options=OpenLayers.Util.extend({displayInLayerSwitcher:false,calculateInRange:function(){return true;}},this.layerOptions);this.layer=new OpenLayers.Layer.Vector(this.CLASS_NAME,options);this.map.addLayer(this.layer);return true;},createFeature:function(){this.point=new OpenLayers.Feature.Vector(new OpenLayers.Geometry.Point());this.layer.addFeatures([this.point],{silent:true});},deactivate:function(){if(!OpenLayers.Handler.prototype.deactivate.apply(this,arguments)){return false;}
if(this.drawing){this.cancel();}
this.destroyFeature();if(this.layer.map!=null){this.layer.destroy(false);}
this.layer=null;return true;},destroyFeature:function(){if(this.layer){this.layer.destroyFeatures();}
this.point=null;},finalize:function(cancel){var key=cancel?"cancel":"done";this.drawing=false;this.mouseDown=false;this.lastDown=null;this.lastUp=null;this.callback(key,[this.geometryClone()]);if(cancel||!this.persist){this.destroyFeature();}},cancel:function(){this.finalize(true);},click:function(evt){OpenLayers.Event.stop(evt);return false;},dblclick:function(evt){OpenLayers.Event.stop(evt);return false;},drawFeature:function(){this.layer.drawFeature(this.point,this.style);},getGeometry:function(){var geometry=this.point.geometry;if(this.multi){geometry=new OpenLayers.Geometry.MultiPoint([geometry]);}
return geometry;},geometryClone:function(){return this.getGeometry().clone();},mousedown:function(evt){if(!this.checkModifiers(evt)){return true;}
if(this.lastDown&&this.lastDown.equals(evt.xy)){return true;}
if(this.lastDown==null){if(this.persist){this.destroyFeature();}
this.createFeature();}
this.lastDown=evt.xy;this.drawing=true;var lonlat=this.map.getLonLatFromPixel(evt.xy);this.point.geometry.x=lonlat.lon;this.point.geometry.y=lonlat.lat;this.point.geometry.clearBounds();this.drawFeature();return false;},mousemove:function(evt){if(this.drawing){var lonlat=this.map.getLonLatFromPixel(evt.xy);this.point.geometry.x=lonlat.lon;this.point.geometry.y=lonlat.lat;this.point.geometry.clearBounds();this.drawFeature();}
return true;},mouseup:function(evt){if(this.drawing){this.finalize();return false;}else{return true;}},CLASS_NAME:"OpenLayers.Handler.PointOverride"});OpenLayers.Handler.PathOverride=OpenLayers.Class(OpenLayers.Handler.PointOverride,{line:null,freehand:false,freehandToggle:'shiftKey',initialize:function(control,callbacks,options){this.style=OpenLayers.Util.extend(null,OpenLayers.Feature.Vector.style['default']);if(typeof(options.styleOverride)!='undefined'){for(var key in options.styleOverride){this.style[key]=options.styleOverride[key];}}
OpenLayers.Handler.PointOverride.prototype.initialize.apply(this,arguments);},createFeature:function(){this.line=new OpenLayers.Feature.Vector(new OpenLayers.Geometry.LineString());this.point=new OpenLayers.Feature.Vector(new OpenLayers.Geometry.Point());this.layer.addFeatures([this.line,this.point],{silent:true});},destroyFeature:function(){OpenLayers.Handler.PointOverride.prototype.destroyFeature.apply(this);this.line=null;},destroyPoint:function(){if(this.point){this.layer.destroyFeatures([this.point]);}},addPoint:function(){this.line.geometry.addComponent(this.point.geometry.clone(),this.line.geometry.components.length);this.callback("point",[this.point.geometry,this.getGeometry()]);},freehandMode:function(evt){return(this.freehandToggle&&evt[this.freehandToggle])?!this.freehand:this.freehand;},modifyFeature:function(){var index=this.line.geometry.components.length-1;this.line.geometry.components[index].x=this.point.geometry.x;this.line.geometry.components[index].y=this.point.geometry.y;this.line.geometry.components[index].clearBounds();},drawFeature:function(){this.layer.drawFeature(this.line,this.style);this.layer.drawFeature(this.point,this.style);},getGeometry:function(){var geometry=this.line.geometry;if(this.multi){geometry=new OpenLayers.Geometry.MultiLineString([geometry]);}
return geometry;},mousedown:function(evt){if(this.lastDown&&this.lastDown.equals(evt.xy)){return false;}
if(this.lastDown==null){if(this.persist){this.destroyFeature();}
this.createFeature();}
this.mouseDown=true;this.lastDown=evt.xy;var lonlat=this.control.map.getLonLatFromPixel(evt.xy);this.point.geometry.x=lonlat.lon;this.point.geometry.y=lonlat.lat;this.point.geometry.clearBounds();if((this.lastUp==null)||!this.lastUp.equals(evt.xy)){this.addPoint();}
this.drawFeature();this.drawing=true;return false;},mousemove:function(evt){if(this.drawing){var lonlat=this.map.getLonLatFromPixel(evt.xy);this.point.geometry.x=lonlat.lon;this.point.geometry.y=lonlat.lat;this.point.geometry.clearBounds();if(this.mouseDown&&this.freehandMode(evt)){this.addPoint();}else{this.modifyFeature();}
this.drawFeature();}
return true;},mouseup:function(evt){this.mouseDown=false;if(this.drawing){if(this.freehandMode(evt)){if(this.persist){this.destroyPoint();}
this.finalize();}else{if(this.lastUp==null){this.addPoint();}
this.lastUp=evt.xy;}
return false;}
return true;},dblclick:function(evt){if(!this.freehandMode(evt)){var index=this.line.geometry.components.length-1;this.line.geometry.removeComponent(this.line.geometry.components[index]);if(this.persist){this.destroyPoint();}
this.finalize();}
return false;},CLASS_NAME:"OpenLayers.Handler.PathOverride"});window.veloland=function(){function doInit(){veloland.initLand();veloland.initLang();veloland.layertree.init();veloland.map.initMap();veloland.layout.init();veloland.tooltips.init();setLandLogoHilight();veloland.layout.hideLayers();}
return{config:{},urlParams:{},map:null,land:null,validLands:['velo','wander','mtb','skating','kanu','schweizmobil'],init:function(){new Ext.Viewport({layout:'border',items:[{region:'north',contentEl:'header',border:false,id:'toppanel'},{region:'center',layout:'border',id:'mainpanel',items:[{region:'west',contentEl:'treeLayers',border:false,autoScroll:true,width:273,id:'westpanel'},{region:'center',layout:'border',id:'eastpanel',items:[{region:'center',contentEl:'mapContainer',border:false},{region:'south',contentEl:'footer',border:false}]}]}]});this.urlParams=OpenLayers.Util.getParameters(location.search);doInit();},initLand:function(){if(typeof(selected_land)!='undefined'){this.land=selected_land;}else{this.land='velo';}},initLang:function(){OpenLayers.Lang.setCode(selected_lang);}};}();function setLandLogoHilight(){var landlist=['velo','wander','mtb','skating','kanu','schweizmobil'];var textlist=[OpenLayers.i18n('Veloland Schweiz'),OpenLayers.i18n('Wanderland Schweiz'),OpenLayers.i18n('Mountainbikeland Schweiz'),OpenLayers.i18n('Skatingland Schweiz'),OpenLayers.i18n('Kanuland Schweiz'),OpenLayers.i18n('SchweizMobil')];function logoover(ev,target){document.getElementById('landTxt').innerHTML=textlist[this.id];}
for(var i in landlist){if(typeof landlist[i]=='string'){var logotarget='Logo'+landlist[i]+'land';var targetid={id:i};var lt=Ext.get(logotarget);var ltt=document.getElementById(logotarget);lt.on('mouseover',logoover,targetid);lt.on('mouseout',function(){document.getElementById('landTxt').innerHTML='';});if(landlist[i]==window.veloland.land){ltt.className='actif';}else{ltt.className='inactif';lt.on('mouseover',function(){this.replaceClass('inactif','actif');});lt.on('mouseout',function(){this.replaceClass('actif','inactif');});}}}}
(function(){if(veloland===undefined){OpenLayers.Console.error('veloland.js must be loaded before config.js');return;}
veloland.config.tilecacheUrl='/tilecache';veloland.config.tcChtopoUrl=['http://tile5.bgdi.admin.ch/geoadmin/','http://tile6.bgdi.admin.ch/geoadmin/','http://tile7.bgdi.admin.ch/geoadmin/','http://tile8.bgdi.admin.ch/geoadmin/','http://tile9.bgdi.admin.ch/geoadmin/'];veloland.config.mapserverUrl='/wms';veloland.config.maxExtent=[420000,30000,900000,350000];veloland.config.resolutions=[650,500,250,100,50,20,10,5,2.5];veloland.config.serverResolutions=[4000,3750,3500,3250,3000,2750,2500,2250,2000,1750,1500,1250,1000,750,650,500,250,100,50,20,10,5,2.5];veloland.config.scales=[6500000,5000000,2500000,1000000,500000,200000,100000,50000,25000];veloland.config.printUrl='/print';veloland.config.wsRecenterSwissnamesUrl='/swissnames_geocoding';veloland.config.absoluteUrl='http://map.schweizmobil.ch';})();window.veloland.map=function(){if(window.veloland===undefined){OpenLayers.Console.error('veloland.js must be loaded before map.js');return;}
VelolandMap=OpenLayers.Class(OpenLayers.Map,{isSlowUp:false,initialize:function(div,options){this.EVENT_TYPES.push('addlayertree');OpenLayers.Map.prototype.initialize.apply(this,[div,options]);}});return{map:null,init:function(){},initMap:function(){Ext.BLANK_IMAGE_URL="mfbase/ext/resources/images/default/s.gif";OpenLayers.DOTS_PER_INCH=254;OpenLayers.ImgPath="images/ol/";OpenLayers.Util.onImageLoadError=function(){this.src=Ext.BLANK_IMAGE_URL;};OpenLayers.Tile.Image.useBlankTile=false;var options={projection:"EPSG:21781",units:"m",maxExtent:new OpenLayers.Bounds.fromArray(veloland.config.maxExtent),resolutions:veloland.config.resolutions};var overviewInit=new OpenLayers.Control.OverviewMap({layers:[veloland.layertree.getOlOverviewMapLayer()],size:new OpenLayers.Size(160,106),minRectSize:13,isSuitableOverview:function(){return true;},mapOptions:{units:options.units,projection:options.projection,maxExtent:options.maxExtent,scales:[28000000]}});options.controls=[new OpenLayers.Control.Navigation(),new OpenLayers.Control.PanZoomBar(),new OpenLayers.Control.ScaleLine(),new OpenLayers.Control.MousePosition({div:$('mousepos'),numDigits:0,prefix:OpenLayers.i18n('Koordinaten (m): '),suffix:' | Geodaten &copy; swisstopo (5704000138)'}),overviewInit,new VelolandInteropParser()];this.map=new VelolandMap('map',options);var map=this.map;map.moveTo=function(lonlat,zoom,options){if(zoom!=this.getZoom()){veloland.tooltips.hideTooltip();}
OpenLayers.Map.prototype.moveTo.call(this,lonlat,zoom,options);};map.addLayers([new OpenLayers.Layer("",{isBaseLayer:true}),veloland.layertree.getLayerKarte(),veloland.layertree.getLayerSwissOutline(),veloland.layertree.getLayerKanton(),veloland.layertree.getLayerGemeinde(),veloland.layertree.getLayerVeloland(),veloland.layertree.getLayerHighlight()]);overviewInit.maximizeControl();if(!map.getCenter()){map.zoomToMaxExtent();}
var getStyleMap=function(){return new OpenLayers.StyleMap({"default":new OpenLayers.Style(null,{rules:[new OpenLayers.Rule({symbolizer:{"Point":{pointRadius:4,graphicName:"square",fillColor:"red",fillOpacity:0.5,strokeWidth:1,strokeOpacity:1,strokeColor:"red"},"Line":{strokeWidth:2,strokeOpacity:1,strokeColor:"red"},"Polygon":{strokeWidth:2,strokeOpacity:1,strokeColor:"red",fillColor:"red",fillOpacity:0.5}}})]})});};map.measureControls={line:new OpenLayers.Control.Measure(OpenLayers.Handler.PathOverride,{handlerOptions:{layerOptions:{styleMap:getStyleMap()},styleOverride:{pointRadius:4,graphicName:"square",fillColor:"red",fillOpacity:0.5,strokeWidth:2,strokeOpacity:1,strokeColor:"red"},persist:true}})};var control;for(var key in map.measureControls){control=map.measureControls[key];control.events.on({"measure":handleMeasurements,"measurepartial":handleMeasurements});map.addControl(control);}}};}();window.veloland.layertree=function(){if(window.veloland===undefined){OpenLayers.Console.error('veloland.js must be loaded before layertree.js');return;}
var mfModelLayers=[];var olOverviewMapLayer=null;var layerSwissOutline,layerKanton,layerGemeinde;var layerKarte;var layerLuftbild;var layerHighlight;var markedRoutes=[];var layersTooltips=[];return{init:function(){var velo={id:'velo',text:OpenLayers.i18n("Veloland"),expanded:false,checked:false,cls:"veloland-level0 theme-velo first-level0",children:[{id:'veloroute',text:veloland.layertree.addVelolandLayerLink('velo_routen')+OpenLayers.i18n("Routen"),cls:"veloland-level1 theme-velo",checked:true,expanded:true,radio:true,radioGrp:"routenetappenvelo",children:[{text:veloland.layertree.addVelolandLayerLink('velo_routen_national')+OpenLayers.i18n("National"),layerNames:["veloland:VelolandRoutenNational","highlight:VelolandRoutenNational_highlight"],cls:"veloland-level2 theme-velo",id:'veloroutenational',checked:false},{id:'velorouteregional',text:veloland.layertree.addVelolandLayerLink('velo_routen_regional')+OpenLayers.i18n("Regional"),layerNames:["veloland:VelolandRoutenRegional","highlight:VelolandRoutenRegional_highlight"],cls:"veloland-level2 theme-velo",checked:false},{id:'veloroutelocal',text:veloland.layertree.addVelolandLayerLink('velo_routen_lokal')+OpenLayers.i18n("Lokal"),layerNames:["veloland:VelolandRoutenLokal","highlight:VelolandRoutenLokal_highlight"],cls:"veloland-level2 theme-velo",checked:false}]},{text:veloland.layertree.addVelolandLayerLink('velo_etappen')+OpenLayers.i18n("Etappen"),id:'veloetappe',cls:"veloland-level1 theme-velo",checked:false,radio:true,radioGrp:"routenetappenvelo",children:[{text:veloland.layertree.addVelolandLayerLink('velo_etappen_national')+OpenLayers.i18n("National"),layerNames:["veloland:VelolandEtappenNational","highlight:VelolandEtappenNational_highlight"],cls:"veloland-level2 theme-velo",id:'veloetappenational',checked:false,disabled:true},{text:veloland.layertree.addVelolandLayerLink('velo_etappen_regional')+OpenLayers.i18n("Regional"),layerNames:["veloland:VelolandEtappenRegional","highlight:VelolandEtappenRegional_highlight"],cls:"veloland-level2 theme-velo",checked:false,id:'veloetapperegional',disabled:true},{text:veloland.layertree.addVelolandLayerLink('velo_etappen_lokal')+OpenLayers.i18n("Lokal"),layerNames:["veloland:VelolandEtappenLokal","highlight:VelolandEtappenLokal_highlight"],cls:"veloland-level2 theme-velo",checked:false,id:'veloetappelocal',disabled:true}]},{text:veloland.layertree.addVelolandLayerLink('velo_mietvelo')+OpenLayers.i18n("Mietvelo"),cls:"veloland-level1 theme-velo",layerNames:["veloland:VelolandMiet","highlight:VelolandMiet_highlight"],id:'velomietstation',checked:false},{text:veloland.layertree.addVelolandLayerLink('velo_ebikestation')+OpenLayers.i18n("Flyerland"),cls:"veloland-level1 theme-velo",layerNames:["veloland:VelolandEbikestation","highlight:VelolandEbikestation_highlight"],id:'VelolandEbikestation',checked:false},{text:veloland.layertree.addVelolandLayerLink('velo_service')+OpenLayers.i18n("Veloservice"),cls:"veloland-level1 theme-velo",id:'veloservicestelle',layerNames:["veloland:VelolandService","highlight:VelolandService_highlight"],checked:false}]};var wander={id:'wander',text:OpenLayers.i18n("Wanderland"),cls:"veloland-level0 theme-wander",expanded:false,checked:false,children:[{text:veloland.layertree.addVelolandLayerLink('wander_routen')+OpenLayers.i18n("Routen"),cls:"veloland-level1 theme-wander",checked:true,expanded:true,radio:true,radioGrp:"routenetappenwander",id:'wanderroute',children:[{text:veloland.layertree.addVelolandLayerLink('wander_routen_national')+OpenLayers.i18n("National"),layerNames:["veloland:WanderlandRoutenNational","highlight:WanderlandRoutenNational_highlight"],cls:"veloland-level2 theme-wander",id:'wanderroutenational',checked:false},{text:veloland.layertree.addVelolandLayerLink('wander_routen_regional')+OpenLayers.i18n("Regional"),layerNames:["veloland:WanderlandRoutenRegional","highlight:WanderlandRoutenRegional_highlight"],cls:"veloland-level2 theme-wander",id:'wanderrouteregional',checked:false},{text:veloland.layertree.addVelolandLayerLink('wander_routen_lokal')+OpenLayers.i18n("Lokal"),layerNames:["veloland:WanderlandRoutenLokal","highlight:WanderlandRoutenLokal_highlight"],cls:"veloland-level2 theme-wander",id:'wanderroutelocal',checked:false}]},{text:veloland.layertree.addVelolandLayerLink('wander_etappen')+OpenLayers.i18n("Etappen"),cls:"veloland-level1 theme-wander",checked:false,id:'wanderetappe',radio:true,radioGrp:"routenetappenwander",children:[{text:veloland.layertree.addVelolandLayerLink('wander_etappen_national')+OpenLayers.i18n("National"),layerNames:["veloland:WanderlandEtappenNational","highlight:WanderlandEtappenNational_highlight"],cls:"veloland-level2 theme-wander",checked:false,id:'wanderetappenational',disabled:true},{text:veloland.layertree.addVelolandLayerLink('wander_etappen_regional')+OpenLayers.i18n("Regional"),layerNames:["veloland:WanderlandEtappenRegional","highlight:WanderlandEtappenRegional_highlight"],cls:"veloland-level2 theme-wander",checked:false,id:'wanderetapperegional',disabled:true},{text:veloland.layertree.addVelolandLayerLink('wander_etappen_lokal')+OpenLayers.i18n("Lokal"),layerNames:["veloland:WanderlandEtappenLokal","highlight:WanderlandEtappenLokal_highlight"],cls:"veloland-level2 theme-wander",checked:false,id:'wanderetappelocal',disabled:true}]},{text:veloland.layertree.addVelolandLayerLink('wander_wanderwegnetz')+OpenLayers.i18n("Wanderwegnetz"),cls:"veloland-level1 theme-wander",layerName:"veloland:Wanderwegnetz",id:'wanderwegnetz',checked:false}]};var bike={id:'mtb',text:OpenLayers.i18n("Mountainbikeland"),cls:"veloland-level0 theme-mountainbike",expanded:false,checked:false,children:[{text:veloland.layertree.addVelolandLayerLink('bike_routen')+OpenLayers.i18n("Routen"),cls:"veloland-level1 theme-mountainbike",checked:true,expanded:true,radio:true,radioGrp:"routenetappenbike",id:'mtbroute',children:[{text:veloland.layertree.addVelolandLayerLink('bike_routen_national')+OpenLayers.i18n("National"),layerNames:["veloland:MtblandRoutenNational","highlight:MtblandRoutenNational_highlight"],cls:"veloland-level2 theme-mountainbike",id:'mtbroutenational',checked:false},{text:veloland.layertree.addVelolandLayerLink('bike_routen_regional')+OpenLayers.i18n("Regional"),layerNames:["veloland:MtblandRoutenRegional","highlight:MtblandRoutenRegional_highlight"],cls:"veloland-level2 theme-mountainbike",id:'mtbrouteregional',checked:false},{text:veloland.layertree.addVelolandLayerLink('bike_routen_lokal')+OpenLayers.i18n("Lokal"),layerNames:["veloland:MtblandRoutenLokal","highlight:MtblandRoutenLokal_highlight"],cls:"veloland-level2 theme-mountainbike",id:'mtbroutelocal',checked:false}]},{text:veloland.layertree.addVelolandLayerLink('bike_etappen')+OpenLayers.i18n("Etappen"),cls:"veloland-level1 theme-mountainbike",checked:false,radio:true,id:'mtbetappe',radioGrp:"routenetappenbike",children:[{text:veloland.layertree.addVelolandLayerLink('bike_etappen_national')+OpenLayers.i18n("National"),layerNames:["veloland:MtblandEtappenNational","highlight:MtblandEtappenNational_highlight"],cls:"veloland-level2 theme-mountainbike",checked:false,id:'mtbetappenational',disabled:true},{text:veloland.layertree.addVelolandLayerLink('bike_etappen_regional')+OpenLayers.i18n("Regional"),layerNames:["veloland:MtblandEtappenRegional","highlight:MtblandEtappenRegional_highlight"],cls:"veloland-level2 theme-mountainbike",checked:false,id:'mtbetapperegional',disabled:true},{text:veloland.layertree.addVelolandLayerLink('bike_etappen_lokal')+OpenLayers.i18n("Lokal"),layerNames:["veloland:MtblandEtappenLokal","highlight:MtblandEtappenLokal_highlight"],cls:"veloland-level2 theme-mountainbike",checked:false,id:'mtbetappelocal',disabled:true}]},{text:veloland.layertree.addVelolandLayerLink('bike_mietbike')+OpenLayers.i18n("Mietbike"),cls:"veloland-level1 theme-mountainbike",layerNames:["veloland:MtblandMiet","highlight:MtblandMiet_highlight"],id:'mtbmietstation',checked:false},{text:veloland.layertree.addVelolandLayerLink('bike_service')+OpenLayers.i18n("Bikeservice"),cls:"veloland-level1 theme-mountainbike",layerNames:["veloland:MtblandService","highlight:MtblandService_highlight"],id:'mtbservicestelle',checked:false}]};var skating={id:'skating',text:OpenLayers.i18n("Skatingland"),cls:"veloland-level0 theme-skating",expanded:false,checked:false,children:[{text:veloland.layertree.addVelolandLayerLink('skating_routen')+OpenLayers.i18n("Routen"),cls:"veloland-level1 theme-skating",checked:true,expanded:true,radio:true,radioGrp:"routenetappenskating",id:'skatingroute',children:[{text:veloland.layertree.addVelolandLayerLink('skating_routen_national')+OpenLayers.i18n("National"),layerNames:["veloland:SkatinglandRoutenNational","highlight:SkatinglandRoutenNational_highlight"],cls:"veloland-level2 theme-skating",id:'skatingroutenational',checked:false},{text:veloland.layertree.addVelolandLayerLink('skating_routen_regional')+OpenLayers.i18n("Regional"),layerNames:["veloland:SkatinglandRoutenRegional","highlight:SkatinglandRoutenRegional_highlight"],cls:"veloland-level2 theme-skating",id:'skatingrouteregional',checked:false},{text:veloland.layertree.addVelolandLayerLink('skating_routen_lokal')+OpenLayers.i18n("Lokal"),layerNames:["veloland:SkatinglandRoutenLokal","highlight:SkatinglandRoutenLokal_highlight"],cls:"veloland-level2 theme-skating",id:'skatingroutelocal',checked:false}]},{text:veloland.layertree.addVelolandLayerLink('skating_etappen')+OpenLayers.i18n("Etappen"),cls:"veloland-level1 theme-skating",checked:false,radio:true,id:'skatingetappe',radioGrp:"routenetappenskating",children:[{text:veloland.layertree.addVelolandLayerLink('skating_etappen_national')+OpenLayers.i18n("National"),layerNames:["veloland:SkatinglandEtappenNational","highlight:SkatinglandEtappenNational_highlight"],cls:"veloland-level2 theme-skating",checked:false,id:'skatingetappenational',disabled:true},{text:veloland.layertree.addVelolandLayerLink('skating_etappen_regional')+OpenLayers.i18n("Regional"),layerNames:["veloland:SkatinglandEtappenRegional","highlight:SkatinglandEtappenRegional_highlight"],cls:"veloland-level2 theme-skating",checked:false,id:'skatingetapperegional',disabled:true},{text:veloland.layertree.addVelolandLayerLink('skating_etappen_lokal')+OpenLayers.i18n("Lokal"),layerNames:["veloland:SkatinglandEtappenLokal","highlight:SkatinglandEtappenLokal_highlight"],cls:"veloland-level2 theme-skating",checked:false,id:'skatingetappelocal',disabled:true}]}]};var kanu={id:'kanu',text:OpenLayers.i18n("Kanuland"),expanded:false,checked:false,cls:"veloland-level0 theme-kanu",children:[{text:veloland.layertree.addVelolandLayerLink('kanu_routen')+OpenLayers.i18n("Routen"),cls:"veloland-level1 theme-kanu",checked:true,expanded:true,radio:true,radioGrp:"routenetappenskanu",id:'kanuroute',children:[{text:veloland.layertree.addVelolandLayerLink('kanu_routen_national')+OpenLayers.i18n("National"),layerNames:["veloland:KanulandRoutenNational","highlight:KanulandRoutenNational_highlight"],cls:"veloland-level2 theme-kanu",id:'kanuroutenational',checked:false},{text:veloland.layertree.addVelolandLayerLink('kanu_routen_regional')+OpenLayers.i18n("Regional"),layerNames:["veloland:KanulandRoutenRegional","highlight:KanulandRoutenRegional_highlight"],cls:"veloland-level2 theme-kanu",id:'kanurouteregional',checked:false}]},{text:veloland.layertree.addVelolandLayerLink('kanu_etappen')+OpenLayers.i18n("Etappen"),cls:"veloland-level1 theme-kanu",checked:false,radio:true,id:'kanuetappe',radioGrp:"routenetappenskanu",children:[{text:veloland.layertree.addVelolandLayerLink('kanu_etappen_national')+OpenLayers.i18n("National"),layerNames:["veloland:KanulandEtappenNational","highlight:KanulandEtappenNational_highlight"],cls:"veloland-level2 theme-kanu",checked:false,id:'kanuetappenational',disabled:true},{text:veloland.layertree.addVelolandLayerLink('kanu_etappen_regional')+OpenLayers.i18n("Regional"),layerNames:["veloland:KanulandEtappenRegional","highlight:KanulandEtappenRegional_highlight"],cls:"veloland-level2 theme-kanu",checked:false,id:'kanuetapperegional',disabled:true}]},{text:veloland.layertree.addVelolandLayerLink('kanu_rafting')+OpenLayers.i18n("Rafting"),cls:"veloland-level1 theme-kanu",id:'kanurafting',layerNames:["veloland:KanulandRafting","highlight:KanulandRafting_highlight"],checked:false},{text:veloland.layertree.addVelolandLayerLink('kanu_club')+OpenLayers.i18n("Kanuclub"),cls:"veloland-level1 theme-kanu",layerNames:["veloland:KanulandClub","highlight:KanulandClub_highlight"],id:'club',checked:false}]};var bahn={id:'bahn',text:OpenLayers.i18n("Bahn - Bus - Schiff"),expanded:false,checked:false,cls:"veloland-level0 theme-bahn",children:[{text:veloland.layertree.addVelolandLayerLink('bahn_haltestellen')+OpenLayers.i18n("Haltestellen"),expanded:false,cls:"veloland-level1 theme-bahn",checked:false,expanded:true,children:[{text:OpenLayers.i18n("Bahn"),cls:"veloland-level2 theme-bahn",layerNames:["veloland:OffentlicherBahn","highlight:OffentlicherBahn_highlight"],id:'OffentlicherBahn',checked:false},{text:OpenLayers.i18n("Bus"),cls:"veloland-level2 theme-bahn",layerNames:["veloland:OffentlicherBus","highlight:OffentlicherBus_highlight"],id:'OffentlicherBus',checked:false},{text:OpenLayers.i18n("Tram"),cls:"veloland-level2 theme-bahn",layerNames:["veloland:OffentlicherTramBus","highlight:OffentlicherTramBus_highlight"],id:'OffentlicherTramBus',checked:false},{text:OpenLayers.i18n("Schiff"),cls:"veloland-level2 theme-bahn",layerNames:["veloland:OffentlicherSchiff","highlight:OffentlicherSchiff_highlight"],id:'OffentlicherSchiff',checked:false},{text:OpenLayers.i18n("Seilbahn"),cls:"veloland-level2 theme-bahn",layerNames:["veloland:OffentlicherSeilbahn","highlight:OffentlicherSeilbahn_highlight"],id:'OffentlicherSeilbahn',checked:false},{text:OpenLayers.i18n("Standseilbahn"),cls:"veloland-level2 theme-bahn",layerNames:["veloland:OffentlicherStandseilbahn","highlight:OffentlicherStandseilbahn_highlight"],id:'OffentlicherStandseilbahn',checked:false}]}]};var orte={id:'ortegrp',text:OpenLayers.i18n("Orte"),expanded:false,checked:false,cls:"veloland-level0 theme-orte",children:[{text:veloland.layertree.addVelolandLayerLink('orte')+OpenLayers.i18n("Orte"),cls:"veloland-level1 theme-orte",layerNames:['veloland:Orte','highlight:Orte_highlight'],id:'orte',checked:false}]};var ubernacht={id:'ubernacht',text:OpenLayers.i18n("Übernachten"),expanded:false,checked:false,autoExpandChild:true,cls:"veloland-level0 theme-ubernacht",children:[{text:veloland.layertree.addVelolandLayerLink('ubernacht')+OpenLayers.i18n("Übernachten"),cls:"veloland-level1 theme-ubernacht",checked:false,children:[{text:OpenLayers.i18n("Hotel"),icon:"images/hotel.gif",layerNames:["veloland:PointsHotel","highlight:PointsHotel_highlight"],cls:"veloland-level2 theme-ubernacht",id:'PointsHotel',checked:false},{text:OpenLayers.i18n("Bed & Breakfast"),icon:"images/bed_breakfast.gif",layerNames:["veloland:PointsBedBreak","highlight:PointsBedBreak_highlight"],cls:"veloland-level2 theme-ubernacht",id:'PointsBedBreak',checked:false},{text:OpenLayers.i18n("Jugendherberge"),icon:"images/jugendherberge.gif",layerNames:["veloland:PointsJugen","highlight:PointsJugen_highlight"],cls:"veloland-level2 theme-ubernacht",id:'PointsJugen',checked:false},{text:OpenLayers.i18n("Backpacker / Herberge"),icon:"images/backpacker.gif",layerNames:["veloland:PointsBackpacker","highlight:PointsBackpacker_highlight"],cls:"veloland-level2 theme-ubernacht",id:'PointsBackpacker',checked:false},{text:OpenLayers.i18n("Gruppenunterkunft"),icon:"images/gruppenunterkunft.gif",layerNames:["veloland:PointsGruppen","highlight:PointsGruppen_highlight"],cls:"veloland-level2 theme-ubernacht",id:'PointsGruppen',checked:false},{text:OpenLayers.i18n("Übernachten im Stroh"),icon:"images/uebernachten_stroh.gif",layerNames:["veloland:PointsUbernachten","highlight:PointsUbernachten_highlight"],cls:"veloland-level2 theme-ubernacht",id:'PointsUbernachten',checked:false},{text:OpenLayers.i18n("Bauernhof mit Zimmer"),icon:"images/bauernhof_zimmer.gif",layerNames:["veloland:PointsBauernhof","highlight:PointsBauernhof_highlight"],cls:"veloland-level2 theme-ubernacht",id:'PointsBauernhof',checked:false},{text:OpenLayers.i18n("Ferienwohnung"),icon:"images/ferienwohnung.gif",layerNames:["veloland:PointsFerien","highlight:PointsFerien_highlight"],cls:"veloland-level2 theme-ubernacht ferienwohnung",id:'PointsFerien',checked:false},{text:OpenLayers.i18n("Berghuette"),icon:"images/berghuette.gif",layerNames:["veloland:PointsBerghuette","highlight:PointsBerghuette_highlight"],cls:"veloland-level2 theme-ubernacht",id:'PointsBerghuette',checked:false},{text:OpenLayers.i18n("Campingplatz"),icon:"images/camping.gif",layerNames:["veloland:PointsCamping","highlight:PointsCamping_highlight"],cls:"veloland-level2 theme-ubernacht",id:'PointsCamping',checked:false}]}]};var einkaufen={id:'einkaufen',text:OpenLayers.i18n("Einkaufen"),expanded:false,checked:false,cls:"veloland-level0 theme-einkaufen",children:[{text:OpenLayers.i18n("Migros"),cls:"veloland-level1 theme-einkaufen",layerNames:['veloland:Migros','highlight:Migros_highlight'],id:'Migros',checked:false}]};var sehen={id:'sehen',text:OpenLayers.i18n("Sehenswürdigkeiten"),expanded:false,checked:false,cls:"veloland-level0 theme-sehen",children:[{id:'Natur',text:veloland.layertree.addVelolandLayerLink('sehen_natur')+OpenLayers.i18n("Natur"),cls:"veloland-level1 theme-sehen",layerNames:['veloland:Natur',"highlight:Natur_highlight"],checked:false},{id:'Kultur',text:veloland.layertree.addVelolandLayerLink('sehen_kultur')+OpenLayers.i18n("Kultur"),cls:"veloland-level1 theme-sehen",layerNames:['veloland:Kultur',"highlight:Kultur_highlight"],checked:false},{id:'Erlebnisse',text:veloland.layertree.addVelolandLayerLink('sehen_erlebnisse')+OpenLayers.i18n("Erlebnisse"),cls:"veloland-level1 theme-sehen",layerNames:['veloland:Erlebnisse',"highlight:Erlebnisse_highlight"],checked:false}]};var optional={id:'optional',text:'',expanded:false,checked:false,cls:"veloland-level0 theme-sehen",children:[{id:'slowup',text:'slowup',cls:"veloland-level1 theme-sehen",layerNames:['veloland:Slowup'],checked:false},{id:'kanton',text:'kanton',cls:"veloland-level1 theme-sehen",layerNames:['kantone','highlight:Kantone_highlight'],checked:false},{id:'gemeinde',text:'gemeinde',cls:"veloland-level1 theme-sehen",layerNames:['gemeinde','highlight:Gemeinden_highlight'],checked:false}]};if(window.veloland.land=='velo'){mfModelLayers=mfModelLayers.concat([velo,wander,bike,skating,kanu,bahn,orte,ubernacht,einkaufen,sehen,optional]);velo.expanded=true;}else if(window.veloland.land=='wander'){mfModelLayers=mfModelLayers.concat([wander,velo,bike,skating,kanu,bahn,orte,ubernacht,einkaufen,sehen,optional]);wander.expanded=true;}else if(window.veloland.land=='mtb'){mfModelLayers=mfModelLayers.concat([bike,wander,velo,skating,kanu,bahn,orte,ubernacht,einkaufen,sehen,optional]);bike.expanded=true;}else if(window.veloland.land=='skating'){mfModelLayers=mfModelLayers.concat([skating,wander,velo,bike,kanu,bahn,orte,ubernacht,einkaufen,sehen,optional]);skating.expanded=true;}else if(window.veloland.land=='kanu'){mfModelLayers=mfModelLayers.concat([kanu,wander,velo,bike,skating,bahn,orte,ubernacht,einkaufen,sehen,optional]);kanu.expanded=true;}else{mfModelLayers=mfModelLayers.concat([wander,velo,bike,skating,kanu,bahn,orte,ubernacht,einkaufen,sehen,optional]);}
olOverviewMapLayer=new OpenLayers.Layer.Image("overview","images/keymap.png",new OpenLayers.Bounds(485000,65000,835000,298000),new OpenLayers.Size(150,99));layerSwissOutline=new OpenLayers.Layer.TileCache("karte",veloland.config.tcChtopoUrl,'ch.swisstopo.gg25-land-flaeche.fill',{format:'image/png',isBaseLayer:false,visibility:true,buffer:0,serverResolutions:Ext.isIE6?Array():veloland.config.serverResolutions.slice(0,17)});layerKanton=new OpenLayers.Layer.TileCache("kantone",veloland.config.tcChtopoUrl,'ch.swisstopo.gg25-kanton-flaeche.fill',{format:'image/png',isBaseLayer:false,visibility:false,buffer:0,serverResolutions:Ext.isIE6?Array():veloland.config.serverResolutions});layerGemeinde=new OpenLayers.Layer.TileCache("gemeinde",veloland.config.tcChtopoUrl,'ch.swisstopo.gg25-gemeinde-flaeche.fill',{format:'image/png',isBaseLayer:false,visibility:false,buffer:0,serverResolutions:Ext.isIE6?Array():veloland.config.serverResolutions,getURL:function(bounds){var url=OpenLayers.Layer.TileCache.prototype.getURL.apply(this,arguments);return url+'?uuid=4cbe';}});layerKarte=new OpenLayers.Layer.TileCache("karte",veloland.config.tcChtopoUrl,'ch.swisstopo.pixelkarte-farbe',{format:'image/jpeg',isBaseLayer:false,buffer:0,opacity:0.75,serverResolutions:veloland.config.serverResolutions});layerLuftbild=new OpenLayers.Layer.TileCache("luftbild",veloland.config.tcChtopoUrl,'ch.swisstopo.swissimage',{format:'image/jpeg',isBaseLayer:false,buffer:0,serverResolutions:veloland.config.serverResolutions});var el=Ext.get('treeLayersTrigger');el.addClass('theme-'+window.veloland.land);el.addListener('click',function(){var mainpanel=Ext.getCmp('mainpanel');var westpanel=Ext.getCmp('westpanel');var ltt=$('treeLayersTriggerTxt');if(westpanel.isVisible()){westpanel.hide();mainpanel.doLayout();veloland.map.map.updateSize();ltt.innerHTML=OpenLayers.i18n('Themen offnen');positionMeasureValueContainer();}else{westpanel.show();mainpanel.doLayout();ltt.innerHTML=OpenLayers.i18n('Themen schliessen');positionMeasureValueContainer();}});OpenLayers.Event.observe($('treeLayers'),'click',OpenLayers.Function.bindAsEventListener(veloland.tooltips.hideTooltip,this));},getModelLayers:function(){return mfModelLayers;},getLayerSwissOutline:function(){return layerSwissOutline;},getLayerKanton:function(){return layerKanton;},getLayerGemeinde:function(){return layerGemeinde;},getLayerKarte:function(){return layerKarte;},getLayerLuftbild:function(){return layerLuftbild;},getLayerVeloland:function(url,gutter,visibility){if(!url){url=veloland.config.tilecacheUrl;}
if(!gutter){gutter=0;}
if(!visibility){visibility=false;}
var velo=['VelolandRoutenNational','VelolandRoutenRegional','VelolandRoutenLokal','VelolandEtappenNational','VelolandEtappenRegional','VelolandEtappenLokal','VelolandMiet','VelolandEbikestation','VelolandService'];var wander=['WanderlandRoutenNational','WanderlandRoutenRegional','WanderlandRoutenLokal','WanderlandEtappenNational','WanderlandEtappenRegional','WanderlandEtappenLokal','Wanderwegnetz'];var bike=['MtblandRoutenNational','MtblandRoutenRegional','MtblandRoutenLokal','MtblandEtappenNational','MtblandEtappenRegional','MtblandEtappenLokal','MtblandMiet','MtblandService'];var skating=['SkatinglandRoutenNational','SkatinglandRoutenRegional','SkatinglandRoutenLokal','SkatinglandEtappenNational','SkatinglandEtappenRegional','SkatinglandEtappenLokal'];var kanu=['KanulandRoutenNational','KanulandRoutenRegional','KanulandEtappenNational','KanulandEtappenRegional','KanulandRafting','KanulandClub'];var bahn=['OffentlicherBahn','OffentlicherBus','OffentlicherTramBus','OffentlicherSchiff','OffentlicherSeilbahn','OffentlicherStandseilbahn'];var orte=['Orte'];var ubernacht=['PointsHotel','PointsBedBreak','PointsJugen','PointsBackpacker','PointsGruppen','PointsUbernachten','PointsBauernhof','PointsFerien','PointsCamping','PointsBerghuette'];var einkaufen=['Migros'];var sehen=['Natur','Kultur','Erlebnisse'];var optional=['Slowup'];var layers=[];layersTooltips=[];if(window.veloland.land=='velo'){layers=layers.concat(kanu,skating,bike,wander,velo,bahn,orte,ubernacht,einkaufen,sehen,optional);layersTooltips=layersTooltips.concat(velo,wander,bike,skating,kanu,bahn,orte,ubernacht,einkaufen,sehen,optional);}else if(window.veloland.land=='wander'){layers=layers.concat(kanu,skating,bike,velo,wander,bahn,orte,ubernacht,einkaufen,sehen,optional);layersTooltips=layersTooltips.concat(wander,velo,bike,skating,kanu,bahn,orte,ubernacht,einkaufen,sehen,optional);}else if(window.veloland.land=='mtb'){layers=layers.concat(kanu,skating,wander,velo,bike,bahn,orte,ubernacht,einkaufen,sehen,optional);layersTooltips=layersTooltips.concat(bike,wander,velo,skating,kanu,bahn,orte,ubernacht,einkaufen,sehen,optional);}else if(window.veloland.land=='skating'){layers=layers.concat(kanu,bike,wander,velo,skating,bahn,orte,ubernacht,einkaufen,sehen,optional);layersTooltips=layersTooltips.concat(skating,wander,velo,bike,kanu,bahn,orte,ubernacht,einkaufen,sehen,optional);}else if(window.veloland.land=='kanu'){layers=layers.concat(skating,bike,wander,velo,kanu,bahn,orte,ubernacht,einkaufen,sehen,optional);layersTooltips=layersTooltips.concat(kanu,wander,velo,bike,skating,bahn,orte,ubernacht,einkaufen,sehen,optional);}else{layers=layers.concat(kanu,skating,bike,velo,wander,bahn,orte,ubernacht,einkaufen,sehen,optional);layersTooltips=layersTooltips.concat(wander,velo,bike,skating,kanu,bahn,orte,ubernacht,einkaufen,sehen,optional);}
return new OpenLayers.Layer.WMS("veloland",url,{format:OpenLayers.Util.alphaHack()?'image/gif':'image/png',layers:layers},{isBaseLayer:false,visibility:visibility,buffer:0,gutter:gutter});},getLayersTooltips:function(){return layersTooltips;},getLayerHighlight:function(){if(layerHighlight==null){var velo=['VelolandRoutenLokal_highlight','VelolandEtappenLokal_highlight','VelolandRoutenRegional_highlight','VelolandEtappenRegional_highlight','VelolandEtappenNational_highlight','VelolandRoutenNational_highlight','VelolandService_highlight','VelolandEbikestation_highlight','VelolandMiet_highlight'];var wander=['WanderlandRoutenLokal_highlight','WanderlandEtappenLokal_highlight','WanderlandRoutenNational_highlight','WanderlandRoutenRegional_highlight','WanderlandEtappenNational_highlight','WanderlandEtappenRegional_highlight'];var bike=['MtblandRoutenLokal_highlight','MtblandEtappenLokal_highlight','MtblandRoutenNational_highlight','MtblandRoutenRegional_highlight','MtblandEtappenNational_highlight','MtblandEtappenRegional_highlight','MtblandMiet_highlight','MtblandService_highlight'];var skating=['SkatinglandRoutenLokal_highlight','SkatinglandEtappenLokal_highlight','SkatinglandRoutenNational_highlight','SkatinglandRoutenRegional_highlight','SkatinglandEtappenNational_highlight','SkatinglandEtappenRegional_highlight'];var kanu=['KanulandRoutenRegional_highlight','KanulandEtappenRegional_highlight','KanulandEtappenNational_highlight','KanulandRoutenNational_highlight','KanulandRafting_highlight','KanulandClub_highlight'];var bahn=['OffentlicherBahn_highlight','OffentlicherBus_highlight','OffentlicherTramBus_highlight','OffentlicherSchiff_highlight','OffentlicherSeilbahn_highlight','OffentlicherStandseilbahn_highlight'];var orte=['Orte_highlight'];var ubernacht=['PointsHotel_highlight','PointsBedBreak_highlight','PointsJugen_highlight','PointsBackpacker_highlight','PointsGruppen_highlight','PointsUbernachten_highlight','PointsBauernhof_highlight','PointsFerien_highlight','PointsCamping_highlight','PointsBerghuette_highlight'];var einkaufen=['Migros_highlight'];var sehen=['Natur_highlight','Kultur_highlight','Erlebnisse_highlight'];var optional=['Kantone_highlight','Gemeinden_highlight'];var layers=[];if(window.veloland.land=='velo'){layers=layers.concat(kanu,skating,bike,wander,velo,bahn,orte,ubernacht,einkaufen,sehen,optional);}else if(window.veloland.land=='wander'){layers=layers.concat(kanu,skating,bike,velo,wander,bahn,orte,ubernacht,einkaufen,sehen,optional);}else if(window.veloland.land=='mtb'){layers=layers.concat(kanu,skating,wander,velo,bike,bahn,orte,ubernacht,einkaufen,sehen,optional);}else if(window.veloland.land=='skating'){layers=layers.concat(kanu,bike,wander,velo,skating,bahn,orte,ubernacht,einkaufen,sehen,optional);}else if(window.veloland.land=='kanu'){layers=layers.concat(skating,bike,wander,velo,kanu,bahn,orte,ubernacht,einkaufen,sehen,optional);}else{layers=layers.concat(kanu,skating,bike,wander,velo,bahn,orte,ubernacht,einkaufen,sehen,optional);}
layerHighlight=new OpenLayers.Layer.WMS("highlight",veloland.config.mapserverUrl,{format:OpenLayers.Util.alphaHack()?'image/gif':'image/png',layers:layers},{isBaseLayer:false,visibility:true,buffer:0,singleTile:true,ratio:2.0});this.updateLayerHighlight();}
return layerHighlight;},updateLayerHighlight:function(){for(param in layerHighlight.params){if(param.substr(0,6)=='LAYER_'){delete layerHighlight.params[param];}}
for(var i=0;i<markedRoutes.length;i++){ids='';for(var j=0;j<markedRoutes[i].ids.length;j++){if(ids!=''){ids+='|';}
ids+='^'+markedRoutes[i].ids[j]+'$';}
if(ids!=''){layerHighlight.params['LAYER_'+markedRoutes[i].layer.toUpperCase()]=ids;}}
layerHighlight.params['EXTRA_LINE']='OFF';},getOlOverviewMapLayer:function(){return olOverviewMapLayer;},addHighlightId:function(layer,id){var route=null;for(var i=0;i<markedRoutes.length;i++){if(markedRoutes[i].layer==layer){route=markedRoutes[i];}}
if(route==null){route={layer:layer,ids:[]};markedRoutes=markedRoutes.concat(route);}
var found=false;for(var i=0;i<route.ids.length;i++){if(route.ids[i]==id){found=true;route.ids.splice(i,1);break;}}
if(!found){route.ids=route.ids.concat(id);}
return found;},highlightObjects:function(layers,ids){if(!(layers instanceof Array)){layers=[layers];}
for(var j=0,k=layers.length;j<k;j++){for(var i=0,n=ids.length;i<n;i++){veloland.layertree.addHighlightId(layers[j],ids[i]);}}
veloland.map.map.removeLayer(veloland.layertree.getLayerHighlight());veloland.layertree.updateLayerHighlight();veloland.map.map.addLayer(veloland.layertree.getLayerHighlight());},recenterOnObjects:function(layer,ids){var mask=new Ext.LoadMask(Ext.get('map'),{msg:OpenLayers.i18n("Please wait...")});mask.show();OpenLayers.Request.GET({url:'query/bbox',params:{layers:layer,ids:ids},success:function(response){var f=new OpenLayers.Format.JSON();var bbox=f.read(response.responseText);var bounds=new OpenLayers.Bounds(bbox[0],bbox[1],bbox[2],bbox[3]);if(bounds.getWidth()&&bounds.getHeight()){veloland.map.map.zoomToExtent(bounds);}else{var center=bounds.getCenterLonLat();if(center.lat&&center.lon){var zoom=7;if(layer=='OffentlicherBahn'){zoom=8;}
veloland.map.map.setCenter(center,zoom);}}
mask.hide();}});},markRoute:function(layer,id){if(!veloland.layertree.addHighlightId(layer,id)){$('label_'+layer+'_'+id).innerHTML=OpenLayers.i18n('Route unmarkieren');}else{$('label_'+layer+'_'+id).innerHTML=OpenLayers.i18n('Route markieren');}
veloland.map.map.removeLayer(veloland.layertree.getLayerHighlight());veloland.layertree.updateLayerHighlight();veloland.map.map.addLayer(veloland.layertree.getLayerHighlight());},updateMarkedLabels:function(){for(var i=0;i<markedRoutes.length;i++){for(var j=0;j<markedRoutes[i].ids.length;j++){var id='label_'+markedRoutes[i].layer+'_'+markedRoutes[i].ids[j];if($(id)!=null){$(id).innerHTML=OpenLayers.i18n('Route unmarkieren');}}}},getMarkedRoutes:function(){return markedRoutes;},getPrintOverrides:function(){return{"veloland":{format:"image/png"},"highlight":{format:"image/png"},"swissoutline":{resolutions:veloland.config.serverResolutions,format:'image/png'},"kantone":{resolutions:veloland.config.serverResolutions},"gemeinde":{resolutions:veloland.config.serverResolutions},"karte":{resolutions:veloland.config.serverResolutions},"luftbild":{resolutions:veloland.config.serverResolutions}};},addVelolandLayerLink:function(id){var layerlink='<div id="info_'+id+'" class="layerlink" onclick="veloland.layertree.openlink(this)"></div>';return layerlink;},openlink:function(el){var infos=this.getInfoId(el.id);var externalinfoUrl='http://www.'+infos.baseUrl+'.ch/'+OpenLayers.Lang.code+'/page.cfm/'+infos.pageId;var win=new Ext.Window({height:300,width:610,modal:true,title:'',html:'<iframe id="moreinfo" src="'+externalinfoUrl+'"></iframe>'});win.show();return win;},getInfoId:function(infoid){var infoIds={'info_wander_routen':'327673','info_wander_routen_national':'327674','info_wander_routen_regional':'327675','info_wander_routen_lokal':'338234','info_wander_etappen':'327096','info_wander_etappen_national':'329057','info_wander_etappen_regional':'329058','info_wander_etappen_lokal':'338234','info_wander_wanderwegnetz':'329059','info_wander_angebote':'327676','info_velo_routen':'327673','info_velo_routen_national':'327674','info_velo_routen_regional':'327675','info_velo_routen_lokal':'338234','info_velo_etappen':'327096','info_velo_etappen_national':'329057','info_velo_etappen_regional':'329058','info_velo_etappen_lokal':'338234','info_velo_angebote':'327676','info_velo_mietvelo':'329061','info_velo_service':'329062','info_velo_ebikestation':'340392','info_bike_routen':'327673','info_bike_routen_national':'327674','info_bike_routen_regional':'327675','info_bike_routen_lokal':'338234','info_bike_etappen':'327096','info_bike_etappen_national':'329057','info_bike_etappen_regional':'329058','info_bike_etappen_lokal':'338234','info_bike_angebote':'327676','info_bike_mietbike':'329061','info_bike_service':'329062','info_skating_routen':'327673','info_skating_routen_national':'327674','info_skating_routen_regional':'327675','info_skating_routen_lokal':'338234','info_skating_etappen':'327096','info_skating_etappen_national':'329057','info_skating_etappen_regional':'329058','info_skating_etappen_lokal':'338234','info_skating_angebote':'327676','info_kanu_routen':'327673','info_kanu_routen_national':'327674','info_kanu_routen_regional':'327675','info_kanu_etappen':'327096','info_kanu_etappen_national':'329057','info_kanu_etappen_regional':'329058','info_kanu_rafting':'327712','info_kanu_club':'329063','info_kanu_angebote':'329064','info_bahn_haltestellen':'329065','info_bahn_empfehlungen':'327688','info_orte':'327685','info_ubernacht':'329155','info_sehen_natur':'329156','info_sehen_kultur':'329157','info_sehen_erlebnisse':'339100'};var pageId='';if(typeof(infoIds[infoid])!='undefined'){pageId=infoIds[infoid];}
var unds=infoid.indexOf('_',6);var land=infoid.substring(5,unds>0?unds:infoid.length);var baseUrl='';switch(land){case'bike':baseUrl='mountainbikeland';break;case'bahn':case'orte':case'sehen':case'ubernacht':baseUrl='wanderland';break;default:baseUrl=land+'land';}
return{'pageId':pageId,'baseUrl':baseUrl};}};}();function refreshOpacity(percent){var oldPercent=0;var luftbildLayers=veloland.map.map.getLayersByName('luftbild');var velolandLayers=veloland.map.map.getLayersByName('veloland');var highlightLayers=veloland.map.map.getLayersByName('highlight');if(luftbildLayers.length==1){var opacity=luftbildLayers[0].opacity;if(opacity==null){oldPercent=100;}else{oldPercent=opacity*100;}}
if((oldPercent<100&&percent==100)||(oldPercent>0&&percent==0)||(oldPercent==100&&percent<100)||(oldPercent==0&&percent>0)){if(percent==0){veloland.map.map.removeLayer(veloland.layertree.getLayerLuftbild());if(oldPercent==100){veloland.map.map.addLayer(veloland.layertree.getLayerKarte());veloland.map.map.setLayerIndex(veloland.layertree.getLayerKarte(),1);}
veloland.map.map.setLayerIndex(velolandLayers[0],2);veloland.map.map.setLayerIndex(highlightLayers[0],3);}else if(percent==100){veloland.map.map.removeLayer(veloland.layertree.getLayerKarte());if(oldPercent==0){veloland.map.map.addLayer(veloland.layertree.getLayerLuftbild());veloland.map.map.setLayerIndex(veloland.layertree.getLayerLuftbild(),1);}
veloland.map.map.setLayerIndex(velolandLayers[0],2);veloland.map.map.setLayerIndex(highlightLayers[0],3);veloland.map.map.layers[1].setOpacity(1.0);}else{if(oldPercent==0){veloland.map.map.addLayer(veloland.layertree.getLayerLuftbild());}else if(oldPercent==100){veloland.map.map.addLayer(veloland.layertree.getLayerKarte());}
veloland.map.map.setLayerIndex(veloland.layertree.getLayerKarte(),1);veloland.map.map.setLayerIndex(veloland.layertree.getLayerLuftbild(),2);veloland.map.map.setLayerIndex(velolandLayers[0],3);veloland.map.map.setLayerIndex(highlightLayers[0],4);veloland.map.map.layers[2].setOpacity(percent/100);}}else if(luftbildLayers.length==1){luftbildLayers[0].setOpacity(percent/100);}}
function positionMeasureValueContainer(){var mv=Ext.get('measureValueContainer');var y=Ext.get('toolbar').getBottom();var x=Ext.get('measureTrigger').getLeft();mv.moveTo(x,y);}
function handleMeasurements(event){var geometry=event.geometry;var units=event.units;var order=event.order;var measure=event.measure;var element=document.getElementById('measureOutput');var out='';if(order==1){out+=measure.toFixed(3)+' '+units;}else{out+=measure.toFixed(3)+' '+units+'<sup>2</'+'sup>';}
element.innerHTML=out;}
function toggleControl(controlId){for(key in veloland.map.map.measureControls){var control=veloland.map.map.measureControls[key];if(controlId==key){control.activate();}else{control.deactivate();}}}
veloland.VelolandSimpleForm=Ext.extend(mapfish.widgets.print.SimpleForm,{fillComponent:function(){if(this.map.isSlowUp){this.config.layouts=[this.config.layouts[1]];}else{this.config.layouts=[this.config.layouts[0]];}
veloland.VelolandSimpleForm.superclass.fillComponent.call(this);}});window.veloland.layout=function(){if(window.veloland===undefined){OpenLayers.Console.error('veloland.js must be loaded before layout.js');return;}
var toolbar={};var initToolbar=function(){new Ext.Slider({renderTo:'slider_new',width:70,value:0,increment:20,minValue:0,maxValue:100,bgImage:'slider_bg.gif',sliderImage:'slider_horiz.gif',listeners:{change:function(slider,slidervalue){refreshOpacity(slidervalue);}}});};var initTreeLayers=function(){mapfish.widgets.LayerTreeEventModel.prototype.onRadioClick=function(e,node){if(!node.ui.onRadioChange){OpenLayers.Console.error("Invalid TreeNodeUI Class, no "+"onRadioChange is available");return;}
node.ui.onRadioChange(e);node.expand();};var tree=new mapfish.widgets.LayerTree({map:veloland.map.map,el:'treeLayers',model:veloland.layertree.getModelLayers(),singleExpand:true,maxNodes:32});tree.on('expandnode',function(e){if(e.attributes.autoExpandChild){e.expand(true);}});tree.on('toomanynodes',function(e){var win=new Ext.Window({height:126,width:400,modal:true,title:'',html:'<div class="messagePopupText">'+OpenLayers.i18n('You selected too many layers')+'</div>',cls:'messagePopup'});win.show();});tree.on('click',function(e){if(e.parentNode.id=='source'){e.toggle();}});tree.render();var skatingNode=tree.getNodeById('skating');tree.setNodeChecked(skatingNode,false,false);skatingNode.expand();var land=window.veloland.land;if(land!='skating'){skatingNode.collapse();if(land!='schweizmobil'){tree.getNodeById(land).expand();}}
return tree;};var resultTpl=new Ext.XTemplate('<tpl for=".">','<div class="x-combo-list-item">','<h3><span>{name}</span></h3>',' ({kanton}) - {gemname}','</div>','</tpl>');var resultTplCommune=new Ext.XTemplate('<tpl for=".">','<div class="x-combo-list-item">','<h3><span>{gemname}</span></h3>','</div>','</tpl>');var initSearchPanel=function(){var store=new Ext.data.JsonStore({proxy:new Ext.data.ScriptTagProxy({url:"http://map.geo.admin.ch/swisssearch",method:'GET'}),baseParams:{lang:OpenLayers.Lang.getCode(),ref:'geoadmin'},root:'results',fields:['label','listlabel','service','bbox','objectorig']});var tpl=new Ext.XTemplate('<tpl for="."><div class="x-combo-list-item {service}">','{listlabel}','</div></tpl>');var searchConfig={renderTo:'searchContainer',store:store,tpl:tpl,hideTrigger:true,minChars:2,queryDelay:50,emptyText:OpenLayers.i18n('Geo search...'),loadingText:OpenLayers.i18n('loadingText'),displayField:'label',cls:'cbSearchCls',ctCls:'cbSearchContainerCls',width:179};var search=new Ext.form.ComboBox(searchConfig);search.on('beforequery',function(queryEvent){var query=queryEvent.query;var coord_re=/([\d\.']+)[\s,]+([\d\.']+)/;var match=query.match(coord_re);if(match){var left=parseFloat(match[1].replace("'",""));var right=parseFloat(match[2].replace("'",""));var position=new OpenLayers.LonLat(left>right?left:right,right<left?right:left);var valid=false;if(this.map.maxExtent.containsLonLat(position)){valid=true;}else{position=new OpenLayers.LonLat(left<right?left:right,right>left?right:left);position.transform(new OpenLayers.Projection("EPSG:4326"),this.map.getProjectionObject());if(this.map.maxExtent.containsLonLat(position)){valid=true;}}
if(valid){this.map.setCenter(position,5);return false;}}
return true;},this.veloland);search.on('select',function(combo,record,index){var bbox=record.get('bbox');var service=record.get('service');if(bbox){if(service=='swissnames'){var objectorig=record.get('objectorig');if(objectorig=='LK500'){this.map.setCenter(OpenLayers.Bounds.fromArray(bbox).getCenterLonLat(),4);}else if(objectorig=='LK200'){this.map.setCenter(OpenLayers.Bounds.fromArray(bbox).getCenterLonLat(),5);}else if(objectorig=='LK100'){this.map.setCenter(OpenLayers.Bounds.fromArray(bbox).getCenterLonLat(),6);}else if(objectorig=='LK50'){this.map.setCenter(OpenLayers.Bounds.fromArray(bbox).getCenterLonLat(),7);}else if(objectorig=='LK25'){this.map.setCenter(OpenLayers.Bounds.fromArray(bbox).getCenterLonLat(),8);}else{this.map.zoomToExtent(OpenLayers.Bounds.fromArray(bbox));}}else{this.map.zoomToExtent(OpenLayers.Bounds.fromArray(bbox));}}},veloland.map);return search;};var initPrintPanel=function(treeLayers){var ct=new veloland.VelolandSimpleForm({renderTo:'printContainer',height:80,width:200,configUrl:veloland.config.printUrl+'/info.json',overrides:veloland.layertree.getPrintOverrides(),layerTree:treeLayers,map:veloland.map.map,columns:[],formConfig:{labelAlign:'top',defaults:{width:160,listWidth:160},items:[{xtype:'hidden',name:'lang'+OpenLayers.Lang.getCode(),value:true}]},serviceParams:{locale:'fr_CH'},wantResetButton:false})
return ct;};var initPrintPanelTrigger=function(){var el=Ext.get('printTriggerContainer');el.addListener('click',function(){var lt=document.getElementById('printContainer');var ltt=document.getElementById('printTriggerTxt');var lti=$('printTriggerImg');var base='treeLayersTriggerImg';if(lt.style.display=='none'){lt.style.display='block';veloland.layout.printPanel.enable();ltt.innerHTML=OpenLayers.i18n('Druckfeld schliessen');lti.className=base+'Minus';veloland.layout.printPanel.doLayout();}else{lt.style.display='none';veloland.layout.printPanel.disable();ltt.innerHTML=OpenLayers.i18n('Drucken');lti.className=base+'Plus';}});};var initLandColors=function(){Ext.getBody().addClass(veloland.land);}
var initMeasureTrigger=function(){var el=Ext.get('measureTrigger');el.on('click',function(){var mv=Ext.get('measureValueContainer');if(mv.dom.style.display=='none'){mv.dom.style.display='block';toggleControl('line');}else{mv.dom.style.display='none';toggleControl(false);}
positionMeasureValueContainer();});var el=Ext.get('measureValueTrigger');el.on('click',function(){var mv=Ext.get('measureValueContainer');mv.dom.style.display='none';toggleControl(false);});}
return{treeLayers:{},treeBackground:{},mapComponent:{},printPanel:{},hideLayers:function(){var root=this.treeLayers.getRootNode();for(var i=0;i<root.childNodes.length;i++){if(root.childNodes[i].id=='optional'){root.childNodes[i].getUI().hide();}}},init:function(){this.toolbar=initToolbar();this.treeLayers=initTreeLayers();veloland.map.map.events.triggerEvent('addlayertree');this.printPanel=initPrintPanel(this.treeLayers);initPrintPanelTrigger();initLandColors();initSearchPanel();initMeasureTrigger();var fixToolbar=function(){if(Ext.get('toolbar').getWidth()<800){Ext.select('.toolbar_spacer').setWidth('0.5%');}else{Ext.select('.toolbar_spacer').setWidth(28);}};fixToolbar();Ext.EventManager.onWindowResize(fixToolbar);},openlink:function(el){switch(el.id){case'legend':var pageId;if(veloland.map.map.isSlowUp){pageId=338485;}else{pageId=338484;}}
var land=veloland.land;switch(land){case'schweizmobil':baseUrl='schweizmobil';break;case'bike':case'mtb':baseUrl='mountainbikeland';break;case'bahn':case'orte':case'sehen':case'ubernacht':baseUrl='wanderland';break;default:baseUrl=land+'land';}
var externalinfoUrl='http://www.'+baseUrl+'.ch/'+OpenLayers.Lang.code+'/page.cfm/'+pageId;var win=new Ext.Window({height:600,width:610,modal:true,title:'',html:'<iframe id="moreinfo" src="'+externalinfoUrl+'"></iframe>'});win.show();return win;}};}();VelolandPopup=OpenLayers.Class(OpenLayers.Popup.FramedCloud,{setContentHTML:function(contentHTML){OpenLayers.Popup.FramedCloud.prototype.setContentHTML.apply(this,arguments);this.addCloseBox();},addCloseBox:function(){this.velolandCloseDiv=OpenLayers.Util.createDiv(this.id+"_close",null,new OpenLayers.Size(14,14));this.velolandCloseDiv.className="olVelolandPopupCloseBox";this.velolandCloseDiv.style.right="8px";this.velolandCloseDiv.style.top="5px";this.contentDiv.appendChild(this.velolandCloseDiv);var closePopup=function(e){this.hide();OpenLayers.Event.stop(e);};OpenLayers.Event.observe(this.velolandCloseDiv,"click",OpenLayers.Function.bindAsEventListener(closePopup,this));},destroy:function(){OpenLayers.Event.stopObservingElement(this.velolandCloseDiv);this.groupDiv.removeChild(this.velolandCloseDiv);OpenLayers.Popup.FramedCloud.prototype.destroy.apply(this,arguments);},registerEvents:function(){this.events=new OpenLayers.Events(this,this.contentDiv,null,true);this.events.on({"mousedown":this.onmousedown,"mousemove":this.onmousemove,"mouseup":this.onmouseup,"click":this.onclick,"mouseout":this.onmouseout,"dblclick":this.ondblclick,scope:this});},onmousemove:function(evt){OpenLayers.Event.stop(evt,true);Ext.getBody().setStyle('cursor','auto');}});window.veloland.tooltips=function(){var popup=null;var popupContent=null;function displayPrint(){var printWindow=window.open('print.html','tooltipsPrint','width=500, height=400, toolbar=no, location=no,'
+'directories=no, status=no, menubar=no, scrollbars=yes,'
+'copyhistory=no, resizable=no');}
function displayPopup(response){if(response.features==null){if(popup!=null){popup.hide();}
return;}
popup=new VelolandPopup(null,this.popupLonLat,null,response.features,null,false);veloland.map.map.addPopup(popup,true);$('tooltip_body').style.height=(popup.size.h-73)+"px";veloland.layertree.updateMarkedLabels();OpenLayers.Event.observe(popup,'mousemove',OpenLayers.Function.bindAsEventListener(function(e){OpenLayers.Event.stop(e,true);},this));popupContent=response.features;}
function changePointer(response){if(response.features==null){Ext.getBody().setStyle('cursor','auto');return;}
Ext.getBody().setStyle('cursor','pointer');}
var mf_protocol=new mapfish.Protocol.MapFish({url:"query",format:new OpenLayers.Format({read:function(data){return data;}})});var mf_protocol_test=new mapfish.Protocol.MapFish({url:"query",format:new OpenLayers.Format({read:function(data){return data;}})});var event_protocol=new mapfish.Protocol.TriggerEventDecorator({protocol:mf_protocol});var event_protocol_test=new mapfish.Protocol.TriggerEventDecorator({protocol:mf_protocol_test});var filter_protocol=new mapfish.Protocol.MergeFilterDecorator({protocol:event_protocol});filter_protocol.register({getFilter:function(){var velolandLayer=veloland.map.map.getLayersByName('veloland')[0];if(!velolandLayer.visibility){return{layers:''};}else{var layers=[],layer,layer2;var layersTooltips=veloland.layertree.getLayersTooltips();for(var i=0,len=layersTooltips.length;i<len;i++){layer=layersTooltips[i];for(var j=0,len2=velolandLayer.params.LAYERS.length;j<len2;j++){layer2=velolandLayer.params.LAYERS[j];if(layer==layer2){layers.push(layer);break;}}}
return{layers:layers,lang:selected_lang};}}});var filter_protocol_test=new mapfish.Protocol.MergeFilterDecorator({protocol:event_protocol_test});filter_protocol_test.register({getFilter:function(){var velolandLayer=veloland.map.map.getLayersByName('veloland')[0];if(!velolandLayer.visibility){return{layers:''};}else{return{layers:velolandLayer.params.LAYERS,test:true};}}});var searcher=new mapfish.Searcher.Map({mode:mapfish.Searcher.Map.CLICK,searchTolerance:10,protocol:filter_protocol,filter:function(){var tree=veloland.layout.treeLayers;var checked=false;tree.getRootNode().cascade(function(node){if(node.attributes.checked!=undefined&&(!node.attributes.radio&&node.attributes.checked)){checked=true;return false;}});return checked;}});var searcher_test=new mapfish.Searcher.Map({mode:mapfish.Searcher.Map.HOVER,searchTolerance:10,delay:50,protocol:filter_protocol_test,filter:function(){var tree=veloland.layout.treeLayers;var checked=false;tree.getRootNode().cascade(function(node){if(node.attributes.checked!=undefined&&(!node.attributes.radio&&node.attributes.checked)){checked=true;return false;}});return checked;}});event_protocol.events.on({crudfinished:displayPopup,scope:searcher});event_protocol_test.events.on({crudfinished:changePointer,scope:searcher_test});return{init:function(){veloland.map.map.addControl(searcher);searcher.activate();veloland.map.map.addControl(searcher_test);searcher_test.activate();},hideTooltip:function(){if(popup!=null){popup.hide();}},showPrint:function(){displayPrint();},getPrintContent:function(){return popupContent;}}}();function prepareForCff(form,id)
{var von=form['von'+id];var nach=form['nach'+id];var s=form['s'+id];var z=form['z'+id];s.value=convertSpecialChars(von.value);z.value=convertSpecialChars(nach.value);return true;}
function convertSpecialChars(str){str=str.replace(/[àáâä]/gi,"a");str=str.replace(/[èéêë]/gi,"e");str=str.replace(/[ìíîï]/gi,"i");str=str.replace(/[òóôö]/gi,"o");str=str.replace(/[ùúûü]/gi,"u");str=str.replace(/ç/gi,'c');return str;}
Ext.form.TriggerField.override({afterRender:function(){Ext.form.TriggerField.superclass.afterRender.call(this);var y;if(Ext.isIE&&!this.hideTrigger&&this.el.getY()!=(y=this.trigger.getY())){this.el.position();this.el.setY(y);}}});Ext.namespace('mapfish.widgets','mapfish.widgets.recenter');mapfish.widgets.recenter.Ws=function(config){Ext.apply(this,config);mapfish.widgets.recenter.Ws.superclass.constructor.call(this);};Ext.extend(mapfish.widgets.recenter.Ws,mapfish.widgets.recenter.Base,{wsRecenterstore:null,wsRecenterServicestore:null,wsRecenterCurrentService:null,errorMsg:OpenLayers.i18n('mf.recenter.ws.error'),currentWsRecenterCombo:null,addItems:function(){this.removeAll();this.initWsRecenterService();this.initWsRecenterServicestore();this.initWsRecenterstore();if(this.wsRecenterServices.length>1){var wsRecenterServices=new Ext.form.ComboBox({fieldLabel:OpenLayers.i18n('mf.recenter.ws.service'),name:'wsRecenterServices',value:'',displayField:'label',valueField:'id',store:this.wsRecenterServicestore,mode:'local',listeners:{select:function(combo,record,index){this.onWsRecenterServicesSelect(combo);},scope:this},triggerAction:'all',forceSelection:true,editable:false});wsRecenterServices.setValue(this.wsRecenterCurrentService.id);this.add(wsRecenterServices);}
var resultTpl=new Ext.XTemplate('<tpl for=".">','<div class="x-combo-list-item">','<h3><span>{name}</span></h3>','</div>','</tpl>');this.currentWsRecenterCombo={xtype:'combo',fieldLabel:OpenLayers.i18n(this.wsRecenterCurrentService.label),name:this.wsRecenterCurrentService.name||'wsRecenter',value:'',tpl:this.wsRecenterCurrentService.tpl||resultTpl,displayField:this.wsRecenterCurrentService.displayField||'name',mode:'remote',minChars:2,typeAhead:true,valueField:'id',store:this.wsRecenterstore,listeners:{select:function(combo,record,index){this.onWsRecenterSelect(combo);},specialkey:function(combo,event){if(event.getKey()==event.ENTER){this.onWsRecenterSelect(combo);}},scope:this},forceSelection:true,hideTrigger:true};this.add(this.currentWsRecenterCombo);if(this.scales){this.addScaleCombo('Ws');}},onWsRecenterServicesSelect:function(combo){this.setWsRecenterService(combo.value);},onWsRecenterSelect:function(combo){if(combo.value.length==0){return;}
var scaleField=this.wsRecenterCurrentService.scaleField||null;var url=this.wsRecenterCurrentService.url;url+=this.wsRecenterCurrentService.urlSuffixGeo+'?';url+=this.wsRecenterCurrentService.paramIdGeo+'='+combo.value;url+='&ref='+this.wsRecenterCurrentService.ref;url+=(scaleField)?'&scalefield='+(scaleField):'';OpenLayers.Request.GET({url:url,success:function(response){var values=this.getForm().getValues();var zoom;var f=new OpenLayers.Format.GeoJSON();var feature=f.read(response.responseText)[0];if(!feature){return;}
if(feature.geometry.CLASS_NAME=="OpenLayers.Geometry.Polygon"&&!!feature.geometry.getBounds()){this.recenterOnBbox(feature.geometry.getBounds());}else if(feature.geometry.CLASS_NAME=="OpenLayers.Geometry.Point"&&!!feature.geometry.x&&!!feature.geometry.y){if(this.scales&&values.scaleValue){resolution=OpenLayers.Util.getResolutionFromScale(values.scaleValue,this.map.units);zoom=this.map.getZoomForResolution(resolution);}
if(scaleField){var scale=this.formateScale(feature.attributes[scaleField]);zoom=this.getZoomByName(scale);}
this.recenterOnCoords(feature.geometry.x,feature.geometry.y,zoom);}},failure:function(response){var msg=this.errorMsg+"<br /><br />"+url+"<br /><br />";msg+=response.status+"<br />"+response.statusText;this.showError(msg);},scope:this});},initWsRecenterService:function(){for(var i=0,len=this.wsRecenterServices.length;i<len;i++){if(this.wsRecenterServices[i].isDefault){this.wsRecenterCurrentService=this.wsRecenterServices[i];}}},setWsRecenterService:function(serviceId){for(var i=0;i<this.wsRecenterServices.length;i++){if(this.wsRecenterServices[i].id==serviceId){this.wsRecenterCurrentService=this.wsRecenterServices[i];}}
if(this.currentWsRecenterCombo.view){this.currentWsRecenterCombo.view.tpl=this.wsRecenterCurrentService.tpl||resultTpl;this.currentWsRecenterCombo.view.refresh();}else{this.currentWsRecenterCombo.tpl=this.wsRecenterCurrentService.tpl||resultTpl;}
var url=this.wsRecenterCurrentService.url;url+=this.wsRecenterCurrentService.urlSuffixList+'?';url+=this.wsRecenterCurrentService.paramList;if(this.wsRecenterCurrentService.ref)
url+='&ref='+this.wsRecenterCurrentService.ref;if(this.wsRecenterCurrentService.scaleField)
url+='&scalefield='+this.wsRecenterCurrentService.scaleField;this.wsRecenterstore.proxy.conn.url=url
this.wsRecenterstore.load();var combo=this.currentWsRecenterCombo.getEl();var newLabel=OpenLayers.i18n(this.wsRecenterCurrentService.label);combo.up('.x-form-item').down('.x-form-item-label').update(newLabel);},initWsRecenterstore:function(){var ref=(this.wsRecenterCurrentService.ref)?'&ref='+
this.wsRecenterCurrentService.ref:'';var scaleField=(this.wsRecenterCurrentService.scaleField)?'&scalefield='+
this.wsRecenterCurrentService.scaleField:'';this.wsRecenterstore=new Ext.data.JsonStore({url:this.wsRecenterCurrentService.url
+this.wsRecenterCurrentService.urlSuffixList
+'?'+this.wsRecenterCurrentService.paramList
+ref
+scaleField,root:"results",id:"id",fields:this.wsRecenterCurrentService.listFields,listeners:{loadexception:function(proxy,options,response){if(response.status<200||response.status>=300){var msg=this.errorMsg+"<br /><br />";msg+=this.wsRecenterstore.proxy.conn.url+"<br /><br />"
msg+=response.status+"<br />"+response.statusText;this.showError(msg);}},scope:this}});},initWsRecenterServicestore:function(){var myData=[];for(var i=0;i<this.wsRecenterServices.length;i++){myData[i]=[this.wsRecenterServices[i].id,this.wsRecenterServices[i].label];}
this.wsRecenterServicestore=new Ext.data.SimpleStore({fields:['id','label'],data:myData});},wsDomain:function(){var str=this.wsRecenterUrl;var s=str.indexOf('//');var end=str.indexOf('/',s+2);var d=str.substring(s+2,end);return d;}});Ext.reg('wsrecenter',mapfish.widgets.recenter.Ws);mapfish.widgets.recenter.Ws.override({addItems:function(){this.removeAll();this.initWsRecenterService();this.initWsRecenterServicestore();this.initWsRecenterstore();if(this.wsRecenterServices.length>1){var wsRecenterServices=new Ext.form.ComboBox({fieldLabel:OpenLayers.i18n('mf.recenter.ws.service'),name:'wsRecenterServices',value:'',displayField:'label',valueField:'id',store:this.wsRecenterServicestore,mode:'local',listeners:{select:function(combo,record,index){this.onWsRecenterServicesSelect(combo);},scope:this},triggerAction:'all',forceSelection:true,editable:false});wsRecenterServices.setValue(this.wsRecenterCurrentService.id);this.add(wsRecenterServices);}
var resultTpl=new Ext.XTemplate('<tpl for=".">','<div class="x-combo-list-item">','<h3><span>{name}</span></h3>','</div>','</tpl>');this.currentWsRecenterCombo={xtype:'combo',name:this.wsRecenterCurrentService.name||'wsRecenter',hideLabel:true,value:OpenLayers.i18n('Search'),tpl:this.wsRecenterCurrentService.tpl||resultTpl,displayField:this.wsRecenterCurrentService.displayField||'name',mode:'remote',minChars:2,typeAhead:true,valueField:'id',store:this.wsRecenterstore,listeners:{select:function(combo,record,index){this.onWsRecenterSelect(combo);},specialkey:function(combo,event){if(event.getKey()==event.ENTER){this.onWsRecenterSelect(combo);}},focus:function(combo){if(combo.getValue()==OpenLayers.i18n('Search')){combo.setValue('');}},scope:this},forceSelection:true,hideTrigger:true};this.add(this.currentWsRecenterCombo);if(this.scales){this.addScaleCombo('Ws');}}});function getObj(objID)
{if(document.getElementById){return document.getElementById(objID);}
else if(document.all){return document.all[objID];}
else if(document.layers){return document.layers[objID];}}
function checkClick(e){e?evt=e:evt=event;CSE=evt.target?evt.target:evt.srcElement;if(getObj('fc'))
if(!isChild(CSE,getObj('fc'))){getObj('fc').style.display='none';getObj('fc').style.zIndex='1';}}
function isChild(s,d){while(s){if(s==d)
return true;s=s.parentNode;}
return false;}
function Left(obj)
{var curleft=0;if(obj.offsetParent)
{while(obj.offsetParent)
{curleft+=obj.offsetLeft
obj=obj.offsetParent;}}
else if(obj.x)
curleft+=obj.x;return curleft;}
function Top(obj)
{var curtop=0;if(obj.offsetParent)
{while(obj.offsetParent)
{curtop+=obj.offsetTop
obj=obj.offsetParent;}}
else if(obj.y)
curtop+=obj.y;return curtop;}
document.write('<table id="fc" style="position:absolute;border-collapse:collapse;background:#FFFFFF;border:1px solid #ABABAB;display:none" cellpadding=2>');document.write('<tr><td style="cursor:pointer;background-color:#003399; color:#FFF;" onclick="csubm()"><img alt="<<" src="images/arrowleftmonth.gif"></td><td colspan=5 id="mns" align="center" style="font:bold 13px Arial; color:#FFF; background-color:#003399;"></td><td align="right" style="cursor:pointer; background-color:#003399; color:#FFF;" onclick="caddm()"><img alt=">>" src="images/arrowrightmonth.gif"></td></tr>');document.write('<tr><td align=center style="background:#ABABAB;font:12px Arial">S</td><td align=center style="background:#ABABAB;font:12px Arial">M</td><td align=center style="background:#ABABAB;font:12px Arial">T</td><td align=center style="background:#ABABAB;font:12px Arial">W</td><td align=center style="background:#ABABAB;font:12px Arial">T</td><td align=center style="background:#ABABAB;font:12px Arial">F</td><td align=center style="background:#ABABAB;font:12px Arial">S</td></tr>');for(var kk=1;kk<=6;kk++){document.write('<tr>');for(var tt=1;tt<=7;tt++){num=7*(kk-1)-(-tt);document.write('<td id="v'+num+'" style="width:18px;height:18px">&nbsp;</td>');}
document.write('</tr>');}
document.write('</table>');var now=new Date;var sccm=now.getMonth();var sccy=now.getFullYear();var ccm=now.getMonth();var ccy=now.getFullYear();var updobj;function lcs(ielem){updobj=ielem;$('fc').style.left=Left(ielem)+"px";$('fc').style.top=Top(ielem)-50+"px";$('fc').style.display='';$('fc').style.zIndex="2000";curdt=ielem.value;curdtarr=curdt.split('.');isdt=true;for(var k=0;k<curdtarr.length;k++){if(isNaN(curdtarr[k]))
isdt=false;}
if(isdt&(curdtarr.length==3)){ccm=curdtarr[1]-1;ccy=curdtarr[2];prepcalendar(curdtarr[0],curdtarr[1]-1,curdtarr[2]);}}
function evtTgt(e)
{var el;if(e.target)el=e.target;else if(e.srcElement)el=e.srcElement;if(el.nodeType==3)el=el.parentNode;return el;}
function EvtObj(e){if(!e)e=window.event;return e;}
function cs_over(e){evtTgt(EvtObj(e)).style.background='#FFCC66';}
function cs_out(e){evtTgt(EvtObj(e)).style.background='#FFF';}
function cs_click(e){updobj.value=calvalarr[evtTgt(EvtObj(e)).id.substring(1,evtTgt(EvtObj(e)).id.length)];getObj('fc').style.display='none';getObj('fc').style.zIndex="1";}
var mn=new Array('JAN','FEB','MAR','APR','MAY','JUN','JUL','AUG','SEP','OCT','NOV','DEC');var mnn=new Array('31','28','31','30','31','30','31','31','30','31','30','31');var mnl=new Array('31','29','31','30','31','30','31','31','30','31','30','31');var calvalarr=new Array(42);function f_cps(obj){obj.style.background='#FFF';obj.style.font='10px Arial';obj.style.color='#333333';obj.style.textAlign='center';obj.style.textDecoration='none';obj.style.border='1px solid #333333';obj.style.cursor='pointer';}
function f_cpps(obj){obj.style.background='#FFF';obj.style.font='10px Arial';obj.style.color='#ABABAB';obj.style.textAlign='center';obj.style.textDecoration='line-through';obj.style.border='1px solid #333333';obj.style.cursor='default';}
function f_hds(obj){obj.style.background='red';obj.style.font='bold 10px Arial';obj.style.color='#333333';obj.style.textAlign='center';obj.style.border='1px solid #333333';obj.style.cursor='pointer';}
function prepcalendar(hd,cm,cy){now=new Date();sd=now.getDate();td=new Date();td.setDate(1);td.setFullYear(cy);td.setMonth(cm);cd=td.getDay();getObj('mns').innerHTML=mn[cm]+' '+cy;marr=((cy%4)==0)?mnl:mnn;for(var d=1;d<=42;d++){f_cps(getObj('v'+parseInt(d)));if((d>=(cd-(-1)))&&(d<=cd-(-marr[cm]))){dip=((d-cd<sd)&&(cm==sccm)&&(cy==sccy));htd=((hd!='')&&(d-cd==hd));if(dip)
f_cpps(getObj('v'+parseInt(d)));else if(htd)
f_hds(getObj('v'+parseInt(d)));else
f_cps(getObj('v'+parseInt(d)));getObj('v'+parseInt(d)).onclick=(dip)?null:cs_click;getObj('v'+parseInt(d)).innerHTML=d-cd;calvalarr[d]=''+(d-cd)+'.'+(cm-(-1))+'.'+cy;}
else{getObj('v'+d).innerHTML='&nbsp;';getObj('v'+parseInt(d)).onmouseover=null;getObj('v'+parseInt(d)).onmouseout=null;getObj('v'+parseInt(d)).style.cursor='default';}}}
prepcalendar('',ccm,ccy);function caddm(){marr=((ccy%4)==0)?mnl:mnn;ccm+=1;if(ccm>=12){ccm=0;ccy++;}
cdayf();prepcalendar('',ccm,ccy);}
function csubm(){marr=((ccy%4)==0)?mnl:mnn;ccm-=1;if(ccm<0){ccm=11;ccy--;}
cdayf();prepcalendar('',ccm,ccy);}
function cdayf(){if((ccy>sccy)|((ccy==sccy)&&(ccm>=sccm)))
return;else{ccy=sccy;ccm=sccm;}}
function getDateCff(){var maintenant=new Date();var jour=maintenant.getDate();var mois=(maintenant.getMonth()+1);if(jour.toString().length<2){jour="0"+jour;}
if(mois.toString().length<2){mois="0"+mois;}
var JourMoisAnnee=jour+'.'+mois+'.'+maintenant.getFullYear();return JourMoisAnnee;}
function jourPlus(date){var tabDate=date.split('.');if(tabDate.length==3){var datePlus=new Date(parseInt(tabDate[2],10),parseInt(tabDate[1],10)-1,parseInt(tabDate[0],10)+1,0,0,0);var jour=datePlus.getDate();var mois=(datePlus.getMonth()+1);if(jour.toString().length<2){jour="0"+jour;}
if(mois.toString().length<2){mois="0"+mois;}
return jour+'.'+mois+'.'+datePlus.getFullYear();}
else
{return'';}}
function jourMoin(date){var tabDate=date.split('.');if(tabDate.length==3){var dateMoin=new Date(parseInt(tabDate[2],10),parseInt(tabDate[1],10)-1,parseInt(tabDate[0],10)-1,0,0,0);var jour=dateMoin.getDate();var mois=(dateMoin.getMonth()+1);if(jour.toString().length<2){jour="0"+jour;}
if(mois.toString().length<2){mois="0"+mois;}
return jour+'.'+mois+'.'+dateMoin.getFullYear();}
else
{return'';}}
function getTimeCff(){var maintenant=new Date();var heure=maintenant.getHours();var min=maintenant.getMinutes();if(heure.toString().length<2){heure="0"+heure;}
if(min.toString().length<2){min="0"+min;}
return heure+":"+min;}
function invertNachVon(id){var von=$('von'+id).value;$('von'+id).value=$('nach'+id).value;$('nach'+id).value=von;}