Index: /ipk/source/infos_buliticker_0_1/CONTROL/control
===================================================================
--- /ipk/source/infos_buliticker_0_1/CONTROL/control	(revision 14800)
+++ /ipk/source/infos_buliticker_0_1/CONTROL/control	(revision 14801)
@@ -1,6 +1,6 @@
 Package: enigma2-plugin-infos-buliticker
-Version: 0.1
+Version: 1.2
 Architecture: sh4
-OE: buliticker 1.0c
+OE: buliticker 1.2b
 Section: extra
 Priority: optional
Index: /ipk/source/infos_buliticker_0_1/usr/lib/enigma2/python/Plugins/Extensions/Buliticker/plugin.py
===================================================================
--- /ipk/source/infos_buliticker_0_1/usr/lib/enigma2/python/Plugins/Extensions/Buliticker/plugin.py	(revision 14800)
+++ /ipk/source/infos_buliticker_0_1/usr/lib/enigma2/python/Plugins/Extensions/Buliticker/plugin.py	(revision 14801)
@@ -3,5 +3,5 @@
 #		Fußball Liveticker für die 1./2.Bundesliga 
 #
-# 	Quelle: http://linpop.zdf.de/sport/bl1/konferenz-sub.htm
+# 	Quelle: http://linpop.zdf.de/sport/bl[1,2]/konferenz.htm
 #
 #	V1.0 13.04.09 
@@ -13,4 +13,13 @@
 # V1.0c 18.04.09 Fehler im Tickertext gefixt
 #
+# V1.1 21.04.09 ConfigScreen für X,Y Position Tickerleiste und Intervall Timer hinzugefügt, Übersicht Hintergrund geändert
+#
+# V1.2 24.04.09 Filmauswahl über Video Taste, neue Configeinstellung Auswahl Ergebnis/Textticker , Unterkanal Switch,Movie Stop Fehler beim Starten gefixt
+#								Auswahl Einzelspiel- oder Konferenz-Ticker
+#
+# V1.2a 25.04.09  Menu Auswahl bereinigt, Konferenz lang auch bei Einzelspiel
+#
+# V1.2b 01.05.09 Toggle Einzel- Konferenzticker mit <Text> - Taste
+#
 # Enigma2 Plugin 
 #
@@ -19,15 +28,14 @@
 
 import os, sys
-
 from Plugins.Plugin import PluginDescriptor
 from twisted.web.client import getPage
 from twisted.internet import reactor
 from Screens.Screen import Screen
-from Screens.Console import Console
 from Screens.MessageBox import MessageBox
 from Screens.InputBox import InputBox
 from Screens.ChoiceBox import ChoiceBox
 from Screens.ChannelSelection import ChannelSelection
-from Screens.InfoBarGenerics import InfoBarSubserviceSelection
+from Screens.InfoBarGenerics import InfoBarSubserviceSelection, InfoBarSeek, InfoBarShowHide
+from Screens.MovieSelection import MovieSelection
 from Screens.SubservicesQuickzap import SubservicesQuickzap
 from Components.ActionMap import ActionMap
@@ -35,8 +43,8 @@
 from Components.Sources.List import List
 from Components.MenuList import MenuList
-from Components.config import config, ConfigSubsection, ConfigText, configfile
+from Components.config import config, ConfigSubsection, ConfigText, ConfigYesNo, ConfigInteger, getConfigListEntry
+from Components.ConfigList import ConfigListScreen
 from Components.MultiContent import MultiContentEntryText, MultiContentEntryPixmapAlphaTest
 from Components.Pixmap import Pixmap, MovingPixmap
-from Components.AVSwitch import AVSwitch
 from enigma import eTimer, getDesktop, eListboxPythonMultiContent, eListbox, gFont, RT_HALIGN_LEFT, RT_HALIGN_RIGHT, RT_HALIGN_CENTER
 from re import sub, split, search, match, findall
@@ -48,8 +56,15 @@
 	text = text.replace('&copy;.*'," ").replace('&amp;',"&").replace('&uuml;',"ü").replace('&auml;',"ä").replace('&ouml;',"ö")
 	text = text.replace('&Uuml;',"Ü").replace('&Auml;',"Ä").replace('&Ouml;',"Ö")				
-	return text
-
-refreshtimer = 15000
-screenhidetimer = 15000
+	return text 
+
+# aus GoogleMaps (c) 3c5x9 ;-)
+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
+    
 try:
 		size_w = int(getDesktop(0).size().width())
@@ -59,14 +74,102 @@
 		size_h = 720
 
+if size_w == 1280:
+		tickerpos_x = 0
+		tickerpos_y = 620
+else:
+		tickerpos_x = 0
+		tickerpos_y = 470
+
+#############################
+# activeticker = None
+# def showhide(session, **kwargs):
+# 		global activeticker
+# 		if activeticker is None:
+# 				activeticker = session.instantiateDialog(ShowFullTicker)
+# 
+# 		if activeticker.shown:
+# 				activeticker.hide()
+# 		else:
+# 				activeticker.show()
+# 		print dir(activeticker)		
+
+#############################	
+
 config.plugins.buliticker = ConfigSubsection()
 config.plugins.buliticker.link = ConfigText(default="http://linpop.zdf.de/sport/bl1/konferenz.htm", fixed_size = False)
-config.plugins.buliticker.actmenu = ConfigText(default="ergmenu", fixed_size = False)
-
-###############################################################################  
+config.plugins.buliticker.tickerkurz = ConfigYesNo(default = True)
+config.plugins.buliticker.acttickermenu = ConfigText(default="ergmenu", fixed_size = False)
+config.plugins.buliticker.tickerpos_x = ConfigInteger(tickerpos_x, (-20,100))
+config.plugins.buliticker.tickerpos_y = ConfigInteger(tickerpos_y, (300,700))
+config.plugins.buliticker.refreshtimer = ConfigInteger(15000, (5000,60000))
+config.plugins.buliticker.screenhidetimer = ConfigInteger(15000, (1000,60000))
+config.plugins.buliticker.selectticker = ConfigInteger(0, (0,2))
+
+#######################
+
+class ItemList(MenuList):
+		def __init__(self, items, enableWrapAround = True):
+			MenuList.__init__(self, items, enableWrapAround, eListboxPythonMultiContent)
+			self.l.setFont(-2, gFont("Regular", 24))
+			self.l.setFont(-1, gFont("Regular", 22))
+			self.l.setFont(0, gFont("Regular", 20))
+			self.l.setFont(1, gFont("Regular", 18))
+			self.l.setFont(2, gFont("Regular", 16))
+			self.l.setFont(3, gFont("Regular", 15))
+					
+
+# ConfigScreen Teile davon aus GoogleMaps (c) 3c5x9 ;-)
+class BulitickerConfigScreen(ConfigListScreen,Screen):
+		
+		if size_w == 1280:
+				screenpos = "100,100"
+		else:
+				screenpos = "35,100"
+				
+		skin = """
+				<screen position="%s" size="640,220" title="Tickerleiste Setup" >
+				<widget name="config" position="0,0" size="640,180" scrollbarMode="showOnDemand" />
+				<widget name="buttonred" position="10,180" size="90,40" backgroundColor="red" valign="center" halign="center" zPosition="1"  foregroundColor="white" font="Regular;18"/>
+				<widget name="buttongreen" position="540,180" size="90,40" backgroundColor="green" valign="center" halign="center" zPosition="1"  foregroundColor="white" font="Regular;18"/>
+				</screen>""" % screenpos
+				
+		def __init__(self, session, args = 0):
+				self.session = session
+				Screen.__init__(self, session)
+				self.list = []
+#				self.list.append(getConfigListEntry("Start URL", config.plugins.buliticker.link))
+#				self.list.append(getConfigListEntry("Startmenu", config.plugins.buliticker.acttickermenu))
+				self.list.append(getConfigListEntry("Ticker X Position", config.plugins.buliticker.tickerpos_x))
+				self.list.append(getConfigListEntry("Ticker Y Position", config.plugins.buliticker.tickerpos_y))
+				self.list.append(getConfigListEntry("Tickerauswahl: (0)beide (1)Ergebnissticker (2)Textticker", config.plugins.buliticker.selectticker))
+				self.list.append(getConfigListEntry("Nur die letzten 6 Tickertext Meldungen", config.plugins.buliticker.tickerkurz))
+				self.list.append(getConfigListEntry("Update Intervall in ms", config.plugins.buliticker.refreshtimer))
+				self.list.append(getConfigListEntry("Hidescreen Timeout in ms", config.plugins.buliticker.screenhidetimer))
+						 
+				ConfigListScreen.__init__(self, self.list)
+				self["buttonred"] = Label(_("cancel"))
+				self["buttongreen"] = Label(_("ok"))
+				self["setupActions"] = ActionMap(["SetupActions"],
+				{
+						"green": self.save,
+						"red": self.cancel,
+						"save": self.save,
+						"cancel": self.cancel,
+						"ok": self.save,
+				}, -2)
+
+		def save(self):
+				for x in self["config"].list: 
+					x[1].save()				
+				self.close()
+
+		def cancel(self):
+				for x in self["config"].list:
+						x[1].cancel()
+				self.close()
+        
+####################### 
 # backgroundColor="#c9deb7"
 # scrollbarMode="showOnDemand"
-
-#				<eLabel zPosition="1" position="28,93" size="502,459" backgroundColor="#c9deb7" />
-#				<eLabel zPosition="1" position="548,93" size="500,234" backgroundColor="#c9deb7" />
 class ShowFullTicker(Screen):
 		
@@ -74,60 +177,52 @@
 				skin = """
 				<screen name="ShowTicker" position="5,3" size="1270,712" title="Buli FullTicker" flags="wfNoBorder">
-				<ePixmap position="5,7" size="1270,710"  zPosition="-10" pixmap="/usr/lib/enigma2/python/Plugins/Extensions/Buliticker/zdftickerback.png" transparent="1" />
-				<widget source="global.CurrentTime" render="Label" position="850,505" size="280,22" font="Regular;20" halign="right" foregroundColor="black" transparent="1">
+				<ePixmap position="5,7" size="1270,70"  zPosition="-10" pixmap="/usr/lib/enigma2/python/Plugins/Extensions/Buliticker/zdftickerback_hd.png" transparent="1" />
+				<widget source="global.CurrentTime" render="Label" position="850,505" size="280,22" font="Regular;20" halign="right" foregroundColor="white" transparent="1">
 					<convert type="ClockToText">Date</convert>
 				</widget>
-				<widget source="global.CurrentTime" render="Label" position="1140,505" size="80,22" font="Regular;20" halign="left" foregroundColor="black" transparent="1">
+				<widget source="global.CurrentTime" render="Label" position="1140,505" size="80,22" font="Regular;20" halign="left" foregroundColor="white" transparent="1">
 					<convert type="ClockToText">Default</convert>
 				</widget>
-			  <widget name="0_menu" zPosition="2" position="30,95" size="500,447" transparent="1" foregroundColor="black" />
-				<widget name="tablabel" zPosition="2" position="100,280" size="440,25" font="Regular;22" halign="left" foregroundColor="black" transparent="1"/>
-				<widget name="1_menu" zPosition="2" position="550,95" size="500,225" transparent="1" foregroundColor="black" />
-				<widget name="erglabel" zPosition="2" position="600,100" size="440,25" font="Regular;22" halign="left" foregroundColor="black" transparent="1"/>
-				<eLabel zPosition="2" position="5,531" size="1270,2" backgroundColor="black" />
-				<widget name="2_menu" zPosition="2" position="20,535" size="1240,165" transparent="1" foregroundColor="black" />
-				<eLabel zPosition="1" position="5,535" size="1270,180" backgroundColor="#f4fcfc" />
-				<widget name="tickerlabel" zPosition="2" position="520,610" size="440,25" font="Regular;22" halign="left" foregroundColor="black" transparent="1" />
-				<widget name="statuslabel" zPosition="2" position="620,480" size="440,25" font="Regular;22" halign="left" foregroundColor="black" transparent="1" />
+			  <widget name="0_menu" zPosition="2" position="30,95" size="500,447" transparent="1" foregroundColor="white" />
+				<widget name="tablabel" zPosition="2" position="100,280" size="440,25" font="Regular;22" halign="left" foregroundColor="white" transparent="1"/>
+				<widget name="1_menu" zPosition="2" position="550,95" size="500,250" transparent="1" foregroundColor="white" />
+				<widget name="erglabel" zPosition="2" position="600,100" size="440,25" font="Regular;22" halign="left" foregroundColor="white" transparent="1"/>
+				<eLabel zPosition="2" position="5,531" size="1270,2" backgroundColor="white" />
+				<widget name="2_menu" zPosition="2" position="10,535" size="1260,165" transparent="1" foregroundColor="white" />
+				<widget name="tickerlabel" zPosition="2" position="520,610" size="440,25" font="Regular;22" halign="left" foregroundColor="white" transparent="1" />
+				<widget name="statuslabel" zPosition="2" position="620,480" size="440,25" font="Regular;22" halign="left" foregroundColor="white" transparent="1" />
 			</screen>"""
 		else:
-#				<eLabel zPosition="1" position="8,73" size="392,372" backgroundColor="#c9deb7" />
-# 			<eLabel zPosition="1" position="413,73" size="292,230" backgroundColor="#c9deb7" />
 				skin = """
 				<screen name="ShowTicker" position="5,3" size="710,568" title="Buli FullTicker" flags="wfNoBorder">
-				<ePixmap position="5,5" size="710,560"  zPosition="-10" pixmap="/usr/lib/enigma2/python/Plugins/Extensions/Buliticker/zdftickerback_sd.png" transparent="1" />
-				<widget source="global.CurrentTime" render="Label" position="420,432" size="200,20" font="Regular;17" halign="right" foregroundColor="black" transparent="1">
+				<ePixmap position="5,5" size="710,57"  zPosition="1" pixmap="/usr/lib/enigma2/python/Plugins/Extensions/Buliticker/zdftickerback_sd.png" transparent="1" />
+				<widget source="global.CurrentTime" render="Label" position="420,432" size="200,20" font="Regular;17" halign="right" foregroundColor="white" transparent="1">
 					<convert type="ClockToText">Date</convert>
 				</widget>
-				<widget source="global.CurrentTime" render="Label" position="630,432" size="80,20" font="Regular;17" halign="left" foregroundColor="black" transparent="1">
+				<widget source="global.CurrentTime" render="Label" position="630,432" size="80,20" font="Regular;17" halign="left" foregroundColor="white" transparent="1">
 					<convert type="ClockToText">Default</convert>
 				</widget>
-				
-			  <widget name="0_menu" zPosition="2" position="10,75" size="370,370" transparent="1" foregroundColor="black" />
-
-				<widget name="tablabel" zPosition="2" position="50,275" size="440,25" font="Regular;20" halign="left" foregroundColor="black" transparent="1"/>
-	
-				<widget name="1_menu" zPosition="2" position="385,75" size="310,225" transparent="1" foregroundColor="black" />
-
+			  <widget name="0_menu" zPosition="2" position="10,75" size="370,370" transparent="1" foregroundColor="white" />
+				<widget name="tablabel" zPosition="2" position="50,275" size="440,25" font="Regular;20" halign="left" foregroundColor="black" transparent="1"/>	
+				<widget name="1_menu" zPosition="2" position="385,75" size="310,250" transparent="1" foregroundColor="white" />
 				<widget name="erglabel" zPosition="2" position="500,95" size="200,25" font="Regular;20" halign="left" foregroundColor="black" transparent="1"/>
-	
-				<eLabel zPosition="2" position="5,453" size="710,2" backgroundColor="black" />
-	
-				<widget name="2_menu" zPosition="2" position="20,456" size="690,115" transparent="1" foregroundColor="black" />
-				<eLabel zPosition="1" position="5,456" size="705,115" backgroundColor="#f4fcfc" />
-				<widget name="tickerlabel" zPosition="2" position="250,510" size="340,25" font="Regular;20" halign="left" foregroundColor="black" transparent="1" />
-				<widget name="statuslabel" zPosition="2" position="385,380" size="340,25" font="Regular;20" halign="left" foregroundColor="black" transparent="1" />
+				<eLabel zPosition="2" position="0,450" size="715,2" backgroundColor="white" />
+				<widget name="2_menu" zPosition="2" position="0,453" size="710,110" transparent="1" foregroundColor="white" />
+				<widget name="tickerlabel" zPosition="2" position="250,510" size="340,25" font="Regular;20" halign="left" foregroundColor="white" transparent="1" />
+				<widget name="statuslabel" zPosition="2" position="385,300" size="340,25" font="Regular;20" halign="left" foregroundColor="white" transparent="1" />
 			</screen>"""
 			
 		def __init__(self, session):
-				self.loadinginprogress = False
+				self.session = session
+			
 				self.skin = ShowFullTicker.skin
+			
 				Screen.__init__(self, session)
-				
+											
 				print "----> %d" % size_w
 				print "----> %d" % size_h
-		
+				
+				self.loadinginprogress = False
 				self.baseurl = "http://linpop.zdf.de/sport/"
-				self.lastbulilink = pluginpath + "/lastbulilink.txt"	
 				self.hideflag = True
 				self.tableentries = []
@@ -138,7 +233,31 @@
 				self.ergold = []
 				self.tickerold = ""
-				
-				self.servicelist = self.session.instantiateDialog(ChannelSelection)
-			
+				self.movieisrunning = False
+				
+				self.lastservice = self.session.nav.getCurrentlyPlayingServiceReference()
+							
+				# movie , subservice check 
+				service = self.session.nav.getCurrentService()
+				if service is not None:
+						pauseable = service.pause()
+						if pauseable is None:
+								# maybe subservice is running
+								subservices = service and service.subServices()
+								if not subservices or subservices.getNumberOfSubservices() == 0:
+										self.servicelist = self.session.instantiateDialog(ChannelSelection)
+										print "----> no Movie or Subservice is running read Servicelist"
+										self.movieisrunning = False
+								else:
+										print "----> subservice is running no Servicelist"
+										self.servicelist = None
+						else:
+								print "----> Movie is running no Servicelist"
+								self.movieisrunning = True
+								self.servicelist = None
+				else:
+						print "----> no Service or Movie is running read Servicelisr"
+						self.servicelist = self.session.instantiateDialog(ChannelSelection)
+								
+				
 				self["0_menu"] = ItemList([])
 				self["1_menu"] = ItemList([])
@@ -150,9 +269,10 @@
 				self["tickerlabel"] = Label("")
 				self["statuslabel"] = Label("")
-				self["actions"] = ActionMap(["ColorActions","OkCancelActions","DirectionActions","HelpActions","MovieSelectionActions","InputActions"],
+				self["actions"] = ActionMap(["ColorActions","OkCancelActions","DirectionActions","HelpActions","MovieSelectionActions","InputActions","InfobarActions","InfobarTeletextActions","ChannelSelectBaseActions"],
 				{
 					"1": self.loadBuli1,
 					"2": self.loadBuli2,
-					"3": self.tester,
+					"0": self.tester,
+					"contextMenu": self.configScreen,
 					"green": self.subService,
 					"ok":	self.ok,
@@ -162,16 +282,36 @@
 					"up": self.up,
 					"down": self.down,
-#  				"contextMenu": self.switchMenu,
+					"nextBouquet": self.switchMenu,
+					"prevBouquet": self.switchMenu,
 					"showEventInfo": self.miniView,
+					"showMovies": self.showMovieList,
+					"showTv": self.stopMovie,
 					"displayHelp": self.hideScreen,
+					"startTeletext": self.toggleKonfURL,
 				}, -1)	
 				
-				self.konfurl = config.plugins.buliticker.link.value
-
+
+				if config.plugins.buliticker.tickerkurz.value is True:
+						self.konfurl = config.plugins.buliticker.link.value.replace("-sub.htm",".htm")
+				else:
+						if search("-sub.htm",config.plugins.buliticker.link.value) is None:
+								self.konfurl = config.plugins.buliticker.link.value.replace(".htm","-sub.htm")
+						else:
+								self.konfurl = config.plugins.buliticker.link.value
+				
+				print "---> init: %s" % self.konfurl
+				if search("/konferenz",self.konfurl) is None:
+						self.eventurl = self.konfurl
+				else:
+						self.eventurl = ""
+				
 				if search("/bl1/",self.konfurl) is not None:
 						self.buli = "bl1"
 				else:
 						self.buli = "bl2"
-
+				
+				self.refreshtimer = config.plugins.buliticker.refreshtimer.value
+				self.screenhidetimer = config.plugins.buliticker.screenhidetimer.value
+				
  				self.screenHideTimer = eTimer()
 				self.screenHideTimer.callback.append(self.hideTimerAction)
@@ -179,11 +319,35 @@
  				self.refreshInfoTimer = eTimer()
 				self.refreshInfoTimer.callback.append(self.timerAction)
-				self.refreshInfoTimer.start(refreshtimer)
+				self.refreshInfoTimer.start(self.refreshtimer)
 
 				self.StartTimer = eTimer()
 				self.StartTimer.callback.append(self.download(self.konfurl,self.getLiveContent))
 				self.StartTimer.start(500)
-
-# geklaut aus InfoBarGenerics.py 
+										
+
+		def toggleKonfURL(self):
+				if self.eventurl == "":
+						return
+				if search("/bl1/",self.konfurl) is not None:
+						if search("/konferenz",self.konfurl) is not None:
+								self.konfurl = self.eventurl
+						else:
+								if config.plugins.buliticker.tickerkurz.value is True:
+										self.konfurl = self.baseurl + "bl1/konferenz.htm"
+								else:
+										self.konfurl = self.baseurl + "bl1/konferenz-sub.htm"
+				else:
+						if search("/konferenz",self.konfurl) is not None:
+								self.konfurl = self.eventurl
+						else:
+								if config.plugins.buliticker.tickerkurz.value is True:
+										self.konfurl = self.baseurl + "bl2/konferenz.htm"
+								else:
+										self.konfurl = self.baseurl + "bl2/konferenz-sub.htm"					
+				print "----> toggled %s" % self.konfurl
+				self.timerAction()					
+				self.hideTimerRestart(self.screenhidetimer)				
+							
+# geklaut aus InfoBarGenerics.py ;-)
 
 		def subService(self):
@@ -207,12 +371,58 @@
 							self.session.openWithCallback(self.subserviceSelected, ChoiceBox, title=_("Please select a subservice..."), list = tlist, selection = selection, keys = keys)
 
-							#self.session.openWithCallback(self.timerAction,SubservicesQuickzap, "quickzap")
-
 		def subserviceSelected(self, service):
 			if not service is None:
 				if not isinstance(service[1], str):
 					self.session.nav.playService(service[1], False)
-				
-						
+#############
+
+# geklaut aus InfoBar.py ;-)
+		def showMovieList(self):
+				if not self.hideflag:
+						ref = self.session.nav.getCurrentlyPlayingServiceReference()
+						self.session.openWithCallback(self.movieSelected, MovieSelection, ref)
+			
+		def movieSelected(self, service):
+				if service is not None:
+					self.movieisrunning = True
+					self.session.nav.playService(service)
+#############
+		
+		def stopMovie(self):
+				service = self.session.nav.getCurrentService()
+				if service is None:
+						print "no Service"
+						return False
+				pauseable = service.pause()
+				if pauseable is None:
+						print "not pauseable."
+						return False
+				self.session.nav.stopService()
+				self.movieisrunning = False
+											
+		def configScreen(self):
+				self.refreshInfoTimer.stop()
+				self.screenHideTimer.stop()
+				config.plugins.buliticker.link.value = self.konfurl
+				config.plugins.buliticker.link.save()
+				self.session.openWithCallback(self.configClose,BulitickerConfigScreen)
+				
+		def configClose(self):
+				tickerpos_x = config.plugins.buliticker.tickerpos_x.value
+				tickerpos_y = config.plugins.buliticker.tickerpos_y.value
+				self.refreshtimer = config.plugins.buliticker.refreshtimer.value
+				self.screenhidetimer = config.plugins.buliticker.screenhidetimer.value
+
+				if config.plugins.buliticker.tickerkurz.value is True:
+						self.konfurl = config.plugins.buliticker.link.value.replace("-sub.htm",".htm")
+				else:
+						if search("-sub.htm",config.plugins.buliticker.link.value) is None:
+								self.konfurl = config.plugins.buliticker.link.value.replace(".htm","-sub.htm")
+						else:
+								self.konfurl = config.plugins.buliticker.link.value
+				print "---> Config close: %s" % self.konfurl
+				self.hideTimerRestart(self.screenhidetimer)
+				self.timerAction()
+																				
 		def tester(self):
 #				self.ergold.append("neuer text")
@@ -221,6 +431,6 @@
 		def timerAction(self):
 				print "-----> ShowFullView Timer fired"
+				self.refreshInfoTimerRestart(self.refreshtimer)
 				self.download(self.konfurl,self.getLiveContent)
-				self.refreshInfoTimerRestart()
 
 		def hideTimerAction(self):
@@ -229,33 +439,44 @@
 						self.hideScreen()
 
-		def refreshInfoTimerRestart(self):
+		def refreshInfoTimerRestart(self,timer):
 				if self.refreshInfoTimer.isActive:
 						self.refreshInfoTimer.stop()
-				print "-----> ShowFullView Timer restart"
-				self.refreshInfoTimer.start(refreshtimer)
-
-		def hideTimerRestart(self):
+				print "-----> ShowFullView Timer restart %i" % timer
+				self.refreshInfoTimer.start(timer)
+
+		def hideTimerRestart(self,timer):
 				if self.screenHideTimer.isActive:
 						self.screenHideTimer.stop()
-				print "-----> ScreenHide Timer restart"
-				self.screenHideTimer.start(screenhidetimer)
+				print "-----> ScreenHide Timer restart %s" % timer
+				self.screenHideTimer.start(timer)
 																														
 		def miniView(self):
-				if self.hideflag:
-						self.refreshInfoTimer.stop()
-						self.screenHideTimer.stop()
-						self.session.openWithCallback(self.timerAction,ShowMiniTicker, self.konfurl)			
-														
+				self.refreshInfoTimer.stop()
+				self.screenHideTimer.stop()
+				self.session.openWithCallback(self.getbackMiniView, ShowMiniTicker, self.konfurl, self.eventurl, self.servicelist)			
+
+		def getbackMiniView(self):
+				self.konfurl = config.plugins.buliticker.link.value
+				self.timerAction()
+																	
 		def loadBuli1(self):
 				self.buli = "bl1"
-				self.konfurl = self.baseurl + "bl1/konferenz.htm"
+				self.eventurl = ""
+				if config.plugins.buliticker.tickerkurz.value is True:
+						self.konfurl = self.baseurl + "bl1/konferenz.htm"
+				else:
+						self.konfurl = self.baseurl + "bl1/konferenz-sub.htm"
 				self.timerAction()
-				self.hideTimerRestart()
+				self.hideTimerRestart(self.screenhidetimer)
 				
 		def loadBuli2(self):
 				self.buli = "bl2"
-				self.konfurl = self.baseurl + "bl2/konferenz.htm"	
+				self.eventurl = ""
+				if config.plugins.buliticker.tickerkurz.value is True:
+						self.konfurl = self.baseurl + "bl2/konferenz.htm"
+				else:
+						self.konfurl = self.baseurl + "bl2/konferenz-sub.htm"	
 				self.timerAction()					
-				self.hideTimerRestart()
+				self.hideTimerRestart(self.screenhidetimer)
 						
 		def ok(self):
@@ -264,45 +485,71 @@
 								self.index = self[self.actmenu].getSelectedIndex()
 								self.konfurl = self.linklist[self.index]
+								print "---> Ok Index %d" % self.index
+								if self.menunr < 2:
+										self.menunr +=1
+								print "--> %s" % self.konfurl
+								if search("konferenz",self.konfurl) is None:
+										self.eventurl = self.konfurl
+								else:
+										self.eventurl = ""	
 								self.timerAction()
 						else:
 								self.timerAction()
-																	
+																				
 		def up(self):
 				if not self.hideflag:
+						if self.movieisrunning:
+								return False
+						if self.servicelist == None:
+								self.servicelist = self.session.instantiateDialog(ChannelSelection)		
 						self.servicelist.moveUp()
 						self.session.execDialog(self.servicelist)
 				else:
 						self[self.actmenu].up()
-						self.hideTimerRestart()
-						self.refreshInfoTimerRestart()
+						self.hideTimerRestart(self.screenhidetimer)
+						self.refreshInfoTimerRestart(self.refreshtimer)
 				
 		def down(self):
 				if not self.hideflag:
+						if self.movieisrunning:
+								return False
+						if self.servicelist == None:
+								self.servicelist = self.session.instantiateDialog(ChannelSelection)	
 						self.servicelist.moveDown()
 						self.session.execDialog(self.servicelist)
 				else:	
 						self[self.actmenu].down()
-						self.hideTimerRestart()
-						self.refreshInfoTimerRestart()
+						self.hideTimerRestart(self.screenhidetimer)
+						self.refreshInfoTimerRestart(self.refreshtimer)
 				
 		def pageUp(self):
 				if not self.hideflag:
+						if self.movieisrunning:
+								return False
+						if self.servicelist == None:
+								self.servicelist = self.session.instantiateDialog(ChannelSelection)	
 						self.servicelist.moveUp()
 						self.servicelist.zap()
 				else:
 						self[self.actmenu].pageUp()
-						self.hideTimerRestart()
-						self.refreshInfoTimerRestart()
+						self.hideTimerRestart(self.screenhidetimer)
+						self.refreshInfoTimerRestart(self.refreshtimer)
 				
 		def pageDown(self):
 				if not self.hideflag:
+						if self.movieisrunning:
+								return False
+						if self.servicelist == None and self.movieisrunning == False:
+								self.servicelist = self.session.instantiateDialog(ChannelSelection)	
 						self.servicelist.moveDown()
 						self.servicelist.zap()
 				else:
 						self[self.actmenu].pageDown()
-						self.hideTimerRestart()
-						self.refreshInfoTimerRestart()
+						self.hideTimerRestart(self.screenhidetimer)
+						self.refreshInfoTimerRestart(self.refreshtimer)
 																
 		def switchMenu(self):				
+				if not self.hideflag:
+						return
 				if self.menunr == 2:
 						# nur zwischen Erg. und Liveticker Menu wechseln
@@ -311,4 +558,5 @@
 						self.menunr +=1	
 				self.actmenu = str(self.menunr) + "_menu"
+				print "---> %s" % self.menunr
 				if self.menunr == 2:
 						self["0_menu"].selectionEnabled(0)
@@ -322,4 +570,5 @@
 				
 				self[self.actmenu].selectionEnabled(1)
+				self.hideTimerRestart(self.screenhidetimer)
  						
 		def getLiveContent(self,output):
@@ -329,11 +578,9 @@
 				self["1_menu"].l.setList([])
 				self["2_menu"].l.setList([])
-					
+				
  				self["0_menu"].selectionEnabled(0)
- 				self["1_menu"].selectionEnabled(0)
- 				self["2_menu"].selectionEnabled(1)
- 				self.actmenu = "2_menu"				
-# 				if self.actmenu == "1_menu":
-# 						self[self.actmenu].moveToIndex(self.index)
+# 				self["1_menu"].selectionEnabled(0)
+# 				self["2_menu"].selectionEnabled(1)
+
 
 				self["erglabel"].setText("")
@@ -344,9 +591,9 @@
 							
 				if size_w == 1280:
-						self["0_menu"].l.setItemHeight(22)
+						self["0_menu"].l.setItemHeight(23)
 						self["1_menu"].l.setItemHeight(25)
 						self["2_menu"].l.setItemHeight(55)
-						fontidx = 0
-						ysize = 22
+						fontidx = -1
+						ysize = 23
 						axsize = 300
 						bxsize = 100
@@ -380,4 +627,5 @@
 				# Live Ergebnisse
 				self.tableentries = []
+				self.linklist = []
 				startpos = find(output,'<!-- Events -->')
 				if startpos == -1:
@@ -396,4 +644,20 @@
 						else:								
 								# 'http://linpop.zdf.de/sport/bl1/event20129.htm', 'Bielefeld - Schalke', '0:2 (0:1)'
+								# Link zur Konferenz anhängen
+								if search("bl1",self.konfurl) is not None:
+										if config.plugins.buliticker.tickerkurz.value is True:
+												erg.append('http://linpop.zdf.de/sport/bl1/konferenz.htm')
+												erg.append('Konferenz kurz')
+										else:
+												erg.append('http://linpop.zdf.de/sport/bl1/konferenz-sub.htm')
+												erg.append('Konferenz lang')
+								elif search("bl2",self.konfurl) is not None:
+										if config.plugins.buliticker.tickerkurz.value is True:
+												erg.append('http://linpop.zdf.de/sport/bl2/konferenz.htm')
+												erg.append('Konferenz kurz')
+										else:
+												erg.append('http://linpop.zdf.de/sport/bl2/konferenz-sub.htm')
+												erg.append('Konferenz lang')
+								erg.append('')
 								y = 0								
 								offset = 3
@@ -401,9 +665,11 @@
 										if y == 0:
 												res = [ x ]
+												if not config.plugins.buliticker.tickerkurz.value and search("-sub.htm",x) is None:
+														x = x.replace(".htm","-sub.htm")
 												self.linklist.append(x)
 										if y == 1:
-												res.append(MultiContentEntryText(pos=(20, 0), size=(axsize, ysize), font=fontidx, flags = RT_HALIGN_LEFT, text=x))							
+												res.append(MultiContentEntryText(pos=(20, 0), size=(axsize, ysize), font=fontidx, flags = RT_HALIGN_LEFT, text=x ))							
 										if y == 2:
-												res.append(MultiContentEntryText(pos=(axsize+20, 0), size=(bxsize, ysize), font=fontidx, flags = RT_HALIGN_RIGHT, text=x))
+												res.append(MultiContentEntryText(pos=(axsize+20, 0), size=(bxsize, ysize), font=fontidx, flags = RT_HALIGN_RIGHT, text=x ))
 												self.tableentries.append(res)						
 										y +=1
@@ -463,5 +729,5 @@
 						bereich = output[startpos:endpos]
 						bereich = transHTML(bereich)
-						# falls kein Bild -> Dummy Eintrag 
+						# falls kein Icon -> Dummy Eintrag 
 						bereich = sub('<div class="minute">.*?</div>\n','<div class="minute"></div><img src="pics/dummy.gif" alt="Dummy" class="message-type">',bereich)
 						minute = findall(r'<div class="minute">(.*?)</div>',bereich)
@@ -476,4 +742,6 @@
 								else:					
 										paarung = findall(r'class="message-header">(.*?)</a>',bereich)
+								
+								#<img src="img/portraits/33764.jpg" alt="Raffael" class="message-player-img">
 								text =  findall(r'<p>.*?\s*(.*?)</p>',bereich)
 								textnr = len(text)
@@ -493,7 +761,7 @@
 										if pic != "dummy":
 												png = LoadPixmap(pluginpath + "/icons/" + pic + ".png")
-												res.append(MultiContentEntryPixmapAlphaTest(pos=(0, 0), size=(55, 55), png = png))
-										res.append(MultiContentEntryText(pos=(70, 0), size=(xsizeticker, ysizeticker), font=afontticker, flags = RT_HALIGN_LEFT, text=x))
-										res.append(MultiContentEntryText(pos=(70, ysizeticker+1), size=(xsizeticker, ysizeticker), font=bfontticker, flags = RT_HALIGN_LEFT, text=livetext))		
+												res.append(MultiContentEntryPixmapAlphaTest(pos=(20, 0), size=(55, 55), png = png))
+										res.append(MultiContentEntryText(pos=(90, 0), size=(xsizeticker, ysizeticker), font=afontticker, flags = RT_HALIGN_LEFT, text=x))
+										res.append(MultiContentEntryText(pos=(90, ysizeticker+1), size=(xsizeticker, ysizeticker), font=bfontticker, flags = RT_HALIGN_LEFT, text=livetext))		
 										self.tableentries.append(res)						
 										textnr -=1
@@ -505,5 +773,15 @@
 								self.ergold = erg
 								self.tickerold = text[0]
-							
+ 				
+				if self.actmenu == "2_menu":
+ 						self["1_menu"].selectionEnabled(0)
+				 		self["2_menu"].selectionEnabled(1)				
+ 				if self.actmenu == "1_menu":
+ 				 		if len(self.linklist) > 0:
+								self["2_menu"].selectionEnabled(0)
+								self["1_menu"].selectionEnabled(1)
+ 								print "---> getlive Index %d" % self.index
+								self[self.actmenu].moveToIndex(self.index)
+													
 							
 		def download(self, link, name):
@@ -522,5 +800,5 @@
 				else:
 						self.hideflag = True
-						self.screenHideTimer.start(screenhidetimer)
+						self.hideTimerRestart(self.screenhidetimer)
 						self.show()
 	
@@ -531,33 +809,57 @@
 						config.plugins.buliticker.link.value = self.konfurl
 						config.plugins.buliticker.link.save()
-						configfile.save()
+						# falls Movie gestartet wurde während Ticker läuft, kein rezap
+						if not self.movieisrunning:
+								print "---> rezap"
+								self.session.nav.playService(self.lastservice)
 						self.close()
 
-
-#####################################
+#######################
 #	<eLabel zPosition="1" position="0,540" size="1280,170" backgroundColor="white" />
 # scrollbarMode="showOnDemand"
+# HD 0,626
+
 class ShowMiniTicker(Screen):
 
 		if size_w == 1280:
-				skin = """
-			  <screen name="ShowTicker" position="0,626" size="1280,80" title="Buli MiniTicker" transparent="0" flags="wfNoBorder">
-			  <widget name="ergmenu" zPosition="1" position="20,0" size="1240,80" transparent="1" foregroundColor="white" />
-			  <widget name="tickermenu" zPosition="1" position="15,0" size="1260,80" transparent="1" foregroundColor="white" />
-				<widget name="tickerlabel" zPosition="1" position="520,20" size="440,25" font="Regular;22" halign="left" foregroundColor="white" transparent="1" />
+				raw_skin = """
+			  <screen name="ShowTicker" position="{screen.position}" size="1280,100" title="Buli MiniTicker" transparent="0" flags="wfNoBorder">
+			  <widget name="ergmenu" zPosition="1" position="40,0" size="1240,100" transparent="1" foregroundColor="white" />
+			  <widget name="tickermenu" zPosition="1" position="0,0" size="1280,100" transparent="1" foregroundColor="white" />
+				<widget name="tickerlabel" zPosition="1" position="500,30" size="440,25" font="Regular;22" halign="left" foregroundColor="white" transparent="1" />
 				</screen>"""
 		else:
-				skin = """
-			  <screen name="ShowTicker" position="0,495" size="720,80" title="Buli MiniTicker" transparent="0" flags="wfNoBorder">
-			  <widget name="ergmenu" zPosition="1" position="5,0" size="715,80" transparent="1" foregroundColor="white" />
-				<widget name="tickermenu" zPosition="2" position="5,0" size="715,80" transparent="1" foregroundColor="white" />
+				raw_skin = """
+			  <screen name="ShowTicker" position="{screen.position}" size="720,100" title="Buli MiniTicker" transparent="0" flags="wfNoBorder">
+			  <widget name="ergmenu" zPosition="1" position="5,0" size="715,100" transparent="1" foregroundColor="white" />
+				<widget name="tickermenu" zPosition="2" position="0,0" size="720,100" transparent="1" foregroundColor="white" />
 				<widget name="tickerlabel" zPosition="2" position="280,30" size="340,25" font="Regular;20" halign="left" foregroundColor="white" transparent="1" />
 				</screen>"""
 					
-		def __init__(self, session, link):
-				self.loadinginprogress = False
-				self.skin = ShowMiniTicker.skin
+		def __init__(self, session, link, eventlink, servicelist):
+				self.session = session													
+
+				tickerpos_x = config.plugins.buliticker.tickerpos_x.value
+				tickerpos_y = config.plugins.buliticker.tickerpos_y.value
+				
+				self.dict = {
+											'screen.position': "%i,%i"%(tickerpos_x,tickerpos_y),
+										}
+				self.skin = applySkinVars(ShowMiniTicker.raw_skin,self.dict)
+										  
+				
 				Screen.__init__(self, session)
-				
+
+				self.refreshtimer = config.plugins.buliticker.refreshtimer.value
+				self.screenhidetimer = config.plugins.buliticker.screenhidetimer.value
+				self.actmenu = config.plugins.buliticker.acttickermenu.value
+				self.selectticker = config.plugins.buliticker.selectticker.value
+	
+				if self.selectticker == 1:
+						self.actmenu = "ergmenu"
+				elif self.selectticker == 2:
+						self.actmenu = "tickermenu"	
+									
+				self.loadinginprogress = False				
 				self.baseurl = "http://linpop.zdf.de/sport/"				
 				self.hideflag = True
@@ -566,17 +868,25 @@
 				self.tickerold = ""
 				self.konfurl = link
-				self.servicelist = self.session.instantiateDialog(ChannelSelection)
-				
+				self.eventurl = eventlink
+				self.servicelist = servicelist
+				self.movieisrunning = False
+								
+				# movie check 
+				service = self.session.nav.getCurrentService()
+				if service is not None:
+						pauseable = service.pause()
+						if pauseable is None:
+								self.movieisrunning = False
+						else:
+								self.movieisrunning = True
+										
 				self["ergmenu"] = ItemList([])
-				self["tickermenu"] = ItemList([])
-
-				self.actmenu = config.plugins.buliticker.actmenu.value
-
+				self["tickermenu"] = ItemList([])			
 				self["tickerlabel"] = Label("")
-				self["actions"] = ActionMap(["ColorActions","OkCancelActions","DirectionActions","HelpActions","MovieSelectionActions","InputActions"],
+				self["actions"] = ActionMap(["ColorActions","OkCancelActions","DirectionActions","HelpActions","MovieSelectionActions","InputActions","InfobarTeletextActions","InfobarActions"],
 				{
 					"1": self.loadBuli1,
 					"2": self.loadBuli2,
-					"3": self.tester,
+					"0": self.tester,
 					"green": self.subService,
 					"ok":	self.ok,
@@ -586,6 +896,9 @@
 					"up": self.up,
 					"down": self.down,
+					"showMovies": self.showMovieList,
+					"showTv": self.stopMovie,
 					"showEventInfo": self.switchMenu,
- 					"displayHelp": self.hideScreen,
+					"displayHelp": self.hideScreen,
+					"startTeletext": self.toggleKonfURL,
 				}, -1)	
 
@@ -595,14 +908,49 @@
 							self.buli = "bl2"
 										
- 				self.screenHideTimer = eTimer()
+				self.screenHideTimer = eTimer()
 				self.screenHideTimer.callback.append(self.hideTimerAction)
-				self.screenHideTimer.start(screenhidetimer)
+				self.screenHideTimer.start(self.screenhidetimer)
 							
- 				self.refreshInfoTimer = eTimer()
+				self.refreshInfoTimer = eTimer()
 				self.refreshInfoTimer.callback.append(self.timerAction)
 				
-				self.onShown.append(self.loadMenu)	
-
-		def subService(self):
+				self.onShown.append(self.loadMenu)
+
+		def toggleKonfURL(self):
+				if self.eventurl == "":
+						return
+				if search("/bl1/",self.konfurl) is not None:
+						if search("/konferenz",self.konfurl) is not None:
+								self.konfurl = self.eventurl
+						else:
+								if config.plugins.buliticker.tickerkurz.value is True:
+										self.konfurl = self.baseurl + "bl1/konferenz.htm"
+								else:
+										self.konfurl = self.baseurl + "bl1/konferenz-sub.htm"
+				else:
+						if search("/konferenz",self.konfurl) is not None:
+								self.konfurl = self.eventurl
+						else:
+								if config.plugins.buliticker.tickerkurz.value is True:
+										self.konfurl = self.baseurl + "bl2/konferenz.htm"
+								else:
+										self.konfurl = self.baseurl + "bl2/konferenz-sub.htm"					
+				print "----> toggled %s" % self.konfurl
+				self.timerAction()					
+				self.hideTimerRestart(self.screenhidetimer)			
+				
+		def stopMovie(self):
+				service = self.session.nav.getCurrentService()
+				if service is None:
+						print "no Service"
+						return False
+				pauseable = service.pause()
+				if pauseable is None:
+						print "not pauseable."
+						return False
+				self.session.nav.stopService()
+				self.movieisrunning = False
+															
+		def subService(self):		
 				service = self.session.nav.getCurrentService()
 				subservices = service and service.subServices()
@@ -629,7 +977,17 @@
 				if not isinstance(service[1], str):
 					self.session.nav.playService(service[1], False)
-							
+
+		def showMovieList(self):
+					ref = self.session.nav.getCurrentlyPlayingServiceReference()
+					self.session.openWithCallback(self.movieSelected, MovieSelection, ref)
+			
+		def movieSelected(self, service):
+				if service is not None:
+					self.movieisrunning = True
+					self.session.nav.playService(service)
+					
 		def tester(self):
-				self.ergold[2]="3:3"
+				if len(self.ergold) > 1:
+						self.ergold[2]="3:3"
 #				self.tickerold = "test"
 
@@ -642,21 +1000,21 @@
 				print "-----> ShowMiniView timer fired"
 				self.download(self.konfurl,self.getLiveContent)
-				self.refreshInfoTimerRestart()
-
-		def refreshInfoTimerRestart(self):
+				self.refreshInfoTimerRestart(self.refreshtimer)
+
+		def refreshInfoTimerRestart(self,timer):
 				if self.refreshInfoTimer.isActive:
 						self.refreshInfoTimer.stop()
-				print "-----> ShowMiniView Timer restart"
-				self.refreshInfoTimer.start(refreshtimer)
-
-		def hideTimerRestart(self):
+				print "-----> ShowMiniView Timer restart %i" % timer
+				self.refreshInfoTimer.start(timer)
+
+		def hideTimerRestart(self,timer):
 				if self.screenHideTimer.isActive:
 						self.screenHideTimer.stop()
-				print "-----> ScreenHide Timer restart"
-				self.screenHideTimer.start(screenhidetimer)
+				print "-----> ScreenHide Timer restart %i" % timer
+				self.screenHideTimer.start(timer)
 
 		def loadMenu(self):
-				self.hideTimerRestart()
-				self.refreshInfoTimerRestart()
+				self.hideTimerRestart(self.screenhidetimer)
+				self.refreshInfoTimerRestart(self.refreshtimer)
 				self.download(self.konfurl,self.getLiveContent)
 				self["ergmenu"].selectionEnabled(0)
@@ -675,6 +1033,8 @@
 																					
 		def switchMenu(self):
-				self.hideTimerRestart()
-				self.refreshInfoTimerRestart()
+				if self.selectticker != 0:
+						return
+				self.hideTimerRestart(self.screenhidetimer)
+				self.refreshInfoTimerRestart(self.refreshtimer)
 				self.download(self.konfurl,self.getLiveContent)
 				self["ergmenu"].selectionEnabled(0)
@@ -693,25 +1053,38 @@
 				if self.hideflag == False:
 						self.hideScreen()
-																
+						
+
 		def loadBuli1(self):
 				self.buli = "bl1"
-				self.konfurl = self.baseurl + "bl1/konferenz.htm"
+				self.eventurl = ""
+				if config.plugins.buliticker.tickerkurz.value is True:
+						self.konfurl = "http://linpop.zdf.de/sport/bl1/konferenz.htm"
+				else:
+						self.konfurl = "http://linpop.zdf.de/sport/bl1/konferenz-sub.htm"
 				self.ergold = []
 				self.timerAction()
-				self.hideTimerRestart()
+				self.hideTimerRestart(self.screenhidetimer)
 				
 		def loadBuli2(self):
 				self.buli = "bl2"
-				self.konfurl = self.baseurl + "bl2/konferenz.htm"	
+				self.eventurl = ""
+				if config.plugins.buliticker.tickerkurz.value is True:
+						self.konfurl = "http://linpop.zdf.de/sport/bl2/konferenz.htm"
+				else:
+						self.konfurl = "http://linpop.zdf.de/sport/bl2/konferenz-sub.htm"	
 				self.ergold = []
-				self.timerAction()				
-				self.hideTimerRestart()
+				self.timerAction()					
+				self.hideTimerRestart(self.screenhidetimer)
 						
 		def ok(self):
-				pass
-											
+				self.timerAction()
+
 		def up(self):
 				self.screenHideTimer.stop()
 				if not self.hideflag or ( self.hideflag and self.actmenu == "ergmenu"):
+						if self.movieisrunning:
+								return False
+						if self.servicelist == None:
+								self.servicelist = self.session.instantiateDialog(ChannelSelection)	
 						self.servicelist.moveUp()
 						self.session.execDialog(self.servicelist)				
@@ -719,10 +1092,14 @@
 						if self.actmenu == "tickermenu":
 								self["tickermenu"].up()
-								self.hideTimerRestart()
-								self.refreshInfoTimerRestart()
+								self.hideTimerRestart(self.screenhidetimer)
+								self.refreshInfoTimerRestart(self.refreshtimer)
 		
 		def down(self):
 				self.screenHideTimer.stop()
 				if not self.hideflag or ( self.hideflag and self.actmenu == "ergmenu"):
+						if self.movieisrunning:
+								return False
+						if self.servicelist == None:
+								self.servicelist = self.session.instantiateDialog(ChannelSelection)	
 						self.servicelist.moveDown()
 						self.session.execDialog(self.servicelist)				
@@ -730,12 +1107,20 @@
 						if self.actmenu == "tickermenu":
 								self["tickermenu"].down()									
-								self.hideTimerRestart()
-								self.refreshInfoTimerRestart()
+								self.hideTimerRestart(self.screenhidetimer)
+								self.refreshInfoTimerRestart(self.refreshtimer)
 
 		def zapUp(self):
+				if self.movieisrunning:
+						return False
+				if self.servicelist == None:
+						self.servicelist = self.session.instantiateDialog(ChannelSelection)	
 				self.servicelist.moveUp()
 				self.servicelist.zap()
 				
 		def zapDown(self):
+				if self.movieisrunning:
+						return False
+				if self.servicelist == None:
+						self.servicelist = self.session.instantiateDialog(ChannelSelection)	
 				self.servicelist.moveDown()
 				self.servicelist.zap()
@@ -749,28 +1134,42 @@
 				output = output.decode("latin1").encode("utf-8")
 				
-				self["tickermenu"].l.setItemHeight(80)
+				self["tickermenu"].l.setItemHeight(100)
 				
 				if size_w == 1280:
-						fonterg = -1
-						afontticker = -1
-						bfontticker = 0
-						ysize = 25
+						self["ergmenu"].l.setItemHeight(30)
+						afonterg = -1
+						bfonterg = -1
+						aflag = RT_HALIGN_LEFT
+						bflag = RT_HALIGN_LEFT
+						afontticker = -2
+						bfontticker = -2
+						xergstartpos = 15
+						ypos = 5
+						ysize = 30
 						axsize = 290
 						bxsize = 100
+						xpospng = 35
+						ypospng = 22
 						xsizeticker = 1190
-						ysizeticker = 25
-						maxchar = 110
-						maxword = 17
-				else:
-						fonterg = 3
+						ysizeticker = 27
+						maxchar = 90
+				else:
+						self["ergmenu"].l.setItemHeight(30)
+						afonterg = 3
+						bfonterg = 3
+						aflag = RT_HALIGN_LEFT
+						bflag = RT_HALIGN_LEFT
 						afontticker = 0
-						bfontticker = 1
-						ysize = 20
+						bfontticker = 0
+						xergstartpos = 15
+						ypos = 10
+						ysize = 25
 						axsize = 170
 						bxsize = 60
+						xpospng = 30
+						ypospng = 20
 						xsizeticker = 615	
 						ysizeticker = 25			
-						maxchar = 70
-						maxword = 11
+						maxchar = 60
 												
 				# Live Ergebnisse
@@ -801,37 +1200,37 @@
 												#self.linklist.append(x)
 										if y == 1:
-												res.append(MultiContentEntryText(pos=(10, 2), size=(axsize, ysize), font=fonterg, flags = RT_HALIGN_LEFT, text=x))
+												res.append(MultiContentEntryText(pos=(xergstartpos, ypos), size=(axsize, ysize), font=afonterg, flags=aflag, text=x))
 										if y == 2:
 												if len(self.ergold) > 0:
 														if x != self.ergold[index]:
-																res.append(MultiContentEntryText(pos=(axsize+5, 2), size=(bxsize, ysize), font=fonterg, flags = RT_HALIGN_RIGHT, text=x, color=0x00f23d21))
+																res.append(MultiContentEntryText(pos=(axsize+5, ypos), size=(bxsize, ysize), font=bfonterg, flags=bflag, text=x, color=0x00f23d21))
 														else:
-																res.append(MultiContentEntryText(pos=(axsize+5, 2), size=(bxsize, ysize), font=fonterg, flags = RT_HALIGN_RIGHT, text=x, color=0x00dab329))
+																res.append(MultiContentEntryText(pos=(axsize+5, ypos), size=(bxsize, ysize), font=bfonterg, flags=bflag, text=x, color=0x00dab329))
 												else:
-														res.append(MultiContentEntryText(pos=(axsize+5, 2), size=(bxsize, ysize), font=fonterg, flags = RT_HALIGN_RIGHT, text=x, color=0x00dab329))
+														res.append(MultiContentEntryText(pos=(axsize+5, ypos), size=(bxsize, ysize), font=bfonterg, flags=bflag, text=x, color=0x00dab329))
 										if y == 3:
 												pass
 										if y == 4:										
-												res.append(MultiContentEntryText(pos=(axsize+bxsize+15, 2), size=(axsize, ysize), font=fonterg, flags = RT_HALIGN_LEFT, text=x))
+												res.append(MultiContentEntryText(pos=(axsize+bxsize+xergstartpos, ypos), size=(axsize, ysize), font=afonterg, flags=aflag, text=x))
 										if y == 5:
 												if len(self.ergold) > 0:
 														if x != self.ergold[index]:
-																res.append(MultiContentEntryText(pos=(2*axsize+bxsize+5, 2), size=(bxsize, ysize), font=fonterg, flags = RT_HALIGN_RIGHT, text=x, color=0x00f23d21))
+																res.append(MultiContentEntryText(pos=(2*axsize+bxsize+5, ypos), size=(bxsize, ysize), font=bfonterg, flags=bflag, text=x, color=0x00f23d21))
 														else:
-																res.append(MultiContentEntryText(pos=(2*axsize+bxsize+5, 2), size=(bxsize, ysize), font=fonterg, flags = RT_HALIGN_RIGHT, text=x, color=0x00dab329))
+																res.append(MultiContentEntryText(pos=(2*axsize+bxsize+5, ypos), size=(bxsize, ysize), font=bfonterg, flags=bflag, text=x, color=0x00dab329))
 												else:
-														res.append(MultiContentEntryText(pos=(2*axsize+bxsize+5, 2), size=(bxsize, ysize), font=fonterg, flags = RT_HALIGN_RIGHT, text=x, color=0x00dab329))
+														res.append(MultiContentEntryText(pos=(2*axsize+bxsize+5, ypos), size=(bxsize, ysize), font=bfonterg, flags=bflag, text=x, color=0x00dab329))
 										if y == 6:
 												pass
 										if y == 7:												
-												res.append(MultiContentEntryText(pos=(2*axsize+2*bxsize+15, 2), size=(axsize, ysize), font=fonterg, flags = RT_HALIGN_LEFT, text=x))
+												res.append(MultiContentEntryText(pos=(2*axsize+2*bxsize+xergstartpos, ypos), size=(axsize, ysize), font=afonterg, flags=aflag, text=x))
 										if y == 8:
 												if len(self.ergold) > 0:
 														if x != self.ergold[index]:
-																res.append(MultiContentEntryText(pos=(3*axsize+2*bxsize+5, 2), size=(bxsize, ysize), font=fonterg, flags = RT_HALIGN_RIGHT, text=x, color=0x00f23d21))
+																res.append(MultiContentEntryText(pos=(3*axsize+2*bxsize+5, ypos), size=(bxsize, ysize), font=bfonterg, flags=bflag, text=x, color=0x00f23d21))
 														else:
-																res.append(MultiContentEntryText(pos=(3*axsize+2*bxsize+5, 2), size=(bxsize, ysize), font=fonterg, flags = RT_HALIGN_RIGHT, text=x, color=0x00dab329))
+																res.append(MultiContentEntryText(pos=(3*axsize+2*bxsize+5, ypos), size=(bxsize, ysize), font=bfonterg, flags=bflag, text=x, color=0x00dab329))
 												else:
-														res.append(MultiContentEntryText(pos=(3*axsize+2*bxsize+5, 2), size=(bxsize, ysize), font=fonterg, flags = RT_HALIGN_RIGHT, text=x, color=0x00dab329))
+														res.append(MultiContentEntryText(pos=(3*axsize+2*bxsize+5, ypos), size=(bxsize, ysize), font=bfonterg, flags=bflag, text=x, color=0x00dab329))
 												self.tableentries.append(res)
 										y +=1
@@ -885,33 +1284,30 @@
 										if pic != "dummy":
 												png = LoadPixmap(pluginpath + "/icons/" + pic + ".png")
-												res.append(MultiContentEntryPixmapAlphaTest(pos=(10, 10), size=(55, 55), png = png))
-										res.append(MultiContentEntryText(pos=(70, 5), size=(xsizeticker, ysizeticker), font=afontticker, flags = RT_HALIGN_LEFT, text=x,color_sel=0x00ffffff))
-										if len(livetext) > maxchar:									
+												res.append(MultiContentEntryPixmapAlphaTest(pos=(xpospng, ypospng), size=(55, 55), png = png))
+										res.append(MultiContentEntryText(pos=(100, 8), size=(xsizeticker, ysizeticker), font=afontticker, flags = RT_HALIGN_LEFT, text=x))
+										if len(livetext) > maxchar:
 												firstline = ""
 												secondline = ""
 												z=split(" ",livetext)
-												#print "--> %s %s" % (len(livetext),len(z))
-												for i in z[0:maxword]:
-														firstline = firstline + " " + i
-												for i in z[maxword:]:
+												b = 0
+												for i in z:
+														if len(firstline) < maxchar:
+														 		firstline = firstline + " " + i
+																b +=1
+														else:
+																break				   
+												for i in z[b:]:
 														secondline = secondline + " " + i
-												res.append(MultiContentEntryText(pos=(70, ysizeticker+5), size=(xsizeticker, ysizeticker), font=bfontticker, flags = RT_HALIGN_LEFT, text=strip(firstline),color_sel=0x00ffffff))										
-												res.append(MultiContentEntryText(pos=(70, 2*ysizeticker+5), size=(xsizeticker, ysizeticker), font=bfontticker, flags = RT_HALIGN_LEFT, text=strip(secondline),color_sel=0x00ffffff))
+												res.append(MultiContentEntryText(pos=(100, ysizeticker+8), size=(xsizeticker, ysizeticker), font=bfontticker, flags = RT_HALIGN_LEFT, text=strip(firstline)))										
+												res.append(MultiContentEntryText(pos=(100, 2*ysizeticker+8), size=(xsizeticker, ysizeticker), font=bfontticker, flags = RT_HALIGN_LEFT, text=strip(secondline)))
 										else:
-												res.append(MultiContentEntryText(pos=(70, ysizeticker+5), size=(xsizeticker, ysizeticker), font=bfontticker, flags = RT_HALIGN_LEFT, text=livetext))		
+												res.append(MultiContentEntryText(pos=(100, ysizeticker+8), size=(xsizeticker, ysizeticker), font=bfontticker, flags = RT_HALIGN_LEFT, text=livetext))		
 										self.tableentries.append(res)						
 										textnr -=1
-								self["tickermenu"].l.setList(self.tableentries)
-			
-# 								print self.ergold
-# 								print erg
-# 								print self.tickerold
-# 								print text[0]
-# 								print self.hideflag
-# 								print self.actmenu								
+								self["tickermenu"].l.setList(self.tableentries)							
 
 								# falls neue Ergebnisse oder neuer Tickerttext -> Screen anzeigen			
 								if not self.hideflag:
-										if self.ergold != erg and len(self.ergold) > 0:
+										if self.ergold != erg and len(self.ergold) > 0 and self.selectticker < 2:
 												self.actmenu = "ergmenu"
 												self["tickerlabel"].hide()
@@ -920,5 +1316,5 @@
 												self["ergmenu"].show()
 												self.hideScreen()
-										elif self.tickerold != text[0]:
+										elif self.tickerold != text[0] and self.selectticker <> 1:
 												self.actmenu = "tickermenu"
 												self["ergmenu"].hide()
@@ -946,5 +1342,5 @@
 				else:
 						self.hideflag = True
-						self.screenHideTimer.start(screenhidetimer)
+						self.hideTimerRestart(self.screenhidetimer)
 						self.show()
 								
@@ -955,29 +1351,19 @@
 						reactor.callLater(1,self.exit)
 				else:
-						config.plugins.buliticker.actmenu.value = self.actmenu
-						config.plugins.buliticker.actmenu.save()
-						configfile.save()
+						config.plugins.buliticker.link.value = self.konfurl
+						config.plugins.buliticker.link.save()
+						config.plugins.buliticker.acttickermenu.value = self.actmenu
+						config.plugins.buliticker.acttickermenu.save()
 						self.close()
-	
-#######################
-
-class ItemList(MenuList):
-		def __init__(self, items, enableWrapAround = True):
-			MenuList.__init__(self, items, enableWrapAround, eListboxPythonMultiContent)
-			self.l.setFont(-1, gFont("Regular", 22))
-			self.l.setFont(0, gFont("Regular", 20))
-			self.l.setFont(1, gFont("Regular", 18))
-			self.l.setFont(2, gFont("Regular", 16))
-			self.l.setFont(3, gFont("Regular", 15))
-		
-#############################						
+					
+#############################################################
 											        
 def main(session, **kwargs):
 			session.open(ShowFullTicker)
-						
+
 def Plugins(path,**kwargs):
 			global pluginpath
 			pluginpath = path
- 			return PluginDescriptor(
+			return PluginDescriptor(
 					name="Bundesliga Liveticker", 
 					description="1./2. Bundesliga Ticker (c)linpop.zdf.de", 
@@ -985,2 +1371,4 @@
 					where = [ PluginDescriptor.WHERE_EXTENSIONSMENU, PluginDescriptor.WHERE_PLUGINMENU ],
 					fnc=main)
+
+          
