Index: /ipk/source/infos_streetinfo/CONTROL/control
===================================================================
--- /ipk/source/infos_streetinfo/CONTROL/control	(revision 7293)
+++ /ipk/source/infos_streetinfo/CONTROL/control	(revision 7293)
@@ -0,0 +1,10 @@
+Package: enigma2-plugin-infos-streetinfo
+Version: 1.0
+Architecture: sh4
+OE: traffic infos for your AAF Duckbox 
+Section: extra
+Priority: optional
+Maintainer: AAF
+Homepage: http://www.aaf-digital.info
+Source: http://www.aaf-digital.info
+Description: Weather Plugin
Index: /ipk/source/infos_streetinfo/CONTROL/postinst
===================================================================
--- /ipk/source/infos_streetinfo/CONTROL/postinst	(revision 7293)
+++ /ipk/source/infos_streetinfo/CONTROL/postinst	(revision 7293)
@@ -0,0 +1,12 @@
+#!/bin/sh
+TMP=/tmp/.infos
+
+echo "successfully installed"
+echo "syncing disk"
+sync
+if [ `df | grep /dev/mtdblock | grep var | sed 's/ \+/ /g' | cut -d ' ' -f4 | tail -n1 | wc -l` -eq 1 ]; then
+	SPACE=`df | grep /dev/mtdblock | grep var | sed 's/ \+/ /g' | cut -d ' ' -f4 | tail -n1`
+	FREE=`expr $SPACE - 100`
+	echo new freespace size $FREE kb
+fi
+exit 0
Index: /ipk/source/infos_streetinfo/CONTROL/postrm
===================================================================
--- /ipk/source/infos_streetinfo/CONTROL/postrm	(revision 7293)
+++ /ipk/source/infos_streetinfo/CONTROL/postrm	(revision 7293)
@@ -0,0 +1,14 @@
+#!/bin/sh
+TMP=/tmp/.infos
+PLUGINDIR=/usr/lib/enigma2/python/Plugins/Extensions/StreetInfo
+rm -r $PLUGINDIR > /dev/null 2>&1
+
+echo "successfully removed"
+echo "syncing disk"
+sync
+if [ `df | grep /dev/mtdblock | grep var | sed 's/ \+/ /g' | cut -d ' ' -f4 | tail -n1 | wc -l` -eq 1 ]; then
+	SPACE=`df | grep /dev/mtdblock | grep var | sed 's/ \+/ /g' | cut -d ' ' -f4 | tail -n1`
+	FREE=`expr $SPACE - 100`
+	echo new freespace size $FREE kb
+fi
+exit 0
Index: /ipk/source/infos_streetinfo/CONTROL/preinst
===================================================================
--- /ipk/source/infos_streetinfo/CONTROL/preinst	(revision 7293)
+++ /ipk/source/infos_streetinfo/CONTROL/preinst	(revision 7293)
@@ -0,0 +1,44 @@
+#!/bin/sh
+#
+TMP=/tmp/.infos
+echo "syncing disk"
+sync
+
+model=`cat /etc/model`
+echo""
+echo "Checking your Boxtype...."
+echo "Some Plugins will not work correctly on your $model!"
+echo ""
+if [ "$model" = "" ]; then
+	echo "Sorry! This Plugin is not available for your $model because it will not work correctly!!!"
+	echo "Aborting installation..."
+	exit 1
+else
+	echo "Boxtype: $model OK"
+fi
+
+if [ `df | grep /dev/mtdblock | grep var | sed 's/ \+/ /g' | cut -d ' ' -f4 | tail -n1 | wc -l` -eq 1 ]; then
+	SPACE=`df | grep /dev/mtdblock | grep var | sed 's/ \+/ /g' | cut -d ' ' -f4 | tail -n1`
+	FREE=`expr $SPACE - 100`
+	SIZE=22
+	echo "checking freespace"
+	echo packege size $SIZE kb
+	echo freespace size $FREE kb
+	if  [ "$FREE" -lt "$SIZE" ]; then
+		echo "sorry no freespace left on device"
+		exit 1
+	else
+		echo ok
+	fi
+fi   
+echo "install StreetInfo Plugin ..."
+echo "checking OS"
+if  [ `cat /etc/motd | grep AAF | grep M | grep rev | wc -l` -eq 0 ]; then                      
+	echo ---------------------------
+	echo DONT USE this IPK Package!!
+	echo ---
+	echo Only for AAF Image!!
+	echo ---------------------------
+	exit 1
+fi
+exit 0
Index: /ipk/source/infos_streetinfo/CONTROL/prerm
===================================================================
--- /ipk/source/infos_streetinfo/CONTROL/prerm	(revision 7293)
+++ /ipk/source/infos_streetinfo/CONTROL/prerm	(revision 7293)
@@ -0,0 +1,11 @@
+#!/bin/sh
+TMP=/tmp/.infos
+echo "syncing disk"
+sync
+if [ `df | grep /dev/mtdblock | grep var | sed 's/ \+/ /g' | cut -d ' ' -f4 | tail -n1 | wc -l` -eq 1 ]; then
+	SPACE=`df | grep /dev/mtdblock | grep var | sed 's/ \+/ /g' | cut -d ' ' -f4 | tail -n1`
+	FREE=`expr $SPACE - 100`
+	echo freespace size $FREE kb
+fi
+echo "removing StreetInfo Plugin"
+exit 0
Index: /ipk/source/infos_streetinfo/var/usr/lib/enigma2/python/Plugins/Extensions/StreetInfo/City.cfg
===================================================================
--- /ipk/source/infos_streetinfo/var/usr/lib/enigma2/python/Plugins/Extensions/StreetInfo/City.cfg	(revision 7293)
+++ /ipk/source/infos_streetinfo/var/usr/lib/enigma2/python/Plugins/Extensions/StreetInfo/City.cfg	(revision 7293)
@@ -0,0 +1,16 @@
+Baden-Württemberg
+Bayern
+Berlin
+Brandenburg
+Bremen
+Hamburg
+Hessen
+Mecklenburg-Vorpommern
+Niedersachsen
+Nordrhein-Westfalen
+Rheinland-Pfalz
+Saarland
+Sachsen-Anhalt
+Schleswig-Holstein
+Thüringen
+Sachsen
Index: /ipk/source/infos_streetinfo/var/usr/lib/enigma2/python/Plugins/Extensions/StreetInfo/Scroll.py
===================================================================
--- /ipk/source/infos_streetinfo/var/usr/lib/enigma2/python/Plugins/Extensions/StreetInfo/Scroll.py	(revision 7293)
+++ /ipk/source/infos_streetinfo/var/usr/lib/enigma2/python/Plugins/Extensions/StreetInfo/Scroll.py	(revision 7293)
@@ -0,0 +1,140 @@
+import skin
+from Components.HTMLComponent import HTMLComponent
+from Components.GUIComponent import GUIComponent
+from enigma import eLabel, eWidget, eSlider, fontRenderClass, ePoint, eSize
+
+class Scroll(HTMLComponent, GUIComponent):
+	def __init__(self, text=""):
+		GUIComponent.__init__(self)
+		self.message = text
+		self.instance = None
+		self.long_text = None
+		self.scrollbar = None
+		self.pages = None
+		self.total = None
+
+	def applySkin(self, desktop, parent):
+		ret = False
+		if self.skinAttributes is not None:
+			skin.applyAllAttributes(self.long_text, desktop, self.skinAttributes, parent.scale)
+			widget_attribs = [ ]
+			scrollbar_attribs = [ ]
+			for (attrib, value) in self.skinAttributes:
+				if attrib.find("borderColor") != -1 or attrib.find("borderWidth") != -1:
+					scrollbar_attribs.append((attrib,value))
+				if attrib.find("transparent") != -1 or attrib.find("backgroundColor") != -1:
+					widget_attribs.append((attrib,value))
+			skin.applyAllAttributes(self.instance, desktop, widget_attribs, parent.scale)
+			skin.applyAllAttributes(self.scrollbar, desktop, scrollbar_attribs+widget_attribs, parent.scale)
+			ret = True
+		s = self.long_text.size()
+		self.instance.move(self.long_text.position())
+		lineheight=fontRenderClass.getInstance().getLineHeight( self.long_text.getFont() )
+		if not lineheight:
+			lineheight = 30 # assume a random lineheight if nothing is visible
+		lines = (int)(s.height() / lineheight)
+		self.pageHeight = (int)(lines * lineheight)
+		self.instance.resize(eSize(s.width(), self.pageHeight+(int)(lineheight/6)))
+		self.scrollbar.move(ePoint(s.width()-20,0))
+		self.scrollbar.resize(eSize(20,self.pageHeight+(int)(lineheight/6)))
+		self.scrollbar.setOrientation(eSlider.orVertical);
+		self.scrollbar.setRange(0,100)
+		self.scrollbar.setBorderWidth(1)
+		self.long_text.move(ePoint(0,0))
+		self.long_text.resize(eSize(s.width()-30, self.pageHeight*16))
+		self.setText(self.message)
+		return ret
+
+	def setText(self, text):
+		self.message = text
+		if self.long_text is not None and self.pageHeight:
+			self.long_text.move(ePoint(0,0))
+			self.long_text.setText(self.message)
+			text_height=self.long_text.calculateSize().height()
+			total=self.pageHeight
+			pages=1
+			while total < text_height:
+				total=total+self.pageHeight
+				pages=pages+1
+			if pages > 1:
+				self.scrollbar.show()
+				self.total = total
+				self.pages = pages
+				self.updateScrollbar()
+			else:
+				self.scrollbar.hide()
+				self.total = None
+				self.pages = None
+
+	def appendText(self, text):
+		old_text = self.getText()
+		if len(str(old_text)) >0:
+			self.message += text
+		else:
+			self.message = text
+		if self.long_text is not None:
+			self.long_text.setText(self.message)
+			text_height=self.long_text.calculateSize().height()
+			total=self.pageHeight
+			pages=1
+			while total < text_height:
+				total=total+self.pageHeight
+				pages=pages+1
+			if pages > 1:
+				self.scrollbar.show()
+				self.total = total
+				self.pages = pages
+				self.updateScrollbar()
+			else:
+				self.scrollbar.hide()
+				self.total = None
+				self.pages = None
+
+	def updateScrollbar(self):
+		start = -self.long_text.position().y() * 100 / self.total
+		vis = self.pageHeight * 100 / self.total;
+		self.scrollbar.setStartEnd(start, start+vis)
+
+	def getText(self):
+		return self.message
+
+	def GUIcreate(self, parent):
+		self.instance = eWidget(parent)
+		self.scrollbar = eSlider(self.instance)
+		self.long_text = eLabel(self.instance)
+
+	def GUIdelete(self):
+		self.long_text = None
+		self.scrollbar = None
+		self.instance = None
+
+	def pageUp(self):
+		if self.total is not None:
+			curPos = self.long_text.position()
+			if curPos.y() < 0:
+				self.long_text.move( ePoint( curPos.x(), curPos.y() + self.pageHeight ) )
+				self.updateScrollbar()
+
+	def firstPage(self):
+		if self.total is not None:
+			curPos = self.long_text.position()
+			if curPos.y() < 0:
+				self.long_text.move( ePoint( curPos.x(), 0 ) )
+				self.updateScrollbar()
+
+	def pageDown(self):
+		if self.total is not None:
+			curPos = self.long_text.position()
+			if self.total-self.pageHeight >= abs( curPos.y() - self.pageHeight ):
+				self.long_text.move( ePoint( curPos.x(), curPos.y() - self.pageHeight ) )
+				self.updateScrollbar()
+
+	def lastPage(self):
+		i=1
+		while i < self.pages:
+			self.pageDown()
+			i += 1
+			self.updateScrollbar()
+
+	def produceHTML(self):
+		return self.getText()
Index: /ipk/source/infos_streetinfo/var/usr/lib/enigma2/python/Plugins/Extensions/StreetInfo/cam.cfg
===================================================================
--- /ipk/source/infos_streetinfo/var/usr/lib/enigma2/python/Plugins/Extensions/StreetInfo/cam.cfg	(revision 7293)
+++ /ipk/source/infos_streetinfo/var/usr/lib/enigma2/python/Plugins/Extensions/StreetInfo/cam.cfg	(revision 7293)
@@ -0,0 +1,144 @@
+A5 AK Weinheim Blickrichtung Darmstadt,http://www.svz-bw.de/images/webcams/KA131/KA131-Current.jpg
+A5 AK Weinheim Blickrichtung Heidelberg,http://www.svz-bw.de/images/webcams/KA132/KA132-Current.jpg
+A5 AK Heidelberg Blickrichtung Darmstadt,http://www.svz-bw.de/images/webcams/KA143/KA143-Current.jpg
+A5 AK Heidelberg Blickrichtung Karlsruhe,http://www.svz-bw.de/images/webcams/KA144/KA144-Current.jpg
+A5 AK Walldorf Blickrichtung Heidelberg,http://www.svz-bw.de/images/webcams/KA013/KA013-Current.jpg
+A5 AK Walldorf Blickrichtung Karlsruhe,http://www.svz-bw.de/images/webcams/KA014/KA014-Current.jpg
+A5 AS Bruchsal Blickrichtung Heidelberg,http://www.svz-bw.de/images/webcams/KA021/KA021-Current.jpg
+A5 AS Bruchsal Blickrichtung Karlsruhe,http://www.svz-bw.de/images/webcams/KA022/KA022-Current.jpg
+A5 AS Karlsruhe-Nord Blickrichtung Heidelberg,http://www.svz-bw.de/images/webcams/KA031/KA031-Current.jpg
+A5 AS Karlsruhe-Nord Blickrichtung Basel,http://www.svz-bw.de/images/webcams/KA032/KA032-Current.jpg
+A5 AS Karlsruhe-Mitte Blickrichtung Heidelberg,http://www.svz-bw.de/images/webcams/KA041/KA041-Current.jpg
+A5 AS Karlsruhe-Mitte Blickrichtung Basel,http://www.svz-bw.de/images/webcams/KA042/KA042-Current.jpg
+A5 AS Karlsruhe-Mitte Blickrichtung Karlsruhe,http://www.svz-bw.de/images/webcams/KA043/KA043-Current.jpg
+A5 AS Ettlingen Blickrichtung Heidelberg,http://www.svz-bw.de/images/webcams/KA061/KA061-Current.jpg
+A5 AS Ettlingen Blickrichtung Basel,http://www.svz-bw.de/images/webcams/KA062/KA062-Current.jpg
+A5 Rastplatz Silbergrund Blickrichtung Karlsruhe,http://www.svz-bw.de/images/webcams/KA151/KA151-Current.jpg
+A5 Rastplatz Silbergrund Blickrichtung Basel,http://www.svz-bw.de/images/webcams/KA152/KA152-Current.jpg
+A5 AS Rust Blickrichtung Karlsruhe,http://www.svz-bw.de/images/webcams/FR041/FR041-Current.jpg
+A5 AS Rust Blickrichtung Basel,http://www.svz-bw.de/images/webcams/FR042/FR042-Current.jpg
+A5 AS Freiburg-Mitte Blickrichtung Karlsruhe,http://www.svz-bw.de/images/webcams/FR051/FR051-Current.jpg
+A5 AS Freiburg-Mitte Blickrichtung Basel,http://www.svz-bw.de/images/webcams/FR052/FR052-Current.jpg
+A5 AD Weil am Rhein Blickrichtung Karlsruhe,http://www.svz-bw.de/images/webcams/FR011/FR011-Current.jpg
+A5 AD Weil am Rhein Blickrichtung Basel,http://www.svz-bw.de/images/webcams/FR012/FR012-Current.jpg
+A5 AS Weil a. Rh./Hüningen Blickrichtung Basel,http://www.svz-bw.de/images/webcams/FR021/FR021-Current.jpg
+A6 AS Mannheim-Sandh. Blickrichtung Kaiserslautern,http://www.svz-bw.de/images/webcams/KA161/KA161-Current.jpg
+A6 AS Mannheim-Sandhofen Blickrichtung Heilbronn,http://www.svz-bw.de/images/webcams/KA162/KA162-Current.jpg
+A6 AK Mannheim Blickrichtung Kaiserslautern,http://www.svz-bw.de/images/webcams/KA073/KA073-Current.jpg
+A6 AK Mannheim Blickrichtung Heilbronn,http://www.svz-bw.de/images/webcams/KA074/KA074-Current.jpg
+A6 AD Hockenheim Blickrichtung Mannheim,http://www.svz-bw.de/images/webcams/KA171/KA171-Current.jpg
+A6 AD Hockenheim Blickrichtung Heilbronn,http://www.svz-bw.de/images/webcams/KA172/KA172-Current.jpg
+A6 AK Walldorf Blickrichtung Mannheim,http://www.svz-bw.de/images/webcams/KA012/KA012-Current.jpg
+A6 AK Walldorf Blickrichtung Heilbronn,http://www.svz-bw.de/images/webcams/KA011/KA011-Current.jpg
+A6 AS Sinsheim-Süd Blickrichtung Mannheim,http://www.svz-bw.de/images/webcams/KA082/KA082-Current.jpg
+A6 AS Sinsheim-Süd Blickrichtung Heilbronn,http://www.svz-bw.de/images/webcams/KA081/KA081-Current.jpg
+A6 AS Heilbronn/Untereisesh. Blickrichtung Nürnberg,http://www.svz-bw.de/images/webcams/S011/S011-Current.jpg
+A6 AK Weinsberg Blickrichtung Mannheim,http://www.svz-bw.de/images/webcams/S024/S024-Current.jpg
+A6 AK Weinsberg Blickrichtung Nürnberg,http://www.svz-bw.de/images/webcams/S023/S023-Current.jpg
+A6 Kochertalbrücke Blickrichtung Heilbronn,http://www.svz-bw.de/images/webcams/S031/S031-Current.jpg
+A6 Kaiserslautern Einsiedlerhof,http://verkehr.rlp.de/syncdata/cam/220/thumb_640x480.jpg
+A6 Kaiserslauetn Ost,http://verkehr.rlp.de/syncdata/cam/165/thumb_640x480.jpg
+A6 Grünstadt,http://verkehr.rlp.de/syncdata/cam/125/thumb_640x480.jpg
+A6 Frankenthal,http://verkehr.rlp.de/syncdata/cam/110/thumb_640x480.jpg
+A60 Bingen,http://verkehr.rlp.de/syncdata/cam/355/thumb_640x480.jpg
+A60 Laubenheim,http://verkehr.rlp.de/syncdata/cam/310/thumb_640x480.jpg
+A60 Hechtsheim,http://verkehr.rlp.de/syncdata/cam/400/thumb_640x480.jpg
+A60 Rüsselsheim,http://verkehr.rlp.de/syncdata/cam/400/thumb_640x480.jpg
+A643 Mainz,http://verkehr.rlp.de/syncdata/cam/365/thumb_640x480.jpg
+A63 Mainz Süd,http://verkehr.rlp.de/syncdata/cam/345/thumb_640x480.jpg
+A656 AS Mannheim-Neckarau Blickrichtung Mannheim,http://www.svz-bw.de/images/webcams/KA181/KA181-Current.jpg
+A656 AK Mannheim Blickrichtung Mannheim,http://www.svz-bw.de/images/webcams/KA072/KA072-Current.jpg
+A656 AK Mannheim Blickrichtung Heidelberg,http://www.svz-bw.de/images/webcams/KA071/KA071-Current.jpg
+A656 AK Heidelberg Blickrichtung Mannheim,http://www.svz-bw.de/images/webcams/KA142/KA142-Current.jpg
+A65/B10 Maximiliansau,http://verkehr.rlp.de/syncdata/cam/815/thumb_640x480.jpg
+A65/B10 Dorschberg,http://verkehr.rlp.de/syncdata/cam/810/thumb_640x480.jpg
+A7 Agnesburgtunnel Blickrichtung Würzburg,http://www.svz-bw.de/images/webcams/S191/S191-Current.jpg
+A7 Agnesburgtunnel Blickrichtung Ulm,http://www.svz-bw.de/images/webcams/S192/S192-Current.jpg
+A75 Dammheim,http://verkehr.rlp.de/syncdata/cam/800/thumb_640x480.jpg
+A8 AD Karlsruhe Blickrichtung Karlsruhe,http://www.svz-bw.de/images/webcams/KA052/KA052-Current.jpg
+A8 AD Karlsruhe Blickrichtung Stuttgart,http://www.svz-bw.de/images/webcams/KA051/KA051-Current.jpg
+A8 AS Pforzheim-Ost Blickrichtung Stuttgart,http://www.svz-bw.de/images/webcams/KA091/KA091-Current.jpg
+A8 AS Rutesheim Blickrichtung Karlsruhe,http://www.svz-bw.de/images/webcams/k7/K7-Current.jpg
+A8 AS Rutesheim Blickrichtung Stuttgart,http://www.svz-bw.de/images/webcams/k8/K8-Current.jpg
+A8 AD Leonberg Blickrichtung Karlsruhe,http://www.svz-bw.de/images/webcams/k5/K5-Current.jpg
+A8 AD Leonberg Blickrichtung München,http://www.svz-bw.de/images/webcams/k6/K6-Current.jpg
+A8 AK Stuttgart Blickrichtung Karlsruhe,http://www.svz-bw.de/images/webcams/k3/K3-Current.jpg
+A8 AK Stuttgart Blickrichtung München,http://www.svz-bw.de/images/webcams/k4/K4-Current.jpg
+A8 AS Stgt.-Degerloch Blickrichtung Karlsruhe,http://www.svz-bw.de/images/webcams/S042/S042-Current.jpg
+A8 AS Stgt.-Degerloch Blickrichtung München,http://www.svz-bw.de/images/webcams/S041/S041-Current.jpg
+A8 AS Stgt.-Flughafen/Messe Blickrichtung München,http://www.svz-bw.de/images/webcams/S051/S051-Current.jpg
+A8 AS Wendlingen Blickrichtung Stuttgart,http://www.svz-bw.de/images/webcams/S202/S202-Current.jpg
+A8 AS Wendlingen Blickrichtung München,http://www.svz-bw.de/images/webcams/S201/S201-Current.jpg
+A8 Aichelberg Blickrichtung Stuttgart,http://www.svz-bw.de/images/webcams/S061/S061-Current.jpg
+A8 Gruibingen Blickrichtung Stuttgart,http://www.svz-bw.de/images/webcams/S072/S072-Current.jpg
+A8 Gruibingen Blickrichtung München,http://www.svz-bw.de/images/webcams/S071/S071-Current.jpg
+A8 Albaufstieg Blickrichtung Stuttgart,http://www.svz-bw.de/images/webcams/S081/S081-Current.jpg
+A8 Albaufstieg Blickrichtung München,http://www.svz-bw.de/images/webcams/S082/S082-Current.jpg
+A8 Albabstieg Blickrichtung München,http://www.svz-bw.de/images/webcams/S091/S091-Current.jpg
+A8 AS Hohenstadt Blickrichtung Stuttgart,http://www.svz-bw.de/images/webcams/S212/S212-Current.jpg
+A8 AS Hohenstadt Blickrichtung München,http://www.svz-bw.de/images/webcams/S211/S211-Current.jpg
+A8 AS Ulm-West Blickrichtung Stuttgart,http://www.svz-bw.de/images/webcams/TU012/TU012-Current.jpg
+A8 AS Ulm-West Blickrichtung München,http://www.svz-bw.de/images/webcams/TU011/TU011-Current.jpg
+A81 AK Weinsberg Blickrichtung Würzburg,http://www.svz-bw.de/images/webcams/S021/S021-Current.jpg
+A81 AK Weinsberg Blickrichtung Stuttgart,http://www.svz-bw.de/images/webcams/S022/S022-Current.jpg
+A81 AS Ilsfeld Blickrichtung Heilbronn,http://www.svz-bw.de/images/webcams/S221/S221-Current.jpg
+A81 AS Ilsfeld Blickrichtung Stuttgart,http://www.svz-bw.de/images/webcams/S222/S222-Current.jpg
+A81 Neckarbrücke Pleidelsheim Blickrichtung Heilbronn,http://www.svz-bw.de/images/webcams/S101/S101-Current.jpg
+A81 Neckarbrücke Pleidelsheim Blickrichtung Stuttgart,http://www.svz-bw.de/images/webcams/S102/S102-Current.jpg
+A81 Ludwigsburg Blickrichtung Heilbronn,http://www.svz-bw.de/images/webcams/S111/S111-Current.jpg
+A81 AS Stgt.-Zuffenhausen Blickrichtung Heilbronn,http://www.svz-bw.de/images/webcams/k12/K12-Current.jpg
+A81 AS Stgt.-Zuffenhausen Blickrichtung Singen,http://www.svz-bw.de/images/webcams/k13/K13-Current.jpg
+A81 AS Stgt.-Feuerbach Blickrichtung Heilbronn,http://www.svz-bw.de/images/webcams/k10/K10-Current.jpg
+A81 AS Stgt.-Feuerbach Blickrichtung Singen,http://www.svz-bw.de/images/webcams/k11/K11-Current.jpg
+A81 Engelbergtunnel Blickrichtung Heilbronn,http://www.svz-bw.de/images/webcams/k9/K9-Current.jpg
+A81 AK Stuttgart Blickrichtung Singen,http://www.svz-bw.de/images/webcams/k2/K2-Current.jpg
+A81 AS Sindelfingen-Ost Blickrichtung Stuttgart,http://www.svz-bw.de/images/webcams/S121/S121-Current.jpg
+A81 AS Sindelfingen-Ost Blickrichtung Singen,http://www.svz-bw.de/images/webcams/S122/S122-Current.jpg
+A81 AS Böblingen/Sindelfingen Blickrichtung Stuttgart,http://www.svz-bw.de/images/webcams/S131/S131-Current.jpg
+A81 AS Böblingen-Hulb Blickrichtung Stuttgart,http://www.svz-bw.de/images/webcams/S141/S141-Current.jpg
+A81 AS Böblingen-Hulb Blickrichtung Singen,http://www.svz-bw.de/images/webcams/S142/S142-Current.jpg
+A81 AS Hildrizhausen Blickrichtung Stuttgart,http://www.svz-bw.de/images/webcams/S151/S151-Current.jpg
+A81 Neckartalbrücke Weitingen Blickrichtung Singen,http://www.svz-bw.de/images/webcams/FR061/FR061-Current.jpg
+A81 Hegaublick Blickrichtung Stuttgart,http://www.svz-bw.de/images/webcams/FR071/FR071-Current.jpg
+A81 Autobahnende Gottmadingen Blickricht. Singen,http://www.svz-bw.de/images/webcams/FR081/FR081-Current.jpg
+A81 Autobahnende Gottmadingen Blickricht. Schaffh.,http://www.svz-bw.de/images/webcams/FR082/FR082-Current.jpg
+A831 AK Stuttgart Blickrichtung Stuttgart-Vaihingen,http://www.svz-bw.de/images/webcams/k1/K1-Current.jpg
+A861 AS Rheinfelden-Süd Blickrichtung Lörrach,http://www.svz-bw.de/images/webcams/FR031/FR031-Current.jpg
+A96 Rastplatz Winterberg Blickrichtung München,http://www.svz-bw.de/images/webcams/TU031/TU031-Current.jpg
+A96 Obere Argenbrücke Blickrichtung München,http://www.svz-bw.de/images/webcams/TU021/TU021-Current.jpg
+A98 AS Stockach-Ost Blickrichtung Schaffhausen,http://www.svz-bw.de/images/webcams/FR092/FR092-Current.jpg
+A98 AS Stockach-Ost Blickrichtung Friedrichshafen,http://www.svz-bw.de/images/webcams/FR091/FR091-Current.jpg
+B9 Richtung Koblenz,http://verkehr.rlp.de/syncdata/cam/010/thumb_640x480.jpg
+B9 Saarkreisel,http://verkehr.rlp.de/syncdata/cam/1110/thumb_640x480.jpg
+B9 Koblenz Nord,http://verkehr.rlp.de/syncdata/cam/1120/thumb_640x480.jpg
+B10 Rheinbrücke KA-Maxau Blickrichtung Karlsruhe,http://www.svz-bw.de/images/webcams/KA101/KA101-Current.jpg
+B10 AS KA-Knielingen Blickrichtung Karlsruhe,http://www.svz-bw.de/images/webcams/KA111/KA111-Current.jpg
+B10 AS KA-Honsellstraße Blickrichtung Pirmasens,http://www.svz-bw.de/images/webcams/KA121/KA121-Current.jpg
+B10 AS Karlsruhe-Nord Blickrichtung KA-Hagsfeld,http://www.svz-bw.de/images/webcams/KA033/KA033-Current.jpg
+B10 AS Karlsruhe-Nord Blickrichtung KA-Grötzingen,http://www.svz-bw.de/images/webcams/KA034/KA034-Current.jpg
+B10 AS Stgt.-Zuffenhausen Blickrichtung Stuttgart,http://www.svz-bw.de/images/webcams/k14/K14-Current.jpg
+B10 AS Ulm-West Blickrichtung Stuttgart,http://www.svz-bw.de/images/webcams/TU013/TU013-Current.jpg
+B10 AS Ulm-West Blickrichtung Ulm,http://www.svz-bw.de/images/webcams/TU014/TU014-Current.jpg
+B10 Birmasens,http://verkehr.rlp.de/syncdata/cam/600/thumb_640x480.jpg
+B10 Tunnel Löwenherz,http://verkehr.rlp.de/syncdata/cam/1030/thumb_640x480.jpg
+B14 AS Benzstraße Blickrichtung Stuttgart,http://www.svz-bw.de/images/webcams/S231/S231-Current.jpg
+B14 AS Benzstraße Blickrichtung Schwäbisch-Hall,http://www.svz-bw.de/images/webcams/S232/S232-Current.jpg
+B14 Kappelbergtunnel Blickrichtung Stuttgart,http://www.svz-bw.de/images/webcams/S241/S241-Current.jpg
+B14 Kappelbergtunnel Blickrichtung Schwäbisch-Hall,http://www.svz-bw.de/images/webcams/S242/S242-Current.jpg
+B14 AS Waiblingen-Süd Blickrichtung Stuttgart,http://www.svz-bw.de/images/webcams/S251/S251-Current.jpg
+B14 AS Waiblingen-Süd Blickrichtung Schwäbisch-H.,http://www.svz-bw.de/images/webcams/S252/S252-Current.jpg
+B27 AS Tränke Blickrichtung Stuttgart,http://www.svz-bw.de/images/webcams/S161/S161-Current.jpg
+B27 AS Tränke Blickrichtung Tübingen,http://www.svz-bw.de/images/webcams/S162/S162-Current.jpg
+B27 AS Stgt.-Degerloch Blickrichtung Stuttgart,http://www.svz-bw.de/images/webcams/S043/S043-Current.jpg
+B27 AS Stgt.-Degerloch Blickrichtung Tübingen,http://www.svz-bw.de/images/webcams/S044/S044-Current.jpg
+B27 AS LE-Süd/Stetten Blickrichtung Stuttgart,http://www.svz-bw.de/images/webcams/S171/S171-Current.jpg
+B27 AS LE-Süd/Stetten Blickrichtung Tübingen,http://www.svz-bw.de/images/webcams/S172/S172-Current.jpg
+B31 Höllsteig Blickrichtung Freiburg,http://www.svz-bw.de/images/webcams/FR101/FR101-Current.jpg
+B313 AS Wendlingen Blickrichtung Plochingen,http://www.svz-bw.de/images/webcams/S203/S203-Current.jpg
+Österreich Brennerpass,http://www.autobrennero.it/WebCamImg/km1.jpg
+Österreich Brenner A13 ,http://www1.tirol.gv.at/luft/downloads/MUTTERS_GAERBERBACH_A13.JPG
+Österreich Tirol Brixental,http://webcams.tirol.gv.at/b170/aktuell/cam1.jpg
+Österreich Pass-Thurn,http://wwwc.tirol.gv.at/passthurn/cam3.jpg
+Österreich Pass-Thurn2,http://wwwc.tirol.gv.at/passthurn/cam1.jpg
+Österreich Timmelsjoch,http://www.laurin.at/webcam/webcam.jpg
+Österreich A23,http://www.a23.at/gif/start.jpg
Index: /ipk/source/infos_streetinfo/var/usr/lib/enigma2/python/Plugins/Extensions/StreetInfo/fav1.cfg
===================================================================
--- /ipk/source/infos_streetinfo/var/usr/lib/enigma2/python/Plugins/Extensions/StreetInfo/fav1.cfg	(revision 7293)
+++ /ipk/source/infos_streetinfo/var/usr/lib/enigma2/python/Plugins/Extensions/StreetInfo/fav1.cfg	(revision 7293)
@@ -0,0 +1,1 @@
+=6&tmp=
Index: /ipk/source/infos_streetinfo/var/usr/lib/enigma2/python/Plugins/Extensions/StreetInfo/keymap.xml
===================================================================
--- /ipk/source/infos_streetinfo/var/usr/lib/enigma2/python/Plugins/Extensions/StreetInfo/keymap.xml	(revision 7293)
+++ /ipk/source/infos_streetinfo/var/usr/lib/enigma2/python/Plugins/Extensions/StreetInfo/keymap.xml	(revision 7293)
@@ -0,0 +1,42 @@
+<keymap>
+	<map context="AAFKeyActions">
+		<key id="KEY_UP" mapto="up" flags="m" />
+		<key id="KEY_DOWN" mapto="down" flags="m" />
+		<key id="KEY_LEFT" mapto="left" flags="m" />
+		<key id="KEY_RIGHT" mapto="right" flags="m" />
+
+		<key id="KEY_UP" mapto="upRepeated" flags="r" />
+		<key id="KEY_DOWN" mapto="downRepeated" flags="r" />
+		<key id="KEY_LEFT" mapto="leftRepeated" flags="r" />
+		<key id="KEY_RIGHT" mapto="rightRepeated" flags="r" />
+
+		<key id="KEY_RED" mapto="red" flags="m" />
+		<key id="KEY_GREEN" mapto="green" flags="m" />
+		<key id="KEY_YELLOW" mapto="yellow" flags="m" />
+		<key id="KEY_BLUE" mapto="blue" flags="m" />
+
+		<key id="KEY_1" mapto="1" flags="m" />
+		<key id="KEY_2" mapto="2" flags="m" />
+		<key id="KEY_3" mapto="3" flags="m" />
+		<key id="KEY_4" mapto="4" flags="m" />
+		<key id="KEY_5" mapto="5" flags="m" />
+		<key id="KEY_6" mapto="6" flags="m" />
+		<key id="KEY_7" mapto="7" flags="m" />
+		<key id="KEY_8" mapto="8" flags="m" />
+		<key id="KEY_9" mapto="9" flags="m" />
+		<key id="KEY_0" mapto="0" flags="m" />
+
+		<key id="KEY_CHANNELUP" mapto="chup" flags="mr" />
+		<key id="KEY_CHANNELDOWN" mapto="chdown" flags="mr" />
+
+		<key id="KEY_OK" mapto="ok" flags="m" />
+		<key id="KEY_PAGEUP" mapto="nextBouquet" flags="m" />
+		<key id="KEY_PAGEDOWN" mapto="prevBouquet" flags="m" />
+		<key id="KEY_TEXT" mapto="text" flags="m" />
+		<key id="KEY_MENU" mapto="menu" flags="m" />
+		<key id="KEY_EXIT" mapto="cancel" flags="m" />
+		<key id="KEY_HOME" mapto="cancel" flags="m" />
+		<key id="KEY_HELP" mapto="cancel" flags="m" />
+		<key id="\x1b" mapto="cancel" flags="m" />
+	</map>
+</keymap>
Index: /ipk/source/infos_streetinfo/var/usr/lib/enigma2/python/Plugins/Extensions/StreetInfo/plugin.py
===================================================================
--- /ipk/source/infos_streetinfo/var/usr/lib/enigma2/python/Plugins/Extensions/StreetInfo/plugin.py	(revision 7293)
+++ /ipk/source/infos_streetinfo/var/usr/lib/enigma2/python/Plugins/Extensions/StreetInfo/plugin.py	(revision 7293)
@@ -0,0 +1,777 @@
+# -*- coding: UTF-8 -*-
+
+#-------------------------------------------------------
+#
+#                 Streetinfo
+#
+#   Dieses Plugin holt vom Internet die aktuellen
+#   Staumeldungen aus Deutschland.
+#
+#
+#   Wir wuenschen allen Benutzern staufreie Fahrt!
+#
+#                 Version 1.0
+#
+#                  14.04.2011
+#
+#  Datenquelle: http://mobile.verkehrsinformation.de
+#  Datenquelle: http://www.verkehrsinfo.de/
+#  Datenquelle: http://www.svz-bw.de
+#
+#
+#                  @Bauernbub
+#
+#-------------------------------------------------------
+
+from Components.ActionMap import HelpableActionMap
+from Components.ActionMap import ActionMap, NumberActionMap
+from Components.AVSwitch import AVSwitch
+from Components.Label import Label
+from Components.Button import Button
+from Components.Sources.StaticText import StaticText
+from Components.ScrollLabel import ScrollLabel
+from Components.MenuList import MenuList
+from Components.MultiContent import MultiContentEntryText, MultiContentEntryPixmapAlphaTest
+from Components.Pixmap import Pixmap
+from Components.PluginComponent import plugins
+from Components.Console import Console
+from Components.ConfigList import ConfigListScreen, ConfigList
+from Components.config import config, ConfigSubsection, ConfigText, ConfigSubList, getConfigListEntry, ConfigSelection,  ConfigIP, ConfigYesNo, ConfigSequence, ConfigNumber, ConfigInteger, ConfigPassword, NoSave, ConfigEnableDisable
+from enigma import eListboxPythonMultiContent, ePicLoad, eServiceReference, eTimer, getDesktop, gFont, RT_HALIGN_LEFT
+
+from os import listdir, popen
+from Plugins.Plugin import PluginDescriptor
+from Screens.ChoiceBox import ChoiceBox
+from Screens.HelpMenu import HelpableScreen
+from Screens.InfoBar import MoviePlayer
+from Screens.MessageBox import MessageBox
+from Screens.Screen import Screen
+from Components.FileList import FileList
+from time import sleep
+from Tools.BoundFunction import boundFunction
+from Tools.Directories import resolveFilename, SCOPE_PLUGINS, fileExists
+from Tools.HardwareInfo import HardwareInfo
+from Tools.LoadPixmap import LoadPixmap
+from twisted.web.client import downloadPage, getPage
+import htmlentitydefs, re, urllib2, urllib
+from re import sub, split, search, match, findall
+import os
+from os import system, remove, path, walk, makedirs, listdir
+from time import *
+from Scroll import Scroll
+
+
+
+###################################################
+global MAIN_PAGE
+global city, link
+
+
+
+MAIN_PAGE = "http://mobile.verkehrsinformation.de/index.php"
+PNG_PATH = resolveFilename(SCOPE_PLUGINS)+"/Extensions/StreetInfo/picon/"
+deviceName = HardwareInfo().get_device_name()
+
+
+data = "svz_bw_tpl: svz_bw;6e09bde33fae46dde0bb68bfc4ecaf63:medgr1mavnfd2hsj7vfrejut82m38ghv;JASLIDESHOWPLAY:1"
+cookiehead = {
+						"Keep-Alive":"800",
+						"Referer":"http://www.aaf-board.com",
+						"Cookie:": data,
+						"Connection":"keep-alive"
+						}
+
+
+if fileExists("/usr/lib/enigma2/python/Plugins/Extensions/StreetInfo/startservice.cfg"):
+		file = open("/usr/lib/enigma2/python/Plugins/Extensions/StreetInfo/startservice.cfg","r")
+		link = str(file.readline().strip())
+		MAIN_PAGE = "http://mobile.verkehrsinformation.de/index.php?region" + link + "search"
+		file.close()
+else:
+		link = "=2&tmp="
+		MAIN_PAGE = "http://mobile.verkehrsinformation.de/index.php?region=2&tmp=search"
+
+
+#---------------------- Skin Funktionen ---------------------------------------------------
+def getAspect():
+	val = AVSwitch().getAspectRatioSetting()
+	return val/2
+
+def getScale():
+	return AVSwitch().getFramebufferScale()
+
+def applySkinVars(skin,dict):
+	for key in dict.keys():
+		try:
+			skin = skin.replace('{'+key+'}',dict[key])
+		except Exception,e:
+			print e,"@key=",key
+	return skin
+
+def transHTML(text):
+		text = text.replace('&nbsp;'," ").replace('&#39;',"'").replace('&szlig;',"sz").replace('&quot;','"').replace('&ndash;',"-")
+		text = text.replace('&copy;.*'," ").replace('&amp;',"&").replace('&uuml;',"ue").replace('&auml;',"ae").replace('&ouml;',"oe")
+		text = text.replace('&Uuml;',"Ue").replace('&Auml;',"Ae").replace('&Ouml;',"Oe")
+		text = text.replace('&#223;',"ae").replace('&raquo;',"").replace('&ldquo;','"').replace('&rdquo;','"')
+		text = text.replace('\xfc',"ue").replace('\xd6',"Oe").replace('\xf6',"oe").replace('\xe4',"ae")
+		return text
+
+#------------------------------------------------------------------------------------------
+#----------------------------------  MainMenuList   ---------------------------------------
+#------------------------------------------------------------------------------------------
+class MainMenuList(MenuList):
+	def __init__(self):
+		MenuList.__init__(self, [], False, eListboxPythonMultiContent)
+
+		self.l.setFont(0, gFont("Regular",20))
+		self.l.setFont(1, gFont("Regular", 24))
+		self.listCompleted = []
+		self.callback = None
+		self.idx = 0
+		self.thumb = ""
+		self.pos = 20
+		##print "[StreetInfo] MainMenuList"
+#------------------------------------------------------------------------------------------
+#------------------------------------------ Spinner ---------------------------------------
+#------------------------------------------------------------------------------------------
+
+class StreetPreviewCache(Screen):
+	skin = """
+		<screen position="center,center" size="76,76" flags="wfNoBorder" backgroundColor="#ffffff" >
+			<eLabel position="2,2" zPosition="1" size="72,72" font="Regular;18" backgroundColor="#252525" />
+			<widget name="spinner" position="14,14" zPosition="4" size="48,48" alphatest="on" />
+		</screen>"""
+
+	def __init__(self, session):
+		self.session = session
+		Screen.__init__(self, session)
+		
+		self["spinner"] = Pixmap()
+		self.curr = 0
+		
+		self.timer = eTimer()
+		self.timer.callback.append(self.showNextSpinner)
+
+	def start(self):
+		self.show()
+		self.timer.start(120, False)
+
+	def stop(self):
+		self.hide()
+		self.timer.stop()
+
+	def showNextSpinner(self):
+		self.curr += 1
+		if self.curr > 10:
+			self.curr = 0
+		png = LoadPixmap(cached=True, path=PNG_PATH + str(self.curr) + ".png")
+		self["spinner"].instance.setPixmap(png)
+
+#------------------------------------------------------------------------------------------
+# ------------------------------     Stauinfo     ---------------------------------------
+#------------------------------------------------------------------------------------------
+class Streetview(Screen, HelpableScreen):
+
+	desktop = getDesktop(0)
+	size = desktop.size()
+	width = size.width()
+	##print "Desktop ", size, width
+	if width == 1024:
+			skin = """<screen position="center,65" size="880,480" title="Stauinfo V 1.0" backgroundColor="#000000" >"""
+			skin += """<widget name="textlist" zPosition="-1" position="0,67" size="880,363" font="Regular;22" halign="left" transparent="1" />
+			<widget source="Titel" render="Label" position="20,3" zPosition="3" size="860,40" font="Regular;36" valign="center" halign="center" transparent="1" foregroundColor="#f47d19"/>
+			<widget source="Titel2" render="Label" position="280,5" zPosition="2" size="440,40" font="Regular;28" valign="center" halign="left" transparent="1" foregroundColor="#f47d19"/>
+			<widget source="key_red" render="Label" position="70,438" zPosition="2" size="200,40" font="Regular;20" valign="center" halign="left" transparent="1" foregroundColor="#ffffff" />
+			<widget source="key_green" render="Label" position="260,438" zPosition="2" size="180,40" font="Regular;20" valign="center" halign="left" transparent="1" foregroundColor="#ffffff"/>
+			<widget source="key_yellow" render="Label" position="450,438" zPosition="2" size="180,40" font="Regular;20" valign="center" halign="left" transparent="1" foregroundColor="#ffffff"/>
+			<widget source="key_blue" render="Label" position="640,438" zPosition="2" size="180,40" font="Regular;20" valign="center" halign="left" transparent="1" foregroundColor="#ffffff"/>
+			<widget source="key_ok" render="Label" position="730,438" zPosition="2" size="180,40" font="Regular;20" valign="center" halign="left" transparent="1" foregroundColor="#ffffff"/>
+			<ePixmap position="30,443" size="36,25" pixmap="skin_default/buttons/key_red.png" transparent="1" alphatest="on" />
+			<ePixmap position="220,443" size="36,25" pixmap="skin_default/buttons/key_green.png" transparent="1" alphatest="on" />
+			<ePixmap position="410,443" size="36,25" pixmap="skin_default/buttons/key_yellow.png" transparent="1" alphatest="on" />
+			<ePixmap position="600,443" size="36,25" pixmap="skin_default/buttons/key_blue.png" transparent="1" alphatest="on" />
+			<eLabel position="5,437" zPosition="2" size="870,2" backgroundColor="#e0eeee" />
+	</screen>"""
+	else:
+			skin = """<screen position="center,center" size="890,505" title="Stauinfo V 1.0" backgroundColor="#000000" >"""
+			skin += """<widget name="Mlist" position="0,90" size="890,365" zPosition="-1" backgroundColor="#000000" backgroundColorSelected="#f7f7f7" selectionDisabled="1" scrollbarMode="showOnDemand" />
+			<widget name="textlist" zPosition="-1" position="0,67" size="880,373" font="Regular;26" halign="left" transparent="1" />
+			<widget source="Titel" render="Label" position="20,13" zPosition="3" size="870,40" font="Regular;36" valign="center" halign="center" transparent="1" foregroundColor="#f47d19"/>
+			<widget source="Titel2" render="Label" position="280,15" zPosition="2" size="440,40" font="Regular;28" valign="center" halign="left" transparent="1" foregroundColor="#f47d19"/>
+			<widget source="key_red" render="Label" position="70,463" zPosition="2" size="200,40" font="Regular;20" valign="center" halign="left" transparent="1" foregroundColor="#ffffff" />
+			<widget source="key_green" render="Label" position="260,463" zPosition="2" size="180,40" font="Regular;20" valign="center" halign="left" transparent="1" foregroundColor="#ffffff"/>
+			<widget source="key_yellow" render="Label" position="450,463" zPosition="2" size="180,40" font="Regular;20" valign="center" halign="left" transparent="1" foregroundColor="#ffffff"/>
+			<widget source="key_blue" render="Label" position="640,463" zPosition="2" size="180,40" font="Regular;20" valign="center" halign="left" transparent="1" foregroundColor="#ffffff"/>
+			<widget source="key_ok" render="Label" position="730,463" zPosition="2" size="180,40" font="Regular;20" valign="center" halign="left" transparent="1" foregroundColor="#ffffff"/>
+			<ePixmap position="30,468" size="36,25" pixmap="skin_default/buttons/key_red.png" transparent="1" alphatest="on" />
+			<ePixmap position="220,468" size="36,25" pixmap="skin_default/buttons/key_green.png" transparent="1" alphatest="on" />
+			<ePixmap position="410,468" size="36,25" pixmap="skin_default/buttons/key_yellow.png" transparent="1" alphatest="on" />
+			<ePixmap position="600,468" size="36,25" pixmap="skin_default/buttons/key_blue.png" transparent="1" alphatest="on" />
+			<eLabel position="5,455" zPosition="2" size="880,2" backgroundColor="#e0eeee" />
+	</screen>"""
+
+	def __init__(self, session):
+		self.session = session
+		global MAIN_PAGE
+		MAIN_PAGE = "http://mobile.verkehrsinformation.de/index.php" + "?region=2&tmp=search"
+
+		Screen.__init__(self, session)
+		self["navigationTitle"] = Label(" ")
+		self["Mlist"] = MainMenuList()
+		self["Titel"] = StaticText()
+		self["Titel2"] = StaticText()
+		self["Titel2"].text = _("Stauinfos werden gesucht ...")
+		self["key_green"] = StaticText()
+		self["key_yellow"] = StaticText()
+		self["key_red"] = StaticText()
+		self["key_blue"] = StaticText()
+		self["key_ok"] = StaticText()
+		self["key_red"].text = _("Stau-Karte")
+		self["key_green"].text = _("Stau-Cam")
+		self["key_yellow"].text = _("Favorit")
+		self["key_blue"].text = _("Home")
+		self["key_ok"].text = _("(OK) Auswahl")
+		self["textlist"] = Scroll("")
+
+		HelpableScreen.__init__(self)
+		self["actions"] = HelpableActionMap(self, "AAFKeyActions",
+			{
+				"cancel": (self.exit, "Beenden"),
+				"menu": (self.Menu, "Menu"),
+				"showEventInfo": (self.info, "Info"),
+				"ok": (self.OK, "ok"),
+				"left": (self.left, "Seite hoch"),
+				"right": (self.right, "Seite runter"),
+				"up": (self.up, "Hoch"),
+				"down": (self.down, "Runter"),
+				"red": (self.red, "Red"),
+				"green": (self.Cam, "Green"),
+				"yellow": (self.Fav1, "Yellow"),
+				"blue": (self.Fav0, "Blue"),
+			}, -2)
+		self.StartPageFirst()
+
+
+	def StartPageFirst(self):
+		print "[StreetInfo] StartPageFirst:"
+		self.cacheDialog = self.session.instantiateDialog(StreetPreviewCache)
+		self["textlist"].callback = self.deactivateCacheDialog
+		self.working = False
+		self["textlist"].show
+		self.cacheTimer = eTimer()
+		self.cacheDialog.start()
+		self.onLayoutFinish.append(self.getPage)
+
+	def StartPage(self):
+		global MAIN_PAGE, city, link
+		self["Titel"].text = _("                                   ")
+		self["Titel2"].text = _("suche Stauinfos ...")
+		self.working = False
+		print "[StreetInfo] Link City:" ,link
+		self["textlist"].show
+		MAIN_PAGE = "http://mobile.verkehrsinformation.de/index.php?region" + link + "search"
+		self.getPage()
+
+	def getPage(self, page=None):
+		print "[StreetInfo] getPage:"
+		self.working = True
+		if not page:
+			page = ""
+		url = "%s%s"%(MAIN_PAGE, page)
+		print "[StreetInfo] Url:" , url
+		getPage(url).addCallback(self.getStauPage).addErrback(self.error)
+
+	def error(self, err=""):
+		print "[StreetInfo] Error:", err
+		self.working = False
+		self.deactivateCacheDialog()
+
+	def deactivateCacheDialog(self):
+		self.cacheDialog.stop()
+		self.working = False
+
+	def exit(self):
+		self.close()
+		self.deactivateCacheDialog()
+
+	def Fav0(self):
+		global MAIN_PAGE, city, link
+		if fileExists("/usr/lib/enigma2/python/Plugins/Extensions/StreetInfo/startservice.cfg"):
+				file = open("/usr/lib/enigma2/python/Plugins/Extensions/StreetInfo/startservice.cfg","r")
+				link = str(file.readline().strip())
+				MAIN_PAGE = "http://mobile.verkehrsinformation.de/index.php?region" + link + "search"
+				file.close()
+		else:
+				MAIN_PAGE = "http://mobile.verkehrsinformation.de/index.php?region=2&tmp=search"
+		self.StartPage()
+
+	def Fav1(self):
+		global MAIN_PAGE, city, link
+		if fileExists("/usr/lib/enigma2/python/Plugins/Extensions/StreetInfo/fav1.cfg"):
+				file = open("/usr/lib/enigma2/python/Plugins/Extensions/StreetInfo/fav1.cfg","r")
+				link = str(file.readline().strip())
+				MAIN_PAGE = "http://mobile.verkehrsinformation.de/index.php?region" + link + "search"
+				file.close()
+		else:
+				MAIN_PAGE = "http://mobile.verkehrsinformation.de/index.php?region=2&tmp=search"
+		self.StartPage()
+
+	def Fav2(self):
+		global MAIN_PAGE, city, link
+		if fileExists("/usr/lib/enigma2/python/Plugins/Extensions/StreetInfo/fav2.cfg"):
+				file = open("/usr/lib/enigma2/python/Plugins/Extensions/StreetInfo/fav2.cfg","r")
+				link = str(file.readline().strip())
+				MAIN_PAGE = "http://mobile.verkehrsinformation.de/index.php?region" + link + "search"
+				file.close()
+		else:
+				MAIN_PAGE = "http://mobile.verkehrsinformation.de/index.php?region=2&tmp=search"
+		self.StartPage()
+
+#------------------------------------------------------------------------------------------
+	def Cam(self):
+		panelmenu = ""
+		self.session.open(CamPanel,panelmenu)
+
+#------------------------------------------------------------------------------------------
+
+	def OK(self):
+		panelmenu = ""
+		self.session.openWithCallback(self.MenuCallback, CityPanel,panelmenu)
+
+	def info(self):
+		message = "%s" % (_("\nInfo     =  diese Infodatei\n\nRot     =  Staukarte grafisch\n\nGruen  =  Staukameras aus verschi. Ländern\n\nGelb    =  springe zu Favorit\n\nBlau    =  springe zu Home-Favorit\n\nMenu  =  Landkarte\n\n\n                        @ AAF-Bauernbub"))
+		self.session.open( MessageBox, message, MessageBox.TYPE_INFO)
+
+	def settings_menu(self):
+		self.session.open(StreetConfigScreen)
+
+	def MenuCallback(self):
+		self.StartPage()
+
+#------------------------------------------------------------------------------------------
+	def loadPicture(self,url=""):
+		devicepath = "/tmp/brd_solo.jpg"
+		path = "/tmp"
+		h = urllib.urlretrieve(url, devicepath)
+		filelist = devicepath
+		self.session.open(PicView, filelist, 0, path, False)
+
+#------------------------------------------------------------------------------------------
+	def left(self):
+		if not self.working:
+			self["textlist"].firstPage()
+
+	def right(self):
+		if not self.working:
+			self["textlist"].lastPage()
+
+	def up(self):
+		if not self.working:
+				self["textlist"].pageUp()
+
+	def down(self):
+		if not self.working:
+				self["textlist"].pageDown()
+				
+	def red(self):
+		if not self.working:
+			self.url="http://www.verkehrsinfo.de/google/maps/brd_solo.jpg"
+			self.loadPicture(self.url)
+
+	def Menu(self):
+		if not self.working:
+			land = str(self.land[0].lstrip())
+			land = transHTML(land)
+
+			#if land == "Baden-Württemberg":
+			#	land = "Baden-Wuerttemberg"
+			#if land == "Thüringen":
+			#	land = "Thueringen"
+			devicepath = "/usr/lib/enigma2/python/Plugins/Extensions/StreetInfo/Lander/" + land + ".jpg"
+			path = "/tmp"
+			filelist = devicepath
+			print "[StreetInfo] ", filelist
+			self.session.open(PicView, filelist, 0, path, False)
+# ----------------------------------------------------------------------
+	def getStauPage(self,html):
+		# ---------- Verkehrsdaten -----------
+		# <font face="arial" size="2" color="black"><b><a href="/index.php?region=13&tmp=search">Sachsen-Anhalt</a>
+		print "suche ....."
+
+		fulltext = re.compile(r'Staumeldungen.+? (.+?)&nbsp', re.DOTALL)
+		self.land = fulltext.findall(html)
+		print "land:" ,self.land[0].lstrip()
+		
+		fulltext = re.compile(r'<font face="arial" size="2" color="black">(.+?)</td>', re.DOTALL)
+		info = fulltext.findall(html)
+
+		wert = len(info)
+		x = 2
+		textall = ""
+		while x < wert:
+				textz = str(sub('<br><br> ',"\n\n",info[x]))
+				textz = str(sub('<[^>]*>',"",textz))
+				textz = str(sub('                                 ',"",textz))
+
+				#print "[StreetInfo] ", textz
+				#print "--------------------------------------------"
+				textall = textall + textz + "\n--------------------------------------------------------------------------------------------------------------------------------------------\n"
+				x = x +1
+
+		self["Titel2"].text = _("                                   ")
+		textall = transHTML(textall)
+		self["Titel"].text = _("Stauinfo für " + self.land[0].lstrip())
+		self["textlist"].setText(textall)
+		self.working = False
+		self.deactivateCacheDialog()
+		self["textlist"].show
+
+#------------------------------------------------------------------------------------------
+	def konvert_uml(self,Satz):
+		ffile = open("/tmp/foreca.tmp", "w")
+		ffile.write(str(Satz))
+		ffile.close()
+		os.system("/usr/lib/enigma2/python/Plugins/Extensions/Foreca/filter.sh")
+		ffile = open("/tmp/foreca.tmp", "r" )
+		for line in ffile:
+			Satz = line.lstrip()
+		ffile.close
+		return Satz
+
+# -------------------------------------------------------------------
+class CityPanelList(MenuList):
+	def __init__(self, list, font0 = 22, font1 = 16, itemHeight = 30, enableWrapAround = True):
+		MenuList.__init__(self, [], False, eListboxPythonMultiContent)
+		self.l.setFont(0, gFont("Regular", font0))
+		self.l.setFont(1, gFont("Regular", font1))
+		self.l.setItemHeight(itemHeight)
+
+# -------------------------------------------------------------------
+class CityPanel(Screen, HelpableScreen):
+	global city, link
+	def __init__(self, session, panelmenu):
+		self.session = session
+		self.skin = """
+			<screen name="SenderPanel" position="center,center" size="430,540" title="Auswahl Stauinfo" backgroundColor="#252525">
+				<widget name="Mlist" position="10,10" size="400,490" zPosition="2" foregroundColor="#ffffff" backgroundColor="#252525"  backgroundColorSelected="#565656" scrollbarMode="showOnDemand" />
+				<eLabel position="0,515" zPosition="2" size="430,1" backgroundColor="#c1cdc1" />
+				<widget source="key_green" render="Label" position="100,512" zPosition="2" size="150,30" font="Regular;20" valign="center" halign="left" transparent="1" />
+				<widget source="key_blue" render="Label" position="300,512" zPosition="2" size="250,30" font="Regular;20" valign="center" halign="left" transparent="1" />
+				<ePixmap position="50,515" size="36,25" pixmap="skin_default/buttons/key_green.png" transparent="1" alphatest="on" />
+				<ePixmap position="250,515" size="36,25" pixmap="skin_default/buttons/key_blue.png" transparent="1" alphatest="on" />
+			</screen>"""
+
+		Screen.__init__(self, session)
+		self.Mlist = []
+		self.getStreetPage()
+
+		self.onChangedEntry = []
+		self["Mlist"] = CityPanelList([])
+		self["key_green"] = StaticText()
+		self["key_blue"] = StaticText()
+		self["key_green"].text = _("Fav1")
+		self["key_blue"].text = _("Start")
+
+		HelpableScreen.__init__(self)
+		self["actions"] = HelpableActionMap(self, "AAFKeyActions",
+			{
+				"cancel": (self.Exit, "Beenden"),
+				"left": (self.left, "Seite hoch"),
+				"right": (self.right, "Seite runter"),
+				"up": (self.up, "Hoch"),
+				"down": (self.down, "Runter"),
+				"ok": (self.ok, "OK"),
+				"green": (self.green, "Grun"),
+				"blue": (self.blue, "Blau"),
+			}, -2)
+
+	def up(self):
+		self["Mlist"].up()
+		self["Mlist"].selectionEnabled(1)
+
+	def down(self):
+		self["Mlist"].down()
+		self["Mlist"].selectionEnabled(1)
+
+	def left(self):
+		self["Mlist"].pageUp()
+
+	def right(self):
+		self["Mlist"].pageDown()
+
+	def Exit(self):
+		self.close()
+
+	def ok(self):
+		global city, link
+		city = self['Mlist'].l.getCurrentSelection()[0][0]
+		link = self['Mlist'].l.getCurrentSelection()[0][1]
+		print "[StreetInfo] Select: ", city
+		self.close()
+
+	def blue(self):
+		link = self['Mlist'].l.getCurrentSelection()[0][1]
+		##print "[StreetInfo] Service:", link
+		fwrite = open("/usr/lib/enigma2/python/Plugins/Extensions/StreetInfo/startservice.cfg", "w")
+		fwrite.write(link)
+		fwrite.close()
+		message = "%s %s" % (_("Dieses Bundesland wurde als Startservice gesetzt!\n\n                       "), self['Mlist'].l.getCurrentSelection()[0][0])
+		self.session.open( MessageBox, message, MessageBox.TYPE_INFO, timeout=3)
+
+	def green(self):
+		link = self['Mlist'].l.getCurrentSelection()[0][1]
+		fwrite = open("/usr/lib/enigma2/python/Plugins/Extensions/StreetInfo/fav1.cfg", "w")
+		fwrite.write(link)
+		fwrite.close()
+		message = "%s %s" % (_("Dieses Bundesland wurde als Favorit 1 gesetzt!\n\n                       "), self['Mlist'].l.getCurrentSelection()[0][0])
+		self.session.open( MessageBox, message, MessageBox.TYPE_INFO, timeout=3)
+
+	def yellow(self):
+		link = self['Mlist'].l.getCurrentSelection()[0][1]
+		fwrite = open("/usr/lib/enigma2/python/Plugins/Extensions/StreetInfo/fav2.cfg", "w")
+		fwrite.write(link)
+		fwrite.close()
+		message = "%s %s" % (_("Dieses Bundesland wurde als Favorit 2 gesetzt!\n\n                       "), self['Mlist'].l.getCurrentSelection()[0][0])
+		self.session.open( MessageBox, message, MessageBox.TYPE_INFO, timeout=3)
+
+	def CityEntryItem(self,entry):
+		rot = 16711680
+		gruen = 60928
+		dgruen = 52480
+		drot = 0xf47d19
+		mblau = 8900346
+		hblau = 11592447
+		dblau = 5215437
+		weiss = 0xffffff
+		orange = 0xf47d19
+		grau = 0x565656
+
+		res = [entry]
+		#	return (eListboxPythonMultiContent.TYPE_TEXT, pos[0], pos[1], size[0], size[1], font, flags, text, color, color_sel, backcolor, backcolor_sel, border_width, border_color)
+		#res.append(MultiContentEntryPixmapAlphaTest(pos=(2, 5), size=(100, 60), png=entry[0]))  # png vorn
+		res.append(MultiContentEntryText(pos=(30, 6), size=(300, 35), font=0, text=entry[0], color=mblau, color_sel=mblau, backcolor_sel=grau))
+		return res
+
+# --------------------------------------------------------------------------
+	def getStreetLand(self,html):
+		# ---------- Verkehrsdaten -----------
+		# <font face="arial" size="2" color="black"><b><a href="/index.php?region=13&tmp=search">Sachsen-Anhalt</a>
+		print "suche ....."
+
+		fulltext = re.compile(r'<a href=.+?region(.+?)search', re.DOTALL)
+		link_land = fulltext.findall(html)
+		fulltext = re.compile(r'sear.+?>(.+?)<', re.DOTALL)
+		b_land = fulltext.findall(html)
+		#print b_land
+		wert = len(b_land) -1
+		x = 0
+		while x < wert:
+				#print b_land[x]
+				#print link_land[x]
+				#print "--------------------------------------------"
+				self.Mlist.append(self.CityEntryItem((_(b_land[x]), link_land[x])))
+				x = x +1
+
+		self["Mlist"].l.setList(self.Mlist)
+		self["Mlist"].selectionEnabled(1)
+		self["Mlist"].show
+
+# --------------------------------------------------------------------------
+
+	def getStreetPage(self, page=None):
+		print "[StreetInfo] getPage:"
+		self.working = True
+		MAIN_PAGE = "http://mobile.verkehrsinformation.de/index.php"
+		print "[StreetInfo] Url:" , MAIN_PAGE
+		getPage(MAIN_PAGE).addCallback(self.getStreetLand).addErrback(self.error)
+		
+	def error(self, err=""):
+		print "[StreetInfo] Error:", err
+		self.working = False
+		self.deactivateCacheDialog()
+
+	def deactivateCacheDialog(self):
+		self.cacheDialog.stop()
+		self.working = False
+
+
+# -------------------------------------------------------------------
+class CamPanel(Screen, HelpableScreen):
+	global camtext, camlink
+	def __init__(self, session, panelmenu):
+		self.session = session
+		self.skin = """
+			<screen name="SenderPanel" position="center,center" size="670,440" title="Auswahl Webcam" backgroundColor="#252525">
+				<widget name="Mlist" position="10,10" size="650,423" zPosition="2" foregroundColor="#ffffff" backgroundColor="#252525"  backgroundColorSelected="#565656" scrollbarMode="showOnDemand" />
+			</screen>"""
+
+		Screen.__init__(self, session)
+		self.Mlist = []
+
+		if fileExists("/usr/lib/enigma2/python/Plugins/Extensions/StreetInfo/cam.cfg"):
+			file = open("/usr/lib/enigma2/python/Plugins/Extensions/StreetInfo/cam.cfg", "r")
+			for line in file:
+				if len(line) >= 10:
+						camtext = line.split(",")[0]
+						camlink = line.split(",")[1]
+						self.Mlist.append(self.CamEntryItem((_(camtext), camlink)))
+			file.close
+
+		self.onChangedEntry = []
+		self["Mlist"] = CityPanelList([])
+		self["Mlist"].l.setList(self.Mlist)
+		self["Mlist"].selectionEnabled(1)
+
+
+		HelpableScreen.__init__(self)
+		self["actions"] = HelpableActionMap(self, "AAFKeyActions",
+			{
+				"cancel": (self.Exit, "Beenden"),
+				"left": (self.left, "Seite hoch"),
+				"right": (self.right, "Seite runter"),
+				"up": (self.up, "Hoch"),
+				"down": (self.down, "Runter"),
+				"ok": (self.ok, "OK"),
+			}, -2)
+
+	def up(self):
+		self["Mlist"].up()
+		self["Mlist"].selectionEnabled(1)
+
+	def down(self):
+		self["Mlist"].down()
+		self["Mlist"].selectionEnabled(1)
+
+	def left(self):
+		self["Mlist"].pageUp()
+
+	def right(self):
+		self["Mlist"].pageDown()
+
+	def Exit(self):
+		self.close()
+
+	def ok(self):
+		global camtext, camlink
+		camtext = self['Mlist'].l.getCurrentSelection()[0][0]
+		camlink = self['Mlist'].l.getCurrentSelection()[0][1]
+		print "[StreetInfo] Select: ", camlink
+
+		self.url= camlink
+		self.loadCam(self.url)
+		#self.close()
+
+	def loadCam(self,url=""):
+		devicepath = "/tmp/brd_solo.jpg"
+		path = "/tmp"
+
+		# send Cookie-Information to svz and you become rights
+		data = "svz_bw_tpl: svz_bw;6e09bde33fae46dde0bb68bfc4ecaf63:medgr1mavnfd2hsj7vfrejut82m38ghv;JASLIDESHOWPLAY:1"
+		cookiehead = {
+						"Keep-Alive":"800",
+						"Referer":"http://www.svz-bw.de",
+						"Cookie:": data,
+						"Connection":"keep-alive"
+						}
+
+		agt = "Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.0.2) Gecko/2008091620 Firefox/3.0.2"
+		downloadPage(url,devicepath,headers=cookiehead,agent=agt).addCallback(self.onLastFinished).addErrback(self.onLoadFailed)
+
+  	#h = urllib.urlretrieve(url, devicepath)
+		#filelist = devicepath
+		#self.session.open(PicView, filelist, 0, path, False)
+
+	def onLastFinished(self,url=None):
+		devicepath = "/tmp/brd_solo.jpg"
+		path = "/tmp"
+		filelist = devicepath
+		self.session.open(PicView, filelist, 0, path, False)
+
+	def onLoadFailed(self,error):
+		print "[BoardViewer] ReadBoard:onLoadFAILED",error
+
+	def CamEntryItem(self,entry):
+		rot = 16711680
+		gruen = 60928
+		dgruen = 52480
+		drot = 0xf47d19
+		mblau = 8900346
+		hblau = 11592447
+		dblau = 5215437
+		weiss = 0xffffff
+		orange = 0xf47d19
+		grau = 0x565656
+
+		res = [entry]
+		#	return (eListboxPythonMultiContent.TYPE_TEXT, pos[0], pos[1], size[0], size[1], font, flags, text, color, color_sel, backcolor, backcolor_sel, border_width, border_color)
+		#res.append(MultiContentEntryPixmapAlphaTest(pos=(2, 5), size=(100, 60), png=entry[0]))  # png vorn
+		res.append(MultiContentEntryText(pos=(30, 6), size=(620, 35), font=0, text=entry[0], color=mblau, color_sel=mblau, backcolor_sel=grau))
+		return res
+
+#------------------------------------------------------------------------------------------
+#-------------------------- Bildbetrachter der Grossbilder --------------------------------
+#------------------------------------------------------------------------------------------
+class PicView(Screen):
+	def __init__(self, session, filelist, index, path, startslide):
+		self.session = session
+		self.bgcolor = "#00000000"
+		space = 5
+		size_w = getDesktop(0).size().width()
+		size_h = getDesktop(0).size().height()
+
+		self.skindir = "/tmp"
+		self.skin = "<screen position=\"0,0\" size=\"" + str(size_w) + "," + str(size_h) + "\" > \
+			<eLabel position=\"0,0\" zPosition=\"0\" size=\""+ str(size_w) + "," + str(size_h) + "\" backgroundColor=\""+ self.bgcolor +"\" /><widget name=\"pic\" position=\"" + str(space) + "," + str(space) + "\" size=\"" + str(size_w-(space*2)) + "," + str(size_h-(space*2)) + "\" zPosition=\"1\" alphatest=\"on\" /></screen>"
+
+		Screen.__init__(self, session)
+		self["actions"] = ActionMap(["OkCancelActions", "ColorActions", "DirectionActions", "MovieSelectionActions", "MenuActions", "SetupActions"],
+		{
+			"cancel": self.Exit,
+		}, -1)
+
+		self["pic"] = Pixmap()
+		self.filelist = filelist
+		self.old_index = 0
+		self.lastindex = index
+		self.currPic = []
+		self.shownow = True
+		self.dirlistcount = 0
+		self.index = 0
+		self.picload = ePicLoad()
+		self.picload.PictureData.get().append(self.finish_decode)
+		self.onLayoutFinish.append(self.setPicloadConf)
+		self.startslide = startslide
+
+	def setPicloadConf(self):
+		sc = getScale()
+		self.picload.setPara([self["pic"].instance.size().width(), self["pic"].instance.size().height(), sc[0], sc[1], 0, 1, self.bgcolor])
+		self.start_decode()
+
+	def ShowPicture(self):
+		if self.shownow and len(self.currPic):
+			self.shownow = False
+			self["pic"].instance.setPixmap(self.currPic[0].__deref__())
+
+	def finish_decode(self, picInfo=""):
+		ptr = self.picload.getData()
+		if ptr != None:
+			self.currPic = []
+			self.currPic.append(ptr)
+			self.ShowPicture()
+
+	def start_decode(self):
+		self.picload.startDecode(self.filelist)
+
+	def Exit(self):
+		del self.picload
+		self.close(self.lastindex + self.dirlistcount)
+
+
+#------------------------------------------------------------------------------------------
+#-----------------------Haupt Programm ----------------------------------------------------
+#------------------------------------------------------------------------------------------
+def start(session, **kwargs):
+	session.open(Streetview)
+
+def Plugins(**kwargs):
+	return PluginDescriptor(name="StreetInfo", description="Stauwarnungen", where=[PluginDescriptor.WHERE_EXTENSIONSMENU, PluginDescriptor.WHERE_PLUGINMENU], fnc=start)
Index: /ipk/source/infos_streetinfo/var/usr/lib/enigma2/python/Plugins/Extensions/StreetInfo/startservice.cfg
===================================================================
--- /ipk/source/infos_streetinfo/var/usr/lib/enigma2/python/Plugins/Extensions/StreetInfo/startservice.cfg	(revision 7293)
+++ /ipk/source/infos_streetinfo/var/usr/lib/enigma2/python/Plugins/Extensions/StreetInfo/startservice.cfg	(revision 7293)
@@ -0,0 +1,1 @@
+=2&tmp=
