├── img
├── ajax-loader.gif
└── operator
│ ├── AVG.png
│ ├── BVG.png
│ ├── GVH.png
│ ├── KVV.png
│ ├── SSB.png
│ ├── SWU.png
│ ├── VBK.png
│ ├── dvb.png
│ ├── rnv.png
│ ├── CVAG.png
│ ├── EVAG.png
│ ├── FLIX.png
│ ├── RSAG.png
│ ├── db_ag.png
│ ├── vlexx.png
│ ├── AVG@2x.png
│ ├── BOGESTRA.png
│ ├── BVG@2x.png
│ ├── CVAG@2x.png
│ ├── EVAG@2x.png
│ ├── FLIX@2x.png
│ ├── GVH@2x.png
│ ├── KVV@2x.png
│ ├── RSAG@2x.png
│ ├── SSB@2x.png
│ ├── SWU@2x.png
│ ├── VBK@2x.png
│ ├── db_ag2.png
│ ├── db_ag@2x.png
│ ├── dvb@2x.png
│ ├── dvb_fix.png
│ ├── goerlitz.png
│ ├── rnv@2x.png
│ ├── uestra.png
│ ├── unknown.png
│ ├── vlexx@2x.png
│ ├── Uestra@2x.png
│ ├── db_ag2@2x.png
│ ├── dvb_fix@2x.png
│ ├── magdeburg.png
│ ├── unknown@2x.png
│ ├── BOGESTRA@2x.png
│ ├── S_Bahn_Berlin.png
│ ├── goerlitz@2x.png
│ ├── magdeburg@2x.png
│ ├── saarbahn_gmbh.png
│ ├── cottbusverkehr.png
│ ├── hamburghochbahn.png
│ ├── S_Bahn_Berlin@2x.png
│ ├── cottbusverkehr@2x.png
│ ├── hamburghochbahn@2x.png
│ ├── saarbahn_gmbh@2x.png
│ └── icon_vorlage.svg
├── leaflet
├── images
│ ├── layers.png
│ ├── marker-icon.png
│ ├── marker-shadow.png
│ ├── marker-icon@2x.png
│ ├── marker-iconred.png
│ └── marker-iconred@2x.png
├── plugins
│ └── leaflet-hash
│ │ ├── LICENSE.md
│ │ ├── README.md
│ │ └── leaflet-hash.js
├── leaflet.ie.css
└── leaflet.css
├── style.css
├── taginfo.json
├── README.md
├── dresden_auswertung.html
├── js
├── gears_init.js
├── parse_scripts.js
├── icons.js
├── geo.js
├── jquery-ui-1.10.0.custom.min.js
└── jquery.js
├── index.html
└── about.html
/img/ajax-loader.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ubahnverleih/OSMfahrkartenautomaten/master/img/ajax-loader.gif
--------------------------------------------------------------------------------
/img/operator/AVG.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ubahnverleih/OSMfahrkartenautomaten/master/img/operator/AVG.png
--------------------------------------------------------------------------------
/img/operator/BVG.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ubahnverleih/OSMfahrkartenautomaten/master/img/operator/BVG.png
--------------------------------------------------------------------------------
/img/operator/GVH.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ubahnverleih/OSMfahrkartenautomaten/master/img/operator/GVH.png
--------------------------------------------------------------------------------
/img/operator/KVV.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ubahnverleih/OSMfahrkartenautomaten/master/img/operator/KVV.png
--------------------------------------------------------------------------------
/img/operator/SSB.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ubahnverleih/OSMfahrkartenautomaten/master/img/operator/SSB.png
--------------------------------------------------------------------------------
/img/operator/SWU.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ubahnverleih/OSMfahrkartenautomaten/master/img/operator/SWU.png
--------------------------------------------------------------------------------
/img/operator/VBK.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ubahnverleih/OSMfahrkartenautomaten/master/img/operator/VBK.png
--------------------------------------------------------------------------------
/img/operator/dvb.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ubahnverleih/OSMfahrkartenautomaten/master/img/operator/dvb.png
--------------------------------------------------------------------------------
/img/operator/rnv.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ubahnverleih/OSMfahrkartenautomaten/master/img/operator/rnv.png
--------------------------------------------------------------------------------
/img/operator/CVAG.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ubahnverleih/OSMfahrkartenautomaten/master/img/operator/CVAG.png
--------------------------------------------------------------------------------
/img/operator/EVAG.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ubahnverleih/OSMfahrkartenautomaten/master/img/operator/EVAG.png
--------------------------------------------------------------------------------
/img/operator/FLIX.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ubahnverleih/OSMfahrkartenautomaten/master/img/operator/FLIX.png
--------------------------------------------------------------------------------
/img/operator/RSAG.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ubahnverleih/OSMfahrkartenautomaten/master/img/operator/RSAG.png
--------------------------------------------------------------------------------
/img/operator/db_ag.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ubahnverleih/OSMfahrkartenautomaten/master/img/operator/db_ag.png
--------------------------------------------------------------------------------
/img/operator/vlexx.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ubahnverleih/OSMfahrkartenautomaten/master/img/operator/vlexx.png
--------------------------------------------------------------------------------
/img/operator/AVG@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ubahnverleih/OSMfahrkartenautomaten/master/img/operator/AVG@2x.png
--------------------------------------------------------------------------------
/img/operator/BOGESTRA.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ubahnverleih/OSMfahrkartenautomaten/master/img/operator/BOGESTRA.png
--------------------------------------------------------------------------------
/img/operator/BVG@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ubahnverleih/OSMfahrkartenautomaten/master/img/operator/BVG@2x.png
--------------------------------------------------------------------------------
/img/operator/CVAG@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ubahnverleih/OSMfahrkartenautomaten/master/img/operator/CVAG@2x.png
--------------------------------------------------------------------------------
/img/operator/EVAG@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ubahnverleih/OSMfahrkartenautomaten/master/img/operator/EVAG@2x.png
--------------------------------------------------------------------------------
/img/operator/FLIX@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ubahnverleih/OSMfahrkartenautomaten/master/img/operator/FLIX@2x.png
--------------------------------------------------------------------------------
/img/operator/GVH@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ubahnverleih/OSMfahrkartenautomaten/master/img/operator/GVH@2x.png
--------------------------------------------------------------------------------
/img/operator/KVV@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ubahnverleih/OSMfahrkartenautomaten/master/img/operator/KVV@2x.png
--------------------------------------------------------------------------------
/img/operator/RSAG@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ubahnverleih/OSMfahrkartenautomaten/master/img/operator/RSAG@2x.png
--------------------------------------------------------------------------------
/img/operator/SSB@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ubahnverleih/OSMfahrkartenautomaten/master/img/operator/SSB@2x.png
--------------------------------------------------------------------------------
/img/operator/SWU@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ubahnverleih/OSMfahrkartenautomaten/master/img/operator/SWU@2x.png
--------------------------------------------------------------------------------
/img/operator/VBK@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ubahnverleih/OSMfahrkartenautomaten/master/img/operator/VBK@2x.png
--------------------------------------------------------------------------------
/img/operator/db_ag2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ubahnverleih/OSMfahrkartenautomaten/master/img/operator/db_ag2.png
--------------------------------------------------------------------------------
/img/operator/db_ag@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ubahnverleih/OSMfahrkartenautomaten/master/img/operator/db_ag@2x.png
--------------------------------------------------------------------------------
/img/operator/dvb@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ubahnverleih/OSMfahrkartenautomaten/master/img/operator/dvb@2x.png
--------------------------------------------------------------------------------
/img/operator/dvb_fix.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ubahnverleih/OSMfahrkartenautomaten/master/img/operator/dvb_fix.png
--------------------------------------------------------------------------------
/img/operator/goerlitz.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ubahnverleih/OSMfahrkartenautomaten/master/img/operator/goerlitz.png
--------------------------------------------------------------------------------
/img/operator/rnv@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ubahnverleih/OSMfahrkartenautomaten/master/img/operator/rnv@2x.png
--------------------------------------------------------------------------------
/img/operator/uestra.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ubahnverleih/OSMfahrkartenautomaten/master/img/operator/uestra.png
--------------------------------------------------------------------------------
/img/operator/unknown.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ubahnverleih/OSMfahrkartenautomaten/master/img/operator/unknown.png
--------------------------------------------------------------------------------
/img/operator/vlexx@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ubahnverleih/OSMfahrkartenautomaten/master/img/operator/vlexx@2x.png
--------------------------------------------------------------------------------
/leaflet/images/layers.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ubahnverleih/OSMfahrkartenautomaten/master/leaflet/images/layers.png
--------------------------------------------------------------------------------
/img/operator/Uestra@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ubahnverleih/OSMfahrkartenautomaten/master/img/operator/Uestra@2x.png
--------------------------------------------------------------------------------
/img/operator/db_ag2@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ubahnverleih/OSMfahrkartenautomaten/master/img/operator/db_ag2@2x.png
--------------------------------------------------------------------------------
/img/operator/dvb_fix@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ubahnverleih/OSMfahrkartenautomaten/master/img/operator/dvb_fix@2x.png
--------------------------------------------------------------------------------
/img/operator/magdeburg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ubahnverleih/OSMfahrkartenautomaten/master/img/operator/magdeburg.png
--------------------------------------------------------------------------------
/img/operator/unknown@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ubahnverleih/OSMfahrkartenautomaten/master/img/operator/unknown@2x.png
--------------------------------------------------------------------------------
/img/operator/BOGESTRA@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ubahnverleih/OSMfahrkartenautomaten/master/img/operator/BOGESTRA@2x.png
--------------------------------------------------------------------------------
/img/operator/S_Bahn_Berlin.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ubahnverleih/OSMfahrkartenautomaten/master/img/operator/S_Bahn_Berlin.png
--------------------------------------------------------------------------------
/img/operator/goerlitz@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ubahnverleih/OSMfahrkartenautomaten/master/img/operator/goerlitz@2x.png
--------------------------------------------------------------------------------
/img/operator/magdeburg@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ubahnverleih/OSMfahrkartenautomaten/master/img/operator/magdeburg@2x.png
--------------------------------------------------------------------------------
/img/operator/saarbahn_gmbh.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ubahnverleih/OSMfahrkartenautomaten/master/img/operator/saarbahn_gmbh.png
--------------------------------------------------------------------------------
/leaflet/images/marker-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ubahnverleih/OSMfahrkartenautomaten/master/leaflet/images/marker-icon.png
--------------------------------------------------------------------------------
/img/operator/cottbusverkehr.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ubahnverleih/OSMfahrkartenautomaten/master/img/operator/cottbusverkehr.png
--------------------------------------------------------------------------------
/img/operator/hamburghochbahn.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ubahnverleih/OSMfahrkartenautomaten/master/img/operator/hamburghochbahn.png
--------------------------------------------------------------------------------
/leaflet/images/marker-shadow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ubahnverleih/OSMfahrkartenautomaten/master/leaflet/images/marker-shadow.png
--------------------------------------------------------------------------------
/img/operator/S_Bahn_Berlin@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ubahnverleih/OSMfahrkartenautomaten/master/img/operator/S_Bahn_Berlin@2x.png
--------------------------------------------------------------------------------
/img/operator/cottbusverkehr@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ubahnverleih/OSMfahrkartenautomaten/master/img/operator/cottbusverkehr@2x.png
--------------------------------------------------------------------------------
/img/operator/hamburghochbahn@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ubahnverleih/OSMfahrkartenautomaten/master/img/operator/hamburghochbahn@2x.png
--------------------------------------------------------------------------------
/img/operator/saarbahn_gmbh@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ubahnverleih/OSMfahrkartenautomaten/master/img/operator/saarbahn_gmbh@2x.png
--------------------------------------------------------------------------------
/leaflet/images/marker-icon@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ubahnverleih/OSMfahrkartenautomaten/master/leaflet/images/marker-icon@2x.png
--------------------------------------------------------------------------------
/leaflet/images/marker-iconred.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ubahnverleih/OSMfahrkartenautomaten/master/leaflet/images/marker-iconred.png
--------------------------------------------------------------------------------
/leaflet/images/marker-iconred@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ubahnverleih/OSMfahrkartenautomaten/master/leaflet/images/marker-iconred@2x.png
--------------------------------------------------------------------------------
/style.css:
--------------------------------------------------------------------------------
1 | .infoblock td {
2 | font: 12px/1.4 "Helvetica Neue", Arial, Helvetica, sans-serif; vertical-align: top; margin-bottom: 4;}
3 |
4 | .infoblock {
5 | background-color: #EEEEEE;
6 | border: 1px solid silver;
7 | margin-left: -5px;
8 | margin-right: -5px;
9 | margin-top: 6px;
10 | min-width: 200px;
11 | border-radius: 3px;
12 | -webkit-border-radius: 5px;
13 | -moz-border-radius: 5px;
14 | padding: 5px;
15 | }
--------------------------------------------------------------------------------
/leaflet/plugins/leaflet-hash/LICENSE.md:
--------------------------------------------------------------------------------
1 | Copyright (c) 2013 Michael Lawrence Evans
2 |
3 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
4 |
5 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
6 |
7 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
8 |
--------------------------------------------------------------------------------
/leaflet/leaflet.ie.css:
--------------------------------------------------------------------------------
1 | .leaflet-vml-shape {
2 | width: 1px;
3 | height: 1px;
4 | }
5 | .lvml {
6 | behavior: url(#default#VML);
7 | display: inline-block;
8 | position: absolute;
9 | }
10 |
11 | .leaflet-control {
12 | display: inline;
13 | }
14 |
15 | .leaflet-popup-tip {
16 | width: 21px;
17 | _width: 27px;
18 | margin: 0 auto;
19 | _margin-top: -3px;
20 |
21 | filter: progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678);
22 | -ms-filter: "progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)";
23 | }
24 | .leaflet-popup-tip-container {
25 | margin-top: -1px;
26 | }
27 | .leaflet-popup-content-wrapper, .leaflet-popup-tip {
28 | border: 1px solid #999;
29 | }
30 | .leaflet-popup-content-wrapper {
31 | zoom: 1;
32 | }
33 |
34 | .leaflet-control-zoom,
35 | .leaflet-control-layers {
36 | border: 3px solid #999;
37 | }
38 | .leaflet-control-zoom a {
39 | background-color: #eee;
40 | }
41 | .leaflet-control-zoom a:hover {
42 | background-color: #fff;
43 | }
44 | .leaflet-control-layers-toggle {
45 | }
46 | .leaflet-control-attribution,
47 | .leaflet-control-layers,
48 | .leaflet-control-scale-line {
49 | background: white;
50 | }
51 | .leaflet-zoom-box {
52 | filter: alpha(opacity=50);
53 | }
54 | .leaflet-control-attribution {
55 | border-top: 1px solid #bbb;
56 | border-left: 1px solid #bbb;
57 | }
58 |
--------------------------------------------------------------------------------
/leaflet/plugins/leaflet-hash/README.md:
--------------------------------------------------------------------------------
1 | # Leaflet-hash
2 |
3 | Leaflet-hash lets you to add dynamic URL hashes to web pages with Leaflet maps. You can easily
4 | link users to specific map views.
5 |
6 | 
7 |
8 | ### Demo
9 | You can view a demo of leaflet-hash at [mlevans.github.io/leaflet-hash/map.html](http://mlevans.github.io/leaflet-hash/map.html).
10 |
11 | ### Getting started
12 |
13 | 1. Prepare a basic leaflet map. You can find instructions on [Leaflet's quick-start guide](http://leaflet.cloudmade.com/examples/quick-start.html).
14 |
15 | 2. Include [leaflet-hash.js](https://github.com/mlevans/leaflet-hash/blob/master/leaflet-hash.js).
16 |
17 | 3. Once you have initialized the map (an instance of [L.Map](http://leaflet.cloudmade.com/reference.html#map-usage)), add the following code:
18 |
19 | ```javascript
20 | // Assuming your map instance is in a variable called map
21 | var hash = new L.Hash(map);
22 | ```
23 |
24 | ### Author
25 | [@mlevans](http://github.com/mlevans)
26 |
27 | ### Contributors
28 | [@calvinmetcalf](http://github.com/calvinmetcalf)
29 |
30 | [@jfirebaugh](http://github.com/jfirebaugh)
31 |
32 | [@rsudekum](http://github.com/rsudekum)
33 |
34 | [@tmcw](http://github.com/tmcw)
35 |
36 | [@yohanboniface](http://github.com/yohanboniface)
37 |
38 |
39 | ### License
40 |
41 | MIT License. See [LICENSE](https://github.com/mlevans/leaflet-hash/blob/master/LICENSE.md) for details.
42 |
--------------------------------------------------------------------------------
/taginfo.json:
--------------------------------------------------------------------------------
1 | {
2 | "data_format": 1,
3 | "data_url": "https://ubahnverleih.github.io/OSMfahrkartenautomaten/taginfo.json",
4 | "project": {
5 | "name": "Fahrkartenautomaten in OSM",
6 | "description": "Diese Karte zeigt Fahrkartenautomaten in Openstreetmap",
7 | "project_url": "https://ubahnverleih.github.io/OSMfahrkartenautomaten/",
8 | "doc_url": "https://github.com/ubahnverleih/OSMfahrkartenautomaten"
9 | },
10 | "tags": [
11 | { "key": "vending", "value": "public_transport_tickets", "object_types": [ "node" ], "description": "Overpass API request" },
12 | { "key": "amenity", "object_types": [ "node" ], "description": "required" },
13 | { "key": "operator", "object_types": [ "node" ], "description": "icon" },
14 | { "key": "ref", "object_types": [ "node" ] },
15 | { "key": "covered", "object_types": [ "node" ] },
16 | { "key": "payment:cash", "object_types": [ "node" ] },
17 | { "key": "payment:coins", "object_types": [ "node" ] },
18 | { "key": "payment:electronic_purses", "object_types": [ "node" ] },
19 | { "key": "payment:debit_cards", "object_types": [ "node" ] },
20 | { "key": "payment:girocard", "object_types": [ "node" ] },
21 | { "key": "payment:notes", "object_types": [ "node" ] },
22 | { "key": "payment:ep_geldkarte", "object_types": [ "node" ] },
23 | { "key": "payment:account_cards", "object_types": [ "node" ] },
24 | { "key": "note", "object_types": [ "node" ] },
25 | { "key": "fixme", "object_types": [ "node" ] },
26 | { "key": "level", "object_types": [ "node" ] },
27 | { "key": "wheelchair", "object_types": [ "node" ] }
28 |
29 | ]
30 | }
31 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Fahrkartenautomaten in OSM
2 |
3 | [Testinstallation](http://ubahnverleih.github.io/OSMfahrkartenautomaten/) und [Source](https://github.com/ubahnverleih/OSMfahrkartenautomaten) und [flattr](https://flattr.com/submit/auto?user_id=ubahnverleih&url=http%3A%2F%2Fosm.lyrk.de%2FOSMfahrkartenautomaten)
4 |
5 | Diese Karte zeigt Fahrkartenautomaten in [Openstreetmap](http://osm.org). Es werden Betreiber, Zahlungsmöglichkeiten, Refs, Notizen und fixmes angezeigt.
6 |
7 | ## Operator
8 |
9 | Weitere Operator können hinzugefügt werden. Das aufwendigste daran ist das zeichnen des Icons. Dabei hilft die Icon-Vorlage unter `./img/operator/icon_vorlage.svg`.
10 |
11 | Ein bisschen vorsichtig sollte man bei den Abkürzungen der Verkehrsunternehmen sein, da eine Abkürzung oft mehrere Betreiber bezeichnet.
12 |
13 | ### Doppelte Betreiberbezeichnungen
14 | * EVAG bezeichnet sowohl "Essener Verkehrs-AG" als auch "Erfurter Verkehrsbetriebe AG"
15 |
16 | ## License
17 | MIT-License
18 |
19 | Copyright (c) 2013 ubahnverleih Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
20 |
--------------------------------------------------------------------------------
/dresden_auswertung.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
11 |
12 |
13 | Fahrkartenautomatenauswertung Dresden
14 | Die DVB hat in Dresden wohl 145 Fahrkartenautomaten . (oder doch nur 142?) Hier eine Auswertung über die OverpassAPI. Gezählt werden alle Fahrkartenautomaten mit "operator=Dresdner Verkehrsbetriebe"
15 | Wir haben uns geeinigt das operator Tag auf "Dresdner Verkehrsbetriebe" zu vereinheitlichen. "DVB AG", "DVB", "Dresdner Verkehrsbetriebe AG" werden aber hier auch mit ausgewertet.
16 | Die Karte mit den Automaten gibts hier
17 | Auswertung
18 |
19 | Abfrage läuft...
20 |
21 |
22 |
23 |
65 |
66 |
--------------------------------------------------------------------------------
/js/gears_init.js:
--------------------------------------------------------------------------------
1 | // Copyright 2007, Google Inc.
2 | //
3 | // Redistribution and use in source and binary forms, with or without
4 | // modification, are permitted provided that the following conditions are met:
5 | //
6 | // 1. Redistributions of source code must retain the above copyright notice,
7 | // this list of conditions and the following disclaimer.
8 | // 2. Redistributions in binary form must reproduce the above copyright notice,
9 | // this list of conditions and the following disclaimer in the documentation
10 | // and/or other materials provided with the distribution.
11 | // 3. Neither the name of Google Inc. nor the names of its contributors may be
12 | // used to endorse or promote products derived from this software without
13 | // specific prior written permission.
14 | //
15 | // THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
16 | // WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
17 | // MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
18 | // EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
19 | // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
20 | // PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
21 | // OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
22 | // WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
23 | // OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
24 | // ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25 | //
26 | // Sets up google.gears.*, which is *the only* supported way to access Gears.
27 | //
28 | // Circumvent this file at your own risk!
29 | //
30 | // In the future, Gears may automatically define google.gears.* without this
31 | // file. Gears may use these objects to transparently fix bugs and compatibility
32 | // issues. Applications that use the code below will continue to work seamlessly
33 | // when that happens.
34 |
35 | (function() {
36 | // We are already defined. Hooray!
37 | if (window.google && google.gears) {
38 | return;
39 | }
40 |
41 | var factory = null;
42 |
43 | // Firefox
44 | if (typeof GearsFactory != 'undefined') {
45 | factory = new GearsFactory();
46 | } else {
47 | // IE
48 | try {
49 | factory = new ActiveXObject('Gears.Factory');
50 | // privateSetGlobalObject is only required and supported on IE Mobile on
51 | // WinCE.
52 | if (factory.getBuildInfo().indexOf('ie_mobile') != -1) {
53 | factory.privateSetGlobalObject(this);
54 | }
55 | } catch (e) {
56 | // Safari
57 | if ((typeof navigator.mimeTypes != 'undefined')
58 | && navigator.mimeTypes["application/x-googlegears"]) {
59 | factory = document.createElement("object");
60 | factory.style.display = "none";
61 | factory.width = 0;
62 | factory.height = 0;
63 | factory.type = "application/x-googlegears";
64 | document.documentElement.appendChild(factory);
65 | if(factory && (typeof factory.create == 'undefined')) {
66 | // If NP_Initialize() returns an error, factory will still be created.
67 | // We need to make sure this case doesn't cause Gears to appear to
68 | // have been initialized.
69 | factory = null;
70 | }
71 | }
72 | }
73 | }
74 |
75 | // *Do not* define any objects if Gears is not installed. This mimics the
76 | // behavior of Gears defining the objects in the future.
77 | if (!factory) {
78 | return;
79 | }
80 |
81 | // Now set up the objects, being careful not to overwrite anything.
82 | //
83 | // Note: In Internet Explorer for Windows Mobile, you can't add properties to
84 | // the window object. However, global objects are automatically added as
85 | // properties of the window object in all browsers.
86 | if (!window.google) {
87 | google = {};
88 | }
89 |
90 | if (!google.gears) {
91 | google.gears = {factory: factory};
92 | }
93 | })();
94 |
--------------------------------------------------------------------------------
/leaflet/plugins/leaflet-hash/leaflet-hash.js:
--------------------------------------------------------------------------------
1 | (function(window) {
2 | var HAS_HASHCHANGE = (function() {
3 | var doc_mode = window.documentMode;
4 | return ('onhashchange' in window) &&
5 | (doc_mode === undefined || doc_mode > 7);
6 | })();
7 |
8 | L.Hash = function(map) {
9 | this.onHashChange = L.Util.bind(this.onHashChange, this);
10 |
11 | if (map) {
12 | this.init(map);
13 | }
14 | };
15 |
16 | L.Hash.parseHash = function(hash) {
17 | if(hash.indexOf('#') === 0) {
18 | hash = hash.substr(1);
19 | }
20 | var args = hash.split("/");
21 | if (args.length == 3) {
22 | var zoom = parseInt(args[0], 10),
23 | lat = parseFloat(args[1]),
24 | lon = parseFloat(args[2]);
25 | if (isNaN(zoom) || isNaN(lat) || isNaN(lon)) {
26 | return false;
27 | } else {
28 | return {
29 | center: new L.LatLng(lat, lon),
30 | zoom: zoom
31 | };
32 | }
33 | } else {
34 | return false;
35 | }
36 | };
37 |
38 | L.Hash.formatHash = function(map) {
39 | var center = map.getCenter(),
40 | zoom = map.getZoom(),
41 | precision = Math.max(0, Math.ceil(Math.log(zoom) / Math.LN2));
42 |
43 | return "#" + [zoom,
44 | center.lat.toFixed(precision),
45 | center.lng.toFixed(precision)
46 | ].join("/");
47 | },
48 |
49 | L.Hash.prototype = {
50 | map: null,
51 | lastHash: null,
52 |
53 | parseHash: L.Hash.parseHash,
54 | formatHash: L.Hash.formatHash,
55 |
56 | init: function(map) {
57 | this.map = map;
58 |
59 | // reset the hash
60 | this.lastHash = null;
61 | this.onHashChange();
62 |
63 | if (!this.isListening) {
64 | this.startListening();
65 | }
66 | },
67 |
68 | removeFrom: function(map) {
69 | if (this.changeTimeout) {
70 | clearTimeout(this.changeTimeout);
71 | }
72 |
73 | if (this.isListening) {
74 | this.stopListening();
75 | }
76 |
77 | this.map = null;
78 | },
79 |
80 | onMapMove: function() {
81 | // bail if we're moving the map (updating from a hash),
82 | // or if the map is not yet loaded
83 |
84 | if (this.movingMap || !this.map._loaded) {
85 | return false;
86 | }
87 |
88 | var hash = this.formatHash(this.map);
89 | if (this.lastHash != hash) {
90 | location.replace(hash);
91 | this.lastHash = hash;
92 | }
93 | },
94 |
95 | movingMap: false,
96 | update: function() {
97 | var hash = location.hash;
98 | if (hash === this.lastHash) {
99 | return;
100 | }
101 | var parsed = this.parseHash(hash);
102 | if (parsed) {
103 | this.movingMap = true;
104 |
105 | this.map.setView(parsed.center, parsed.zoom);
106 |
107 | this.movingMap = false;
108 | } else {
109 | this.onMapMove(this.map);
110 | }
111 | },
112 |
113 | // defer hash change updates every 100ms
114 | changeDefer: 100,
115 | changeTimeout: null,
116 | onHashChange: function() {
117 | // throttle calls to update() so that they only happen every
118 | // `changeDefer` ms
119 | if (!this.changeTimeout) {
120 | var that = this;
121 | this.changeTimeout = setTimeout(function() {
122 | that.update();
123 | that.changeTimeout = null;
124 | }, this.changeDefer);
125 | }
126 | },
127 |
128 | isListening: false,
129 | hashChangeInterval: null,
130 | startListening: function() {
131 | this.map.on("moveend", this.onMapMove, this);
132 |
133 | if (HAS_HASHCHANGE) {
134 | L.DomEvent.addListener(window, "hashchange", this.onHashChange);
135 | } else {
136 | clearInterval(this.hashChangeInterval);
137 | this.hashChangeInterval = setInterval(this.onHashChange, 50);
138 | }
139 | this.isListening = true;
140 | },
141 |
142 | stopListening: function() {
143 | this.map.off("moveend", this.onMapMove, this);
144 |
145 | if (HAS_HASHCHANGE) {
146 | L.DomEvent.removeListener(window, "hashchange", this.onHashChange);
147 | } else {
148 | clearInterval(this.hashChangeInterval);
149 | }
150 | this.isListening = false;
151 | }
152 | };
153 | L.hash = function(map) {
154 | return new L.Hash(map);
155 | };
156 | L.Map.prototype.addHash = function() {
157 | this._hash = L.hash(this);
158 | };
159 | L.Map.prototype.removeHash = function() {
160 | this._hash.removeFrom();
161 | };
162 | })(window);
163 |
--------------------------------------------------------------------------------
/js/parse_scripts.js:
--------------------------------------------------------------------------------
1 | function isNumeric(n) {
2 | return !isNaN(parseFloat(n)) && isFinite(n);
3 | }
4 |
5 | function yesno (value){
6 | var result;
7 | var lowerValue = value.toLowerCase();
8 | switch (lowerValue) {
9 | case "yes":
10 | result = "ja";
11 | break;
12 | case "no":
13 | result = "nein";
14 | break;
15 | case "limited":
16 | result = "eingeschränkt";
17 | break;
18 | default:
19 | result = value;
20 | }
21 | return result;
22 | }
23 |
24 | function stockwerk(value){
25 | var result;
26 | if (isNumeric(value)){
27 | if (value == "0")
28 | result = "Erdgeschoss";
29 | if (parseFloat(value)>0)
30 | result = value + ". Obergeschoss";
31 | if (parseFloat(value)<0)
32 | result = parseFloat(value)*-1 + ". Untergeschoss";
33 | }
34 | else {
35 | result = value;
36 | }
37 | return result;
38 | }
39 |
40 | function preparseOperatorName(operator){
41 | var result = operator;
42 | var operator=operator.toLowerCase();
43 | var operator=operator.trim();
44 |
45 | //Operators lowercase
46 | var DeutscheBahn = ['deutsche bahn', 'deutsche bahn ag', 'db', 'db ag', 'db bahn', 'dbag', 'db regio ag', 'db regio', 'db station&service', 'db station & service', 'db station&service ag', 'deutsche bahn (db)', 'db vertrieb', 'db vertrieb gmbh'];
47 | var DVB_to_fix = ['dvb ag', 'dvb', 'dresdner verkehrsbetriebe ag'];
48 | var DVB_right = ['dresdner verkehrsbetriebe'];
49 | var RNV = ['rnv', 'rhein-neckar-verkehr gmbh', 'rhein-neckar-verkehr'];
50 | var RSAG = ['rsag', 'rostocker straßenbahn ag', 'rostocker straßenbahn'];
51 | var magdeburg = ['magdeburger verkehrsbetriebe gmbh & co. kg', 'magdeburger verkehrsbetriebe gmbh', 'magdeburger verkehrsbetriebe'];
52 | var CVAG = ['cvag', 'chemnitzer verkehrs-ag'];
53 | var KVV = ['kvv', 'karlsruher verkehrsverbund'];
54 | var AVG = ['avg', 'albtal-verkehrs-gesellschaft mbh'];
55 | var VBK = ['vbk', 'verkehrsbetriebe karlsruhe gmbh'];
56 | var FLIX = ['flix', 'flixmobility gmbh', 'flixbus'];
57 | var SSB = ['ssb', 'ssb ag', 'stuttgarter straßenbahnen', 'stuttgarter straßenbahnen ag', 'stuttgarter straßenbahnen (ssb)'];
58 | var EVAG = ['evag', 'essener verkehrs-ag'];
59 | var BOGESTRA = ['bogestra', 'bochum-gelsenkirchener straßenbahnen ag'];
60 | var cottbusverkehr = ['cottbusverkehr gmbh'];
61 | var goerlitz = ['verkehrsgesellschaft görlitz', 'verkehrsgesellschaft görlitz gmbh'];
62 | var hamburghochbahn = ['hamburger hochbahn ag', 'hamburger hochbahn'];
63 | var vlexx = ['vlexx', 'vlexx gmbh'];
64 | var SWU = ['swu', 'swu verkehr', 'swu stadtwerke ulm/neu-ulm gmbh'];
65 | var Saarbahn = ['saarbahn', 'saarbahn gmbh'];
66 | var BVG = ['bvg', 'berliner verkehrsbetriebe'];
67 | var sbahnberlin = ['s-bahn berlin', 's-bahn berlin gmbh'];
68 | var uestra = ['üstra', 'uestra', 'üstra hannoversche verkehrsbetriebe ag'];
69 | var gvh = ['gvh', 'großraumverkehr hannover'];
70 |
71 | if (DeutscheBahn.indexOf(operator)>-1) result = 'deutsche bahn';
72 | if (DVB_to_fix.indexOf(operator)>-1) result = 'DVB_to_fix';
73 | if (DVB_right.indexOf(operator)>-1) result = 'DVB_right';
74 | if (RNV.indexOf(operator)>-1) result = 'rnv';
75 | if (RSAG.indexOf(operator)>-1) result = 'rsag';
76 | if (magdeburg.indexOf(operator)>-1) result = 'magdeburg';
77 | if (CVAG.indexOf(operator)>-1) result = 'CVAG';
78 | if (KVV.indexOf(operator)>-1) result = 'KVV';
79 | if (VBK.indexOf(operator)>-1) result = 'VBK';
80 | if (AVG.indexOf(operator)>-1) result = 'AVG';
81 | if (FLIX.indexOf(operator)>-1) result = 'FLIX';
82 | if (SSB.indexOf(operator)>-1) result = 'SSB';
83 | if (EVAG.indexOf(operator)>-1) result = 'EVAG';
84 | if (BOGESTRA.indexOf(operator)>-1) result = 'BOGESTRA';
85 | if (cottbusverkehr.indexOf(operator)>-1) result = 'cottbusverkehr';
86 | if (goerlitz.indexOf(operator)>-1) result = 'goerlitz';
87 | if (hamburghochbahn.indexOf(operator)>-1) result = 'hamburghochbahn';
88 | if (vlexx.indexOf(operator)>-1) result = 'vlexx';
89 | if (SWU.indexOf(operator)>-1) result = 'SWU';
90 | if (Saarbahn.indexOf(operator)>-1) result = 'Saarbahn';
91 | if (BVG.indexOf(operator)>-1) result = 'BVG';
92 | if (sbahnberlin.indexOf(operator)>-1) result = 'sbahnberlin';
93 | if (uestra.indexOf(operator)>-1) result = 'Üstra';
94 | if (gvh.indexOf(operator)>-1) result = 'GVH';
95 |
96 | return result;
97 | }
98 |
99 | function getMarkerIcon(parsedOperator){
100 | var result = StdUnknown;
101 | if (parsedOperator == "unbekannt ") result = StdIcon;
102 | if (parsedOperator == "deutsche bahn") result = DBicon;
103 | if (parsedOperator == "DVB_to_fix") result = DVBfixicon;
104 | if (parsedOperator == "DVB_right") result = DVBicon;
105 | if (parsedOperator == "rnv") result = RNVicon;
106 | if (parsedOperator == "rsag") result = RSAGicon;
107 | if (parsedOperator == "magdeburg") result = magdeburgicon;
108 | if (parsedOperator == "CVAG") result = CVAGicon;
109 | if (parsedOperator == "KVV") result = KVVicon;
110 | if (parsedOperator == "AVG") result = AVGicon;
111 | if (parsedOperator == "VBK") result = VBKicon;
112 | if (parsedOperator == "FLIX") result = FLIXicon;
113 | if (parsedOperator == "SSB") result = SSBicon;
114 | if (parsedOperator == "EVAG") result = EVAGicon;
115 | if (parsedOperator == "BOGESTRA") result = BOGESTRAicon;
116 | if (parsedOperator == "cottbusverkehr") result = cottbusverkehricon;
117 | if (parsedOperator == "goerlitz") result = goerlitzicon;
118 | if (parsedOperator == "hamburghochbahn") result = hamburghochbahnicon;
119 | if (parsedOperator == "vlexx") result = vlexxicon;
120 | if (parsedOperator == "SWU") result = SWUicon;
121 | if (parsedOperator == "Saarbahn") result = SaarbahnIcon;
122 | if (parsedOperator == "BVG") result = BVGIcon;
123 | if (parsedOperator == "sbahnberlin") result = S_Bahn_BerlinIcon;
124 | if (parsedOperator == "Üstra") result = uestraicon;
125 | if (parsedOperator == "GVH") result = GVHicon;
126 |
127 | return result;
128 | }
129 |
130 |
131 |
132 |
133 |
134 |
135 |
136 |
137 |
--------------------------------------------------------------------------------
/img/operator/icon_vorlage.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
22 |
24 |
26 |
30 |
34 |
35 |
37 |
41 |
45 |
46 |
56 |
66 |
67 |
85 |
87 |
88 |
90 | image/svg+xml
91 |
93 |
94 |
95 |
96 |
97 |
102 |
104 |
106 |
112 |
118 |
119 |
120 | CVAG
146 |
147 |
--------------------------------------------------------------------------------
/js/icons.js:
--------------------------------------------------------------------------------
1 | var DBicon = L.icon({
2 | iconUrl: './img/operator/db_ag2.png',
3 | iconRetinaUrl: './img/operator/db_ag2@2x.png',
4 | iconSize: [25, 41],
5 | iconAnchor: [12, 41],
6 | popupAnchor: [1, -34],
7 | shadowUrl: './leaflet/images/marker-shadow.png',
8 | shadowSize: [41, 41]
9 | });
10 |
11 | var DVBicon = L.icon({
12 | iconUrl: './img/operator/dvb.png',
13 | iconRetinaUrl: './img/operator/dvb@2x.png',
14 | iconSize: [25, 41],
15 | iconAnchor: [12, 41],
16 | popupAnchor: [1, -34],
17 | shadowUrl: './leaflet/images/marker-shadow.png',
18 | shadowSize: [41, 41]
19 | });
20 |
21 | var DVBfixicon = L.icon({
22 | iconUrl: './img/operator/dvb_fix.png',
23 | iconRetinaUrl: './img/operator/dvb_fix@2x.png',
24 | iconSize: [25, 41],
25 | iconAnchor: [12, 41],
26 | popupAnchor: [1, -34],
27 | shadowUrl: './leaflet/images/marker-shadow.png',
28 | shadowSize: [41, 41]
29 | });
30 |
31 |
32 | var RNVicon = L.icon({
33 | iconUrl: './img/operator/rnv.png',
34 | iconRetinaUrl: './img/operator/rnv@2x.png',
35 | iconSize: [25, 41],
36 | iconAnchor: [12, 41],
37 | popupAnchor: [1, -34],
38 | shadowUrl: './leaflet/images/marker-shadow.png',
39 | shadowSize: [41, 41]
40 | });
41 |
42 | var RSAGicon = L.icon({
43 | iconUrl: './img/operator/RSAG.png',
44 | iconRetinaUrl: './img/operator/RSAG@2x.png',
45 | iconSize: [25, 41],
46 | iconAnchor: [12, 41],
47 | popupAnchor: [1, -34],
48 | shadowUrl: './leaflet/images/marker-shadow.png',
49 | shadowSize: [41, 41]
50 | });
51 |
52 | var magdeburgicon = L.icon({
53 | iconUrl: './img/operator/magdeburg.png',
54 | iconRetinaUrl: './img/operator/magdeburg@2x.png',
55 | iconSize: [25, 41],
56 | iconAnchor: [12, 41],
57 | popupAnchor: [1, -34],
58 | shadowUrl: './leaflet/images/marker-shadow.png',
59 | shadowSize: [41, 41]
60 | });
61 |
62 | var CVAGicon = L.icon({
63 | iconUrl: './img/operator/CVAG.png',
64 | iconRetinaUrl: './img/operator/CVAG@2x.png',
65 | iconSize: [25, 41],
66 | iconAnchor: [12, 41],
67 | popupAnchor: [1, -34],
68 | shadowUrl: './leaflet/images/marker-shadow.png',
69 | shadowSize: [41, 41]
70 | });
71 |
72 | var KVVicon = L.icon({
73 | iconUrl: './img/operator/KVV.png',
74 | iconRetinaUrl: './img/operator/KVV@2x.png',
75 | iconSize: [25, 41],
76 | iconAnchor: [12, 41],
77 | popupAnchor: [1, -34],
78 | shadowUrl: './leaflet/images/marker-shadow.png',
79 | shadowSize: [41, 41]
80 | });
81 |
82 | var VBKicon = L.icon({
83 | iconUrl: './img/operator/VBK.png',
84 | iconRetinaUrl: './img/operator/VBK@2x.png',
85 | iconSize: [25, 41],
86 | iconAnchor: [12, 41],
87 | popupAnchor: [1, -34],
88 | shadowUrl: './leaflet/images/marker-shadow.png',
89 | shadowSize: [41, 41]
90 | });
91 |
92 | var AVGicon = L.icon({
93 | iconUrl: './img/operator/AVG.png',
94 | iconRetinaUrl: './img/operator/AVG@2x.png',
95 | iconSize: [25, 41],
96 | iconAnchor: [12, 41],
97 | popupAnchor: [1, -34],
98 | shadowUrl: './leaflet/images/marker-shadow.png',
99 | shadowSize: [41, 41]
100 | });
101 |
102 | var FLIXicon = L.icon({
103 | iconUrl: './img/operator/FLIX.png',
104 | iconRetinaUrl: './img/operator/FLIX@2x.png',
105 | iconSize: [25, 41],
106 | iconAnchor: [12, 41],
107 | popupAnchor: [1, -34],
108 | shadowUrl: './leaflet/images/marker-shadow.png',
109 | shadowSize: [41, 41]
110 | });
111 |
112 | var SSBicon = L.icon({
113 | iconUrl: './img/operator/SSB.png',
114 | iconRetinaUrl: './img/operator/SSB@2x.png',
115 | iconSize: [25, 41],
116 | iconAnchor: [12, 41],
117 | popupAnchor: [1, -34],
118 | shadowUrl: './leaflet/images/marker-shadow.png',
119 | shadowSize: [41, 41]
120 | });
121 |
122 | var EVAGicon = L.icon({
123 | iconUrl: './img/operator/EVAG.png',
124 | iconRetinaUrl: './img/operator/EVAG@2x.png',
125 | iconSize: [25, 41],
126 | iconAnchor: [12, 41],
127 | popupAnchor: [1, -34],
128 | shadowUrl: './leaflet/images/marker-shadow.png',
129 | shadowSize: [41, 41]
130 | });
131 |
132 | var BOGESTRAicon = L.icon({
133 | iconUrl: './img/operator/BOGESTRA.png',
134 | iconRetinaUrl: './img/operator/BOGESTRA@2x.png',
135 | iconSize: [25, 41],
136 | iconAnchor: [12, 41],
137 | popupAnchor: [1, -34],
138 | shadowUrl: './leaflet/images/marker-shadow.png',
139 | shadowSize: [41, 41]
140 | });
141 |
142 | var cottbusverkehricon = L.icon({
143 | iconUrl: './img/operator/cottbusverkehr.png',
144 | iconRetinaUrl: './img/operator/cottbusverkehr@2x.png',
145 | iconSize: [25, 41],
146 | iconAnchor: [12, 41],
147 | popupAnchor: [1, -34],
148 | shadowUrl: './leaflet/images/marker-shadow.png',
149 | shadowSize: [41, 41]
150 | });
151 |
152 | var goerlitzicon = L.icon({
153 | iconUrl: './img/operator/goerlitz.png',
154 | iconRetinaUrl: './img/operator/goerlitz@2x.png',
155 | iconSize: [25, 41],
156 | iconAnchor: [12, 41],
157 | popupAnchor: [1, -34],
158 | shadowUrl: './leaflet/images/marker-shadow.png',
159 | shadowSize: [41, 41]
160 | });
161 |
162 | var hamburghochbahnicon = L.icon({
163 | iconUrl: './img/operator/hamburghochbahn.png',
164 | iconRetinaUrl: './img/operator/hamburghochbahn@2x.png',
165 | iconSize: [25, 41],
166 | iconAnchor: [12, 41],
167 | popupAnchor: [1, -34],
168 | shadowUrl: './leaflet/images/marker-shadow.png',
169 | shadowSize: [41, 41]
170 | });
171 |
172 | var uestraicon = L.icon({
173 | iconUrl: './img/operator/uestra.png',
174 | iconRetinaUrl: './img/operator/Uestra@2x.png',
175 | iconSize: [25, 41],
176 | iconAnchor: [12, 41],
177 | popupAnchor: [1, -34],
178 | shadowUrl: './leaflet/images/marker-shadow.png',
179 | shadowSize: [41, 41]
180 | });
181 |
182 | var GVHicon = L.icon({
183 | iconUrl: './img/operator/GVH.png',
184 | iconRetinaUrl: './img/operator/GVH@2x.png',
185 | iconSize: [25, 41],
186 | iconAnchor: [12, 41],
187 | popupAnchor: [1, -34],
188 | shadowUrl: './leaflet/images/marker-shadow.png',
189 | shadowSize: [41, 41]
190 | });
191 |
192 | var vlexxicon = L.icon({
193 | iconUrl: './img/operator/vlexx.png',
194 | iconRetinaUrl: './img/operator/vlexx@2x.png',
195 | iconSize: [25, 41],
196 | iconAnchor: [12, 41],
197 | popupAnchor: [1, -34],
198 | shadowUrl: './leaflet/images/marker-shadow.png',
199 | shadowSize: [41, 41]
200 | });
201 |
202 | var BVGIcon = L.icon({
203 | iconUrl: './img/operator/BVG.png',
204 | iconRetinaUrl: './img/operator/BVG@2x.png',
205 | iconSize: [25, 41],
206 | iconAnchor: [12, 41],
207 | popupAnchor: [1, -34],
208 | shadowUrl: './leaflet/images/marker-shadow.png',
209 | shadowSize: [41, 41]
210 | });
211 |
212 | var S_Bahn_BerlinIcon = L.icon({
213 | iconUrl: './img/operator/S_Bahn_Berlin.png',
214 | iconRetinaUrl: './img/operator/S_Bahn_Berlin@2x.png',
215 | iconSize: [25, 41],
216 | iconAnchor: [12, 41],
217 | popupAnchor: [1, -34],
218 | shadowUrl: './leaflet/images/marker-shadow.png',
219 | shadowSize: [41, 41]
220 | });
221 |
222 | var SWUicon = L.icon({
223 | iconUrl: './img/operator/SWU.png',
224 | iconRetinaUrl: './img/operator/SWU@2x.png',
225 | iconSize: [25, 41],
226 | iconAnchor: [12, 41],
227 | popupAnchor: [1, -34],
228 | shadowUrl: './leaflet/images/marker-shadow.png',
229 | shadowSize: [41, 41]
230 | });
231 |
232 | var SaarbahnIcon = L.icon({
233 | iconUrl: './img/operator/saarbahn_gmbh.png',
234 | iconRetinaUrl: './img/operator/saarbahn_gmbh@2x.png',
235 | iconSize: [25, 41],
236 | iconAnchor: [12, 41],
237 | popupAnchor: [1, -34],
238 | shadowUrl: './leaflet/images/marker-shadow.png',
239 | shadowSize: [41, 41]
240 | });
241 |
242 | var StdUnknown = L.icon({
243 | iconUrl: './img/operator/unknown.png',
244 | iconRetinaUrl: './img/operator/unknown@2x.png',
245 | iconSize: [25, 41],
246 | iconAnchor: [12, 41],
247 | popupAnchor: [1, -34],
248 | shadowUrl: './leaflet/images/marker-shadow.png',
249 | shadowSize: [41, 41]
250 | });
251 |
252 | var StdIcon = L.icon({
253 | iconUrl: './leaflet/images/marker-icon.png',
254 | iconRetinaUrl: './leaflet/images/marker-icon@2x.png',
255 | iconSize: [25, 41],
256 | iconAnchor: [12, 41],
257 | popupAnchor: [1, -34],
258 | shadowUrl: './leaflet/images/marker-shadow.png',
259 | shadowSize: [41, 41]
260 | });
261 |
--------------------------------------------------------------------------------
/leaflet/leaflet.css:
--------------------------------------------------------------------------------
1 | /* required styles */
2 |
3 | .leaflet-map-pane,
4 | .leaflet-tile,
5 | .leaflet-marker-icon,
6 | .leaflet-marker-shadow,
7 | .leaflet-tile-pane,
8 | .leaflet-overlay-pane,
9 | .leaflet-shadow-pane,
10 | .leaflet-marker-pane,
11 | .leaflet-popup-pane,
12 | .leaflet-overlay-pane svg,
13 | .leaflet-zoom-box,
14 | .leaflet-image-layer,
15 | .leaflet-layer {
16 | position: absolute;
17 | left: 0;
18 | top: 0;
19 | }
20 | .leaflet-container {
21 | overflow: hidden;
22 | -ms-touch-action: none;
23 | }
24 | .leaflet-tile,
25 | .leaflet-marker-icon,
26 | .leaflet-marker-shadow {
27 | -webkit-user-select: none;
28 | -moz-user-select: none;
29 | user-select: none;
30 | }
31 | .leaflet-marker-icon,
32 | .leaflet-marker-shadow {
33 | display: block;
34 | }
35 | /* map is broken in FF if you have max-width: 100% on tiles */
36 | .leaflet-container img {
37 | max-width: none !important;
38 | }
39 | /* stupid Android 2 doesn't understand "max-width: none" properly */
40 | .leaflet-container img.leaflet-image-layer {
41 | max-width: 15000px !important;
42 | }
43 | .leaflet-tile {
44 | filter: inherit;
45 | visibility: hidden;
46 | }
47 | .leaflet-tile-loaded {
48 | visibility: inherit;
49 | }
50 | .leaflet-zoom-box {
51 | width: 0;
52 | height: 0;
53 | }
54 |
55 | .leaflet-tile-pane { z-index: 2; }
56 | .leaflet-objects-pane { z-index: 3; }
57 | .leaflet-overlay-pane { z-index: 4; }
58 | .leaflet-shadow-pane { z-index: 5; }
59 | .leaflet-marker-pane { z-index: 6; }
60 | .leaflet-popup-pane { z-index: 7; }
61 |
62 |
63 | /* control positioning */
64 |
65 | .leaflet-control {
66 | position: relative;
67 | z-index: 7;
68 | pointer-events: auto;
69 | }
70 | .leaflet-top,
71 | .leaflet-bottom {
72 | position: absolute;
73 | z-index: 1000;
74 | pointer-events: none;
75 | }
76 | .leaflet-top {
77 | top: 0;
78 | }
79 | .leaflet-right {
80 | right: 0;
81 | }
82 | .leaflet-bottom {
83 | bottom: 0;
84 | }
85 | .leaflet-left {
86 | left: 0;
87 | }
88 | .leaflet-control {
89 | float: left;
90 | clear: both;
91 | }
92 | .leaflet-right .leaflet-control {
93 | float: right;
94 | }
95 | .leaflet-top .leaflet-control {
96 | margin-top: 10px;
97 | }
98 | .leaflet-bottom .leaflet-control {
99 | margin-bottom: 10px;
100 | }
101 | .leaflet-left .leaflet-control {
102 | margin-left: 10px;
103 | }
104 | .leaflet-right .leaflet-control {
105 | margin-right: 10px;
106 | }
107 |
108 |
109 | /* zoom and fade animations */
110 |
111 | .leaflet-fade-anim .leaflet-tile,
112 | .leaflet-fade-anim .leaflet-popup {
113 | opacity: 0;
114 | -webkit-transition: opacity 0.2s linear;
115 | -moz-transition: opacity 0.2s linear;
116 | -o-transition: opacity 0.2s linear;
117 | transition: opacity 0.2s linear;
118 | }
119 | .leaflet-fade-anim .leaflet-tile-loaded,
120 | .leaflet-fade-anim .leaflet-map-pane .leaflet-popup {
121 | opacity: 1;
122 | }
123 |
124 | .leaflet-zoom-anim .leaflet-zoom-animated {
125 | -webkit-transition: -webkit-transform 0.25s cubic-bezier(0,0,0.25,1);
126 | -moz-transition: -moz-transform 0.25s cubic-bezier(0,0,0.25,1);
127 | -o-transition: -o-transform 0.25s cubic-bezier(0,0,0.25,1);
128 | transition: transform 0.25s cubic-bezier(0,0,0.25,1);
129 | }
130 | .leaflet-zoom-anim .leaflet-tile,
131 | .leaflet-pan-anim .leaflet-tile,
132 | .leaflet-touching .leaflet-zoom-animated {
133 | -webkit-transition: none;
134 | -moz-transition: none;
135 | -o-transition: none;
136 | transition: none;
137 | }
138 |
139 | .leaflet-zoom-anim .leaflet-zoom-hide {
140 | visibility: hidden;
141 | }
142 |
143 |
144 | /* cursors */
145 |
146 | .leaflet-clickable {
147 | cursor: pointer;
148 | }
149 | .leaflet-container {
150 | cursor: -webkit-grab;
151 | cursor: -moz-grab;
152 | }
153 | .leaflet-popup-pane,
154 | .leaflet-control {
155 | cursor: auto;
156 | }
157 | .leaflet-dragging,
158 | .leaflet-dragging .leaflet-clickable,
159 | .leaflet-dragging .leaflet-container {
160 | cursor: move;
161 | cursor: -webkit-grabbing;
162 | cursor: -moz-grabbing;
163 | }
164 |
165 |
166 | /* visual tweaks */
167 |
168 | .leaflet-container {
169 | background: #ddd;
170 | outline: 0;
171 | }
172 | .leaflet-container a {
173 | color: #0078A8;
174 | }
175 | .leaflet-container a.leaflet-active {
176 | outline: 2px solid orange;
177 | }
178 | .leaflet-zoom-box {
179 | border: 2px dotted #05f;
180 | background: white;
181 | opacity: 0.5;
182 | }
183 |
184 |
185 | /* general typography */
186 | .leaflet-container {
187 | font: 12px/1.5 "Helvetica Neue", Arial, Helvetica, sans-serif;
188 | }
189 |
190 |
191 | /* general toolbar styles */
192 |
193 | .leaflet-bar {
194 | box-shadow: 0 0 8px rgba(0,0,0,0.4);
195 | border: 1px solid #888;
196 | -webkit-border-radius: 5px;
197 | border-radius: 5px;
198 | }
199 | .leaflet-bar-part {
200 | background-color: rgba(255, 255, 255, 0.8);
201 | border-bottom: 1px solid #aaa;
202 | }
203 | .leaflet-bar-part-top {
204 | -webkit-border-radius: 4px 4px 0 0;
205 | border-radius: 4px 4px 0 0;
206 | }
207 | .leaflet-bar-part-bottom {
208 | -webkit-border-radius: 0 0 4px 4px;
209 | border-radius: 0 0 4px 4px;
210 | border-bottom: none;
211 | }
212 |
213 | .leaflet-touch .leaflet-bar {
214 | -webkit-border-radius: 10px;
215 | border-radius: 10px;
216 | }
217 | .leaflet-touch .leaflet-bar-part {
218 | border-bottom: 4px solid rgba(0,0,0,0.3);
219 | }
220 | .leaflet-touch .leaflet-bar-part-top {
221 | -webkit-border-radius: 7px 7px 0 0;
222 | border-radius: 7px 7px 0 0;
223 | }
224 | .leaflet-touch .leaflet-bar-part-bottom {
225 | -webkit-border-radius: 0 0 7px 7px;
226 | border-radius: 0 0 7px 7px;
227 | border-bottom: none;
228 | }
229 |
230 |
231 | /* zoom control */
232 |
233 | .leaflet-container .leaflet-control-zoom {
234 | margin-left: 13px;
235 | margin-top: 12px;
236 | }
237 | .leaflet-control-zoom a {
238 | width: 22px;
239 | height: 22px;
240 | text-align: center;
241 | text-decoration: none;
242 | color: black;
243 | }
244 | .leaflet-control-zoom a,
245 | .leaflet-control-layers-toggle {
246 | background-position: 50% 50%;
247 | background-repeat: no-repeat;
248 | display: block;
249 | }
250 | .leaflet-control-zoom a:hover {
251 | background-color: #fff;
252 | color: #777;
253 | }
254 | .leaflet-control-zoom-in {
255 | font: bold 18px/24px Arial, Helvetica, sans-serif;
256 | }
257 | .leaflet-control-zoom-out {
258 | font: bold 23px/20px Tahoma, Verdana, sans-serif;
259 | }
260 | .leaflet-control-zoom a.leaflet-control-zoom-disabled {
261 | cursor: default;
262 | background-color: rgba(255, 255, 255, 0.8);
263 | color: #bbb;
264 | }
265 |
266 | .leaflet-touch .leaflet-control-zoom a {
267 | width: 30px;
268 | height: 30px;
269 | }
270 | .leaflet-touch .leaflet-control-zoom-in {
271 | font-size: 24px;
272 | line-height: 29px;
273 | }
274 | .leaflet-touch .leaflet-control-zoom-out {
275 | font-size: 28px;
276 | line-height: 24px;
277 | }
278 |
279 | /* layers control */
280 |
281 | .leaflet-control-layers {
282 | box-shadow: 0 1px 7px rgba(0,0,0,0.4);
283 | background: #f8f8f9;
284 | -webkit-border-radius: 8px;
285 | border-radius: 8px;
286 | }
287 | .leaflet-control-layers-toggle {
288 | background-image: url(images/layers.png);
289 | width: 36px;
290 | height: 36px;
291 | }
292 | .leaflet-touch .leaflet-control-layers-toggle {
293 | width: 44px;
294 | height: 44px;
295 | }
296 | .leaflet-control-layers .leaflet-control-layers-list,
297 | .leaflet-control-layers-expanded .leaflet-control-layers-toggle {
298 | display: none;
299 | }
300 | .leaflet-control-layers-expanded .leaflet-control-layers-list {
301 | display: block;
302 | position: relative;
303 | }
304 | .leaflet-control-layers-expanded {
305 | padding: 6px 10px 6px 6px;
306 | color: #333;
307 | background: #fff;
308 | }
309 | .leaflet-control-layers-selector {
310 | margin-top: 2px;
311 | position: relative;
312 | top: 1px;
313 | }
314 | .leaflet-control-layers label {
315 | display: block;
316 | }
317 | .leaflet-control-layers-separator {
318 | height: 0;
319 | border-top: 1px solid #ddd;
320 | margin: 5px -10px 5px -6px;
321 | }
322 |
323 |
324 | /* attribution and scale controls */
325 |
326 | .leaflet-container .leaflet-control-attribution {
327 | background-color: rgba(255, 255, 255, 0.7);
328 | box-shadow: 0 0 5px #bbb;
329 | margin: 0;
330 | }
331 | .leaflet-control-attribution,
332 | .leaflet-control-scale-line {
333 | padding: 0 5px;
334 | color: #333;
335 | }
336 | .leaflet-container .leaflet-control-attribution,
337 | .leaflet-container .leaflet-control-scale {
338 | font-size: 11px;
339 | }
340 | .leaflet-left .leaflet-control-scale {
341 | margin-left: 5px;
342 | }
343 | .leaflet-bottom .leaflet-control-scale {
344 | margin-bottom: 5px;
345 | }
346 | .leaflet-control-scale-line {
347 | border: 2px solid #777;
348 | border-top: none;
349 | color: black;
350 | line-height: 1.1;
351 | padding: 2px 5px 1px;
352 | font-size: 11px;
353 | text-shadow: 1px 1px 1px #fff;
354 | background-color: rgba(255, 255, 255, 0.5);
355 | box-shadow: 0 -1px 5px rgba(0, 0, 0, 0.2);
356 | white-space: nowrap;
357 | overflow: hidden;
358 | }
359 | .leaflet-control-scale-line:not(:first-child) {
360 | border-top: 2px solid #777;
361 | border-bottom: none;
362 | margin-top: -2px;
363 | box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);
364 | }
365 | .leaflet-control-scale-line:not(:first-child):not(:last-child) {
366 | border-bottom: 2px solid #777;
367 | }
368 |
369 | .leaflet-touch .leaflet-control-attribution,
370 | .leaflet-touch .leaflet-control-layers,
371 | .leaflet-touch .leaflet-control-zoom {
372 | box-shadow: none;
373 | }
374 | .leaflet-touch .leaflet-control-layers,
375 | .leaflet-touch .leaflet-control-zoom {
376 | border: 4px solid rgba(0,0,0,0.3);
377 | }
378 |
379 |
380 | /* popup */
381 |
382 | .leaflet-popup {
383 | position: absolute;
384 | text-align: center;
385 | }
386 | .leaflet-popup-content-wrapper {
387 | padding: 1px;
388 | text-align: left;
389 | -webkit-border-radius: 20px;
390 | border-radius: 20px;
391 | }
392 | .leaflet-popup-content {
393 | margin: 14px 20px;
394 | line-height: 1.4;
395 | }
396 | .leaflet-popup-content p {
397 | margin: 18px 0;
398 | }
399 | .leaflet-popup-tip-container {
400 | margin: 0 auto;
401 | width: 40px;
402 | height: 20px;
403 | position: relative;
404 | overflow: hidden;
405 | }
406 | .leaflet-popup-tip {
407 | width: 15px;
408 | height: 15px;
409 | padding: 1px;
410 |
411 | margin: -8px auto 0;
412 |
413 | -webkit-transform: rotate(45deg);
414 | -moz-transform: rotate(45deg);
415 | -ms-transform: rotate(45deg);
416 | -o-transform: rotate(45deg);
417 | transform: rotate(45deg);
418 | }
419 | .leaflet-popup-content-wrapper, .leaflet-popup-tip {
420 | background: white;
421 |
422 | box-shadow: 0 3px 14px rgba(0,0,0,0.4);
423 | }
424 | .leaflet-container a.leaflet-popup-close-button {
425 | position: absolute;
426 | top: 0;
427 | right: 0;
428 | padding: 4px 5px 0 0;
429 | text-align: center;
430 | width: 18px;
431 | height: 14px;
432 | font: 16px/14px Tahoma, Verdana, sans-serif;
433 | color: #c3c3c3;
434 | text-decoration: none;
435 | font-weight: bold;
436 | background: transparent;
437 | }
438 | .leaflet-container a.leaflet-popup-close-button:hover {
439 | color: #999;
440 | }
441 | .leaflet-popup-scrolled {
442 | overflow: auto;
443 | border-bottom: 1px solid #ddd;
444 | border-top: 1px solid #ddd;
445 | }
446 |
447 |
448 | /* div icon */
449 |
450 | .leaflet-div-icon {
451 | background: #fff;
452 | border: 1px solid #666;
453 | }
454 | .leaflet-editing-icon {
455 | -webkit-border-radius: 2px;
456 | border-radius: 2px;
457 | }
458 |
--------------------------------------------------------------------------------
/js/geo.js:
--------------------------------------------------------------------------------
1 | /*!
2 | * geo-location-javascript v0.4.3
3 | * http://code.google.com/p/geo-location-javascript/
4 | *
5 | * Copyright (c) 2009 Stan Wiechers
6 | * Licensed under the MIT licenses.
7 | *
8 | * Revision: $Rev: 68 $:
9 | * Author: $Author: whoisstan $:
10 | * Date: $Date: 2010-02-15 13:42:19 +0100 (Mon, 15 Feb 2010) $:
11 | */
12 | var bb_successCallback;
13 | var bb_errorCallback;
14 | var bb_blackberryTimeout_id=-1;
15 |
16 | function handleBlackBerryLocationTimeout()
17 | {
18 | if(bb_blackberryTimeout_id!=-1)
19 | {
20 | bb_errorCallback({message:"Timeout error", code:3});
21 | }
22 | }
23 | function handleBlackBerryLocation()
24 | {
25 | clearTimeout(bb_blackberryTimeout_id);
26 | bb_blackberryTimeout_id=-1;
27 | if (bb_successCallback && bb_errorCallback)
28 | {
29 | if(blackberry.location.latitude==0 && blackberry.location.longitude==0)
30 | {
31 | //http://dev.w3.org/geo/api/spec-source.html#position_unavailable_error
32 | //POSITION_UNAVAILABLE (numeric value 2)
33 | bb_errorCallback({message:"Position unavailable", code:2});
34 | }
35 | else
36 | {
37 | var timestamp=null;
38 | //only available with 4.6 and later
39 | //http://na.blackberry.com/eng/deliverables/8861/blackberry_location_568404_11.jsp
40 | if (blackberry.location.timestamp)
41 | {
42 | timestamp=new Date(blackberry.location.timestamp);
43 | }
44 | bb_successCallback({timestamp:timestamp, coords: {latitude:blackberry.location.latitude,longitude:blackberry.location.longitude}});
45 | }
46 | //since blackberry.location.removeLocationUpdate();
47 | //is not working as described http://na.blackberry.com/eng/deliverables/8861/blackberry_location_removeLocationUpdate_568409_11.jsp
48 | //the callback are set to null to indicate that the job is done
49 |
50 | bb_successCallback = null;
51 | bb_errorCallback = null;
52 | }
53 | }
54 |
55 | var geo_position_js=function() {
56 |
57 | var pub = {};
58 | var provider=null;
59 |
60 | pub.getCurrentPosition = function(successCallback,errorCallback,options)
61 | {
62 | provider.getCurrentPosition(successCallback, errorCallback,options);
63 | }
64 |
65 | pub.init = function()
66 | {
67 | try
68 | {
69 | if (typeof(geo_position_js_simulator)!="undefined")
70 | {
71 | provider=geo_position_js_simulator;
72 | }
73 | else if (typeof(bondi)!="undefined" && typeof(bondi.geolocation)!="undefined")
74 | {
75 | provider=bondi.geolocation;
76 | }
77 | else if (typeof(navigator.geolocation)!="undefined")
78 | {
79 | provider=navigator.geolocation;
80 | pub.getCurrentPosition = function(successCallback, errorCallback, options)
81 | {
82 | function _successCallback(p)
83 | {
84 | //for mozilla geode,it returns the coordinates slightly differently
85 | if(typeof(p.latitude)!="undefined")
86 | {
87 | successCallback({timestamp:p.timestamp, coords: {latitude:p.latitude,longitude:p.longitude}});
88 | }
89 | else
90 | {
91 | successCallback(p);
92 | }
93 | }
94 | provider.getCurrentPosition(_successCallback,errorCallback,options);
95 | }
96 | }
97 | else if(typeof(window.google)!="undefined" && typeof(google.gears)!="undefined")
98 | {
99 | provider=google.gears.factory.create('beta.geolocation');
100 | }
101 | else if ( typeof(Mojo) !="undefined" && typeof(Mojo.Service.Request)!="Mojo.Service.Request")
102 | {
103 | provider=true;
104 | pub.getCurrentPosition = function(successCallback, errorCallback, options)
105 | {
106 |
107 | parameters={};
108 | if(options)
109 | {
110 | //http://developer.palm.com/index.php?option=com_content&view=article&id=1673#GPS-getCurrentPosition
111 | if (options.enableHighAccuracy && options.enableHighAccuracy==true)
112 | {
113 | parameters.accuracy=1;
114 | }
115 | if (options.maximumAge)
116 | {
117 | parameters.maximumAge=options.maximumAge;
118 | }
119 | if (options.responseTime)
120 | {
121 | if(options.responseTime<5)
122 | {
123 | parameters.responseTime=1;
124 | }
125 | else if (options.responseTime<20)
126 | {
127 | parameters.responseTime=2;
128 | }
129 | else
130 | {
131 | parameters.timeout=3;
132 | }
133 | }
134 | }
135 |
136 |
137 | r=new Mojo.Service.Request('palm://com.palm.location', {
138 | method:"getCurrentPosition",
139 | parameters:parameters,
140 | onSuccess: function(p){successCallback({timestamp:p.timestamp, coords: {latitude:p.latitude, longitude:p.longitude,heading:p.heading}});},
141 | onFailure: function(e){
142 | if (e.errorCode==1)
143 | {
144 | errorCallback({code:3,message:"Timeout"});
145 | }
146 | else if (e.errorCode==2)
147 | {
148 | errorCallback({code:2,message:"Position Unavailable"});
149 | }
150 | else
151 | {
152 | errorCallback({code:0,message:"Unknown Error: webOS-code"+errorCode});
153 | }
154 | }
155 | });
156 | }
157 |
158 | }
159 | else if (typeof(device)!="undefined" && typeof(device.getServiceObject)!="undefined")
160 | {
161 | provider=device.getServiceObject("Service.Location", "ILocation");
162 |
163 | //override default method implementation
164 | pub.getCurrentPosition = function(successCallback, errorCallback, options)
165 | {
166 | function callback(transId, eventCode, result) {
167 | if (eventCode == 4)
168 | {
169 | errorCallback({message:"Position unavailable", code:2});
170 | }
171 | else
172 | {
173 | //no timestamp of location given?
174 | successCallback({timestamp:null, coords: {latitude:result.ReturnValue.Latitude, longitude:result.ReturnValue.Longitude, altitude:result.ReturnValue.Altitude,heading:result.ReturnValue.Heading}});
175 | }
176 | }
177 | //location criteria
178 | var criteria = new Object();
179 | criteria.LocationInformationClass = "BasicLocationInformation";
180 | //make the call
181 | provider.ILocation.GetLocation(criteria,callback);
182 | }
183 | }
184 | else if(typeof(window.blackberry)!="undefined" && blackberry.location.GPSSupported)
185 | {
186 |
187 | // set to autonomous mode
188 | if(typeof(blackberry.location.setAidMode)=="undefined")
189 | {
190 | return false;
191 | }
192 | blackberry.location.setAidMode(2);
193 | //override default method implementation
194 | pub.getCurrentPosition = function(successCallback,errorCallback,options)
195 | {
196 | //alert(parseFloat(navigator.appVersion));
197 | //passing over callbacks as parameter didn't work consistently
198 | //in the onLocationUpdate method, thats why they have to be set
199 | //outside
200 | bb_successCallback=successCallback;
201 | bb_errorCallback=errorCallback;
202 | //function needs to be a string according to
203 | //http://www.tonybunce.com/2008/05/08/Blackberry-Browser-Amp-GPS.aspx
204 | if(options['timeout'])
205 | {
206 | bb_blackberryTimeout_id=setTimeout("handleBlackBerryLocationTimeout()",options['timeout']);
207 | }
208 | else
209 | //default timeout when none is given to prevent a hanging script
210 | {
211 | bb_blackberryTimeout_id=setTimeout("handleBlackBerryLocationTimeout()",60000);
212 | }
213 | blackberry.location.onLocationUpdate("handleBlackBerryLocation()");
214 | blackberry.location.refreshLocation();
215 | }
216 | provider=blackberry.location;
217 | }
218 | }
219 | catch (e){
220 | alert("error="+e);
221 | if(typeof(console)!="undefined")
222 | {
223 | console.log(e);
224 | }
225 | return false;
226 | }
227 | return provider!=null;
228 | }
229 |
230 |
231 | return pub;
232 | }();
--------------------------------------------------------------------------------
/js/jquery-ui-1.10.0.custom.min.js:
--------------------------------------------------------------------------------
1 | /*! jQuery UI - v1.10.0 - 2013-02-05
2 | * http://jqueryui.com
3 | * Includes: jquery.ui.effect.js, jquery.ui.effect-highlight.js
4 | * Copyright (c) 2013 jQuery Foundation and other contributors Licensed MIT */
5 |
6 | jQuery.effects||function(e,t){var n="ui-effects-";e.effects={effect:{}},function(e,t){function h(e,t,n){var r=u[t.type]||{};return e==null?n||!t.def?null:t.def:(e=r.floor?~~e:parseFloat(e),isNaN(e)?t.def:r.mod?(e+r.mod)%r.mod:0>e?0:r.max")[0],l,c=e.each;f.style.cssText="background-color:rgba(1,1,1,.5)",a.rgba=f.style.backgroundColor.indexOf("rgba")>-1,c(o,function(e,t){t.cache="_"+e,t.props.alpha={idx:3,type:"percent",def:1}}),s.fn=e.extend(s.prototype,{parse:function(n,r,i,u){if(n===t)return this._rgba=[null,null,null,null],this;if(n.jquery||n.nodeType)n=e(n).css(r),r=t;var a=this,f=e.type(n),d=this._rgba=[];r!==t&&(n=[n,r,i,u],f="array");if(f==="string")return this.parse(p(n)||l._default);if(f==="array")return c(o.rgba.props,function(e,t){d[t.idx]=h(n[t.idx],t)}),this;if(f==="object")return n instanceof s?c(o,function(e,t){n[t.cache]&&(a[t.cache]=n[t.cache].slice())}):c(o,function(t,r){var i=r.cache;c(r.props,function(e,t){if(!a[i]&&r.to){if(e==="alpha"||n[e]==null)return;a[i]=r.to(a._rgba)}a[i][t.idx]=h(n[e],t,!0)}),a[i]&&e.inArray(null,a[i].slice(0,3))<0&&(a[i][3]=1,r.from&&(a._rgba=r.from(a[i])))}),this},is:function(e){var t=s(e),n=!0,r=this;return c(o,function(e,i){var s,o=t[i.cache];return o&&(s=r[i.cache]||i.to&&i.to(r._rgba)||[],c(i.props,function(e,t){if(o[t.idx]!=null)return n=o[t.idx]===s[t.idx],n})),n}),n},_space:function(){var e=[],t=this;return c(o,function(n,r){t[r.cache]&&e.push(n)}),e.pop()},transition:function(e,t){var n=s(e),r=n._space(),i=o[r],a=this.alpha()===0?s("transparent"):this,f=a[i.cache]||i.to(a._rgba),l=f.slice();return n=n[i.cache],c(i.props,function(e,r){var i=r.idx,s=f[i],o=n[i],a=u[r.type]||{};if(o===null)return;s===null?l[i]=o:(a.mod&&(o-s>a.mod/2?s+=a.mod:s-o>a.mod/2&&(s-=a.mod)),l[i]=h((o-s)*t+s,r))}),this[r](l)},blend:function(t){if(this._rgba[3]===1)return this;var n=this._rgba.slice(),r=n.pop(),i=s(t)._rgba;return s(e.map(n,function(e,t){return(1-r)*i[t]+r*e}))},toRgbaString:function(){var t="rgba(",n=e.map(this._rgba,function(e,t){return e==null?t>2?1:0:e});return n[3]===1&&(n.pop(),t="rgb("),t+n.join()+")"},toHslaString:function(){var t="hsla(",n=e.map(this.hsla(),function(e,t){return e==null&&(e=t>2?1:0),t&&t<3&&(e=Math.round(e*100)+"%"),e});return n[3]===1&&(n.pop(),t="hsl("),t+n.join()+")"},toHexString:function(t){var n=this._rgba.slice(),r=n.pop();return t&&n.push(~~(r*255)),"#"+e.map(n,function(e){return e=(e||0).toString(16),e.length===1?"0"+e:e}).join("")},toString:function(){return this._rgba[3]===0?"transparent":this.toRgbaString()}}),s.fn.parse.prototype=s.fn,o.hsla.to=function(e){if(e[0]==null||e[1]==null||e[2]==null)return[null,null,null,e[3]];var t=e[0]/255,n=e[1]/255,r=e[2]/255,i=e[3],s=Math.max(t,n,r),o=Math.min(t,n,r),u=s-o,a=s+o,f=a*.5,l,c;return o===s?l=0:t===s?l=60*(n-r)/u+360:n===s?l=60*(r-t)/u+120:l=60*(t-n)/u+240,u===0?c=0:f<=.5?c=u/a:c=u/(2-a),[Math.round(l)%360,c,f,i==null?1:i]},o.hsla.from=function(e){if(e[0]==null||e[1]==null||e[2]==null)return[null,null,null,e[3]];var t=e[0]/360,n=e[1],r=e[2],i=e[3],s=r<=.5?r*(1+n):r+n-r*n,o=2*r-s;return[Math.round(d(o,s,t+1/3)*255),Math.round(d(o,s,t)*255),Math.round(d(o,s,t-1/3)*255),i]},c(o,function(n,i){var o=i.props,u=i.cache,a=i.to,f=i.from;s.fn[n]=function(n){a&&!this[u]&&(this[u]=a(this._rgba));if(n===t)return this[u].slice();var r,i=e.type(n),l=i==="array"||i==="object"?n:arguments,p=this[u].slice();return c(o,function(e,t){var n=l[i==="object"?e:t.idx];n==null&&(n=p[t.idx]),p[t.idx]=h(n,t)}),f?(r=s(f(p)),r[u]=p,r):s(p)},c(o,function(t,i){if(s.fn[t])return;s.fn[t]=function(s){var o=e.type(s),u=t==="alpha"?this._hsla?"hsla":"rgba":n,a=this[u](),f=a[i.idx],l;return o==="undefined"?f:(o==="function"&&(s=s.call(this,f),o=e.type(s)),s==null&&i.empty?this:(o==="string"&&(l=r.exec(s),l&&(s=f+parseFloat(l[2])*(l[1]==="+"?1:-1))),a[i.idx]=s,this[u](a)))}})}),s.hook=function(t){var n=t.split(" ");c(n,function(t,n){e.cssHooks[n]={set:function(t,r){var i,o,u="";if(r!=="transparent"&&(e.type(r)!=="string"||(i=p(r)))){r=s(i||r);if(!a.rgba&&r._rgba[3]!==1){o=n==="backgroundColor"?t.parentNode:t;while((u===""||u==="transparent")&&o&&o.style)try{u=e.css(o,"backgroundColor"),o=o.parentNode}catch(f){}r=r.blend(u&&u!=="transparent"?u:"_default")}r=r.toRgbaString()}try{t.style[n]=r}catch(f){}}},e.fx.step[n]=function(t){t.colorInit||(t.start=s(t.elem,n),t.end=s(t.end),t.colorInit=!0),e.cssHooks[n].set(t.elem,t.start.transition(t.end,t.pos))}})},s.hook(n),e.cssHooks.borderColor={expand:function(e){var t={};return c(["Top","Right","Bottom","Left"],function(n,r){t["border"+r+"Color"]=e}),t}},l=e.Color.names={aqua:"#00ffff",black:"#000000",blue:"#0000ff",fuchsia:"#ff00ff",gray:"#808080",green:"#008000",lime:"#00ff00",maroon:"#800000",navy:"#000080",olive:"#808000",purple:"#800080",red:"#ff0000",silver:"#c0c0c0",teal:"#008080",white:"#ffffff",yellow:"#ffff00",transparent:[null,null,null,0],_default:"#ffffff"}}(jQuery),function(){function i(t){var n,r,i=t.ownerDocument.defaultView?t.ownerDocument.defaultView.getComputedStyle(t,null):t.currentStyle,s={};if(i&&i.length&&i[0]&&i[i[0]]){r=i.length;while(r--)n=i[r],typeof i[n]=="string"&&(s[e.camelCase(n)]=i[n])}else for(n in i)typeof i[n]=="string"&&(s[n]=i[n]);return s}function s(t,n){var i={},s,o;for(s in n)o=n[s],t[s]!==o&&!r[s]&&(e.fx.step[s]||!isNaN(parseFloat(o)))&&(i[s]=o);return i}var n=["add","remove","toggle"],r={border:1,borderBottom:1,borderColor:1,borderLeft:1,borderRight:1,borderTop:1,borderWidth:1,margin:1,padding:1};e.each(["borderLeftStyle","borderRightStyle","borderBottomStyle","borderTopStyle"],function(t,n){e.fx.step[n]=function(e){if(e.end!=="none"&&!e.setAttr||e.pos===1&&!e.setAttr)jQuery.style(e.elem,n,e.end),e.setAttr=!0}}),e.fn.addBack||(e.fn.addBack=function(e){return this.add(e==null?this.prevObject:this.prevObject.filter(e))}),e.effects.animateClass=function(t,r,o,u){var a=e.speed(r,o,u);return this.queue(function(){var r=e(this),o=r.attr("class")||"",u,f=a.children?r.find("*").addBack():r;f=f.map(function(){var t=e(this);return{el:t,start:i(this)}}),u=function(){e.each(n,function(e,n){t[n]&&r[n+"Class"](t[n])})},u(),f=f.map(function(){return this.end=i(this.el[0]),this.diff=s(this.start,this.end),this}),r.attr("class",o),f=f.map(function(){var t=this,n=e.Deferred(),r=e.extend({},a,{queue:!1,complete:function(){n.resolve(t)}});return this.el.animate(this.diff,r),n.promise()}),e.when.apply(e,f.get()).done(function(){u(),e.each(arguments,function(){var t=this.el;e.each(this.diff,function(e){t.css(e,"")})}),a.complete.call(r[0])})})},e.fn.extend({_addClass:e.fn.addClass,addClass:function(t,n,r,i){return n?e.effects.animateClass.call(this,{add:t},n,r,i):this._addClass(t)},_removeClass:e.fn.removeClass,removeClass:function(t,n,r,i){return n?e.effects.animateClass.call(this,{remove:t},n,r,i):this._removeClass(t)},_toggleClass:e.fn.toggleClass,toggleClass:function(n,r,i,s,o){return typeof r=="boolean"||r===t?i?e.effects.animateClass.call(this,r?{add:n}:{remove:n},i,s,o):this._toggleClass(n,r):e.effects.animateClass.call(this,{toggle:n},r,i,s)},switchClass:function(t,n,r,i,s){return e.effects.animateClass.call(this,{add:n,remove:t},r,i,s)}})}(),function(){function r(t,n,r,i){e.isPlainObject(t)&&(n=t,t=t.effect),t={effect:t},n==null&&(n={}),e.isFunction(n)&&(i=n,r=null,n={});if(typeof n=="number"||e.fx.speeds[n])i=r,r=n,n={};return e.isFunction(r)&&(i=r,r=null),n&&e.extend(t,n),r=r||n.duration,t.duration=e.fx.off?0:typeof r=="number"?r:r in e.fx.speeds?e.fx.speeds[r]:e.fx.speeds._default,t.complete=i||n.complete,t}function i(t){return!t||typeof t=="number"||e.fx.speeds[t]?!0:typeof t=="string"&&!e.effects.effect[t]}e.extend(e.effects,{version:"1.10.0",save:function(e,t){for(var r=0;r").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent",border:"none",margin:0,padding:0}),i={width:t.width(),height:t.height()},s=document.activeElement;try{s.id}catch(o){s=document.body}return t.wrap(r),(t[0]===s||e.contains(t[0],s))&&e(s).focus(),r=t.parent(),t.css("position")==="static"?(r.css({position:"relative"}),t.css({position:"relative"})):(e.extend(n,{position:t.css("position"),zIndex:t.css("z-index")}),e.each(["top","left","bottom","right"],function(e,r){n[r]=t.css(r),isNaN(parseInt(n[r],10))&&(n[r]="auto")}),t.css({position:"relative",top:0,left:0,right:"auto",bottom:"auto"})),t.css(i),r.css(n).show()},removeWrapper:function(t){var n=document.activeElement;return t.parent().is(".ui-effects-wrapper")&&(t.parent().replaceWith(t),(t[0]===n||e.contains(t[0],n))&&e(n).focus()),t},setTransition:function(t,n,r,i){return i=i||{},e.each(n,function(e,n){var s=t.cssUnit(n);s[0]>0&&(i[n]=s[0]*r+s[1])}),i}}),e.fn.extend({effect:function(){function o(n){function u(){e.isFunction(i)&&i.call(r[0]),e.isFunction(n)&&n()}var r=e(this),i=t.complete,o=t.mode;(r.is(":hidden")?o==="hide":o==="show")?u():s.call(r[0],t,u)}var t=r.apply(this,arguments),n=t.mode,i=t.queue,s=e.effects.effect[t.effect];return e.fx.off||!s?n?this[n](t.duration,t.complete):this.each(function(){t.complete&&t.complete.call(this)}):i===!1?this.each(o):this.queue(i||"fx",o)},_show:e.fn.show,show:function(e){if(i(e))return this._show.apply(this,arguments);var t=r.apply(this,arguments);return t.mode="show",this.effect.call(this,t)},_hide:e.fn.hide,hide:function(e){if(i(e))return this._hide.apply(this,arguments);var t=r.apply(this,arguments);return t.mode="hide",this.effect.call(this,t)},__toggle:e.fn.toggle,toggle:function(t){if(i(t)||typeof t=="boolean"||e.isFunction(t))return this.__toggle.apply(this,arguments);var n=r.apply(this,arguments);return n.mode="toggle",this.effect.call(this,n)},cssUnit:function(t){var n=this.css(t),r=[];return e.each(["em","px","%","pt"],function(e,t){n.indexOf(t)>0&&(r=[parseFloat(n),t])}),r}})}(),function(){var t={};e.each(["Quad","Cubic","Quart","Quint","Expo"],function(e,n){t[n]=function(t){return Math.pow(t,e+2)}}),e.extend(t,{Sine:function(e){return 1-Math.cos(e*Math.PI/2)},Circ:function(e){return 1-Math.sqrt(1-e*e)},Elastic:function(e){return e===0||e===1?e:-Math.pow(2,8*(e-1))*Math.sin(((e-1)*80-7.5)*Math.PI/15)},Back:function(e){return e*e*(3*e-2)},Bounce:function(e){var t,n=4;while(e<((t=Math.pow(2,--n))-1)/11);return 1/Math.pow(4,3-n)-7.5625*Math.pow((t*3-2)/22-e,2)}}),e.each(t,function(t,n){e.easing["easeIn"+t]=n,e.easing["easeOut"+t]=function(e){return 1-n(1-e)},e.easing["easeInOut"+t]=function(e){return e<.5?n(e*2)/2:1-n(e*-2+2)/2}})}()}(jQuery);(function(e,t){e.effects.effect.highlight=function(t,n){var r=e(this),i=["backgroundImage","backgroundColor","opacity"],s=e.effects.setMode(r,t.mode||"show"),o={backgroundColor:r.css("backgroundColor")};s==="hide"&&(o.opacity=0),e.effects.save(r,i),r.show().css({backgroundImage:"none",backgroundColor:t.color||"#ffff99"}).animate(o,{queue:!1,duration:t.duration,easing:t.easing,complete:function(){s==="hide"&&r.hide(),e.effects.restore(r,i),n()}})}})(jQuery);
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Fahrkartenautomaten in OSM
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
303 |
304 |
305 |
306 |
307 |
308 |
309 |
381 |
387 |
388 |
Zoom in to load Data
389 |
390 |
391 |
392 |
395 |
396 |
397 |
398 |
--------------------------------------------------------------------------------
/about.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
202 |
203 | Fahrkartenautomaten in OSM
204 |
205 | Testinstallation und Source und flattr
206 |
207 | Diese Karte zeigt Fahrkartenautomaten in Openstreetmap . Es werden Betreiber, Zahlungsmöglichkeiten, Refs, Notizen und fixmes angezeigt.
208 |
209 | License
210 |
211 | MIT-License
212 |
213 | Copyright (c) 2013 ubahnverleih Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
214 |
215 |
216 |
--------------------------------------------------------------------------------
/js/jquery.js:
--------------------------------------------------------------------------------
1 | /*! jQuery v1.7.1 jquery.com | jquery.org/license */
2 | (function(a,b){function cy(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cv(a){if(!ck[a]){var b=c.body,d=f("<"+a+">").appendTo(b),e=d.css("display");d.remove();if(e==="none"||e===""){cl||(cl=c.createElement("iframe"),cl.frameBorder=cl.width=cl.height=0),b.appendChild(cl);if(!cm||!cl.createElement)cm=(cl.contentWindow||cl.contentDocument).document,cm.write((c.compatMode==="CSS1Compat"?"":"")+""),cm.close();d=cm.createElement(a),cm.body.appendChild(d),e=f.css(d,"display"),b.removeChild(cl)}ck[a]=e}return ck[a]}function cu(a,b){var c={};f.each(cq.concat.apply([],cq.slice(0,b)),function(){c[this]=a});return c}function ct(){cr=b}function cs(){setTimeout(ct,0);return cr=f.now()}function cj(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ci(){try{return new a.XMLHttpRequest}catch(b){}}function cc(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g0){if(c!=="border")for(;g=0===c})}function S(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function K(){return!0}function J(){return!1}function n(a,b,c){var d=b+"defer",e=b+"queue",g=b+"mark",h=f._data(a,d);h&&(c==="queue"||!f._data(a,e))&&(c==="mark"||!f._data(a,g))&&setTimeout(function(){!f._data(a,e)&&!f._data(a,g)&&(f.removeData(a,d,!0),h.fire())},0)}function m(a){for(var b in a){if(b==="data"&&f.isEmptyObject(a[b]))continue;if(b!=="toJSON")return!1}return!0}function l(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(k,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNumeric(d)?parseFloat(d):j.test(d)?f.parseJSON(d):d}catch(g){}f.data(a,c,d)}else d=b}return d}function h(a){var b=g[a]={},c,d;a=a.split(/\s+/);for(c=0,d=a.length;c)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,n=/^[\],:{}\s]*$/,o=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,p=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,q=/(?:^|:|,)(?:\s*\[)+/g,r=/(webkit)[ \/]([\w.]+)/,s=/(opera)(?:.*version)?[ \/]([\w.]+)/,t=/(msie) ([\w.]+)/,u=/(mozilla)(?:.*? rv:([\w.]+))?/,v=/-([a-z]|[0-9])/ig,w=/^-ms-/,x=function(a,b){return(b+"").toUpperCase()},y=d.userAgent,z,A,B,C=Object.prototype.toString,D=Object.prototype.hasOwnProperty,E=Array.prototype.push,F=Array.prototype.slice,G=String.prototype.trim,H=Array.prototype.indexOf,I={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=m.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.7.1",length:0,size:function(){return this.length},toArray:function(){return F.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?E.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),A.add(a);return this},eq:function(a){a=+a;return a===-1?this.slice(a):this.slice(a,a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(F.apply(this,arguments),"slice",F.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:E,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j0)return;A.fireWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").off("ready")}},bindReady:function(){if(!A){A=e.Callbacks("once memory");if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",B,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",B),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&J()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a&&typeof a=="object"&&"setInterval"in a},isNumeric:function(a){return!isNaN(parseFloat(a))&&isFinite(a)},type:function(a){return a==null?String(a):I[C.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;try{if(a.constructor&&!D.call(a,"constructor")&&!D.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||D.call(a,d)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw new Error(a)},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(n.test(b.replace(o,"@").replace(p,"]").replace(q,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(c){var d,f;try{a.DOMParser?(f=new DOMParser,d=f.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(g){d=b}(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&e.error("Invalid XML: "+c);return d},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(w,"ms-").replace(v,x)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i1?i.call(arguments,0):b,j.notifyWith(k,e)}}function l(a){return function(c){b[a]=arguments.length>1?i.call(arguments,0):c,--g||j.resolveWith(j,b)}}var b=i.call(arguments,0),c=0,d=b.length,e=Array(d),g=d,h=d,j=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred(),k=j.promise();if(d>1){for(;ca ",d=q.getElementsByTagName("*"),e=q.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=q.getElementsByTagName("input")[0],b={leadingWhitespace:q.firstChild.nodeType===3,tbody:!q.getElementsByTagName("tbody").length,htmlSerialize:!!q.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,getSetAttribute:q.className!=="t",enctype:!!c.createElement("form").enctype,html5Clone:c.createElement("nav").cloneNode(!0).outerHTML!=="<:nav>",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0},i.checked=!0,b.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,b.optDisabled=!h.disabled;try{delete q.test}catch(s){b.deleteExpando=!1}!q.addEventListener&&q.attachEvent&&q.fireEvent&&(q.attachEvent("onclick",function(){b.noCloneEvent=!1}),q.cloneNode(!0).fireEvent("onclick")),i=c.createElement("input"),i.value="t",i.setAttribute("type","radio"),b.radioValue=i.value==="t",i.setAttribute("checked","checked"),q.appendChild(i),k=c.createDocumentFragment(),k.appendChild(q.lastChild),b.checkClone=k.cloneNode(!0).cloneNode(!0).lastChild.checked,b.appendChecked=i.checked,k.removeChild(i),k.appendChild(q),q.innerHTML="",a.getComputedStyle&&(j=c.createElement("div"),j.style.width="0",j.style.marginRight="0",q.style.width="2px",q.appendChild(j),b.reliableMarginRight=(parseInt((a.getComputedStyle(j,null)||{marginRight:0}).marginRight,10)||0)===0);if(q.attachEvent)for(o in{submit:1,change:1,focusin:1})n="on"+o,p=n in q,p||(q.setAttribute(n,"return;"),p=typeof q[n]=="function"),b[o+"Bubbles"]=p;k.removeChild(q),k=g=h=j=q=i=null,f(function(){var a,d,e,g,h,i,j,k,m,n,o,r=c.getElementsByTagName("body")[0];!r||(j=1,k="position:absolute;top:0;left:0;width:1px;height:1px;margin:0;",m="visibility:hidden;border:0;",n="style='"+k+"border:5px solid #000;padding:0;'",o=""+"",a=c.createElement("div"),a.style.cssText=m+"width:0;height:0;position:static;top:0;margin-top:"+j+"px",r.insertBefore(a,r.firstChild),q=c.createElement("div"),a.appendChild(q),q.innerHTML="",l=q.getElementsByTagName("td"),p=l[0].offsetHeight===0,l[0].style.display="",l[1].style.display="none",b.reliableHiddenOffsets=p&&l[0].offsetHeight===0,q.innerHTML="",q.style.width=q.style.paddingLeft="1px",f.boxModel=b.boxModel=q.offsetWidth===2,typeof q.style.zoom!="undefined"&&(q.style.display="inline",q.style.zoom=1,b.inlineBlockNeedsLayout=q.offsetWidth===2,q.style.display="",q.innerHTML="
",b.shrinkWrapBlocks=q.offsetWidth!==2),q.style.cssText=k+m,q.innerHTML=o,d=q.firstChild,e=d.firstChild,h=d.nextSibling.firstChild.firstChild,i={doesNotAddBorder:e.offsetTop!==5,doesAddBorderForTableAndCells:h.offsetTop===5},e.style.position="fixed",e.style.top="20px",i.fixedPosition=e.offsetTop===20||e.offsetTop===15,e.style.position=e.style.top="",d.style.overflow="hidden",d.style.position="relative",i.subtractsBorderForOverflowNotVisible=e.offsetTop===-5,i.doesNotIncludeMarginInBodyOffset=r.offsetTop!==j,r.removeChild(a),q=a=null,f.extend(b,i))});return b}();var j=/^(?:\{.*\}|\[.*\])$/,k=/([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!m(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g,h,i,j=f.expando,k=typeof c=="string",l=a.nodeType,m=l?f.cache:a,n=l?a[j]:a[j]&&j,o=c==="events";if((!n||!m[n]||!o&&!e&&!m[n].data)&&k&&d===b)return;n||(l?a[j]=n=++f.uuid:n=j),m[n]||(m[n]={},l||(m[n].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?m[n]=f.extend(m[n],c):m[n].data=f.extend(m[n].data,c);g=h=m[n],e||(h.data||(h.data={}),h=h.data),d!==b&&(h[f.camelCase(c)]=d);if(o&&!h[c])return g.events;k?(i=h[c],i==null&&(i=h[f.camelCase(c)])):i=h;return i}},removeData:function(a,b,c){if(!!f.acceptData(a)){var d,e,g,h=f.expando,i=a.nodeType,j=i?f.cache:a,k=i?a[h]:h;if(!j[k])return;if(b){d=c?j[k]:j[k].data;if(d){f.isArray(b)||(b in d?b=[b]:(b=f.camelCase(b),b in d?b=[b]:b=b.split(" ")));for(e=0,g=b.length;e-1)return!0;return!1},val:function(a){var c,d,e,g=this[0];{if(!!arguments.length){e=f.isFunction(a);return this.each(function(d){var g=f(this),h;if(this.nodeType===1){e?h=a.call(this,d,g.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.nodeName.toLowerCase()]||f.valHooks[this.type];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}if(g){c=f.valHooks[g.nodeName.toLowerCase()]||f.valHooks[g.type];if(c&&"get"in c&&(d=c.get(g,"value"))!==b)return d;d=g.value;return typeof d=="string"?d.replace(q,""):d==null?"":d}}}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c,d,e,g=a.selectedIndex,h=[],i=a.options,j=a.type==="select-one";if(g<0)return null;c=j?g:0,d=j?g+1:i.length;for(;c=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attr:function(a,c,d,e){var g,h,i,j=a.nodeType;if(!!a&&j!==3&&j!==8&&j!==2){if(e&&c in f.attrFn)return f(a)[c](d);if(typeof a.getAttribute=="undefined")return f.prop(a,c,d);i=j!==1||!f.isXMLDoc(a),i&&(c=c.toLowerCase(),h=f.attrHooks[c]||(u.test(c)?x:w));if(d!==b){if(d===null){f.removeAttr(a,c);return}if(h&&"set"in h&&i&&(g=h.set(a,d,c))!==b)return g;a.setAttribute(c,""+d);return d}if(h&&"get"in h&&i&&(g=h.get(a,c))!==null)return g;g=a.getAttribute(c);return g===null?b:g}},removeAttr:function(a,b){var c,d,e,g,h=0;if(b&&a.nodeType===1){d=b.toLowerCase().split(p),g=d.length;for(;h=0}})});var z=/^(?:textarea|input|select)$/i,A=/^([^\.]*)?(?:\.(.+))?$/,B=/\bhover(\.\S+)?\b/,C=/^key/,D=/^(?:mouse|contextmenu)|click/,E=/^(?:focusinfocus|focusoutblur)$/,F=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,G=function(a){var b=F.exec(a);b&&(b[1]=(b[1]||"").toLowerCase(),b[3]=b[3]&&new RegExp("(?:^|\\s)"+b[3]+"(?:\\s|$)"));return b},H=function(a,b){var c=a.attributes||{};return(!b[1]||a.nodeName.toLowerCase()===b[1])&&(!b[2]||(c.id||{}).value===b[2])&&(!b[3]||b[3].test((c["class"]||{}).value))},I=function(a){return f.event.special.hover?a:a.replace(B,"mouseenter$1 mouseleave$1")};
3 | f.event={add:function(a,c,d,e,g){var h,i,j,k,l,m,n,o,p,q,r,s;if(!(a.nodeType===3||a.nodeType===8||!c||!d||!(h=f._data(a)))){d.handler&&(p=d,d=p.handler),d.guid||(d.guid=f.guid++),j=h.events,j||(h.events=j={}),i=h.handle,i||(h.handle=i=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.dispatch.apply(i.elem,arguments):b},i.elem=a),c=f.trim(I(c)).split(" ");for(k=0;k=0&&(h=h.slice(0,-1),k=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.shift(),i.sort());if((!e||f.event.customEvent[h])&&!f.event.global[h])return;c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.isTrigger=!0,c.exclusive=k,c.namespace=i.join("."),c.namespace_re=c.namespace?new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)"):null,o=h.indexOf(":")<0?"on"+h:"";if(!e){j=f.cache;for(l in j)j[l].events&&j[l].events[h]&&f.event.trigger(c,d,j[l].handle.elem,!0);return}c.result=b,c.target||(c.target=e),d=d!=null?f.makeArray(d):[],d.unshift(c),p=f.event.special[h]||{};if(p.trigger&&p.trigger.apply(e,d)===!1)return;r=[[e,p.bindType||h]];if(!g&&!p.noBubble&&!f.isWindow(e)){s=p.delegateType||h,m=E.test(s+h)?e:e.parentNode,n=null;for(;m;m=m.parentNode)r.push([m,s]),n=m;n&&n===e.ownerDocument&&r.push([n.defaultView||n.parentWindow||a,s])}for(l=0;le&&i.push({elem:this,matches:d.slice(e)});for(j=0;j0?this.on(b,null,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0),C.test(b)&&(f.event.fixHooks[b]=f.event.keyHooks),D.test(b)&&(f.event.fixHooks[b]=f.event.mouseHooks)}),function(){function x(a,b,c,e,f,g){for(var h=0,i=e.length;h0){k=j;break}}j=j[a]}e[h]=k}}}function w(a,b,c,e,f,g){for(var h=0,i=e.length;h+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d="sizcache"+(Math.random()+"").replace(".",""),e=0,g=Object.prototype.toString,h=!1,i=!0,j=/\\/g,k=/\r\n/g,l=/\W/;[0,0].sort(function(){i=!1;return 0});var m=function(b,d,e,f){e=e||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return e;var i,j,k,l,n,q,r,t,u=!0,v=m.isXML(d),w=[],x=b;do{a.exec(""),i=a.exec(x);if(i){x=i[3],w.push(i[1]);if(i[2]){l=i[3];break}}}while(i);if(w.length>1&&p.exec(b))if(w.length===2&&o.relative[w[0]])j=y(w[0]+w[1],d,f);else{j=o.relative[w[0]]?[d]:m(w.shift(),d);while(w.length)b=w.shift(),o.relative[b]&&(b+=w.shift()),j=y(b,j,f)}else{!f&&w.length>1&&d.nodeType===9&&!v&&o.match.ID.test(w[0])&&!o.match.ID.test(w[w.length-1])&&(n=m.find(w.shift(),d,v),d=n.expr?m.filter(n.expr,n.set)[0]:n.set[0]);if(d){n=f?{expr:w.pop(),set:s(f)}:m.find(w.pop(),w.length===1&&(w[0]==="~"||w[0]==="+")&&d.parentNode?d.parentNode:d,v),j=n.expr?m.filter(n.expr,n.set):n.set,w.length>0?k=s(j):u=!1;while(w.length)q=w.pop(),r=q,o.relative[q]?r=w.pop():q="",r==null&&(r=d),o.relative[q](k,r,v)}else k=w=[]}k||(k=j),k||m.error(q||b);if(g.call(k)==="[object Array]")if(!u)e.push.apply(e,k);else if(d&&d.nodeType===1)for(t=0;k[t]!=null;t++)k[t]&&(k[t]===!0||k[t].nodeType===1&&m.contains(d,k[t]))&&e.push(j[t]);else for(t=0;k[t]!=null;t++)k[t]&&k[t].nodeType===1&&e.push(j[t]);else s(k,e);l&&(m(l,h,e,f),m.uniqueSort(e));return e};m.uniqueSort=function(a){if(u){h=i,a.sort(u);if(h)for(var b=1;b0},m.find=function(a,b,c){var d,e,f,g,h,i;if(!a)return[];for(e=0,f=o.order.length;e":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!l.test(b)){b=b.toLowerCase();for(;e=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(j,"")},TAG:function(a,b){return a[1].replace(j,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||m.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&m.error(a[0]);a[0]=e++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(j,"");!f&&o.attrMap[g]&&(a[1]=o.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(j,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=m(b[3],null,null,c);else{var g=m.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(o.match.POS.test(b[0])||o.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!m(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return bc[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=o.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||n([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||!!a.nodeName&&a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=m.attr?m.attr(a,c):o.attrHandle[c]?o.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":!f&&m.attr?d!=null:f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=o.setFilters[e];if(f)return f(a,c,b,d)}}},p=o.match.POS,q=function(a,b){return"\\"+(b-0+1)};for(var r in o.match)o.match[r]=new RegExp(o.match[r].source+/(?![^\[]*\])(?![^\(]*\))/.source),o.leftMatch[r]=new RegExp(/(^(?:.|\r|\n)*?)/.source+o.match[r].source.replace(/\\(\d+)/g,q));var s=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(t){s=function(a,b){var c=0,d=b||[];if(g.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var e=a.length;c ",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(o.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},o.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(o.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML=" ",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(o.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=m,b=c.createElement("div"),d="__sizzle__";b.innerHTML="
";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){m=function(b,e,f,g){e=e||c;if(!g&&!m.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return s(e.getElementsByTagName(b),f);if(h[2]&&o.find.CLASS&&e.getElementsByClassName)return s(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return s([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return s([],f);if(i.id===h[3])return s([i],f)}try{return s(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var k=e,l=e.getAttribute("id"),n=l||d,p=e.parentNode,q=/^\s*[+~]/.test(b);l?n=n.replace(/'/g,"\\$&"):e.setAttribute("id",n),q&&p&&(e=e.parentNode);try{if(!q||p)return s(e.querySelectorAll("[id='"+n+"'] "+b),f)}catch(r){}finally{l||k.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)m[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}m.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!m.isXML(a))try{if(e||!o.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return m(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="
";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;o.order.splice(1,0,"CLASS"),o.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?m.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?m.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:m.contains=function(){return!1},m.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var y=function(a,b,c){var d,e=[],f="",g=b.nodeType?[b]:b;while(d=o.match.PSEUDO.exec(a))f+=d[0],a=a.replace(o.match.PSEUDO,"");a=o.relative[a]?a+"*":a;for(var h=0,i=g.length;h0)for(h=g;h=0:f.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h=1;while(g&&g.ownerDocument&&g!==b){for(d=0;d-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a)return this[0]&&this[0].parentNode?this.prevAll().length:-1;if(typeof a=="string")return f.inArray(this[0],f(a));return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(S(c[0])||S(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling(a.parentNode.firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c);L.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!R[a]?f.unique(e):e,(this.length>1||N.test(d))&&M.test(a)&&(e=e.reverse());return this.pushStack(e,a,P.call(arguments).join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var V="abbr|article|aside|audio|canvas|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",W=/ jQuery\d+="(?:\d+|null)"/g,X=/^\s+/,Y=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Z=/<([\w:]+)/,$=/",""],legend:[1,""," "],thead:[1,""],tr:[2,""],td:[3,""],col:[2,""],area:[1,""," "],_default:[0,"",""]},bh=U(c);bg.optgroup=bg.option,bg.tbody=bg.tfoot=bg.colgroup=bg.caption=bg.thead,bg.th=bg.td,f.support.htmlSerialize||(bg._default=[1,"div","
"]),f.fn.extend({text:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.text(a.call(this,b,c.text()))});if(typeof a!="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return f.text(this)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=f.isFunction(a);return this.each(function(c){f(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f.clean(arguments);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,f.clean(arguments));return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")),f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function()
4 | {for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(W,""):null;if(typeof a=="string"&&!ba.test(a)&&(f.support.leadingWhitespace||!X.test(a))&&!bg[(Z.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Y,"<$1>$2>");try{for(var c=0,d=this.length;c1&&l0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d,e,g,h=f.support.html5Clone||!bc.test("<"+a.nodeName)?a.cloneNode(!0):bo(a);if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bk(a,h),d=bl(a),e=bl(h);for(g=0;d[g];++g)e[g]&&bk(d[g],e[g])}if(b){bj(a,h);if(c){d=bl(a),e=bl(h);for(g=0;d[g];++g)bj(d[g],e[g])}}d=e=null;return h},clean:function(a,b,d,e){var g;b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);var h=[],i;for(var j=0,k;(k=a[j])!=null;j++){typeof k=="number"&&(k+="");if(!k)continue;if(typeof k=="string")if(!_.test(k))k=b.createTextNode(k);else{k=k.replace(Y,"<$1>$2>");var l=(Z.exec(k)||["",""])[1].toLowerCase(),m=bg[l]||bg._default,n=m[0],o=b.createElement("div");b===c?bh.appendChild(o):U(b).appendChild(o),o.innerHTML=m[1]+k+m[2];while(n--)o=o.lastChild;if(!f.support.tbody){var p=$.test(k),q=l==="table"&&!p?o.firstChild&&o.firstChild.childNodes:m[1]===""&&!p?o.childNodes:[];for(i=q.length-1;i>=0;--i)f.nodeName(q[i],"tbody")&&!q[i].childNodes.length&&q[i].parentNode.removeChild(q[i])}!f.support.leadingWhitespace&&X.test(k)&&o.insertBefore(b.createTextNode(X.exec(k)[0]),o.firstChild),k=o.childNodes}var r;if(!f.support.appendChecked)if(k[0]&&typeof (r=k.length)=="number")for(i=0;i=0)return b+"px"}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return br.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=f.isNumeric(b)?"alpha(opacity="+b*100+")":"",g=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&f.trim(g.replace(bq,""))===""){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bq.test(g)?g.replace(bq,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){var c;f.swap(a,{display:"inline-block"},function(){b?c=bz(a,"margin-right","marginRight"):c=a.style.marginRight});return c}})}),c.defaultView&&c.defaultView.getComputedStyle&&(bA=function(a,b){var c,d,e;b=b.replace(bs,"-$1").toLowerCase(),(d=a.ownerDocument.defaultView)&&(e=d.getComputedStyle(a,null))&&(c=e.getPropertyValue(b),c===""&&!f.contains(a.ownerDocument.documentElement,a)&&(c=f.style(a,b)));return c}),c.documentElement.currentStyle&&(bB=function(a,b){var c,d,e,f=a.currentStyle&&a.currentStyle[b],g=a.style;f===null&&g&&(e=g[b])&&(f=e),!bt.test(f)&&bu.test(f)&&(c=g.left,d=a.runtimeStyle&&a.runtimeStyle.left,d&&(a.runtimeStyle.left=a.currentStyle.left),g.left=b==="fontSize"?"1em":f||0,f=g.pixelLeft+"px",g.left=c,d&&(a.runtimeStyle.left=d));return f===""?"auto":f}),bz=bA||bB,f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style&&a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)});var bD=/%20/g,bE=/\[\]$/,bF=/\r?\n/g,bG=/#.*$/,bH=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bI=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bJ=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,bK=/^(?:GET|HEAD)$/,bL=/^\/\//,bM=/\?/,bN=/