Index: /ipk/source/infos_foreca/CONTROL/control
===================================================================
--- /ipk/source/infos_foreca/CONTROL/control	(revision 7144)
+++ /ipk/source/infos_foreca/CONTROL/control	(revision 7144)
@@ -0,0 +1,10 @@
+Package: enigma2-plugin-infos-foreca
+Version: 1.0
+Architecture: sh4
+OE: Weatherinfos 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_foreca/CONTROL/postinst
===================================================================
--- /ipk/source/infos_foreca/CONTROL/postinst	(revision 7144)
+++ /ipk/source/infos_foreca/CONTROL/postinst	(revision 7144)
@@ -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_foreca/CONTROL/postrm
===================================================================
--- /ipk/source/infos_foreca/CONTROL/postrm	(revision 7144)
+++ /ipk/source/infos_foreca/CONTROL/postrm	(revision 7144)
@@ -0,0 +1,14 @@
+#!/bin/sh
+TMP=/tmp/.infos
+PLUGINDIR=/usr/lib/enigma2/python/Plugins/Extensions/foreca
+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_foreca/CONTROL/preinst
===================================================================
--- /ipk/source/infos_foreca/CONTROL/preinst	(revision 7144)
+++ /ipk/source/infos_foreca/CONTROL/preinst	(revision 7144)
@@ -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 Foreca 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_foreca/CONTROL/prerm
===================================================================
--- /ipk/source/infos_foreca/CONTROL/prerm	(revision 7144)
+++ /ipk/source/infos_foreca/CONTROL/prerm	(revision 7144)
@@ -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 Foreca Plugin"
+exit 0
Index: /ipk/source/infos_foreca/usr/lib/enigma2/python/Plugins/Extensions/Foreca/City.cfg
===================================================================
--- /ipk/source/infos_foreca/usr/lib/enigma2/python/Plugins/Extensions/Foreca/City.cfg	(revision 7144)
+++ /ipk/source/infos_foreca/usr/lib/enigma2/python/Plugins/Extensions/Foreca/City.cfg	(revision 7144)
@@ -0,0 +1,173 @@
+Austria/Amstetten
+Austria/Anif
+Austria/Badgastein
+Austria/Bad_Goisern
+Austria/Bregenz
+Austria/Dornbirn
+Austria/Eisenerz
+Austria/Eisenstadt
+Austria/Ebenseee
+Austria/Enns
+Austria/Feldkirch
+Austria/Fugen
+Austria/Graz
+Austria/Gmunden
+Austria/Hallein
+Austria/Hallstadt
+Austria/Haag
+Austria/Innsbruck
+Austria/Ischgl
+Austria/Klagenfurt
+Austria/Kufstein
+Austria/Kaprun
+Austria/Kitzbuhel
+Austria/Linz
+Austria/Liezen
+Austria/Lienz
+Austria/Laarkirchen
+Austria/Melk
+Austria/Mondsee
+Austria/Mittersill
+Austria/Neusiedl_am_See
+Austria/Radstadt
+Austria/Saalbach
+Austria/Salzburg
+Austria/Steyr
+Austria/Semmering
+Austria/Tulln
+Austria/Traun
+Austria/Tamsweg
+Austria/Wels
+Austria/Wien
+Austria/Zell_am_See
+--------------------------------------------------------------------
+Germany/Kreisfreie_Stadt_Aachen
+Germany/Baden-Baden
+Germany/Bad_Kissingen
+Germany/Bad_Tolz
+Germany/Bad_Schandau
+Germany/Bad_Schwartau
+Germany/Barweiler
+Germany/Berchtesgaden
+Germany/Berlin
+Germany/Bielefeld
+Germany/Bochum
+Germany/Bobingen
+Germany/Bochum
+Germany/Bonn
+Germany/Brandenburg
+Germany/Braunschweig
+Germany/Bremen
+Germany/Chiemsee
+Germany/Claussnitz
+Germany/Cuxhaven
+Germany/Dresden
+Germany/Dortmnd
+Germany/Dusseldorf
+Germany/Erfurt
+Germany/Erlangen
+Germany/Erlau
+Germany/Essen
+Germany/Frankfurt_am_Main
+Germany/Flensburg
+Germany/Furstenzell
+Germany/Gablenz
+Germany/Garmisch-Partenkirchen
+Germany/Gelsenkirchen-Alt
+Germany/Hamburg
+Germany/Hannover
+Germany/Heilsbronn
+Germany/Kiel
+Germany/Koeln
+Germany/Krefeld
+Germany/Magdeburg
+Germany/Mainz
+Germany/Munich
+Germany/Nurnberg
+Germany/Saarbrucken
+Germany/Schwerin
+Germany/Spessart
+Germany/Spielberg
+Germany/Stuttgart
+Germany/Potsdam
+Germany/Wiesbaden
+--------------------------------------------------------------------
+Italy/Bozen
+Italy/Capri
+Italy/Grado
+Italy/Jesolo
+Italy/Merano
+Italy/Montecarlo
+Italy/Madone
+Italy/Melito_di_Napoli
+Italy/Milan
+Italy/Montefino
+Italy/Palermo
+Italy/Pisa
+Italy/Udine
+Italy/Venice
+--------------------------------------------------------------------
+France/Paris
+France/Nice
+France/Marseille
+France/La_Ravoire
+--------------------------------------------------------------------
+Switzerland/Zurich
+Switzerland/Bern
+Switzerland/Lausanne
+Switzerland/Geneva
+--------------------------------------------------------------------
+Liechtenstein/Vaduz
+Liechtenstein/Mauren
+Liechtenstein/Triesen
+--------------------------------------------------------------------
+Czech_Republic/Praha
+Czech_Republic/Ceske_Budejovice
+--------------------------------------------------------------------
+Spain/Barcelona
+Spain/Madrid
+Spain/Las_Palmas
+--------------------------------------------------------------------
+Turkey/Istanbul
+Turkey/Ankara
+Turkey/Izmir
+Turkey/Alanya
+--------------------------------------------------------------------
+Sweden/Stockholm
+Sweden/Goteborg
+Sweden/Borlange
+Sweden/Umea
+--------------------------------------------------------------------
+Finland/Helsinki
+Finland/Tampere
+--------------------------------------------------------------------
+Norway/Oslo
+Norway/Bergen
+--------------------------------------------------------------------
+Luxembourg/Luxembourg
+Luxembourg/Belvaux
+--------------------------------------------------------------------
+United_Kingdom/London
+United_Kingdom/Manchester
+United_Kingdom/Glasgow
+--------------------------------------------------------------------
+Eire/Dublin
+Eire/Cork
+--------------------------------------------------------------------
+Iceland/Reykjavik
+--------------------------------------------------------------------
+Greece/Athina
+Greece/Iraklio
+--------------------------------------------------------------------
+Alaska/Crooked_Creek
+Bahamas/Nassau
+Florida/Miami_Beach
+Greenland/Kap_Hope
+Jamaica/Santa_Cruz
+Mexico/Frontera
+New_York/New_York_City
+--------------------------------------------------------------------
+Russia/Moskva
+Russia/Saint_Petersburg
+Russia/Vladivostok
+Russia/Murmansk
Index: /ipk/source/infos_foreca/usr/lib/enigma2/python/Plugins/Extensions/Foreca/filter.sh
===================================================================
--- /ipk/source/infos_foreca/usr/lib/enigma2/python/Plugins/Extensions/Foreca/filter.sh	(revision 7144)
+++ /ipk/source/infos_foreca/usr/lib/enigma2/python/Plugins/Extensions/Foreca/filter.sh	(revision 7144)
@@ -0,0 +1,2 @@
+#!/bin/sh
+sed -e 's/\\xc3\\x9f/ß/g' -e 's/\\xc3\\x9c/Ü/g' -e 's/\\xc3\\xbc/ü/g' -e 's/\\xc3\\x96/Ö/g' -e 's/\\xc3\\xa4/ä/g' -e 's/\\xc3\\xe9/e/g' -e 's/\\xc3\\xb6/ö/g' -e 's/\\xc3\\x96//g' -e 's/\\xc3\\xa0/a/g' -e 's/\\n/ /g' -e 's/\\t//g' -e 's/\\r//g' -e 's/\\//g' -i /tmp/foreca.tmp
Index: /ipk/source/infos_foreca/usr/lib/enigma2/python/Plugins/Extensions/Foreca/keymap.xml
===================================================================
--- /ipk/source/infos_foreca/usr/lib/enigma2/python/Plugins/Extensions/Foreca/keymap.xml	(revision 7144)
+++ /ipk/source/infos_foreca/usr/lib/enigma2/python/Plugins/Extensions/Foreca/keymap.xml	(revision 7144)
@@ -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_foreca/usr/lib/enigma2/python/Plugins/Extensions/Foreca/plugin.py
===================================================================
--- /ipk/source/infos_foreca/usr/lib/enigma2/python/Plugins/Extensions/Foreca/plugin.py	(revision 7144)
+++ /ipk/source/infos_foreca/usr/lib/enigma2/python/Plugins/Extensions/Foreca/plugin.py	(revision 7144)
@@ -0,0 +1,832 @@
+# -*- coding: UTF-8 -*-
+
+#-------------------------------------------------------
+#
+#              Foreca Wetterprognose
+#
+#   Dieses Plugin holt von Foreca die aktuelle
+#   Wetterprognose für die nächsten 10 Tage.
+#
+#
+#   Wir wuenschen allen Benutzern herrliches Wetter!
+#
+#                 Version 1.1
+#
+#                  12.04.2011
+#
+#        Datenquelle: http://www.foreca.de
+#
+#             Designed und Idee von
+#                  @Bauernbub
+#
+#-------------------------------------------------------
+
+from Components.ActionMap import HelpableActionMap
+from Components.ActionMap import ActionMap, NumberActionMap
+from Components.AVSwitch import AVSwitch
+from Components.Label import Label
+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 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 *
+
+
+###################################################
+
+MAIN_PAGE = "http://www.foreca.at"
+PNG_PATH = resolveFilename(SCOPE_PLUGINS)+"/Extensions/Foreca/picon/"
+deviceName = HardwareInfo().get_device_name()
+
+global MAIN_PAGE
+
+#---------------------- Skin Funktionen ---------------------------------------------------
+def getAspect():
+	val = AVSwitch().getAspectRatioSetting()
+	return val/2
+
+def getScale():
+	return AVSwitch().getFramebufferScale()
+
+#------------------------------------------------------------------------------------------
+#----------------------------------  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 "[Foreca] MainMenuList"
+
+#--------------------------- Alle Listeneintraege durchlaufen -----------------------------
+	def buildEntries(self):
+			##print "[Foreca] buildEntries:", len(self.list)
+			if self.idx == len(self.list):
+				self.setList(self.listCompleted)
+				if self.callback:
+					self.callback()
+			else:
+				self.downloadThumbnail()
+
+	def downloadThumbnail(self):
+		thumbUrl = self.list[self.idx][0]
+		windlink = self.list[self.idx][3]
+		self.thumb = "/var/usr/lib/enigma2/python/Plugins/Extensions/Foreca/thumb/" + str(thumbUrl+ ".png")
+		self.wind = "/var/usr/lib/enigma2/python/Plugins/Extensions/Foreca/thumb/" + str(windlink)
+		self.buildEntry(None)
+
+#----------------------------------- Eintrasege fuer Liste bilden ------------------------------------------------
+	def buildEntry(self, picInfo=None):
+		self.x = self.list[self.idx]
+		#	list.append([thumbnails[x], zeit[x], temp[x], windlink[x], wind[x], Satz1, Satz2, Satz3])
+		self.res = [(self.x[0], self.x[1])]
+
+		pngpic = LoadPixmap(self.thumb)
+		if pngpic is not None:
+				#self.res.append((eListboxPythonMultiContent.TYPE_PIXMAP_ALPHATEST, 100, 5, 80, 80, png))
+				self.res.append(MultiContentEntryPixmapAlphaTest(pos=(100, 5), size=(80, 80), png=pngpic))
+
+		rot = 16711680
+		gruen = 60928
+		dgruen = 52480
+		hlila = 0xffbbff
+		hlila2 = 0xee30a7
+		drot = 0xff3030
+		hrot = 0xff3030
+		orange =0xf47d19
+		gelb =0xffff00
+		mblau = 0x87cefa
+		hblau = 0x00c5cd
+		dblau = 0x009acd
+		ddblau = 0x00688b
+		weiss = 0xffffff
+		hweiss =0xf7f7f7
+		grau = 0x565656
+		schwarz = 0x000000
+
+		self.temptext = "Temp"
+		self.tempcolor = hlila
+		if int(self.x[2]) >= 1:
+				self.tempcolor = hlila
+		if int(self.x[2]) >= 5:
+				self.tempcolor = hlila2
+		if int(self.x[2]) >= 10:
+				self.tempcolor = drot
+		if int(self.x[2]) >= 15:
+				self.tempcolor = hrot
+		if int(self.x[2]) >= 20:
+				self.tempcolor = orange
+		if int(self.x[2]) >= 25:
+				self.tempcolor = gelb
+		if int(self.x[2]) <= 0:
+				self.tempcolor = mblau
+		if int(self.x[2]) <= -4:
+				self.tempcolor = dblau
+		if int(self.x[2]) <= -8:
+				self.tempcolor = ddblau
+
+#			self.Mlist.append(self.SenderEntryItem((self.SenderEntryComponent('orf'), _("ORF"), 'orf')))
+		# Zeit
+		self.res.append(MultiContentEntryText(pos=(10, 26), size=(70, 24), font=0, text=self.x[1], color=schwarz, color_sel=schwarz))
+
+		# Temp
+		self.res.append(MultiContentEntryText(pos=(212, 13), size=(80, 24), font=0, text="Temp", color=schwarz, color_sel=schwarz))
+		self.res.append(MultiContentEntryText(pos=(217, 39), size=(80, 24), font=1, text=self.x[2], color=self.tempcolor, color_sel=self.tempcolor))
+
+		# Wind
+		self.res.append(MultiContentEntryText(pos=(349, 13), size=(125, 24), font=0, text="Wind", color=schwarz, color_sel=schwarz))
+		self.res.append(MultiContentEntryText(pos=(335, 39), size=(125, 24), font=1, text=self.x[4], color=orange, color_sel=orange))
+
+		# Text
+		self.res.append(MultiContentEntryText(pos=(470, 5), size=(385, 24), font=1, text=self.x[5], color=ddblau, color_sel=ddblau))
+		self.res.append(MultiContentEntryText(pos=(470, 31), size=(380, 24), font=0, text=self.x[6], color=dblau, color_sel=dblau))
+		self.res.append(MultiContentEntryText(pos=(470, 55), size=(380, 24), font=0, text=self.x[7], color=ddblau, color_sel=ddblau))
+
+		pngpic = LoadPixmap(self.wind + ".png")
+		if pngpic is not None:
+				self.res.append(MultiContentEntryPixmapAlphaTest(pos=(298, 26), size=(27, 28), png=pngpic))
+
+		self.listCompleted.append(self.res)
+		self.idx += 1
+		self.buildEntries()
+
+# -------------------------- Menue Liste aufbauen -----------------------------------------
+	def SetList(self, l):
+		##print "[Foreca] SetList"
+		self.list = l
+		self.l.setItemHeight(90)
+		del self.listCompleted
+		self.listCompleted = []
+		self.idx = 0
+		self.buildEntries()
+
+#------------------------------------------------------------------------------------------
+#------------------------------------------ Spinner ---------------------------------------
+#------------------------------------------------------------------------------------------
+
+class ForecaPreviewCache(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)
+
+#------------------------------------------------------------------------------------------
+#------------------------------ Foreca Programmvorschau---------------------------------------
+#------------------------------------------------------------------------------------------
+class ForecaPreview(Screen, HelpableScreen):
+	def __init__(self, session):
+		global MAIN_PAGE
+		self.session = session
+		MAIN_PAGE = "http://www.foreca.at"
+
+		# aktuelle, lokale Zeit als Tulpel
+		lt = localtime()
+		# Entpacken des Tupels, Datum
+		jahr, monat, tag = lt[0:3]
+		heute ="%04i%02i%02i" % (jahr,monat,tag)
+		self.tag = 0
+
+		# Startort einlesen
+		global city
+		if fileExists("/usr/lib/enigma2/python/Plugins/Extensions/Foreca/startservice.cfg"):
+				file = open("/usr/lib/enigma2/python/Plugins/Extensions/Foreca/startservice.cfg","r")
+				self.ort = str(file.readline().strip())
+				file.close()
+		else:
+				self.ort ="Germany/Munich"
+		
+		MAIN_PAGE = "http://www.foreca.at/" + self.ort + "?details=" + heute
+
+		desktop = getDesktop(0)
+		size = desktop.size()
+		width = size.width()
+		##print "Desktop ", size, width
+		if width == 1024:
+			self.skin = """<screen position="center,65" size="880,480" title="Foreca Wetterprognose V 1.1" backgroundColor="#b0b0b0" >"""
+			self.skin += """<widget name="MainList" position="0,65" size="880,363" zPosition="3" backgroundColor="#b0b0b0" backgroundColorSelected="#f7f7f7" selectionDisabled="1" scrollbarMode="showOnDemand" />
+			<widget source="Titel" render="Label" position="120,3" zPosition="3" size="740,40" font="Regular;36" valign="center" halign="left" transparent="1" foregroundColor="#000000"/>
+			<widget source="Titel2" render="Label" position="280,5" zPosition="2" size="440,40" font="Regular;28" valign="center" halign="left" transparent="1" foregroundColor="#f47d19"/>
+			<eLabel position="5,55" zPosition="2" size="870,1" backgroundColor="#000000" />
+			<widget source="key_red" render="Label" position="70,438" zPosition="2" size="200,40" font="Regular;20" valign="center" halign="left" transparent="1" foregroundColor="#000000" />
+			<widget source="key_green" render="Label" position="260,438" zPosition="2" size="180,40" font="Regular;20" valign="center" halign="left" transparent="1" foregroundColor="#000000"/>
+			<widget source="key_yellow" render="Label" position="450,438" zPosition="2" size="180,40" font="Regular;20" valign="center" halign="left" transparent="1" foregroundColor="#000000"/>
+			<widget source="key_blue" render="Label" position="640,438" zPosition="2" size="180,40" font="Regular;20" valign="center" halign="left" transparent="1" foregroundColor="#000000"/>
+			<widget source="key_ok" render="Label" position="730,438" zPosition="2" size="180,40" font="Regular;20" valign="center" halign="left" transparent="1" foregroundColor="#000000"/>
+			<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="#000000" />
+		</screen>"""
+		else:
+			self.skin = """<screen position="center,center" size="890,505" title="Foreca Wetterprognose" backgroundColor="#b0b0b0" >"""
+			self.skin += """<widget name="MainList" position="0,90" size="890,365" zPosition="3" backgroundColor="#b0b0b0" backgroundColorSelected="#f7f7f7" selectionDisabled="1" scrollbarMode="showOnDemand" />
+			<widget source="Titel" render="Label" position="120,13" zPosition="3" size="740,40" font="Regular;36" valign="center" halign="left" transparent="1" foregroundColor="#000000"/>
+			<widget source="Titel2" render="Label" position="280,15" zPosition="2" size="440,40" font="Regular;28" valign="center" halign="left" transparent="1" foregroundColor="#f47d19"/>
+			<eLabel position="5,70" zPosition="2" size="880,1" backgroundColor="#000000" />
+			<widget source="key_red" render="Label" position="70,463" zPosition="2" size="200,40" font="Regular;20" valign="center" halign="left" transparent="1" foregroundColor="#000000" />
+			<widget source="key_green" render="Label" position="260,463" zPosition="2" size="180,40" font="Regular;20" valign="center" halign="left" transparent="1" foregroundColor="#000000"/>
+			<widget source="key_yellow" render="Label" position="450,463" zPosition="2" size="180,40" font="Regular;20" valign="center" halign="left" transparent="1" foregroundColor="#000000"/>
+			<widget source="key_blue" render="Label" position="640,463" zPosition="2" size="180,40" font="Regular;20" valign="center" halign="left" transparent="1" foregroundColor="#000000"/>
+			<widget source="key_ok" render="Label" position="730,463" zPosition="2" size="180,40" font="Regular;20" valign="center" halign="left" transparent="1" foregroundColor="#000000"/>
+			<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,462" zPosition="2" size="880,2" backgroundColor="#000000" />
+		</screen>"""
+
+		Screen.__init__(self, session)
+		self["navigationTitle"] = Label(" ")
+		self["MainList"] = MainMenuList()
+		self["Titel"] = StaticText()
+		self["Titel2"] = StaticText()
+		self["Titel2"].text = _("Wetterprognose laeuft ...")
+		self["key_green"] = StaticText()
+		self["key_yellow"] = StaticText()
+		self["key_red"] = StaticText()
+		self["key_blue"] = StaticText()
+		self["key_ok"] = StaticText()
+		self["key_red"].text = _("Verlauf")
+		self["key_green"].text = _("Favorit 1")
+		self["key_yellow"].text = _("Favorit 2")
+		self["key_blue"].text = _("Home")
+		self["key_ok"].text = _("(OK) Stadt")
+
+		HelpableScreen.__init__(self)
+		self["actions"] = HelpableActionMap(self, "AAFKeyActions",
+			{
+				"cancel": (self.exit, "Beenden"),
+				"menu": (self.info, "Menu"),
+				"showEventInfo": (self.info, "Info"),
+				"ok": (self.Menu, "Menu"),
+				"left": (self.left, "Seite hoch"),
+				"right": (self.right, "Seite runter"),
+				"up": (self.up, "Hoch"),
+				"down": (self.down, "Runter"),
+				"red": (self.red, "Red"),
+				"green": (self.Fav1, "Green"),
+				"yellow": (self.Fav2, "Yellow"),
+				"blue": (self.Fav0, "Blue"),
+				"0": (self.Tag0, "Tag0"),
+				"1": (self.Tag1, "Tag1"),
+				"2": (self.Tag2, "Tag2"),
+				"3": (self.Tag3, "Tag3"),
+				"4": (self.Tag4, "Tag4"),
+				"5": (self.Tag5, "Tag5"),
+				"6": (self.Tag6, "Tag6"),
+				"7": (self.Tag7, "Tag7"),
+				"8": (self.Tag8, "Tag8"),
+				"9": (self.Tag9, "Tag9"),
+			}, -2)
+
+		self.StartPageFirst()
+
+	def StartPageFirst(self):
+		##print "[Foreca] StartPageFirst:"
+		self.cacheDialog = self.session.instantiateDialog(ForecaPreviewCache)
+		self["MainList"].callback = self.deactivateCacheDialog
+		self.working = False
+		self["MainList"].show
+		self.cacheTimer = eTimer()
+		self.cacheDialog.start()
+		os.system("chmod 755 /usr/lib/enigma2/python/Plugins/Extensions/Foreca/filter.sh")
+		self.onLayoutFinish.append(self.getPage)
+
+	def StartPage(self):
+		self["Titel"].text = _("                                   ")
+		self["Titel2"].text = _("Wetterprognose laeuft ...")
+		self.working = False
+		##print "[Foreca] MainList show:"
+		self["MainList"].show
+		os.system("chmod 755 /usr/lib/enigma2/python/Plugins/Extensions/Foreca/filter.sh")
+		self.getPage()
+
+	def getPage(self, page=None):
+		##print "[Foreca] getPage:"
+		self.working = True
+		if not page:
+			page = ""
+		url = "%s%s"%(MAIN_PAGE, page)
+		##print "[Foreca] Url:" , url
+		getPage(url).addCallback(self.getForecaPage).addErrback(self.error)
+
+	def error(self, err=""):
+		##print "[Foreca] Error:", err
+		self.working = False
+		self.deactivateCacheDialog()
+
+	def deactivateCacheDialog(self):
+		self.cacheDialog.stop()
+		self.working = False
+
+	def exit(self):
+		self.close()
+		self.deactivateCacheDialog()
+
+	def Tag0(self):
+		self.Zukunft(0)
+
+	def Tag1(self):
+		self.Zukunft(1)
+
+	def Tag2(self):
+		self.Zukunft(2)
+
+	def Tag3(self):
+		self.Zukunft(3)
+
+	def Tag4(self):
+		self.Zukunft(4)
+
+	def Tag5(self):
+		self.Zukunft(5)
+
+	def Tag6(self):
+		self.Zukunft(6)
+
+	def Tag7(self):
+		self.Zukunft(7)
+
+	def Tag8(self):
+		self.Zukunft(8)
+
+	def Tag9(self):
+		self.Zukunft(9)
+
+	def Fav0(self):
+		if fileExists("/usr/lib/enigma2/python/Plugins/Extensions/Foreca/startservice.cfg"):
+				file = open("/usr/lib/enigma2/python/Plugins/Extensions/Foreca/startservice.cfg","r")
+				self.ort = str(file.readline().strip())
+				file.close()
+		else:
+				self.ort ="Germany/Munich"
+		self.Zukunft(0)
+
+	def Fav1(self):
+		if fileExists("/usr/lib/enigma2/python/Plugins/Extensions/Foreca/fav1.cfg"):
+				file = open("/usr/lib/enigma2/python/Plugins/Extensions/Foreca/fav1.cfg","r")
+				self.ort = str(file.readline().strip())
+				file.close()
+		else:
+				self.ort ="New_York/New_York_City"
+		self.Zukunft(0)
+
+	def Fav2(self):
+		if fileExists("/usr/lib/enigma2/python/Plugins/Extensions/Foreca/fav2.cfg"):
+				file = open("/usr/lib/enigma2/python/Plugins/Extensions/Foreca/fav2.cfg","r")
+				self.ort = str(file.readline().strip())
+				file.close()
+		else:
+				self.ort ="Russia/Moskva"
+		self.Zukunft(0)
+
+	def Zukunft(self, ztag=0):
+		global MAIN_PAGE
+		# aktuelle, lokale Zeit als Tupel
+		lt = localtime()
+		jahr, monat, tag = lt[0:3]
+
+		# Zukunft berechnen
+		ntag = tag + ztag
+		zukunft = jahr, monat, ntag, 0, 0, 0, 0, 0, 0
+		morgen = mktime(zukunft)
+		lt = localtime(morgen)
+		jahr, monat, tag = lt[0:3]
+		morgen ="%04i%02i%02i" % (jahr,monat,tag)
+
+		MAIN_PAGE = "http://www.foreca.at/" + self.ort + "?details=" + morgen
+		##print "Taglink ", MAIN_PAGE
+		
+		# im Gui anzeigen
+		self.StartPage()
+
+	def Menu(self):
+		global city
+		panelmenu = ""
+		city = self.ort
+		self.session.openWithCallback(self.MenuCallback, CityPanel,panelmenu)
+
+	def info(self):
+		message = "%s" % (_("\n0 - 9     =   Prognose in (x) Tagen\n\n<   >     =   Prognose naechter/vorheriger Tag\n\nMenu     =  diese Infodatei\n\nRot     =  Temperaturverlauf der naechten 5 Tage\n\nGruen  =  springe zu Favorit 1\n\nGelb    =  springe zu Favorit 2\n\nBlau    =  springe zu Home-Favorit\n"))
+		self.session.open( MessageBox, message, MessageBox.TYPE_INFO)
+
+
+	def MenuCallback(self):
+		global city
+		self.ort = city
+		self.Zukunft(0)
+		##print "MenuCallback "
+
+#------------------------------------------------------------------------------------------
+	def loadPicture(self,url=""):
+		##print "here4"
+		devicepath = "/tmp/meteogram.png"
+		path = "/tmp"
+		h = urllib.urlretrieve(url, devicepath)
+		filelist = devicepath
+		self.session.open(PicView, filelist, 0, path, False)
+
+#------------------------------------------------------------------------------------------
+	def left(self):
+		if not self.working and self.tag >= 1:
+				self.tag = self.tag - 1
+				self.Zukunft(self.tag)
+
+	def right(self):
+		if not self.working and self.tag < 9:
+				self.tag = self.tag + 1
+				self.Zukunft(self.tag)
+
+	#def left(self):
+	#	if not self.working:
+	#			self["MainList"].pageUp()
+
+	#def right(self):
+	#	if not self.working:
+	#			self["MainList"].pageDown()
+
+	def up(self):
+		if not self.working:
+				self["MainList"].up()
+
+	def down(self):
+		if not self.working:
+				self["MainList"].down()
+				
+	def red(self):
+		if not self.working:
+			#self.loc_id = current id
+			self.url="http://www.foreca.at/meteogram.php?loc_id=" + self.loc_id + "&lang=de&units=metrickmh/meteogram.png"
+			self.loadPicture(self.url)
+
+# ----------------------------------------------------------------------
+	def getForecaPage(self,html):
+		#new Ajax.Request('/lv?id=102772400', {
+		fulltext = re.compile(r"new Ajax.Request.+?lv.+?id=(.+?)'", re.DOTALL)
+		id = fulltext.findall(html)
+		self.loc_id = str(id[0])
+
+		# <!-- START -->
+		#<h6><span>Dienstag</span> März 29</h6>
+
+		##print "[Foreca] Start:" + str(len(html))
+		fulltext = re.compile(r'<!-- START -->.+?<h6><span>(.+?)</h6>', re.DOTALL)
+		titel = fulltext.findall(html)
+		titel[0] = str(sub('<[^>]*>',"",titel[0]))
+		#print titel[0]
+		#self["Titel"].setText(titel[0])
+
+		# <a href="/Austria/Linz?details=20110330">Mi</a>
+		fulltext = re.compile(r'<!-- START -->(.+?)<h6>', re.DOTALL)
+		link = str(fulltext.findall(html))
+		#print link
+
+		fulltext = re.compile(r'<a href=".+?>(.+?)<.+?', re.DOTALL)
+		tag = str(fulltext.findall(link))
+		#print "Tag ", tag
+
+		# ---------- Wetterdaten -----------
+		# <div class="row clr0">
+		fulltext = re.compile(r'<!-- START -->(.+?)<div class="datecopy">', re.DOTALL)
+		html = str(fulltext.findall(html))
+
+		##print "suche ....."
+		list = []
+
+		fulltext = re.compile(r'<a href="(.+?)".+?', re.DOTALL)
+		taglink = str(fulltext.findall(html))
+		#taglink = konvert_uml(taglink)
+		#print "Taglink ", taglink
+
+		fulltext = re.compile(r'<a href=".+?>(.+?)<.+?', re.DOTALL)
+		tag = fulltext.findall(html)
+		#print "Tag ", str(tag)
+
+		# <div class="c0"> <strong>17:00</strong></div>
+		fulltime = re.compile(r'<div class="c0"> <strong>(.+?)<.+?', re.DOTALL)
+		zeit = fulltime.findall(html)
+		#print "Zeit ", str(zeit)
+
+		#<div class="c4">
+		#<span class="warm"><strong>+15&deg;</strong></span><br />
+		fulltime = re.compile(r'<div class="c4">.*?<strong>(.+?)&.+?', re.DOTALL)
+		temp = fulltime.findall(html)
+		#print "Temp ", str(temp)
+
+		# <div class="symbol_50x50d symbol_d000_50x50" title="Wolkenlos"
+		fulltext = re.compile(r'<div class="symbol_50x50.+? symbol_(.+?)_50x50.+?', re.DOTALL)
+		thumbnails = fulltext.findall(html)
+
+		fulltext = re.compile(r'<div class="c3">.+? (.+?)<br />.+?', re.DOTALL)
+		titel1 = fulltext.findall(html)
+		#print "Titel ", str(titel1)
+
+		fulltext = re.compile(r'<div class="c3">.+?<br />(.+?)</strong>.+?', re.DOTALL)
+		titel2 = fulltext.findall(html)
+		#print "Titel ", str(titel2)
+
+		fulltext = re.compile(r'<div class="c3">.+?</strong><br />(.+?)</.+?', re.DOTALL)
+		titel3 = fulltext.findall(html)
+		#print "Titel ", str(titel3)
+
+		fulltext = re.compile(r'<div class="c2">.+?<img src="/img/symb-wind/(.+?).gif', re.DOTALL)
+		windlink = fulltext.findall(html)
+		#print "Windlink ", str(windlink)
+
+		fulltext = re.compile(r'<div class="c2">.+?<strong>(.+?)<.+?', re.DOTALL)
+		wind = fulltext.findall(html)
+		#print "Wind ", str(wind)
+		#print "--------------------------------------------"
+
+		wert = len(zeit)
+
+		x = 0
+		while x < wert:
+				titel1[x] = str(sub('<[^>]*>',"",titel1[x]))
+				#Satz1 = titel1[x]
+				Satz1 = self.konvert_uml(titel1[x])
+				titel2[x] = str(sub('<[^>]*>',"",titel2[x]))
+				#Satz2 = titel2[x]
+				Satz2 = self.konvert_uml(titel2[x])
+				titel3[x] = str(sub('<[^>]*>',"",titel3[x]))
+				#Satz3 = titel3[x]
+				Satz3 = self.konvert_uml(titel3[x])
+				#print zeit[x]
+				#print tag[x]
+				#print temp[x]
+				#print windlink[x]
+				#print wind[x]
+				#print Satz1
+				#print Satz2
+				#print Satz3
+				#print "--------------------------------------------"
+				list.append([thumbnails[x], zeit[x], temp[x], windlink[x], wind[x], Satz1, Satz2, Satz3])
+				x = x +1
+
+		self["Titel2"].text = _("                                   ")
+		self["Titel"].text = _(self.ort) + "  -  " + titel[0]
+		self["MainList"].SetList(list)
+		self["MainList"].selectionEnabled(1)
+		self["MainList"].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):
+	def __init__(self, session, panelmenu):
+		self.session = session
+		self.skin = """
+			<screen name="SenderPanel" position="center,center" size="430,540" title="Staedte Auswahl" backgroundColor="#252525">
+				<widget name="Mlist" position="10,10" size="400,490" zPosition="3" backgroundColor="#252525"  backgroundColorSelected="#565656" scrollbarMode="showOnDemand" />
+				<eLabel position="0,515" zPosition="2" size="430,1" backgroundColor="#c1cdc1" />
+				<widget source="key_green" render="Label" position="50,512" zPosition="2" size="150,30" font="Regular;20" valign="center" halign="left" transparent="1" />
+				<widget source="key_yellow" render="Label" position="200,512" zPosition="2" size="150,30" font="Regular;20" valign="center" halign="left" transparent="1" />
+				<widget source="key_blue" render="Label" position="350,512" zPosition="2" size="150,30" font="Regular;20" valign="center" halign="left" transparent="1" />
+				<ePixmap position="0,515" size="36,25" pixmap="skin_default/buttons/key_green.png" transparent="1" alphatest="on" />
+				<ePixmap position="150,515" size="36,25" pixmap="skin_default/buttons/key_yellow.png" transparent="1" alphatest="on" />
+				<ePixmap position="300,515" size="36,25" pixmap="skin_default/buttons/key_blue.png" transparent="1" alphatest="on" />
+			</screen>"""
+
+		Screen.__init__(self, session)
+		self.Mlist = []
+
+		if fileExists("/usr/lib/enigma2/python/Plugins/Extensions/Foreca/City.cfg"):
+			file = open("/usr/lib/enigma2/python/Plugins/Extensions/Foreca/City.cfg", "r")
+			for line in file:
+				text = line.strip()
+				self.Mlist.append(self.CityEntryItem((_(text), text)))
+			file.close
+
+		self.onChangedEntry = []
+		self["Mlist"] = CityPanelList([])
+		self["Mlist"].l.setList(self.Mlist)
+		self["Mlist"].selectionEnabled(1)
+
+		self["key_green"] = StaticText()
+		self["key_yellow"] = StaticText()
+		self["key_blue"] = StaticText()
+		self["key_green"].text = _("Fav1")
+		self["key_yellow"].text = _("Fav2")
+		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"),
+				"yellow": (self.yellow, "Gelb"),
+				"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
+		city = self['Mlist'].l.getCurrentSelection()[0][0]
+		##print "druecke OK", city
+		self.close()
+
+	def blue(self):
+		city = self['Mlist'].l.getCurrentSelection()[0][0]
+		##print "[Foreca] Service:", city
+		fwrite = open("/usr/lib/enigma2/python/Plugins/Extensions/Foreca/startservice.cfg", "w")
+		fwrite.write(city)
+		fwrite.close()
+		message = "%s %s" % (_("Diese Stadt wurde als Startservice gesetzt!\n\n                       "), city)
+		self.session.open( MessageBox, message, MessageBox.TYPE_INFO, timeout=3)
+
+	def green(self):
+		city = self['Mlist'].l.getCurrentSelection()[0][0]
+		##print "[Foreca] Service:", city
+		fwrite = open("/usr/lib/enigma2/python/Plugins/Extensions/Foreca/fav1.cfg", "w")
+		fwrite.write(city)
+		fwrite.close()
+		message = "%s %s" % (_("Diese Stadt wurde als Favorit 1 gesetzt!\n\n                       "), city)
+		self.session.open( MessageBox, message, MessageBox.TYPE_INFO, timeout=3)
+
+	def yellow(self):
+		city = self['Mlist'].l.getCurrentSelection()[0][0]
+		##print "[Foreca] Service:", city
+		fwrite = open("/usr/lib/enigma2/python/Plugins/Extensions/Foreca/fav2.cfg", "w")
+		fwrite.write(city)
+		fwrite.close()
+		message = "%s %s" % (_("Diese Stadt wurde als Favorit 2 gesetzt!\n\n                       "), city)
+		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
+
+#------------------------------------------------------------------------------------------
+#-------------------------- 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(ForecaPreview)
+
+def Plugins(**kwargs):
+	return PluginDescriptor(name="Foreca Wettervorschau", description="Wettervorschau für 10 Tage", icon="foreca_logo.png", where=[PluginDescriptor.WHERE_EXTENSIONSMENU, PluginDescriptor.WHERE_PLUGINMENU], fnc=start)
