From 1ca944283345e738e1728b06cfe3990bd6b3d180 Mon Sep 17 00:00:00 2001 From: Steffen Vogel Date: Tue, 26 Apr 2016 10:05:35 +0200 Subject: [PATCH] restructured repo --- {josephus => c++/josephus}/.gitignore | 0 {josephus => c++/josephus}/Makefile | 0 {josephus => c++/josephus}/josephus.cpp | 0 {josephus => c++/josephus}/josephus.h | 0 {gc_spider => c++/ndame}/.buildpath | 0 {ndame => c++/ndame}/.gitignore | 0 {ndame => c++/ndame}/Makefile | 0 {ndame => c++/ndame}/dame.gif | Bin {ndame => c++/ndame}/index.php | 0 {ndame => c++/ndame}/ndame.cpp | 0 {ndame => c++/ndame}/ndame.h | 0 {ndame => c++/ndame}/schach.css | 0 {ndame => c++/ndame}/schach.js | 0 {rom_selector => c++/rom_selector}/main.cpp | 0 {rom_selector => c++/rom_selector}/test/1.smc | 0 {rom_selector => c++/rom_selector}/test/2.smc | 0 {rom_selector => c++/rom_selector}/test/4.smc | 0 {rom_selector => c++/rom_selector}/test/5.smc | 0 {rom_selector => c++/rom_selector}/test/6.smc | 0 {rom_selector => c++/rom_selector}/test/7.smc | 0 {rom_selector => c++/rom_selector}/test/8.smc | 0 {rom_selector => c++/rom_selector}/test/9.smc | 0 {rom_selector => c++/rom_selector}/test/a | 0 {rom_selector => c++/rom_selector}/test/a.smc | 0 .../rom_selector}/test/aa.smc | 0 .../rom_selector}/test/aab.smc | 0 .../rom_selector}/test/aac.smc | 0 .../rom_selector}/test/abc.smc | 0 {bookmarks => php/bookmarks}/bookmarks.csv | 0 {bookmarks => php/bookmarks}/favico.php | 0 {bookmarks => php/bookmarks}/generate.php | 0 {captcha => php/captcha}/captcha.html | 0 {captcha => php/captcha}/captcha.php | 0 {captcha => php/captcha}/fonts/3000.ttf | Bin {captcha => php/captcha}/fonts/39smooth.ttf | Bin {captcha => php/captcha}/fonts/42.ttf | Bin {captcha => php/captcha}/fonts/technine.ttf | Bin {captcha => php/captcha}/fonts/texasled.ttf | Bin {captcha => php/captcha}/fonts/xband.ttf | Bin .../captcha}/img/loading_small.gif | Bin {captcha => php/captcha}/img/reload.png | Bin .../drupal_import}/drupal_import.php | 0 .../drupal_import}/install.sql | 0 .../drupal_import}/parse_html.php | 0 .../drupal_import}/parse_html.sh | 0 .../drupal_import}/webpage/example.html | 332 +++--- {interactive_php => php/gc_spider}/.buildpath | 0 {gc_spider => php/gc_spider}/gc.kml | 0 {gc_spider => php/gc_spider}/icons/accept.png | Bin {gc_spider => php/gc_spider}/icons/delete.png | Bin .../gc_spider}/icons/gc-cito.gif | Bin .../gc_spider}/icons/gc-earthcache.gif | Bin .../gc_spider}/icons/gc-event.gif | Bin .../gc_spider}/icons/gc-letterbox.gif | Bin .../gc_spider}/icons/gc-megaevent.gif | Bin .../gc_spider}/icons/gc-multi.gif | Bin .../gc_spider}/icons/gc-mystery.gif | Bin .../gc_spider}/icons/gc-traditional.gif | Bin .../gc_spider}/icons/gc-virtual.gif | Bin .../gc_spider}/icons/gc-webcam.gif | Bin .../gc_spider}/include/classes/gc.php | 0 {gc_spider => php/gc_spider}/index.php | 0 {gc_spider => php/gc_spider}/json_response | 0 {gc_spider => php/gc_spider}/kml.php | 0 .../gc_spider}/post_request_data | 0 {ndame => php/interactive_php}/.buildpath | 0 .../interactive_php}/1.ttf | Bin .../interactive_php}/2.ttf | Bin .../interactive_php}/3.ttf | Bin .../interactive_php}/4.ttf | Bin .../interactive_php}/5.ttf | Bin .../interactive_php}/6.ttf | Bin .../interactive_php}/image.php | 0 .../interactive_php}/index.html | 0 .../slider/css/bluecurve/bluecurve.css | 158 +-- .../css/bluecurve/handle.horizontal.png | Bin .../slider/css/bluecurve/handle.vertical.png | Bin .../slider/css/bluecurve/horizontal.gif | Bin .../slider/css/bluecurve/vertical.gif | Bin .../interactive_php}/slider/css/boxsizing.htc | 312 +++--- .../css/luna/handle.horizontal.hover.png | Bin .../slider/css/luna/handle.horizontal.png | Bin .../slider/css/luna/handle.vertical.hover.png | Bin .../slider/css/luna/handle.vertical.png | Bin .../interactive_php}/slider/css/luna/luna.css | 148 +-- .../slider/css/swing/handle.horizontal.png | Bin .../slider/css/swing/handle.vertical.png | Bin .../slider/css/swing/swing.css | 162 +-- .../slider/css/winclassic.css | 196 ++-- .../interactive_php}/slider/js/range.js | 264 ++--- .../interactive_php}/slider/js/slider.js | 976 +++++++++--------- .../interactive_php}/slider/js/timer.js | 122 +-- .../interactive_php}/slider/license.txt | 404 ++++---- .../link_preview}/link-preview.php | 198 ++-- .../link_preview}/linkinfo.php | 0 {link_preview => php/link_preview}/test.php | 274 ++--- {sms_contact => php/sms_contact}/.gitignore | 0 .../sms_contact}/blacklist.php | 0 {sms_contact => php/sms_contact}/index.php | 190 ++-- {sms_contact => php/sms_contact}/md5.js | 18 +- .../sms_contact}/sipgateAPI.php | 0 .../sms_contact}/sipgateAPI_Exception.php | 0 {sms_contact => php/sms_contact}/sms.js | 0 {sms_contact => php/sms_contact}/style.css | 0 .../sms_contact}/xmlrpc/xmlrpc.inc | 0 .../sms_contact}/xmlrpc/xmlrpc_wrappers.inc | 0 .../sms_contact}/xmlrpc/xmlrpcs.inc | 0 {hemblem => web/hemblem}/bcrcl.gif | Bin {hemblem => web/hemblem}/index.html | 0 {hemblem => web/hemblem}/script.js | 0 {hemblem => web/hemblem}/style.css | 0 111 files changed, 1877 insertions(+), 1877 deletions(-) rename {josephus => c++/josephus}/.gitignore (100%) rename {josephus => c++/josephus}/Makefile (100%) rename {josephus => c++/josephus}/josephus.cpp (100%) rename {josephus => c++/josephus}/josephus.h (100%) rename {gc_spider => c++/ndame}/.buildpath (100%) rename {ndame => c++/ndame}/.gitignore (100%) rename {ndame => c++/ndame}/Makefile (100%) rename {ndame => c++/ndame}/dame.gif (100%) rename {ndame => c++/ndame}/index.php (100%) rename {ndame => c++/ndame}/ndame.cpp (100%) rename {ndame => c++/ndame}/ndame.h (100%) rename {ndame => c++/ndame}/schach.css (100%) rename {ndame => c++/ndame}/schach.js (100%) rename {rom_selector => c++/rom_selector}/main.cpp (100%) rename {rom_selector => c++/rom_selector}/test/1.smc (100%) rename {rom_selector => c++/rom_selector}/test/2.smc (100%) rename {rom_selector => c++/rom_selector}/test/4.smc (100%) rename {rom_selector => c++/rom_selector}/test/5.smc (100%) rename {rom_selector => c++/rom_selector}/test/6.smc (100%) rename {rom_selector => c++/rom_selector}/test/7.smc (100%) rename {rom_selector => c++/rom_selector}/test/8.smc (100%) rename {rom_selector => c++/rom_selector}/test/9.smc (100%) rename {rom_selector => c++/rom_selector}/test/a (100%) rename {rom_selector => c++/rom_selector}/test/a.smc (100%) rename {rom_selector => c++/rom_selector}/test/aa.smc (100%) rename {rom_selector => c++/rom_selector}/test/aab.smc (100%) rename {rom_selector => c++/rom_selector}/test/aac.smc (100%) rename {rom_selector => c++/rom_selector}/test/abc.smc (100%) rename {bookmarks => php/bookmarks}/bookmarks.csv (100%) rename {bookmarks => php/bookmarks}/favico.php (100%) rename {bookmarks => php/bookmarks}/generate.php (100%) rename {captcha => php/captcha}/captcha.html (100%) rename {captcha => php/captcha}/captcha.php (100%) rename {captcha => php/captcha}/fonts/3000.ttf (100%) rename {captcha => php/captcha}/fonts/39smooth.ttf (100%) rename {captcha => php/captcha}/fonts/42.ttf (100%) rename {captcha => php/captcha}/fonts/technine.ttf (100%) rename {captcha => php/captcha}/fonts/texasled.ttf (100%) rename {captcha => php/captcha}/fonts/xband.ttf (100%) rename {captcha => php/captcha}/img/loading_small.gif (100%) rename {captcha => php/captcha}/img/reload.png (100%) rename {drupal_import => php/drupal_import}/drupal_import.php (100%) rename {drupal_import => php/drupal_import}/install.sql (100%) rename {drupal_import => php/drupal_import}/parse_html.php (100%) rename {drupal_import => php/drupal_import}/parse_html.sh (100%) rename {drupal_import => php/drupal_import}/webpage/example.html (99%) rename {interactive_php => php/gc_spider}/.buildpath (100%) rename {gc_spider => php/gc_spider}/gc.kml (100%) rename {gc_spider => php/gc_spider}/icons/accept.png (100%) rename {gc_spider => php/gc_spider}/icons/delete.png (100%) rename {gc_spider => php/gc_spider}/icons/gc-cito.gif (100%) rename {gc_spider => php/gc_spider}/icons/gc-earthcache.gif (100%) rename {gc_spider => php/gc_spider}/icons/gc-event.gif (100%) rename {gc_spider => php/gc_spider}/icons/gc-letterbox.gif (100%) rename {gc_spider => php/gc_spider}/icons/gc-megaevent.gif (100%) rename {gc_spider => php/gc_spider}/icons/gc-multi.gif (100%) rename {gc_spider => php/gc_spider}/icons/gc-mystery.gif (100%) rename {gc_spider => php/gc_spider}/icons/gc-traditional.gif (100%) rename {gc_spider => php/gc_spider}/icons/gc-virtual.gif (100%) rename {gc_spider => php/gc_spider}/icons/gc-webcam.gif (100%) rename {gc_spider => php/gc_spider}/include/classes/gc.php (100%) rename {gc_spider => php/gc_spider}/index.php (100%) rename {gc_spider => php/gc_spider}/json_response (100%) rename {gc_spider => php/gc_spider}/kml.php (100%) rename {gc_spider => php/gc_spider}/post_request_data (100%) rename {ndame => php/interactive_php}/.buildpath (100%) rename {interactive_php => php/interactive_php}/1.ttf (100%) rename {interactive_php => php/interactive_php}/2.ttf (100%) rename {interactive_php => php/interactive_php}/3.ttf (100%) rename {interactive_php => php/interactive_php}/4.ttf (100%) rename {interactive_php => php/interactive_php}/5.ttf (100%) rename {interactive_php => php/interactive_php}/6.ttf (100%) rename {interactive_php => php/interactive_php}/image.php (100%) rename {interactive_php => php/interactive_php}/index.html (100%) rename {interactive_php => php/interactive_php}/slider/css/bluecurve/bluecurve.css (95%) rename {interactive_php => php/interactive_php}/slider/css/bluecurve/handle.horizontal.png (100%) rename {interactive_php => php/interactive_php}/slider/css/bluecurve/handle.vertical.png (100%) rename {interactive_php => php/interactive_php}/slider/css/bluecurve/horizontal.gif (100%) rename {interactive_php => php/interactive_php}/slider/css/bluecurve/vertical.gif (100%) rename {interactive_php => php/interactive_php}/slider/css/boxsizing.htc (96%) rename {interactive_php => php/interactive_php}/slider/css/luna/handle.horizontal.hover.png (100%) rename {interactive_php => php/interactive_php}/slider/css/luna/handle.horizontal.png (100%) rename {interactive_php => php/interactive_php}/slider/css/luna/handle.vertical.hover.png (100%) rename {interactive_php => php/interactive_php}/slider/css/luna/handle.vertical.png (100%) rename {interactive_php => php/interactive_php}/slider/css/luna/luna.css (95%) rename {interactive_php => php/interactive_php}/slider/css/swing/handle.horizontal.png (100%) rename {interactive_php => php/interactive_php}/slider/css/swing/handle.vertical.png (100%) rename {interactive_php => php/interactive_php}/slider/css/swing/swing.css (95%) rename {interactive_php => php/interactive_php}/slider/css/winclassic.css (95%) rename {interactive_php => php/interactive_php}/slider/js/range.js (97%) rename {interactive_php => php/interactive_php}/slider/js/slider.js (96%) rename {interactive_php => php/interactive_php}/slider/js/timer.js (97%) rename {interactive_php => php/interactive_php}/slider/license.txt (98%) rename {link_preview => php/link_preview}/link-preview.php (97%) rename {link_preview => php/link_preview}/linkinfo.php (100%) rename {link_preview => php/link_preview}/test.php (95%) rename {sms_contact => php/sms_contact}/.gitignore (100%) rename {sms_contact => php/sms_contact}/blacklist.php (100%) rename {sms_contact => php/sms_contact}/index.php (97%) rename {sms_contact => php/sms_contact}/md5.js (99%) rename {sms_contact => php/sms_contact}/sipgateAPI.php (100%) rename {sms_contact => php/sms_contact}/sipgateAPI_Exception.php (100%) rename {sms_contact => php/sms_contact}/sms.js (100%) rename {sms_contact => php/sms_contact}/style.css (100%) rename {sms_contact => php/sms_contact}/xmlrpc/xmlrpc.inc (100%) rename {sms_contact => php/sms_contact}/xmlrpc/xmlrpc_wrappers.inc (100%) rename {sms_contact => php/sms_contact}/xmlrpc/xmlrpcs.inc (100%) rename {hemblem => web/hemblem}/bcrcl.gif (100%) rename {hemblem => web/hemblem}/index.html (100%) rename {hemblem => web/hemblem}/script.js (100%) rename {hemblem => web/hemblem}/style.css (100%) diff --git a/josephus/.gitignore b/c++/josephus/.gitignore similarity index 100% rename from josephus/.gitignore rename to c++/josephus/.gitignore diff --git a/josephus/Makefile b/c++/josephus/Makefile similarity index 100% rename from josephus/Makefile rename to c++/josephus/Makefile diff --git a/josephus/josephus.cpp b/c++/josephus/josephus.cpp similarity index 100% rename from josephus/josephus.cpp rename to c++/josephus/josephus.cpp diff --git a/josephus/josephus.h b/c++/josephus/josephus.h similarity index 100% rename from josephus/josephus.h rename to c++/josephus/josephus.h diff --git a/gc_spider/.buildpath b/c++/ndame/.buildpath similarity index 100% rename from gc_spider/.buildpath rename to c++/ndame/.buildpath diff --git a/ndame/.gitignore b/c++/ndame/.gitignore similarity index 100% rename from ndame/.gitignore rename to c++/ndame/.gitignore diff --git a/ndame/Makefile b/c++/ndame/Makefile similarity index 100% rename from ndame/Makefile rename to c++/ndame/Makefile diff --git a/ndame/dame.gif b/c++/ndame/dame.gif similarity index 100% rename from ndame/dame.gif rename to c++/ndame/dame.gif diff --git a/ndame/index.php b/c++/ndame/index.php similarity index 100% rename from ndame/index.php rename to c++/ndame/index.php diff --git a/ndame/ndame.cpp b/c++/ndame/ndame.cpp similarity index 100% rename from ndame/ndame.cpp rename to c++/ndame/ndame.cpp diff --git a/ndame/ndame.h b/c++/ndame/ndame.h similarity index 100% rename from ndame/ndame.h rename to c++/ndame/ndame.h diff --git a/ndame/schach.css b/c++/ndame/schach.css similarity index 100% rename from ndame/schach.css rename to c++/ndame/schach.css diff --git a/ndame/schach.js b/c++/ndame/schach.js similarity index 100% rename from ndame/schach.js rename to c++/ndame/schach.js diff --git a/rom_selector/main.cpp b/c++/rom_selector/main.cpp similarity index 100% rename from rom_selector/main.cpp rename to c++/rom_selector/main.cpp diff --git a/rom_selector/test/1.smc b/c++/rom_selector/test/1.smc similarity index 100% rename from rom_selector/test/1.smc rename to c++/rom_selector/test/1.smc diff --git a/rom_selector/test/2.smc b/c++/rom_selector/test/2.smc similarity index 100% rename from rom_selector/test/2.smc rename to c++/rom_selector/test/2.smc diff --git a/rom_selector/test/4.smc b/c++/rom_selector/test/4.smc similarity index 100% rename from rom_selector/test/4.smc rename to c++/rom_selector/test/4.smc diff --git a/rom_selector/test/5.smc b/c++/rom_selector/test/5.smc similarity index 100% rename from rom_selector/test/5.smc rename to c++/rom_selector/test/5.smc diff --git a/rom_selector/test/6.smc b/c++/rom_selector/test/6.smc similarity index 100% rename from rom_selector/test/6.smc rename to c++/rom_selector/test/6.smc diff --git a/rom_selector/test/7.smc b/c++/rom_selector/test/7.smc similarity index 100% rename from rom_selector/test/7.smc rename to c++/rom_selector/test/7.smc diff --git a/rom_selector/test/8.smc b/c++/rom_selector/test/8.smc similarity index 100% rename from rom_selector/test/8.smc rename to c++/rom_selector/test/8.smc diff --git a/rom_selector/test/9.smc b/c++/rom_selector/test/9.smc similarity index 100% rename from rom_selector/test/9.smc rename to c++/rom_selector/test/9.smc diff --git a/rom_selector/test/a b/c++/rom_selector/test/a similarity index 100% rename from rom_selector/test/a rename to c++/rom_selector/test/a diff --git a/rom_selector/test/a.smc b/c++/rom_selector/test/a.smc similarity index 100% rename from rom_selector/test/a.smc rename to c++/rom_selector/test/a.smc diff --git a/rom_selector/test/aa.smc b/c++/rom_selector/test/aa.smc similarity index 100% rename from rom_selector/test/aa.smc rename to c++/rom_selector/test/aa.smc diff --git a/rom_selector/test/aab.smc b/c++/rom_selector/test/aab.smc similarity index 100% rename from rom_selector/test/aab.smc rename to c++/rom_selector/test/aab.smc diff --git a/rom_selector/test/aac.smc b/c++/rom_selector/test/aac.smc similarity index 100% rename from rom_selector/test/aac.smc rename to c++/rom_selector/test/aac.smc diff --git a/rom_selector/test/abc.smc b/c++/rom_selector/test/abc.smc similarity index 100% rename from rom_selector/test/abc.smc rename to c++/rom_selector/test/abc.smc diff --git a/bookmarks/bookmarks.csv b/php/bookmarks/bookmarks.csv similarity index 100% rename from bookmarks/bookmarks.csv rename to php/bookmarks/bookmarks.csv diff --git a/bookmarks/favico.php b/php/bookmarks/favico.php similarity index 100% rename from bookmarks/favico.php rename to php/bookmarks/favico.php diff --git a/bookmarks/generate.php b/php/bookmarks/generate.php similarity index 100% rename from bookmarks/generate.php rename to php/bookmarks/generate.php diff --git a/captcha/captcha.html b/php/captcha/captcha.html similarity index 100% rename from captcha/captcha.html rename to php/captcha/captcha.html diff --git a/captcha/captcha.php b/php/captcha/captcha.php similarity index 100% rename from captcha/captcha.php rename to php/captcha/captcha.php diff --git a/captcha/fonts/3000.ttf b/php/captcha/fonts/3000.ttf similarity index 100% rename from captcha/fonts/3000.ttf rename to php/captcha/fonts/3000.ttf diff --git a/captcha/fonts/39smooth.ttf b/php/captcha/fonts/39smooth.ttf similarity index 100% rename from captcha/fonts/39smooth.ttf rename to php/captcha/fonts/39smooth.ttf diff --git a/captcha/fonts/42.ttf b/php/captcha/fonts/42.ttf similarity index 100% rename from captcha/fonts/42.ttf rename to php/captcha/fonts/42.ttf diff --git a/captcha/fonts/technine.ttf b/php/captcha/fonts/technine.ttf similarity index 100% rename from captcha/fonts/technine.ttf rename to php/captcha/fonts/technine.ttf diff --git a/captcha/fonts/texasled.ttf b/php/captcha/fonts/texasled.ttf similarity index 100% rename from captcha/fonts/texasled.ttf rename to php/captcha/fonts/texasled.ttf diff --git a/captcha/fonts/xband.ttf b/php/captcha/fonts/xband.ttf similarity index 100% rename from captcha/fonts/xband.ttf rename to php/captcha/fonts/xband.ttf diff --git a/captcha/img/loading_small.gif b/php/captcha/img/loading_small.gif similarity index 100% rename from captcha/img/loading_small.gif rename to php/captcha/img/loading_small.gif diff --git a/captcha/img/reload.png b/php/captcha/img/reload.png similarity index 100% rename from captcha/img/reload.png rename to php/captcha/img/reload.png diff --git a/drupal_import/drupal_import.php b/php/drupal_import/drupal_import.php similarity index 100% rename from drupal_import/drupal_import.php rename to php/drupal_import/drupal_import.php diff --git a/drupal_import/install.sql b/php/drupal_import/install.sql similarity index 100% rename from drupal_import/install.sql rename to php/drupal_import/install.sql diff --git a/drupal_import/parse_html.php b/php/drupal_import/parse_html.php similarity index 100% rename from drupal_import/parse_html.php rename to php/drupal_import/parse_html.php diff --git a/drupal_import/parse_html.sh b/php/drupal_import/parse_html.sh similarity index 100% rename from drupal_import/parse_html.sh rename to php/drupal_import/parse_html.sh diff --git a/drupal_import/webpage/example.html b/php/drupal_import/webpage/example.html similarity index 99% rename from drupal_import/webpage/example.html rename to php/drupal_import/webpage/example.html index 6633129..b1ae075 100644 --- a/drupal_import/webpage/example.html +++ b/php/drupal_import/webpage/example.html @@ -21,172 +21,172 @@

- - Montag, 29. Dezember, 17:00 Uhr
-

2008 war zu warm

- - Frankfurt/Main (AP) Die Änderung des Weltklimas schreitet immer schneller voran und hat sich im ablaufenden Jahr auch in Deutschland deutlich bemerkbar gemacht. Mit einer Durchschnittstemperatur von 9,55 Grad war 2008 hierzulande voraussichtlich das sechstwärmste Jahr seit Beginn der Wetteraufzeichnungen 1901.

- - Der Leiter des Potsdam-Instituts für Klimafolgenforschung, Hans Joachim Schellnhuber, warnte vor einer dramatischen Beschleunigung des Klimawandels. «In fast allen Bereichen verlaufen die Entwicklungen schneller als bisher angenommen», sagte er. So schmelze etwa das Eis in der Arktis und in Grönland rascher als gedacht.

- - 2008 lagen die Temperaturen in Deutschland in allen Monaten mit Ausnahme des Septembers teilweise erheblich über den Vergleichswerten, wie der Deutsche Wetterdienst am Montag mitteilte. Zudem war es zu trocken, die Niederschlagsmenge lag teils deutlich unter dem Soll.

- - «Wir sehen hier einen klaren Trend. Über die letzten 100 Jahre hatten wir 0,9 Grad Erwärmung, und dass die letzten Jahre oft zu den wärmsten gehörten, passt ins Bild: Der Klimawandel ist da, einen Zweifel kann es nicht geben», sagte DWD-Meteorologe Gerhard Müller-Westermeier der AP.

- - Hauptanteil an der hohen Jahresmitteltemperatur hatten demnach die Wintermonate Januar und Februar sowie der Mai, erklärte der Wetterdienst nach ersten Auswertungen der Ergebnisse von rund 2.200 Messstationen. Im Januar war es 4,1 Grad wärmer als normal, im Februar 3,3 Grad. Die Jahres-Durchschnittstemperatur von 9,55 Grad liegt um 1,3 Grad über dem langjährigen Mittel von 8,2 Grad.

- - Laut Münchner Rück richteten 2008 Unwetter in Europa schwere Schäden an: Orkantief «Emma» verursachte im März in Mitteleuropa Kosten von zwei Milliarden Dollar. Tief «Hilal» verursachte durch Hagel, Böen und Überschwemmungen Kosten von 1,3 Milliarden Dollar.

- - Die Versicherung führt die Zunahme der Wetterschäden auf den Klimawandel zurück. Höhere Temperaturen bewirkten, dass mehr Energie in der Atmosphäre sei und es zu schlimmeren Unwettern komme.

- - Anstieg des Meeresspiegels um sieben Meter möglich

- - Klimaforscher Schellnhuber sagte der «Saarbrücker Zeitung: «Wir sind auf dem Weg zur Destabilisierung des Weltklimas viel weiter fortgeschritten, als die meisten Menschen und ihre Regierungen denken.» Es gebe Anzeichen, dass das gesamte Klimamuster am Nordpol bereits in einen neuen Zustand umgeschlagen sei. Für die Arktis sei bei der jetzigen Erderwärmung von 0,8 Grad die Grenzlinie offenbar überschritten.

- - Beim Grönlandeis, «der Achilles-Ferse des Planeten schlechthin» liege die Grenze bei etwa zwei Grad Erderwärmung. Real seien nach neueren Untersuchungen aber schon 2,4 Grad Erderwärmung im Klimasystem einprogrammiert, die nur durch die Luftverschmutzung noch verdeckt würden.

- - Wenn das Grönlandeis komplett kollabieren sollte, würde der Meeresspiegel laut Schellnhuber um sieben Meter ansteigen. «Dann gäbe es die heutigen Küsten nicht mehr, auch nicht in Deutschland», mahnte er.

- - Klimaforscher und Versicherung fordern rasches Handeln

- - Der Klimaschutzberater von Bundeskanzlerin Angela Merkel forderte, der globale CO2-Ausstoß müsse bis 2050 halbiert werden, um das Schlimmste noch zu verhindern. Das bedeute für die Industrieländer ein Minus von 80 bis 90 Prozent. Bis 2020 müsse dieser Prozess eingeleitet sein. «Wenn nur eine Seite versagt, Industrieländer oder Schwellenländer, dann ist ein desaströser Klimawandel unvermeidbar.»

- - Auch die Münchener Rück forderte rasches Handeln: «Auf dem nächsten Klimagipfel in Kopenhagen muss ganz klar der Weg zu einer mindestens fünfzigprozentigen Reduzierung der Treibhausgasemissionen bis 2050 mit entsprechenden Meilensteinen festgeschrieben werden», erklärte Vorstandsmitglied Torsten Jeworrek. «Bei zu langem Zögern wird es für künftige Generationen sehr teuer.» - - - -


-

"Die Klimakrise ist gefährlicher als die Wirtschaftskrise"

- Greenpeace bilanziert Klimapolitik des Jahres 2008

- - Von Jan Haase, Greenpeace-Online, 30.12.08

- - "Die Klimakrise ist langfristig gefährlicher als die Wirtschaftskrise. Es drohen Orkane und Überschwemmungen, Klimaflüchtlinge, das Auftauen der Arktis - die Folgen des Treibhauseffektes werden uns schneller ereilen als bislang angenommen", sagt Brigitte Behrens, Geschäftsführerin von Greenpeace. "Die Regierung hat in der Bankenkrise schnell gehandelt, das muss sie endlich auch in der Klimakrise leisten. 2009 darf keine Chance für Klimaschutz verspielt werden."

- - Deutschland hat erklärt, 40 Prozent weniger CO2 im Jahr 2020 auszustoßen als 1990. Doch dies wird mit den derzeitigen Maßnahmen nicht gelingen. Denn im Jahr 2008 gab es erhebliche Rückschläge: Die EU-Regierungschefs haben mit ihren im Dezember beschlossenen Maßnahmen zum Klimaschutz enttäuscht. Besonders Bundeskanzlerin Angela Merkel (CDU) hat ihr Engagement aufgegeben und bewertet die Interessen einiger Wirtschaftsbranchen höher als die Bewältigung der Klimakrise.

- - "Umweltschutz und Wirtschaftswachstum dürfen nicht gegeneinander ausgespielt werden. Es muss wesentlich mehr in Erneuerbare Energien, in Gebäudedämmung, in energiesparende Elektrogeräte und effiziente Pkw investiert werden. Hier liegen die Chancen für neue Arbeitsplätze und Exporte", sagt Behrens. Die Regierung sollte zudem klima- und umweltschädliche Subventionen abbauen. Derzeit fördert sie Umweltzerstörung mit jährlich 42 Milliarden Euro, etwa durch die Nicht- oder Geringbesteuerung von klimaschädlicher Kohle. Der Atomausstieg darf nicht aufgeweicht werden, sondern sollte 2015 abgeschlossen sein, also deutlich schneller als bislang geplant. Atomkraft kann das Klima nicht retten.

- - Auf der UN-Klimakonferenz in Kopenhagen im Dezember 2009 müssen die Staaten konkrete Ziele vereinbaren, den Ausstoß von CO2 wirksam zu verringern. "Diese Konferenz muss als eine der wichtigsten internationalen Begegnungen eingeschätzt werden, die jemals stattgefunden haben wird. Die USA müssen sich dort endlich zu einem wirksamen Klimaschutz verpflichten", erklärt Behrens.

- - Die Klimakampagne von Greenpeace hat sich 2008 gegen den Bau neuer Kohlekraftwerke gerichtet. 25 Kohlekraftwerke sind in Deutschland geplant, sechs in Bau. Greenpeace ist gegen die großen Spritfresser der deutschen Autohersteller und gegen ihre steuerliche Bevorzugung als Dienstwagen vorgegangen. Ein wichtiger Erfolg: Auf dem UN-Gipfel zum Schutz der Artenvielfalt (CBD) konnte Greenpeace ein Finanzierungsprogramm zur Rettung der Urwälder anstoßen.

- - Greenpeace hat sich zudem für die Einrichtung echter Meeresschutzgebiete eingesetzt. Aktivisten haben in der Nordsee tonnenschwere Steine auf den Grund des Sylter Außenriffs platziert, die vor der zerstörerischen Fischerei mit Grundschleppnetzen schützen. Mit seinem Schiff Esperanza ist Greenpeace gegen den japanischen Walfang im Südpolarmeer vorgegangen. Und in Kooperation mit dem neuen Ozeaneum in Stralsund präsentiert Greenpeace die Ausstellung Riesen der Meere mit Wal-Modellen in Originalgröße. Als Erfolg verbucht Greenpeace auch, dass die Kampagne gegen Pestizide in Obst und Gemüse alle großen deutschen Handelsketten und viele Produzenten dazu gebracht hat, den Pestizideinsatz und Rückstände zu verringern. - - - - -


- - Montag, 29. Dezember, 15:45 Uhr
-

Deutscher Naturschutzring fordert ökologisches Konjunkturpaket

- - Bonn (AP) Die deutschen Umweltverbände haben ein ökologisches Konjunkturpaket gefordert. «Wer die Finanzkrise nicht dazu nutzt, die wirtschaftlichen Weichen neu in Richtung Klimaschutz und Nachhaltigkeit zu stellen, verspielt unsere Zukunft», erklärte der Präsident des Deutschen Naturschutzrings (DNR), Hubert Weinzierl, am Montag unter Verweis auf den dramatisch fortschreitenden Klimawandel.

- - Das zweite Konjunkturpaket der Bundesregierung solle ökologisch ausgerichtet werden. Die Dachorganisation von 94 im Natur- und Umweltschutz tätigen Verbände in Deutschland sprach sich dafür aus, Deutschland mit einem Effizienzgesetz bis 2010 zur energie- und ressourceneffizientesten Volkswirtschaft zu machen.

- - Dazu gehörten ein Effizienzfonds mit mindestens 25 Milliarden Euro und eine deutliche Ausweitung der energetischen Gebäudesanierung. So könnten nach Einschätzung des DNR rund eine Million neuer Arbeitsplätze entstehen. Der Verband verlangte zudem die Einführung eines Tempolimits auf deutschen Straßen und Initiativen für eine ökologische Finanzreform, um umweltschädliche Subventionen zu beenden. - -


- - - - Sonntag, 4. Januar, 07:10 Uhr
-

NABU kritisiert Klimapolitik der Bundesregierung

- - Berlin (ddp). Der Naturschutzbund Deutschland (NABU) fordert von der Bundesregierung einen stärkeren Einsatz für den Klimaschutz. Zwar seien einige wichtige Gesetzesvorhaben vor allem zum Ausbau der Erneuerbaren Energien und zur Förderung der Kraft-Wärme-Kopplung beschlossen worden. Viele Maßnahmen blieben aber «hinter den Anforderungen zurück», sagte der NABU-Energieexperte Elmar Große Ruse der Nachrichtenagentur ddp. Dies betreffe zum Beispiel die Energieeffizienz von technischen Geräten.

- - Der NABU-Experte kritisierte zudem: «Zentrale Vorhaben wie die ökologische Ausrichtung der Kfz-Steuer am CO2-Ausstoß hat die Bundesregierung noch gar nicht umgesetzt.» Diese Umstellung sei aber dringend erforderlich. Von ihr müsse «ein starker Anreiz zum Kauf sparsamer, moderner Autos» ausgehen. So müssten «Spritfresser, die das Klima extrem belasten, deutlich höher besteuert werden».

- - Der Energieexperte fügte hinzu, bei den Verhandlungen zum EU-Klimapaket habe die Bundesregierung «aus Angst vor Nachteilen im internationalen Wettbewerb Ausnahmen bei der Versteigerung von Emissionsberechtigungen für die heimische Industrie durchgesetzt». Er mahnte: «Statt Sonderregeln zu erkämpfen, sollte sie sich für ambitionierte, sektorale Vereinbarungen starkmachen, die dann global für ganze Industriebranchen gelten.» - - -


- Montag, 29. Dezember, 04:53 Uhr
-

Schellnhuber warnt vor rasanter Beschleunigung des Klimawandels

- - Saarbrücken (ddp-lbg). Der Leiter des Potsdam-Instituts für Klimafolgenforschung und Klimaschutzbeauftragte der Bundesregierung, Hans Joachim Schellnhuber, hat vor einer dramatischen Beschleunigung des Klimawandels gewarnt. «In fast allen Bereichen verlaufen die Entwicklungen schneller als bisher angenommen», sagte Schellnhuber der «Saarbrücker Zeitung» (Montagausgabe). «Wir sind auf dem Weg zur Destabilisierung des Weltklimas viel weiter fortgeschritten, als die meisten Menschen und ihre Regierungen denken».

- - So deute vieles darauf hin, dass derzeit einige globale Klima-«Kipppunkte» aktiviert würden. Das arktische Meereis etwa schmelze schneller als erwartet, zudem gebe es Anzeichen, dass das gesamte Klimamuster am Nordpol «bereits in einen neuen Zustand umgeschlagen ist». Für die Arktis sei bei der jetzigen Erderwärmung von 0,8 Grad die Grenzlinie offenbar überschritten. Beim Grönlandeis, «der Achilles-Ferse des Planeten schlechthin», liege die Grenze bei etwa 2 Grad Erderwärmung. Es schmelze ebenfalls schneller als gedacht. Real seien nach neueren Untersuchungen aber schon 2,4 Grad Erderwärmung im Klimasystem einprogrammiert, die nur durch die Luftverschmutzung in Teilen der Welt noch verdeckt würden.

- - Wenn das Grönlandeis komplett kollabieren sollte, würde der Meeresspiegel laut Schellnhuber um sieben Meter ansteigen. «Dann gäbe es die heutigen Küsten nicht mehr, auch nicht in Deutschland». Es gebe rund ein Dutzend Kipp-Elemente im globalen Klimassystem, darunter auch der Amazonas-Regenwald und die Himalaja-Gletscher. Nur wenn die Erderwärmung bei zwei Grad gehalten werde, könne man die meisten dieser Kipp-Vorgänge vermeiden, «möglicherweise aber nicht alle». -


- - - - Montag, 29. Dezember, 12:48 Uhr
-

Regierungsberater sieht dramatische Beschleunigung des Klimawandels

- - Saarbrücken (AP) Der Klimaschutzberater von Bundeskanzlerin Angela Merkel sieht Anzeichen für eine dramatische Beschleunigung des Klimawandels. «In fast allen Bereichen verlaufen die Entwicklungen schneller als bisher angenommen», warnte der Leiter des Potsdam-Instituts für Klimafolgenforschung, Hans Joachim Schellnhuber, im Gespräch mit der «Saarbrücker Zeitung». Um das Schlimmste zu verhindern, müsse der weltweite CO2-Ausstoß bis 2050 halbiert werden.

- - «Wir sind auf dem Weg zur Destabilisierung des Weltklimas viel weiter fortgeschritten, als die meisten Menschen und ihre Regierungen denken», wird Schellnhuber zitiert. So schmelze das arktische Meereis schneller als erwartet, zudem gebe es Anzeichen, dass das gesamte Klimamuster am Nordpol «bereits in einen neuen Zustand umgeschlagen ist». Für die Arktis sei bei der jetzigen Erderwärmung von 0,8 Grad die Grenzlinie offenbar überschritten.

- - Beim Grönlandeis, «der Achilles-Ferse des Planeten schlechthin» liege die Grenze bei etwa zwei Grad Erderwärmung. Es schmelze ebenfalls schneller als gedacht. Real seien nach neueren Untersuchungen aber schon 2,4 Grad Erderwärmung im Klimasystem einprogrammiert, die nur durch die Luftverschmutzung in Teilen der Welt noch verdeckt würden. Wenn das Grönlandeis komplett kollabieren sollte, würde der Meeresspiegel laut Schellnhuber um sieben Meter ansteigen. «Dann gäbe es die heutigen Küsten nicht mehr, auch nicht in Deutschland».

- - Der Klimaexperte sprach von rund einem Dutzend Kipp-Elementen im globalen Klimasystem, darunter der Amazonas-Regenwald und die Himalaja-Gletscher. Nur wenn die Erderwärmung bei zwei Grad gehalten werde, könne man die meisten dieser Kipp-Vorgänge vermeiden, «möglicherweise aber nicht alle», sagte Schellnhuber.

- - Verantwortung der Industrieländer

- - Dazu müsse der globale CO2-Ausstoß bis 2050 halbiert werden, was für die Industrieländer ein Minus von 80 bis 90 Prozent bedeute. Bis 2020 müsse dieser Prozess eingeleitet sein. «Wenn nur eine Seite versagt, Industrieländer oder Schwellenländer, dann ist ein desaströser Klimawandel unvermeidbar», warnte der Klimaforscher.

- - Die Präsidentin des Bundesamtes für Naturschutz, Beate Jessel, forderte unterdessen, Gelder aus dem Emissionshandel auch für Klimaschutzmaßnahmen im Naturschutz zu verwenden. «Ohne jeden Zweifel kann und muss eine weltweite nachhaltige Landnutzung einen Beitrag zur Reduzierung der Treibhausgase leisten», erklärte sie in Bonn.

- - Konkret nannte Jessel ein Waldmanagement, das die Potenziale einer langfristigen CO2-Speicherung ausschöpfe und Aufbau sowie Schutz von Naturwäldern fördere, einen konsequenten Moor- und Feuchtgebietsschutz sowie eine Landwirtschaft, bei der Erosion und Humusabbau vorgebeugt werde. Wichtig sei auch, den Ausstoß von Treibhausgasen befördernde Landnutzungsänderungen zu vermeiden, wie dies etwa bei der Umwandlung von Grünland zu Acker der Fall sei.

- - Die Umweltstiftung WWF zog eine durchwachsene Jahresbilanz. «Zwar gibt es für manche Arten Grund zur Hoffnung, doch das Massensterben im Tier- und Pflanzenreich dauert mit unverminderter Härte und gnadeloser Schnelligkeit an», sagte der Leiter des WWF-Artenschutzteams, Volker Homes. Hauptursachen seien Lebensraumzerstörung, Klimawandel, Wilderei und Übernutzung durch den Menschen. Die Verlierer 2008 seien vor allem Frösche und Amphibien, der iberische Luchs, Menschenaffen, Riesenschildkröten und der rote Tunfisch. - - - -


- - - -

Rückblick 08: Erde lechzt nach globalen Strategien

- Klimaschutz und nachhaltiges Wirtschaften nur langsam im Vormarsch

- Von Wolfgang Weitlaner, Pressetext Austria, 30.12.08

- - Wien - Klimaschutz- und Nachhaltigkeitsdebatten bestimmten zwar die öffentliche Diskussion das ganze Jahr hindurch, Fortschritte waren 2008 in wesentlichen Fragen allerdings nur marginal zu verzeichnen. Vielerorts blieben die Rufe zahlreicher Wissenschaftler, endlich wirksame Schritte gegen die fortschreitende Umweltzerstörung zu unternehmen, ungehört. Enttäuschung über das mangelnde Engagement der großen Industrienationen gab es zuletzt beim Klimagipfel in Poznan. Im kleinen Rahmen scheint sich umweltfreundliches Agieren hingegen eher durchzusetzen. So stieg das Interesse an nachhaltigen Urlaubsreisen deutlich an. Auch bei der Mobilität und im täglichen Leben wird zunehmend ökologischer gedacht. Ob das mit den rasant gestiegenen Preisen zu tun hat oder sich ein echter Gesinnungswandel abzeichnet, bleibt hingegen fraglich.

- - Ozeane leiden unter rücksichtsloser Ausbeutung

- - Immer noch beutet die Menschheit die Ozeane rücksichtslos aus und wirft auf den modernen Raubzügen durch die Weltmeere bis zu 80 Prozent der gefangenen Fische als toten Beifang zurück ins Meer. Experten geben der kommerziellen Fischerei, wie sie heute betrieben wird, ohnehin nicht länger als weitere 50 Jahre. Dass hochtechnisierte Fangflotten auch vor den Küsten der ärmsten Länder der Welt ihre Beute machen, scheint den Großteil der Industriestaaten kaum zu interessieren. Dieses Thema wird erst an Brisanz gewinnen, wenn sich jährlich hunderttausende Flüchtlinge aus Afrika und Asien Richtung Europa aufmachen, um dort eine neue Zukunft und bessere Lebensbedingungen zu finden. In den südlichen Ländern fordern immer noch Hunger und Krankheit Millionen von Menschenleben.

- - Doch auch zu Lande herrscht eine kaum bessere Situation: Auch hier steht Profitdenken an vorderster Stelle. Umweltschutz, Erhaltung der Habitate und Klimaschutz bleiben leere Worthülsen. Ein schweizerisch-französisches Forscherteam hat anhand eines antarktischen Bohrkerns festgestellt, dass die heutige CO2-Konzentration in der Atmosphäre über 28 Prozent höher liegt als je zuvor in den vergangenen 800.000 Jahren. Auch die Methan-Konzentrationen liegen heute um über 124 Prozent höher als je zuvor. Eine Verbesserung der Lage scheint angesichts des steigenden Verkehrsaufkommens kaum möglich. Das Argument, dass Nachhaltigkeit mehr koste als rücksichtslose Ausbeutung hält sich weiterhin hartnäckig in den meisten Köpfen.

- - Wirtschaftskrise stellt Umweltfragen in den Schatten

- - Die schlimmste Befürchtung der Umweltschützer ist, dass durch die anhaltende Wirtschaftskrise die Zerstörung der Natur und der Umwelt einmal mehr aus dem Fokus des Weltinteresses rückt. Die weitere Zerstörung von Flüssen, Wäldern und Ozeanen wird die Wirtschaft allerdings drastisch treffen. Nach Schätzungen von Experten wird das globale BIP aus diesen Gründen bis 2050 um rund sieben Prozent schrumpfen. Vor allem die ärmeren Länder werden unter der Situation extrem leiden. Gerade die indigenen Völker dürften von der bevorstehenden Veränderung und obwohl sie den geringsten Beitrag zur Klimaerwärmung liefern am härtesten getroffen werden. Schwellenländer wie China tragen das dazu bei, dass "klimarelevante Emissionen" exorbitant ansteigen. So hat sich einem Forschungsbericht zufolge der ökologische Fußabdruck im Reich der Mitte seit den 1960er Jahren verdoppelt und beansprucht nun zwei Mal so viel, wie das Ökosystem des Landes nachhaltig gewährleisten kann.

- - Der bis zur Hälfte des Jahres hohe Rohölpreis hat die Debatte um die Energieversorgung der Zukunft einmal mehr in den Mittelpunkt gerückt. Viele Industriestaaten setzen entgegen den Empfehlungen von Umweltexperten auf Agro-Treibstoffe der ersten Generation - etwa Rapsöl oder Getreide. Die Nachfrage nach Palmöl sowohl als Energiepflanze als auch in der Nahrungsmittelindustrie hat gar dazu geführt, dass tropische Regenwaldgebiete zusätzlich gerodet wurden. Experten kritisieren zudem, dass fix vereinbarte Beimengungsquoten zu einer Verschärfung der Situation führen werden. Das gelte vor allem für den Fall, dass Ernten schwächer ausfallen als geplant.

- - Energieeffizienz als Zauberwort

- - Erstmals wurde in diesem Jahr auch der Einsatz von Biotreibstoffen in kommerziellen Flugzeugen getestet. Experten sehen darin aber keine echte Alternative zu fossilen Treibstoffen. Eine Treibstoffeinsparung sei eher durch verbesserte Technologien erzielbar. Der vielversprechende neue Dreamliner aus dem Hause Boeing - eine echte Innovation im Bezug auf die Rumpffertigung aus Verbundstoffen - konnte trotz Vorankündigung immer noch nicht den Jungfernflug absolvieren. Ebenso wie in der Baubranche setzt sich hier der Themenbereich "Erhöhung der Energieeffizienz" durch. Im Bereich Autoverkehr dürfte die Zukunft bei den Elektrofahrzeugen liegen. Gründe für den Elektromotor sind der deutlich höhere Wirkungsgrad sowie der geringere Verschleiß. 2008 wird als das Jahr des langsamen Endes des Diesel-Fahrzeugbooms eingehen. Höhere Kosten haben Konsumenten schnell reagieren lassen. Ähnliches manifestiert sich auch bei der Wahl der Heizsysteme in Einfamilienhäusern: Öl-Heizungen nehmen deutlich ab.

- - Tourismus wird grüner

- - Anfang des Jahres standen alle Zeichen im globalen Tourismus auf grün. Im Lauf des Jahres verschlechterte sich die Situation jedoch deutlich. Einerseits machte der hohe Rohölpreis den Fluggesellschaften zu schaffen, andererseits kündigte sich in der zweiten Jahreshälfte die weltweite Rezession an. Anfangs bewirkte der schwache Dollar noch eine vermehrte Reisetätigkeit in Richtung des Doppelkontinents. Die US-amerikanischen Reiseziele blieben jedoch während der Hochsaison vielfach leer. Der niedrige US-Dollarkurs verteuerte Urlaubsreisen für die US-Amerikaner außerhalb der Dollar-Zone deutlich, weshalb es zu einem deutlichen Einbruch der Preise in den klassischen Hochburgen wie etwa Las Vegas und Hawaii kam. Politische Unruhen in Thailand und Terroranschläge in Mumbai setzten den beiden beliebten Reisezielen stark zu.

- - Der Modus des Reisens geht deutlich in Richtung Nachhaltigkeit - das war sowohl bei der ITB-Berlin offensichtlich als auch bei der Verleihung der World Travel Awards, die erstmals auch Auszeichnungen in der Kategorie "Green" vergab. Das neue Reisegefühl nimmt Abstand von den artifiziellen und gigantomanischen Hotelburgen und setzt auf Genießen im kleinen Rahmen. Kunden legen vermehrt Wert auf Authentizität und suchen Erholung in der Einfachheit. Naturerlebnisse und Kontakt mit der Bevölkerung im Gastland werden wichtiger als künstliche Welten aus Kunststoff und Neon. - - - -


- - - Dienstag, 30. Dezember, 16:27 Uhr
-

NABU: Glos beim Umweltschutz "Dinosaurier des Jahres 2008"

- - (AFP) - Bundeswirtschaftsminister Michael Glos (CSU) ist nach Ansicht des Naturschutzbundes (NABU) in Umweltfragen der "Dinosaurier des Jahres 2008". Der NABU vergab "Deutschlands peinlichsten Umweltpreis" an den Minister. Trotz aller Warnungen vor den ökonomischen Folgen des Klimawandels habe er sich "als hartnäckiger Bremsklotz in Sachen Klima- und Umweltschutz hervorgetan", begründete NABU-Präsident Olaf Tschimpke die Wahl. Die Naturschützer bezeichneten die Öko-Bilanz von Glos als "katastrophal".

- - So habe er sich beim Kernstück der europäischen Klimapolitik - dem Handel mit Verschmutzungsrechten - von Anfang an dafür ausgesprochen, dass die Stromkonzerne und möglichst viele Industriezweige auch in Zukunft alle Berechtigungsscheine zum Ausstoß klimaschädlicher Treibhausgase kostenlos erhielten. Es sei "schamlos", wie vehement der Bundeswirtschaftsminister als "verlängertes Sprachrohr der Atomlobby für diese Steinzeit- und Risikotechnologie kämpfe, erklärte Tschimpke.

- - In der Finanz- und Wirtschaftskrise sei Glos außer Steuersenkungen für Umwelt- und Klimasünder nichts eingefallen, kritisierte der NABU-Präsident. Er habe im Gegenteil als einer der ersten die Klimaschutz-Auflagen für die Autoindustrie in Frage gestellt und damit ein wichtiges Instrument zur Senkung des Schadstoffausstoßes im Verkehr torpediert. Glos habe sich damit die Trophäe "redlich" erarbeitet. - - - - -


+ + Montag, 29. Dezember, 17:00 Uhr
+

2008 war zu warm

+ + Frankfurt/Main (AP) Die Änderung des Weltklimas schreitet immer schneller voran und hat sich im ablaufenden Jahr auch in Deutschland deutlich bemerkbar gemacht. Mit einer Durchschnittstemperatur von 9,55 Grad war 2008 hierzulande voraussichtlich das sechstwärmste Jahr seit Beginn der Wetteraufzeichnungen 1901.

+ + Der Leiter des Potsdam-Instituts für Klimafolgenforschung, Hans Joachim Schellnhuber, warnte vor einer dramatischen Beschleunigung des Klimawandels. «In fast allen Bereichen verlaufen die Entwicklungen schneller als bisher angenommen», sagte er. So schmelze etwa das Eis in der Arktis und in Grönland rascher als gedacht.

+ + 2008 lagen die Temperaturen in Deutschland in allen Monaten mit Ausnahme des Septembers teilweise erheblich über den Vergleichswerten, wie der Deutsche Wetterdienst am Montag mitteilte. Zudem war es zu trocken, die Niederschlagsmenge lag teils deutlich unter dem Soll.

+ + «Wir sehen hier einen klaren Trend. Über die letzten 100 Jahre hatten wir 0,9 Grad Erwärmung, und dass die letzten Jahre oft zu den wärmsten gehörten, passt ins Bild: Der Klimawandel ist da, einen Zweifel kann es nicht geben», sagte DWD-Meteorologe Gerhard Müller-Westermeier der AP.

+ + Hauptanteil an der hohen Jahresmitteltemperatur hatten demnach die Wintermonate Januar und Februar sowie der Mai, erklärte der Wetterdienst nach ersten Auswertungen der Ergebnisse von rund 2.200 Messstationen. Im Januar war es 4,1 Grad wärmer als normal, im Februar 3,3 Grad. Die Jahres-Durchschnittstemperatur von 9,55 Grad liegt um 1,3 Grad über dem langjährigen Mittel von 8,2 Grad.

+ + Laut Münchner Rück richteten 2008 Unwetter in Europa schwere Schäden an: Orkantief «Emma» verursachte im März in Mitteleuropa Kosten von zwei Milliarden Dollar. Tief «Hilal» verursachte durch Hagel, Böen und Überschwemmungen Kosten von 1,3 Milliarden Dollar.

+ + Die Versicherung führt die Zunahme der Wetterschäden auf den Klimawandel zurück. Höhere Temperaturen bewirkten, dass mehr Energie in der Atmosphäre sei und es zu schlimmeren Unwettern komme.

+ + Anstieg des Meeresspiegels um sieben Meter möglich

+ + Klimaforscher Schellnhuber sagte der «Saarbrücker Zeitung: «Wir sind auf dem Weg zur Destabilisierung des Weltklimas viel weiter fortgeschritten, als die meisten Menschen und ihre Regierungen denken.» Es gebe Anzeichen, dass das gesamte Klimamuster am Nordpol bereits in einen neuen Zustand umgeschlagen sei. Für die Arktis sei bei der jetzigen Erderwärmung von 0,8 Grad die Grenzlinie offenbar überschritten.

+ + Beim Grönlandeis, «der Achilles-Ferse des Planeten schlechthin» liege die Grenze bei etwa zwei Grad Erderwärmung. Real seien nach neueren Untersuchungen aber schon 2,4 Grad Erderwärmung im Klimasystem einprogrammiert, die nur durch die Luftverschmutzung noch verdeckt würden.

+ + Wenn das Grönlandeis komplett kollabieren sollte, würde der Meeresspiegel laut Schellnhuber um sieben Meter ansteigen. «Dann gäbe es die heutigen Küsten nicht mehr, auch nicht in Deutschland», mahnte er.

+ + Klimaforscher und Versicherung fordern rasches Handeln

+ + Der Klimaschutzberater von Bundeskanzlerin Angela Merkel forderte, der globale CO2-Ausstoß müsse bis 2050 halbiert werden, um das Schlimmste noch zu verhindern. Das bedeute für die Industrieländer ein Minus von 80 bis 90 Prozent. Bis 2020 müsse dieser Prozess eingeleitet sein. «Wenn nur eine Seite versagt, Industrieländer oder Schwellenländer, dann ist ein desaströser Klimawandel unvermeidbar.»

+ + Auch die Münchener Rück forderte rasches Handeln: «Auf dem nächsten Klimagipfel in Kopenhagen muss ganz klar der Weg zu einer mindestens fünfzigprozentigen Reduzierung der Treibhausgasemissionen bis 2050 mit entsprechenden Meilensteinen festgeschrieben werden», erklärte Vorstandsmitglied Torsten Jeworrek. «Bei zu langem Zögern wird es für künftige Generationen sehr teuer.» + + + +


+

"Die Klimakrise ist gefährlicher als die Wirtschaftskrise"

+ Greenpeace bilanziert Klimapolitik des Jahres 2008

+ + Von Jan Haase, Greenpeace-Online, 30.12.08

+ + "Die Klimakrise ist langfristig gefährlicher als die Wirtschaftskrise. Es drohen Orkane und Überschwemmungen, Klimaflüchtlinge, das Auftauen der Arktis - die Folgen des Treibhauseffektes werden uns schneller ereilen als bislang angenommen", sagt Brigitte Behrens, Geschäftsführerin von Greenpeace. "Die Regierung hat in der Bankenkrise schnell gehandelt, das muss sie endlich auch in der Klimakrise leisten. 2009 darf keine Chance für Klimaschutz verspielt werden."

+ + Deutschland hat erklärt, 40 Prozent weniger CO2 im Jahr 2020 auszustoßen als 1990. Doch dies wird mit den derzeitigen Maßnahmen nicht gelingen. Denn im Jahr 2008 gab es erhebliche Rückschläge: Die EU-Regierungschefs haben mit ihren im Dezember beschlossenen Maßnahmen zum Klimaschutz enttäuscht. Besonders Bundeskanzlerin Angela Merkel (CDU) hat ihr Engagement aufgegeben und bewertet die Interessen einiger Wirtschaftsbranchen höher als die Bewältigung der Klimakrise.

+ + "Umweltschutz und Wirtschaftswachstum dürfen nicht gegeneinander ausgespielt werden. Es muss wesentlich mehr in Erneuerbare Energien, in Gebäudedämmung, in energiesparende Elektrogeräte und effiziente Pkw investiert werden. Hier liegen die Chancen für neue Arbeitsplätze und Exporte", sagt Behrens. Die Regierung sollte zudem klima- und umweltschädliche Subventionen abbauen. Derzeit fördert sie Umweltzerstörung mit jährlich 42 Milliarden Euro, etwa durch die Nicht- oder Geringbesteuerung von klimaschädlicher Kohle. Der Atomausstieg darf nicht aufgeweicht werden, sondern sollte 2015 abgeschlossen sein, also deutlich schneller als bislang geplant. Atomkraft kann das Klima nicht retten.

+ + Auf der UN-Klimakonferenz in Kopenhagen im Dezember 2009 müssen die Staaten konkrete Ziele vereinbaren, den Ausstoß von CO2 wirksam zu verringern. "Diese Konferenz muss als eine der wichtigsten internationalen Begegnungen eingeschätzt werden, die jemals stattgefunden haben wird. Die USA müssen sich dort endlich zu einem wirksamen Klimaschutz verpflichten", erklärt Behrens.

+ + Die Klimakampagne von Greenpeace hat sich 2008 gegen den Bau neuer Kohlekraftwerke gerichtet. 25 Kohlekraftwerke sind in Deutschland geplant, sechs in Bau. Greenpeace ist gegen die großen Spritfresser der deutschen Autohersteller und gegen ihre steuerliche Bevorzugung als Dienstwagen vorgegangen. Ein wichtiger Erfolg: Auf dem UN-Gipfel zum Schutz der Artenvielfalt (CBD) konnte Greenpeace ein Finanzierungsprogramm zur Rettung der Urwälder anstoßen.

+ + Greenpeace hat sich zudem für die Einrichtung echter Meeresschutzgebiete eingesetzt. Aktivisten haben in der Nordsee tonnenschwere Steine auf den Grund des Sylter Außenriffs platziert, die vor der zerstörerischen Fischerei mit Grundschleppnetzen schützen. Mit seinem Schiff Esperanza ist Greenpeace gegen den japanischen Walfang im Südpolarmeer vorgegangen. Und in Kooperation mit dem neuen Ozeaneum in Stralsund präsentiert Greenpeace die Ausstellung Riesen der Meere mit Wal-Modellen in Originalgröße. Als Erfolg verbucht Greenpeace auch, dass die Kampagne gegen Pestizide in Obst und Gemüse alle großen deutschen Handelsketten und viele Produzenten dazu gebracht hat, den Pestizideinsatz und Rückstände zu verringern. + + + + +


+ + Montag, 29. Dezember, 15:45 Uhr
+

Deutscher Naturschutzring fordert ökologisches Konjunkturpaket

+ + Bonn (AP) Die deutschen Umweltverbände haben ein ökologisches Konjunkturpaket gefordert. «Wer die Finanzkrise nicht dazu nutzt, die wirtschaftlichen Weichen neu in Richtung Klimaschutz und Nachhaltigkeit zu stellen, verspielt unsere Zukunft», erklärte der Präsident des Deutschen Naturschutzrings (DNR), Hubert Weinzierl, am Montag unter Verweis auf den dramatisch fortschreitenden Klimawandel.

+ + Das zweite Konjunkturpaket der Bundesregierung solle ökologisch ausgerichtet werden. Die Dachorganisation von 94 im Natur- und Umweltschutz tätigen Verbände in Deutschland sprach sich dafür aus, Deutschland mit einem Effizienzgesetz bis 2010 zur energie- und ressourceneffizientesten Volkswirtschaft zu machen.

+ + Dazu gehörten ein Effizienzfonds mit mindestens 25 Milliarden Euro und eine deutliche Ausweitung der energetischen Gebäudesanierung. So könnten nach Einschätzung des DNR rund eine Million neuer Arbeitsplätze entstehen. Der Verband verlangte zudem die Einführung eines Tempolimits auf deutschen Straßen und Initiativen für eine ökologische Finanzreform, um umweltschädliche Subventionen zu beenden. + +


+ + + + Sonntag, 4. Januar, 07:10 Uhr
+

NABU kritisiert Klimapolitik der Bundesregierung

+ + Berlin (ddp). Der Naturschutzbund Deutschland (NABU) fordert von der Bundesregierung einen stärkeren Einsatz für den Klimaschutz. Zwar seien einige wichtige Gesetzesvorhaben vor allem zum Ausbau der Erneuerbaren Energien und zur Förderung der Kraft-Wärme-Kopplung beschlossen worden. Viele Maßnahmen blieben aber «hinter den Anforderungen zurück», sagte der NABU-Energieexperte Elmar Große Ruse der Nachrichtenagentur ddp. Dies betreffe zum Beispiel die Energieeffizienz von technischen Geräten.

+ + Der NABU-Experte kritisierte zudem: «Zentrale Vorhaben wie die ökologische Ausrichtung der Kfz-Steuer am CO2-Ausstoß hat die Bundesregierung noch gar nicht umgesetzt.» Diese Umstellung sei aber dringend erforderlich. Von ihr müsse «ein starker Anreiz zum Kauf sparsamer, moderner Autos» ausgehen. So müssten «Spritfresser, die das Klima extrem belasten, deutlich höher besteuert werden».

+ + Der Energieexperte fügte hinzu, bei den Verhandlungen zum EU-Klimapaket habe die Bundesregierung «aus Angst vor Nachteilen im internationalen Wettbewerb Ausnahmen bei der Versteigerung von Emissionsberechtigungen für die heimische Industrie durchgesetzt». Er mahnte: «Statt Sonderregeln zu erkämpfen, sollte sie sich für ambitionierte, sektorale Vereinbarungen starkmachen, die dann global für ganze Industriebranchen gelten.» + + +


+ Montag, 29. Dezember, 04:53 Uhr
+

Schellnhuber warnt vor rasanter Beschleunigung des Klimawandels

+ + Saarbrücken (ddp-lbg). Der Leiter des Potsdam-Instituts für Klimafolgenforschung und Klimaschutzbeauftragte der Bundesregierung, Hans Joachim Schellnhuber, hat vor einer dramatischen Beschleunigung des Klimawandels gewarnt. «In fast allen Bereichen verlaufen die Entwicklungen schneller als bisher angenommen», sagte Schellnhuber der «Saarbrücker Zeitung» (Montagausgabe). «Wir sind auf dem Weg zur Destabilisierung des Weltklimas viel weiter fortgeschritten, als die meisten Menschen und ihre Regierungen denken».

+ + So deute vieles darauf hin, dass derzeit einige globale Klima-«Kipppunkte» aktiviert würden. Das arktische Meereis etwa schmelze schneller als erwartet, zudem gebe es Anzeichen, dass das gesamte Klimamuster am Nordpol «bereits in einen neuen Zustand umgeschlagen ist». Für die Arktis sei bei der jetzigen Erderwärmung von 0,8 Grad die Grenzlinie offenbar überschritten. Beim Grönlandeis, «der Achilles-Ferse des Planeten schlechthin», liege die Grenze bei etwa 2 Grad Erderwärmung. Es schmelze ebenfalls schneller als gedacht. Real seien nach neueren Untersuchungen aber schon 2,4 Grad Erderwärmung im Klimasystem einprogrammiert, die nur durch die Luftverschmutzung in Teilen der Welt noch verdeckt würden.

+ + Wenn das Grönlandeis komplett kollabieren sollte, würde der Meeresspiegel laut Schellnhuber um sieben Meter ansteigen. «Dann gäbe es die heutigen Küsten nicht mehr, auch nicht in Deutschland». Es gebe rund ein Dutzend Kipp-Elemente im globalen Klimassystem, darunter auch der Amazonas-Regenwald und die Himalaja-Gletscher. Nur wenn die Erderwärmung bei zwei Grad gehalten werde, könne man die meisten dieser Kipp-Vorgänge vermeiden, «möglicherweise aber nicht alle». +


+ + + + Montag, 29. Dezember, 12:48 Uhr
+

Regierungsberater sieht dramatische Beschleunigung des Klimawandels

+ + Saarbrücken (AP) Der Klimaschutzberater von Bundeskanzlerin Angela Merkel sieht Anzeichen für eine dramatische Beschleunigung des Klimawandels. «In fast allen Bereichen verlaufen die Entwicklungen schneller als bisher angenommen», warnte der Leiter des Potsdam-Instituts für Klimafolgenforschung, Hans Joachim Schellnhuber, im Gespräch mit der «Saarbrücker Zeitung». Um das Schlimmste zu verhindern, müsse der weltweite CO2-Ausstoß bis 2050 halbiert werden.

+ + «Wir sind auf dem Weg zur Destabilisierung des Weltklimas viel weiter fortgeschritten, als die meisten Menschen und ihre Regierungen denken», wird Schellnhuber zitiert. So schmelze das arktische Meereis schneller als erwartet, zudem gebe es Anzeichen, dass das gesamte Klimamuster am Nordpol «bereits in einen neuen Zustand umgeschlagen ist». Für die Arktis sei bei der jetzigen Erderwärmung von 0,8 Grad die Grenzlinie offenbar überschritten.

+ + Beim Grönlandeis, «der Achilles-Ferse des Planeten schlechthin» liege die Grenze bei etwa zwei Grad Erderwärmung. Es schmelze ebenfalls schneller als gedacht. Real seien nach neueren Untersuchungen aber schon 2,4 Grad Erderwärmung im Klimasystem einprogrammiert, die nur durch die Luftverschmutzung in Teilen der Welt noch verdeckt würden. Wenn das Grönlandeis komplett kollabieren sollte, würde der Meeresspiegel laut Schellnhuber um sieben Meter ansteigen. «Dann gäbe es die heutigen Küsten nicht mehr, auch nicht in Deutschland».

+ + Der Klimaexperte sprach von rund einem Dutzend Kipp-Elementen im globalen Klimasystem, darunter der Amazonas-Regenwald und die Himalaja-Gletscher. Nur wenn die Erderwärmung bei zwei Grad gehalten werde, könne man die meisten dieser Kipp-Vorgänge vermeiden, «möglicherweise aber nicht alle», sagte Schellnhuber.

+ + Verantwortung der Industrieländer

+ + Dazu müsse der globale CO2-Ausstoß bis 2050 halbiert werden, was für die Industrieländer ein Minus von 80 bis 90 Prozent bedeute. Bis 2020 müsse dieser Prozess eingeleitet sein. «Wenn nur eine Seite versagt, Industrieländer oder Schwellenländer, dann ist ein desaströser Klimawandel unvermeidbar», warnte der Klimaforscher.

+ + Die Präsidentin des Bundesamtes für Naturschutz, Beate Jessel, forderte unterdessen, Gelder aus dem Emissionshandel auch für Klimaschutzmaßnahmen im Naturschutz zu verwenden. «Ohne jeden Zweifel kann und muss eine weltweite nachhaltige Landnutzung einen Beitrag zur Reduzierung der Treibhausgase leisten», erklärte sie in Bonn.

+ + Konkret nannte Jessel ein Waldmanagement, das die Potenziale einer langfristigen CO2-Speicherung ausschöpfe und Aufbau sowie Schutz von Naturwäldern fördere, einen konsequenten Moor- und Feuchtgebietsschutz sowie eine Landwirtschaft, bei der Erosion und Humusabbau vorgebeugt werde. Wichtig sei auch, den Ausstoß von Treibhausgasen befördernde Landnutzungsänderungen zu vermeiden, wie dies etwa bei der Umwandlung von Grünland zu Acker der Fall sei.

+ + Die Umweltstiftung WWF zog eine durchwachsene Jahresbilanz. «Zwar gibt es für manche Arten Grund zur Hoffnung, doch das Massensterben im Tier- und Pflanzenreich dauert mit unverminderter Härte und gnadeloser Schnelligkeit an», sagte der Leiter des WWF-Artenschutzteams, Volker Homes. Hauptursachen seien Lebensraumzerstörung, Klimawandel, Wilderei und Übernutzung durch den Menschen. Die Verlierer 2008 seien vor allem Frösche und Amphibien, der iberische Luchs, Menschenaffen, Riesenschildkröten und der rote Tunfisch. + + + +


+ + + +

Rückblick 08: Erde lechzt nach globalen Strategien

+ Klimaschutz und nachhaltiges Wirtschaften nur langsam im Vormarsch

+ Von Wolfgang Weitlaner, Pressetext Austria, 30.12.08

+ + Wien - Klimaschutz- und Nachhaltigkeitsdebatten bestimmten zwar die öffentliche Diskussion das ganze Jahr hindurch, Fortschritte waren 2008 in wesentlichen Fragen allerdings nur marginal zu verzeichnen. Vielerorts blieben die Rufe zahlreicher Wissenschaftler, endlich wirksame Schritte gegen die fortschreitende Umweltzerstörung zu unternehmen, ungehört. Enttäuschung über das mangelnde Engagement der großen Industrienationen gab es zuletzt beim Klimagipfel in Poznan. Im kleinen Rahmen scheint sich umweltfreundliches Agieren hingegen eher durchzusetzen. So stieg das Interesse an nachhaltigen Urlaubsreisen deutlich an. Auch bei der Mobilität und im täglichen Leben wird zunehmend ökologischer gedacht. Ob das mit den rasant gestiegenen Preisen zu tun hat oder sich ein echter Gesinnungswandel abzeichnet, bleibt hingegen fraglich.

+ + Ozeane leiden unter rücksichtsloser Ausbeutung

+ + Immer noch beutet die Menschheit die Ozeane rücksichtslos aus und wirft auf den modernen Raubzügen durch die Weltmeere bis zu 80 Prozent der gefangenen Fische als toten Beifang zurück ins Meer. Experten geben der kommerziellen Fischerei, wie sie heute betrieben wird, ohnehin nicht länger als weitere 50 Jahre. Dass hochtechnisierte Fangflotten auch vor den Küsten der ärmsten Länder der Welt ihre Beute machen, scheint den Großteil der Industriestaaten kaum zu interessieren. Dieses Thema wird erst an Brisanz gewinnen, wenn sich jährlich hunderttausende Flüchtlinge aus Afrika und Asien Richtung Europa aufmachen, um dort eine neue Zukunft und bessere Lebensbedingungen zu finden. In den südlichen Ländern fordern immer noch Hunger und Krankheit Millionen von Menschenleben.

+ + Doch auch zu Lande herrscht eine kaum bessere Situation: Auch hier steht Profitdenken an vorderster Stelle. Umweltschutz, Erhaltung der Habitate und Klimaschutz bleiben leere Worthülsen. Ein schweizerisch-französisches Forscherteam hat anhand eines antarktischen Bohrkerns festgestellt, dass die heutige CO2-Konzentration in der Atmosphäre über 28 Prozent höher liegt als je zuvor in den vergangenen 800.000 Jahren. Auch die Methan-Konzentrationen liegen heute um über 124 Prozent höher als je zuvor. Eine Verbesserung der Lage scheint angesichts des steigenden Verkehrsaufkommens kaum möglich. Das Argument, dass Nachhaltigkeit mehr koste als rücksichtslose Ausbeutung hält sich weiterhin hartnäckig in den meisten Köpfen.

+ + Wirtschaftskrise stellt Umweltfragen in den Schatten

+ + Die schlimmste Befürchtung der Umweltschützer ist, dass durch die anhaltende Wirtschaftskrise die Zerstörung der Natur und der Umwelt einmal mehr aus dem Fokus des Weltinteresses rückt. Die weitere Zerstörung von Flüssen, Wäldern und Ozeanen wird die Wirtschaft allerdings drastisch treffen. Nach Schätzungen von Experten wird das globale BIP aus diesen Gründen bis 2050 um rund sieben Prozent schrumpfen. Vor allem die ärmeren Länder werden unter der Situation extrem leiden. Gerade die indigenen Völker dürften von der bevorstehenden Veränderung und obwohl sie den geringsten Beitrag zur Klimaerwärmung liefern am härtesten getroffen werden. Schwellenländer wie China tragen das dazu bei, dass "klimarelevante Emissionen" exorbitant ansteigen. So hat sich einem Forschungsbericht zufolge der ökologische Fußabdruck im Reich der Mitte seit den 1960er Jahren verdoppelt und beansprucht nun zwei Mal so viel, wie das Ökosystem des Landes nachhaltig gewährleisten kann.

+ + Der bis zur Hälfte des Jahres hohe Rohölpreis hat die Debatte um die Energieversorgung der Zukunft einmal mehr in den Mittelpunkt gerückt. Viele Industriestaaten setzen entgegen den Empfehlungen von Umweltexperten auf Agro-Treibstoffe der ersten Generation - etwa Rapsöl oder Getreide. Die Nachfrage nach Palmöl sowohl als Energiepflanze als auch in der Nahrungsmittelindustrie hat gar dazu geführt, dass tropische Regenwaldgebiete zusätzlich gerodet wurden. Experten kritisieren zudem, dass fix vereinbarte Beimengungsquoten zu einer Verschärfung der Situation führen werden. Das gelte vor allem für den Fall, dass Ernten schwächer ausfallen als geplant.

+ + Energieeffizienz als Zauberwort

+ + Erstmals wurde in diesem Jahr auch der Einsatz von Biotreibstoffen in kommerziellen Flugzeugen getestet. Experten sehen darin aber keine echte Alternative zu fossilen Treibstoffen. Eine Treibstoffeinsparung sei eher durch verbesserte Technologien erzielbar. Der vielversprechende neue Dreamliner aus dem Hause Boeing - eine echte Innovation im Bezug auf die Rumpffertigung aus Verbundstoffen - konnte trotz Vorankündigung immer noch nicht den Jungfernflug absolvieren. Ebenso wie in der Baubranche setzt sich hier der Themenbereich "Erhöhung der Energieeffizienz" durch. Im Bereich Autoverkehr dürfte die Zukunft bei den Elektrofahrzeugen liegen. Gründe für den Elektromotor sind der deutlich höhere Wirkungsgrad sowie der geringere Verschleiß. 2008 wird als das Jahr des langsamen Endes des Diesel-Fahrzeugbooms eingehen. Höhere Kosten haben Konsumenten schnell reagieren lassen. Ähnliches manifestiert sich auch bei der Wahl der Heizsysteme in Einfamilienhäusern: Öl-Heizungen nehmen deutlich ab.

+ + Tourismus wird grüner

+ + Anfang des Jahres standen alle Zeichen im globalen Tourismus auf grün. Im Lauf des Jahres verschlechterte sich die Situation jedoch deutlich. Einerseits machte der hohe Rohölpreis den Fluggesellschaften zu schaffen, andererseits kündigte sich in der zweiten Jahreshälfte die weltweite Rezession an. Anfangs bewirkte der schwache Dollar noch eine vermehrte Reisetätigkeit in Richtung des Doppelkontinents. Die US-amerikanischen Reiseziele blieben jedoch während der Hochsaison vielfach leer. Der niedrige US-Dollarkurs verteuerte Urlaubsreisen für die US-Amerikaner außerhalb der Dollar-Zone deutlich, weshalb es zu einem deutlichen Einbruch der Preise in den klassischen Hochburgen wie etwa Las Vegas und Hawaii kam. Politische Unruhen in Thailand und Terroranschläge in Mumbai setzten den beiden beliebten Reisezielen stark zu.

+ + Der Modus des Reisens geht deutlich in Richtung Nachhaltigkeit - das war sowohl bei der ITB-Berlin offensichtlich als auch bei der Verleihung der World Travel Awards, die erstmals auch Auszeichnungen in der Kategorie "Green" vergab. Das neue Reisegefühl nimmt Abstand von den artifiziellen und gigantomanischen Hotelburgen und setzt auf Genießen im kleinen Rahmen. Kunden legen vermehrt Wert auf Authentizität und suchen Erholung in der Einfachheit. Naturerlebnisse und Kontakt mit der Bevölkerung im Gastland werden wichtiger als künstliche Welten aus Kunststoff und Neon. + + + +


+ + + Dienstag, 30. Dezember, 16:27 Uhr
+

NABU: Glos beim Umweltschutz "Dinosaurier des Jahres 2008"

+ + (AFP) - Bundeswirtschaftsminister Michael Glos (CSU) ist nach Ansicht des Naturschutzbundes (NABU) in Umweltfragen der "Dinosaurier des Jahres 2008". Der NABU vergab "Deutschlands peinlichsten Umweltpreis" an den Minister. Trotz aller Warnungen vor den ökonomischen Folgen des Klimawandels habe er sich "als hartnäckiger Bremsklotz in Sachen Klima- und Umweltschutz hervorgetan", begründete NABU-Präsident Olaf Tschimpke die Wahl. Die Naturschützer bezeichneten die Öko-Bilanz von Glos als "katastrophal".

+ + So habe er sich beim Kernstück der europäischen Klimapolitik - dem Handel mit Verschmutzungsrechten - von Anfang an dafür ausgesprochen, dass die Stromkonzerne und möglichst viele Industriezweige auch in Zukunft alle Berechtigungsscheine zum Ausstoß klimaschädlicher Treibhausgase kostenlos erhielten. Es sei "schamlos", wie vehement der Bundeswirtschaftsminister als "verlängertes Sprachrohr der Atomlobby für diese Steinzeit- und Risikotechnologie kämpfe, erklärte Tschimpke.

+ + In der Finanz- und Wirtschaftskrise sei Glos außer Steuersenkungen für Umwelt- und Klimasünder nichts eingefallen, kritisierte der NABU-Präsident. Er habe im Gegenteil als einer der ersten die Klimaschutz-Auflagen für die Autoindustrie in Frage gestellt und damit ein wichtiges Instrument zur Senkung des Schadstoffausstoßes im Verkehr torpediert. Glos habe sich damit die Trophäe "redlich" erarbeitet. + + + + +






diff --git a/interactive_php/.buildpath b/php/gc_spider/.buildpath similarity index 100% rename from interactive_php/.buildpath rename to php/gc_spider/.buildpath diff --git a/gc_spider/gc.kml b/php/gc_spider/gc.kml similarity index 100% rename from gc_spider/gc.kml rename to php/gc_spider/gc.kml diff --git a/gc_spider/icons/accept.png b/php/gc_spider/icons/accept.png similarity index 100% rename from gc_spider/icons/accept.png rename to php/gc_spider/icons/accept.png diff --git a/gc_spider/icons/delete.png b/php/gc_spider/icons/delete.png similarity index 100% rename from gc_spider/icons/delete.png rename to php/gc_spider/icons/delete.png diff --git a/gc_spider/icons/gc-cito.gif b/php/gc_spider/icons/gc-cito.gif similarity index 100% rename from gc_spider/icons/gc-cito.gif rename to php/gc_spider/icons/gc-cito.gif diff --git a/gc_spider/icons/gc-earthcache.gif b/php/gc_spider/icons/gc-earthcache.gif similarity index 100% rename from gc_spider/icons/gc-earthcache.gif rename to php/gc_spider/icons/gc-earthcache.gif diff --git a/gc_spider/icons/gc-event.gif b/php/gc_spider/icons/gc-event.gif similarity index 100% rename from gc_spider/icons/gc-event.gif rename to php/gc_spider/icons/gc-event.gif diff --git a/gc_spider/icons/gc-letterbox.gif b/php/gc_spider/icons/gc-letterbox.gif similarity index 100% rename from gc_spider/icons/gc-letterbox.gif rename to php/gc_spider/icons/gc-letterbox.gif diff --git a/gc_spider/icons/gc-megaevent.gif b/php/gc_spider/icons/gc-megaevent.gif similarity index 100% rename from gc_spider/icons/gc-megaevent.gif rename to php/gc_spider/icons/gc-megaevent.gif diff --git a/gc_spider/icons/gc-multi.gif b/php/gc_spider/icons/gc-multi.gif similarity index 100% rename from gc_spider/icons/gc-multi.gif rename to php/gc_spider/icons/gc-multi.gif diff --git a/gc_spider/icons/gc-mystery.gif b/php/gc_spider/icons/gc-mystery.gif similarity index 100% rename from gc_spider/icons/gc-mystery.gif rename to php/gc_spider/icons/gc-mystery.gif diff --git a/gc_spider/icons/gc-traditional.gif b/php/gc_spider/icons/gc-traditional.gif similarity index 100% rename from gc_spider/icons/gc-traditional.gif rename to php/gc_spider/icons/gc-traditional.gif diff --git a/gc_spider/icons/gc-virtual.gif b/php/gc_spider/icons/gc-virtual.gif similarity index 100% rename from gc_spider/icons/gc-virtual.gif rename to php/gc_spider/icons/gc-virtual.gif diff --git a/gc_spider/icons/gc-webcam.gif b/php/gc_spider/icons/gc-webcam.gif similarity index 100% rename from gc_spider/icons/gc-webcam.gif rename to php/gc_spider/icons/gc-webcam.gif diff --git a/gc_spider/include/classes/gc.php b/php/gc_spider/include/classes/gc.php similarity index 100% rename from gc_spider/include/classes/gc.php rename to php/gc_spider/include/classes/gc.php diff --git a/gc_spider/index.php b/php/gc_spider/index.php similarity index 100% rename from gc_spider/index.php rename to php/gc_spider/index.php diff --git a/gc_spider/json_response b/php/gc_spider/json_response similarity index 100% rename from gc_spider/json_response rename to php/gc_spider/json_response diff --git a/gc_spider/kml.php b/php/gc_spider/kml.php similarity index 100% rename from gc_spider/kml.php rename to php/gc_spider/kml.php diff --git a/gc_spider/post_request_data b/php/gc_spider/post_request_data similarity index 100% rename from gc_spider/post_request_data rename to php/gc_spider/post_request_data diff --git a/ndame/.buildpath b/php/interactive_php/.buildpath similarity index 100% rename from ndame/.buildpath rename to php/interactive_php/.buildpath diff --git a/interactive_php/1.ttf b/php/interactive_php/1.ttf similarity index 100% rename from interactive_php/1.ttf rename to php/interactive_php/1.ttf diff --git a/interactive_php/2.ttf b/php/interactive_php/2.ttf similarity index 100% rename from interactive_php/2.ttf rename to php/interactive_php/2.ttf diff --git a/interactive_php/3.ttf b/php/interactive_php/3.ttf similarity index 100% rename from interactive_php/3.ttf rename to php/interactive_php/3.ttf diff --git a/interactive_php/4.ttf b/php/interactive_php/4.ttf similarity index 100% rename from interactive_php/4.ttf rename to php/interactive_php/4.ttf diff --git a/interactive_php/5.ttf b/php/interactive_php/5.ttf similarity index 100% rename from interactive_php/5.ttf rename to php/interactive_php/5.ttf diff --git a/interactive_php/6.ttf b/php/interactive_php/6.ttf similarity index 100% rename from interactive_php/6.ttf rename to php/interactive_php/6.ttf diff --git a/interactive_php/image.php b/php/interactive_php/image.php similarity index 100% rename from interactive_php/image.php rename to php/interactive_php/image.php diff --git a/interactive_php/index.html b/php/interactive_php/index.html similarity index 100% rename from interactive_php/index.html rename to php/interactive_php/index.html diff --git a/interactive_php/slider/css/bluecurve/bluecurve.css b/php/interactive_php/slider/css/bluecurve/bluecurve.css similarity index 95% rename from interactive_php/slider/css/bluecurve/bluecurve.css rename to php/interactive_php/slider/css/bluecurve/bluecurve.css index 80904eb..01e3a56 100644 --- a/interactive_php/slider/css/bluecurve/bluecurve.css +++ b/php/interactive_php/slider/css/bluecurve/bluecurve.css @@ -1,80 +1,80 @@ -/* - back: rgb(230,230,230) - dark: rgb(90,97,90) - medium rgb(189,190,189) - */ - -.dynamic-slider-control { - position: relative; - background-color: rgb(230,230,230); - -moz-user-focus: normal; - -moz-user-select: none; - cursor: default; -} - -.horizontal { - width: 200px; - height: 27px; -} - -.vertical { - width: 29px; - height: 200px; -} - -.dynamic-slider-control input { - display: none; -} - -.dynamic-slider-control .handle { - position: absolute; - font-size: 1px; - overflow: hidden; - -moz-user-select: none; - cursor: default; -} - -.dynamic-slider-control.horizontal .handle { - width: 31px; - height: 14px; - background-image: url("handle.horizontal.png"); -} - -.dynamic-slider-control.horizontal .handle div {} -.dynamic-slider-control.horizontal .handle.hover {} - -.dynamic-slider-control.vertical .handle { - width: 15px; - height: 31px; - background-image: url("handle.vertical.png"); -} - -.dynamic-slider-control.vertical .handle.hover {} - -.dynamic-slider-control .line { - position: absolute; - font-size: 0.01mm; - overflow: hidden; - border: 1px solid rgb(90,97,90); - background: rgb(189,190,189); - - behavior: url("css/boxsizing.htc"); /* ie path bug */ - box-sizing: content-box; - -moz-box-sizing: content-box; -} -.dynamic-slider-control.vertical .line { - width: 3px; -} - -.dynamic-slider-control.horizontal .line { - height: 3px; -} - -.dynamic-slider-control .line div { - width: 1px; - height: 1px; - - border: 1px solid; - border-color: rgb(230,230,230) rgb(189,190,189) - rgb(189,190,189) rgb(230,230,230); +/* + back: rgb(230,230,230) + dark: rgb(90,97,90) + medium rgb(189,190,189) + */ + +.dynamic-slider-control { + position: relative; + background-color: rgb(230,230,230); + -moz-user-focus: normal; + -moz-user-select: none; + cursor: default; +} + +.horizontal { + width: 200px; + height: 27px; +} + +.vertical { + width: 29px; + height: 200px; +} + +.dynamic-slider-control input { + display: none; +} + +.dynamic-slider-control .handle { + position: absolute; + font-size: 1px; + overflow: hidden; + -moz-user-select: none; + cursor: default; +} + +.dynamic-slider-control.horizontal .handle { + width: 31px; + height: 14px; + background-image: url("handle.horizontal.png"); +} + +.dynamic-slider-control.horizontal .handle div {} +.dynamic-slider-control.horizontal .handle.hover {} + +.dynamic-slider-control.vertical .handle { + width: 15px; + height: 31px; + background-image: url("handle.vertical.png"); +} + +.dynamic-slider-control.vertical .handle.hover {} + +.dynamic-slider-control .line { + position: absolute; + font-size: 0.01mm; + overflow: hidden; + border: 1px solid rgb(90,97,90); + background: rgb(189,190,189); + + behavior: url("css/boxsizing.htc"); /* ie path bug */ + box-sizing: content-box; + -moz-box-sizing: content-box; +} +.dynamic-slider-control.vertical .line { + width: 3px; +} + +.dynamic-slider-control.horizontal .line { + height: 3px; +} + +.dynamic-slider-control .line div { + width: 1px; + height: 1px; + + border: 1px solid; + border-color: rgb(230,230,230) rgb(189,190,189) + rgb(189,190,189) rgb(230,230,230); } \ No newline at end of file diff --git a/interactive_php/slider/css/bluecurve/handle.horizontal.png b/php/interactive_php/slider/css/bluecurve/handle.horizontal.png similarity index 100% rename from interactive_php/slider/css/bluecurve/handle.horizontal.png rename to php/interactive_php/slider/css/bluecurve/handle.horizontal.png diff --git a/interactive_php/slider/css/bluecurve/handle.vertical.png b/php/interactive_php/slider/css/bluecurve/handle.vertical.png similarity index 100% rename from interactive_php/slider/css/bluecurve/handle.vertical.png rename to php/interactive_php/slider/css/bluecurve/handle.vertical.png diff --git a/interactive_php/slider/css/bluecurve/horizontal.gif b/php/interactive_php/slider/css/bluecurve/horizontal.gif similarity index 100% rename from interactive_php/slider/css/bluecurve/horizontal.gif rename to php/interactive_php/slider/css/bluecurve/horizontal.gif diff --git a/interactive_php/slider/css/bluecurve/vertical.gif b/php/interactive_php/slider/css/bluecurve/vertical.gif similarity index 100% rename from interactive_php/slider/css/bluecurve/vertical.gif rename to php/interactive_php/slider/css/bluecurve/vertical.gif diff --git a/interactive_php/slider/css/boxsizing.htc b/php/interactive_php/slider/css/boxsizing.htc similarity index 96% rename from interactive_php/slider/css/boxsizing.htc rename to php/interactive_php/slider/css/boxsizing.htc index fbeaa56..bbb55f6 100644 --- a/interactive_php/slider/css/boxsizing.htc +++ b/php/interactive_php/slider/css/boxsizing.htc @@ -1,157 +1,157 @@ - - - - + + + + \ No newline at end of file diff --git a/interactive_php/slider/css/luna/handle.horizontal.hover.png b/php/interactive_php/slider/css/luna/handle.horizontal.hover.png similarity index 100% rename from interactive_php/slider/css/luna/handle.horizontal.hover.png rename to php/interactive_php/slider/css/luna/handle.horizontal.hover.png diff --git a/interactive_php/slider/css/luna/handle.horizontal.png b/php/interactive_php/slider/css/luna/handle.horizontal.png similarity index 100% rename from interactive_php/slider/css/luna/handle.horizontal.png rename to php/interactive_php/slider/css/luna/handle.horizontal.png diff --git a/interactive_php/slider/css/luna/handle.vertical.hover.png b/php/interactive_php/slider/css/luna/handle.vertical.hover.png similarity index 100% rename from interactive_php/slider/css/luna/handle.vertical.hover.png rename to php/interactive_php/slider/css/luna/handle.vertical.hover.png diff --git a/interactive_php/slider/css/luna/handle.vertical.png b/php/interactive_php/slider/css/luna/handle.vertical.png similarity index 100% rename from interactive_php/slider/css/luna/handle.vertical.png rename to php/interactive_php/slider/css/luna/handle.vertical.png diff --git a/interactive_php/slider/css/luna/luna.css b/php/interactive_php/slider/css/luna/luna.css similarity index 95% rename from interactive_php/slider/css/luna/luna.css rename to php/interactive_php/slider/css/luna/luna.css index 25597da..9b1fb8d 100644 --- a/interactive_php/slider/css/luna/luna.css +++ b/php/interactive_php/slider/css/luna/luna.css @@ -1,75 +1,75 @@ -.dynamic-slider-control { - position: relative; - background-color: ThreeDFace; - -moz-user-focus: normal; - -moz-user-select: none; - cursor: default; -} - -.horizontal { - width: 200px; - height: 27px; -} - -.vertical { - width: 29px; - height: 200px; -} - -.dynamic-slider-control input { - display: none; -} - -.dynamic-slider-control .handle { - position: absolute; - font-size: 1px; - overflow: hidden; - -moz-user-select: none; - cursor: default; -} - -.dynamic-slider-control.horizontal .handle { - width: 11px; - height: 21px; - background-image: url("handle.horizontal.png"); -} - -.dynamic-slider-control.horizontal .handle div {} -.dynamic-slider-control.horizontal .handle.hover { - background-image: url("handle.horizontal.hover.png"); -} - -.dynamic-slider-control.vertical .handle { - width: 25px; - height: 13px; - background-image: url("handle.vertical.png"); -} - -.dynamic-slider-control.vertical .handle.hover { - background-image: url("handle.vertical.hover.png"); -} - -.dynamic-slider-control .line { - position: absolute; - font-size: 0.01mm; - overflow: hidden; - border: 1px solid; - border-color: ThreeDShadow ThreeDHighlight - ThreeDHighlight ThreeDShadow; - -moz-border-radius: 50%; - - behavior: url("css/boxsizing.htc"); /* ie path bug */ - box-sizing: content-box; - -moz-box-sizing: content-box; -} -.dynamic-slider-control.vertical .line { - width: 2px; -} - -.dynamic-slider-control.horizontal .line { - height: 2px; -} - -.dynamic-slider-control .line div { - display: none; +.dynamic-slider-control { + position: relative; + background-color: ThreeDFace; + -moz-user-focus: normal; + -moz-user-select: none; + cursor: default; +} + +.horizontal { + width: 200px; + height: 27px; +} + +.vertical { + width: 29px; + height: 200px; +} + +.dynamic-slider-control input { + display: none; +} + +.dynamic-slider-control .handle { + position: absolute; + font-size: 1px; + overflow: hidden; + -moz-user-select: none; + cursor: default; +} + +.dynamic-slider-control.horizontal .handle { + width: 11px; + height: 21px; + background-image: url("handle.horizontal.png"); +} + +.dynamic-slider-control.horizontal .handle div {} +.dynamic-slider-control.horizontal .handle.hover { + background-image: url("handle.horizontal.hover.png"); +} + +.dynamic-slider-control.vertical .handle { + width: 25px; + height: 13px; + background-image: url("handle.vertical.png"); +} + +.dynamic-slider-control.vertical .handle.hover { + background-image: url("handle.vertical.hover.png"); +} + +.dynamic-slider-control .line { + position: absolute; + font-size: 0.01mm; + overflow: hidden; + border: 1px solid; + border-color: ThreeDShadow ThreeDHighlight + ThreeDHighlight ThreeDShadow; + -moz-border-radius: 50%; + + behavior: url("css/boxsizing.htc"); /* ie path bug */ + box-sizing: content-box; + -moz-box-sizing: content-box; +} +.dynamic-slider-control.vertical .line { + width: 2px; +} + +.dynamic-slider-control.horizontal .line { + height: 2px; +} + +.dynamic-slider-control .line div { + display: none; } \ No newline at end of file diff --git a/interactive_php/slider/css/swing/handle.horizontal.png b/php/interactive_php/slider/css/swing/handle.horizontal.png similarity index 100% rename from interactive_php/slider/css/swing/handle.horizontal.png rename to php/interactive_php/slider/css/swing/handle.horizontal.png diff --git a/interactive_php/slider/css/swing/handle.vertical.png b/php/interactive_php/slider/css/swing/handle.vertical.png similarity index 100% rename from interactive_php/slider/css/swing/handle.vertical.png rename to php/interactive_php/slider/css/swing/handle.vertical.png diff --git a/interactive_php/slider/css/swing/swing.css b/php/interactive_php/slider/css/swing/swing.css similarity index 95% rename from interactive_php/slider/css/swing/swing.css rename to php/interactive_php/slider/css/swing/swing.css index 53ba9f2..e02ec70 100644 --- a/interactive_php/slider/css/swing/swing.css +++ b/php/interactive_php/slider/css/swing/swing.css @@ -1,82 +1,82 @@ -/* - dark rgb(102,102,102) - medium rgb(152,153,153) - gray: rgb(204,204,204) - bright: white; - */ - -.dynamic-slider-control { - position: relative; - background-color: rgb(204,204,204); - -moz-user-focus: normal; - -moz-user-select: none; - cursor: default; -} - -.horizontal { - width: 200px; - height: 27px; -} - -.vertical { - width: 29px; - height: 200px; -} - -.dynamic-slider-control input { - display: none; -} - -.dynamic-slider-control .handle { - position: absolute; - font-size: 1px; - overflow: hidden; - -moz-user-select: none; - cursor: default; -} - -.dynamic-slider-control.horizontal .handle { - width: 15px; - height: 16px; - background-image: url("handle.horizontal.png"); -} - -.dynamic-slider-control.horizontal .handle div {} -.dynamic-slider-control.horizontal .handle.hover {} - -.dynamic-slider-control.vertical .handle { - width: 16px; - height: 15px; - background-image: url("handle.vertical.png"); -} - -.dynamic-slider-control.vertical .handle.hover {} - -.dynamic-slider-control .line { - position: absolute; - font-size: 0.01mm; - overflow: hidden; - border: 1px solid; - border-color: rgb(102,102,102) white - white rgb(102,102,102); - - behavior: url("css/boxsizing.htc"); /* ie path bug */ - box-sizing: content-box; - -moz-box-sizing: content-box; -} -.dynamic-slider-control.vertical .line { - width: 4px; -} - -.dynamic-slider-control.horizontal .line { - height: 4px; -} - -.dynamic-slider-control .line div { - width: 2px; - height: 2px; - - border: 1px solid; - border-color: rgb(152,153,153) rgb(102,102,102) - rgb(102,102,102) rgb(152,153,153); +/* + dark rgb(102,102,102) + medium rgb(152,153,153) + gray: rgb(204,204,204) + bright: white; + */ + +.dynamic-slider-control { + position: relative; + background-color: rgb(204,204,204); + -moz-user-focus: normal; + -moz-user-select: none; + cursor: default; +} + +.horizontal { + width: 200px; + height: 27px; +} + +.vertical { + width: 29px; + height: 200px; +} + +.dynamic-slider-control input { + display: none; +} + +.dynamic-slider-control .handle { + position: absolute; + font-size: 1px; + overflow: hidden; + -moz-user-select: none; + cursor: default; +} + +.dynamic-slider-control.horizontal .handle { + width: 15px; + height: 16px; + background-image: url("handle.horizontal.png"); +} + +.dynamic-slider-control.horizontal .handle div {} +.dynamic-slider-control.horizontal .handle.hover {} + +.dynamic-slider-control.vertical .handle { + width: 16px; + height: 15px; + background-image: url("handle.vertical.png"); +} + +.dynamic-slider-control.vertical .handle.hover {} + +.dynamic-slider-control .line { + position: absolute; + font-size: 0.01mm; + overflow: hidden; + border: 1px solid; + border-color: rgb(102,102,102) white + white rgb(102,102,102); + + behavior: url("css/boxsizing.htc"); /* ie path bug */ + box-sizing: content-box; + -moz-box-sizing: content-box; +} +.dynamic-slider-control.vertical .line { + width: 4px; +} + +.dynamic-slider-control.horizontal .line { + height: 4px; +} + +.dynamic-slider-control .line div { + width: 2px; + height: 2px; + + border: 1px solid; + border-color: rgb(152,153,153) rgb(102,102,102) + rgb(102,102,102) rgb(152,153,153); } \ No newline at end of file diff --git a/interactive_php/slider/css/winclassic.css b/php/interactive_php/slider/css/winclassic.css similarity index 95% rename from interactive_php/slider/css/winclassic.css rename to php/interactive_php/slider/css/winclassic.css index 4b005a5..068596d 100644 --- a/interactive_php/slider/css/winclassic.css +++ b/php/interactive_php/slider/css/winclassic.css @@ -1,99 +1,99 @@ -.dynamic-slider-control { - position: relative; - background-color: ThreeDFace; - -moz-user-focus: normal; - -moz-user-select: none; - cursor: default; -} - -.horizontal { - width: 200px; - height: 29px; -} - -.vertical { - width: 29px; - height: 200px; -} - -.dynamic-slider-control input { - display: none; -} - -.dynamic-slider-control .handle { - position: absolute; - -moz-user-select: none; - cursor: default; - background: ThreeDFace; - border: 1px solid; - border-color: ThreeDHighlight ThreeDDarkShadow - ThreeDDarkShadow ThreeDHighlight; -} - -/* inner border */ -.dynamic-slider-control .handle div { - font-size: 1px; - border: 1px solid; - border-color: ThreeDLightShadow ThreeDShadow - ThreeDShadow ThreeDLightShadow; - - behavior: url("css/boxsizing.htc"); /* ie path bug */ - box-sizing: content-box; - -moz-box-sizing: content-box; -} - -/* inner sets size -.dynamic-slider-control.horizontal .handle { - width: 12px; - height: 22px; -} -*/ - -.dynamic-slider-control.horizontal .handle div { - width: 8px; - height: 18px; -} - -.dynamic-slider-control.horizontal .handle.hover {} - -/* inner sets size -.dynamic-slider-control.vertical .handle { - width: 22px; - height: 12px; -} -*/ - -.dynamic-slider-control.vertical .handle div { - width: 18px; - height: 8px; -} - -.dynamic-slider-control.vertical .handle.hover {} - -.dynamic-slider-control .line { - - behavior: url("css/boxsizing.htc"); /* ie path bug */ - box-sizing: content-box; - -moz-box-sizing: content-box; - - position: absolute; - font-size: 0.01mm; - overflow: hidden; - border: 1px solid; - border-color: ThreeDShadow ThreeDHighlight - ThreeDHighlight ThreeDShadow; - background: ThreeDDarkShadow; -} - -.dynamic-slider-control.vertical .line { - width: 1px; - -} - -.dynamic-slider-control.horizontal .line { - height: 1px; -} - -.dynamic-slider-control .line div { - display: none; +.dynamic-slider-control { + position: relative; + background-color: ThreeDFace; + -moz-user-focus: normal; + -moz-user-select: none; + cursor: default; +} + +.horizontal { + width: 200px; + height: 29px; +} + +.vertical { + width: 29px; + height: 200px; +} + +.dynamic-slider-control input { + display: none; +} + +.dynamic-slider-control .handle { + position: absolute; + -moz-user-select: none; + cursor: default; + background: ThreeDFace; + border: 1px solid; + border-color: ThreeDHighlight ThreeDDarkShadow + ThreeDDarkShadow ThreeDHighlight; +} + +/* inner border */ +.dynamic-slider-control .handle div { + font-size: 1px; + border: 1px solid; + border-color: ThreeDLightShadow ThreeDShadow + ThreeDShadow ThreeDLightShadow; + + behavior: url("css/boxsizing.htc"); /* ie path bug */ + box-sizing: content-box; + -moz-box-sizing: content-box; +} + +/* inner sets size +.dynamic-slider-control.horizontal .handle { + width: 12px; + height: 22px; +} +*/ + +.dynamic-slider-control.horizontal .handle div { + width: 8px; + height: 18px; +} + +.dynamic-slider-control.horizontal .handle.hover {} + +/* inner sets size +.dynamic-slider-control.vertical .handle { + width: 22px; + height: 12px; +} +*/ + +.dynamic-slider-control.vertical .handle div { + width: 18px; + height: 8px; +} + +.dynamic-slider-control.vertical .handle.hover {} + +.dynamic-slider-control .line { + + behavior: url("css/boxsizing.htc"); /* ie path bug */ + box-sizing: content-box; + -moz-box-sizing: content-box; + + position: absolute; + font-size: 0.01mm; + overflow: hidden; + border: 1px solid; + border-color: ThreeDShadow ThreeDHighlight + ThreeDHighlight ThreeDShadow; + background: ThreeDDarkShadow; +} + +.dynamic-slider-control.vertical .line { + width: 1px; + +} + +.dynamic-slider-control.horizontal .line { + height: 1px; +} + +.dynamic-slider-control .line div { + display: none; } \ No newline at end of file diff --git a/interactive_php/slider/js/range.js b/php/interactive_php/slider/js/range.js similarity index 97% rename from interactive_php/slider/js/range.js rename to php/interactive_php/slider/js/range.js index 54f9a48..53c8f34 100644 --- a/interactive_php/slider/js/range.js +++ b/php/interactive_php/slider/js/range.js @@ -1,132 +1,132 @@ -/*----------------------------------------------------------------------------\ -| Range Class | -|-----------------------------------------------------------------------------| -| Created by Erik Arvidsson | -| (http://webfx.eae.net/contact.html#erik) | -| For WebFX (http://webfx.eae.net/) | -|-----------------------------------------------------------------------------| -| Used to model the data used when working with sliders, scrollbars and | -| progress bars. Based on the ideas of the javax.swing.BoundedRangeModel | -| interface defined by Sun for Java; http://java.sun.com/products/jfc/ | -| swingdoc-api-1.0.3/com/sun/java/swing/BoundedRangeModel.html | -|-----------------------------------------------------------------------------| -| Copyright (c) 2002, 2005, 2006 Erik Arvidsson | -|-----------------------------------------------------------------------------| -| Licensed under the Apache License, Version 2.0 (the "License"); you may not | -| use this file except in compliance with the License. You may obtain a copy | -| of the License at http://www.apache.org/licenses/LICENSE-2.0 | -| - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | -| Unless required by applicable law or agreed to in writing, software | -| distributed under the License is distributed on an "AS IS" BASIS, WITHOUT | -| WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the | -| License for the specific language governing permissions and limitations | -| under the License. | -|-----------------------------------------------------------------------------| -| 2002-10-14 | Original version released | -| 2005-10-27 | Use Math.round instead of Math.floor | -| 2006-05-28 | Changed license to Apache Software License 2.0. | -|-----------------------------------------------------------------------------| -| Created 2002-10-14 | All changes are in the log above. | Updated 2006-05-28 | -\----------------------------------------------------------------------------*/ - - -function Range() { - this._value = 0; - this._minimum = 0; - this._maximum = 100; - this._extent = 0; - - this._isChanging = false; -} - -Range.prototype.setValue = function (value) { - value = Math.round(parseFloat(value)); - if (isNaN(value)) return; - if (this._value != value) { - if (value + this._extent > this._maximum) - this._value = this._maximum - this._extent; - else if (value < this._minimum) - this._value = this._minimum; - else - this._value = value; - if (!this._isChanging && typeof this.onchange == "function") - this.onchange(); - } -}; - -Range.prototype.getValue = function () { - return this._value; -}; - -Range.prototype.setExtent = function (extent) { - if (this._extent != extent) { - if (extent < 0) - this._extent = 0; - else if (this._value + extent > this._maximum) - this._extent = this._maximum - this._value; - else - this._extent = extent; - if (!this._isChanging && typeof this.onchange == "function") - this.onchange(); - } -}; - -Range.prototype.getExtent = function () { - return this._extent; -}; - -Range.prototype.setMinimum = function (minimum) { - if (this._minimum != minimum) { - var oldIsChanging = this._isChanging; - this._isChanging = true; - - this._minimum = minimum; - - if (minimum > this._value) - this.setValue(minimum); - if (minimum > this._maximum) { - this._extent = 0; - this.setMaximum(minimum); - this.setValue(minimum) - } - if (minimum + this._extent > this._maximum) - this._extent = this._maximum - this._minimum; - - this._isChanging = oldIsChanging; - if (!this._isChanging && typeof this.onchange == "function") - this.onchange(); - } -}; - -Range.prototype.getMinimum = function () { - return this._minimum; -}; - -Range.prototype.setMaximum = function (maximum) { - if (this._maximum != maximum) { - var oldIsChanging = this._isChanging; - this._isChanging = true; - - this._maximum = maximum; - - if (maximum < this._value) - this.setValue(maximum - this._extent); - if (maximum < this._minimum) { - this._extent = 0; - this.setMinimum(maximum); - this.setValue(this._maximum); - } - if (maximum < this._minimum + this._extent) - this._extent = this._maximum - this._minimum; - if (maximum < this._value + this._extent) - this._extent = this._maximum - this._value; - - this._isChanging = oldIsChanging; - if (!this._isChanging && typeof this.onchange == "function") - this.onchange(); - } -}; - -Range.prototype.getMaximum = function () { - return this._maximum; -}; +/*----------------------------------------------------------------------------\ +| Range Class | +|-----------------------------------------------------------------------------| +| Created by Erik Arvidsson | +| (http://webfx.eae.net/contact.html#erik) | +| For WebFX (http://webfx.eae.net/) | +|-----------------------------------------------------------------------------| +| Used to model the data used when working with sliders, scrollbars and | +| progress bars. Based on the ideas of the javax.swing.BoundedRangeModel | +| interface defined by Sun for Java; http://java.sun.com/products/jfc/ | +| swingdoc-api-1.0.3/com/sun/java/swing/BoundedRangeModel.html | +|-----------------------------------------------------------------------------| +| Copyright (c) 2002, 2005, 2006 Erik Arvidsson | +|-----------------------------------------------------------------------------| +| Licensed under the Apache License, Version 2.0 (the "License"); you may not | +| use this file except in compliance with the License. You may obtain a copy | +| of the License at http://www.apache.org/licenses/LICENSE-2.0 | +| - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | +| Unless required by applicable law or agreed to in writing, software | +| distributed under the License is distributed on an "AS IS" BASIS, WITHOUT | +| WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the | +| License for the specific language governing permissions and limitations | +| under the License. | +|-----------------------------------------------------------------------------| +| 2002-10-14 | Original version released | +| 2005-10-27 | Use Math.round instead of Math.floor | +| 2006-05-28 | Changed license to Apache Software License 2.0. | +|-----------------------------------------------------------------------------| +| Created 2002-10-14 | All changes are in the log above. | Updated 2006-05-28 | +\----------------------------------------------------------------------------*/ + + +function Range() { + this._value = 0; + this._minimum = 0; + this._maximum = 100; + this._extent = 0; + + this._isChanging = false; +} + +Range.prototype.setValue = function (value) { + value = Math.round(parseFloat(value)); + if (isNaN(value)) return; + if (this._value != value) { + if (value + this._extent > this._maximum) + this._value = this._maximum - this._extent; + else if (value < this._minimum) + this._value = this._minimum; + else + this._value = value; + if (!this._isChanging && typeof this.onchange == "function") + this.onchange(); + } +}; + +Range.prototype.getValue = function () { + return this._value; +}; + +Range.prototype.setExtent = function (extent) { + if (this._extent != extent) { + if (extent < 0) + this._extent = 0; + else if (this._value + extent > this._maximum) + this._extent = this._maximum - this._value; + else + this._extent = extent; + if (!this._isChanging && typeof this.onchange == "function") + this.onchange(); + } +}; + +Range.prototype.getExtent = function () { + return this._extent; +}; + +Range.prototype.setMinimum = function (minimum) { + if (this._minimum != minimum) { + var oldIsChanging = this._isChanging; + this._isChanging = true; + + this._minimum = minimum; + + if (minimum > this._value) + this.setValue(minimum); + if (minimum > this._maximum) { + this._extent = 0; + this.setMaximum(minimum); + this.setValue(minimum) + } + if (minimum + this._extent > this._maximum) + this._extent = this._maximum - this._minimum; + + this._isChanging = oldIsChanging; + if (!this._isChanging && typeof this.onchange == "function") + this.onchange(); + } +}; + +Range.prototype.getMinimum = function () { + return this._minimum; +}; + +Range.prototype.setMaximum = function (maximum) { + if (this._maximum != maximum) { + var oldIsChanging = this._isChanging; + this._isChanging = true; + + this._maximum = maximum; + + if (maximum < this._value) + this.setValue(maximum - this._extent); + if (maximum < this._minimum) { + this._extent = 0; + this.setMinimum(maximum); + this.setValue(this._maximum); + } + if (maximum < this._minimum + this._extent) + this._extent = this._maximum - this._minimum; + if (maximum < this._value + this._extent) + this._extent = this._maximum - this._value; + + this._isChanging = oldIsChanging; + if (!this._isChanging && typeof this.onchange == "function") + this.onchange(); + } +}; + +Range.prototype.getMaximum = function () { + return this._maximum; +}; diff --git a/interactive_php/slider/js/slider.js b/php/interactive_php/slider/js/slider.js similarity index 96% rename from interactive_php/slider/js/slider.js rename to php/interactive_php/slider/js/slider.js index 865a625..6b84292 100644 --- a/interactive_php/slider/js/slider.js +++ b/php/interactive_php/slider/js/slider.js @@ -1,489 +1,489 @@ -/*----------------------------------------------------------------------------\ -| Slider 1.02 | -|-----------------------------------------------------------------------------| -| Created by Erik Arvidsson | -| (http://webfx.eae.net/contact.html#erik) | -| For WebFX (http://webfx.eae.net/) | -|-----------------------------------------------------------------------------| -| A slider control that degrades to an input control for non supported | -| browsers. | -|-----------------------------------------------------------------------------| -| Copyright (c) 2002, 2003, 2006 Erik Arvidsson | -|-----------------------------------------------------------------------------| -| Licensed under the Apache License, Version 2.0 (the "License"); you may not | -| use this file except in compliance with the License. You may obtain a copy | -| of the License at http://www.apache.org/licenses/LICENSE-2.0 | -| - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | -| Unless required by applicable law or agreed to in writing, software | -| distributed under the License is distributed on an "AS IS" BASIS, WITHOUT | -| WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the | -| License for the specific language governing permissions and limitations | -| under the License. | -|-----------------------------------------------------------------------------| -| Dependencies: timer.js - an OO abstraction of timers | -| range.js - provides the data model for the slider | -| winclassic.css or any other css file describing the look | -|-----------------------------------------------------------------------------| -| 2002-10-14 | Original version released | -| 2003-03-27 | Added a test in the constructor for missing oElement arg | -| 2003-11-27 | Only use mousewheel when focused | -| 2006-05-28 | Changed license to Apache Software License 2.0. | -|-----------------------------------------------------------------------------| -| Created 2002-10-14 | All changes are in the log above. | Updated 2006-05-28 | -\----------------------------------------------------------------------------*/ - -Slider.isSupported = typeof document.createElement != "undefined" && - typeof document.documentElement != "undefined" && - typeof document.documentElement.offsetWidth == "number"; - - -function Slider(oElement, oInput, sOrientation) { - if (!oElement) return; - this._orientation = sOrientation || "horizontal"; - this._range = new Range(); - this._range.setExtent(0); - this._blockIncrement = 10; - this._unitIncrement = 1; - this._timer = new Timer(100); - - - if (Slider.isSupported && oElement) { - - this.document = oElement.ownerDocument || oElement.document; - - this.element = oElement; - this.element.slider = this; - this.element.unselectable = "on"; - - // add class name tag to class name - this.element.className = this._orientation + " " + this.classNameTag + " " + this.element.className; - - // create line - this.line = this.document.createElement("DIV"); - this.line.className = "line"; - this.line.unselectable = "on"; - this.line.appendChild(this.document.createElement("DIV")); - this.element.appendChild(this.line); - - // create handle - this.handle = this.document.createElement("DIV"); - this.handle.className = "handle"; - this.handle.unselectable = "on"; - this.handle.appendChild(this.document.createElement("DIV")); - this.handle.firstChild.appendChild( - this.document.createTextNode(String.fromCharCode(160))); - this.element.appendChild(this.handle); - } - - this.input = oInput; - - // events - var oThis = this; - this._range.onchange = function () { - oThis.recalculate(); - if (typeof oThis.onchange == "function") - oThis.onchange(); - }; - - if (Slider.isSupported && oElement) { - this.element.onfocus = Slider.eventHandlers.onfocus; - this.element.onblur = Slider.eventHandlers.onblur; - this.element.onmousedown = Slider.eventHandlers.onmousedown; - this.element.onmouseover = Slider.eventHandlers.onmouseover; - this.element.onmouseout = Slider.eventHandlers.onmouseout; - this.element.onkeydown = Slider.eventHandlers.onkeydown; - this.element.onkeypress = Slider.eventHandlers.onkeypress; - this.element.onmousewheel = Slider.eventHandlers.onmousewheel; - this.handle.onselectstart = - this.element.onselectstart = function () { return false; }; - - this._timer.ontimer = function () { - oThis.ontimer(); - }; - - // extra recalculate for ie - window.setTimeout(function() { - oThis.recalculate(); - }, 1); - } - else { - this.input.onchange = function (e) { - oThis.setValue(oThis.input.value); - }; - } -} - -Slider.eventHandlers = { - - // helpers to make events a bit easier - getEvent: function (e, el) { - if (!e) { - if (el) - e = el.document.parentWindow.event; - else - e = window.event; - } - if (!e.srcElement) { - var el = e.target; - while (el != null && el.nodeType != 1) - el = el.parentNode; - e.srcElement = el; - } - if (typeof e.offsetX == "undefined") { - e.offsetX = e.layerX; - e.offsetY = e.layerY; - } - - return e; - }, - - getDocument: function (e) { - if (e.target) - return e.target.ownerDocument; - return e.srcElement.document; - }, - - getSlider: function (e) { - var el = e.target || e.srcElement; - while (el != null && el.slider == null) { - el = el.parentNode; - } - if (el) - return el.slider; - return null; - }, - - getLine: function (e) { - var el = e.target || e.srcElement; - while (el != null && el.className != "line") { - el = el.parentNode; - } - return el; - }, - - getHandle: function (e) { - var el = e.target || e.srcElement; - var re = /handle/; - while (el != null && !re.test(el.className)) { - el = el.parentNode; - } - return el; - }, - // end helpers - - onfocus: function (e) { - var s = this.slider; - s._focused = true; - s.handle.className = "handle hover"; - }, - - onblur: function (e) { - var s = this.slider - s._focused = false; - s.handle.className = "handle"; - }, - - onmouseover: function (e) { - e = Slider.eventHandlers.getEvent(e, this); - var s = this.slider; - if (e.srcElement == s.handle) - s.handle.className = "handle hover"; - }, - - onmouseout: function (e) { - e = Slider.eventHandlers.getEvent(e, this); - var s = this.slider; - if (e.srcElement == s.handle && !s._focused) - s.handle.className = "handle"; - }, - - onmousedown: function (e) { - e = Slider.eventHandlers.getEvent(e, this); - var s = this.slider; - if (s.element.focus) - s.element.focus(); - - Slider._currentInstance = s; - var doc = s.document; - - if (doc.addEventListener) { - doc.addEventListener("mousemove", Slider.eventHandlers.onmousemove, true); - doc.addEventListener("mouseup", Slider.eventHandlers.onmouseup, true); - } - else if (doc.attachEvent) { - doc.attachEvent("onmousemove", Slider.eventHandlers.onmousemove); - doc.attachEvent("onmouseup", Slider.eventHandlers.onmouseup); - doc.attachEvent("onlosecapture", Slider.eventHandlers.onmouseup); - s.element.setCapture(); - } - - if (Slider.eventHandlers.getHandle(e)) { // start drag - Slider._sliderDragData = { - screenX: e.screenX, - screenY: e.screenY, - dx: e.screenX - s.handle.offsetLeft, - dy: e.screenY - s.handle.offsetTop, - startValue: s.getValue(), - slider: s - }; - } - else { - var lineEl = Slider.eventHandlers.getLine(e); - s._mouseX = e.offsetX + (lineEl ? s.line.offsetLeft : 0); - s._mouseY = e.offsetY + (lineEl ? s.line.offsetTop : 0); - s._increasing = null; - s.ontimer(); - } - }, - - onmousemove: function (e) { - e = Slider.eventHandlers.getEvent(e, this); - - if (Slider._sliderDragData) { // drag - var s = Slider._sliderDragData.slider; - - var boundSize = s.getMaximum() - s.getMinimum(); - var size, pos, reset; - - if (s._orientation == "horizontal") { - size = s.element.offsetWidth - s.handle.offsetWidth; - pos = e.screenX - Slider._sliderDragData.dx; - reset = Math.abs(e.screenY - Slider._sliderDragData.screenY) > 100; - } - else { - size = s.element.offsetHeight - s.handle.offsetHeight; - pos = s.element.offsetHeight - s.handle.offsetHeight - - (e.screenY - Slider._sliderDragData.dy); - reset = Math.abs(e.screenX - Slider._sliderDragData.screenX) > 100; - } - s.setValue(reset ? Slider._sliderDragData.startValue : - s.getMinimum() + boundSize * pos / size); - return false; - } - else { - var s = Slider._currentInstance; - if (s != null) { - var lineEl = Slider.eventHandlers.getLine(e); - s._mouseX = e.offsetX + (lineEl ? s.line.offsetLeft : 0); - s._mouseY = e.offsetY + (lineEl ? s.line.offsetTop : 0); - } - } - - }, - - onmouseup: function (e) { - e = Slider.eventHandlers.getEvent(e, this); - var s = Slider._currentInstance; - var doc = s.document; - if (doc.removeEventListener) { - doc.removeEventListener("mousemove", Slider.eventHandlers.onmousemove, true); - doc.removeEventListener("mouseup", Slider.eventHandlers.onmouseup, true); - } - else if (doc.detachEvent) { - doc.detachEvent("onmousemove", Slider.eventHandlers.onmousemove); - doc.detachEvent("onmouseup", Slider.eventHandlers.onmouseup); - doc.detachEvent("onlosecapture", Slider.eventHandlers.onmouseup); - s.element.releaseCapture(); - } - - if (Slider._sliderDragData) { // end drag - Slider._sliderDragData = null; - } - else { - s._timer.stop(); - s._increasing = null; - } - Slider._currentInstance = null; - }, - - onkeydown: function (e) { - e = Slider.eventHandlers.getEvent(e, this); - //var s = Slider.eventHandlers.getSlider(e); - var s = this.slider; - var kc = e.keyCode; - switch (kc) { - case 33: // page up - s.setValue(s.getValue() + s.getBlockIncrement()); - break; - case 34: // page down - s.setValue(s.getValue() - s.getBlockIncrement()); - break; - case 35: // end - s.setValue(s.getOrientation() == "horizontal" ? - s.getMaximum() : - s.getMinimum()); - break; - case 36: // home - s.setValue(s.getOrientation() == "horizontal" ? - s.getMinimum() : - s.getMaximum()); - break; - case 38: // up - case 39: // right - s.setValue(s.getValue() + s.getUnitIncrement()); - break; - - case 37: // left - case 40: // down - s.setValue(s.getValue() - s.getUnitIncrement()); - break; - } - - if (kc >= 33 && kc <= 40) { - return false; - } - }, - - onkeypress: function (e) { - e = Slider.eventHandlers.getEvent(e, this); - var kc = e.keyCode; - if (kc >= 33 && kc <= 40) { - return false; - } - }, - - onmousewheel: function (e) { - e = Slider.eventHandlers.getEvent(e, this); - var s = this.slider; - if (s._focused) { - s.setValue(s.getValue() + e.wheelDelta / 120 * s.getUnitIncrement()); - // windows inverts this on horizontal sliders. That does not - // make sense to me - return false; - } - } -}; - - - -Slider.prototype.classNameTag = "dynamic-slider-control", - -Slider.prototype.setValue = function (v) { - this._range.setValue(v); - this.input.value = this.getValue(); -}; - -Slider.prototype.getValue = function () { - return this._range.getValue(); -}; - -Slider.prototype.setMinimum = function (v) { - this._range.setMinimum(v); - this.input.value = this.getValue(); -}; - -Slider.prototype.getMinimum = function () { - return this._range.getMinimum(); -}; - -Slider.prototype.setMaximum = function (v) { - this._range.setMaximum(v); - this.input.value = this.getValue(); -}; - -Slider.prototype.getMaximum = function () { - return this._range.getMaximum(); -}; - -Slider.prototype.setUnitIncrement = function (v) { - this._unitIncrement = v; -}; - -Slider.prototype.getUnitIncrement = function () { - return this._unitIncrement; -}; - -Slider.prototype.setBlockIncrement = function (v) { - this._blockIncrement = v; -}; - -Slider.prototype.getBlockIncrement = function () { - return this._blockIncrement; -}; - -Slider.prototype.getOrientation = function () { - return this._orientation; -}; - -Slider.prototype.setOrientation = function (sOrientation) { - if (sOrientation != this._orientation) { - if (Slider.isSupported && this.element) { - // add class name tag to class name - this.element.className = this.element.className.replace(this._orientation, - sOrientation); - } - this._orientation = sOrientation; - this.recalculate(); - - } -}; - -Slider.prototype.recalculate = function() { - if (!Slider.isSupported || !this.element) return; - - var w = this.element.offsetWidth; - var h = this.element.offsetHeight; - var hw = this.handle.offsetWidth; - var hh = this.handle.offsetHeight; - var lw = this.line.offsetWidth; - var lh = this.line.offsetHeight; - - // this assumes a border-box layout - - if (this._orientation == "horizontal") { - this.handle.style.left = (w - hw) * (this.getValue() - this.getMinimum()) / - (this.getMaximum() - this.getMinimum()) + "px"; - this.handle.style.top = (h - hh) / 2 + "px"; - - this.line.style.top = (h - lh) / 2 + "px"; - this.line.style.left = hw / 2 + "px"; - //this.line.style.right = hw / 2 + "px"; - this.line.style.width = Math.max(0, w - hw - 2)+ "px"; - this.line.firstChild.style.width = Math.max(0, w - hw - 4)+ "px"; - } - else { - this.handle.style.left = (w - hw) / 2 + "px"; - this.handle.style.top = h - hh - (h - hh) * (this.getValue() - this.getMinimum()) / - (this.getMaximum() - this.getMinimum()) + "px"; - - this.line.style.left = (w - lw) / 2 + "px"; - this.line.style.top = hh / 2 + "px"; - this.line.style.height = Math.max(0, h - hh - 2) + "px"; //hard coded border width - //this.line.style.bottom = hh / 2 + "px"; - this.line.firstChild.style.height = Math.max(0, h - hh - 4) + "px"; //hard coded border width - } -}; - -Slider.prototype.ontimer = function () { - var hw = this.handle.offsetWidth; - var hh = this.handle.offsetHeight; - var hl = this.handle.offsetLeft; - var ht = this.handle.offsetTop; - - if (this._orientation == "horizontal") { - if (this._mouseX > hl + hw && - (this._increasing == null || this._increasing)) { - this.setValue(this.getValue() + this.getBlockIncrement()); - this._increasing = true; - } - else if (this._mouseX < hl && - (this._increasing == null || !this._increasing)) { - this.setValue(this.getValue() - this.getBlockIncrement()); - this._increasing = false; - } - } - else { - if (this._mouseY > ht + hh && - (this._increasing == null || !this._increasing)) { - this.setValue(this.getValue() - this.getBlockIncrement()); - this._increasing = false; - } - else if (this._mouseY < ht && - (this._increasing == null || this._increasing)) { - this.setValue(this.getValue() + this.getBlockIncrement()); - this._increasing = true; - } - } - - this._timer.start(); +/*----------------------------------------------------------------------------\ +| Slider 1.02 | +|-----------------------------------------------------------------------------| +| Created by Erik Arvidsson | +| (http://webfx.eae.net/contact.html#erik) | +| For WebFX (http://webfx.eae.net/) | +|-----------------------------------------------------------------------------| +| A slider control that degrades to an input control for non supported | +| browsers. | +|-----------------------------------------------------------------------------| +| Copyright (c) 2002, 2003, 2006 Erik Arvidsson | +|-----------------------------------------------------------------------------| +| Licensed under the Apache License, Version 2.0 (the "License"); you may not | +| use this file except in compliance with the License. You may obtain a copy | +| of the License at http://www.apache.org/licenses/LICENSE-2.0 | +| - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | +| Unless required by applicable law or agreed to in writing, software | +| distributed under the License is distributed on an "AS IS" BASIS, WITHOUT | +| WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the | +| License for the specific language governing permissions and limitations | +| under the License. | +|-----------------------------------------------------------------------------| +| Dependencies: timer.js - an OO abstraction of timers | +| range.js - provides the data model for the slider | +| winclassic.css or any other css file describing the look | +|-----------------------------------------------------------------------------| +| 2002-10-14 | Original version released | +| 2003-03-27 | Added a test in the constructor for missing oElement arg | +| 2003-11-27 | Only use mousewheel when focused | +| 2006-05-28 | Changed license to Apache Software License 2.0. | +|-----------------------------------------------------------------------------| +| Created 2002-10-14 | All changes are in the log above. | Updated 2006-05-28 | +\----------------------------------------------------------------------------*/ + +Slider.isSupported = typeof document.createElement != "undefined" && + typeof document.documentElement != "undefined" && + typeof document.documentElement.offsetWidth == "number"; + + +function Slider(oElement, oInput, sOrientation) { + if (!oElement) return; + this._orientation = sOrientation || "horizontal"; + this._range = new Range(); + this._range.setExtent(0); + this._blockIncrement = 10; + this._unitIncrement = 1; + this._timer = new Timer(100); + + + if (Slider.isSupported && oElement) { + + this.document = oElement.ownerDocument || oElement.document; + + this.element = oElement; + this.element.slider = this; + this.element.unselectable = "on"; + + // add class name tag to class name + this.element.className = this._orientation + " " + this.classNameTag + " " + this.element.className; + + // create line + this.line = this.document.createElement("DIV"); + this.line.className = "line"; + this.line.unselectable = "on"; + this.line.appendChild(this.document.createElement("DIV")); + this.element.appendChild(this.line); + + // create handle + this.handle = this.document.createElement("DIV"); + this.handle.className = "handle"; + this.handle.unselectable = "on"; + this.handle.appendChild(this.document.createElement("DIV")); + this.handle.firstChild.appendChild( + this.document.createTextNode(String.fromCharCode(160))); + this.element.appendChild(this.handle); + } + + this.input = oInput; + + // events + var oThis = this; + this._range.onchange = function () { + oThis.recalculate(); + if (typeof oThis.onchange == "function") + oThis.onchange(); + }; + + if (Slider.isSupported && oElement) { + this.element.onfocus = Slider.eventHandlers.onfocus; + this.element.onblur = Slider.eventHandlers.onblur; + this.element.onmousedown = Slider.eventHandlers.onmousedown; + this.element.onmouseover = Slider.eventHandlers.onmouseover; + this.element.onmouseout = Slider.eventHandlers.onmouseout; + this.element.onkeydown = Slider.eventHandlers.onkeydown; + this.element.onkeypress = Slider.eventHandlers.onkeypress; + this.element.onmousewheel = Slider.eventHandlers.onmousewheel; + this.handle.onselectstart = + this.element.onselectstart = function () { return false; }; + + this._timer.ontimer = function () { + oThis.ontimer(); + }; + + // extra recalculate for ie + window.setTimeout(function() { + oThis.recalculate(); + }, 1); + } + else { + this.input.onchange = function (e) { + oThis.setValue(oThis.input.value); + }; + } +} + +Slider.eventHandlers = { + + // helpers to make events a bit easier + getEvent: function (e, el) { + if (!e) { + if (el) + e = el.document.parentWindow.event; + else + e = window.event; + } + if (!e.srcElement) { + var el = e.target; + while (el != null && el.nodeType != 1) + el = el.parentNode; + e.srcElement = el; + } + if (typeof e.offsetX == "undefined") { + e.offsetX = e.layerX; + e.offsetY = e.layerY; + } + + return e; + }, + + getDocument: function (e) { + if (e.target) + return e.target.ownerDocument; + return e.srcElement.document; + }, + + getSlider: function (e) { + var el = e.target || e.srcElement; + while (el != null && el.slider == null) { + el = el.parentNode; + } + if (el) + return el.slider; + return null; + }, + + getLine: function (e) { + var el = e.target || e.srcElement; + while (el != null && el.className != "line") { + el = el.parentNode; + } + return el; + }, + + getHandle: function (e) { + var el = e.target || e.srcElement; + var re = /handle/; + while (el != null && !re.test(el.className)) { + el = el.parentNode; + } + return el; + }, + // end helpers + + onfocus: function (e) { + var s = this.slider; + s._focused = true; + s.handle.className = "handle hover"; + }, + + onblur: function (e) { + var s = this.slider + s._focused = false; + s.handle.className = "handle"; + }, + + onmouseover: function (e) { + e = Slider.eventHandlers.getEvent(e, this); + var s = this.slider; + if (e.srcElement == s.handle) + s.handle.className = "handle hover"; + }, + + onmouseout: function (e) { + e = Slider.eventHandlers.getEvent(e, this); + var s = this.slider; + if (e.srcElement == s.handle && !s._focused) + s.handle.className = "handle"; + }, + + onmousedown: function (e) { + e = Slider.eventHandlers.getEvent(e, this); + var s = this.slider; + if (s.element.focus) + s.element.focus(); + + Slider._currentInstance = s; + var doc = s.document; + + if (doc.addEventListener) { + doc.addEventListener("mousemove", Slider.eventHandlers.onmousemove, true); + doc.addEventListener("mouseup", Slider.eventHandlers.onmouseup, true); + } + else if (doc.attachEvent) { + doc.attachEvent("onmousemove", Slider.eventHandlers.onmousemove); + doc.attachEvent("onmouseup", Slider.eventHandlers.onmouseup); + doc.attachEvent("onlosecapture", Slider.eventHandlers.onmouseup); + s.element.setCapture(); + } + + if (Slider.eventHandlers.getHandle(e)) { // start drag + Slider._sliderDragData = { + screenX: e.screenX, + screenY: e.screenY, + dx: e.screenX - s.handle.offsetLeft, + dy: e.screenY - s.handle.offsetTop, + startValue: s.getValue(), + slider: s + }; + } + else { + var lineEl = Slider.eventHandlers.getLine(e); + s._mouseX = e.offsetX + (lineEl ? s.line.offsetLeft : 0); + s._mouseY = e.offsetY + (lineEl ? s.line.offsetTop : 0); + s._increasing = null; + s.ontimer(); + } + }, + + onmousemove: function (e) { + e = Slider.eventHandlers.getEvent(e, this); + + if (Slider._sliderDragData) { // drag + var s = Slider._sliderDragData.slider; + + var boundSize = s.getMaximum() - s.getMinimum(); + var size, pos, reset; + + if (s._orientation == "horizontal") { + size = s.element.offsetWidth - s.handle.offsetWidth; + pos = e.screenX - Slider._sliderDragData.dx; + reset = Math.abs(e.screenY - Slider._sliderDragData.screenY) > 100; + } + else { + size = s.element.offsetHeight - s.handle.offsetHeight; + pos = s.element.offsetHeight - s.handle.offsetHeight - + (e.screenY - Slider._sliderDragData.dy); + reset = Math.abs(e.screenX - Slider._sliderDragData.screenX) > 100; + } + s.setValue(reset ? Slider._sliderDragData.startValue : + s.getMinimum() + boundSize * pos / size); + return false; + } + else { + var s = Slider._currentInstance; + if (s != null) { + var lineEl = Slider.eventHandlers.getLine(e); + s._mouseX = e.offsetX + (lineEl ? s.line.offsetLeft : 0); + s._mouseY = e.offsetY + (lineEl ? s.line.offsetTop : 0); + } + } + + }, + + onmouseup: function (e) { + e = Slider.eventHandlers.getEvent(e, this); + var s = Slider._currentInstance; + var doc = s.document; + if (doc.removeEventListener) { + doc.removeEventListener("mousemove", Slider.eventHandlers.onmousemove, true); + doc.removeEventListener("mouseup", Slider.eventHandlers.onmouseup, true); + } + else if (doc.detachEvent) { + doc.detachEvent("onmousemove", Slider.eventHandlers.onmousemove); + doc.detachEvent("onmouseup", Slider.eventHandlers.onmouseup); + doc.detachEvent("onlosecapture", Slider.eventHandlers.onmouseup); + s.element.releaseCapture(); + } + + if (Slider._sliderDragData) { // end drag + Slider._sliderDragData = null; + } + else { + s._timer.stop(); + s._increasing = null; + } + Slider._currentInstance = null; + }, + + onkeydown: function (e) { + e = Slider.eventHandlers.getEvent(e, this); + //var s = Slider.eventHandlers.getSlider(e); + var s = this.slider; + var kc = e.keyCode; + switch (kc) { + case 33: // page up + s.setValue(s.getValue() + s.getBlockIncrement()); + break; + case 34: // page down + s.setValue(s.getValue() - s.getBlockIncrement()); + break; + case 35: // end + s.setValue(s.getOrientation() == "horizontal" ? + s.getMaximum() : + s.getMinimum()); + break; + case 36: // home + s.setValue(s.getOrientation() == "horizontal" ? + s.getMinimum() : + s.getMaximum()); + break; + case 38: // up + case 39: // right + s.setValue(s.getValue() + s.getUnitIncrement()); + break; + + case 37: // left + case 40: // down + s.setValue(s.getValue() - s.getUnitIncrement()); + break; + } + + if (kc >= 33 && kc <= 40) { + return false; + } + }, + + onkeypress: function (e) { + e = Slider.eventHandlers.getEvent(e, this); + var kc = e.keyCode; + if (kc >= 33 && kc <= 40) { + return false; + } + }, + + onmousewheel: function (e) { + e = Slider.eventHandlers.getEvent(e, this); + var s = this.slider; + if (s._focused) { + s.setValue(s.getValue() + e.wheelDelta / 120 * s.getUnitIncrement()); + // windows inverts this on horizontal sliders. That does not + // make sense to me + return false; + } + } +}; + + + +Slider.prototype.classNameTag = "dynamic-slider-control", + +Slider.prototype.setValue = function (v) { + this._range.setValue(v); + this.input.value = this.getValue(); +}; + +Slider.prototype.getValue = function () { + return this._range.getValue(); +}; + +Slider.prototype.setMinimum = function (v) { + this._range.setMinimum(v); + this.input.value = this.getValue(); +}; + +Slider.prototype.getMinimum = function () { + return this._range.getMinimum(); +}; + +Slider.prototype.setMaximum = function (v) { + this._range.setMaximum(v); + this.input.value = this.getValue(); +}; + +Slider.prototype.getMaximum = function () { + return this._range.getMaximum(); +}; + +Slider.prototype.setUnitIncrement = function (v) { + this._unitIncrement = v; +}; + +Slider.prototype.getUnitIncrement = function () { + return this._unitIncrement; +}; + +Slider.prototype.setBlockIncrement = function (v) { + this._blockIncrement = v; +}; + +Slider.prototype.getBlockIncrement = function () { + return this._blockIncrement; +}; + +Slider.prototype.getOrientation = function () { + return this._orientation; +}; + +Slider.prototype.setOrientation = function (sOrientation) { + if (sOrientation != this._orientation) { + if (Slider.isSupported && this.element) { + // add class name tag to class name + this.element.className = this.element.className.replace(this._orientation, + sOrientation); + } + this._orientation = sOrientation; + this.recalculate(); + + } +}; + +Slider.prototype.recalculate = function() { + if (!Slider.isSupported || !this.element) return; + + var w = this.element.offsetWidth; + var h = this.element.offsetHeight; + var hw = this.handle.offsetWidth; + var hh = this.handle.offsetHeight; + var lw = this.line.offsetWidth; + var lh = this.line.offsetHeight; + + // this assumes a border-box layout + + if (this._orientation == "horizontal") { + this.handle.style.left = (w - hw) * (this.getValue() - this.getMinimum()) / + (this.getMaximum() - this.getMinimum()) + "px"; + this.handle.style.top = (h - hh) / 2 + "px"; + + this.line.style.top = (h - lh) / 2 + "px"; + this.line.style.left = hw / 2 + "px"; + //this.line.style.right = hw / 2 + "px"; + this.line.style.width = Math.max(0, w - hw - 2)+ "px"; + this.line.firstChild.style.width = Math.max(0, w - hw - 4)+ "px"; + } + else { + this.handle.style.left = (w - hw) / 2 + "px"; + this.handle.style.top = h - hh - (h - hh) * (this.getValue() - this.getMinimum()) / + (this.getMaximum() - this.getMinimum()) + "px"; + + this.line.style.left = (w - lw) / 2 + "px"; + this.line.style.top = hh / 2 + "px"; + this.line.style.height = Math.max(0, h - hh - 2) + "px"; //hard coded border width + //this.line.style.bottom = hh / 2 + "px"; + this.line.firstChild.style.height = Math.max(0, h - hh - 4) + "px"; //hard coded border width + } +}; + +Slider.prototype.ontimer = function () { + var hw = this.handle.offsetWidth; + var hh = this.handle.offsetHeight; + var hl = this.handle.offsetLeft; + var ht = this.handle.offsetTop; + + if (this._orientation == "horizontal") { + if (this._mouseX > hl + hw && + (this._increasing == null || this._increasing)) { + this.setValue(this.getValue() + this.getBlockIncrement()); + this._increasing = true; + } + else if (this._mouseX < hl && + (this._increasing == null || !this._increasing)) { + this.setValue(this.getValue() - this.getBlockIncrement()); + this._increasing = false; + } + } + else { + if (this._mouseY > ht + hh && + (this._increasing == null || !this._increasing)) { + this.setValue(this.getValue() - this.getBlockIncrement()); + this._increasing = false; + } + else if (this._mouseY < ht && + (this._increasing == null || this._increasing)) { + this.setValue(this.getValue() + this.getBlockIncrement()); + this._increasing = true; + } + } + + this._timer.start(); }; \ No newline at end of file diff --git a/interactive_php/slider/js/timer.js b/php/interactive_php/slider/js/timer.js similarity index 97% rename from interactive_php/slider/js/timer.js rename to php/interactive_php/slider/js/timer.js index e96fe19..0c1e897 100644 --- a/interactive_php/slider/js/timer.js +++ b/php/interactive_php/slider/js/timer.js @@ -1,62 +1,62 @@ -/*----------------------------------------------------------------------------\ -| Timer Class | -|-----------------------------------------------------------------------------| -| Created by Erik Arvidsson | -| (http://webfx.eae.net/contact.html#erik) | -| For WebFX (http://webfx.eae.net/) | -|-----------------------------------------------------------------------------| -| Object Oriented Encapsulation of setTimeout fires ontimer when the timer | -| is triggered. Does not work in IE 5.00 | -|-----------------------------------------------------------------------------| -| Copyright (c) 2002, 2006 Erik Arvidsson | -|-----------------------------------------------------------------------------| -| Licensed under the Apache License, Version 2.0 (the "License"); you may not | -| use this file except in compliance with the License. You may obtain a copy | -| of the License at http://www.apache.org/licenses/LICENSE-2.0 | -| - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | -| Unless required by applicable law or agreed to in writing, software | -| distributed under the License is distributed on an "AS IS" BASIS, WITHOUT | -| WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the | -| License for the specific language governing permissions and limitations | -| under the License. | -|-----------------------------------------------------------------------------| -| 2002-10-14 | Original version released | -| 2006-05-28 | Changed license to Apache Software License 2.0. | -|-----------------------------------------------------------------------------| -| Created 2002-10-14 | All changes are in the log above. | Updated 2006-05-28 | -\----------------------------------------------------------------------------*/ - -function Timer(nPauseTime) { - this._pauseTime = typeof nPauseTime == "undefined" ? 1000 : nPauseTime; - this._timer = null; - this._isStarted = false; -} - -Timer.prototype.start = function () { - if (this.isStarted()) - this.stop(); - var oThis = this; - this._timer = window.setTimeout(function () { - if (typeof oThis.ontimer == "function") - oThis.ontimer(); - }, this._pauseTime); - this._isStarted = false; -}; - -Timer.prototype.stop = function () { - if (this._timer != null) - window.clearTimeout(this._timer); - this._isStarted = false; -}; - -Timer.prototype.isStarted = function () { - return this._isStarted; -}; - -Timer.prototype.getPauseTime = function () { - return this._pauseTime; -}; - -Timer.prototype.setPauseTime = function (nPauseTime) { - this._pauseTime = nPauseTime; +/*----------------------------------------------------------------------------\ +| Timer Class | +|-----------------------------------------------------------------------------| +| Created by Erik Arvidsson | +| (http://webfx.eae.net/contact.html#erik) | +| For WebFX (http://webfx.eae.net/) | +|-----------------------------------------------------------------------------| +| Object Oriented Encapsulation of setTimeout fires ontimer when the timer | +| is triggered. Does not work in IE 5.00 | +|-----------------------------------------------------------------------------| +| Copyright (c) 2002, 2006 Erik Arvidsson | +|-----------------------------------------------------------------------------| +| Licensed under the Apache License, Version 2.0 (the "License"); you may not | +| use this file except in compliance with the License. You may obtain a copy | +| of the License at http://www.apache.org/licenses/LICENSE-2.0 | +| - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | +| Unless required by applicable law or agreed to in writing, software | +| distributed under the License is distributed on an "AS IS" BASIS, WITHOUT | +| WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the | +| License for the specific language governing permissions and limitations | +| under the License. | +|-----------------------------------------------------------------------------| +| 2002-10-14 | Original version released | +| 2006-05-28 | Changed license to Apache Software License 2.0. | +|-----------------------------------------------------------------------------| +| Created 2002-10-14 | All changes are in the log above. | Updated 2006-05-28 | +\----------------------------------------------------------------------------*/ + +function Timer(nPauseTime) { + this._pauseTime = typeof nPauseTime == "undefined" ? 1000 : nPauseTime; + this._timer = null; + this._isStarted = false; +} + +Timer.prototype.start = function () { + if (this.isStarted()) + this.stop(); + var oThis = this; + this._timer = window.setTimeout(function () { + if (typeof oThis.ontimer == "function") + oThis.ontimer(); + }, this._pauseTime); + this._isStarted = false; +}; + +Timer.prototype.stop = function () { + if (this._timer != null) + window.clearTimeout(this._timer); + this._isStarted = false; +}; + +Timer.prototype.isStarted = function () { + return this._isStarted; +}; + +Timer.prototype.getPauseTime = function () { + return this._pauseTime; +}; + +Timer.prototype.setPauseTime = function (nPauseTime) { + this._pauseTime = nPauseTime; }; \ No newline at end of file diff --git a/interactive_php/slider/license.txt b/php/interactive_php/slider/license.txt similarity index 98% rename from interactive_php/slider/license.txt rename to php/interactive_php/slider/license.txt index 75b5248..d645695 100644 --- a/interactive_php/slider/license.txt +++ b/php/interactive_php/slider/license.txt @@ -1,202 +1,202 @@ - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/link_preview/link-preview.php b/php/link_preview/link-preview.php similarity index 97% rename from link_preview/link-preview.php rename to php/link_preview/link-preview.php index 9b6774f..586c3c5 100644 --- a/link_preview/link-preview.php +++ b/php/link_preview/link-preview.php @@ -1,99 +1,99 @@ -'; - - $links = get_post_meta($post->ID, 'link'); - - echo ''; - - echo ''; - - foreach ($links as $link) { - echo ''; - } - - echo '
'; -} - -/* When the post is saved, saves our custom data */ -function linkpreview_save_postdata( $post_id ) { - // verify this came from the our screen and with proper authorization, - // because save_post can be triggered at other times - if ( !wp_verify_nonce( $_POST['linkpreview_noncename'], plugin_basename(__FILE__) )) { - return $post_id; - } - - // verify if this is an auto save routine. If it is our form has not been submitted, so we dont want - // to do anything - if ( defined('DOING_AUTOSAVE') && DOING_AUTOSAVE ) - return $post_id; - - - // Check permissions - if ( 'page' == $_POST['post_type'] ) { - if ( !current_user_can( 'edit_page', $post_id ) ) - return $post_id; - } else { - if ( !current_user_can( 'edit_post', $post_id ) ) - return $post_id; - } - - // OK, we're authenticated: we need to find and save the data - delete_post_meta($post_id, 'link'); - - $links = $_POST['linkpreview_links']; - - foreach ($links as $link) { - if (!empty($link)) - add_post_meta($post_id, 'link', $link); - } - - - return $mydata; -} - - -?> +'; + + $links = get_post_meta($post->ID, 'link'); + + echo ''; + + echo ''; + + foreach ($links as $link) { + echo ''; + } + + echo '
'; +} + +/* When the post is saved, saves our custom data */ +function linkpreview_save_postdata( $post_id ) { + // verify this came from the our screen and with proper authorization, + // because save_post can be triggered at other times + if ( !wp_verify_nonce( $_POST['linkpreview_noncename'], plugin_basename(__FILE__) )) { + return $post_id; + } + + // verify if this is an auto save routine. If it is our form has not been submitted, so we dont want + // to do anything + if ( defined('DOING_AUTOSAVE') && DOING_AUTOSAVE ) + return $post_id; + + + // Check permissions + if ( 'page' == $_POST['post_type'] ) { + if ( !current_user_can( 'edit_page', $post_id ) ) + return $post_id; + } else { + if ( !current_user_can( 'edit_post', $post_id ) ) + return $post_id; + } + + // OK, we're authenticated: we need to find and save the data + delete_post_meta($post_id, 'link'); + + $links = $_POST['linkpreview_links']; + + foreach ($links as $link) { + if (!empty($link)) + add_post_meta($post_id, 'link', $link); + } + + + return $mydata; +} + + +?> diff --git a/link_preview/linkinfo.php b/php/link_preview/linkinfo.php similarity index 100% rename from link_preview/linkinfo.php rename to php/link_preview/linkinfo.php diff --git a/link_preview/test.php b/php/link_preview/test.php similarity index 95% rename from link_preview/test.php rename to php/link_preview/test.php index a0a8300..4aef518 100644 --- a/link_preview/test.php +++ b/php/link_preview/test.php @@ -1,137 +1,137 @@ - - - - - LinkPreview Test - - -

Link Preview Test

- - - - + + + + + LinkPreview Test + + +

Link Preview Test

+ + + + diff --git a/sms_contact/.gitignore b/php/sms_contact/.gitignore similarity index 100% rename from sms_contact/.gitignore rename to php/sms_contact/.gitignore diff --git a/sms_contact/blacklist.php b/php/sms_contact/blacklist.php similarity index 100% rename from sms_contact/blacklist.php rename to php/sms_contact/blacklist.php diff --git a/sms_contact/index.php b/php/sms_contact/index.php similarity index 97% rename from sms_contact/index.php rename to php/sms_contact/index.php index 54c8c49..72fc0da 100644 --- a/sms_contact/index.php +++ b/php/sms_contact/index.php @@ -1,95 +1,95 @@ - - - - - Schicke mir eine Kurznachricht - - - - - - -
-Fehler: ' . $exception->getMessage() . '

'; - if (get_class($exception) != 'Exception') { - echo '(Code: ' . $exception->getCode() . ')'; - } - - show_form(); -}); - -if ($_POST) { - $sipgate = new sipgateAPI($config['username'], $config['password']); - $balance = $sipgate->getBalance(); - $message = preg_replace('/\r?\n/m', '\n', trim($_POST['message'])); - $blacklist = read_blacklist($config['blocked']); - - if (!isset($_POST['message'])) { - throw new Exception('Keine Nachricht!'); - } - if ($message == $config['default']) { - throw new Exception('Der Standart ist doch langweilig!'); - } - if ($_POST['antispam'] != md5($message . ceil(time() / $config['delta']))) { // check hash - throw new Exception('Willst du mich bescheissen? Bitte aktiviere Javascript!'); - } - if (strlen($message) > 160) { - throw new Exception('Deine Nachricht ist zu lang!'); - } - if ($balance['CurrentBalance']['TotalIncludingVat'] < $config['reserve']) { - throw new Exception('Sorry, aber ich habe kein Gutenhaben mehr!'); - } - if ($time = is_blacklisted($blacklist, $_SERVER['REMOTE_ADDR'])) { - throw new Exception('Sorry, du musst ' . format_duration($config['blocked'] - (time() - $time)) . ' warten, bevor du die nächste SMS versenden kannst!'); - } - - $sipgate->sendSMS($config['recipient'], $message, NULL, $config['recipient']); - $balance = $sipgate->getBalance(); - echo '

SMS wurde gesendet!

Vielen Dank :)

'; - echo '

Du kannst deine nächste SMS in ' . format_duration($config['blocked']) . ' senden!

'; - echo '

Verbleibendes Guthaben: ' . round($balance['CurrentBalance']['TotalIncludingVat'], 2) . ' ' . $balance['CurrentBalance']['Currency'] . ' (das sind noch -' . floor(($balance['CurrentBalance']['TotalIncludingVat'] - $config['reserve']) / 0.079) . ' SMS)

'; - - if ($_SERVER['REMOTE_ADDR'] != '172.0.0.1') $blacklist[] = array($_SERVER['REMOTE_ADDR'], time()); - - echo '

zuück

'; - write_blacklist($blacklist); -} -else { - show_form(); -} - -function show_form() { - global $config; - $message = (isset($_REQUEST['message'])) ? $_REQUEST['message'] : $config['default']; - - echo '
- - - - -
Zeichen: ' . strlen($message) . ' (übrig: ' . (160 - strlen($message)) . ')
- - -
'; -} - -function format_duration($time) { - if ($time < 60) return $time . ' Sekunden'; - elseif ($time < 3600) return floor($time / 60) . ' Minuten'; - else return floor($time / 3600) . ':' . sprintf('%02d', floor(($time % 3600) / 60)) . ' Stunden'; -} - -?> -
- - + + + + + Schicke mir eine Kurznachricht + + + + + + +
+Fehler: ' . $exception->getMessage() . '

'; + if (get_class($exception) != 'Exception') { + echo '(Code: ' . $exception->getCode() . ')'; + } + + show_form(); +}); + +if ($_POST) { + $sipgate = new sipgateAPI($config['username'], $config['password']); + $balance = $sipgate->getBalance(); + $message = preg_replace('/\r?\n/m', '\n', trim($_POST['message'])); + $blacklist = read_blacklist($config['blocked']); + + if (!isset($_POST['message'])) { + throw new Exception('Keine Nachricht!'); + } + if ($message == $config['default']) { + throw new Exception('Der Standart ist doch langweilig!'); + } + if ($_POST['antispam'] != md5($message . ceil(time() / $config['delta']))) { // check hash + throw new Exception('Willst du mich bescheissen? Bitte aktiviere Javascript!'); + } + if (strlen($message) > 160) { + throw new Exception('Deine Nachricht ist zu lang!'); + } + if ($balance['CurrentBalance']['TotalIncludingVat'] < $config['reserve']) { + throw new Exception('Sorry, aber ich habe kein Gutenhaben mehr!'); + } + if ($time = is_blacklisted($blacklist, $_SERVER['REMOTE_ADDR'])) { + throw new Exception('Sorry, du musst ' . format_duration($config['blocked'] - (time() - $time)) . ' warten, bevor du die nächste SMS versenden kannst!'); + } + + $sipgate->sendSMS($config['recipient'], $message, NULL, $config['recipient']); + $balance = $sipgate->getBalance(); + echo '

SMS wurde gesendet!

Vielen Dank :)

'; + echo '

Du kannst deine nächste SMS in ' . format_duration($config['blocked']) . ' senden!

'; + echo '

Verbleibendes Guthaben: ' . round($balance['CurrentBalance']['TotalIncludingVat'], 2) . ' ' . $balance['CurrentBalance']['Currency'] . ' (das sind noch +' . floor(($balance['CurrentBalance']['TotalIncludingVat'] - $config['reserve']) / 0.079) . ' SMS)

'; + + if ($_SERVER['REMOTE_ADDR'] != '172.0.0.1') $blacklist[] = array($_SERVER['REMOTE_ADDR'], time()); + + echo '

zuück

'; + write_blacklist($blacklist); +} +else { + show_form(); +} + +function show_form() { + global $config; + $message = (isset($_REQUEST['message'])) ? $_REQUEST['message'] : $config['default']; + + echo '
+ + + + +
Zeichen: ' . strlen($message) . ' (übrig: ' . (160 - strlen($message)) . ')
+ + +
'; +} + +function format_duration($time) { + if ($time < 60) return $time . ' Sekunden'; + elseif ($time < 3600) return floor($time / 60) . ' Minuten'; + else return floor($time / 3600) . ':' . sprintf('%02d', floor(($time % 3600) / 60)) . ' Stunden'; +} + +?> +
+ + diff --git a/sms_contact/md5.js b/php/sms_contact/md5.js similarity index 99% rename from sms_contact/md5.js rename to php/sms_contact/md5.js index 3b1ad67..4c8f0a3 100644 --- a/sms_contact/md5.js +++ b/php/sms_contact/md5.js @@ -1,9 +1,9 @@ -/* - * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message - * Digest Algorithm, as defined in RFC 1321. - * Version 2.2 Copyright (C) Paul Johnston 1999 - 2009 - * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet - * Distributed under the BSD License - * See http://pajhome.org.uk/crypt/md5 for more info. - */ -var hexcase=0;function hex_md5(a){return rstr2hex(rstr_md5(str2rstr_utf8(a)))}function hex_hmac_md5(a,b){return rstr2hex(rstr_hmac_md5(str2rstr_utf8(a),str2rstr_utf8(b)))}function md5_vm_test(){return hex_md5("abc").toLowerCase()=="900150983cd24fb0d6963f7d28e17f72"}function rstr_md5(a){return binl2rstr(binl_md5(rstr2binl(a),a.length*8))}function rstr_hmac_md5(c,f){var e=rstr2binl(c);if(e.length>16){e=binl_md5(e,c.length*8)}var a=Array(16),d=Array(16);for(var b=0;b<16;b++){a[b]=e[b]^909522486;d[b]=e[b]^1549556828}var g=binl_md5(a.concat(rstr2binl(f)),512+f.length*8);return binl2rstr(binl_md5(d.concat(g),512+128))}function rstr2hex(c){try{hexcase}catch(g){hexcase=0}var f=hexcase?"0123456789ABCDEF":"0123456789abcdef";var b="";var a;for(var d=0;d>>4)&15)+f.charAt(a&15)}return b}function str2rstr_utf8(c){var b="";var d=-1;var a,e;while(++d>>6)&31),128|(a&63))}else{if(a<=65535){b+=String.fromCharCode(224|((a>>>12)&15),128|((a>>>6)&63),128|(a&63))}else{if(a<=2097151){b+=String.fromCharCode(240|((a>>>18)&7),128|((a>>>12)&63),128|((a>>>6)&63),128|(a&63))}}}}}return b}function rstr2binl(b){var a=Array(b.length>>2);for(var c=0;c>5]|=(b.charCodeAt(c/8)&255)<<(c%32)}return a}function binl2rstr(b){var a="";for(var c=0;c>5]>>>(c%32))&255)}return a}function binl_md5(p,k){p[k>>5]|=128<<((k)%32);p[(((k+64)>>>9)<<4)+14]=k;var o=1732584193;var n=-271733879;var m=-1732584194;var l=271733878;for(var g=0;g>16)+(d>>16)+(c>>16);return(b<<16)|(c&65535)}function bit_rol(a,b){return(a<>>(32-b))}; +/* + * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message + * Digest Algorithm, as defined in RFC 1321. + * Version 2.2 Copyright (C) Paul Johnston 1999 - 2009 + * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet + * Distributed under the BSD License + * See http://pajhome.org.uk/crypt/md5 for more info. + */ +var hexcase=0;function hex_md5(a){return rstr2hex(rstr_md5(str2rstr_utf8(a)))}function hex_hmac_md5(a,b){return rstr2hex(rstr_hmac_md5(str2rstr_utf8(a),str2rstr_utf8(b)))}function md5_vm_test(){return hex_md5("abc").toLowerCase()=="900150983cd24fb0d6963f7d28e17f72"}function rstr_md5(a){return binl2rstr(binl_md5(rstr2binl(a),a.length*8))}function rstr_hmac_md5(c,f){var e=rstr2binl(c);if(e.length>16){e=binl_md5(e,c.length*8)}var a=Array(16),d=Array(16);for(var b=0;b<16;b++){a[b]=e[b]^909522486;d[b]=e[b]^1549556828}var g=binl_md5(a.concat(rstr2binl(f)),512+f.length*8);return binl2rstr(binl_md5(d.concat(g),512+128))}function rstr2hex(c){try{hexcase}catch(g){hexcase=0}var f=hexcase?"0123456789ABCDEF":"0123456789abcdef";var b="";var a;for(var d=0;d>>4)&15)+f.charAt(a&15)}return b}function str2rstr_utf8(c){var b="";var d=-1;var a,e;while(++d>>6)&31),128|(a&63))}else{if(a<=65535){b+=String.fromCharCode(224|((a>>>12)&15),128|((a>>>6)&63),128|(a&63))}else{if(a<=2097151){b+=String.fromCharCode(240|((a>>>18)&7),128|((a>>>12)&63),128|((a>>>6)&63),128|(a&63))}}}}}return b}function rstr2binl(b){var a=Array(b.length>>2);for(var c=0;c>5]|=(b.charCodeAt(c/8)&255)<<(c%32)}return a}function binl2rstr(b){var a="";for(var c=0;c>5]>>>(c%32))&255)}return a}function binl_md5(p,k){p[k>>5]|=128<<((k)%32);p[(((k+64)>>>9)<<4)+14]=k;var o=1732584193;var n=-271733879;var m=-1732584194;var l=271733878;for(var g=0;g>16)+(d>>16)+(c>>16);return(b<<16)|(c&65535)}function bit_rol(a,b){return(a<>>(32-b))}; diff --git a/sms_contact/sipgateAPI.php b/php/sms_contact/sipgateAPI.php similarity index 100% rename from sms_contact/sipgateAPI.php rename to php/sms_contact/sipgateAPI.php diff --git a/sms_contact/sipgateAPI_Exception.php b/php/sms_contact/sipgateAPI_Exception.php similarity index 100% rename from sms_contact/sipgateAPI_Exception.php rename to php/sms_contact/sipgateAPI_Exception.php diff --git a/sms_contact/sms.js b/php/sms_contact/sms.js similarity index 100% rename from sms_contact/sms.js rename to php/sms_contact/sms.js diff --git a/sms_contact/style.css b/php/sms_contact/style.css similarity index 100% rename from sms_contact/style.css rename to php/sms_contact/style.css diff --git a/sms_contact/xmlrpc/xmlrpc.inc b/php/sms_contact/xmlrpc/xmlrpc.inc similarity index 100% rename from sms_contact/xmlrpc/xmlrpc.inc rename to php/sms_contact/xmlrpc/xmlrpc.inc diff --git a/sms_contact/xmlrpc/xmlrpc_wrappers.inc b/php/sms_contact/xmlrpc/xmlrpc_wrappers.inc similarity index 100% rename from sms_contact/xmlrpc/xmlrpc_wrappers.inc rename to php/sms_contact/xmlrpc/xmlrpc_wrappers.inc diff --git a/sms_contact/xmlrpc/xmlrpcs.inc b/php/sms_contact/xmlrpc/xmlrpcs.inc similarity index 100% rename from sms_contact/xmlrpc/xmlrpcs.inc rename to php/sms_contact/xmlrpc/xmlrpcs.inc diff --git a/hemblem/bcrcl.gif b/web/hemblem/bcrcl.gif similarity index 100% rename from hemblem/bcrcl.gif rename to web/hemblem/bcrcl.gif diff --git a/hemblem/index.html b/web/hemblem/index.html similarity index 100% rename from hemblem/index.html rename to web/hemblem/index.html diff --git a/hemblem/script.js b/web/hemblem/script.js similarity index 100% rename from hemblem/script.js rename to web/hemblem/script.js diff --git a/hemblem/style.css b/web/hemblem/style.css similarity index 100% rename from hemblem/style.css rename to web/hemblem/style.css