From 05f347131fb660b5714b4313966b5bcb593c20f7 Mon Sep 17 00:00:00 2001
From: "M. Voerman" <rekordc@gmail.com>
Date: Thu, 13 Nov 2014 23:42:10 +0100
Subject: Some file structure changes

---
 blue.css                |  384 ----
 channels.js             | 3619 ---------------------------------
 images/background.png   |  Bin 0 -> 33702 bytes
 images/mute.png         |  Bin 0 -> 9001 bytes
 images/osd-bg.png       |  Bin 0 -> 993 bytes
 images/unmute.png       |  Bin 0 -> 7472 bytes
 index.html              |   12 +-
 javascript/channels.js  | 3619 +++++++++++++++++++++++++++++++++
 javascript/main.js      | 5048 +++++++++++++++++++++++++++++++++++++++++++++++
 javascript/settings.js  |  371 ++++
 javascript/settings2.js |  115 ++
 lang_dut.js             |  120 --
 lang_eng.js             |  120 --
 lang_ger.js             |  119 --
 languages/lang_dut.js   |  120 ++
 languages/lang_eng.js   |  120 ++
 languages/lang_ger.js   |  119 ++
 main.js                 | 5048 -----------------------------------------------
 mute.png                |  Bin 9001 -> 0 bytes
 settings.js             |  371 ----
 settings2.js            |  113 --
 skins/black.css         |  420 ++++
 skins/blue.css          |  384 ++++
 style_1.css             |  104 -
 unmute.png              |  Bin 7472 -> 0 bytes
 25 files changed, 10322 insertions(+), 10004 deletions(-)
 delete mode 100644 blue.css
 delete mode 100644 channels.js
 create mode 100644 images/background.png
 create mode 100644 images/mute.png
 create mode 100644 images/osd-bg.png
 create mode 100644 images/unmute.png
 create mode 100644 javascript/channels.js
 create mode 100644 javascript/main.js
 create mode 100644 javascript/settings.js
 create mode 100644 javascript/settings2.js
 delete mode 100755 lang_dut.js
 delete mode 100755 lang_eng.js
 delete mode 100644 lang_ger.js
 create mode 100644 languages/lang_dut.js
 create mode 100644 languages/lang_eng.js
 create mode 100644 languages/lang_ger.js
 delete mode 100644 main.js
 delete mode 100644 mute.png
 delete mode 100644 settings.js
 delete mode 100644 settings2.js
 create mode 100644 skins/black.css
 create mode 100644 skins/blue.css
 delete mode 100644 style_1.css
 delete mode 100644 unmute.png

diff --git a/blue.css b/blue.css
deleted file mode 100644
index b810e92..0000000
--- a/blue.css
+++ /dev/null
@@ -1,384 +0,0 @@
-	body{
-	backgroundColor : #ccc;
-	}
-
-	.bluekey {
-	color	: blue;
-	}
-	.redkey {
-	color	: red;
-	}
-	.yellowkey {
-	color	:yellow;
-	}
-	.greenkey {
-	color	:green;
-	}
-	.mainfont {
-	font-size:49px;
-	color:black;
-	}
-	
-	.notset {
-	color	:grey;
-	}
-
-	.select {
-	background	:#fc5;
-	-webkit-border-radius:25px;
-	color:black;
-	font-size:49px;
-	}
-
-	.mediaselect {
-	background	:#fc5;
-	-webkit-border-radius:25px;
-	color:black;
-	font-size:38px;
-	}
-
-	pre.mediamenu {
-	font-size:38px;
-	color:black;
-	}
-
-	pre.deletefile {
-	text-align	: center;
-	color		:white;
-	font-size	:36px;
-	background	:red;
-	}
-
-	pre.nonfree {
-	text-align	: center;
-	color		:white;
-	font-size	:36px;
-	background	:red;
-	}
-
-
-	p.epg_head { 
-	color:white;
-	text-align: center;
-	}
-
-	p.epg_avinfo {
-	color:black;
-	text-align: center;
-	}
-
-	p.epg_title {
-	color:white;
-	text-align: center;
-	}
-
-	p.epg_info {
-	color:yellow;
-	text-align: center;
-	}
-
-	pre.color_switchtimer {
-	background		: #660066;
-	}
-
-	pre.color_default {
-	background		: green;
-	}
-
-	pre.color_error {
-	background		: red;
-	}
-
-
-
-	videoplane#videoplane {
-		position:absolute;
-		left:0px;
-		top:0px;
-		height:100%;
-		width:100%;
-		z-index:500;
-	}
-
-	h1.mainmenu {
-	font-size:66px;
-	color:white;
-	text-align: center;
-	}
-
-	pre.mainmenu {
-	font-size:49px;
-	color:black;
-	}
-	pre.mainhead {
-	font-size:66px;
-	color:white;
-	text-align: center;
-	}
-
-	pre.media {
-	color:white;
-	font-size:49px;
-	}
-
-	pre.epgtimerinfo {
-	color:white;
-	text-align: center;
-	}
-
-	p.epgtimerinfo {
-	text-align: center;
-	}
-
-
-	p.epg {
-	font-size:36px;
-	color:black;
-	text-align: center;
-	}
-	
-	p.list {
-	font-size:34px;
-	color:black;
-	text-align: center;
-	}
-
-	p.osdtimer {
-	font-size:34px;
-	color:black;
-	}
-
-
-	div#osdmain {
-	position		: absolute;
-	z-index			: 505;
-	width			: 80%;
-	top			: 60%;
-	bottom			: 9%;
-	left			: 10%;
-	-webkit-border-radius		: 50px;
-	background		: #3366ff;
-	}
-
-	div#osdnr {
-	position	 	: absolute;
-	z-index			: 505;
-	width 			: 13%;
-	height			: 30%;
-	left			: 3%;
-	top			: -15%;
-	-webkit-border-radius	: 25px;
-	background		: red;
-	color			: black;
-		font-size:81px;
-	text-align: center;
-	}
-	
-	div#osdname {
-	z-index			: 505;
-		position	: absolute;
-		width		: 69%;
-		height		: 4%;
-		left		: 3%;
-		top 		: 20%;
-		color		: black;
-		font-size:51px;
-	}
-
-
-	div#osdtimer {
-	z-index			: 505;
-		position		: absolute;
-		width			: 7%;
-		left			: 5%;
-		top			: 30%;
-	}
-
-	div#osdtime {
-	z-index			: 505;
-		position	: absolute;
-		width		: 42%;
-		right		: 5%;
-		top		: 7%;
-		color		: white;
-		font-size:35px;
-		text-align: right;
-	}
-
-	
-	div#osdepg {
-	z-index			: 505;
-		position	: absolute;
-		width		: 63%;
-		left		: 17%;
-		top		: 30%;
-		color		: white;
-		font-size:36px;
-	}
-	
-	div#osdca { 
-	z-index			: 505;
-		position	: absolute;
-		width		: 5%;
-		left		: 75%;
-		top		: 20%;
-		color		: black;
-		font-size:60px;
-	}
-
-
-	div#channellist { 
-	z-index			: 400;
-		position	: absolute;
-		width		: 100%;
-		height		: 48%;
-		left		: 7%;
-		top		: 4%;
-	background		: #bbb;
-	}
-
-	div#colorkeys { 
-	z-index			: 401;
-		position	: absolute;
-		width		: 100%;
-		left		: 10%;
-		top		: 84%;
-		font-size:36px;
-	}
-
-	div#chanlistepg { 
-	z-index			: 402;
-		position	: absolute;
-		width		: 42%;
-		left		: 7%;
-		top		: 50%;
-	}
-
-	div#osdvolume { 
-	z-index			: 501;
-		position	: absolute;
-		width		: 63%;
-		left		: 10%;
-		top		: 80%;
-		opacity		: 0;
-		color		: green;
-		font-size:66px;
-	}
-
-	div#osdmedia { 
-		width		:80%;
-		position	:absolute;
-		left		:10%;
-		top		:60%;
-		z-index		:506;
-		opacity		:0;
-		-webkit-border-radius:50px;
-	background		: #3366ff;
-	}
-
-	div#osdmediatime {
-	z-index			: 506;
-		position	: absolute;
-		width		: 42%;
-		right		: 15%;
-		top		: 63%;
-		color		: white;
-		font-size:35px;
-		text-align: right;
-	}
-
-
-
-	div#schedule {
-	width		:50%;
-	height		:75%;
-	position	:absolute;
-	left		:25%;
-	top		:10%;
-	opacity		:0;
-	z-index		:510;
-	-webkit-border-radius:50px;
-	background		: #3366ff;
-	}
-
-	div#osdmute {
-	width		:7%; 
-	position	:absolute; 
-	left		:76%; 
-	top		:9%;
-	z-index		:515;
-	opacity		:0;
-	}
-
-	div#osdlang {
-	width		:7%;
-	position	:absolute;
-	left		:76%;
-	top		:9%;
-	z-index		:515;
-	opacity		:0;
-	color		:white;
-		font-size:30px;
-	}
-
-	div#mainmenu {
-	width		:80%;
-	position	:absolute;
-	left		:10%;
-	top		:10%;
-	bottom		:10%;
-	z-index		:520;
-	opacity		:0;
-	-webkit-border-radius:50px;
-	background		: #3366ff;
-	}
-
-	div#medialist {
-	width		:80%;
-	position	:absolute;
-	left		:10%;
-	top		:10%;
-	bottom		:10%;
-	z-index		:520;
-	opacity		:0;
-	-webkit-border-radius:50px;
-	background		: #3366ff;
-	}
-
-	div#switchtimer {
-	width		:45%;
-	position	:absolute;
-	left		:21%;
-	top		:26%;
-	z-index		:530;
-	opacity		:0;
-	-webkit-border-radius:25px;
-	color		:white;
-		font-size:36px;
-	background	:green;
-	}
-
-	div#osdepginfo {
-	width		:80%;
-	position	:absolute;
-	left		:10%;
-	top		:10%;
-	z-index		:525;
-	opacity		:0;
-	-webkit-border-radius:50px;
-	background		: #3366ff;
-		font-size:39px;
-	}
-
-	div#osdepginfonext {
-	width		:80%;
-	position	:absolute;
-	left		:10%;
-	top		:10%;
-	z-index		:525;
-	opacity		:0;
-	-webkit-border-radius:50px;
-	background		: #3366ff;
-		font-size:39px;
-	}
-
diff --git a/channels.js b/channels.js
deleted file mode 100644
index 38a3800..0000000
--- a/channels.js
+++ /dev/null
@@ -1,3619 +0,0 @@
-channelsnames[1]="NPO1 HD";
-channels[1]="S23.5E-3-3225-21029";
-channelsnames[2]="NPO2 HD";
-channels[2]="S23.5E-3-3202-6080";
-channelsnames[3]="NPO3 HD";
-channels[3]="S23.5E-3-3225-21040";
-channelsnames[4]="RTL4 HD";
-channels[4]="S23.5E-3-3208-7020";
-channelsnames[5]="RTL5 HD";
-channels[5]="S23.5E-3-3208-7023";
-channelsnames[6]="SBS6 HD";
-channels[6]="S23.5E-3-3202-6090";
-channelsnames[7]="RTL7 HD";
-channels[7]="S23.5E-3-3208-7027";
-channelsnames[8]="Veronica/DisneyXD HD";
-channels[8]="S23.5E-3-3225-21035";
-channelsnames[9]="NET5 HD";
-channels[9]="S23.5E-3-3225-21020";
-channelsnames[10]="BVN TV";
-channels[10]="S19.2E-1-1048-4320";
-channelsnames[11]="RTL8 HD";
-channels[11]="S23.5E-3-3208-7036";
-channelsnames[12]="Nickelodeon Nederland";
-channels[12]="S19.2E-1-1078-28679";
-channelsnames[13]="ComedyCentral";
-channels[13]="S23.5E-3-3211-20826";
-channelsnames[14]="NPO Politiek/NPO Best";
-channels[14]="S23.5E-3-3202-6010";
-channelsnames[15]="NPO Doc";
-channels[15]="S23.5E-3-3202-6015";
-channelsnames[16]="NPO Zapp Xtra/NPO Humor TV";
-channels[16]="S23.5E-3-3202-6025";
-channelsnames[17]="NostalgieNet";
-channels[17]="S23.5E-3-3222-20956";
-channelsnames[18]="Discovery HD";
-channels[18]="S23.5E-3-3208-7010";
-channelsnames[19]="History HD DUT";
-channels[19]="S23.5E-3-3205-5151";
-channelsnames[20]="Travel Channel HD WE";
-channels[20]="S23.5E-3-3221-5056";
-channelsnames[21]="NGC HD";
-channels[21]="S23.5E-3-3222-20965";
-channelsnames[22]="Viasat HD";
-channels[22]="S23.5E-3-3208-7040";
-channelsnames[23]="Animal Planet";
-channels[23]="S23.5E-3-3202-6040";
-channelsnames[24]="Planet";
-channels[24]="S19.2E-53-1097-2044";
-channelsnames[25]="Investigation Discovery";
-channels[25]="S23.5E-3-3202-6045";
-channelsnames[26]="Crime Invest.";
-channels[26]="S23.5E-3-3208-7052";
-channelsnames[27]="Crime and Invest. CZ";
-channels[27]="S23.5E-3-3208-7053";
-channelsnames[28]="Discovery CZ";
-channels[28]="S23.5E-3-3211-20855";
-channelsnames[29]="Discovery HD CZ";
-channels[29]="S23.5E-3-3208-7011";
-channelsnames[30]="MOTORS TV";
-channels[30]="S19.2E-1-1110-9509";
-channelsnames[31]="Discovery Channel";
-channels[31]="S23.5E-3-3211-20833";
-channelsnames[32]="Nat Geo Wild HD DUT";
-channels[32]="S23.5E-3-3226-709";
-channelsnames[50]="DMAX";
-channels[50]="S19.2E-133-33-63";
-channelsnames[51]="Discovery";
-channels[51]="S28.2E-2-2009-6201";
-channelsnames[52]="Discovery";
-channels[52]="S28.2E-2-2009-6210";
-channelsnames[53]="Discovery+1";
-channels[53]="S28.2E-2-2009-6204";
-channelsnames[54]="Disc.History";
-channels[54]="S28.2E-2-2009-6207";
-channelsnames[55]="Disc.History+1";
-channels[55]="S28.2E-2-2315-52435";
-channelsnames[56]="TLC";
-channels[56]="S28.2E-2-2009-6233";
-channelsnames[57]="TLC+1";
-channels[57]="S28.2E-2-2315-52446";
-channelsnames[58]="Disc.Science";
-channels[58]="S28.2E-2-2009-6206";
-channelsnames[59]="Disc.Sci+1";
-channels[59]="S28.2E-2-2315-52410";
-channelsnames[60]="Disc.Turbo";
-channels[60]="S28.2E-2-2009-6209";
-channelsnames[61]="Discovery Shed";
-channels[61]="S28.2E-2-2315-52440";
-channelsnames[62]="Home & Health";
-channels[62]="S28.2E-2-2009-6208";
-channelsnames[63]="Home&Health+";
-channels[63]="S28.2E-2-2315-52450";
-channelsnames[64]="ID";
-channels[64]="S28.2E-2-2315-52400";
-channelsnames[65]="ID+1";
-channels[65]="S28.2E-2-2315-52426";
-channelsnames[66]="DMAX";
-channels[66]="S28.2E-2-2315-52415";
-channelsnames[67]="DMAX+1";
-channels[67]="S28.2E-2-2315-52420";
-channelsnames[68]="QUEST";
-channels[68]="S28.2E-2-2009-6211";
-channelsnames[69]="QUEST+1";
-channels[69]="S28.2E-2-2315-52430";
-channelsnames[70]="Animal Planet";
-channels[70]="S28.2E-2-2009-6202";
-channelsnames[71]="Animal Plnt+1";
-channels[71]="S28.2E-2-2315-52405";
-channelsnames[72]="Eden";
-channels[72]="S28.2E-2-2006-6502";
-channelsnames[73]="Eden+1";
-channels[73]="S28.2E-2-2015-7610";
-channelsnames[74]="YESTERDAY";
-channels[74]="S28.2E-2-2006-6505";
-channelsnames[75]="YESTERDAY+1";
-channels[75]="S28.2E-2-2015-7650";
-channelsnames[76]="Drama";
-channels[76]="S28.2E-2-2006-6522";
-channelsnames[77]="CI";
-channels[77]="S28.2E-2-2025-4802";
-channelsnames[78]="CI +1";
-channels[78]="S28.2E-2-2301-52169";
-channelsnames[79]="History";
-channels[79]="S28.2E-2-2025-4653";
-channelsnames[80]="History +1 hour";
-channels[80]="S28.2E-2-2025-5003";
-channelsnames[81]="H2";
-channels[81]="S28.2E-2-2304-55205";
-channelsnames[82]="Nat Geo";
-channels[82]="S28.2E-2-2025-4805";
-channelsnames[83]="Nat Geo+1hr";
-channels[83]="S28.2E-2-2025-4806";
-channelsnames[84]="Nat Geo Wild";
-channels[84]="S28.2E-2-2025-4807";
-channelsnames[85]="Real Time";
-channels[85]="S13.0E-64511-5700-4324";
-channelsnames[86]="Real Time +1";
-channels[86]="S13.0E-64511-800-1469";
-channelsnames[100]="Sky Premiere";
-channels[100]="S28.2E-2-2007-4404";
-channelsnames[101]="Sky Prem+1";
-channels[101]="S28.2E-2-2007-4405";
-channelsnames[102]="Sky Showcase";
-channels[102]="S28.2E-2-2030-4602";
-channelsnames[103]="Sky Comedy";
-channels[103]="S28.2E-2-2007-4303";
-channelsnames[104]="Sky Action";
-channels[104]="S28.2E-2-2007-4302";
-channelsnames[105]="Sky Family";
-channels[105]="S28.2E-2-2007-4403";
-channelsnames[106]="Sky Thriller";
-channels[106]="S28.2E-2-2007-4406";
-channelsnames[107]="Sky DramaRom";
-channels[107]="S28.2E-2-2007-5502";
-channelsnames[108]="Sky ScFi/Horror";
-channels[108]="S28.2E-2-2007-4304";
-channelsnames[109]="Sky Superhero";
-channels[109]="S28.2E-2-2007-5650";
-channelsnames[110]="Sky Select";
-channels[110]="S28.2E-2-2007-4306";
-channelsnames[111]="Sky Disney";
-channels[111]="S28.2E-2-2007-4308";
-channelsnames[112]="TCM";
-channels[112]="S28.2E-2-2055-6038";
-channelsnames[113]="TCM+1";
-channels[113]="S28.2E-2-2301-52175";
-channelsnames[114]="Movies 24";
-channels[114]="S28.2E-2-2303-52265";
-channelsnames[115]="Movies 24+";
-channels[115]="S28.2E-2-2303-52270";
-channelsnames[116]="HBO";
-channels[116]="S23.5E-3-3209-13104";
-channelsnames[117]="HBO 2";
-channels[117]="S23.5E-3-3209-13109";
-channelsnames[118]="Cinemax";
-channels[118]="S23.5E-3-3209-13113";
-channelsnames[119]="Filmbox";
-channels[119]="S23.5E-3-3210-5071";
-channelsnames[120]="iFILM English";
-channels[120]="S13.0E-318-9000-9007";
-channelsnames[130]="Film1 Premiere HD";
-channels[130]="S23.5E-3-3222-20955";
-channelsnames[131]="Film1 Comedy & Kids";
-channels[131]="S23.5E-3-3222-20910";
-channelsnames[132]="Film1 Sundance";
-channels[132]="S23.5E-3-3222-20915";
-channelsnames[133]="Film1 Action";
-channels[133]="S23.5E-3-3222-20920";
-channelsnames[134]="HBO HD";
-channels[134]="S23.5E-3-3225-21050";
-channelsnames[135]="HBO 2";
-channels[135]="S23.5E-3-3202-6067";
-channelsnames[136]="HBO 3";
-channels[136]="S23.5E-3-3202-6068";
-channelsnames[137]="Film+ CZ";
-channels[137]="S23.5E-3-3211-20863";
-channelsnames[138]="MGM";
-channels[138]="S23.5E-3-3210-5072";
-channelsnames[150]="RTL Crime";
-channels[150]="S19.2E-133-1-27";
-channelsnames[151]="RTLNITRO";
-channels[151]="S19.2E-1-1089-12061";
-channelsnames[152]="Universal";
-channels[152]="S28.2E-2-2303-52255";
-channelsnames[153]="Universal+1";
-channels[153]="S28.2E-2-2303-52220";
-channelsnames[154]="ComedyCentral";
-channels[154]="S28.2E-2-2079-51084";
-channelsnames[155]="ComedyCent+1";
-channels[155]="S28.2E-2-2079-51085";
-channelsnames[156]="ComedyXtra";
-channels[156]="S28.2E-2-2079-51086";
-channelsnames[157]="ComedyXtra+1";
-channels[157]="S28.2E-2-2079-51087";
-channelsnames[158]="GOLD";
-channels[158]="S28.2E-2-2006-6504";
-channelsnames[159]="GOLD +1";
-channels[159]="S28.2E-2-2015-7605";
-channelsnames[160]="Dave";
-channels[160]="S28.2E-2-2006-6506";
-channelsnames[161]="Dave ja vu";
-channels[161]="S28.2E-2-2015-7624";
-channelsnames[162]="Syfy";
-channels[162]="S28.2E-2-2303-52250";
-channelsnames[163]="Syfy +1";
-channels[163]="S28.2E-2-2303-52280";
-channelsnames[164]="alibi";
-channels[164]="S28.2E-2-2006-6521";
-channelsnames[165]="alibi +1";
-channels[165]="S28.2E-2-2015-7630";
-channelsnames[166]="FOX";
-channels[166]="S28.2E-2-2021-5515";
-channelsnames[167]="FOX+";
-channels[167]="S28.2E-2-2023-5402";
-channelsnames[168]="Watch";
-channels[168]="S28.2E-2-2006-6520";
-channelsnames[169]="Watch +1";
-channels[169]="S28.2E-2-2015-7615";
-channelsnames[180]="RTL lounge";
-channels[180]="S23.5E-3-3208-7042";
-channelsnames[181]="TLC";
-channels[181]="S23.5E-3-3222-20949";
-channelsnames[182]="13th Street";
-channels[182]="S23.5E-3-3222-20966";
-channelsnames[183]="SyFy";
-channels[183]="S23.5E-3-3208-7054";
-channelsnames[190]="FOX Channel";
-channels[190]="S23.5E-3-3202-6030";
-channelsnames[191]="FOXlife";
-channels[191]="S23.5E-3-3225-21055";
-channelsnames[201]="BBC One Lon";
-channels[201]="S28.2E-2-2045-6301";
-channelsnames[202]="BBC Two Eng";
-channels[202]="S28.2E-2-2045-6302";
-channelsnames[203]="BBC Three";
-channels[203]="S28.2E-2-2048-10351";
-channelsnames[204]="BBC Four";
-channels[204]="S28.2E-2-2045-6316";
-channelsnames[205]="BBC NEWS";
-channels[205]="S28.2E-2-2048-10358";
-channelsnames[206]="BBC Parliament";
-channels[206]="S28.2E-2-2046-10307";
-channelsnames[211]="ITV";
-channels[211]="S28.2E-2-2044-10060";
-channelsnames[212]="ITV +1";
-channels[212]="S28.2E-2-2054-10255";
-channelsnames[213]="ITV2";
-channels[213]="S28.2E-2-2044-10070";
-channelsnames[214]="ITV2+1";
-channels[214]="S28.2E-2-2053-10165";
-channelsnames[215]="ITV3";
-channels[215]="S28.2E-2-2054-10260";
-channelsnames[216]="ITV3+1";
-channels[216]="S28.2E-2-2054-10261";
-channelsnames[217]="ITV4";
-channels[217]="S28.2E-2-2044-10072";
-channelsnames[218]="ITV4+1";
-channels[218]="S28.2E-2-2049-10015";
-channelsnames[220]="Channel 4";
-channels[220]="S28.2E-2-2041-9211";
-channelsnames[221]="Channel 4 +1";
-channels[221]="S28.2E-2-2042-8311";
-channelsnames[222]="E4";
-channels[222]="S28.2E-2-2042-8305";
-channelsnames[223]="E4+1";
-channels[223]="S28.2E-2-2042-8300";
-channelsnames[224]="More4";
-channels[224]="S28.2E-2-2042-8340";
-channelsnames[225]="More4 +1";
-channels[225]="S28.2E-2-2041-9230";
-channelsnames[226]="4seven";
-channels[226]="S28.2E-2-2068-21250";
-channelsnames[227]="4Music";
-channels[227]="S28.2E-2-2040-12000";
-channelsnames[228]="Film4";
-channels[228]="S28.2E-2-2041-9220";
-channelsnames[229]="Film4 +1";
-channels[229]="S28.2E-2-2041-9225";
-channelsnames[230]="Channel 5";
-channels[230]="S28.2E-2-2057-7700";
-channelsnames[231]="Channel 5+1";
-channels[231]="S28.2E-2-2057-7720";
-channelsnames[232]="5 USA";
-channels[232]="S28.2E-2-2057-7710";
-channelsnames[233]="5 USA +1";
-channels[233]="S28.2E-2-2057-7711";
-channelsnames[234]="5*";
-channels[234]="S28.2E-2-2057-7715";
-channelsnames[235]="Channel 5+24";
-channels[235]="S28.2E-2-2057-7716";
-channelsnames[240]="CBS Action";
-channels[240]="S28.2E-2-2311-52007";
-channelsnames[241]="CBS Drama";
-channels[241]="S28.2E-2-2304-50903";
-channelsnames[242]="CBS Reality";
-channels[242]="S28.2E-2-2313-53275";
-channelsnames[243]="CBS Reality+1";
-channels[243]="S28.2E-2-2301-52102";
-channelsnames[244]="horror channel";
-channels[244]="S28.2E-2-2301-52105";
-channelsnames[245]="horror ch+1";
-channels[245]="S28.2E-2-2311-52002";
-channelsnames[246]="more>movies";
-channels[246]="S28.2E-2-2076-54110";
-channelsnames[247]="m>movies+1";
-channels[247]="S28.2E-2-2081-51120";
-channelsnames[248]="movies4men";
-channels[248]="S28.2E-2-2081-51116";
-channelsnames[249]="mov4men+1";
-channels[249]="S28.2E-2-2081-51118";
-channelsnames[250]="True Drama";
-channels[250]="S28.2E-2-2314-53380";
-channelsnames[251]="True Ent";
-channels[251]="S28.2E-2-2314-53375";
-channelsnames[252]="True Christmas";
-channels[252]="S28.2E-2-2314-53320";
-channelsnames[253]="True Movies 2";
-channels[253]="S28.2E-2-2314-53325";
-channelsnames[254]="RTE One";
-channels[254]="S28.2E-2-2043-9601";
-channelsnames[255]="RTE2";
-channels[255]="S28.2E-2-2043-9602";
-channelsnames[256]="Setanta Ireland";
-channels[256]="S28.2E-2-2081-51111";
-channelsnames[257]="Setanta Sports1";
-channels[257]="S28.2E-2-2081-51112";
-channelsnames[260]="Sky Arts 1";
-channels[260]="S28.2E-2-2030-4604";
-channelsnames[261]="Sky Arts 2";
-channels[261]="S28.2E-2-2023-4900";
-channelsnames[262]="Sky1";
-channels[262]="S28.2E-2-2030-4703";
-channelsnames[263]="Sky2";
-channels[263]="S28.2E-2-2026-4752";
-channelsnames[264]="Sky Atlantic";
-channels[264]="S28.2E-2-2030-4712";
-channelsnames[265]="Sky Living";
-channels[265]="S28.2E-2-2030-6028";
-channelsnames[266]="Sky Living+1";
-channels[266]="S28.2E-2-2030-6035";
-channelsnames[267]="Sky Livingit";
-channels[267]="S28.2E-2-2025-6030";
-channelsnames[268]="Sky Livingit+1";
-channels[268]="S28.2E-2-2031-6025";
-channelsnames[269]="Sony TV";
-channels[269]="S28.2E-2-2311-52005";
-channelsnames[270]="Sony TV +1";
-channels[270]="S28.2E-2-2604-54325";
-channelsnames[271]="Sony Movies";
-channels[271]="S28.2E-2-2081-51117";
-channelsnames[272]="Sony Movies+1";
-channels[272]="S28.2E-2-2081-51119";
-channelsnames[273]="E!";
-channels[273]="S28.2E-0-0-53200";
-channelsnames[274]="E!";
-channels[274]="S28.2E-2-2313-53200";
-channelsnames[275]="Home";
-channels[275]="S28.2E-2-2006-6501";
-channelsnames[276]="Home+1";
-channels[276]="S28.2E-2-2015-7600";
-channelsnames[277]="Good Food";
-channels[277]="S28.2E-2-2006-6508";
-channelsnames[278]="Good Food +1";
-channels[278]="S28.2E-2-2015-7626";
-channelsnames[279]="Food Network";
-channels[279]="S28.2E-2-2313-53260";
-channelsnames[280]="Food Netwrk+1";
-channels[280]="S28.2E-2-2313-53270";
-channelsnames[281]="wedding tv";
-channels[281]="S28.2E-2-2402-55510";
-channelsnames[282]="The Active Ch";
-channels[282]="S28.2E-2-2614-55330";
-channelsnames[283]="Fitness TV";
-channels[283]="S28.2E-2-2602-54165";
-channelsnames[284]="BET|BlackEntTv";
-channels[284]="S28.2E-2-2079-51081";
-channelsnames[285]="BET +1";
-channels[285]="S28.2E-2-2079-51082";
-channelsnames[286]="Information TV";
-channels[286]="S28.2E-2-2313-53230";
-channelsnames[287]="Showcase";
-channels[287]="S28.2E-2-2313-53280";
-channelsnames[288]="Showcase 2";
-channels[288]="S28.2E-2-2601-54051";
-channelsnames[289]="Horse & Country";
-channels[289]="S28.2E-2-2076-54140";
-channelsnames[300]="CBBC";
-channels[300]="S28.2E-2-2048-10352";
-channelsnames[301]="CBeebies";
-channels[301]="S28.2E-2-2045-6318";
-channelsnames[302]="CITV";
-channels[302]="S28.2E-2-2044-10071";
-channelsnames[303]="KiKA";
-channels[303]="S19.2E-1-1079-28008";
-channelsnames[304]="RiC";
-channels[304]="S19.2E-1-1117-13019";
-channelsnames[305]="Nickelodeon";
-channels[305]="S19.2E-1-1078-28680";
-channelsnames[306]="Tiny Pop";
-channels[306]="S28.2E-2-2314-53330";
-channelsnames[307]="Tiny Pop +1";
-channels[307]="S28.2E-2-2314-53345";
-channelsnames[308]="POP";
-channels[308]="S28.2E-2-2314-53340";
-channelsnames[309]="Kix";
-channels[309]="S28.2E-2-2314-53350";
-channelsnames[310]="PopGirl";
-channels[310]="S28.2E-2-2314-53360";
-channelsnames[311]="POP+1";
-channels[311]="S28.2E-2-2314-53370";
-channelsnames[312]="NICKELODEON AT";
-channels[312]="S19.2E-133-7-61";
-channelsnames[313]="Baby TV";
-channels[313]="S13.0E-318-11500-17309";
-channelsnames[314]="duck tv DUT";
-channels[314]="S23.5E-3-3210-5141";
-channelsnames[315]="Minimax";
-channels[315]="S23.5E-3-3219-13132";
-channelsnames[316]="Boomerang";
-channels[316]="S19.2E-1-1068-28527";
-channelsnames[317]="Nick Jr.";
-channels[317]="S28.2E-2-2029-5563";
-channelsnames[318]="Nick Jr+1";
-channels[318]="S28.2E-2-2079-51090";
-channelsnames[319]="Nick Jr Peppa";
-channels[319]="S28.2E-2-2079-51089";
-channelsnames[320]="Nick Jr France";
-channels[320]="S19.2E-1-1078-28677";
-channelsnames[321]="Nick Jr.";
-channels[321]="S13.0E-318-1400-30";
-channelsnames[322]="Nick Jr";
-channels[322]="S13.0E-64511-800-1424";
-channelsnames[323]="Nickelodeon";
-channels[323]="S28.2E-2-2029-5560";
-channelsnames[324]="Nickelodeon+1";
-channels[324]="S28.2E-2-2029-5561";
-channelsnames[325]="DISNEY JR";
-channels[325]="S30.0W-49-4-71";
-channelsnames[326]="Disney Junior";
-channels[326]="S28.2E-2-2011-9103";
-channelsnames[327]="Disney Junior+";
-channels[327]="S28.2E-2-2011-9106";
-channelsnames[328]="BabyTV";
-channels[328]="S28.2E-2-2029-5564";
-channelsnames[329]="Boomerang";
-channels[329]="S28.2E-2-2074-50205";
-channelsnames[330]="Boomerang +1";
-channels[330]="S28.2E-2-2074-50210";
-channelsnames[331]="Cartoon Netwrk";
-channels[331]="S28.2E-2-2074-50200";
-channelsnames[332]="Cartoonito";
-channels[332]="S28.2E-2-2021-5521";
-channelsnames[333]="CN+1";
-channels[333]="S28.2E-2-2074-50215";
-channelsnames[334]="Disney Chnl";
-channels[334]="S28.2E-2-2011-9102";
-channelsnames[335]="Disney Chnl+1";
-channels[335]="S28.2E-2-2011-9105";
-channelsnames[336]="Disney XD";
-channels[336]="S28.2E-2-2011-9101";
-channelsnames[337]="Disney XD+1";
-channels[337]="S28.2E-2-2011-9104";
-channelsnames[338]="Nicktoons";
-channels[338]="S28.2E-2-2029-5562";
-channelsnames[339]="NICK JR";
-channels[339]="S30.0W-49-7-75";
-channelsnames[340]="Boomerang";
-channels[340]="S23.5E-3-3202-6035";
-channelsnames[341]="Disney Channel";
-channels[341]="S23.5E-3-3202-6065";
-channelsnames[342]="Cartoon";
-channels[342]="S23.5E-3-3222-20940";
-channelsnames[343]="JimJam";
-channels[343]="S23.5E-3-3202-6003";
-channelsnames[344]="JimJam CZ";
-channels[344]="S23.5E-3-3202-6053";
-channelsnames[345]="Disney CZ";
-channels[345]="S23.5E-3-3211-20857";
-channelsnames[346]="KetOp12";
-channels[346]="S23.5E-3-3222-21112";
-channelsnames[347]="VTMKazoom/Kanaal Z";
-channels[347]="S23.5E-3-3222-21116";
-channelsnames[401]="Das Erste";
-channels[401]="S19.2E-1-1101-28106";
-channelsnames[402]="ZDF";
-channels[402]="S19.2E-1-1079-28006";
-channelsnames[403]="3sat";
-channels[403]="S19.2E-1-1079-28007";
-channelsnames[404]="WDR Düsseldorf";
-channels[404]="S19.2E-1-1201-28308";
-channelsnames[405]="NDR FS HH";
-channels[405]="S19.2E-1-1073-28225";
-channelsnames[406]="MDR Thüringen";
-channels[406]="S19.2E-1-1073-28230";
-channelsnames[407]="Bayerisches FS Nord";
-channels[407]="S19.2E-1-1101-28110";
-channelsnames[408]="SWR Fernsehen BW";
-channels[408]="S19.2E-1-1101-28113";
-channelsnames[409]="ARD-alpha";
-channels[409]="S19.2E-1-1093-28487";
-channelsnames[410]="hr-fernsehen";
-channels[410]="S19.2E-1-1101-28108";
-channelsnames[411]="Radio Bremen TV";
-channels[411]="S19.2E-1-1201-28385";
-channelsnames[412]="tagesschau24";
-channels[412]="S19.2E-1-1051-28721";
-channelsnames[413]="Einsfestival";
-channels[413]="S19.2E-1-1051-28722";
-channelsnames[414]="EinsPlus";
-channels[414]="S19.2E-1-1051-28723";
-channelsnames[415]="ZDFinfo";
-channels[415]="S19.2E-1-1079-28011";
-channelsnames[416]="zdf.kultur";
-channels[416]="S19.2E-1-1079-28016";
-channelsnames[417]="zdf_neo";
-channels[417]="S19.2E-1-1079-28014";
-channelsnames[418]="arte";
-channels[418]="S19.2E-1-1051-28724";
-channelsnames[419]="PHOENIX";
-channels[419]="S19.2E-1-1051-28725";
-channelsnames[420]="SAT.1 Gold";
-channels[420]="S19.2E-1-1107-17504";
-channelsnames[421]="kabel eins";
-channels[421]="S19.2E-1-1107-17502";
-channelsnames[422]="n-tv";
-channels[422]="S19.2E-1-1089-12090";
-channelsnames[423]="N24";
-channels[423]="S19.2E-1-1107-17503";
-channelsnames[424]="ProSieben";
-channels[424]="S19.2E-1-1107-17501";
-channelsnames[425]="RTL Television,RTL";
-channels[425]="S19.2E-1-1089-12003";
-channelsnames[426]="RTL2";
-channels[426]="S19.2E-1-1089-12020";
-channelsnames[427]="SUPER RTL";
-channels[427]="S19.2E-1-1089-12040";
-channelsnames[428]="SAT.1";
-channels[428]="S19.2E-1-1107-17500";
-channelsnames[429]="SIXX";
-channels[429]="S19.2E-133-5-776";
-channelsnames[430]="VOX";
-channels[430]="S19.2E-1-1089-12060";
-channelsnames[431]="kabel eins classics";
-channels[431]="S19.2E-1-1107-17506";
-channelsnames[432]="RTL Living";
-channels[432]="S19.2E-1-1089-12030";
-channelsnames[433]="ProSieben MAXX";
-channels[433]="S19.2E-1-1107-17505";
-channelsnames[434]="Disney Channel";
-channels[434]="S19.2E-133-5-1793";
-channelsnames[450]="13th Street,13Street";
-channels[450]="S19.2E-133-1-42";
-channelsnames[451]="AXN Action. OBSOLETE,AXN.";
-channels[451]="S19.2E-133-9-62";
-channelsnames[452]="Biography Channel. OBSOLETE,Bio.";
-channels[452]="S19.2E-133-9-67";
-channelsnames[453]="Boomerang. OBSOLETE";
-channels[453]="S19.2E-133-9-66";
-channelsnames[454]="Cartoon Network (S). OBSOLETE";
-channels[454]="S19.2E-133-9-64";
-channelsnames[455]="Classica";
-channels[455]="S19.2E-133-17-24";
-channelsnames[456]="Discovery Channel,Discovery";
-channels[456]="S19.2E-133-4-14";
-channelsnames[457]="Sky Atlantic,Atlantic";
-channels[457]="S19.2E-133-17-34";
-channelsnames[458]="Disney Cinemagic,DisneyCin";
-channels[458]="S19.2E-133-3-25";
-channelsnames[459]="Disney XD,DisneyXD";
-channels[459]="S19.2E-133-17-28";
-channelsnames[460]="Eurosport 2 Deutschland. OBSOLETE";
-channels[460]="S19.2E-133-9-65";
-channelsnames[461]="Fox Serie,Fox";
-channels[461]="S19.2E-133-1-16";
-channelsnames[462]="Goldstar TV,Goldstar";
-channels[462]="S19.2E-133-17-518";
-channelsnames[463]="Heimatkanal,Heimat";
-channels[463]="S19.2E-133-17-22";
-channelsnames[464]="History. OBSOLETE";
-channels[464]="S19.2E-133-9-68";
-channelsnames[465]="Junior";
-channels[465]="S19.2E-133-17-19";
-channelsnames[466]="Kinowelt TV. OBSOLETE,Kinowelt.";
-channels[466]="S19.2E-133-9-60";
-channelsnames[467]="MGM";
-channels[467]="S19.2E-133-3-515";
-channelsnames[468]="Motorvision TV,Motorvis";
-channels[468]="S19.2E-133-1-168";
-channelsnames[469]="NatGeo Wild,NG Wild";
-channels[469]="S19.2E-133-4-12";
-channelsnames[470]="National Geographic,NatGeo";
-channels[470]="S19.2E-133-4-13";
-channelsnames[471]="Disney Junior,DisneyJr";
-channels[471]="S19.2E-133-17-26";
-channelsnames[472]="Romance TV. OBSOLETE,Romance.";
-channels[472]="S19.2E-133-9-63";
-channelsnames[473]="RTL Passion,Passion";
-channels[473]="S19.2E-133-1-29";
-channelsnames[474]="Sky Action,Action";
-channels[474]="S19.2E-133-2-9";
-channelsnames[475]="Sky Bundesliga 1,Sky Buli 1";
-channels[475]="S19.2E-133-4-223";
-channelsnames[476]="Sky Cinema+1,SkyCine1";
-channels[476]="S19.2E-133-2-11";
-channelsnames[477]="Sky Cinema+24,SkyCine24";
-channels[477]="S19.2E-133-2-43";
-channelsnames[478]="Sky Hits,SkyHits";
-channels[478]="S19.2E-133-3-41";
-channelsnames[479]="Sky Cinema,Cinema";
-channels[479]="S19.2E-133-2-10";
-channelsnames[480]="Sky Comedy,Comedy";
-channels[480]="S19.2E-133-2-8";
-channelsnames[481]="Sky Emotion,Emotion";
-channels[481]="S19.2E-133-2-20";
-channelsnames[482]="Sky Krimi,SkyKrimi";
-channels[482]="S19.2E-133-1-23";
-channelsnames[483]="Sky Nostalgie,Nostalgie";
-channels[483]="S19.2E-133-3-516";
-channelsnames[484]="Sky Sport 1,Sport1";
-channels[484]="S19.2E-133-4-221";
-channelsnames[485]="MAG - LEV";
-channels[485]="S19.2E-133-4-222";
-channelsnames[486]="N24 Austria";
-channels[486]="S19.2E-133-7-53";
-channelsnames[487]="Spiegel Geschichte,SpiegelG";
-channels[487]="S19.2E-133-4-52";
-channelsnames[488]="sportdigital. OBSOLETE";
-channels[488]="S19.2E-133-9-69";
-channelsnames[489]="Syfy";
-channels[489]="S19.2E-133-17-36";
-channelsnames[490]="TNT Film (TCM). OBSOLETE,TNT Film.";
-channels[490]="S19.2E-133-9-61";
-channelsnames[491]="TNT Serie,TNTSerie";
-channels[491]="S19.2E-133-1-50";
-channelsnames[501]="ORF1";
-channels[501]="S19.2E-1-1117-13001";
-channelsnames[502]="ORF2";
-channels[502]="S19.2E-1-1117-13002";
-channelsnames[503]="ORF III";
-channels[503]="S19.2E-1-1115-13101";
-channelsnames[504]="ATV";
-channels[504]="S19.2E-1-1117-13012";
-channelsnames[505]="sixx Austria";
-channels[505]="S19.2E-1-1115-13106";
-channelsnames[506]="ATV2";
-channels[506]="S19.2E-1-1003-13223";
-channelsnames[507]="ATV HD";
-channels[507]="S19.2E-1-1003-13228";
-channelsnames[508]="MELODIE TV";
-channels[508]="S19.2E-1-1003-13229";
-channelsnames[509]="Starparadies AT";
-channels[509]="S19.2E-1-1003-13226";
-channelsnames[510]="Schau TV";
-channels[510]="S19.2E-1-1003-13225";
-channelsnames[511]="Volksmusik";
-channels[511]="S19.2E-1-1003-13222";
-channelsnames[512]="ServusTV Deutschland";
-channels[512]="S19.2E-1-1115-13110";
-channelsnames[513]="ServusTV Oesterreich";
-channels[513]="S19.2E-1-1115-13111";
-channelsnames[520]="SRF info";
-channels[520]="S13.0E-318-8500-911";
-channelsnames[521]="SRF 1";
-channels[521]="S13.0E-318-8500-901";
-channelsnames[522]="SRF zwei";
-channels[522]="S13.0E-318-8500-907";
-channelsnames[523]="RSI LA 1";
-channels[523]="S13.0E-318-1700-14003";
-channelsnames[524]="RSI LA 2";
-channels[524]="S13.0E-318-1700-14009";
-channelsnames[525]="RTS Un";
-channels[525]="S13.0E-318-1700-14002";
-channelsnames[526]="RTS Deux";
-channels[526]="S13.0E-318-1700-14008";
-channelsnames[531]="Rai 1";
-channels[531]="S13.0E-318-12400-8511";
-channelsnames[532]="Rai 2";
-channels[532]="S13.0E-318-12400-8512";
-channelsnames[533]="Rai 3";
-channels[533]="S13.0E-318-12400-8513";
-channelsnames[534]="Rai 4";
-channels[534]="S13.0E-318-12400-8514";
-channelsnames[535]="Rai Movie";
-channels[535]="S13.0E-318-12400-8502";
-channelsnames[550]="Dubai Sports 3";
-channels[550]="S13.0E-318-5103-9502";
-channelsnames[551]="Rai Sport 1";
-channels[551]="S13.0E-318-5400-3305";
-channelsnames[552]="Rai Sport 2";
-channels[552]="S13.0E-318-5400-3301";
-channelsnames[553]="Saudi Arabian TV2";
-channels[553]="S13.0E-318-7700-112";
-channelsnames[554]="JSC Sports Global";
-channels[554]="S13.0E-318-7700-126";
-channelsnames[555]="Eurosport Deutschland";
-channels[555]="S19.2E-1-1091-31200";
-channelsnames[556]="e8 television,e8 tv";
-channels[556]="S19.2E-133-33-897";
-channelsnames[557]="SPORT1";
-channels[557]="S19.2E-133-33-900";
-channelsnames[558]="Eurosport";
-channels[558]="S28.2E-2-2030-6039";
-channelsnames[559]="Eurosport 2";
-channels[559]="S28.2E-2-2023-5009";
-channelsnames[560]="Extreme Sports";
-channels[560]="S28.2E-2-2311-52080";
-channelsnames[561]="Premier Sports";
-channels[561]="S28.2E-2-2081-51113";
-channelsnames[562]="Sky Sports 1";
-channels[562]="S28.2E-2-2021-4214";
-channelsnames[563]="Sky Sports 2";
-channels[563]="S28.2E-2-2021-4208";
-channelsnames[564]="Sky Sports 3";
-channels[564]="S28.2E-2-2021-4219";
-channelsnames[565]="Sky Ryder Cup";
-channels[565]="S28.2E-2-2023-5401";
-channelsnames[566]="Sky Sp NewsHQ";
-channels[566]="S28.2E-2-2023-4907";
-channelsnames[567]="CANAL+ SPORT";
-channels[567]="S19.2E-1-1072-8224";
-channelsnames[568]="ESP Int'l";
-channels[568]="S13.0E-318-200-13831";
-channelsnames[569]="ESP Dutch";
-channels[569]="S13.0E-318-200-13833";
-channelsnames[570]="ESP2 Int'l";
-channels[570]="S13.0E-318-200-13801";
-channelsnames[571]="Sky Sport News,SportNews";
-channels[571]="S19.2E-133-3-17";
-channelsnames[572]="EUROSPORT";
-channels[572]="S19.2E-53-1097-2025";
-channelsnames[573]="Eurosport DUT";
-channels[573]="S23.5E-3-3209-13106";
-channelsnames[574]="FOX Sports EDL 1 HD";
-channels[574]="S23.5E-3-3202-6092";
-channelsnames[575]="FOX Sports 2 HD int";
-channels[575]="S23.5E-3-3225-21045";
-channelsnames[576]="FOX Sports EDL 3";
-channels[576]="S23.5E-3-3222-20935";
-channelsnames[577]="Sport1 Select HD";
-channels[577]="S23.5E-3-3222-20960";
-channelsnames[578]="Sport1 Voetbal";
-channels[578]="S23.5E-3-3222-20925";
-channelsnames[579]="Sport1 Golf";
-channels[579]="S23.5E-3-3222-20930";
-channelsnames[580]="HBO HD";
-channels[580]="S23.5E-3-3205-5033";
-channelsnames[581]="Eurosport";
-channels[581]="S23.5E-3-3211-20809";
-channelsnames[582]="Eurosport CZ";
-channels[582]="S23.5E-3-3211-20859";
-channelsnames[600]="DELUXE MUSIC,DELUXE";
-channels[600]="S19.2E-133-7-65";
-channelsnames[601]="Vintage TV";
-channels[601]="S28.2E-2-2301-52180";
-channelsnames[602]="Xite";
-channels[602]="T-8720-2244-43";
-channelsnames[603]="MTV";
-channels[603]="T-8720-2212-24";
-channelsnames[604]="Scuzz";
-channels[604]="S28.2E-2-2314-53310";
-channelsnames[605]="Rock TV";
-channels[605]="S13.0E-64511-100-15333";
-channelsnames[606]="JIM";
-channels[606]="S23.5E-3-3222-21110";
-channelsnames[607]="MTV NL";
-channels[607]="S23.5E-3-3222-20947";
-channelsnames[608]="TV Oranje";
-channels[608]="S23.5E-3-3222-20948";
-channelsnames[609]="iConcerts";
-channels[609]="S23.5E-3-3226-730";
-channelsnames[610]="iConcerts CZ";
-channels[610]="S23.5E-3-3226-733";
-channelsnames[611]="brava hd";
-channels[611]="S23.5E-3-3226-732";
-channelsnames[612]="MTV ROCKS";
-channels[612]="S19.2E-1-1066-28659";
-channelsnames[613]="MTV Hits";
-channels[613]="S19.2E-1-1066-28654";
-channelsnames[614]="MTV Dance";
-channels[614]="S19.2E-1-1066-28655";
-channelsnames[615]="VH1 Classic";
-channels[615]="S19.2E-1-1066-28657";
-channelsnames[616]="VH1";
-channels[616]="S19.2E-1-1066-28656";
-channelsnames[617]="MTV Music 24";
-channels[617]="S19.2E-1-1078-28671";
-channelsnames[618]="NOW Music";
-channels[618]="S28.2E-2-2311-52010";
-channelsnames[619]="Bliss";
-channels[619]="S28.2E-2-2314-53305";
-channelsnames[620]="Flava";
-channels[620]="S28.2E-2-2314-53300";
-channelsnames[621]="The Vault";
-channels[621]="S28.2E-2-2314-53355";
-channelsnames[622]="Chart Show TV";
-channels[622]="S28.2E-2-2314-53365";
-channelsnames[623]="Planet Pop";
-channels[623]="S28.2E-2-2612-55114";
-channelsnames[624]="Chartshw Dnce";
-channels[624]="S28.2E-2-2314-53315";
-channelsnames[625]="Clubland TV";
-channels[625]="S28.2E-2-2612-55113";
-channelsnames[626]="Zing";
-channels[626]="S28.2E-2-2405-50470";
-channelsnames[627]="Brit Asia TV";
-channels[627]="S28.2E-2-2612-55108";
-channelsnames[628]="Kerrang!";
-channels[628]="S28.2E-2-2040-12015";
-channelsnames[629]="VH1.";
-channels[629]="S19.2E-1-1066-28666";
-channelsnames[630]="VH1 Classic.";
-channels[630]="S19.2E-1-1066-28667";
-channelsnames[631]="MTV ROCKS.";
-channels[631]="S19.2E-1-1066-28669";
-channelsnames[632]="MTV FRANCE";
-channels[632]="S19.2E-1-1066-28652";
-channelsnames[633]="Test Channel 3 (Ex MTV IDOL)";
-channels[633]="S19.2E-1-1078-28675";
-channelsnames[634]="Test Channel 2 (ex MTV Pulse)";
-channels[634]="S19.2E-1-1078-28674";
-channelsnames[635]="Test Channel 1 (ex MTV Germany)";
-channels[635]="S19.2E-1-1078-28673";
-channelsnames[636]="Comedy Central/VIVA";
-channels[636]="S19.2E-1-1078-28676";
-channelsnames[637]="Test Channel 1 (Ex MTV BASE FRANCE)";
-channels[637]="S19.2E-1-1066-28661";
-channelsnames[638]="MTV Hits.";
-channels[638]="S19.2E-1-1066-28664";
-channelsnames[639]="MTV";
-channels[639]="S28.2E-2-2010-7001";
-channelsnames[640]="MTV";
-channels[640]="S28.2E-2-2010-7010";
-channelsnames[641]="MTV BASE";
-channels[641]="S28.2E-2-2010-7007";
-channelsnames[642]="MTV CLASSIC";
-channels[642]="S28.2E-2-2010-7008";
-channelsnames[643]="MTV DANCE";
-channels[643]="S28.2E-2-2010-7014";
-channelsnames[644]="MTV HITS";
-channels[644]="S28.2E-2-2010-7006";
-channelsnames[645]="MTV MUSIC";
-channels[645]="S28.2E-2-2010-7012";
-channelsnames[646]="MTV ROCKS";
-channels[646]="S28.2E-2-2010-7003";
-channelsnames[647]="MTV Trax OBSOLETE";
-channels[647]="S28.2E-2-2010-7021";
-channelsnames[648]="MTV+1";
-channels[648]="S28.2E-2-2010-7005";
-channelsnames[649]="VH1";
-channels[649]="S28.2E-2-2010-7002";
-channelsnames[650]="VIVA";
-channels[650]="S28.2E-2-2010-7009";
-channelsnames[651]="VH1";
-channels[651]="S30.0W-54-37-2003";
-channelsnames[652]="VH1 Classic";
-channels[652]="S30.0W-54-41-612";
-channelsnames[653]="MTV Music";
-channels[653]="S30.0W-54-40-782";
-channelsnames[654]="RTP Memória";
-channels[654]="S30.0W-54-40-783";
-channelsnames[655]="MCM TOP";
-channels[655]="S30.0W-54-40-504";
-channelsnames[656]="TVE Internacional";
-channels[656]="S30.0W-54-37-967";
-channelsnames[657]="MTV ROCKS";
-channels[657]="S30.0W-54-37-2004";
-channelsnames[658]="Comedy Central / VIVA AT";
-channels[658]="S19.2E-133-7-60";
-channelsnames[659]="MTV Live";
-channels[659]="S28.2E-2-2409-50885";
-channelsnames[660]="Nicktoons (S)";
-channels[660]="S19.2E-1-1078-28682";
-channelsnames[661]="MTV Classic";
-channels[661]="S13.0E-64511-800-1427";
-channelsnames[662]="MTV Music";
-channels[662]="S13.0E-64511-800-1428";
-channelsnames[663]="MTV Dance";
-channels[663]="S13.0E-64511-800-1429";
-channelsnames[664]="SLIDE TSCS2";
-channels[664]="S30.0W-54-37-785";
-channelsnames[665]="MEZZO";
-channels[665]="S13.0E-318-15600-10725";
-channelsnames[700]="NHK World";
-channels[700]="S13.0E-318-13100-7327";
-channelsnames[701]="VTV4";
-channels[701]="S13.0E-318-11500-17321";
-channelsnames[702]="Thai Global Network";
-channels[702]="S13.0E-318-11500-17320";
-channelsnames[703]="CNC-001";
-channels[703]="S13.0E-318-7200-7257";
-channelsnames[704]="CCTV-News";
-channels[704]="S13.0E-318-12600-1706";
-channelsnames[705]="CCTV4";
-channels[705]="S13.0E-318-7200-7224";
-channelsnames[706]="Arirang World";
-channels[706]="S13.0E-318-15600-10715";
-channelsnames[707]="NHK World TV";
-channels[707]="S19.2E-1-1020-7014";
-channelsnames[708]="CCTV9 Documentary";
-channels[708]="S19.2E-1-1022-6912";
-channelsnames[709]="CCTV NEWS";
-channels[709]="S19.2E-1-1022-6914";
-channelsnames[710]="CCTV F";
-channels[710]="S19.2E-1-1022-6913";
-channelsnames[711]="Arirang TV";
-channels[711]="S19.2E-1-1020-7011";
-channelsnames[712]="CNC World";
-channels[712]="S28.2E-2-2306-52580";
-channelsnames[713]="PCNE Chinese";
-channels[713]="S28.2E-2-2302-52118";
-channelsnames[714]="Arte Oggi TV";
-channels[714]="S13.0E-318-15600-10709";
-channelsnames[715]="JSTV 1";
-channels[715]="S13.0E-318-9400-8213";
-channelsnames[716]="JSTV 2";
-channels[716]="S13.0E-318-9400-8214";
-channelsnames[730]="B4U Music";
-channels[730]="S28.2E-2-2302-52135";
-channelsnames[731]="Music India";
-channels[731]="S28.2E-2-2611-55019";
-channelsnames[732]="Rishtey";
-channels[732]="S28.2E-2-2304-55209";
-channelsnames[733]="ARY World";
-channels[733]="S28.2E-2-2404-50310";
-channelsnames[734]="Aastha";
-channels[734]="S28.2E-2-2402-55500";
-channelsnames[735]="Sangat";
-channels[735]="S28.2E-2-2612-9536";
-channelsnames[736]="MATV National";
-channels[736]="S28.2E-2-2604-54300";
-channelsnames[737]="BON TV";
-channels[737]="S28.2E-2-2313-53290";
-channelsnames[738]="ARY QTV";
-channels[738]="S28.2E-2-2306-52535";
-channelsnames[739]="Channel i";
-channels[739]="S28.2E-2-2601-54062";
-channelsnames[740]="SONY SAB";
-channels[740]="S28.2E-2-2602-54107";
-channelsnames[741]="ATN Bangla UK";
-channels[741]="S28.2E-2-2601-54053";
-channelsnames[742]="Venus TV";
-channels[742]="S28.2E-2-2409-50884";
-channelsnames[743]="SMNI";
-channels[743]="S13.0E-318-9400-8206";
-channelsnames[744]="Ganj e Hozour TV";
-channels[744]="S13.0E-0-0-17017";
-channelsnames[745]="Bangla TV";
-channels[745]="S28.2E-2-2602-54115";
-channelsnames[746]="Madani Chnl";
-channels[746]="S28.2E-2-2601-54068";
-channelsnames[747]="B4U Movies";
-channels[747]="S28.2E-2-2302-52134";
-channelsnames[748]="SONY TV Asia";
-channels[748]="S28.2E-2-2014-7420";
-channelsnames[749]="COLORS";
-channels[749]="S28.2E-2-2306-52520";
-channelsnames[750]="Star GOLD";
-channels[750]="S28.2E-2-2301-52113";
-channelsnames[751]="Studio 66 TV 3";
-channels[751]="S28.2E-2-2604-54320";
-channelsnames[752]="Star Life OK";
-channels[752]="S28.2E-2-2304-55210";
-channelsnames[753]="Star Plus";
-channels[753]="S28.2E-2-2301-52108";
-channelsnames[754]="Zee TV";
-channels[754]="S28.2E-2-2405-50460";
-channelsnames[755]="Lamhe";
-channels[755]="S28.2E-2-2405-50480";
-channelsnames[756]="Zee Cinema";
-channels[756]="S28.2E-2-2405-50465";
-channelsnames[757]="Zee Punjabi";
-channels[757]="S28.2E-2-2405-50475";
-channelsnames[758]="Face 1";
-channels[758]="S13.0E-318-15700-10605";
-channelsnames[759]="GEO TEZ";
-channels[759]="S28.2E-2-2306-52505";
-channelsnames[760]="ARY Ent";
-channels[760]="S28.2E-2-2405-50415";
-channelsnames[761]="GEO News";
-channels[761]="S28.2E-2-2405-50405";
-channelsnames[762]="GEO UK";
-channels[762]="S28.2E-2-2306-52500";
-channelsnames[800]="Music Box Russia";
-channels[800]="S13.0E-318-11500-17316";
-channelsnames[801]="RUTV";
-channels[801]="S13.0E-318-600-17680";
-channelsnames[802]="1TVRUS Europe";
-channels[802]="S13.0E-318-9400-8208";
-channelsnames[803]="RTR";
-channels[803]="S13.0E-318-12600-1708";
-channelsnames[804]="THT COMEDY";
-channels[804]="S13.0E-318-12600-1703";
-channelsnames[805]="Rossiya 24";
-channels[805]="S13.0E-318-12600-1710";
-channelsnames[806]="Arise TV";
-channels[806]="S13.0E-318-15400-13527";
-channelsnames[807]="Soyuz TV";
-channels[807]="S13.0E-318-11500-17313";
-channelsnames[808]="RBC-TV";
-channels[808]="S13.0E-318-9000-8342";
-channelsnames[809]="RT DOC";
-channels[809]="S13.0E-318-6500-487";
-channelsnames[810]="R1";
-channels[810]="S13.0E-318-13000-14607";
-channelsnames[811]="TVRUS";
-channels[811]="S13.0E-318-15500-637";
-channelsnames[812]="Shanson TV";
-channels[812]="S13.0E-318-12600-1704";
-channelsnames[813]="ChildRussia";
-channels[813]="S13.0E-318-15300-813";
-channelsnames[814]="TBN Russia";
-channels[814]="S13.0E-318-15300-807";
-channelsnames[815]="CNL";
-channels[815]="S13.0E-318-11500-17312";
-channelsnames[816]="Euronews";
-channels[816]="S13.0E-318-9400-8211";
-channelsnames[817]="Russia Today";
-channels[817]="S13.0E-318-600-17629";
-channelsnames[818]="Newroz";
-channels[818]="S13.0E-318-15700-10608";
-channelsnames[819]="RTVi Europe";
-channels[819]="S13.0E-318-8100-14802";
-channelsnames[820]="inteRTV Nashe Kino";
-channels[820]="S13.0E-318-8100-14804";
-channelsnames[821]="inteRTV Detskii Mir - TeleClub";
-channels[821]="S13.0E-318-8100-14803";
-channelsnames[822]="ESP2 Rus";
-channels[822]="S13.0E-318-200-13813";
-channelsnames[823]="ESP Russian";
-channels[823]="S13.0E-318-200-13835";
-channelsnames[824]="ESP2 NE Russian";
-channels[824]="S13.0E-318-200-13883";
-channelsnames[825]="Khabar TV";
-channels[825]="S13.0E-318-7200-7220";
-channelsnames[826]="inteRTV Mir Seriala";
-channels[826]="S13.0E-318-8100-14807";
-channelsnames[827]="ARM_1";
-channels[827]="S13.0E-318-9400-8202";
-channelsnames[828]="TV9";
-channels[828]="S13.0E-318-15400-13505";
-channelsnames[840]="TVP1";
-channels[840]="S19.2E-1-1059-7100";
-channelsnames[841]="TVP2";
-channels[841]="S19.2E-1-1059-7101";
-channelsnames[842]="TVP Sport";
-channels[842]="S19.2E-1-1059-7103";
-channelsnames[850]="TV5MONDE EUROPE";
-channels[850]="S19.2E-1-1022-6915";
-channelsnames[851]="M6";
-channels[851]="S19.2E-1-1100-8706";
-channelsnames[852]="M6 HD";
-channels[852]="S19.2E-1-1088-9310";
-channelsnames[900]="EuroNews";
-channels[900]="S19.2E-1-1091-31220";
-channelsnames[901]="CNN Int.";
-channels[901]="S19.2E-1-1068-28522";
-channelsnames[902]="CNBC Europe";
-channels[902]="S19.2E-1-1026-10030";
-channelsnames[903]="BBC World";
-channels[903]="S19.2E-1-1026-10050";
-channelsnames[904]="Sky News Intl";
-channels[904]="S19.2E-1-1111-7290";
-channelsnames[905]="France 24 (in English)";
-channels[905]="S19.2E-1-1022-6906";
-channelsnames[906]="Al Jazeera English";
-channels[906]="S19.2E-1-1020-7012";
-channelsnames[907]="Al Jazeera Channel";
-channels[907]="S19.2E-1-1020-7009";
-channelsnames[908]="joiz";
-channels[908]="S19.2E-133-5-74";
-channelsnames[909]="Bloomberg Europe TV";
-channels[909]="S19.2E-1-1026-10067";
-channelsnames[910]="BBC World News";
-channels[910]="S13.0E-318-9400-8204";
-channelsnames[911]="CNBC PE Hot";
-channels[911]="S13.0E-318-13000-14610";
-channelsnames[912]="Bloomberg European TV";
-channels[912]="S13.0E-318-13100-7302";
-channelsnames[913]="Al Jazeera Intl";
-channels[913]="S13.0E-318-12600-1714";
-channelsnames[914]="PRESS TV";
-channels[914]="S13.0E-318-8700-7944";
-channelsnames[915]="DW Europe";
-channels[915]="S13.0E-318-15500-607";
-channelsnames[916]="Rai News 24";
-channels[916]="S13.0E-318-12400-8516";
-channelsnames[917]="France 24 (in English)";
-channels[917]="S13.0E-318-200-13850";
-channelsnames[918]="France 24 (en Francais)";
-channels[918]="S13.0E-318-200-13849";
-channelsnames[919]="Canal 24 Horas";
-channels[919]="S13.0E-318-5000-13712";
-channelsnames[920]="Chamber TV";
-channels[920]="S23.5E-3-3224-5220";
-channelsnames[921]="Sky News";
-channels[921]="S28.2E-2-2026-4704";
-channelsnames[922]="Bloomberg";
-channels[922]="S28.2E-2-2306-52550";
-channelsnames[923]="ABN TV";
-channels[923]="S28.2E-2-2301-52111";
-channelsnames[924]="CNN";
-channels[924]="S28.2E-2-2074-50220";
-channelsnames[925]="RT";
-channels[925]="S28.2E-2-2409-50847";
-channelsnames[926]="Al Jazeera Eng";
-channels[926]="S28.2E-2-2081-51107";
-channelsnames[927]="Russia Today";
-channels[927]="S19.2E-1-1022-6904";
-channelsnames[928]="RT Esp";
-channels[928]="S19.2E-1-1020-7013";
-channelsnames[950]="Travel Channel";
-channels[950]="S28.2E-2-2602-54102";
-channelsnames[951]="Travel Ch +1";
-channels[951]="S28.2E-2-2301-52100";
-channelsnames[952]="Travel";
-channels[952]="S5.0E-1-1-287";
-channelsnames[953]="Discovery Travel";
-channels[953]="S13.0E-64511-800-1465";
-channelsnames[954]="TV GLOBO";
-channels[954]="S13.0E-318-15400-13526";
-channelsnames[1001]="NPO1";
-channels[1001]="S19.2E-53-1105-4011";
-channelsnames[1002]="NPO2";
-channels[1002]="S19.2E-53-1105-4012";
-channelsnames[1003]="NPO3";
-channels[1003]="S19.2E-53-1105-4013";
-channelsnames[1004]="RTL4";
-channels[1004]="S19.2E-53-1105-4044";
-channelsnames[1005]="RTL5";
-channels[1005]="S19.2E-53-1105-4045";
-channelsnames[1006]="SBS6";
-channels[1006]="S19.2E-53-1105-4002";
-channelsnames[1007]="RTL7";
-channels[1007]="S19.2E-53-1105-4047";
-channelsnames[1009]="NET5";
-channels[1009]="S19.2E-53-1105-4003";
-channelsnames[1012]="Omrop Fryslan Televisie";
-channels[1012]="S23.5E-3-3211-20808";
-channelsnames[1013]="TV Noord";
-channels[1013]="S23.5E-3-3211-20810";
-channelsnames[1014]="TV Oost";
-channels[1014]="S23.5E-3-3211-20814";
-channelsnames[1015]="TV Gelderland";
-channels[1015]="S23.5E-3-3211-20816";
-channelsnames[1016]="Omroep Zeeland Televisie";
-channels[1016]="S23.5E-3-3211-20818";
-channelsnames[1017]="TV Drenthe";
-channels[1017]="S23.5E-3-3211-20812";
-channelsnames[1018]="TV West";
-channels[1018]="S23.5E-3-3211-20804";
-channelsnames[1019]="Omroep Brabant Televisie";
-channels[1019]="S23.5E-3-3211-20820";
-channelsnames[1020]="Regio BE";
-channels[1020]="S23.5E-3-3202-6055";
-channelsnames[1021]="AT5";
-channels[1021]="S23.5E-3-3225-21012";
-channelsnames[1022]="L1MBURG";
-channels[1022]="S23.5E-3-3208-7050";
-channelsnames[1040]="een";
-channels[1040]="S19.2E-53-1119-12801";
-channelsnames[1041]="Canvas";
-channels[1041]="S19.2E-53-1119-12802";
-channelsnames[1042]="VTM";
-channels[1042]="S19.2E-53-1119-12810";
-channelsnames[1043]="een HD";
-channels[1043]="S23.5E-3-3225-21025";
-channelsnames[1044]="Canvas HD";
-channels[1044]="S23.5E-3-3225-21030";
-channelsnames[1045]="VTM HD";
-channels[1045]="S23.5E-3-3208-7030";
-channelsnames[1046]="VIER";
-channels[1046]="S19.2E-53-1119-12814";
-channelsnames[1047]="2BE";
-channels[1047]="S19.2E-53-1119-12812";
-channelsnames[1048]="VIJF";
-channels[1048]="S19.2E-53-1119-12820";
-channelsnames[1049]="Vitaya";
-channels[1049]="S23.5E-3-3222-21120";
-channelsnames[1050]="Acht";
-channels[1050]="S23.5E-3-3222-21122";
-channelsnames[1100]="SkyPremiereHD";
-channels[1100]="S28.2E-2-2016-3821";
-channelsnames[1102]="Sky ShowcseHD";
-channels[1102]="S28.2E-2-2039-3911";
-channelsnames[1103]="Sky Comedy HD";
-channels[1103]="S28.2E-2-2024-3819";
-channelsnames[1104]="Sky Action HD";
-channels[1104]="S28.2E-2-2028-3814";
-channelsnames[1105]="Sky Family HD";
-channels[1105]="S28.2E-2-2016-3818";
-channelsnames[1106]="Sky Thriller HD";
-channels[1106]="S28.2E-2-2016-3862";
-channelsnames[1107]="Sky DraRomHD";
-channels[1107]="S28.2E-2-2024-3816";
-channelsnames[1108]="Sky ScFi/HorHD";
-channels[1108]="S28.2E-2-2024-3817";
-channelsnames[1109]="Sky Greats HD";
-channels[1109]="S28.2E-2-2024-3815";
-channelsnames[1110]="Sky Select HD";
-channels[1110]="S28.2E-2-2016-3901";
-channelsnames[1111]="Sky Disney HD";
-channels[1111]="S28.2E-2-2024-3900";
-channelsnames[1112]="TCM HD";
-channels[1112]="S28.2E-2-2027-3906";
-channelsnames[1150]="Syfy HD";
-channels[1150]="S28.2E-2-2032-3874";
-channelsnames[1151]="Universal HD";
-channels[1151]="S28.2E-2-2035-3880";
-channelsnames[1152]="Comedy Cen HD";
-channels[1152]="S28.2E-2-2020-3856";
-channelsnames[1153]="FOX HD";
-channels[1153]="S28.2E-2-2008-3823";
-channelsnames[1201]="BBC One HD";
-channels[1201]="S28.2E-2-2050-6941";
-channelsnames[1202]="BBC Two HD";
-channels[1202]="S28.2E-2-2050-6940";
-channelsnames[1203]="BBC Three HD";
-channels[1203]="S28.2E-2-2050-6951";
-channelsnames[1204]="BBC Four HD";
-channels[1204]="S28.2E-2-2061-8931";
-channelsnames[1211]="ITV HD";
-channels[1211]="S28.2E-2-2066-21000";
-channelsnames[1212]="ITV2 HD";
-channels[1212]="S28.2E-2-2003-3932";
-channelsnames[1213]="ITV3 HD";
-channels[1213]="S28.2E-2-2003-3933";
-channelsnames[1214]="ITV4 HD";
-channels[1214]="S28.2E-2-2003-3934";
-channelsnames[1220]="Channel 4 HD";
-channels[1220]="S28.2E-2-2068-21200";
-channelsnames[1221]="E4 HD";
-channels[1221]="S28.2E-2-2008-3876";
-channelsnames[1230]="Channel 5 HD";
-channels[1230]="S28.2E-2-2005-3945";
-channelsnames[1260]="Sky Arts 1 HD";
-channels[1260]="S28.2E-2-2039-3863";
-channelsnames[1261]="Sky Arts 2 HD";
-channels[1261]="S28.2E-2-2034-3914";
-channelsnames[1262]="Sky1 HD";
-channels[1262]="S28.2E-2-2033-3861";
-channelsnames[1263]="Sky Atlantic HD";
-channels[1263]="S28.2E-2-2033-3853";
-channelsnames[1264]="Eden HD";
-channels[1264]="S28.2E-2-2020-3868";
-channelsnames[1265]="Good Food HD";
-channels[1265]="S28.2E-2-2027-3867";
-channelsnames[1266]="Sky Insider HD";
-channels[1266]="S28.2E-2-2035-3101";
-channelsnames[1267]="Sky Living HD";
-channels[1267]="S28.2E-2-2005-3866";
-channelsnames[1300]="CBBC HD";
-channels[1300]="S28.2E-2-2050-6952";
-channelsnames[1301]="CBeebies HD";
-channels[1301]="S28.2E-2-2061-8932";
-channelsnames[1302]="Disney XD HD";
-channels[1302]="S28.2E-2-2003-3870";
-channelsnames[1303]="NickelodeonHD";
-channels[1303]="S28.2E-2-2020-3869";
-channelsnames[1304]="Disney Cinemagic HD,DisneyCinHD";
-channels[1304]="S19.2E-133-13-111";
-channelsnames[1305]="Sky Action HD,Action HD";
-channels[1305]="S19.2E-133-11-116";
-channelsnames[1350]="CI HD";
-channels[1350]="S28.2E-2-2028-3888";
-channelsnames[1351]="Discovery HD";
-channels[1351]="S28.2E-2-2034-3916";
-channelsnames[1352]="History HD";
-channels[1352]="S28.2E-2-2028-3886";
-channelsnames[1353]="Nat Geo HD";
-channels[1353]="S28.2E-2-2020-3832";
-channelsnames[1354]="NatGeoWild HD";
-channels[1354]="S28.2E-2-2028-3885";
-channelsnames[1355]="Nat Geo Wild HD";
-channels[1355]="S23.5E-3-3226-761";
-channelsnames[1356]="Nat Geo HD";
-channels[1356]="S23.5E-3-3226-701";
-channelsnames[1401]="Das Erste HD";
-channels[1401]="S19.2E-1-1019-10301";
-channelsnames[1402]="ZDF HD";
-channels[1402]="S19.2E-1-1011-11110";
-channelsnames[1403]="WDR HD Düsseldorf";
-channels[1403]="S19.2E-1-1201-28328";
-channelsnames[1404]="Einsfestival HD";
-channels[1404]="S19.2E-1-1039-10376";
-channelsnames[1405]="EinsPlus HD";
-channels[1405]="S19.2E-1-1039-10377";
-channelsnames[1406]="tagesschau24 HD";
-channels[1406]="S19.2E-1-1039-10375";
-channelsnames[1407]="ANIXE HD";
-channels[1407]="S19.2E-1-1053-21100";
-channelsnames[1408]="ServusTV HD Deutschland";
-channels[1408]="S19.2E-1-1007-4914";
-channelsnames[1409]="arte HD";
-channels[1409]="S19.2E-1-1019-10302";
-channelsnames[1410]="Arte HD";
-channels[1410]="S13.0E-319-15900-307";
-channelsnames[1411]="sonnenklar.TV HD";
-channels[1411]="S19.2E-1-1109-5400";
-channelsnames[1412]="zdf_neo HD";
-channels[1412]="S19.2E-1-1011-11130";
-channelsnames[1413]="zdf.kultur HD";
-channels[1413]="S19.2E-1-1011-11140";
-channelsnames[1420]="NICK/CC HD";
-channels[1420]="S19.2E-1-1053-21107";
-channelsnames[1421]="N24 HD";
-channels[1421]="S19.2E-1-1053-21108";
-channelsnames[1422]="RTL HD";
-channels[1422]="S19.2E-1-1057-61200";
-channelsnames[1423]="VOX HD";
-channels[1423]="S19.2E-1-1057-61201";
-channelsnames[1424]="n-tv HD";
-channels[1424]="S19.2E-1-1057-61204";
-channelsnames[1425]="RTLII HD";
-channels[1425]="S19.2E-1-1057-61205";
-channelsnames[1426]="SAT.1 HD";
-channels[1426]="S19.2E-1-1017-61300";
-channelsnames[1427]="ProSieben HD";
-channels[1427]="S19.2E-1-1017-61301";
-channelsnames[1428]="kabel eins HD";
-channels[1428]="S19.2E-1-1017-61302";
-channelsnames[1429]="SIXX HD";
-channels[1429]="S19.2E-1-1017-61303";
-channelsnames[1430]="TELE 5 HD";
-channels[1430]="S19.2E-1-1109-5401";
-channelsnames[1450]="Fox HD OBSOLETE";
-channels[1450]="S19.2E-133-14-124";
-channelsnames[1451]="Discovery HD,DiscHD";
-channels[1451]="S19.2E-133-6-130";
-channelsnames[1452]="Sky Cinema HD,SkyCineHD";
-channels[1452]="S19.2E-133-6-131";
-channelsnames[1453]="NatGeo HD,NatGeoHD";
-channels[1453]="S19.2E-133-13-112";
-channelsnames[1454]="History HD OBSOLETE,HistHD";
-channels[1454]="S19.2E-133-13-113";
-channelsnames[1455]="Sky Hits HD,SkyHitsHD";
-channels[1455]="S19.2E-133-12-107";
-channelsnames[1456]="Sky Action HD OBSOLETE,Action HD";
-channels[1456]="S19.2E-133-12-106";
-channelsnames[1457]="Nat Geo Wild HD OBSOLETE,NGWildHD";
-channels[1457]="S19.2E-133-11-118";
-channelsnames[1501]="ORF1 HD";
-channels[1501]="S19.2E-1-1007-4911";
-channelsnames[1502]="ORF2 HD";
-channels[1502]="S19.2E-1-1007-4912";
-channelsnames[1503]="ServusTV HD Oesterreich";
-channels[1503]="S19.2E-1-1007-4913";
-channelsnames[1521]="SRF 1 HD";
-channels[1521]="S13.0E-318-12300-17201";
-channelsnames[1522]="SRF zwei HD";
-channels[1522]="S13.0E-318-12300-17202";
-channelsnames[1523]="RTS Un HD";
-channels[1523]="S13.0E-318-12300-17203";
-channelsnames[1524]="RTS Deux HD";
-channels[1524]="S13.0E-318-12300-17204";
-channelsnames[1525]="RSI LA 1 HD";
-channels[1525]="S13.0E-318-1700-14051";
-channelsnames[1526]="RSI LA 2 HD";
-channels[1526]="S13.0E-318-8500-951";
-channelsnames[1550]="Sky Sport News HD,SportNewsHD";
-channels[1550]="S19.2E-133-12-108";
-channelsnames[1551]="Sky Sport HD 1,SportHD 1";
-channels[1551]="S19.2E-133-6-129";
-channelsnames[1552]="Sky Sport HD 2,SportHD 2";
-channels[1552]="S19.2E-133-13-114";
-channelsnames[1553]="Sky Bundesliga HD 1,Sky BuliHD 1";
-channels[1553]="S19.2E-133-12-105";
-channelsnames[1554]="Eurosport HD";
-channels[1554]="S28.2E-2-2008-3804";
-channelsnames[1555]="Sky Sports 1 HD";
-channels[1555]="S28.2E-2-2005-3802";
-channelsnames[1556]="Sky Sports 1 HD";
-channels[1556]="S28.2E-2-2005-3877";
-channelsnames[1557]="Sky Sports 3 HD";
-channels[1557]="S28.2E-2-2034-3822";
-channelsnames[1558]="Sky Sports 3 HD";
-channels[1558]="S28.2E-2-2034-3824";
-channelsnames[1559]="SkyRyderCupHD";
-channels[1559]="S28.2E-2-2033-3826";
-channelsnames[1560]="SkyRyderCupHD";
-channels[1560]="S28.2E-2-2033-3827";
-channelsnames[1561]="AutoMotorSport HD";
-channels[1561]="S23.5E-3-3217-6103";
-channelsnames[1600]="MTV Live HD";
-channels[1600]="S28.2E-2-2001-3806";
-channelsnames[1601]="Planeta HD";
-channels[1601]="S23.5E-3-3206-5410";
-channelsnames[1602]=".";
-channels[1602]="S23.5E-3-3217-6100";
-channelsnames[1603]="UNITEL CLASSICA HD";
-channels[1603]="S23.5E-3-3217-6101";
-channelsnames[1700]="NHK World HD";
-channels[1700]="S28.2E-2-2312-53147";
-channelsnames[1701]="RT HD";
-channels[1701]="S28.2E-2-2312-53148";
-channelsnames[1800]="HBO Comedy";
-channels[1800]="S23.5E-3-3205-5035";
-channelsnames[1801]="Filmbox HD";
-channels[1801]="S23.5E-3-3205-5034";
-channelsnames[1802]="Prima HD";
-channels[1802]="S23.5E-3-3205-5032";
-channelsnames[1803]="Nova Sport HD";
-channels[1803]="S23.5E-3-3205-5031";
-channelsnames[1804]="Nova HD";
-channels[1804]="S23.5E-3-3205-5030";
-channelsnames[1805]="Eurosport 2 HD";
-channels[1805]="S23.5E-3-3221-5041";
-channelsnames[1806]="Slovak Sport";
-channels[1806]="S23.5E-3-3221-5042";
-channelsnames[1807]="History HD";
-channels[1807]="S23.5E-3-3221-5043";
-channelsnames[1808]="Markiza HD";
-channels[1808]="S23.5E-3-3221-5044";
-channelsnames[1809]="Spektrum HD";
-channels[1809]="S23.5E-3-3221-5045";
-channelsnames[1810]="Eurosport HD";
-channels[1810]="S23.5E-3-3221-5047";
-channelsnames[1811]="Travel Channel HD CE";
-channels[1811]="S23.5E-3-3221-5048";
-channelsnames[1812]="EUROSPORT HD";
-channels[1812]="S23.5E-0-0-5041";
-channelsnames[1813]="HISTORY HD";
-channels[1813]="S23.5E-0-0-5042";
-channelsnames[1814]="FILMBOX HD";
-channels[1814]="S23.5E-0-0-5043";
-channelsnames[1815]="Nova HD";
-channels[1815]="S23.5E-0-0-5044";
-channelsnames[1816]="Nova Sport HD";
-channels[1816]="S23.5E-0-0-5045";
-channelsnames[1817]="HBO HD";
-channels[1817]="S23.5E-0-0-5047";
-channelsnames[1818]="Travel Channel HD";
-channels[1818]="S23.5E-0-0-5048";
-channelsnames[1900]="Sky News HD";
-channels[1900]="S28.2E-2-2039-3850";
-channelsnames[1960]="MTV Live HD";
-channels[1960]="S13.0E-318-12800-1";
-channelsnames[1961]="TVN Style HD";
-channels[1961]="S13.0E-318-1600-15822";
-channelsnames[1962]="Rai 1 HD";
-channels[1962]="S13.0E-318-5200-3401";
-channelsnames[1963]="PARIS PREMIERE HD";
-channels[1963]="S19.2E-1-1084-9401";
-channelsnames[1964]="W9 HD";
-channels[1964]="S19.2E-1-1084-9402";
-channelsnames[1965]="MA CHAINE SPORT HD";
-channels[1965]="S19.2E-1-1084-9403";
-channelsnames[1966]="UTV HD";
-channels[1966]="S28.2E-2-2063-20780";
-channelsnames[1967]="1";
-channels[1967]="S28.2E-2-2403-1";
-channelsnames[2000]="SOLIDARIA";
-channels[2000]="S30.0W-1-1-1";
-channelsnames[2001]="Parlamento";
-channels[2001]="S30.0W-2-15-2";
-channelsnames[2002]="Telesur";
-channels[2002]="S30.0W-2-15-3";
-channelsnames[2003]="TV5 MONDE EUROPE";
-channels[2003]="S30.0W-40-13-98";
-channelsnames[2004]="TBN Enlace";
-channels[2004]="S30.0W-40-13-490";
-channelsnames[2005]="CUBAVISION";
-channels[2005]="S30.0W-40-13-491";
-channelsnames[2006]="Russia Today English";
-channels[2006]="S30.0W-40-13-5001";
-channelsnames[2007]="RT esp";
-channels[2007]="S30.0W-40-13-5002";
-channelsnames[2008]="AL JAZZERA INTL";
-channels[2008]="S30.0W-40-13-6001";
-channelsnames[2009]="+TVI";
-channels[2009]="S30.0W-54-40-500";
-channelsnames[2010]="Motors TV";
-channels[2010]="S30.0W-54-40-779";
-channelsnames[2011]="Discovery Channel";
-channels[2011]="S30.0W-54-41-603";
-channelsnames[2012]="Slide TSCS 5";
-channels[2012]="S30.0W-54-40-968";
-channelsnames[2013]="PFC";
-channels[2013]="S30.0W-54-40-508";
-channelsnames[2014]="Nautical Channel";
-channels[2014]="S30.0W-54-41-600";
-channelsnames[2015]="Canal de História";
-channels[2015]="S30.0W-54-41-601";
-channelsnames[2016]="FOX Movies";
-channels[2016]="S30.0W-54-41-608";
-channelsnames[2017]="Cartoon / TCM";
-channels[2017]="S30.0W-54-41-614";
-channelsnames[2018]="FOX";
-channels[2018]="S30.0W-54-41-972";
-channelsnames[2019]="FOX Crime";
-channels[2019]="S30.0W-54-41-974";
-channelsnames[2020]="FX";
-channels[2020]="S30.0W-54-41-975";
-channelsnames[2021]="FOX Crime";
-channels[2021]="S30.0W-54-42-710";
-channelsnames[2022]="FOX Life";
-channels[2022]="S30.0W-54-42-705";
-channelsnames[2023]="The Biography Channel";
-channels[2023]="S30.0W-54-42-890";
-channelsnames[2024]="MCM TOP";
-channels[2024]="S30.0W-54-42-894";
-channelsnames[2025]="BBC Entertainment";
-channels[2025]="S30.0W-54-42-895";
-channelsnames[2026]="Odisseia";
-channels[2026]="S30.0W-54-42-973";
-channelsnames[2050]="CANAL+1 HD";
-channels[2050]="S30.0W-49-3-150";
-channelsnames[2051]="ANDALUCÍA TV";
-channels[2051]="S30.0W-49-3-300";
-channelsnames[2052]="TAQUILLA HD";
-channels[2052]="S30.0W-49-3-1119";
-channelsnames[2053]="CANAL+ 3D";
-channels[2053]="S30.0W-49-3-1123";
-channelsnames[2054]="MEZZO LIVEHD";
-channels[2054]="S30.0W-49-3-1221";
-channelsnames[2055]="C+ DEP 2 HD";
-channels[2055]="S30.0W-49-3-1224";
-channelsnames[2056]="C+ CABLE";
-channels[2056]="S30.0W-49-3-1801";
-channelsnames[2057]="ANTENA 3";
-channels[2057]="S30.0W-49-7-13";
-channelsnames[2058]="RMTV";
-channels[2058]="S30.0W-49-7-62";
-channelsnames[2059]="C+ infoDEPORTE";
-channels[2059]="S30.0W-49-7-69";
-channelsnames[2060]="NEOX";
-channels[2060]="S30.0W-49-7-96";
-channelsnames[2061]="C+ TAQUILLA";
-channels[2061]="S30.0W-49-7-120";
-channelsnames[2062]="CANAL+ 2";
-channels[2062]="S30.0W-49-2-2";
-channelsnames[2063]="COMEDY CENTRAL";
-channels[2063]="S30.0W-49-2-23";
-channelsnames[2064]="VIAJAR";
-channels[2064]="S30.0W-49-2-34";
-channelsnames[2065]="CANAL COCINA";
-channels[2065]="S30.0W-49-2-37";
-channelsnames[2066]="TCM";
-channels[2066]="S30.0W-49-2-45";
-channelsnames[2067]="DISNEY CH.";
-channels[2067]="S30.0W-49-2-70";
-channelsnames[2068]="R. Informativas";
-channels[2068]="S30.0W-49-2-363";
-channelsnames[2069]="R. Musicales";
-channels[2069]="S30.0W-49-2-364";
-channelsnames[2070]="RADIO MARIA";
-channels[2070]="S30.0W-40-13-8";
-channelsnames[2071]="Cadena 100";
-channels[2071]="S30.0W-40-13-10";
-channelsnames[2072]="HIT FM";
-channels[2072]="S30.0W-40-13-26";
-channelsnames[2073]="Radio MARCA";
-channels[2073]="S30.0W-40-13-29";
-channelsnames[2074]="COPE";
-channels[2074]="S30.0W-40-13-37";
-channelsnames[2075]="INTERECONOMIA";
-channels[2075]="S30.0W-40-13-38";
-channelsnames[2076]="MegaStar";
-channels[2076]="S30.0W-40-13-39";
-channelsnames[2077]="ROCK FM";
-channels[2077]="S30.0W-40-13-52";
-channelsnames[2078]="EMA RADIO";
-channels[2078]="S30.0W-40-13-54";
-channelsnames[2079]="TSF ON M";
-channels[2079]="S30.0W-40-13-55";
-channelsnames[2080]="RADIO HIT";
-channels[2080]="S30.0W-40-13-58";
-channelsnames[2081]="Disney Channel";
-channels[2081]="S30.0W-40-13-900";
-channelsnames[2082]="24 HORAS";
-channels[2082]="S30.0W-49-9-70";
-channelsnames[2083]="SIC";
-channels[2083]="S30.0W-54-36-813";
-channelsnames[2084]="Slide TSCS 2";
-channels[2084]="S30.0W-54-37-712";
-channelsnames[2085]="BBC World News";
-channels[2085]="S30.0W-54-37-717";
-channelsnames[2086]="Sport TV 1";
-channels[2086]="S30.0W-54-38-870";
-channelsnames[2087]="AR TV";
-channels[2087]="S30.0W-54-40-501";
-channelsnames[2088]="Toros TV";
-channels[2088]="S30.0W-54-41-602";
-channelsnames[2089]="CANAL+ LIGA";
-channels[2089]="S30.0W-49-3-1800";
-channelsnames[2090]="Canal Extremadura SAT";
-channels[2090]="S30.0W-2-15-4";
-channelsnames[2091]="Feeds 2 TSA";
-channels[2091]="S30.0W-2-15-5";
-channelsnames[2092]="Feeds 3 TSA";
-channels[2092]="S30.0W-2-15-6";
-channelsnames[2093]="HIGH TV 3D";
-channels[2093]="S30.0W-2-15-11";
-channelsnames[2094]="CANAL+ 1";
-channels[2094]="S30.0W-49-2-1";
-channelsnames[2095]="C+ DCINE";
-channels[2095]="S30.0W-49-4-43";
-channelsnames[2096]="CANAL+1 ...30";
-channels[2096]="S30.0W-49-4-3";
-channelsnames[2097]="FOX";
-channels[2097]="S30.0W-49-4-21";
-channelsnames[2098]="AXN";
-channels[2098]="S30.0W-49-4-22";
-channelsnames[2099]="FOX CRIME";
-channels[2099]="S30.0W-49-4-27";
-channelsnames[2100]="AXN WHITE";
-channels[2100]="S30.0W-49-4-28";
-channelsnames[2101]="C+ ACCIÓN";
-channels[2101]="S30.0W-49-4-41";
-channelsnames[2102]="C+ COMEDIA";
-channels[2102]="S30.0W-49-4-42";
-channelsnames[2103]="EL GARAGE TV";
-channels[2103]="S30.0W-49-4-64";
-channelsnames[2104]="NOVA";
-channels[2104]="S30.0W-49-4-95";
-channelsnames[2105]="Paquetes";
-channels[2105]="S30.0W-49-4-1001";
-channelsnames[2106]="C+LIGA MULTI";
-channels[2106]="S30.0W-49-6-52";
-channelsnames[2107]="C+ TOROS";
-channels[2107]="S30.0W-49-6-67";
-channelsnames[2108]="TAQUILLA 5";
-channels[2108]="S30.0W-49-6-125";
-channelsnames[2109]="TAQUILLA 6";
-channels[2109]="S30.0W-49-6-126";
-channelsnames[2110]="TAQUILLA 7";
-channels[2110]="S30.0W-49-6-127";
-channelsnames[2111]="TAQUILLA 8";
-channels[2111]="S30.0W-49-6-128";
-channelsnames[2112]="TAQUILLAX";
-channels[2112]="S30.0W-49-6-131";
-channelsnames[2113]="TAQUILLAXX";
-channels[2113]="S30.0W-49-6-132";
-channelsnames[2114]="TAQ XXHARD";
-channels[2114]="S30.0W-49-6-133";
-channelsnames[2115]="MULTI-X (1)";
-channels[2115]="S30.0W-49-6-136";
-channelsnames[2116]="MULTI-X (2)";
-channels[2116]="S30.0W-49-6-137";
-channelsnames[2117]="C+LCampeones";
-channels[2117]="S30.0W-49-6-141";
-channelsnames[2118]="C+LCampeon2";
-channels[2118]="S30.0W-49-6-142";
-channelsnames[2119]="C+LCampeon3";
-channels[2119]="S30.0W-49-6-143";
-channelsnames[2120]="MULTIDEP.6";
-channels[2120]="S30.0W-49-6-195";
-channelsnames[2121]="MULTIDEP.7";
-channels[2121]="S30.0W-49-6-196";
-channelsnames[2122]="PUBLIACTIVA";
-channels[2122]="S30.0W-49-6-347";
-channelsnames[2123]="TVCine 2";
-channels[2123]="S30.0W-54-42-700";
-channelsnames[2124]="Nickelodeon";
-channels[2124]="S30.0W-54-42-701";
-channelsnames[2125]="TVCine 3";
-channels[2125]="S30.0W-54-42-706";
-channelsnames[2126]="TVCine 1";
-channels[2126]="S30.0W-54-42-707";
-channelsnames[2127]="TVCine 4";
-channels[2127]="S30.0W-54-42-709";
-channelsnames[2128]="MOV";
-channels[2128]="S30.0W-54-42-711";
-channelsnames[2129]="TVE Internacional";
-channels[2129]="S30.0W-54-42-713";
-channelsnames[2130]="National Geographic";
-channels[2130]="S30.0W-54-42-714";
-channelsnames[2131]="TV Globo Portugal";
-channels[2131]="S30.0W-54-42-904";
-channelsnames[2132]="RTP Madeira";
-channels[2132]="S30.0W-54-42-935";
-channelsnames[2133]="Canal de Teste";
-channels[2133]="S30.0W-54-36-1";
-channelsnames[2134]="RTP Informação";
-channels[2134]="S30.0W-54-36-101";
-channelsnames[2135]="Panda Biggs";
-channels[2135]="S30.0W-54-36-102";
-channelsnames[2136]="Canal de Teste";
-channels[2136]="S30.0W-54-36-111";
-channelsnames[2137]="Canal Panda";
-channels[2137]="S30.0W-54-36-708";
-channelsnames[2138]="SIC Notícias";
-channels[2138]="S30.0W-54-36-801";
-channelsnames[2139]="RTP 1";
-channels[2139]="S30.0W-54-36-811";
-channelsnames[2140]="RTP 2";
-channels[2140]="S30.0W-54-36-812";
-channelsnames[2141]="TVI";
-channels[2141]="S30.0W-54-36-814";
-channelsnames[2142]="Sport TV Golfe";
-channels[2142]="S30.0W-54-37-219";
-channelsnames[2143]="Eurosport News";
-channels[2143]="S30.0W-54-37-227";
-channelsnames[2144]="TVE 24h";
-channels[2144]="S30.0W-54-37-228";
-channelsnames[2145]="EuroNews";
-channels[2145]="S30.0W-54-37-702";
-channelsnames[2146]="SIC Mulher";
-channels[2146]="S30.0W-54-37-703";
-channelsnames[2147]="TLC";
-channels[2147]="S30.0W-54-37-704";
-channelsnames[2148]="France 24";
-channels[2148]="S30.0W-54-37-720";
-channelsnames[2149]="Hot";
-channels[2149]="S30.0W-54-37-831";
-channelsnames[2150]="SLIDE TSCS2";
-channels[2150]="S30.0W-54-37-961";
-channelsnames[2151]="CNN";
-channels[2151]="S30.0W-54-37-962";
-channelsnames[2152]="Mezzo";
-channels[2152]="S30.0W-54-37-965";
-channelsnames[2153]="SKY News";
-channels[2153]="S30.0W-54-37-966";
-channelsnames[2154]="MEZZO";
-channels[2154]="S30.0W-54-37-2000";
-channelsnames[2155]="BBC WORLD";
-channels[2155]="S30.0W-54-37-2001";
-channelsnames[2156]="CNN INT";
-channels[2156]="S30.0W-54-37-2002";
-channelsnames[2157]="CNBC";
-channels[2157]="S30.0W-54-37-2005";
-channelsnames[2158]="EURONEWS";
-channels[2158]="S30.0W-54-37-2006";
-channelsnames[2159]="FRANCE 24 ENG";
-channels[2159]="S30.0W-54-37-2007";
-channelsnames[2160]="NG_DVR_5.4";
-channels[2160]="S30.0W-54-38-19";
-channelsnames[2161]="NG_Zapper_3.8";
-channels[2161]="S30.0W-54-38-20";
-channelsnames[2162]="NG_DVR_3.8";
-channels[2162]="S30.0W-54-38-21";
-channelsnames[2163]="NG_ZAPPER_5.8";
-channels[2163]="S30.0W-54-38-22";
-channelsnames[2164]="NG_DVR_5.8";
-channels[2164]="S30.0W-54-38-23";
-channelsnames[2165]="Playboy TV";
-channels[2165]="S30.0W-54-38-169";
-channelsnames[2166]="Sport TV 2";
-channels[2166]="S30.0W-54-38-301";
-channelsnames[2167]="Canal de teste";
-channels[2167]="S30.0W-54-38-302";
-channelsnames[2168]="AR TV";
-channels[2168]="S30.0W-54-38-303";
-channelsnames[2169]="Globo";
-channels[2169]="S30.0W-54-38-304";
-channelsnames[2170]="TVI 24";
-channels[2170]="S30.0W-54-38-305";
-channelsnames[2171]="Sport TV 3";
-channels[2171]="S30.0W-54-38-306";
-channelsnames[2172]="TV Record";
-channels[2172]="S30.0W-54-38-308";
-channelsnames[2173]="Sport TV Live";
-channels[2173]="S30.0W-54-38-309";
-channelsnames[2174]="RTP Memória";
-channels[2174]="S30.0W-54-38-310";
-channelsnames[2175]="Eurosport";
-channels[2175]="S30.0W-54-38-312";
-channelsnames[2176]="Hollywood";
-channels[2176]="S30.0W-54-38-313";
-channelsnames[2177]="MOV";
-channels[2177]="S30.0W-54-38-314";
-channelsnames[2178]="Canal de Teste";
-channels[2178]="S30.0W-54-38-701";
-channelsnames[2179]="SIC Radical";
-channels[2179]="S30.0W-54-40-502";
-channelsnames[2180]="Panda Biggs";
-channels[2180]="S30.0W-54-40-503";
-channelsnames[2181]="BBC Entertainment";
-channels[2181]="S30.0W-54-40-506";
-channelsnames[2182]="E! Entertainment";
-channels[2182]="S30.0W-54-40-507";
-channelsnames[2183]="Baby First";
-channels[2183]="S30.0W-54-40-509";
-channelsnames[2184]="Caça e Pesca";
-channels[2184]="S30.0W-54-40-933";
-channelsnames[2185]="Disney Junior";
-channels[2185]="S30.0W-54-40-939";
-channelsnames[2186]="CBS Reality";
-channels[2186]="S30.0W-54-41-604";
-channelsnames[2187]="RTP Açores";
-channels[2187]="S30.0W-54-41-605";
-channelsnames[2188]="NBA TV";
-channels[2188]="S30.0W-54-41-609";
-channelsnames[2189]="Canção Nova";
-channels[2189]="S30.0W-54-41-610";
-channelsnames[2190]="Novo SD TSCS6- 01";
-channels[2190]="S30.0W-54-41-611";
-channelsnames[2191]="Cartoon / TCM";
-channels[2191]="S30.0W-54-41-613";
-channelsnames[2192]="Canal Q";
-channels[2192]="S30.0W-54-41-959";
-channelsnames[2193]="C+ YOMVI";
-channels[2193]="S30.0W-49-9-7";
-channelsnames[2194]="COSMOPOLITAN";
-channels[2194]="S30.0W-49-9-26";
-channelsnames[2195]="HISTORIA";
-channels[2195]="S30.0W-49-9-35";
-channelsnames[2196]="BIO";
-channels[2196]="S30.0W-49-9-36";
-channelsnames[2197]="CINEMAGIC";
-channels[2197]="S30.0W-49-9-44";
-channelsnames[2198]="DCINEESPAÑOL";
-channels[2198]="S30.0W-49-9-48";
-channelsnames[2199]="EUROSPORT";
-channels[2199]="S30.0W-49-9-60";
-channelsnames[2200]="CAZA Y PESCA";
-channels[2200]="S30.0W-49-9-66";
-channelsnames[2201]="DISNEY XD";
-channels[2201]="S30.0W-49-9-72";
-channelsnames[2202]="CINEMAGIC";
-channels[2202]="S30.0W-49-9-73";
-channelsnames[2203]="24 HORAS";
-channels[2203]="S30.0W-49-9-100";
-channelsnames[2204]="BLOOMBERG";
-channels[2204]="S30.0W-49-9-102";
-channelsnames[2205]="Eventos";
-channels[2205]="S30.0W-49-9-500";
-channelsnames[2206]="Caça e Pesca";
-channels[2206]="S30.0W-49-9-3000";
-channelsnames[2207]="Eurosport";
-channels[2207]="S30.0W-49-9-3002";
-channelsnames[2208]="Canal de História";
-channels[2208]="S30.0W-49-9-3003";
-channelsnames[2209]="Bloomberg";
-channels[2209]="S30.0W-49-9-3004";
-channelsnames[2210]="TVE 24h";
-channels[2210]="S30.0W-49-9-3006";
-channelsnames[2211]="MTV ESPAÑA";
-channels[2211]="S30.0W-49-5-29";
-channelsnames[2212]="LTC";
-channels[2212]="S30.0W-49-5-39";
-channelsnames[2213]="BARÇA TV";
-channels[2213]="S30.0W-49-5-63";
-channelsnames[2214]="MOTORS TV";
-channels[2214]="S30.0W-49-5-65";
-channelsnames[2215]="DIVINITY";
-channels[2215]="S30.0W-49-5-90";
-channelsnames[2216]="ENERGY";
-channels[2216]="S30.0W-49-5-91";
-channelsnames[2217]="FOX NEWS";
-channels[2217]="S30.0W-49-5-105";
-channelsnames[2218]="C.ESTRELLAS";
-channels[2218]="S30.0W-49-5-117";
-channelsnames[2219]="C+ MultiCINE";
-channels[2219]="S30.0W-49-8-6";
-channelsnames[2220]="C+ MultiCINE";
-channels[2220]="S30.0W-49-8-40";
-channelsnames[2221]="C+ MultiDEP";
-channels[2221]="S30.0W-49-8-50";
-channelsnames[2222]="NICKELODEON";
-channels[2222]="S30.0W-49-8-74";
-channelsnames[2223]="TAQUILLA 1";
-channels[2223]="S30.0W-49-8-121";
-channelsnames[2224]="TAQUILLA 2";
-channels[2224]="S30.0W-49-8-122";
-channelsnames[2225]="TAQUILLA 3";
-channels[2225]="S30.0W-49-8-123";
-channelsnames[2226]="TAQUILLA 4";
-channels[2226]="S30.0W-49-8-124";
-channelsnames[2227]="TAQUILLA X";
-channels[2227]="S30.0W-49-8-139";
-channelsnames[2228]="MULTIDEP.4";
-channels[2228]="S30.0W-49-8-193";
-channelsnames[3000]="TV3 Lithuania";
-channels[3000]="S5.0E-85-14-6340";
-channelsnames[3001]="TV6 Lithuania";
-channels[3001]="S5.0E-85-14-6350";
-channelsnames[3002]="TV8 Lithuania";
-channels[3002]="S5.0E-85-18-6890";
-channelsnames[3003]="LNK";
-channels[3003]="S5.0E-85-52-2910";
-channelsnames[3004]="LTV1";
-channels[3004]="S5.0E-85-14-6390";
-channelsnames[3005]="LTV World";
-channels[3005]="S5.0E-85-2-240";
-channelsnames[3006]="LTV7";
-channels[3006]="S5.0E-85-13-6295";
-channelsnames[3007]="Kidzone";
-channels[3007]="S5.0E-85-14-6370";
-channelsnames[3008]="TV1 Lithuania";
-channels[3008]="S5.0E-85-52-2900";
-channelsnames[3009]="Lietuvos Rytas TV";
-channels[3009]="S5.0E-85-52-2920";
-channelsnames[3010]="BTV";
-channels[3010]="S5.0E-85-52-2930";
-channelsnames[3011]="RTR Planeta";
-channels[3011]="S5.0E-86-24-4420";
-channelsnames[3012]="NTV Mir Lithuania";
-channels[3012]="S5.0E-85-13-6270";
-channelsnames[3013]="REN-TV LIETUVA";
-channels[3013]="S5.0E-85-13-6240";
-channelsnames[3014]="CTC Baltic";
-channels[3014]="S5.0E-85-18-6850";
-channelsnames[3015]="1st Baltic Ch. Lithuania";
-channels[3015]="S5.0E-85-13-6220";
-channelsnames[3016]="ENGLISH CLUB TV";
-channels[3016]="S5.0E-85-15-6575";
-channelsnames[3017]="ATR";
-channels[3017]="S5.0E-85-17-6950";
-channelsnames[3018]="GLAS";
-channels[3018]="S5.0E-85-12-6130";
-channelsnames[3019]="TV SALE UKR";
-channels[3019]="S5.0E-85-12-6160";
-channelsnames[3020]="Viasat Explore";
-channels[3020]="S5.0E-86-9-7050";
-channelsnames[3021]="Viasat History";
-channels[3021]="S5.0E-86-8-6050";
-channelsnames[3022]="Viasat Nature East";
-channels[3022]="S5.0E-86-8-6030";
-channelsnames[3023]="Ohota Rybalka";
-channels[3023]="S5.0E-86-22-3630";
-channelsnames[3024]="National Geographic (S)";
-channels[3024]="S5.0E-86-22-3690";
-channelsnames[3025]="History Channel";
-channels[3025]="S5.0E-86-22-3620";
-channelsnames[3026]="Nick No/VH1 Classic";
-channels[3026]="S5.0E-86-24-4460";
-channelsnames[3027]="TV6 (N)";
-channels[3027]="S5.0E-86-4-2170";
-channelsnames[3028]="TV1000 Action East";
-channels[3028]="S5.0E-86-21-3410";
-channelsnames[3029]="TV1000 Ru Kino";
-channels[3029]="S5.0E-86-9-7080";
-channelsnames[3030]="Cartoon Network EE";
-channels[3030]="S5.0E-86-22-3610";
-channelsnames[3031]="Viasat Sport Baltic";
-channels[3031]="S5.0E-86-8-6060";
-channelsnames[3032]="Viasat Golf";
-channels[3032]="S5.0E-86-30-1860";
-channelsnames[3033]="Disney Channel";
-channels[3033]="S5.0E-86-5-3180";
-channelsnames[3034]="Disney XD";
-channels[3034]="S5.0E-86-5-3190";
-channelsnames[3035]="Disney Junior";
-channels[3035]="S5.0E-86-3-1130";
-channelsnames[3036]="Nickelodeon (S)";
-channels[3036]="S5.0E-86-5-3160";
-channelsnames[3037]="Nick JR / VH1";
-channels[3037]="S5.0E-85-18-6880";
-channelsnames[3038]="MTV SE";
-channels[3038]="S5.0E-86-4-2150";
-channelsnames[3039]="E!";
-channels[3039]="S5.0E-86-5-3100";
-channelsnames[3040]="1st Baltic Music channel";
-channels[3040]="S5.0E-85-13-6230";
-channelsnames[3041]="BBC World";
-channels[3041]="S5.0E-86-4-2120";
-channelsnames[3042]="CNN";
-channels[3042]="S5.0E-86-9-7040";
-channelsnames[3043]="Russia Today";
-channels[3043]="S5.0E-86-6-4080";
-channelsnames[3044]="CNBC";
-channels[3044]="S5.0E-86-6-4180";
-channelsnames[3045]="Viasat Xtra 1";
-channels[3045]="S5.0E-86-10-8000";
-channelsnames[3046]="Viasat Xtra 2";
-channels[3046]="S5.0E-86-10-8010";
-channelsnames[3047]="Viasat Xtra 3";
-channels[3047]="S5.0E-86-10-8020";
-channelsnames[3048]="Viasat Xtra 4";
-channels[3048]="S5.0E-86-10-8030";
-channelsnames[3049]="Viasat Xtra 5";
-channels[3049]="S5.0E-86-10-8040";
-channelsnames[3050]="Viasat Xtra 6";
-channels[3050]="S5.0E-86-10-8080";
-channelsnames[3051]="Viasat Xtra 7";
-channels[3051]="S5.0E-86-10-8050";
-channelsnames[3052]="Viasat Xtra PL1";
-channels[3052]="S5.0E-86-10-7900";
-channelsnames[3053]="Viasat Xtra PL2";
-channels[3053]="S5.0E-86-10-7910";
-channelsnames[3054]="Viasat Xtra PL3";
-channels[3054]="S5.0E-86-10-7920";
-channelsnames[3055]="Viasat Xtra PL4";
-channels[3055]="S5.0E-86-10-7930";
-channelsnames[3056]="Viasat Xtra PL5";
-channels[3056]="S5.0E-86-10-7940";
-channelsnames[3057]="Viasat Xtra PL6";
-channels[3057]="S5.0E-86-10-7950";
-channelsnames[3058]="Viasat Xtra PL7";
-channels[3058]="S5.0E-86-10-7960";
-channelsnames[3059]="Viasat Xtra NHL1";
-channels[3059]="S5.0E-86-10-7970";
-channelsnames[3060]="Viasat Xtra NHL2";
-channels[3060]="S5.0E-86-10-7980";
-channelsnames[3061]="Viasat Xtra NHL3";
-channels[3061]="S5.0E-86-10-7990";
-channelsnames[3062]="Viasat Xtra NHL4";
-channels[3062]="S5.0E-86-10-8150";
-channelsnames[3063]="Viasat Xtra NHL5";
-channels[3063]="S5.0E-86-10-8160";
-channelsnames[3064]="Viasat Xtra NHL6";
-channels[3064]="S5.0E-86-10-8170";
-channelsnames[3065]="Viasat Xtra NHL7";
-channels[3065]="S5.0E-86-10-8180";
-channelsnames[3066]="Nature/Crime/Playboy";
-channels[3066]="S5.0E-86-4-2110";
-channelsnames[3100]="Romantica 2";
-channels[3100]="S5.0E-0-0-8";
-channelsnames[3101]="Absolute Radio";
-channels[3101]="S5.0E-1-1-6";
-channelsnames[3200]="NRK1";
-channels[3200]="S5.0E-86-28-1501";
-channelsnames[3201]="NRK2";
-channels[3201]="S5.0E-86-28-1502";
-channelsnames[3202]="NRK Super / NRK3";
-channels[3202]="S5.0E-86-28-3510";
-channelsnames[3203]="DR Ultra";
-channels[3203]="S5.0E-86-30-1800";
-channelsnames[3204]="TV2 Zulu";
-channels[3204]="S5.0E-86-30-1810";
-channelsnames[3205]="TV2 Charlie";
-channels[3205]="S5.0E-86-30-1820";
-channelsnames[3206]="TV3 SPORT 1";
-channels[3206]="S5.0E-86-30-1830";
-channelsnames[3207]="TV 2 Sportkanalen";
-channels[3207]="S5.0E-86-30-1840";
-channelsnames[3208]="TV2 Fri";
-channels[3208]="S5.0E-86-30-1850";
-channelsnames[3209]="TV2 NEWS";
-channels[3209]="S5.0E-86-30-1870";
-channelsnames[3210]="DR Ramasjang";
-channels[3210]="S5.0E-86-30-1880";
-channelsnames[3211]="DR K";
-channels[3211]="S5.0E-86-30-1890";
-channelsnames[3212]="TV3 Latvia";
-channels[3212]="S5.0E-85-14-6300";
-channelsnames[3213]="3+";
-channels[3213]="S5.0E-85-14-6310";
-channelsnames[3214]="Kanals 2";
-channels[3214]="S5.0E-85-14-6320";
-channelsnames[3215]="TV3 Estonia";
-channels[3215]="S5.0E-85-14-6330";
-channelsnames[3216]="TV6 Latvia";
-channels[3216]="S5.0E-85-14-6335";
-channelsnames[3217]="Star FM LV";
-channels[3217]="S5.0E-85-14-6345";
-channelsnames[3218]="TV6 Estonia";
-channels[3218]="S5.0E-85-14-6355";
-channelsnames[3219]="LNT Latvia";
-channels[3219]="S5.0E-85-14-6360";
-channelsnames[3220]="ETV";
-channels[3220]="S5.0E-85-14-6380";
-channelsnames[3221]="UR1";
-channels[3221]="S5.0E-85-12-6100";
-channelsnames[3222]="UR2";
-channels[3222]="S5.0E-85-12-6102";
-channelsnames[3223]="UR3";
-channels[3223]="S5.0E-85-12-6104";
-channelsnames[3224]="RUI";
-channels[3224]="S5.0E-85-12-6106";
-channelsnames[3225]="TET";
-channels[3225]="S5.0E-85-12-6110";
-channelsnames[3226]="2+2";
-channels[3226]="S5.0E-85-12-6120";
-channelsnames[3227]="1+1 International";
-channels[3227]="S5.0E-85-12-6125";
-channelsnames[3228]="JN1 - Jewish news one";
-channels[3228]="S5.0E-85-12-6140";
-channelsnames[3229]="MALYATKO TV";
-channels[3229]="S5.0E-85-12-6150";
-channelsnames[3230]="RADA";
-channels[3230]="S5.0E-85-12-6170";
-channelsnames[3231]="NTA";
-channels[3231]="S5.0E-85-12-6180";
-channelsnames[3232]="RADIO ERA";
-channels[3232]="S5.0E-85-12-6186";
-channelsnames[3233]="Channel 5 (Ukraine)";
-channels[3233]="S5.0E-85-12-6190";
-channelsnames[3234]="Love Radio";
-channels[3234]="S5.0E-85-12-6196";
-channelsnames[3235]="NTV";
-channels[3235]="S5.0E-85-2-10";
-channelsnames[3236]="Belsat TV";
-channels[3236]="S5.0E-85-2-200";
-channelsnames[3237]="ATG EU BSS";
-channels[3237]="S5.0E-85-2-210";
-channelsnames[3238]="TVCI new";
-channels[3238]="S5.0E-85-2-220";
-channelsnames[3239]="European Radio for Belarus";
-channels[3239]="S5.0E-85-2-230";
-channelsnames[3240]="K75 International";
-channels[3240]="S5.0E-85-2-260";
-channelsnames[3241]="Dozhd TV";
-channels[3241]="S5.0E-85-2-270";
-channelsnames[3242]="Espreso TV";
-channels[3242]="S5.0E-85-2-280";
-channelsnames[3243]="Viasat Sport Sverige";
-channels[3243]="S5.0E-86-4-2100";
-channelsnames[3244]="TV3+";
-channels[3244]="S5.0E-86-4-2130";
-channelsnames[3245]="Viasat Hockey";
-channels[3245]="S5.0E-86-4-2140";
-channelsnames[3246]="Viasat 4";
-channels[3246]="S5.0E-86-4-2160";
-channelsnames[3247]="TV4 Fakta";
-channels[3247]="S5.0E-86-4-2180";
-channelsnames[3248]="TV3 Sverige";
-channels[3248]="S5.0E-86-3-1100";
-channelsnames[3249]="TV3 Norge";
-channels[3249]="S5.0E-86-3-1110";
-channelsnames[3250]="TV3 Denmark";
-channels[3250]="S5.0E-86-3-1120";
-channelsnames[3251]="Viasat Film";
-channels[3251]="S5.0E-86-3-1140";
-channelsnames[3252]="VFilm Action";
-channels[3252]="S5.0E-86-3-1150";
-channelsnames[3253]="TV6";
-channels[3253]="S5.0E-86-3-1160";
-channelsnames[3254]="Cartoon Network";
-channels[3254]="S5.0E-86-3-1170";
-channelsnames[3255]="VFilm Drama";
-channels[3255]="S5.0E-86-3-1195";
-channelsnames[3256]="1st Baltic Ch. Estonia";
-channels[3256]="S5.0E-85-13-6200";
-channelsnames[3257]="1st Baltic Ch. Latvia";
-channels[3257]="S5.0E-85-13-6210";
-channelsnames[3258]="Mir Baltic";
-channels[3258]="S5.0E-85-13-6260";
-channelsnames[3259]="Radio 101";
-channels[3259]="S5.0E-85-13-6275";
-channelsnames[3260]="VFilm Family";
-channels[3260]="S5.0E-86-5-3110";
-channelsnames[3261]="VFilm Comedy";
-channels[3261]="S5.0E-86-5-3120";
-channelsnames[3262]="VFilm Classic";
-channels[3262]="S5.0E-86-5-3130";
-channelsnames[3263]="Euronews";
-channels[3263]="S5.0E-86-7-5000";
-channelsnames[3264]="NHK World TV";
-channels[3264]="S5.0E-86-7-5010";
-channelsnames[3265]="Kunskapskanalen";
-channels[3265]="S5.0E-86-7-5020";
-channelsnames[3266]="SVTB/SVT24";
-channels[3266]="S5.0E-86-7-5030";
-channelsnames[3267]="Nat Geo Wild";
-channels[3267]="S5.0E-86-7-5080";
-channelsnames[3268]="TV 2 Bliss";
-channels[3268]="S5.0E-86-7-5050";
-channelsnames[3269]="TVNorge";
-channels[3269]="S5.0E-86-7-5040";
-channelsnames[3270]="TV4 Guld";
-channels[3270]="S5.0E-86-7-5060";
-channelsnames[3271]="NRK1 HD";
-channels[3271]="S5.0E-86-28-3515";
-channelsnames[3272]="NRK Tegnspråk";
-channels[3272]="S5.0E-86-28-1516";
-channelsnames[3273]="NRK1 Nordnytt";
-channels[3273]="S5.0E-86-28-1521";
-channelsnames[3274]="NRK1 Nordland";
-channels[3274]="S5.0E-86-28-3502";
-channelsnames[3275]="NRK1 Midtnytt";
-channels[3275]="S5.0E-86-28-3503";
-channelsnames[3276]="NRK1 Møre & Romsdal";
-channels[3276]="S5.0E-86-28-3504";
-channelsnames[3277]="NRK1 Vestlandsrevyen";
-channels[3277]="S5.0E-86-28-3505";
-channelsnames[3278]="NRK1 Rogaland";
-channels[3278]="S5.0E-86-28-3506";
-channelsnames[3279]="NRK1 Sørlandet";
-channels[3279]="S5.0E-86-28-3507";
-channelsnames[3280]="NRK1 Østafjells";
-channels[3280]="S5.0E-86-28-1520";
-channelsnames[3281]="NRK1 Østnytt";
-channels[3281]="S5.0E-86-28-3508";
-channelsnames[3282]="NRK1 Østfold";
-channels[3282]="S5.0E-86-28-3509";
-channelsnames[3283]="NRK P1";
-channels[3283]="S5.0E-86-28-1503";
-channelsnames[3284]="NRK P2";
-channels[3284]="S5.0E-86-28-1504";
-channelsnames[3285]="NRK P3";
-channels[3285]="S5.0E-86-28-1505";
-channelsnames[3286]="NRK Klassisk";
-channels[3286]="S5.0E-86-28-1507";
-channelsnames[3287]="NRK Sami Radio";
-channels[3287]="S5.0E-86-28-1510";
-channelsnames[3288]="NRK mP3";
-channels[3288]="S5.0E-86-28-1515";
-channelsnames[3289]="NRK Alltid Nyheter";
-channels[3289]="S5.0E-86-28-511";
-channelsnames[3290]="NRK P13";
-channels[3290]="S5.0E-86-28-3501";
-channelsnames[3291]="NRK Været til sjøs";
-channels[3291]="S5.0E-86-28-3511";
-channelsnames[3292]="NRK Super";
-channels[3292]="S5.0E-86-28-3513";
-channelsnames[3293]="NRK P1+";
-channels[3293]="S5.0E-86-28-3514";
-channelsnames[3294]="NRK Jazz";
-channels[3294]="S5.0E-86-28-3516";
-channelsnames[3295]="TV 2/Bornholm";
-channels[3295]="S5.0E-86-26-4670";
-channelsnames[3296]="TV 2/Fyn";
-channels[3296]="S5.0E-86-26-4640";
-channelsnames[3297]="TV 2/Lorry";
-channels[3297]="S5.0E-86-26-4660";
-channelsnames[3298]="TV 2/Midt-Vest";
-channels[3298]="S5.0E-86-26-4610";
-channelsnames[3299]="TV 2/Nord";
-channels[3299]="S5.0E-86-26-4600";
-channelsnames[3300]="TV 2/Syd";
-channels[3300]="S5.0E-86-26-4630";
-channelsnames[3301]="TV 2/Øst";
-channels[3301]="S5.0E-86-26-4650";
-channelsnames[3302]="TV 2/Østjylland";
-channels[3302]="S5.0E-86-26-4620";
-channelsnames[3303]="Bandit";
-channels[3303]="S5.0E-86-26-4690";
-channelsnames[3304]="Rix FM";
-channels[3304]="S5.0E-86-26-4692";
-channelsnames[3305]="P4 Lyden av Norge";
-channels[3305]="S5.0E-86-26-4694";
-channelsnames[3306]="Lugna Favoriter";
-channels[3306]="S5.0E-86-26-4696";
-channelsnames[3307]="Kanal 2";
-channels[3307]="S5.0E-85-52-2950";
-channelsnames[3308]="Kanal 11";
-channels[3308]="S5.0E-85-52-2960";
-channelsnames[3309]="ETV2";
-channels[3309]="S5.0E-85-52-2970";
-channelsnames[3310]="Golden Oldies";
-channels[3310]="S5.0E-86-22-3716";
-channelsnames[3311]="Jazz";
-channels[3311]="S5.0E-86-22-3718";
-channelsnames[3312]="Classic";
-channels[3312]="S5.0E-86-22-3722";
-channelsnames[3313]="Disco";
-channels[3313]="S5.0E-86-22-3724";
-channelsnames[3314]="Soul R&b";
-channels[3314]="S5.0E-86-22-3728";
-channelsnames[3315]="Super 80's";
-channels[3315]="S5.0E-86-22-3732";
-channelsnames[3316]="TV4";
-channels[3316]="S5.0E-86-22-3670";
-channelsnames[3317]="Comedy Central";
-channels[3317]="S5.0E-86-22-3660";
-channelsnames[3318]="Kanal 5";
-channels[3318]="S5.0E-86-22-3650";
-channelsnames[3319]="National Geographic (N)";
-channels[3319]="S5.0E-86-22-3640";
-channelsnames[3320]="TV10";
-channels[3320]="S5.0E-86-23-3800";
-channelsnames[3321]="Viasat Fotball";
-channels[3321]="S5.0E-86-23-3830";
-channelsnames[3322]="Boomerang";
-channels[3322]="S5.0E-86-23-3850";
-channelsnames[3323]="TV2 Zebra";
-channels[3323]="S5.0E-86-23-3820";
-channelsnames[3324]="TV4 Komedi";
-channels[3324]="S5.0E-86-23-3890";
-channelsnames[3325]="TV12";
-channels[3325]="S5.0E-86-23-3840";
-channelsnames[3326]="Kanal 5";
-channels[3326]="S5.0E-86-23-3880";
-channelsnames[3327]="TV4 Fakta XL";
-channels[3327]="S5.0E-86-23-3860";
-channelsnames[3328]="TV 2 Norge";
-channels[3328]="S5.0E-86-23-3810";
-channelsnames[3329]="TV1000 Premium";
-channels[3329]="S5.0E-85-18-6800";
-channelsnames[3330]="Lithuanian TV1";
-channels[3330]="S5.0E-85-18-6810";
-channelsnames[3331]="CANAL8 Sport";
-channels[3331]="S5.0E-86-24-4410";
-channelsnames[3332]="TV 2 Nyhetskanalen";
-channels[3332]="S5.0E-86-24-4450";
-channelsnames[3333]="dk4";
-channels[3333]="S5.0E-86-24-4470";
-channelsnames[3334]="TVN Chile Nordic";
-channels[3334]="S5.0E-86-6-4000";
-channelsnames[3335]="Visjon Norge";
-channels[3335]="S5.0E-86-6-4010";
-channelsnames[3336]="Kanal 10";
-channels[3336]="S5.0E-86-6-4050";
-channelsnames[3337]="GOD Channel";
-channels[3337]="S5.0E-86-6-4060";
-channelsnames[3338]="Viasat Xtra 8";
-channels[3338]="S5.0E-86-10-8110";
-channelsnames[3339]="Viasat Xtra 9";
-channels[3339]="S5.0E-86-10-8130";
-channelsnames[3340]="Viasat Xtra NHL8";
-channels[3340]="S5.0E-86-10-8140";
-channelsnames[3341]="TV11";
-channels[3341]="S5.0E-86-8-6000";
-channelsnames[3342]="TV 2 Filmkanalen";
-channels[3342]="S5.0E-86-8-6010";
-channelsnames[3343]="Ticket";
-channels[3343]="S5.0E-86-8-6020";
-channelsnames[3344]="MTV NO";
-channels[3344]="S5.0E-86-8-6040";
-channelsnames[3345]="Sjuan";
-channels[3345]="S5.0E-86-8-6080";
-channelsnames[3346]="TV4 Film";
-channels[3346]="S5.0E-86-8-6090";
-channelsnames[3347]="FEM";
-channels[3347]="S5.0E-86-21-3400";
-channelsnames[3348]="Viasat Fotboll";
-channels[3348]="S5.0E-86-21-3420";
-channelsnames[3349]="Nickelodeon DK / MTV Hits";
-channels[3349]="S5.0E-86-21-3450";
-channelsnames[3350]="Viasat Motor";
-channels[3350]="S5.0E-86-21-3430";
-channelsnames[3351]="Viasat Sport Norge";
-channels[3351]="S5.0E-86-21-3440";
-channelsnames[3352]="DR1";
-channels[3352]="S5.0E-86-9-7010";
-channelsnames[3353]="DR2";
-channels[3353]="S5.0E-86-9-7020";
-channelsnames[3354]="TV8";
-channels[3354]="S5.0E-86-9-7030";
-channelsnames[3355]="TV3 Puls";
-channels[3355]="S5.0E-86-9-7060";
-channelsnames[3356]="MTV DK";
-channels[3356]="S5.0E-86-9-7070";
-channelsnames[3357]="DR P1";
-channels[3357]="S5.0E-86-9-7210";
-channelsnames[3358]="DR P3";
-channels[3358]="S5.0E-86-9-7212";
-channelsnames[3359]="DR Klassisk";
-channels[3359]="S5.0E-86-9-7214";
-channelsnames[3360]="Emmanuel";
-channels[3360]="S5.0E-85-15-6500";
-channelsnames[3361]="NEWS ONE";
-channels[3361]="S5.0E-85-15-6510";
-channelsnames[3362]="1 Auto";
-channels[3362]="S5.0E-85-15-6520";
-channelsnames[3363]="RU MUSIC";
-channels[3363]="S5.0E-85-15-6530";
-channelsnames[3364]="Ukrainian Fashion";
-channels[3364]="S5.0E-85-15-6540";
-channelsnames[3365]="A-One UA";
-channels[3365]="S5.0E-85-15-6545";
-channelsnames[3366]="Dobro TV";
-channels[3366]="S5.0E-85-15-6555";
-channelsnames[3367]="Star TV UKR";
-channels[3367]="S5.0E-85-15-6560";
-channelsnames[3368]="PogodaTV";
-channels[3368]="S5.0E-85-15-6565";
-channelsnames[3369]="Business";
-channels[3369]="S5.0E-85-15-6580";
-channelsnames[3370]="YHT";
-channels[3370]="S5.0E-85-15-6585";
-channelsnames[3371]="SHOPping TV";
-channels[3371]="S5.0E-85-15-6590";
-channelsnames[3372]="SVT1 Nord";
-channels[3372]="S5.0E-86-11-2450";
-channelsnames[3373]="SVT1 Västerbotten";
-channels[3373]="S5.0E-86-11-2460";
-channelsnames[3374]="SVT1 Mitt";
-channels[3374]="S5.0E-86-11-2470";
-channelsnames[3375]="SVT1 Gävledala";
-channels[3375]="S5.0E-86-11-2480";
-channelsnames[3376]="SVT1 Värmland";
-channels[3376]="S5.0E-86-11-2490";
-channelsnames[3377]="SVT1 Tvärs";
-channels[3377]="S5.0E-86-11-2500";
-channelsnames[3378]="SVT1";
-channels[3378]="S5.0E-86-11-2510";
-channelsnames[3379]="SVT1 Öst";
-channels[3379]="S5.0E-86-11-2520";
-channelsnames[3380]="SVT1 Väst";
-channels[3380]="S5.0E-86-11-2530";
-channelsnames[3381]="SVT1 Småland";
-channels[3381]="S5.0E-86-11-2540";
-channelsnames[3382]="SVT1 Syd";
-channels[3382]="S5.0E-86-11-2550";
-channelsnames[3383]="SVT2 Nord";
-channels[3383]="S5.0E-86-11-2300";
-channelsnames[3384]="SVT2 Västerbotten";
-channels[3384]="S5.0E-86-11-2310";
-channelsnames[3385]="SVT2 Mitt";
-channels[3385]="S5.0E-86-11-2320";
-channelsnames[3386]="SVT2 Gävledala";
-channels[3386]="S5.0E-86-11-2330";
-channelsnames[3387]="SVT2 Värmland";
-channels[3387]="S5.0E-86-11-2340";
-channelsnames[3388]="SVT2 Tvärs";
-channels[3388]="S5.0E-86-11-2350";
-channelsnames[3389]="SVT2";
-channels[3389]="S5.0E-86-11-2360";
-channelsnames[3390]="SVT2 Öst";
-channels[3390]="S5.0E-86-11-2370";
-channelsnames[3391]="SVT2 Väst";
-channels[3391]="S5.0E-86-11-2380";
-channelsnames[3392]="SVT2 Småland";
-channels[3392]="S5.0E-86-11-2390";
-channelsnames[3393]="SVT2 Syd";
-channels[3393]="S5.0E-86-11-2400";
-channelsnames[3394]="Pro BCE";
-channels[3394]="S5.0E-85-17-6960";
-channelsnames[3395]="LALE";
-channels[3395]="S5.0E-85-17-6970";
-channelsnames[3500]="DISCOVERY CHANNEL";
-channels[3500]="S42.0E-42-55000-3601";
-channelsnames[3501]="TV2";
-channels[3501]="S42.0E-66-3-1303";
-channelsnames[3502]="TRT BELGESEL";
-channels[3502]="S42.0E-1-1-18";
-channelsnames[3503]="KIDZ/ANIMEZ";
-channels[3503]="S42.0E-42-55-100";
-channelsnames[3504]="SPORTS TV";
-channels[3504]="S42.0E-42-502-14";
-channelsnames[3505]="DUBLE TV";
-channels[3505]="S42.0E-42-55-2800";
-channelsnames[3506]="WORLD TRAVEL CHANNEL";
-channels[3506]="S42.0E-1070-41901-50702";
-channelsnames[3507]="CNN TÜRK OBSOLETE";
-channels[3507]="S42.0E-66-3-1";
-channelsnames[3508]="EURO D OBSOLETE";
-channels[3508]="S42.0E-66-3-3";
-channelsnames[3509]="ONE SUPER TV OBSOLETE";
-channels[3509]="S42.0E-66-3-4";
-channelsnames[3510]="BULUT TV OBSOLETE";
-channels[3510]="S42.0E-66-3-5";
-channelsnames[3511]="SUPERPOP TV OBSOLETE";
-channels[3511]="S42.0E-66-3-6";
-channelsnames[3512]="KARIŞIK TV OBSOLETE";
-channels[3512]="S42.0E-66-3-7";
-channelsnames[3513]="PİKSEL TV OBSOLETE";
-channels[3513]="S42.0E-66-3-8";
-channelsnames[3514]="ONE BAL TV OBSOLETE";
-channels[3514]="S42.0E-66-3-10";
-channelsnames[3515]="CNN TÜRK RADYO OBSOLETE";
-channels[3515]="S42.0E-66-3-11";
-channelsnames[3516]="RADYO D OBSOLETE";
-channels[3516]="S42.0E-66-3-12";
-channelsnames[3517]="MCJ MEDIASA";
-channels[3517]="S42.0E-42-1089-2";
-channelsnames[3518]="SLOW TÜRK OBSOLETE";
-channels[3518]="S42.0E-66-3-13";
-channelsnames[3519]="BEST FM OBSOLETE";
-channels[3519]="S42.0E-66-3-14";
-channelsnames[3520]="PMC TV OBSOLETE";
-channels[3520]="S42.0E-66-3-32";
-channelsnames[3521]="MÜZİK TÜRK OBSOLETE";
-channels[3521]="S42.0E-66-3-33";
-channelsnames[3522]="HAZAN TV OBSOLETE";
-channels[3522]="S42.0E-66-3-37";
-channelsnames[3523]="DHA FEED OBSOLETE";
-channels[3523]="S42.0E-66-3-41";
-channelsnames[3524]="PLANET ÇOCUK OBSOLETE";
-channels[3524]="S42.0E-66-3-43";
-channelsnames[3525]="PLANET PEMBE OBSOLETE";
-channels[3525]="S42.0E-66-3-44";
-channelsnames[3526]="PLANET MUTFAK OBSOLETE";
-channels[3526]="S42.0E-66-3-45";
-channelsnames[3527]="PLANET TÜRK OBSOLETE";
-channels[3527]="S42.0E-66-3-46";
-channelsnames[3528]="NİSA TV OBSOLETE";
-channels[3528]="S42.0E-66-3-47";
-channelsnames[3529]="MEDYA TV OBSOLETE";
-channels[3529]="S42.0E-66-3-48";
-channelsnames[3530]="DOGU TV OBSOLETE";
-channels[3530]="S42.0E-66-3-49";
-channelsnames[3531]="SERVICE 1 OBSOLETE";
-channels[3531]="S42.0E-66-3-81";
-channelsnames[3532]="SERVICE 2 OBSOLETE";
-channels[3532]="S42.0E-66-3-82";
-channelsnames[3533]="SERVICE 3 OBSOLETE";
-channels[3533]="S42.0E-66-3-83";
-channelsnames[3534]="SERVICE 4 OBSOLETE";
-channels[3534]="S42.0E-66-3-84";
-channelsnames[3535]="TRT 1";
-channels[3535]="S42.0E-1-1-1";
-channelsnames[3536]="RADYO 1";
-channels[3536]="S42.0E-1-1-2";
-channelsnames[3537]="RADYO 3";
-channels[3537]="S42.0E-1-1-3";
-channelsnames[3538]="RADYO GAP";
-channels[3538]="S42.0E-1-1-4";
-channelsnames[3539]="TRT HABER";
-channels[3539]="S42.0E-1-1-5";
-channelsnames[3540]="TRT FM";
-channels[3540]="S42.0E-1-1-6";
-channelsnames[3541]="RADYO 4";
-channels[3541]="S42.0E-1-1-7";
-channelsnames[3542]="RADYO 6";
-channels[3542]="S42.0E-1-1-8";
-channelsnames[3543]="TRT TURK";
-channels[3543]="S42.0E-1-1-9";
-channelsnames[3544]="VOT WORLD";
-channels[3544]="S42.0E-1-1-10";
-channelsnames[3545]="TSR TURKCE";
-channels[3545]="S42.0E-1-1-11";
-channelsnames[3546]="TRT 3-SPOR";
-channels[3546]="S42.0E-1-1-12";
-channelsnames[3547]="Meteorolojinin Sesi";
-channels[3547]="S42.0E-1-1-13";
-channelsnames[3548]="VOT WEST";
-channels[3548]="S42.0E-1-1-14";
-channelsnames[3549]="TRT RADYO HABER";
-channels[3549]="S42.0E-1-1-15";
-channelsnames[3550]="TRT COCUK";
-channels[3550]="S42.0E-1-1-16";
-channelsnames[3551]="TRT NAGME";
-channels[3551]="S42.0E-1-1-17";
-channelsnames[3552]="TRT AVRUPA FM";
-channels[3552]="S42.0E-1-1-19";
-channelsnames[3553]="TRT TURKU";
-channels[3553]="S42.0E-1-1-20";
-channelsnames[3554]="INTERCOM";
-channels[3554]="S42.0E-1-1-21";
-channelsnames[3555]="TRT OKUL";
-channels[3555]="S42.0E-1-1-22";
-channelsnames[3556]="TRT MUZIK";
-channels[3556]="S42.0E-1-1-23";
-channelsnames[3557]="ALTIN ORDU";
-channels[3557]="S42.0E-42-55-300";
-channelsnames[3558]="SINEMA TV";
-channels[3558]="S42.0E-42-55-400";
-channelsnames[3559]="SINEMA TV2";
-channels[3559]="S42.0E-42-55-500";
-channelsnames[3560]="SINEMA TV AILE";
-channels[3560]="S42.0E-42-55-600";
-channelsnames[3561]="SINEMA TV HD";
-channels[3561]="S42.0E-42-55-700";
-channelsnames[3562]="SINEMATV HD2";
-channels[3562]="S42.0E-42-55-800";
-channelsnames[3563]="SINEMA TV 1001";
-channels[3563]="S42.0E-42-55-1000";
-channelsnames[3564]="BBC HD";
-channels[3564]="S42.0E-42-55-1300";
-channelsnames[3565]="SINEMA TV 1001 HD";
-channels[3565]="S42.0E-42-55-1400";
-channelsnames[3566]="SINEMA TV AILE HD";
-channels[3566]="S42.0E-42-55-1500";
-channelsnames[3567]="YEDIRENK";
-channels[3567]="S42.0E-42-55-2000";
-channelsnames[3568]="BAHAR TV";
-channels[3568]="S42.0E-42-55-2100";
-channelsnames[3569]="ARABESK TV";
-channels[3569]="S42.0E-42-55-2500";
-channelsnames[3570]="DEPOMEPO TV";
-channels[3570]="S42.0E-42-55-2600";
-channelsnames[3571]="LAGUN TV";
-channels[3571]="S42.0E-42-55-2700";
-channelsnames[3572]="KON TV";
-channels[3572]="S42.0E-42-3-1";
-channelsnames[3573]="HALK TV";
-channels[3573]="S42.0E-42-3-2";
-channelsnames[3574]="KACKAR TV";
-channels[3574]="S42.0E-42-3-3";
-channelsnames[3575]="SMARTSHOPPING TV";
-channels[3575]="S42.0E-42-3-4";
-channelsnames[3576]="BEREKET TV";
-channels[3576]="S42.0E-42-3-5";
-channelsnames[3577]="SHOPPING TV";
-channels[3577]="S42.0E-42-3-6";
-channelsnames[3578]="67 TV";
-channels[3578]="S42.0E-42-3-7";
-channelsnames[3579]="SAMSUN AKS TV";
-channels[3579]="S42.0E-42-3-8";
-channelsnames[3580]="VIZYONTURK";
-channels[3580]="S42.0E-42-3-10";
-channelsnames[3581]="ULUSAL KANAL";
-channels[3581]="S42.0E-42-3-11";
-channelsnames[3582]="AKDENIZ TV";
-channels[3582]="S42.0E-42-3-12";
-channelsnames[3583]="TATLISES TV";
-channels[3583]="S42.0E-42-3-13";
-channelsnames[3584]="REHBER TV";
-channels[3584]="S42.0E-42-3-14";
-channelsnames[3585]="YON RADYO";
-channels[3585]="S42.0E-42-3-18";
-channelsnames[3586]="RIBAT FM";
-channels[3586]="S42.0E-42-3-19";
-channelsnames[3587]="RADYO SILA";
-channels[3587]="S42.0E-42-3-21";
-channelsnames[3588]="KONYA FM";
-channels[3588]="S42.0E-42-3-26";
-channelsnames[3589]="VIZYON TURK";
-channels[3589]="S42.0E-42-3-27";
-channelsnames[3590]="CAGRI FM";
-channels[3590]="S42.0E-42-3-29";
-channelsnames[3591]="T KACKAR";
-channels[3591]="S42.0E-42-3-30";
-channelsnames[3592]="ANC RADYO";
-channels[3592]="S42.0E-42-3-31";
-channelsnames[3593]="EM TV";
-channels[3593]="S42.0E-42-502-1";
-channelsnames[3594]="UZAY TV";
-channels[3594]="S42.0E-42-502-2";
-channelsnames[3595]="ALTAS TV";
-channels[3595]="S42.0E-42-502-3";
-channelsnames[3596]="FB TV";
-channels[3596]="S42.0E-42-502-4";
-channelsnames[3597]="BURSA AS TV";
-channels[3597]="S42.0E-42-502-5";
-channelsnames[3598]="KONYA TV";
-channels[3598]="S42.0E-42-502-6";
-channelsnames[3599]="MAXI TV";
-channels[3599]="S42.0E-42-502-7";
-channelsnames[3600]="GALA TV";
-channels[3600]="S42.0E-42-502-8";
-channelsnames[3601]="ON4 TV";
-channels[3601]="S42.0E-42-502-9";
-channelsnames[3602]="YILDIZ TV";
-channels[3602]="S42.0E-42-502-10";
-channelsnames[3603]="TURKIYEM TV";
-channels[3603]="S42.0E-42-502-11";
-channelsnames[3604]="DOLUNAY FM";
-channels[3604]="S42.0E-42-502-13";
-channelsnames[3605]="BAYRAM FM";
-channels[3605]="S42.0E-42-502-15";
-channelsnames[3606]="SUN TV";
-channels[3606]="S42.0E-42-502-16";
-channelsnames[3607]="silafm";
-channels[3607]="S42.0E-42-502-17";
-channelsnames[4001]="TVN HD";
-channels[4001]="S13.0E-318-1600-15821";
-channelsnames[4002]="TVN Siedem";
-channels[4002]="S13.0E-318-1000-4313";
-channelsnames[4003]="TVN STYLE HD";
-channels[4003]="S13.0E-318-1600-15823";
-channelsnames[4004]="TVN Turbo HD";
-channels[4004]="S13.0E-318-1600-15824";
-channelsnames[4005]="TTV";
-channels[4005]="S13.0E-318-1000-4317";
-channelsnames[4006]="TVN 24 HD";
-channels[4006]="S13.0E-318-1600-15826";
-channelsnames[4007]="Polsat HD";
-channels[4007]="S13.0E-113-7800-3107";
-channelsnames[4008]="TV4";
-channels[4008]="S13.0E-113-13200-13103";
-channelsnames[4009]="Kuchnia+ HD";
-channels[4009]="S13.0E-318-1100-14237";
-channelsnames[4010]="Polsat2";
-channels[4010]="S13.0E-113-13200-13110";
-channelsnames[4011]="TVP 1 HD";
-channels[4011]="S13.0E-318-1300-15037";
-channelsnames[4012]="TVP 2 HD";
-channels[4012]="S13.0E-113-7800-3106";
-channelsnames[4013]="TVP HD";
-channels[4013]="S13.0E-318-300-15202";
-channelsnames[4014]="TVP SERIALE";
-channels[4014]="S13.0E-318-11400-15708";
-channelsnames[4015]="TVP INFO";
-channels[4015]="S13.0E-318-1500-5110";
-channelsnames[4016]="TVP Kultura";
-channels[4016]="S13.0E-318-1500-5113";
-channelsnames[4017]="TV POLONIA";
-channels[4017]="S13.0E-318-1500-5101";
-channelsnames[4018]="TVP Historia";
-channels[4018]="S13.0E-318-11600-3524";
-channelsnames[4019]="TVP Rozrywka";
-channels[4019]="S13.0E-318-11200-17032";
-channelsnames[4020]="TV PULS";
-channels[4020]="S13.0E-318-1500-5112";
-channelsnames[4021]="Superstacja";
-channels[4021]="S13.0E-113-7900-10521";
-channelsnames[4022]="TVN 24 Biznes i Swiat";
-channels[4022]="S13.0E-318-1000-4322";
-channelsnames[4023]="TVN Meteo";
-channels[4023]="S13.0E-318-1000-4318";
-channelsnames[4024]="TV6";
-channels[4024]="S13.0E-113-7900-10510";
-channelsnames[4025]="Polsat News 2";
-channels[4025]="S13.0E-113-13200-13107";
-channelsnames[4026]="Polsat News";
-channels[4026]="S13.0E-113-13200-13129";
-channelsnames[4027]="BBC HD";
-channels[4027]="S13.0E-318-11600-3590";
-channelsnames[4028]="BBC Entertainment Poland";
-channels[4028]="S13.0E-318-13000-14602";
-channelsnames[4029]="TVN 24";
-channels[4029]="S13.0E-318-1000-4312";
-channelsnames[4030]="CANAL+ HD";
-channels[4030]="S13.0E-318-400-13020";
-channelsnames[4031]="CANAL+ FILM HD";
-channels[4031]="S13.0E-318-1100-14201";
-channelsnames[4032]="CANAL+ FILM2 HD";
-channels[4032]="S13.0E-318-1100-14210";
-channelsnames[4033]="CANAL+ FAMILY HD";
-channels[4033]="S13.0E-318-1100-14203";
-channelsnames[4034]="CANAL+ FAMILY2 HD";
-channels[4034]="S13.0E-318-1100-14202";
-channelsnames[4035]="CANAL+ SPORT HD";
-channels[4035]="S13.0E-318-400-13022";
-channelsnames[4048]="Cinemax HD";
-channels[4048]="S13.0E-318-300-15207";
-channelsnames[4049]="Cinemax 2 HD";
-channels[4049]="S13.0E-113-7800-3110";
-channelsnames[4050]="HBO HD";
-channels[4050]="S13.0E-113-7800-3105";
-channelsnames[4051]="HBO2 HD";
-channels[4051]="S13.0E-318-11600-3593";
-channelsnames[4052]="HBO COMEDY HD";
-channels[4052]="S13.0E-318-11600-3594";
-channelsnames[4053]="Ale kino+ HD";
-channels[4053]="S13.0E-318-1100-14239";
-channelsnames[4054]="FOX HD";
-channels[4054]="S13.0E-113-7800-3111";
-channelsnames[4055]="FoxLife HD";
-channels[4055]="S13.0E-113-7800-3103";
-channelsnames[4056]="AXN HD";
-channels[4056]="S13.0E-113-7800-3109";
-channelsnames[4057]="AXN Spin HD";
-channels[4057]="S13.0E-318-12000-15908";
-channelsnames[4058]="MGM HD";
-channels[4058]="S13.0E-318-1300-15031";
-channelsnames[4059]="Romance TV";
-channels[4059]="S13.0E-318-1300-15038";
-channelsnames[4060]="Sundance HD";
-channels[4060]="S13.0E-318-12000-15901";
-channelsnames[4145]="4fun.TV";
-channels[4145]="S13.0E-318-11000-4404";
-channelsnames[4165]="FILMBOX HD";
-channels[4165]="S13.0E-318-400-13025";
-channelsnames[4166]="Filmbox Extra";
-channels[4166]="S13.0E-318-11400-15712";
-channelsnames[4167]="Filmbox Family";
-channels[4167]="S13.0E-318-11400-15714";
-channelsnames[4168]="Filmbox Action";
-channels[4168]="S13.0E-318-11400-15717";
-channelsnames[4169]="Filmbox";
-channels[4169]="S13.0E-318-11400-15713";
-channelsnames[4210]="TVN";
-channels[4210]="S13.0E-318-1000-4311";
-channelsnames[4211]="TVP 1";
-channels[4211]="S13.0E-318-11900-4807";
-channelsnames[4212]="TVP 2";
-channels[4212]="S13.0E-318-11900-4808";
-channelsnames[4213]="TV PULS";
-channels[4213]="S13.0E-318-1500-5142";
-channelsnames[4272]="FoxLife";
-channels[4272]="S13.0E-113-7400-7375";
-channelsnames[4500]="CANAL+ FAMILY";
-channels[4500]="S13.0E-318-11000-4414";
-channelsnames[4501]="CANAL+ FAMILY2";
-channels[4501]="S13.0E-318-11000-4413";
-channelsnames[4502]="HBO";
-channels[4502]="S13.0E-318-11000-4429";
-channelsnames[4503]="HBO2";
-channels[4503]="S13.0E-318-11000-4431";
-channelsnames[4504]="HBO COMEDY";
-channels[4504]="S13.0E-318-11000-4432";
-channelsnames[4505]="Universal Channel Poland";
-channels[4505]="S13.0E-318-700-1";
-channelsnames[4506]="Sci Fi Poland";
-channels[4506]="S13.0E-318-700-2";
-channelsnames[4507]="13 Ulica (Street) Poland";
-channels[4507]="S13.0E-318-700-3";
-channelsnames[4600]="teleTOON+ HD";
-channels[4600]="S13.0E-318-1100-14205";
-channelsnames[4601]="Planete+ HD";
-channels[4601]="S13.0E-318-1100-14206";
-channelsnames[4602]="Kuchnia+ HD";
-channels[4602]="S13.0E-318-1100-14207";
-channelsnames[4603]="Domo+ HD";
-channels[4603]="S13.0E-318-1100-14208";
-channelsnames[4604]="Ale kino+ HD";
-channels[4604]="S13.0E-318-1100-14209";
-channelsnames[4605]="teleTOON+ HD";
-channels[4605]="S13.0E-318-1100-14235";
-channelsnames[4606]="Planete+ HD";
-channels[4606]="S13.0E-318-1100-14236";
-channelsnames[4607]="Domo+ HD";
-channels[4607]="S13.0E-318-1100-14238";
-channelsnames[4608]="Polsat";
-channels[4608]="S13.0E-113-13200-13101";
-channelsnames[4609]="Polsat Play";
-channels[4609]="S13.0E-113-13200-13102";
-channelsnames[4610]="Polsat Sport";
-channels[4610]="S13.0E-113-13200-13104";
-channelsnames[4611]="Polsat Sport Extra";
-channels[4611]="S13.0E-113-13200-13105";
-channelsnames[4612]="Polsat Cafe";
-channels[4612]="S13.0E-113-13200-13106";
-channelsnames[4613]="Polsat Film";
-channels[4613]="S13.0E-113-13200-13108";
-channelsnames[4614]="Polsat News";
-channels[4614]="S13.0E-113-13200-13109";
-channelsnames[4615]="Polsat Play";
-channels[4615]="S13.0E-113-13200-13122";
-channelsnames[4616]="Polsat Cafe";
-channels[4616]="S13.0E-113-13200-13126";
-channelsnames[4617]="Polsat News";
-channels[4617]="S13.0E-113-13200-13139";
-channelsnames[4618]="CANAL+";
-channels[4618]="S13.0E-318-11900-4801";
-channelsnames[4619]="CANAL+ FILM";
-channels[4619]="S13.0E-318-11900-4802";
-channelsnames[4620]="CANAL+ FILM2";
-channels[4620]="S13.0E-318-11900-4803";
-channelsnames[4621]="Kuchnia+";
-channels[4621]="S13.0E-318-11900-4804";
-channelsnames[4622]="Ale kino+";
-channels[4622]="S13.0E-318-11900-4805";
-channelsnames[4623]="teleTOON+";
-channels[4623]="S13.0E-318-11900-4806";
-channelsnames[4624]="CANAL+ SPORT";
-channels[4624]="S13.0E-318-11900-4809";
-channelsnames[4625]="Domo+";
-channels[4625]="S13.0E-318-11900-4811";
-channelsnames[4626]="4823";
-channels[4626]="S13.0E-318-11900-4823";
-channelsnames[4627]="H test 1";
-channels[4627]="S13.0E-318-11900-4830";
-channelsnames[4628]="H test 2";
-channels[4628]="S13.0E-318-11900-4831";
-channelsnames[4629]="H test 3";
-channels[4629]="S13.0E-318-11900-4832";
-channelsnames[4630]="CANAL+ FILM";
-channels[4630]="S13.0E-318-11900-4833";
-channelsnames[4631]="CANAL+ FILM2";
-channels[4631]="S13.0E-318-11900-4834";
-channelsnames[4632]="CANAL+";
-channels[4632]="S13.0E-318-11900-4835";
-channelsnames[4633]="CANAL+ FILM";
-channels[4633]="S13.0E-318-11900-4836";
-channelsnames[4634]="CANAL+ SPORT";
-channels[4634]="S13.0E-318-11900-4837";
-channelsnames[4635]="CYFRA+ RADIO";
-channels[4635]="S13.0E-318-11900-4840";
-channelsnames[4636]="CYFRA+ RMF";
-channels[4636]="S13.0E-318-11900-4842";
-channelsnames[4637]="CYFRA+ PR";
-channels[4637]="S13.0E-318-11900-4844";
-channelsnames[4638]="JASNA GORA";
-channels[4638]="S13.0E-318-11900-4845";
-channelsnames[4639]="CANAL+";
-channels[4639]="S13.0E-318-11900-4851";
-channelsnames[4640]="CANAL+ SPORT";
-channels[4640]="S13.0E-318-11900-4853";
-channelsnames[4641]="Kuchnia+";
-channels[4641]="S13.0E-318-11900-4854";
-channelsnames[4642]="Ale kino+";
-channels[4642]="S13.0E-318-11900-4855";
-channelsnames[4643]="teleTOON+";
-channels[4643]="S13.0E-318-11900-4856";
-channelsnames[4644]="Domo+";
-channels[4644]="S13.0E-318-11900-4857";
-channelsnames[4645]="TOK FM";
-channels[4645]="S13.0E-318-11900-4862";
-channelsnames[4646]="tech 2";
-channels[4646]="S13.0E-318-11900-4863";
-channelsnames[4647]="Kuchnia+";
-channels[4647]="S13.0E-318-11900-4864";
-channelsnames[4648]="DTV CABLE KU";
-channels[4648]="S13.0E-318-11900-4874";
-channelsnames[4649]="DTV CABLE AL";
-channels[4649]="S13.0E-318-11900-4875";
-channelsnames[4650]="DTV CABLE TT";
-channels[4650]="S13.0E-318-11900-4876";
-channelsnames[4651]="PR1";
-channels[4651]="S13.0E-318-11900-4881";
-channelsnames[4652]="PR2";
-channels[4652]="S13.0E-318-11900-4882";
-channelsnames[4653]="PR3";
-channels[4653]="S13.0E-318-11900-4883";
-channelsnames[4654]="Planete+";
-channels[4654]="S13.0E-318-11000-4406";
-channelsnames[4655]="MiniMini+";
-channels[4655]="S13.0E-318-11000-4407";
-channelsnames[4656]="nSport+";
-channels[4656]="S13.0E-318-11000-4408";
-channelsnames[4657]="HISTORY";
-channels[4657]="S13.0E-318-11000-4409";
-channelsnames[4658]="CANAL+ FAMILY2";
-channels[4658]="S13.0E-318-11000-4423";
-channelsnames[4659]="ESP";
-channels[4659]="S13.0E-318-11000-4435";
-channelsnames[4660]="Planete+";
-channels[4660]="S13.0E-318-11000-4451";
-channelsnames[4661]="MiniMini+";
-channels[4661]="S13.0E-318-11000-4452";
-channelsnames[4662]="nSport+";
-channels[4662]="S13.0E-318-11000-4458";
-channelsnames[4663]="DTV CABLE PL";
-channels[4663]="S13.0E-318-11000-4476";
-channelsnames[4664]="DTV CABLE MI";
-channels[4664]="S13.0E-318-11000-4477";
-channelsnames[4665]="STREFA ABONENTA nc+";
-channels[4665]="S13.0E-318-11000-4481";
-channelsnames[4666]="Test-R";
-channels[4666]="S19.2E-1-1051-28726";
-channelsnames[4667]="TVS";
-channels[4667]="S13.0E-318-1500-5102";
-channelsnames[4668]="KINO POLSKA";
-channels[4668]="S13.0E-318-1500-5104";
-channelsnames[4669]="TRACE TV";
-channels[4669]="S13.0E-318-1500-5105";
-channelsnames[4670]="5108";
-channels[4670]="S13.0E-318-1500-5108";
-channelsnames[4671]="TVP Regionalna";
-channels[4671]="S13.0E-318-1500-5115";
-channelsnames[4672]="ANIMAL PLANET";
-channels[4672]="S13.0E-318-1500-5122";
-channelsnames[4673]="CBS Drama";
-channels[4673]="S13.0E-318-1500-5126";
-channelsnames[4674]="CBS Reality";
-channels[4674]="S13.0E-318-1500-5127";
-channelsnames[4675]="TVP Kultura";
-channels[4675]="S13.0E-318-1500-5143";
-channelsnames[4676]="CINEMAX";
-channels[4676]="S13.0E-318-1500-5146";
-channelsnames[4677]="Boomerang CZ";
-channels[4677]="S23.5E-3-3202-6036";
-channelsnames[4678]="Animal Planet CZ";
-channels[4678]="S23.5E-3-3202-6041";
-channelsnames[4679]="EDGE";
-channels[4679]="S23.5E-3-3202-6111";
-channelsnames[4680]="EDGE CZ";
-channels[4680]="S23.5E-3-3202-6151";
-channelsnames[4681]="Polsat Romans";
-channels[4681]="S13.0E-113-7400-7301";
-channelsnames[4682]="AXN White";
-channels[4682]="S13.0E-113-7400-7302";
-channelsnames[4683]="AXN Black";
-channels[4683]="S13.0E-113-7400-7303";
-channelsnames[4684]="Fightbox";
-channels[4684]="S13.0E-113-7400-7304";
-channelsnames[4685]="Extreme Sports";
-channels[4685]="S13.0E-113-7400-7305";
-channelsnames[4686]="Eurosport";
-channels[4686]="S13.0E-113-7400-7306";
-channelsnames[4687]="Nat Geo Wild";
-channels[4687]="S13.0E-113-7400-7307";
-channelsnames[4688]="Disco Polo Music";
-channels[4688]="S13.0E-113-7400-7308";
-channelsnames[4689]="Disco Polo Music";
-channels[4689]="S13.0E-113-7400-7310";
-channelsnames[4690]="Discovery";
-channels[4690]="S13.0E-113-7400-7315";
-channelsnames[4691]="AXN";
-channels[4691]="S13.0E-113-7400-7318";
-channelsnames[4692]="Disney XD";
-channels[4692]="S13.0E-113-7400-7349";
-channelsnames[4693]="Polsat Viasat Explore";
-channels[4693]="S13.0E-113-7400-7371";
-channelsnames[4694]="Polsat Viasat History";
-channels[4694]="S13.0E-113-7400-7372";
-channelsnames[4695]="Polsat Viasat Nature";
-channels[4695]="S13.0E-113-7400-7373";
-channelsnames[4696]="D. SCIENCE";
-channels[4696]="S13.0E-318-11400-15701";
-channelsnames[4697]="Discovery Turbo Xtra";
-channels[4697]="S13.0E-318-11400-15703";
-channelsnames[4698]="TVP SPORT";
-channels[4698]="S13.0E-318-11400-15704";
-channelsnames[4699]="TELE5";
-channels[4699]="S13.0E-318-11400-15705";
-channelsnames[4700]="POLONIA1";
-channels[4700]="S13.0E-318-11400-15706";
-channelsnames[4701]="CINEMAX 2";
-channels[4701]="S13.0E-318-11400-15707";
-channelsnames[4702]="NATIONAL GEO";
-channels[4702]="S13.0E-318-11400-15710";
-channelsnames[4703]="Orange Sport";
-channels[4703]="S13.0E-318-11400-15711";
-channelsnames[4704]="POLSAT VOLLEYBALL 4";
-channels[4704]="S13.0E-318-11400-15716";
-channelsnames[4705]="TVP Seriale";
-channels[4705]="S13.0E-318-11400-15728";
-channelsnames[4706]="MTV Polska";
-channels[4706]="S13.0E-318-12800-2";
-channelsnames[4707]="CC Family";
-channels[4707]="S13.0E-318-12800-4";
-channelsnames[4708]="VIVA Polska";
-channels[4708]="S13.0E-318-12800-5";
-channelsnames[4709]="Viacom Blink!";
-channels[4709]="S13.0E-318-12800-6";
-channelsnames[4710]="VH1";
-channels[4710]="S13.0E-318-12800-7";
-channelsnames[4711]="Comedy Central Polska";
-channels[4711]="S13.0E-318-12800-10";
-channelsnames[4712]="Nickelodeon";
-channels[4712]="S13.0E-318-12800-11";
-channelsnames[4713]="MTV Live HD";
-channels[4713]="S13.0E-318-12800-21";
-channelsnames[4714]="MTV Polska.";
-channels[4714]="S13.0E-318-12800-22";
-channelsnames[4715]="CC Family.";
-channels[4715]="S13.0E-318-12800-24";
-channelsnames[4716]="VIVA Polska.";
-channels[4716]="S13.0E-318-12800-25";
-channelsnames[4717]="Comedy Central Polska.";
-channels[4717]="S13.0E-318-12800-30";
-channelsnames[4718]="VIVA Polska..";
-channels[4718]="S13.0E-318-12800-45";
-channelsnames[4719]="Starz TV";
-channels[4719]="S28.2E-2-2314-53335";
-channelsnames[4720]="?TV";
-channels[4720]="S28.2E-2-2314-53361";
-channelsnames[4721]="True Ent+1";
-channels[4721]="S28.2E-2-2314-53371";
-channelsnames[4722]="BBC Knowledge Poland";
-channels[4722]="S13.0E-318-13000-14603";
-channelsnames[4723]="BBC Lifestyle Poland";
-channels[4723]="S13.0E-318-13000-14604";
-channelsnames[4724]="BBC CBeebies Poland";
-channels[4724]="S13.0E-318-13000-14605";
-channelsnames[4725]="Discovery ID Poland";
-channels[4725]="S13.0E-318-13000-14612";
-channelsnames[4726]="TLC Poland";
-channels[4726]="S13.0E-318-13000-14613";
-channelsnames[4727]="Loveworld";
-channels[4727]="S13.0E-318-13000-14606";
-channelsnames[4728]="BBC Arabic TV";
-channels[4728]="S13.0E-318-13000-14616";
-channelsnames[4729]="BBC Arabic Radio";
-channels[4729]="S13.0E-318-13000-14617";
-channelsnames[4730]="BBC English (Europe)";
-channels[4730]="S13.0E-318-13000-14618";
-channelsnames[4731]="BBC English Mid-East";
-channels[4731]="S13.0E-318-13000-14619";
-channelsnames[4732]="TEST 1";
-channels[4732]="S13.0E-113-7900-10500";
-channelsnames[4733]="Polsat Food";
-channels[4733]="S13.0E-113-7900-10501";
-channelsnames[4734]="Boomerang";
-channels[4734]="S13.0E-113-7900-10502";
-channelsnames[4735]="Radio ZET Gold";
-channels[4735]="S13.0E-113-7900-10503";
-channelsnames[4736]="Radio ZET Gold";
-channels[4736]="S13.0E-113-7900-10504";
-channelsnames[4737]="MTV Rocks";
-channels[4737]="S13.0E-113-7900-10505";
-channelsnames[4738]="CBS Europa";
-channels[4738]="S13.0E-113-7900-10507";
-channelsnames[4739]="Polsat Jim Jam";
-channels[4739]="S13.0E-113-7900-10508";
-channelsnames[4740]="ATM Rozrywka TV";
-channels[4740]="S13.0E-113-7900-10511";
-channelsnames[4741]="Polsat Sport News";
-channels[4741]="S13.0E-113-7900-10514";
-channelsnames[4742]="Blue Hustler";
-channels[4742]="S13.0E-113-7900-10516";
-channelsnames[4743]="Zlote Przeboje";
-channels[4743]="S13.0E-113-7900-10519";
-channelsnames[4744]="Travel";
-channels[4744]="S13.0E-113-7900-10520";
-channelsnames[4745]="RMF FM";
-channels[4745]="S13.0E-113-7900-10523";
-channelsnames[4746]="Zlote Przeboje";
-channels[4746]="S13.0E-113-7900-10524";
-channelsnames[4747]="RMF Classic";
-channels[4747]="S13.0E-113-7900-10526";
-channelsnames[4748]="Radio PIN 102FM";
-channels[4748]="S13.0E-113-7900-10527";
-channelsnames[4749]="Jedynka - PR";
-channels[4749]="S13.0E-113-7900-10528";
-channelsnames[4750]="Trójka - PR";
-channels[4750]="S13.0E-113-7900-10529";
-channelsnames[4751]="Radio ZET";
-channels[4751]="S13.0E-113-7900-10530";
-channelsnames[4752]="Radio ZET";
-channels[4752]="S13.0E-113-7900-10531";
-channelsnames[4753]="RMF Classic";
-channels[4753]="S13.0E-113-7900-10532";
-channelsnames[4754]="Trójka - PR";
-channels[4754]="S13.0E-113-7900-10535";
-channelsnames[4755]="Radio PIN 102FM";
-channels[4755]="S13.0E-113-7900-10536";
-channelsnames[4756]="Jedynka - PR";
-channels[4756]="S13.0E-113-7900-10537";
-channelsnames[4757]="RMF FM";
-channels[4757]="S13.0E-113-7900-10538";
-channelsnames[4758]="RMF MAXXX";
-channels[4758]="S13.0E-113-7900-10543";
-channelsnames[4759]="RMF MAXXX";
-channels[4759]="S13.0E-113-7900-10549";
-channelsnames[4760]="Disney Junior";
-channels[4760]="S13.0E-113-7900-10552";
-channelsnames[4761]="Dla Abonentow";
-channels[4761]="S13.0E-113-7900-10556";
-channelsnames[4762]="CN/TCM";
-channels[4762]="S13.0E-318-12200-7457";
-channelsnames[4763]="Noursat";
-channels[4763]="S13.0E-318-12200-7402";
-channelsnames[4764]="Al Hiwar";
-channels[4764]="S13.0E-318-12200-7456";
-channelsnames[4765]="DMC";
-channels[4765]="S13.0E-318-12200-7459";
-channelsnames[4766]="Miracle TV";
-channels[4766]="S13.0E-318-12200-7460";
-channelsnames[4767]="Al Forat";
-channels[4767]="S13.0E-318-12200-7463";
-channelsnames[4768]="Al Fady";
-channels[4768]="S13.0E-318-12200-7464";
-channelsnames[4769]="Disney Channel";
-channels[4769]="S13.0E-318-12200-7466";
-channelsnames[4770]="Cartoon Network";
-channels[4770]="S13.0E-318-12200-7467";
-channelsnames[4771]="Turner Classic Movies";
-channels[4771]="S13.0E-318-12200-7468";
-channelsnames[4772]="RFI Persian";
-channels[4772]="S13.0E-318-12200-7469";
-channelsnames[4773]="Sat 7 Pars";
-channels[4773]="S13.0E-318-12200-7470";
-channelsnames[4774]="Velayat TV";
-channels[4774]="S13.0E-318-12200-7471";
-channelsnames[4775]="Karbala Satellite Channel";
-channels[4775]="S13.0E-318-12200-7472";
-channelsnames[4776]="iTV";
-channels[4776]="S13.0E-318-12200-7473";
-channelsnames[4777]="Al Maaref";
-channels[4777]="S13.0E-318-12200-7474";
-channelsnames[4778]="STS International";
-channels[4778]="S13.0E-318-12200-7475";
-channelsnames[4779]="Ahl E Bait";
-channels[4779]="S13.0E-318-12200-7476";
-channelsnames[4780]="Cancao Nova";
-channels[4780]="S13.0E-318-200-4922";
-channelsnames[4781]="ESP2 Dutch";
-channels[4781]="S13.0E-318-200-13802";
-channelsnames[4782]="ESP2 Test";
-channels[4782]="S13.0E-318-200-13804";
-channelsnames[4783]="ESP2 Greek";
-channels[4783]="S13.0E-318-200-13805";
-channelsnames[4784]="ESP2 Portuguese";
-channels[4784]="S13.0E-318-200-13821";
-channelsnames[4785]="ESP2 Italy";
-channels[4785]="S13.0E-318-200-13822";
-channelsnames[4786]="ESP2 Biava";
-channels[4786]="S13.0E-318-200-13823";
-channelsnames[4787]="ESP Spain";
-channels[4787]="S13.0E-318-200-13829";
-channelsnames[4788]="ESP Italy";
-channels[4788]="S13.0E-318-200-13830";
-channelsnames[4789]="ESP Polish";
-channels[4789]="S13.0E-318-200-13834";
-channelsnames[4790]="ESP Portuguese";
-channels[4790]="S13.0E-318-200-13836";
-channelsnames[4791]="ESP Hungarian";
-channels[4791]="S13.0E-318-200-13837";
-channelsnames[4792]="ESP Czech";
-channels[4792]="S13.0E-318-200-13839";
-channelsnames[4793]="ESP Greek";
-channels[4793]="S13.0E-318-200-13840";
-channelsnames[4794]="ESP Cyprus";
-channels[4794]="S13.0E-318-200-13841";
-channelsnames[4795]="ESP Bulgarian";
-channels[4795]="S13.0E-318-200-13842";
-channelsnames[4796]="ESP2 Turk";
-channels[4796]="S13.0E-318-200-13843";
-channelsnames[4797]="ESP Serbia";
-channels[4797]="S13.0E-318-200-13844";
-channelsnames[4798]="ESP Turk";
-channels[4798]="S13.0E-318-200-13845";
-channelsnames[4799]="ESP2 German";
-channels[4799]="S13.0E-318-200-13846";
-channelsnames[4800]="ESP2 Serbia";
-channels[4800]="S13.0E-318-200-13847";
-channelsnames[4801]="ESP Biava";
-channels[4801]="S13.0E-318-200-13848";
-channelsnames[4802]="EUROSPORT2 PL";
-channels[4802]="S13.0E-318-200-13864";
-channelsnames[4803]="EUROSPORT PL";
-channels[4803]="S13.0E-318-200-13865";
-channelsnames[4804]="ESP2 NE Intl";
-channels[4804]="S13.0E-318-200-13877";
-channelsnames[4805]="ESP2 NE Polish";
-channels[4805]="S13.0E-318-200-13878";
-channelsnames[4806]="ESP2 NE Bulgarian";
-channels[4806]="S13.0E-318-200-13879";
-channelsnames[4807]="ESP2 NE Serbian";
-channels[4807]="S13.0E-318-200-13880";
-channelsnames[4808]="ESP2 NE Czech";
-channels[4808]="S13.0E-318-200-13881";
-channelsnames[4809]="ESP2 NE Danish";
-channels[4809]="S13.0E-318-200-13882";
-channelsnames[4810]="ESP2 NE Swedish";
-channels[4810]="S13.0E-318-200-13884";
-channelsnames[4811]="ESP ECH";
-channels[4811]="S13.0E-318-200-13885";
-channelsnames[4812]="ESP2 NE UPC";
-channels[4812]="S13.0E-318-200-13886";
-channelsnames[4813]="ESP2 NE Hungary";
-channels[4813]="S13.0E-318-200-13887";
-channelsnames[4814]="ESP2 NE Romania";
-channels[4814]="S13.0E-318-200-13888";
-channelsnames[4815]="ESP UPC";
-channels[4815]="S13.0E-318-200-13889";
-channelsnames[4816]="ESP2 NE Norwegian";
-channels[4816]="S13.0E-318-200-13890";
-channelsnames[4817]="ESP2 NE Dutch";
-channels[4817]="S13.0E-318-200-13891";
-channelsnames[4818]="ESP Romanian";
-channels[4818]="S13.0E-318-200-13892";
-channelsnames[4819]="A3";
-channels[4819]="S13.0E-318-200-13940";
-channelsnames[4820]="Canal Algerie";
-channels[4820]="S13.0E-318-200-13950";
-channelsnames[4821]="TV5MONDE FBS";
-channels[4821]="S13.0E-318-13100-7321";
-channelsnames[4822]="TV5MONDE EUROPE";
-channels[4822]="S13.0E-318-13100-7322";
-channelsnames[4823]="Crime and Investigation nc+";
-channels[4823]="S13.0E-318-13100-7324";
-channelsnames[4824]="Crime + Investigation";
-channels[4824]="S13.0E-318-13100-7325";
-channelsnames[4825]="GEM TV";
-channels[4825]="S13.0E-318-13100-7333";
-channelsnames[4826]="AB Channel";
-channels[4826]="S13.0E-318-13100-7334";
-channelsnames[4827]="Kurd Channel";
-channels[4827]="S13.0E-318-13100-7335";
-channelsnames[4828]="NUMBER 1";
-channels[4828]="S13.0E-318-13100-7337";
-channelsnames[4829]="Radio Expert";
-channels[4829]="S13.0E-318-13100-7339";
-channelsnames[4830]="Manoto 1";
-channels[4830]="S13.0E-318-13100-7355";
-channelsnames[5000]="BBC Olym 4 HD";
-channels[5000]="S28.2E-0-0-8900";
-channelsnames[5001]="BBC Olym 4 HD";
-channels[5001]="S28.2E-0-0-8900";
-channelsnames[5100]="BBC Olym 4 HD";
-channels[5100]="S28.2E-0-0-8900";
-channelsnames[6001]="Meiden van Holland Hard";
-channels[6001]="T-8720-2213-38";
-channelsnames[6002]="XXL";
-channels[6002]="S19.2E-1-1094-17024";
-channelsnames[6003]="Redlight";
-channels[6003]="S13.0E-318-5000-13760";
-channelsnames[6004]="EXOTICA TV";
-channels[6004]="S13.0E-318-5000-13761";
-channelsnames[6005]="SCT 4";
-channels[6005]="S13.0E-318-5000-13764";
-channelsnames[6006]="SCT 6";
-channels[6006]="S13.0E-318-5000-13766";
-channelsnames[6007]="SCT 7";
-channels[6007]="S13.0E-318-5000-13767";
-channelsnames[6008]="SCT HQ";
-channels[6008]="S13.0E-318-5000-13768";
-channelsnames[6009]="PINK O TV";
-channels[6009]="S13.0E-318-5000-13784";
-channelsnames[6010]="Dorcel TV";
-channels[6010]="S19.2E-53-1119-12882";
-channelsnames[6011]="Hustler TV";
-channels[6011]="S19.2E-53-1119-12883";
-channelsnames[6012]="FRENCH LOVER";
-channels[6012]="S19.2E-1-1018-6407";
-channelsnames[6013]="LIBIDO TV";
-channels[6013]="S19.2E-1-1018-6402";
-channelsnames[6014]="BRAZZERS TV Europe";
-channels[6014]="S13.0E-318-12200-7461";
-channelsnames[6015]="PRIVATE TV";
-channels[6015]="S13.0E-318-13300-4960";
-channelsnames[6016]="FL TV";
-channels[6016]="S13.0E-318-8900-2098";
-channelsnames[6017]="Venus";
-channels[6017]="S30.0W-83-105-502";
-channelsnames[6018]="Leo TV";
-channels[6018]="S23.5E-3-3219-13142";
-channelsnames[6019]="Vivid";
-channels[6019]="S19.2E-53-1105-4064";
-channelsnames[6020]="Vivid CZ";
-channels[6020]="S19.2E-53-1105-4065";
-channelsnames[6021]="Dorcel TV";
-channels[6021]="S19.2E-1-1094-17029";
-channelsnames[6022]="XXL";
-channels[6022]="S19.2E-1-1094-17054";
-channelsnames[6023]="Dorcel TV";
-channels[6023]="S19.2E-1-1094-17059";
-channelsnames[6024]="DORCEL XXX";
-channels[6024]="S19.2E-1-1096-8613";
-channelsnames[6025]="Hustler TV CZ";
-channels[6025]="S19.2E-53-1119-12884";
-channelsnames[6026]="XXL";
-channels[6026]="S13.0E-319-9900-468";
-channelsnames[6027]="SCT HD";
-channels[6027]="S13.0E-318-5000-10";
-channelsnames[6028]="Redlight 3D-HD";
-channels[6028]="S13.0E-318-15800-16932";
-channelsnames[6029]="Penthouse 3D";
-channels[6029]="S23.5E-3-3204-5311";
-channelsnames[6030]="EROXXX";
-channels[6030]="S23.5E-3-3212-14055";
-channelsnames[6031]="Brazzers.tv";
-channels[6031]="S23.5E-3-3202-6072";
-channelsnames[6032]="Hustler HD-3D";
-channels[6032]="S13.0E-318-15800-16933";
-channelsnames[6033]="Beate-Uhse.TV,BeateU";
-channels[6033]="S19.2E-133-17-21";
-channelsnames[6034]="PENTHOUSE HD";
-channels[6034]="S19.2E-1-1086-9907";
-channelsnames[6035]="PLAYBOY TV";
-channels[6035]="S19.2E-1-1060-30603";
-channelsnames[6036]="Brazzers.tv CZ";
-channels[6036]="S23.5E-3-3202-6073";
-channelsnames[6037]="Penthouse";
-channels[6037]="S23.5E-3-3222-20917";
-channelsnames[6038]="Penthouse CZ";
-channels[6038]="S23.5E-3-3222-20957";
-channelsnames[6039]="Hustler HD";
-channels[6039]="S23.5E-3-3211-20830";
-channelsnames[6040]="Hustler HD CZ";
-channels[6040]="S23.5E-3-3211-20831";
-channelsnames[6041]="Redlight 3D-HD!";
-channels[6041]="S13.0E-318-15800-16943";
-channelsnames[6042]="Hustler 3D-HD!";
-channels[6042]="S13.0E-318-15800-16944";
-channelsnames[6043]="XXL PL";
-channels[6043]="S13.0E-319-9900-469";
-channelsnames[6044]="Penthouse HD";
-channels[6044]="S23.5E-3-3236-5711";
-channelsnames[6045]="Penthouse HD1";
-channels[6045]="S23.5E-3-3236-5712";
-channelsnames[6046]="Penthouse HD2";
-channels[6046]="S23.5E-3-3236-5713";
-channelsnames[6047]="Hallo TV German free";
-channels[6047]="S19.2E-1-1117-13015";
-channelsnames[8001]="NPO 1";
-channels[8001]="T-8720-2214-1101";
-channelsnames[8002]="NPO 2";
-channels[8002]="T-8720-2214-1102";
-channelsnames[8003]="NPO 3";
-channels[8003]="T-8720-2214-1103";
-channelsnames[8004]="RTL 4";
-channels[8004]="T-8720-2211-11";
-channelsnames[8005]="RTL 5";
-channels[8005]="T-8720-2211-12";
-channelsnames[8006]="SBS 6";
-channels[8006]="T-8720-2211-14";
-channelsnames[8007]="RTL 7";
-channels[8007]="T-8720-2211-13";
-channelsnames[8008]="Veronica/Disney XD";
-channels[8008]="T-8720-2213-31";
-channelsnames[8009]="NET5";
-channels[8009]="T-8720-2211-15";
-channelsnames[8010]="ID";
-channels[8010]="T-8720-2244-44";
-channelsnames[8011]="RTL 8";
-channels[8011]="T-8720-2213-32";
-channelsnames[8012]="Nickelodeon/TeenNick";
-channels[8012]="T-8720-2244-41";
-channelsnames[8013]="Comedy Central";
-channels[8013]="T-8720-2213-35";
-channelsnames[8014]="Discovery Channel";
-channels[8014]="T-8720-2213-36";
-channelsnames[8015]="TLC";
-channels[8015]="T-8720-2212-25";
-channelsnames[8016]="National Geographic";
-channels[8016]="T-8720-2212-28";
-channelsnames[8017]="Eurosport";
-channels[8017]="T-8720-2213-37";
-channelsnames[8018]="één";
-channels[8018]="T-8720-2213-33";
-channelsnames[8019]="Canvas";
-channels[8019]="T-8720-2213-34";
-channelsnames[8020]="24Kitchen";
-channels[8020]="T-8720-2212-26";
-channelsnames[8021]="FOX";
-channels[8021]="T-8720-2244-42";
-channelsnames[8022]="CNN";
-channels[8022]="T-8720-2244-45";
-channelsnames[8023]="FOX Sports Ere 1";
-channels[8023]="T-8720-2212-21";
-channelsnames[8024]="FOX Sp.3/AT5/Cart.Nw.";
-channels[8024]="T-8720-2212-22";
-channelsnames[8025]="BBC One";
-channels[8025]="T-8720-2212-23";
-channelsnames[8026]="BBC Two";
-channels[8026]="T-8720-2212-27";
-channelsnames[8027]="TV Oost";
-channels[8027]="T-8720-2214-1104";
-channelsnames[8028]="TV Gelderland";
-channels[8028]="T-0-0-1104";
-channelsnames[8029]="Radio Gelderland";
-channels[8029]="T-0-0-1111";
-channelsnames[8030]="Radio Oost";
-channels[8030]="T-8720-2214-1111";
-channelsnames[8031]="NPO Radio 1";
-channels[8031]="T-8720-2214-1112";
-channelsnames[8032]="NPO Radio 2";
-channels[8032]="T-8720-2214-1113";
-channelsnames[8033]="NPO 3FM";
-channels[8033]="T-8720-2214-1114";
-channelsnames[8034]="NPO Radio 4";
-channels[8034]="T-8720-2214-1115";
-channelsnames[8035]="NPO Radio 5";
-channels[8035]="T-8720-2214-1116";
-channelsnames[8036]="NPO Radio 6";
-channels[8036]="T-8720-2214-1117";
-channelsnames[8037]="FunX";
-channels[8037]="T-8720-2214-1119";
-channelsnames[8038]="BNR Nieuwsradio";
-channels[8038]="T-8720-2212-217";
-channelsnames[8039]="Arrow Classic Rock";
-channels[8039]="T-8720-2212-218";
-channelsnames[8040]="Radio 538";
-channels[8040]="T-8720-2212-219";
-channelsnames[8041]="BBC Radio 1";
-channels[8041]="T-8720-2244-411";
-channelsnames[8042]="BBC Radio 2";
-channels[8042]="T-8720-2244-412";
-channelsnames[8043]="BBC Radio 3";
-channels[8043]="T-8720-2244-413";
-channelsnames[8044]="BBC Radio 4";
-channels[8044]="T-8720-2244-414";
-channelsnames[8045]="SubLime FM";
-channels[8045]="T-8720-2244-415";
-channelsnames[8046]="SLAM!FM";
-channels[8046]="T-8720-2211-111";
-channelsnames[8047]="Radio 10";
-channels[8047]="T-8720-2211-112";
-channelsnames[8048]="Q-Music";
-channels[8048]="T-8720-2211-113";
-channelsnames[8049]="100%NL";
-channels[8049]="T-8720-2211-114";
-channelsnames[8050]="Classic FM";
-channels[8050]="T-8720-2211-115";
-channelsnames[8051]="SkyRadio 101 FM";
-channels[8051]="T-8720-2211-116";
-channelsnames[8052]="Radio Veronica";
-channels[8052]="T-8720-2211-117";
-channelsnames[8053]="ZDF";
-channels[8053]="T-8468-514-514";
-channelsnames[8054]="3sat";
-channels[8054]="T-8468-514-515";
-channelsnames[8055]="ZDFinfo";
-channels[8055]="T-8468-514-516";
-channelsnames[8056]="neo/KiKA";
-channels[8056]="T-8468-514-517";
-channelsnames[8057]="arte";
-channels[8057]="T-8468-6144-2";
-channelsnames[8058]="arte";
-channels[8058]="T-8468-14849-2";
-channelsnames[8059]="arte OBSOLETE";
-channels[8059]="T-8720-2214-2";
-channelsnames[8060]="PHOENIX";
-channels[8060]="T-8468-6144-3";
-channelsnames[8061]="PHOENIX OBSOLETE";
-channels[8061]="T-8720-2214-3";
-channelsnames[8062]="PHOENIX";
-channels[8062]="T-8468-14849-3";
-channelsnames[8063]="Einsfestival";
-channels[8063]="T-8468-6144-5";
-channelsnames[8064]="Einsfestival OBSOLETE";
-channels[8064]="T-8720-2214-5";
-channelsnames[8065]="Einsfestival";
-channels[8065]="T-8468-14849-5";
-channelsnames[8066]="Das Erste";
-channels[8066]="T-8468-6144-256";
-channelsnames[8067]="Das Erste OBSOLETE";
-channels[8067]="T-8720-2214-256";
-channelsnames[8068]="Das Erste";
-channels[8068]="T-8468-14849-256";
-channelsnames[8069]="hr-fernsehen";
-channels[8069]="T-0-0-65";
-channelsnames[8070]="hr-fernsehen";
-channels[8070]="T-8468-38912-65";
-channelsnames[8071]="MDR FERNSEHEN";
-channels[8071]="T-0-0-100";
-channelsnames[8072]="MDR FERNSEHEN";
-channels[8072]="T-8468-38912-100";
-channelsnames[8073]="NDR FS NDS";
-channels[8073]="T-8468-38912-129";
-channelsnames[8074]="NDR FS NDS";
-channels[8074]="T-0-0-129";
-channelsnames[8075]="NDR FS HH*";
-channels[8075]="T-0-0-130";
-channelsnames[8076]="NDR FS HH*";
-channels[8076]="T-8468-38912-130";
-channelsnames[8077]="NDR FS SH*";
-channels[8077]="T-8468-38912-131";
-channelsnames[8078]="NDR FS SH*";
-channels[8078]="T-0-0-131";
-channelsnames[8079]="NDR FS MVP*";
-channels[8079]="T-0-0-132";
-channelsnames[8080]="NDR FS MVP*";
-channels[8080]="T-8468-38912-132";
-channelsnames[8081]="WDR Köln";
-channels[8081]="T-0-0-262";
-channelsnames[8082]="WDR Köln";
-channels[8082]="T-8468-38912-262";
-channelsnames[9001]="NPO Radio1";
-channels[9001]="S23.5E-3-3211-20860";
-channelsnames[9002]="NPO Radio2";
-channels[9002]="S23.5E-3-3211-20862";
-channelsnames[9003]="NPO 3FM";
-channels[9003]="S23.5E-3-3211-20864";
-channelsnames[9004]="NPO Radio4";
-channels[9004]="S23.5E-3-3211-20866";
-channelsnames[9005]="NPO Radio5";
-channels[9005]="S23.5E-3-3211-20867";
-channelsnames[9006]="NPO Radio6";
-channels[9006]="S23.5E-3-3211-20868";
-channelsnames[9007]="Radio Oost";
-channels[9007]="S23.5E-3-3211-20844";
-channelsnames[9008]="Radio Gelderland";
-channels[9008]="S23.5E-3-3211-20846";
-channelsnames[9009]="Radio Veronica";
-channels[9009]="S23.5E-3-3211-20870";
-channelsnames[9010]="Sky Radio";
-channels[9010]="S23.5E-3-3211-20872";
-channelsnames[9011]="Classic FM";
-channels[9011]="S23.5E-3-3211-20874";
-channelsnames[9012]="Radio 538";
-channels[9012]="S23.5E-3-3211-20876";
-channelsnames[9013]="Radio 10";
-channels[9013]="S23.5E-3-3211-20878";
-channelsnames[9014]="Slam FM";
-channels[9014]="S23.5E-3-3211-20880";
-channelsnames[9015]="BNR Nieuwsradio";
-channels[9015]="S23.5E-3-3211-20882";
-channelsnames[9016]="Funx";
-channels[9016]="S23.5E-3-3211-20896";
-channelsnames[9017]="Radio10Gold";
-channels[9017]="S19.2E-53-1097-2067";
-channelsnames[9018]="Nostalgie";
-channels[9018]="S19.2E-53-1119-12789";
-channelsnames[9019]="100% NL";
-channels[9019]="S23.5E-3-3211-20890";
-channelsnames[9020]="Arrow Jazz";
-channels[9020]="S19.2E-53-1097-2062";
-channelsnames[9021]="Mint";
-channels[9021]="S19.2E-53-1097-2080";
-channelsnames[9022]="Bel RTL";
-channels[9022]="S19.2E-53-1097-2081";
-channelsnames[9023]="Radio Contact";
-channels[9023]="S19.2E-53-1097-2082";
-channelsnames[9024]="Pure FM";
-channels[9024]="S19.2E-53-1097-2085";
-channelsnames[9025]="Classic21";
-channels[9025]="S19.2E-53-1097-2086";
-channelsnames[9026]="VivaCite";
-channels[9026]="S19.2E-53-1097-2087";
-channelsnames[9027]="Musiq 3";
-channels[9027]="S19.2E-53-1097-2088";
-channelsnames[9028]="La Premiere";
-channels[9028]="S19.2E-53-1097-2089";
-channelsnames[9029]="RTL 1440";
-channels[9029]="S19.2E-53-1105-4060";
-channelsnames[9030]="VRT Radio1";
-channels[9030]="S19.2E-53-1119-12778";
-channelsnames[9031]="VRT Radio2";
-channels[9031]="S19.2E-53-1119-12779";
-channelsnames[9032]="COUNTRY RADIO";
-channels[9032]="S23.5E-3-3219-13150";
-channelsnames[9050]="Arrow Classic Rock";
-channels[9050]="S23.5E-3-3211-20892";
-channelsnames[9051]="ROCK ANTENNE,ROCK ANT";
-channels[9051]="S19.2E-133-7-160";
-channelsnames[9052]="Planet Rock";
-channels[9052]="S28.2E-2-2407-9575";
-channelsnames[9053]="Radio Beat";
-channels[9053]="S23.5E-3-3209-13120";
-channelsnames[9054]="1LIVE";
-channels[9054]="S19.2E-1-1093-28475";
-channelsnames[9055]="1LIVE diggi";
-channels[9055]="S19.2E-1-1093-28481";
-channelsnames[9056]="ANTENNE BAYERN,ANTENNE";
-channels[9056]="S19.2E-133-7-170";
-channelsnames[9057]="radio top40";
-channels[9057]="S19.2E-1-1113-12653";
-channelsnames[9058]="Musicam 1";
-channels[9058]="S30.0W-2-15-15";
-channelsnames[9059]="Musicam 2";
-channels[9059]="S30.0W-2-15-16";
-channelsnames[9060]="Musicam 3";
-channels[9060]="S30.0W-2-15-17";
-channelsnames[9061]="Musicam 4";
-channels[9061]="S30.0W-2-15-18";
-channelsnames[9062]="Musicam 5";
-channels[9062]="S30.0W-2-15-19";
-channelsnames[9063]="Musicam 6";
-channels[9063]="S30.0W-2-15-20";
-minChan[0] = 1;
-maxChan[0] = 954;
-baseChn[0] = 0;
-minChan[1] = 1001;
-maxChan[1] = 1967;
-baseChn[1] = 1000;
-minChan[2] = 2000;
-maxChan[2] = 2228;
-baseChn[2] = 2000;
-minChan[3] = 3000;
-maxChan[3] = 3607;
-baseChn[3] = 3000;
-minChan[4] = 4001;
-maxChan[4] = 4830;
-baseChn[4] = 4000;
-minChan[5] = 5000;
-maxChan[5] = 5100;
-baseChn[5] = 5000;
-minChan[6] = 6001;
-maxChan[6] = 6047;
-baseChn[6] = 6000;
-minChan[8] = 8001;
-maxChan[8] = 8082;
-baseChn[8] = 8000;
-minChan[9] = 9001;
-maxChan[9] = 9063;
-baseChn[9] = 9000;
-
-defChan[0] = 10  ; protChn[0] = 0;
-defChan[1] = 1001; protChn[1] = 0;
-defChan[2] = 2000; protChn[2] = 0;
-defChan[3] = 3000; protChn[3] = 0;
-defChan[4] = 4145; protChn[4] = 0;
-defChan[5] = 5000; protChn[5] = 0;
-defChan[6] = 6001; protChn[6] = 1;
-defChan[7] = 7000; protChn[7] = 0;
-defChan[8] = 8001; protChn[8] = 0;
-defChan[9] = 9051; protChn[9] = 0;
-Chan_Ver = "11/03/14 23:51:46" ;
diff --git a/images/background.png b/images/background.png
new file mode 100644
index 0000000..8b1d392
Binary files /dev/null and b/images/background.png differ
diff --git a/images/mute.png b/images/mute.png
new file mode 100644
index 0000000..44e9547
Binary files /dev/null and b/images/mute.png differ
diff --git a/images/osd-bg.png b/images/osd-bg.png
new file mode 100644
index 0000000..a116650
Binary files /dev/null and b/images/osd-bg.png differ
diff --git a/images/unmute.png b/images/unmute.png
new file mode 100644
index 0000000..70000a8
Binary files /dev/null and b/images/unmute.png differ
diff --git a/index.html b/index.html
index 7cf869e..8a7f871 100644
--- a/index.html
+++ b/index.html
@@ -1,10 +1,10 @@
 <html>
 <head>
-<script type="text/javascript" src="settings.js"></script>
-<script type="text/javascript" src="settings2.js"></script>
-<script type="text/javascript" src="lang_eng.js"></script>
-<script type="text/javascript" src="channels.js"></script>
-<script type="text/javascript" src="main.js"></script>
+<script type="text/javascript" src="javascript/settings.js"></script>
+<script type="text/javascript" src="javascript/settings2.js"></script>
+<script type="text/javascript" src="javascript/lang_eng.js"></script>
+<script type="text/javascript" src="javascript/channels.js"></script>
+<script type="text/javascript" src="javascript/main.js"></script>
 <script type="text/javascript">
 
 /***********************************************************/
@@ -16,7 +16,7 @@
 /***********************************************************/
 
 </script>
-<link rel="stylesheet" type="text/css" href="blue.css">
+<link rel="stylesheet" type="text/css" href="skins/blue.css">
 </head>
 
 <body onload="onLoad()" onunload="onUnload()">
diff --git a/javascript/channels.js b/javascript/channels.js
new file mode 100644
index 0000000..38a3800
--- /dev/null
+++ b/javascript/channels.js
@@ -0,0 +1,3619 @@
+channelsnames[1]="NPO1 HD";
+channels[1]="S23.5E-3-3225-21029";
+channelsnames[2]="NPO2 HD";
+channels[2]="S23.5E-3-3202-6080";
+channelsnames[3]="NPO3 HD";
+channels[3]="S23.5E-3-3225-21040";
+channelsnames[4]="RTL4 HD";
+channels[4]="S23.5E-3-3208-7020";
+channelsnames[5]="RTL5 HD";
+channels[5]="S23.5E-3-3208-7023";
+channelsnames[6]="SBS6 HD";
+channels[6]="S23.5E-3-3202-6090";
+channelsnames[7]="RTL7 HD";
+channels[7]="S23.5E-3-3208-7027";
+channelsnames[8]="Veronica/DisneyXD HD";
+channels[8]="S23.5E-3-3225-21035";
+channelsnames[9]="NET5 HD";
+channels[9]="S23.5E-3-3225-21020";
+channelsnames[10]="BVN TV";
+channels[10]="S19.2E-1-1048-4320";
+channelsnames[11]="RTL8 HD";
+channels[11]="S23.5E-3-3208-7036";
+channelsnames[12]="Nickelodeon Nederland";
+channels[12]="S19.2E-1-1078-28679";
+channelsnames[13]="ComedyCentral";
+channels[13]="S23.5E-3-3211-20826";
+channelsnames[14]="NPO Politiek/NPO Best";
+channels[14]="S23.5E-3-3202-6010";
+channelsnames[15]="NPO Doc";
+channels[15]="S23.5E-3-3202-6015";
+channelsnames[16]="NPO Zapp Xtra/NPO Humor TV";
+channels[16]="S23.5E-3-3202-6025";
+channelsnames[17]="NostalgieNet";
+channels[17]="S23.5E-3-3222-20956";
+channelsnames[18]="Discovery HD";
+channels[18]="S23.5E-3-3208-7010";
+channelsnames[19]="History HD DUT";
+channels[19]="S23.5E-3-3205-5151";
+channelsnames[20]="Travel Channel HD WE";
+channels[20]="S23.5E-3-3221-5056";
+channelsnames[21]="NGC HD";
+channels[21]="S23.5E-3-3222-20965";
+channelsnames[22]="Viasat HD";
+channels[22]="S23.5E-3-3208-7040";
+channelsnames[23]="Animal Planet";
+channels[23]="S23.5E-3-3202-6040";
+channelsnames[24]="Planet";
+channels[24]="S19.2E-53-1097-2044";
+channelsnames[25]="Investigation Discovery";
+channels[25]="S23.5E-3-3202-6045";
+channelsnames[26]="Crime Invest.";
+channels[26]="S23.5E-3-3208-7052";
+channelsnames[27]="Crime and Invest. CZ";
+channels[27]="S23.5E-3-3208-7053";
+channelsnames[28]="Discovery CZ";
+channels[28]="S23.5E-3-3211-20855";
+channelsnames[29]="Discovery HD CZ";
+channels[29]="S23.5E-3-3208-7011";
+channelsnames[30]="MOTORS TV";
+channels[30]="S19.2E-1-1110-9509";
+channelsnames[31]="Discovery Channel";
+channels[31]="S23.5E-3-3211-20833";
+channelsnames[32]="Nat Geo Wild HD DUT";
+channels[32]="S23.5E-3-3226-709";
+channelsnames[50]="DMAX";
+channels[50]="S19.2E-133-33-63";
+channelsnames[51]="Discovery";
+channels[51]="S28.2E-2-2009-6201";
+channelsnames[52]="Discovery";
+channels[52]="S28.2E-2-2009-6210";
+channelsnames[53]="Discovery+1";
+channels[53]="S28.2E-2-2009-6204";
+channelsnames[54]="Disc.History";
+channels[54]="S28.2E-2-2009-6207";
+channelsnames[55]="Disc.History+1";
+channels[55]="S28.2E-2-2315-52435";
+channelsnames[56]="TLC";
+channels[56]="S28.2E-2-2009-6233";
+channelsnames[57]="TLC+1";
+channels[57]="S28.2E-2-2315-52446";
+channelsnames[58]="Disc.Science";
+channels[58]="S28.2E-2-2009-6206";
+channelsnames[59]="Disc.Sci+1";
+channels[59]="S28.2E-2-2315-52410";
+channelsnames[60]="Disc.Turbo";
+channels[60]="S28.2E-2-2009-6209";
+channelsnames[61]="Discovery Shed";
+channels[61]="S28.2E-2-2315-52440";
+channelsnames[62]="Home & Health";
+channels[62]="S28.2E-2-2009-6208";
+channelsnames[63]="Home&Health+";
+channels[63]="S28.2E-2-2315-52450";
+channelsnames[64]="ID";
+channels[64]="S28.2E-2-2315-52400";
+channelsnames[65]="ID+1";
+channels[65]="S28.2E-2-2315-52426";
+channelsnames[66]="DMAX";
+channels[66]="S28.2E-2-2315-52415";
+channelsnames[67]="DMAX+1";
+channels[67]="S28.2E-2-2315-52420";
+channelsnames[68]="QUEST";
+channels[68]="S28.2E-2-2009-6211";
+channelsnames[69]="QUEST+1";
+channels[69]="S28.2E-2-2315-52430";
+channelsnames[70]="Animal Planet";
+channels[70]="S28.2E-2-2009-6202";
+channelsnames[71]="Animal Plnt+1";
+channels[71]="S28.2E-2-2315-52405";
+channelsnames[72]="Eden";
+channels[72]="S28.2E-2-2006-6502";
+channelsnames[73]="Eden+1";
+channels[73]="S28.2E-2-2015-7610";
+channelsnames[74]="YESTERDAY";
+channels[74]="S28.2E-2-2006-6505";
+channelsnames[75]="YESTERDAY+1";
+channels[75]="S28.2E-2-2015-7650";
+channelsnames[76]="Drama";
+channels[76]="S28.2E-2-2006-6522";
+channelsnames[77]="CI";
+channels[77]="S28.2E-2-2025-4802";
+channelsnames[78]="CI +1";
+channels[78]="S28.2E-2-2301-52169";
+channelsnames[79]="History";
+channels[79]="S28.2E-2-2025-4653";
+channelsnames[80]="History +1 hour";
+channels[80]="S28.2E-2-2025-5003";
+channelsnames[81]="H2";
+channels[81]="S28.2E-2-2304-55205";
+channelsnames[82]="Nat Geo";
+channels[82]="S28.2E-2-2025-4805";
+channelsnames[83]="Nat Geo+1hr";
+channels[83]="S28.2E-2-2025-4806";
+channelsnames[84]="Nat Geo Wild";
+channels[84]="S28.2E-2-2025-4807";
+channelsnames[85]="Real Time";
+channels[85]="S13.0E-64511-5700-4324";
+channelsnames[86]="Real Time +1";
+channels[86]="S13.0E-64511-800-1469";
+channelsnames[100]="Sky Premiere";
+channels[100]="S28.2E-2-2007-4404";
+channelsnames[101]="Sky Prem+1";
+channels[101]="S28.2E-2-2007-4405";
+channelsnames[102]="Sky Showcase";
+channels[102]="S28.2E-2-2030-4602";
+channelsnames[103]="Sky Comedy";
+channels[103]="S28.2E-2-2007-4303";
+channelsnames[104]="Sky Action";
+channels[104]="S28.2E-2-2007-4302";
+channelsnames[105]="Sky Family";
+channels[105]="S28.2E-2-2007-4403";
+channelsnames[106]="Sky Thriller";
+channels[106]="S28.2E-2-2007-4406";
+channelsnames[107]="Sky DramaRom";
+channels[107]="S28.2E-2-2007-5502";
+channelsnames[108]="Sky ScFi/Horror";
+channels[108]="S28.2E-2-2007-4304";
+channelsnames[109]="Sky Superhero";
+channels[109]="S28.2E-2-2007-5650";
+channelsnames[110]="Sky Select";
+channels[110]="S28.2E-2-2007-4306";
+channelsnames[111]="Sky Disney";
+channels[111]="S28.2E-2-2007-4308";
+channelsnames[112]="TCM";
+channels[112]="S28.2E-2-2055-6038";
+channelsnames[113]="TCM+1";
+channels[113]="S28.2E-2-2301-52175";
+channelsnames[114]="Movies 24";
+channels[114]="S28.2E-2-2303-52265";
+channelsnames[115]="Movies 24+";
+channels[115]="S28.2E-2-2303-52270";
+channelsnames[116]="HBO";
+channels[116]="S23.5E-3-3209-13104";
+channelsnames[117]="HBO 2";
+channels[117]="S23.5E-3-3209-13109";
+channelsnames[118]="Cinemax";
+channels[118]="S23.5E-3-3209-13113";
+channelsnames[119]="Filmbox";
+channels[119]="S23.5E-3-3210-5071";
+channelsnames[120]="iFILM English";
+channels[120]="S13.0E-318-9000-9007";
+channelsnames[130]="Film1 Premiere HD";
+channels[130]="S23.5E-3-3222-20955";
+channelsnames[131]="Film1 Comedy & Kids";
+channels[131]="S23.5E-3-3222-20910";
+channelsnames[132]="Film1 Sundance";
+channels[132]="S23.5E-3-3222-20915";
+channelsnames[133]="Film1 Action";
+channels[133]="S23.5E-3-3222-20920";
+channelsnames[134]="HBO HD";
+channels[134]="S23.5E-3-3225-21050";
+channelsnames[135]="HBO 2";
+channels[135]="S23.5E-3-3202-6067";
+channelsnames[136]="HBO 3";
+channels[136]="S23.5E-3-3202-6068";
+channelsnames[137]="Film+ CZ";
+channels[137]="S23.5E-3-3211-20863";
+channelsnames[138]="MGM";
+channels[138]="S23.5E-3-3210-5072";
+channelsnames[150]="RTL Crime";
+channels[150]="S19.2E-133-1-27";
+channelsnames[151]="RTLNITRO";
+channels[151]="S19.2E-1-1089-12061";
+channelsnames[152]="Universal";
+channels[152]="S28.2E-2-2303-52255";
+channelsnames[153]="Universal+1";
+channels[153]="S28.2E-2-2303-52220";
+channelsnames[154]="ComedyCentral";
+channels[154]="S28.2E-2-2079-51084";
+channelsnames[155]="ComedyCent+1";
+channels[155]="S28.2E-2-2079-51085";
+channelsnames[156]="ComedyXtra";
+channels[156]="S28.2E-2-2079-51086";
+channelsnames[157]="ComedyXtra+1";
+channels[157]="S28.2E-2-2079-51087";
+channelsnames[158]="GOLD";
+channels[158]="S28.2E-2-2006-6504";
+channelsnames[159]="GOLD +1";
+channels[159]="S28.2E-2-2015-7605";
+channelsnames[160]="Dave";
+channels[160]="S28.2E-2-2006-6506";
+channelsnames[161]="Dave ja vu";
+channels[161]="S28.2E-2-2015-7624";
+channelsnames[162]="Syfy";
+channels[162]="S28.2E-2-2303-52250";
+channelsnames[163]="Syfy +1";
+channels[163]="S28.2E-2-2303-52280";
+channelsnames[164]="alibi";
+channels[164]="S28.2E-2-2006-6521";
+channelsnames[165]="alibi +1";
+channels[165]="S28.2E-2-2015-7630";
+channelsnames[166]="FOX";
+channels[166]="S28.2E-2-2021-5515";
+channelsnames[167]="FOX+";
+channels[167]="S28.2E-2-2023-5402";
+channelsnames[168]="Watch";
+channels[168]="S28.2E-2-2006-6520";
+channelsnames[169]="Watch +1";
+channels[169]="S28.2E-2-2015-7615";
+channelsnames[180]="RTL lounge";
+channels[180]="S23.5E-3-3208-7042";
+channelsnames[181]="TLC";
+channels[181]="S23.5E-3-3222-20949";
+channelsnames[182]="13th Street";
+channels[182]="S23.5E-3-3222-20966";
+channelsnames[183]="SyFy";
+channels[183]="S23.5E-3-3208-7054";
+channelsnames[190]="FOX Channel";
+channels[190]="S23.5E-3-3202-6030";
+channelsnames[191]="FOXlife";
+channels[191]="S23.5E-3-3225-21055";
+channelsnames[201]="BBC One Lon";
+channels[201]="S28.2E-2-2045-6301";
+channelsnames[202]="BBC Two Eng";
+channels[202]="S28.2E-2-2045-6302";
+channelsnames[203]="BBC Three";
+channels[203]="S28.2E-2-2048-10351";
+channelsnames[204]="BBC Four";
+channels[204]="S28.2E-2-2045-6316";
+channelsnames[205]="BBC NEWS";
+channels[205]="S28.2E-2-2048-10358";
+channelsnames[206]="BBC Parliament";
+channels[206]="S28.2E-2-2046-10307";
+channelsnames[211]="ITV";
+channels[211]="S28.2E-2-2044-10060";
+channelsnames[212]="ITV +1";
+channels[212]="S28.2E-2-2054-10255";
+channelsnames[213]="ITV2";
+channels[213]="S28.2E-2-2044-10070";
+channelsnames[214]="ITV2+1";
+channels[214]="S28.2E-2-2053-10165";
+channelsnames[215]="ITV3";
+channels[215]="S28.2E-2-2054-10260";
+channelsnames[216]="ITV3+1";
+channels[216]="S28.2E-2-2054-10261";
+channelsnames[217]="ITV4";
+channels[217]="S28.2E-2-2044-10072";
+channelsnames[218]="ITV4+1";
+channels[218]="S28.2E-2-2049-10015";
+channelsnames[220]="Channel 4";
+channels[220]="S28.2E-2-2041-9211";
+channelsnames[221]="Channel 4 +1";
+channels[221]="S28.2E-2-2042-8311";
+channelsnames[222]="E4";
+channels[222]="S28.2E-2-2042-8305";
+channelsnames[223]="E4+1";
+channels[223]="S28.2E-2-2042-8300";
+channelsnames[224]="More4";
+channels[224]="S28.2E-2-2042-8340";
+channelsnames[225]="More4 +1";
+channels[225]="S28.2E-2-2041-9230";
+channelsnames[226]="4seven";
+channels[226]="S28.2E-2-2068-21250";
+channelsnames[227]="4Music";
+channels[227]="S28.2E-2-2040-12000";
+channelsnames[228]="Film4";
+channels[228]="S28.2E-2-2041-9220";
+channelsnames[229]="Film4 +1";
+channels[229]="S28.2E-2-2041-9225";
+channelsnames[230]="Channel 5";
+channels[230]="S28.2E-2-2057-7700";
+channelsnames[231]="Channel 5+1";
+channels[231]="S28.2E-2-2057-7720";
+channelsnames[232]="5 USA";
+channels[232]="S28.2E-2-2057-7710";
+channelsnames[233]="5 USA +1";
+channels[233]="S28.2E-2-2057-7711";
+channelsnames[234]="5*";
+channels[234]="S28.2E-2-2057-7715";
+channelsnames[235]="Channel 5+24";
+channels[235]="S28.2E-2-2057-7716";
+channelsnames[240]="CBS Action";
+channels[240]="S28.2E-2-2311-52007";
+channelsnames[241]="CBS Drama";
+channels[241]="S28.2E-2-2304-50903";
+channelsnames[242]="CBS Reality";
+channels[242]="S28.2E-2-2313-53275";
+channelsnames[243]="CBS Reality+1";
+channels[243]="S28.2E-2-2301-52102";
+channelsnames[244]="horror channel";
+channels[244]="S28.2E-2-2301-52105";
+channelsnames[245]="horror ch+1";
+channels[245]="S28.2E-2-2311-52002";
+channelsnames[246]="more>movies";
+channels[246]="S28.2E-2-2076-54110";
+channelsnames[247]="m>movies+1";
+channels[247]="S28.2E-2-2081-51120";
+channelsnames[248]="movies4men";
+channels[248]="S28.2E-2-2081-51116";
+channelsnames[249]="mov4men+1";
+channels[249]="S28.2E-2-2081-51118";
+channelsnames[250]="True Drama";
+channels[250]="S28.2E-2-2314-53380";
+channelsnames[251]="True Ent";
+channels[251]="S28.2E-2-2314-53375";
+channelsnames[252]="True Christmas";
+channels[252]="S28.2E-2-2314-53320";
+channelsnames[253]="True Movies 2";
+channels[253]="S28.2E-2-2314-53325";
+channelsnames[254]="RTE One";
+channels[254]="S28.2E-2-2043-9601";
+channelsnames[255]="RTE2";
+channels[255]="S28.2E-2-2043-9602";
+channelsnames[256]="Setanta Ireland";
+channels[256]="S28.2E-2-2081-51111";
+channelsnames[257]="Setanta Sports1";
+channels[257]="S28.2E-2-2081-51112";
+channelsnames[260]="Sky Arts 1";
+channels[260]="S28.2E-2-2030-4604";
+channelsnames[261]="Sky Arts 2";
+channels[261]="S28.2E-2-2023-4900";
+channelsnames[262]="Sky1";
+channels[262]="S28.2E-2-2030-4703";
+channelsnames[263]="Sky2";
+channels[263]="S28.2E-2-2026-4752";
+channelsnames[264]="Sky Atlantic";
+channels[264]="S28.2E-2-2030-4712";
+channelsnames[265]="Sky Living";
+channels[265]="S28.2E-2-2030-6028";
+channelsnames[266]="Sky Living+1";
+channels[266]="S28.2E-2-2030-6035";
+channelsnames[267]="Sky Livingit";
+channels[267]="S28.2E-2-2025-6030";
+channelsnames[268]="Sky Livingit+1";
+channels[268]="S28.2E-2-2031-6025";
+channelsnames[269]="Sony TV";
+channels[269]="S28.2E-2-2311-52005";
+channelsnames[270]="Sony TV +1";
+channels[270]="S28.2E-2-2604-54325";
+channelsnames[271]="Sony Movies";
+channels[271]="S28.2E-2-2081-51117";
+channelsnames[272]="Sony Movies+1";
+channels[272]="S28.2E-2-2081-51119";
+channelsnames[273]="E!";
+channels[273]="S28.2E-0-0-53200";
+channelsnames[274]="E!";
+channels[274]="S28.2E-2-2313-53200";
+channelsnames[275]="Home";
+channels[275]="S28.2E-2-2006-6501";
+channelsnames[276]="Home+1";
+channels[276]="S28.2E-2-2015-7600";
+channelsnames[277]="Good Food";
+channels[277]="S28.2E-2-2006-6508";
+channelsnames[278]="Good Food +1";
+channels[278]="S28.2E-2-2015-7626";
+channelsnames[279]="Food Network";
+channels[279]="S28.2E-2-2313-53260";
+channelsnames[280]="Food Netwrk+1";
+channels[280]="S28.2E-2-2313-53270";
+channelsnames[281]="wedding tv";
+channels[281]="S28.2E-2-2402-55510";
+channelsnames[282]="The Active Ch";
+channels[282]="S28.2E-2-2614-55330";
+channelsnames[283]="Fitness TV";
+channels[283]="S28.2E-2-2602-54165";
+channelsnames[284]="BET|BlackEntTv";
+channels[284]="S28.2E-2-2079-51081";
+channelsnames[285]="BET +1";
+channels[285]="S28.2E-2-2079-51082";
+channelsnames[286]="Information TV";
+channels[286]="S28.2E-2-2313-53230";
+channelsnames[287]="Showcase";
+channels[287]="S28.2E-2-2313-53280";
+channelsnames[288]="Showcase 2";
+channels[288]="S28.2E-2-2601-54051";
+channelsnames[289]="Horse & Country";
+channels[289]="S28.2E-2-2076-54140";
+channelsnames[300]="CBBC";
+channels[300]="S28.2E-2-2048-10352";
+channelsnames[301]="CBeebies";
+channels[301]="S28.2E-2-2045-6318";
+channelsnames[302]="CITV";
+channels[302]="S28.2E-2-2044-10071";
+channelsnames[303]="KiKA";
+channels[303]="S19.2E-1-1079-28008";
+channelsnames[304]="RiC";
+channels[304]="S19.2E-1-1117-13019";
+channelsnames[305]="Nickelodeon";
+channels[305]="S19.2E-1-1078-28680";
+channelsnames[306]="Tiny Pop";
+channels[306]="S28.2E-2-2314-53330";
+channelsnames[307]="Tiny Pop +1";
+channels[307]="S28.2E-2-2314-53345";
+channelsnames[308]="POP";
+channels[308]="S28.2E-2-2314-53340";
+channelsnames[309]="Kix";
+channels[309]="S28.2E-2-2314-53350";
+channelsnames[310]="PopGirl";
+channels[310]="S28.2E-2-2314-53360";
+channelsnames[311]="POP+1";
+channels[311]="S28.2E-2-2314-53370";
+channelsnames[312]="NICKELODEON AT";
+channels[312]="S19.2E-133-7-61";
+channelsnames[313]="Baby TV";
+channels[313]="S13.0E-318-11500-17309";
+channelsnames[314]="duck tv DUT";
+channels[314]="S23.5E-3-3210-5141";
+channelsnames[315]="Minimax";
+channels[315]="S23.5E-3-3219-13132";
+channelsnames[316]="Boomerang";
+channels[316]="S19.2E-1-1068-28527";
+channelsnames[317]="Nick Jr.";
+channels[317]="S28.2E-2-2029-5563";
+channelsnames[318]="Nick Jr+1";
+channels[318]="S28.2E-2-2079-51090";
+channelsnames[319]="Nick Jr Peppa";
+channels[319]="S28.2E-2-2079-51089";
+channelsnames[320]="Nick Jr France";
+channels[320]="S19.2E-1-1078-28677";
+channelsnames[321]="Nick Jr.";
+channels[321]="S13.0E-318-1400-30";
+channelsnames[322]="Nick Jr";
+channels[322]="S13.0E-64511-800-1424";
+channelsnames[323]="Nickelodeon";
+channels[323]="S28.2E-2-2029-5560";
+channelsnames[324]="Nickelodeon+1";
+channels[324]="S28.2E-2-2029-5561";
+channelsnames[325]="DISNEY JR";
+channels[325]="S30.0W-49-4-71";
+channelsnames[326]="Disney Junior";
+channels[326]="S28.2E-2-2011-9103";
+channelsnames[327]="Disney Junior+";
+channels[327]="S28.2E-2-2011-9106";
+channelsnames[328]="BabyTV";
+channels[328]="S28.2E-2-2029-5564";
+channelsnames[329]="Boomerang";
+channels[329]="S28.2E-2-2074-50205";
+channelsnames[330]="Boomerang +1";
+channels[330]="S28.2E-2-2074-50210";
+channelsnames[331]="Cartoon Netwrk";
+channels[331]="S28.2E-2-2074-50200";
+channelsnames[332]="Cartoonito";
+channels[332]="S28.2E-2-2021-5521";
+channelsnames[333]="CN+1";
+channels[333]="S28.2E-2-2074-50215";
+channelsnames[334]="Disney Chnl";
+channels[334]="S28.2E-2-2011-9102";
+channelsnames[335]="Disney Chnl+1";
+channels[335]="S28.2E-2-2011-9105";
+channelsnames[336]="Disney XD";
+channels[336]="S28.2E-2-2011-9101";
+channelsnames[337]="Disney XD+1";
+channels[337]="S28.2E-2-2011-9104";
+channelsnames[338]="Nicktoons";
+channels[338]="S28.2E-2-2029-5562";
+channelsnames[339]="NICK JR";
+channels[339]="S30.0W-49-7-75";
+channelsnames[340]="Boomerang";
+channels[340]="S23.5E-3-3202-6035";
+channelsnames[341]="Disney Channel";
+channels[341]="S23.5E-3-3202-6065";
+channelsnames[342]="Cartoon";
+channels[342]="S23.5E-3-3222-20940";
+channelsnames[343]="JimJam";
+channels[343]="S23.5E-3-3202-6003";
+channelsnames[344]="JimJam CZ";
+channels[344]="S23.5E-3-3202-6053";
+channelsnames[345]="Disney CZ";
+channels[345]="S23.5E-3-3211-20857";
+channelsnames[346]="KetOp12";
+channels[346]="S23.5E-3-3222-21112";
+channelsnames[347]="VTMKazoom/Kanaal Z";
+channels[347]="S23.5E-3-3222-21116";
+channelsnames[401]="Das Erste";
+channels[401]="S19.2E-1-1101-28106";
+channelsnames[402]="ZDF";
+channels[402]="S19.2E-1-1079-28006";
+channelsnames[403]="3sat";
+channels[403]="S19.2E-1-1079-28007";
+channelsnames[404]="WDR Düsseldorf";
+channels[404]="S19.2E-1-1201-28308";
+channelsnames[405]="NDR FS HH";
+channels[405]="S19.2E-1-1073-28225";
+channelsnames[406]="MDR Thüringen";
+channels[406]="S19.2E-1-1073-28230";
+channelsnames[407]="Bayerisches FS Nord";
+channels[407]="S19.2E-1-1101-28110";
+channelsnames[408]="SWR Fernsehen BW";
+channels[408]="S19.2E-1-1101-28113";
+channelsnames[409]="ARD-alpha";
+channels[409]="S19.2E-1-1093-28487";
+channelsnames[410]="hr-fernsehen";
+channels[410]="S19.2E-1-1101-28108";
+channelsnames[411]="Radio Bremen TV";
+channels[411]="S19.2E-1-1201-28385";
+channelsnames[412]="tagesschau24";
+channels[412]="S19.2E-1-1051-28721";
+channelsnames[413]="Einsfestival";
+channels[413]="S19.2E-1-1051-28722";
+channelsnames[414]="EinsPlus";
+channels[414]="S19.2E-1-1051-28723";
+channelsnames[415]="ZDFinfo";
+channels[415]="S19.2E-1-1079-28011";
+channelsnames[416]="zdf.kultur";
+channels[416]="S19.2E-1-1079-28016";
+channelsnames[417]="zdf_neo";
+channels[417]="S19.2E-1-1079-28014";
+channelsnames[418]="arte";
+channels[418]="S19.2E-1-1051-28724";
+channelsnames[419]="PHOENIX";
+channels[419]="S19.2E-1-1051-28725";
+channelsnames[420]="SAT.1 Gold";
+channels[420]="S19.2E-1-1107-17504";
+channelsnames[421]="kabel eins";
+channels[421]="S19.2E-1-1107-17502";
+channelsnames[422]="n-tv";
+channels[422]="S19.2E-1-1089-12090";
+channelsnames[423]="N24";
+channels[423]="S19.2E-1-1107-17503";
+channelsnames[424]="ProSieben";
+channels[424]="S19.2E-1-1107-17501";
+channelsnames[425]="RTL Television,RTL";
+channels[425]="S19.2E-1-1089-12003";
+channelsnames[426]="RTL2";
+channels[426]="S19.2E-1-1089-12020";
+channelsnames[427]="SUPER RTL";
+channels[427]="S19.2E-1-1089-12040";
+channelsnames[428]="SAT.1";
+channels[428]="S19.2E-1-1107-17500";
+channelsnames[429]="SIXX";
+channels[429]="S19.2E-133-5-776";
+channelsnames[430]="VOX";
+channels[430]="S19.2E-1-1089-12060";
+channelsnames[431]="kabel eins classics";
+channels[431]="S19.2E-1-1107-17506";
+channelsnames[432]="RTL Living";
+channels[432]="S19.2E-1-1089-12030";
+channelsnames[433]="ProSieben MAXX";
+channels[433]="S19.2E-1-1107-17505";
+channelsnames[434]="Disney Channel";
+channels[434]="S19.2E-133-5-1793";
+channelsnames[450]="13th Street,13Street";
+channels[450]="S19.2E-133-1-42";
+channelsnames[451]="AXN Action. OBSOLETE,AXN.";
+channels[451]="S19.2E-133-9-62";
+channelsnames[452]="Biography Channel. OBSOLETE,Bio.";
+channels[452]="S19.2E-133-9-67";
+channelsnames[453]="Boomerang. OBSOLETE";
+channels[453]="S19.2E-133-9-66";
+channelsnames[454]="Cartoon Network (S). OBSOLETE";
+channels[454]="S19.2E-133-9-64";
+channelsnames[455]="Classica";
+channels[455]="S19.2E-133-17-24";
+channelsnames[456]="Discovery Channel,Discovery";
+channels[456]="S19.2E-133-4-14";
+channelsnames[457]="Sky Atlantic,Atlantic";
+channels[457]="S19.2E-133-17-34";
+channelsnames[458]="Disney Cinemagic,DisneyCin";
+channels[458]="S19.2E-133-3-25";
+channelsnames[459]="Disney XD,DisneyXD";
+channels[459]="S19.2E-133-17-28";
+channelsnames[460]="Eurosport 2 Deutschland. OBSOLETE";
+channels[460]="S19.2E-133-9-65";
+channelsnames[461]="Fox Serie,Fox";
+channels[461]="S19.2E-133-1-16";
+channelsnames[462]="Goldstar TV,Goldstar";
+channels[462]="S19.2E-133-17-518";
+channelsnames[463]="Heimatkanal,Heimat";
+channels[463]="S19.2E-133-17-22";
+channelsnames[464]="History. OBSOLETE";
+channels[464]="S19.2E-133-9-68";
+channelsnames[465]="Junior";
+channels[465]="S19.2E-133-17-19";
+channelsnames[466]="Kinowelt TV. OBSOLETE,Kinowelt.";
+channels[466]="S19.2E-133-9-60";
+channelsnames[467]="MGM";
+channels[467]="S19.2E-133-3-515";
+channelsnames[468]="Motorvision TV,Motorvis";
+channels[468]="S19.2E-133-1-168";
+channelsnames[469]="NatGeo Wild,NG Wild";
+channels[469]="S19.2E-133-4-12";
+channelsnames[470]="National Geographic,NatGeo";
+channels[470]="S19.2E-133-4-13";
+channelsnames[471]="Disney Junior,DisneyJr";
+channels[471]="S19.2E-133-17-26";
+channelsnames[472]="Romance TV. OBSOLETE,Romance.";
+channels[472]="S19.2E-133-9-63";
+channelsnames[473]="RTL Passion,Passion";
+channels[473]="S19.2E-133-1-29";
+channelsnames[474]="Sky Action,Action";
+channels[474]="S19.2E-133-2-9";
+channelsnames[475]="Sky Bundesliga 1,Sky Buli 1";
+channels[475]="S19.2E-133-4-223";
+channelsnames[476]="Sky Cinema+1,SkyCine1";
+channels[476]="S19.2E-133-2-11";
+channelsnames[477]="Sky Cinema+24,SkyCine24";
+channels[477]="S19.2E-133-2-43";
+channelsnames[478]="Sky Hits,SkyHits";
+channels[478]="S19.2E-133-3-41";
+channelsnames[479]="Sky Cinema,Cinema";
+channels[479]="S19.2E-133-2-10";
+channelsnames[480]="Sky Comedy,Comedy";
+channels[480]="S19.2E-133-2-8";
+channelsnames[481]="Sky Emotion,Emotion";
+channels[481]="S19.2E-133-2-20";
+channelsnames[482]="Sky Krimi,SkyKrimi";
+channels[482]="S19.2E-133-1-23";
+channelsnames[483]="Sky Nostalgie,Nostalgie";
+channels[483]="S19.2E-133-3-516";
+channelsnames[484]="Sky Sport 1,Sport1";
+channels[484]="S19.2E-133-4-221";
+channelsnames[485]="MAG - LEV";
+channels[485]="S19.2E-133-4-222";
+channelsnames[486]="N24 Austria";
+channels[486]="S19.2E-133-7-53";
+channelsnames[487]="Spiegel Geschichte,SpiegelG";
+channels[487]="S19.2E-133-4-52";
+channelsnames[488]="sportdigital. OBSOLETE";
+channels[488]="S19.2E-133-9-69";
+channelsnames[489]="Syfy";
+channels[489]="S19.2E-133-17-36";
+channelsnames[490]="TNT Film (TCM). OBSOLETE,TNT Film.";
+channels[490]="S19.2E-133-9-61";
+channelsnames[491]="TNT Serie,TNTSerie";
+channels[491]="S19.2E-133-1-50";
+channelsnames[501]="ORF1";
+channels[501]="S19.2E-1-1117-13001";
+channelsnames[502]="ORF2";
+channels[502]="S19.2E-1-1117-13002";
+channelsnames[503]="ORF III";
+channels[503]="S19.2E-1-1115-13101";
+channelsnames[504]="ATV";
+channels[504]="S19.2E-1-1117-13012";
+channelsnames[505]="sixx Austria";
+channels[505]="S19.2E-1-1115-13106";
+channelsnames[506]="ATV2";
+channels[506]="S19.2E-1-1003-13223";
+channelsnames[507]="ATV HD";
+channels[507]="S19.2E-1-1003-13228";
+channelsnames[508]="MELODIE TV";
+channels[508]="S19.2E-1-1003-13229";
+channelsnames[509]="Starparadies AT";
+channels[509]="S19.2E-1-1003-13226";
+channelsnames[510]="Schau TV";
+channels[510]="S19.2E-1-1003-13225";
+channelsnames[511]="Volksmusik";
+channels[511]="S19.2E-1-1003-13222";
+channelsnames[512]="ServusTV Deutschland";
+channels[512]="S19.2E-1-1115-13110";
+channelsnames[513]="ServusTV Oesterreich";
+channels[513]="S19.2E-1-1115-13111";
+channelsnames[520]="SRF info";
+channels[520]="S13.0E-318-8500-911";
+channelsnames[521]="SRF 1";
+channels[521]="S13.0E-318-8500-901";
+channelsnames[522]="SRF zwei";
+channels[522]="S13.0E-318-8500-907";
+channelsnames[523]="RSI LA 1";
+channels[523]="S13.0E-318-1700-14003";
+channelsnames[524]="RSI LA 2";
+channels[524]="S13.0E-318-1700-14009";
+channelsnames[525]="RTS Un";
+channels[525]="S13.0E-318-1700-14002";
+channelsnames[526]="RTS Deux";
+channels[526]="S13.0E-318-1700-14008";
+channelsnames[531]="Rai 1";
+channels[531]="S13.0E-318-12400-8511";
+channelsnames[532]="Rai 2";
+channels[532]="S13.0E-318-12400-8512";
+channelsnames[533]="Rai 3";
+channels[533]="S13.0E-318-12400-8513";
+channelsnames[534]="Rai 4";
+channels[534]="S13.0E-318-12400-8514";
+channelsnames[535]="Rai Movie";
+channels[535]="S13.0E-318-12400-8502";
+channelsnames[550]="Dubai Sports 3";
+channels[550]="S13.0E-318-5103-9502";
+channelsnames[551]="Rai Sport 1";
+channels[551]="S13.0E-318-5400-3305";
+channelsnames[552]="Rai Sport 2";
+channels[552]="S13.0E-318-5400-3301";
+channelsnames[553]="Saudi Arabian TV2";
+channels[553]="S13.0E-318-7700-112";
+channelsnames[554]="JSC Sports Global";
+channels[554]="S13.0E-318-7700-126";
+channelsnames[555]="Eurosport Deutschland";
+channels[555]="S19.2E-1-1091-31200";
+channelsnames[556]="e8 television,e8 tv";
+channels[556]="S19.2E-133-33-897";
+channelsnames[557]="SPORT1";
+channels[557]="S19.2E-133-33-900";
+channelsnames[558]="Eurosport";
+channels[558]="S28.2E-2-2030-6039";
+channelsnames[559]="Eurosport 2";
+channels[559]="S28.2E-2-2023-5009";
+channelsnames[560]="Extreme Sports";
+channels[560]="S28.2E-2-2311-52080";
+channelsnames[561]="Premier Sports";
+channels[561]="S28.2E-2-2081-51113";
+channelsnames[562]="Sky Sports 1";
+channels[562]="S28.2E-2-2021-4214";
+channelsnames[563]="Sky Sports 2";
+channels[563]="S28.2E-2-2021-4208";
+channelsnames[564]="Sky Sports 3";
+channels[564]="S28.2E-2-2021-4219";
+channelsnames[565]="Sky Ryder Cup";
+channels[565]="S28.2E-2-2023-5401";
+channelsnames[566]="Sky Sp NewsHQ";
+channels[566]="S28.2E-2-2023-4907";
+channelsnames[567]="CANAL+ SPORT";
+channels[567]="S19.2E-1-1072-8224";
+channelsnames[568]="ESP Int'l";
+channels[568]="S13.0E-318-200-13831";
+channelsnames[569]="ESP Dutch";
+channels[569]="S13.0E-318-200-13833";
+channelsnames[570]="ESP2 Int'l";
+channels[570]="S13.0E-318-200-13801";
+channelsnames[571]="Sky Sport News,SportNews";
+channels[571]="S19.2E-133-3-17";
+channelsnames[572]="EUROSPORT";
+channels[572]="S19.2E-53-1097-2025";
+channelsnames[573]="Eurosport DUT";
+channels[573]="S23.5E-3-3209-13106";
+channelsnames[574]="FOX Sports EDL 1 HD";
+channels[574]="S23.5E-3-3202-6092";
+channelsnames[575]="FOX Sports 2 HD int";
+channels[575]="S23.5E-3-3225-21045";
+channelsnames[576]="FOX Sports EDL 3";
+channels[576]="S23.5E-3-3222-20935";
+channelsnames[577]="Sport1 Select HD";
+channels[577]="S23.5E-3-3222-20960";
+channelsnames[578]="Sport1 Voetbal";
+channels[578]="S23.5E-3-3222-20925";
+channelsnames[579]="Sport1 Golf";
+channels[579]="S23.5E-3-3222-20930";
+channelsnames[580]="HBO HD";
+channels[580]="S23.5E-3-3205-5033";
+channelsnames[581]="Eurosport";
+channels[581]="S23.5E-3-3211-20809";
+channelsnames[582]="Eurosport CZ";
+channels[582]="S23.5E-3-3211-20859";
+channelsnames[600]="DELUXE MUSIC,DELUXE";
+channels[600]="S19.2E-133-7-65";
+channelsnames[601]="Vintage TV";
+channels[601]="S28.2E-2-2301-52180";
+channelsnames[602]="Xite";
+channels[602]="T-8720-2244-43";
+channelsnames[603]="MTV";
+channels[603]="T-8720-2212-24";
+channelsnames[604]="Scuzz";
+channels[604]="S28.2E-2-2314-53310";
+channelsnames[605]="Rock TV";
+channels[605]="S13.0E-64511-100-15333";
+channelsnames[606]="JIM";
+channels[606]="S23.5E-3-3222-21110";
+channelsnames[607]="MTV NL";
+channels[607]="S23.5E-3-3222-20947";
+channelsnames[608]="TV Oranje";
+channels[608]="S23.5E-3-3222-20948";
+channelsnames[609]="iConcerts";
+channels[609]="S23.5E-3-3226-730";
+channelsnames[610]="iConcerts CZ";
+channels[610]="S23.5E-3-3226-733";
+channelsnames[611]="brava hd";
+channels[611]="S23.5E-3-3226-732";
+channelsnames[612]="MTV ROCKS";
+channels[612]="S19.2E-1-1066-28659";
+channelsnames[613]="MTV Hits";
+channels[613]="S19.2E-1-1066-28654";
+channelsnames[614]="MTV Dance";
+channels[614]="S19.2E-1-1066-28655";
+channelsnames[615]="VH1 Classic";
+channels[615]="S19.2E-1-1066-28657";
+channelsnames[616]="VH1";
+channels[616]="S19.2E-1-1066-28656";
+channelsnames[617]="MTV Music 24";
+channels[617]="S19.2E-1-1078-28671";
+channelsnames[618]="NOW Music";
+channels[618]="S28.2E-2-2311-52010";
+channelsnames[619]="Bliss";
+channels[619]="S28.2E-2-2314-53305";
+channelsnames[620]="Flava";
+channels[620]="S28.2E-2-2314-53300";
+channelsnames[621]="The Vault";
+channels[621]="S28.2E-2-2314-53355";
+channelsnames[622]="Chart Show TV";
+channels[622]="S28.2E-2-2314-53365";
+channelsnames[623]="Planet Pop";
+channels[623]="S28.2E-2-2612-55114";
+channelsnames[624]="Chartshw Dnce";
+channels[624]="S28.2E-2-2314-53315";
+channelsnames[625]="Clubland TV";
+channels[625]="S28.2E-2-2612-55113";
+channelsnames[626]="Zing";
+channels[626]="S28.2E-2-2405-50470";
+channelsnames[627]="Brit Asia TV";
+channels[627]="S28.2E-2-2612-55108";
+channelsnames[628]="Kerrang!";
+channels[628]="S28.2E-2-2040-12015";
+channelsnames[629]="VH1.";
+channels[629]="S19.2E-1-1066-28666";
+channelsnames[630]="VH1 Classic.";
+channels[630]="S19.2E-1-1066-28667";
+channelsnames[631]="MTV ROCKS.";
+channels[631]="S19.2E-1-1066-28669";
+channelsnames[632]="MTV FRANCE";
+channels[632]="S19.2E-1-1066-28652";
+channelsnames[633]="Test Channel 3 (Ex MTV IDOL)";
+channels[633]="S19.2E-1-1078-28675";
+channelsnames[634]="Test Channel 2 (ex MTV Pulse)";
+channels[634]="S19.2E-1-1078-28674";
+channelsnames[635]="Test Channel 1 (ex MTV Germany)";
+channels[635]="S19.2E-1-1078-28673";
+channelsnames[636]="Comedy Central/VIVA";
+channels[636]="S19.2E-1-1078-28676";
+channelsnames[637]="Test Channel 1 (Ex MTV BASE FRANCE)";
+channels[637]="S19.2E-1-1066-28661";
+channelsnames[638]="MTV Hits.";
+channels[638]="S19.2E-1-1066-28664";
+channelsnames[639]="MTV";
+channels[639]="S28.2E-2-2010-7001";
+channelsnames[640]="MTV";
+channels[640]="S28.2E-2-2010-7010";
+channelsnames[641]="MTV BASE";
+channels[641]="S28.2E-2-2010-7007";
+channelsnames[642]="MTV CLASSIC";
+channels[642]="S28.2E-2-2010-7008";
+channelsnames[643]="MTV DANCE";
+channels[643]="S28.2E-2-2010-7014";
+channelsnames[644]="MTV HITS";
+channels[644]="S28.2E-2-2010-7006";
+channelsnames[645]="MTV MUSIC";
+channels[645]="S28.2E-2-2010-7012";
+channelsnames[646]="MTV ROCKS";
+channels[646]="S28.2E-2-2010-7003";
+channelsnames[647]="MTV Trax OBSOLETE";
+channels[647]="S28.2E-2-2010-7021";
+channelsnames[648]="MTV+1";
+channels[648]="S28.2E-2-2010-7005";
+channelsnames[649]="VH1";
+channels[649]="S28.2E-2-2010-7002";
+channelsnames[650]="VIVA";
+channels[650]="S28.2E-2-2010-7009";
+channelsnames[651]="VH1";
+channels[651]="S30.0W-54-37-2003";
+channelsnames[652]="VH1 Classic";
+channels[652]="S30.0W-54-41-612";
+channelsnames[653]="MTV Music";
+channels[653]="S30.0W-54-40-782";
+channelsnames[654]="RTP Memória";
+channels[654]="S30.0W-54-40-783";
+channelsnames[655]="MCM TOP";
+channels[655]="S30.0W-54-40-504";
+channelsnames[656]="TVE Internacional";
+channels[656]="S30.0W-54-37-967";
+channelsnames[657]="MTV ROCKS";
+channels[657]="S30.0W-54-37-2004";
+channelsnames[658]="Comedy Central / VIVA AT";
+channels[658]="S19.2E-133-7-60";
+channelsnames[659]="MTV Live";
+channels[659]="S28.2E-2-2409-50885";
+channelsnames[660]="Nicktoons (S)";
+channels[660]="S19.2E-1-1078-28682";
+channelsnames[661]="MTV Classic";
+channels[661]="S13.0E-64511-800-1427";
+channelsnames[662]="MTV Music";
+channels[662]="S13.0E-64511-800-1428";
+channelsnames[663]="MTV Dance";
+channels[663]="S13.0E-64511-800-1429";
+channelsnames[664]="SLIDE TSCS2";
+channels[664]="S30.0W-54-37-785";
+channelsnames[665]="MEZZO";
+channels[665]="S13.0E-318-15600-10725";
+channelsnames[700]="NHK World";
+channels[700]="S13.0E-318-13100-7327";
+channelsnames[701]="VTV4";
+channels[701]="S13.0E-318-11500-17321";
+channelsnames[702]="Thai Global Network";
+channels[702]="S13.0E-318-11500-17320";
+channelsnames[703]="CNC-001";
+channels[703]="S13.0E-318-7200-7257";
+channelsnames[704]="CCTV-News";
+channels[704]="S13.0E-318-12600-1706";
+channelsnames[705]="CCTV4";
+channels[705]="S13.0E-318-7200-7224";
+channelsnames[706]="Arirang World";
+channels[706]="S13.0E-318-15600-10715";
+channelsnames[707]="NHK World TV";
+channels[707]="S19.2E-1-1020-7014";
+channelsnames[708]="CCTV9 Documentary";
+channels[708]="S19.2E-1-1022-6912";
+channelsnames[709]="CCTV NEWS";
+channels[709]="S19.2E-1-1022-6914";
+channelsnames[710]="CCTV F";
+channels[710]="S19.2E-1-1022-6913";
+channelsnames[711]="Arirang TV";
+channels[711]="S19.2E-1-1020-7011";
+channelsnames[712]="CNC World";
+channels[712]="S28.2E-2-2306-52580";
+channelsnames[713]="PCNE Chinese";
+channels[713]="S28.2E-2-2302-52118";
+channelsnames[714]="Arte Oggi TV";
+channels[714]="S13.0E-318-15600-10709";
+channelsnames[715]="JSTV 1";
+channels[715]="S13.0E-318-9400-8213";
+channelsnames[716]="JSTV 2";
+channels[716]="S13.0E-318-9400-8214";
+channelsnames[730]="B4U Music";
+channels[730]="S28.2E-2-2302-52135";
+channelsnames[731]="Music India";
+channels[731]="S28.2E-2-2611-55019";
+channelsnames[732]="Rishtey";
+channels[732]="S28.2E-2-2304-55209";
+channelsnames[733]="ARY World";
+channels[733]="S28.2E-2-2404-50310";
+channelsnames[734]="Aastha";
+channels[734]="S28.2E-2-2402-55500";
+channelsnames[735]="Sangat";
+channels[735]="S28.2E-2-2612-9536";
+channelsnames[736]="MATV National";
+channels[736]="S28.2E-2-2604-54300";
+channelsnames[737]="BON TV";
+channels[737]="S28.2E-2-2313-53290";
+channelsnames[738]="ARY QTV";
+channels[738]="S28.2E-2-2306-52535";
+channelsnames[739]="Channel i";
+channels[739]="S28.2E-2-2601-54062";
+channelsnames[740]="SONY SAB";
+channels[740]="S28.2E-2-2602-54107";
+channelsnames[741]="ATN Bangla UK";
+channels[741]="S28.2E-2-2601-54053";
+channelsnames[742]="Venus TV";
+channels[742]="S28.2E-2-2409-50884";
+channelsnames[743]="SMNI";
+channels[743]="S13.0E-318-9400-8206";
+channelsnames[744]="Ganj e Hozour TV";
+channels[744]="S13.0E-0-0-17017";
+channelsnames[745]="Bangla TV";
+channels[745]="S28.2E-2-2602-54115";
+channelsnames[746]="Madani Chnl";
+channels[746]="S28.2E-2-2601-54068";
+channelsnames[747]="B4U Movies";
+channels[747]="S28.2E-2-2302-52134";
+channelsnames[748]="SONY TV Asia";
+channels[748]="S28.2E-2-2014-7420";
+channelsnames[749]="COLORS";
+channels[749]="S28.2E-2-2306-52520";
+channelsnames[750]="Star GOLD";
+channels[750]="S28.2E-2-2301-52113";
+channelsnames[751]="Studio 66 TV 3";
+channels[751]="S28.2E-2-2604-54320";
+channelsnames[752]="Star Life OK";
+channels[752]="S28.2E-2-2304-55210";
+channelsnames[753]="Star Plus";
+channels[753]="S28.2E-2-2301-52108";
+channelsnames[754]="Zee TV";
+channels[754]="S28.2E-2-2405-50460";
+channelsnames[755]="Lamhe";
+channels[755]="S28.2E-2-2405-50480";
+channelsnames[756]="Zee Cinema";
+channels[756]="S28.2E-2-2405-50465";
+channelsnames[757]="Zee Punjabi";
+channels[757]="S28.2E-2-2405-50475";
+channelsnames[758]="Face 1";
+channels[758]="S13.0E-318-15700-10605";
+channelsnames[759]="GEO TEZ";
+channels[759]="S28.2E-2-2306-52505";
+channelsnames[760]="ARY Ent";
+channels[760]="S28.2E-2-2405-50415";
+channelsnames[761]="GEO News";
+channels[761]="S28.2E-2-2405-50405";
+channelsnames[762]="GEO UK";
+channels[762]="S28.2E-2-2306-52500";
+channelsnames[800]="Music Box Russia";
+channels[800]="S13.0E-318-11500-17316";
+channelsnames[801]="RUTV";
+channels[801]="S13.0E-318-600-17680";
+channelsnames[802]="1TVRUS Europe";
+channels[802]="S13.0E-318-9400-8208";
+channelsnames[803]="RTR";
+channels[803]="S13.0E-318-12600-1708";
+channelsnames[804]="THT COMEDY";
+channels[804]="S13.0E-318-12600-1703";
+channelsnames[805]="Rossiya 24";
+channels[805]="S13.0E-318-12600-1710";
+channelsnames[806]="Arise TV";
+channels[806]="S13.0E-318-15400-13527";
+channelsnames[807]="Soyuz TV";
+channels[807]="S13.0E-318-11500-17313";
+channelsnames[808]="RBC-TV";
+channels[808]="S13.0E-318-9000-8342";
+channelsnames[809]="RT DOC";
+channels[809]="S13.0E-318-6500-487";
+channelsnames[810]="R1";
+channels[810]="S13.0E-318-13000-14607";
+channelsnames[811]="TVRUS";
+channels[811]="S13.0E-318-15500-637";
+channelsnames[812]="Shanson TV";
+channels[812]="S13.0E-318-12600-1704";
+channelsnames[813]="ChildRussia";
+channels[813]="S13.0E-318-15300-813";
+channelsnames[814]="TBN Russia";
+channels[814]="S13.0E-318-15300-807";
+channelsnames[815]="CNL";
+channels[815]="S13.0E-318-11500-17312";
+channelsnames[816]="Euronews";
+channels[816]="S13.0E-318-9400-8211";
+channelsnames[817]="Russia Today";
+channels[817]="S13.0E-318-600-17629";
+channelsnames[818]="Newroz";
+channels[818]="S13.0E-318-15700-10608";
+channelsnames[819]="RTVi Europe";
+channels[819]="S13.0E-318-8100-14802";
+channelsnames[820]="inteRTV Nashe Kino";
+channels[820]="S13.0E-318-8100-14804";
+channelsnames[821]="inteRTV Detskii Mir - TeleClub";
+channels[821]="S13.0E-318-8100-14803";
+channelsnames[822]="ESP2 Rus";
+channels[822]="S13.0E-318-200-13813";
+channelsnames[823]="ESP Russian";
+channels[823]="S13.0E-318-200-13835";
+channelsnames[824]="ESP2 NE Russian";
+channels[824]="S13.0E-318-200-13883";
+channelsnames[825]="Khabar TV";
+channels[825]="S13.0E-318-7200-7220";
+channelsnames[826]="inteRTV Mir Seriala";
+channels[826]="S13.0E-318-8100-14807";
+channelsnames[827]="ARM_1";
+channels[827]="S13.0E-318-9400-8202";
+channelsnames[828]="TV9";
+channels[828]="S13.0E-318-15400-13505";
+channelsnames[840]="TVP1";
+channels[840]="S19.2E-1-1059-7100";
+channelsnames[841]="TVP2";
+channels[841]="S19.2E-1-1059-7101";
+channelsnames[842]="TVP Sport";
+channels[842]="S19.2E-1-1059-7103";
+channelsnames[850]="TV5MONDE EUROPE";
+channels[850]="S19.2E-1-1022-6915";
+channelsnames[851]="M6";
+channels[851]="S19.2E-1-1100-8706";
+channelsnames[852]="M6 HD";
+channels[852]="S19.2E-1-1088-9310";
+channelsnames[900]="EuroNews";
+channels[900]="S19.2E-1-1091-31220";
+channelsnames[901]="CNN Int.";
+channels[901]="S19.2E-1-1068-28522";
+channelsnames[902]="CNBC Europe";
+channels[902]="S19.2E-1-1026-10030";
+channelsnames[903]="BBC World";
+channels[903]="S19.2E-1-1026-10050";
+channelsnames[904]="Sky News Intl";
+channels[904]="S19.2E-1-1111-7290";
+channelsnames[905]="France 24 (in English)";
+channels[905]="S19.2E-1-1022-6906";
+channelsnames[906]="Al Jazeera English";
+channels[906]="S19.2E-1-1020-7012";
+channelsnames[907]="Al Jazeera Channel";
+channels[907]="S19.2E-1-1020-7009";
+channelsnames[908]="joiz";
+channels[908]="S19.2E-133-5-74";
+channelsnames[909]="Bloomberg Europe TV";
+channels[909]="S19.2E-1-1026-10067";
+channelsnames[910]="BBC World News";
+channels[910]="S13.0E-318-9400-8204";
+channelsnames[911]="CNBC PE Hot";
+channels[911]="S13.0E-318-13000-14610";
+channelsnames[912]="Bloomberg European TV";
+channels[912]="S13.0E-318-13100-7302";
+channelsnames[913]="Al Jazeera Intl";
+channels[913]="S13.0E-318-12600-1714";
+channelsnames[914]="PRESS TV";
+channels[914]="S13.0E-318-8700-7944";
+channelsnames[915]="DW Europe";
+channels[915]="S13.0E-318-15500-607";
+channelsnames[916]="Rai News 24";
+channels[916]="S13.0E-318-12400-8516";
+channelsnames[917]="France 24 (in English)";
+channels[917]="S13.0E-318-200-13850";
+channelsnames[918]="France 24 (en Francais)";
+channels[918]="S13.0E-318-200-13849";
+channelsnames[919]="Canal 24 Horas";
+channels[919]="S13.0E-318-5000-13712";
+channelsnames[920]="Chamber TV";
+channels[920]="S23.5E-3-3224-5220";
+channelsnames[921]="Sky News";
+channels[921]="S28.2E-2-2026-4704";
+channelsnames[922]="Bloomberg";
+channels[922]="S28.2E-2-2306-52550";
+channelsnames[923]="ABN TV";
+channels[923]="S28.2E-2-2301-52111";
+channelsnames[924]="CNN";
+channels[924]="S28.2E-2-2074-50220";
+channelsnames[925]="RT";
+channels[925]="S28.2E-2-2409-50847";
+channelsnames[926]="Al Jazeera Eng";
+channels[926]="S28.2E-2-2081-51107";
+channelsnames[927]="Russia Today";
+channels[927]="S19.2E-1-1022-6904";
+channelsnames[928]="RT Esp";
+channels[928]="S19.2E-1-1020-7013";
+channelsnames[950]="Travel Channel";
+channels[950]="S28.2E-2-2602-54102";
+channelsnames[951]="Travel Ch +1";
+channels[951]="S28.2E-2-2301-52100";
+channelsnames[952]="Travel";
+channels[952]="S5.0E-1-1-287";
+channelsnames[953]="Discovery Travel";
+channels[953]="S13.0E-64511-800-1465";
+channelsnames[954]="TV GLOBO";
+channels[954]="S13.0E-318-15400-13526";
+channelsnames[1001]="NPO1";
+channels[1001]="S19.2E-53-1105-4011";
+channelsnames[1002]="NPO2";
+channels[1002]="S19.2E-53-1105-4012";
+channelsnames[1003]="NPO3";
+channels[1003]="S19.2E-53-1105-4013";
+channelsnames[1004]="RTL4";
+channels[1004]="S19.2E-53-1105-4044";
+channelsnames[1005]="RTL5";
+channels[1005]="S19.2E-53-1105-4045";
+channelsnames[1006]="SBS6";
+channels[1006]="S19.2E-53-1105-4002";
+channelsnames[1007]="RTL7";
+channels[1007]="S19.2E-53-1105-4047";
+channelsnames[1009]="NET5";
+channels[1009]="S19.2E-53-1105-4003";
+channelsnames[1012]="Omrop Fryslan Televisie";
+channels[1012]="S23.5E-3-3211-20808";
+channelsnames[1013]="TV Noord";
+channels[1013]="S23.5E-3-3211-20810";
+channelsnames[1014]="TV Oost";
+channels[1014]="S23.5E-3-3211-20814";
+channelsnames[1015]="TV Gelderland";
+channels[1015]="S23.5E-3-3211-20816";
+channelsnames[1016]="Omroep Zeeland Televisie";
+channels[1016]="S23.5E-3-3211-20818";
+channelsnames[1017]="TV Drenthe";
+channels[1017]="S23.5E-3-3211-20812";
+channelsnames[1018]="TV West";
+channels[1018]="S23.5E-3-3211-20804";
+channelsnames[1019]="Omroep Brabant Televisie";
+channels[1019]="S23.5E-3-3211-20820";
+channelsnames[1020]="Regio BE";
+channels[1020]="S23.5E-3-3202-6055";
+channelsnames[1021]="AT5";
+channels[1021]="S23.5E-3-3225-21012";
+channelsnames[1022]="L1MBURG";
+channels[1022]="S23.5E-3-3208-7050";
+channelsnames[1040]="een";
+channels[1040]="S19.2E-53-1119-12801";
+channelsnames[1041]="Canvas";
+channels[1041]="S19.2E-53-1119-12802";
+channelsnames[1042]="VTM";
+channels[1042]="S19.2E-53-1119-12810";
+channelsnames[1043]="een HD";
+channels[1043]="S23.5E-3-3225-21025";
+channelsnames[1044]="Canvas HD";
+channels[1044]="S23.5E-3-3225-21030";
+channelsnames[1045]="VTM HD";
+channels[1045]="S23.5E-3-3208-7030";
+channelsnames[1046]="VIER";
+channels[1046]="S19.2E-53-1119-12814";
+channelsnames[1047]="2BE";
+channels[1047]="S19.2E-53-1119-12812";
+channelsnames[1048]="VIJF";
+channels[1048]="S19.2E-53-1119-12820";
+channelsnames[1049]="Vitaya";
+channels[1049]="S23.5E-3-3222-21120";
+channelsnames[1050]="Acht";
+channels[1050]="S23.5E-3-3222-21122";
+channelsnames[1100]="SkyPremiereHD";
+channels[1100]="S28.2E-2-2016-3821";
+channelsnames[1102]="Sky ShowcseHD";
+channels[1102]="S28.2E-2-2039-3911";
+channelsnames[1103]="Sky Comedy HD";
+channels[1103]="S28.2E-2-2024-3819";
+channelsnames[1104]="Sky Action HD";
+channels[1104]="S28.2E-2-2028-3814";
+channelsnames[1105]="Sky Family HD";
+channels[1105]="S28.2E-2-2016-3818";
+channelsnames[1106]="Sky Thriller HD";
+channels[1106]="S28.2E-2-2016-3862";
+channelsnames[1107]="Sky DraRomHD";
+channels[1107]="S28.2E-2-2024-3816";
+channelsnames[1108]="Sky ScFi/HorHD";
+channels[1108]="S28.2E-2-2024-3817";
+channelsnames[1109]="Sky Greats HD";
+channels[1109]="S28.2E-2-2024-3815";
+channelsnames[1110]="Sky Select HD";
+channels[1110]="S28.2E-2-2016-3901";
+channelsnames[1111]="Sky Disney HD";
+channels[1111]="S28.2E-2-2024-3900";
+channelsnames[1112]="TCM HD";
+channels[1112]="S28.2E-2-2027-3906";
+channelsnames[1150]="Syfy HD";
+channels[1150]="S28.2E-2-2032-3874";
+channelsnames[1151]="Universal HD";
+channels[1151]="S28.2E-2-2035-3880";
+channelsnames[1152]="Comedy Cen HD";
+channels[1152]="S28.2E-2-2020-3856";
+channelsnames[1153]="FOX HD";
+channels[1153]="S28.2E-2-2008-3823";
+channelsnames[1201]="BBC One HD";
+channels[1201]="S28.2E-2-2050-6941";
+channelsnames[1202]="BBC Two HD";
+channels[1202]="S28.2E-2-2050-6940";
+channelsnames[1203]="BBC Three HD";
+channels[1203]="S28.2E-2-2050-6951";
+channelsnames[1204]="BBC Four HD";
+channels[1204]="S28.2E-2-2061-8931";
+channelsnames[1211]="ITV HD";
+channels[1211]="S28.2E-2-2066-21000";
+channelsnames[1212]="ITV2 HD";
+channels[1212]="S28.2E-2-2003-3932";
+channelsnames[1213]="ITV3 HD";
+channels[1213]="S28.2E-2-2003-3933";
+channelsnames[1214]="ITV4 HD";
+channels[1214]="S28.2E-2-2003-3934";
+channelsnames[1220]="Channel 4 HD";
+channels[1220]="S28.2E-2-2068-21200";
+channelsnames[1221]="E4 HD";
+channels[1221]="S28.2E-2-2008-3876";
+channelsnames[1230]="Channel 5 HD";
+channels[1230]="S28.2E-2-2005-3945";
+channelsnames[1260]="Sky Arts 1 HD";
+channels[1260]="S28.2E-2-2039-3863";
+channelsnames[1261]="Sky Arts 2 HD";
+channels[1261]="S28.2E-2-2034-3914";
+channelsnames[1262]="Sky1 HD";
+channels[1262]="S28.2E-2-2033-3861";
+channelsnames[1263]="Sky Atlantic HD";
+channels[1263]="S28.2E-2-2033-3853";
+channelsnames[1264]="Eden HD";
+channels[1264]="S28.2E-2-2020-3868";
+channelsnames[1265]="Good Food HD";
+channels[1265]="S28.2E-2-2027-3867";
+channelsnames[1266]="Sky Insider HD";
+channels[1266]="S28.2E-2-2035-3101";
+channelsnames[1267]="Sky Living HD";
+channels[1267]="S28.2E-2-2005-3866";
+channelsnames[1300]="CBBC HD";
+channels[1300]="S28.2E-2-2050-6952";
+channelsnames[1301]="CBeebies HD";
+channels[1301]="S28.2E-2-2061-8932";
+channelsnames[1302]="Disney XD HD";
+channels[1302]="S28.2E-2-2003-3870";
+channelsnames[1303]="NickelodeonHD";
+channels[1303]="S28.2E-2-2020-3869";
+channelsnames[1304]="Disney Cinemagic HD,DisneyCinHD";
+channels[1304]="S19.2E-133-13-111";
+channelsnames[1305]="Sky Action HD,Action HD";
+channels[1305]="S19.2E-133-11-116";
+channelsnames[1350]="CI HD";
+channels[1350]="S28.2E-2-2028-3888";
+channelsnames[1351]="Discovery HD";
+channels[1351]="S28.2E-2-2034-3916";
+channelsnames[1352]="History HD";
+channels[1352]="S28.2E-2-2028-3886";
+channelsnames[1353]="Nat Geo HD";
+channels[1353]="S28.2E-2-2020-3832";
+channelsnames[1354]="NatGeoWild HD";
+channels[1354]="S28.2E-2-2028-3885";
+channelsnames[1355]="Nat Geo Wild HD";
+channels[1355]="S23.5E-3-3226-761";
+channelsnames[1356]="Nat Geo HD";
+channels[1356]="S23.5E-3-3226-701";
+channelsnames[1401]="Das Erste HD";
+channels[1401]="S19.2E-1-1019-10301";
+channelsnames[1402]="ZDF HD";
+channels[1402]="S19.2E-1-1011-11110";
+channelsnames[1403]="WDR HD Düsseldorf";
+channels[1403]="S19.2E-1-1201-28328";
+channelsnames[1404]="Einsfestival HD";
+channels[1404]="S19.2E-1-1039-10376";
+channelsnames[1405]="EinsPlus HD";
+channels[1405]="S19.2E-1-1039-10377";
+channelsnames[1406]="tagesschau24 HD";
+channels[1406]="S19.2E-1-1039-10375";
+channelsnames[1407]="ANIXE HD";
+channels[1407]="S19.2E-1-1053-21100";
+channelsnames[1408]="ServusTV HD Deutschland";
+channels[1408]="S19.2E-1-1007-4914";
+channelsnames[1409]="arte HD";
+channels[1409]="S19.2E-1-1019-10302";
+channelsnames[1410]="Arte HD";
+channels[1410]="S13.0E-319-15900-307";
+channelsnames[1411]="sonnenklar.TV HD";
+channels[1411]="S19.2E-1-1109-5400";
+channelsnames[1412]="zdf_neo HD";
+channels[1412]="S19.2E-1-1011-11130";
+channelsnames[1413]="zdf.kultur HD";
+channels[1413]="S19.2E-1-1011-11140";
+channelsnames[1420]="NICK/CC HD";
+channels[1420]="S19.2E-1-1053-21107";
+channelsnames[1421]="N24 HD";
+channels[1421]="S19.2E-1-1053-21108";
+channelsnames[1422]="RTL HD";
+channels[1422]="S19.2E-1-1057-61200";
+channelsnames[1423]="VOX HD";
+channels[1423]="S19.2E-1-1057-61201";
+channelsnames[1424]="n-tv HD";
+channels[1424]="S19.2E-1-1057-61204";
+channelsnames[1425]="RTLII HD";
+channels[1425]="S19.2E-1-1057-61205";
+channelsnames[1426]="SAT.1 HD";
+channels[1426]="S19.2E-1-1017-61300";
+channelsnames[1427]="ProSieben HD";
+channels[1427]="S19.2E-1-1017-61301";
+channelsnames[1428]="kabel eins HD";
+channels[1428]="S19.2E-1-1017-61302";
+channelsnames[1429]="SIXX HD";
+channels[1429]="S19.2E-1-1017-61303";
+channelsnames[1430]="TELE 5 HD";
+channels[1430]="S19.2E-1-1109-5401";
+channelsnames[1450]="Fox HD OBSOLETE";
+channels[1450]="S19.2E-133-14-124";
+channelsnames[1451]="Discovery HD,DiscHD";
+channels[1451]="S19.2E-133-6-130";
+channelsnames[1452]="Sky Cinema HD,SkyCineHD";
+channels[1452]="S19.2E-133-6-131";
+channelsnames[1453]="NatGeo HD,NatGeoHD";
+channels[1453]="S19.2E-133-13-112";
+channelsnames[1454]="History HD OBSOLETE,HistHD";
+channels[1454]="S19.2E-133-13-113";
+channelsnames[1455]="Sky Hits HD,SkyHitsHD";
+channels[1455]="S19.2E-133-12-107";
+channelsnames[1456]="Sky Action HD OBSOLETE,Action HD";
+channels[1456]="S19.2E-133-12-106";
+channelsnames[1457]="Nat Geo Wild HD OBSOLETE,NGWildHD";
+channels[1457]="S19.2E-133-11-118";
+channelsnames[1501]="ORF1 HD";
+channels[1501]="S19.2E-1-1007-4911";
+channelsnames[1502]="ORF2 HD";
+channels[1502]="S19.2E-1-1007-4912";
+channelsnames[1503]="ServusTV HD Oesterreich";
+channels[1503]="S19.2E-1-1007-4913";
+channelsnames[1521]="SRF 1 HD";
+channels[1521]="S13.0E-318-12300-17201";
+channelsnames[1522]="SRF zwei HD";
+channels[1522]="S13.0E-318-12300-17202";
+channelsnames[1523]="RTS Un HD";
+channels[1523]="S13.0E-318-12300-17203";
+channelsnames[1524]="RTS Deux HD";
+channels[1524]="S13.0E-318-12300-17204";
+channelsnames[1525]="RSI LA 1 HD";
+channels[1525]="S13.0E-318-1700-14051";
+channelsnames[1526]="RSI LA 2 HD";
+channels[1526]="S13.0E-318-8500-951";
+channelsnames[1550]="Sky Sport News HD,SportNewsHD";
+channels[1550]="S19.2E-133-12-108";
+channelsnames[1551]="Sky Sport HD 1,SportHD 1";
+channels[1551]="S19.2E-133-6-129";
+channelsnames[1552]="Sky Sport HD 2,SportHD 2";
+channels[1552]="S19.2E-133-13-114";
+channelsnames[1553]="Sky Bundesliga HD 1,Sky BuliHD 1";
+channels[1553]="S19.2E-133-12-105";
+channelsnames[1554]="Eurosport HD";
+channels[1554]="S28.2E-2-2008-3804";
+channelsnames[1555]="Sky Sports 1 HD";
+channels[1555]="S28.2E-2-2005-3802";
+channelsnames[1556]="Sky Sports 1 HD";
+channels[1556]="S28.2E-2-2005-3877";
+channelsnames[1557]="Sky Sports 3 HD";
+channels[1557]="S28.2E-2-2034-3822";
+channelsnames[1558]="Sky Sports 3 HD";
+channels[1558]="S28.2E-2-2034-3824";
+channelsnames[1559]="SkyRyderCupHD";
+channels[1559]="S28.2E-2-2033-3826";
+channelsnames[1560]="SkyRyderCupHD";
+channels[1560]="S28.2E-2-2033-3827";
+channelsnames[1561]="AutoMotorSport HD";
+channels[1561]="S23.5E-3-3217-6103";
+channelsnames[1600]="MTV Live HD";
+channels[1600]="S28.2E-2-2001-3806";
+channelsnames[1601]="Planeta HD";
+channels[1601]="S23.5E-3-3206-5410";
+channelsnames[1602]=".";
+channels[1602]="S23.5E-3-3217-6100";
+channelsnames[1603]="UNITEL CLASSICA HD";
+channels[1603]="S23.5E-3-3217-6101";
+channelsnames[1700]="NHK World HD";
+channels[1700]="S28.2E-2-2312-53147";
+channelsnames[1701]="RT HD";
+channels[1701]="S28.2E-2-2312-53148";
+channelsnames[1800]="HBO Comedy";
+channels[1800]="S23.5E-3-3205-5035";
+channelsnames[1801]="Filmbox HD";
+channels[1801]="S23.5E-3-3205-5034";
+channelsnames[1802]="Prima HD";
+channels[1802]="S23.5E-3-3205-5032";
+channelsnames[1803]="Nova Sport HD";
+channels[1803]="S23.5E-3-3205-5031";
+channelsnames[1804]="Nova HD";
+channels[1804]="S23.5E-3-3205-5030";
+channelsnames[1805]="Eurosport 2 HD";
+channels[1805]="S23.5E-3-3221-5041";
+channelsnames[1806]="Slovak Sport";
+channels[1806]="S23.5E-3-3221-5042";
+channelsnames[1807]="History HD";
+channels[1807]="S23.5E-3-3221-5043";
+channelsnames[1808]="Markiza HD";
+channels[1808]="S23.5E-3-3221-5044";
+channelsnames[1809]="Spektrum HD";
+channels[1809]="S23.5E-3-3221-5045";
+channelsnames[1810]="Eurosport HD";
+channels[1810]="S23.5E-3-3221-5047";
+channelsnames[1811]="Travel Channel HD CE";
+channels[1811]="S23.5E-3-3221-5048";
+channelsnames[1812]="EUROSPORT HD";
+channels[1812]="S23.5E-0-0-5041";
+channelsnames[1813]="HISTORY HD";
+channels[1813]="S23.5E-0-0-5042";
+channelsnames[1814]="FILMBOX HD";
+channels[1814]="S23.5E-0-0-5043";
+channelsnames[1815]="Nova HD";
+channels[1815]="S23.5E-0-0-5044";
+channelsnames[1816]="Nova Sport HD";
+channels[1816]="S23.5E-0-0-5045";
+channelsnames[1817]="HBO HD";
+channels[1817]="S23.5E-0-0-5047";
+channelsnames[1818]="Travel Channel HD";
+channels[1818]="S23.5E-0-0-5048";
+channelsnames[1900]="Sky News HD";
+channels[1900]="S28.2E-2-2039-3850";
+channelsnames[1960]="MTV Live HD";
+channels[1960]="S13.0E-318-12800-1";
+channelsnames[1961]="TVN Style HD";
+channels[1961]="S13.0E-318-1600-15822";
+channelsnames[1962]="Rai 1 HD";
+channels[1962]="S13.0E-318-5200-3401";
+channelsnames[1963]="PARIS PREMIERE HD";
+channels[1963]="S19.2E-1-1084-9401";
+channelsnames[1964]="W9 HD";
+channels[1964]="S19.2E-1-1084-9402";
+channelsnames[1965]="MA CHAINE SPORT HD";
+channels[1965]="S19.2E-1-1084-9403";
+channelsnames[1966]="UTV HD";
+channels[1966]="S28.2E-2-2063-20780";
+channelsnames[1967]="1";
+channels[1967]="S28.2E-2-2403-1";
+channelsnames[2000]="SOLIDARIA";
+channels[2000]="S30.0W-1-1-1";
+channelsnames[2001]="Parlamento";
+channels[2001]="S30.0W-2-15-2";
+channelsnames[2002]="Telesur";
+channels[2002]="S30.0W-2-15-3";
+channelsnames[2003]="TV5 MONDE EUROPE";
+channels[2003]="S30.0W-40-13-98";
+channelsnames[2004]="TBN Enlace";
+channels[2004]="S30.0W-40-13-490";
+channelsnames[2005]="CUBAVISION";
+channels[2005]="S30.0W-40-13-491";
+channelsnames[2006]="Russia Today English";
+channels[2006]="S30.0W-40-13-5001";
+channelsnames[2007]="RT esp";
+channels[2007]="S30.0W-40-13-5002";
+channelsnames[2008]="AL JAZZERA INTL";
+channels[2008]="S30.0W-40-13-6001";
+channelsnames[2009]="+TVI";
+channels[2009]="S30.0W-54-40-500";
+channelsnames[2010]="Motors TV";
+channels[2010]="S30.0W-54-40-779";
+channelsnames[2011]="Discovery Channel";
+channels[2011]="S30.0W-54-41-603";
+channelsnames[2012]="Slide TSCS 5";
+channels[2012]="S30.0W-54-40-968";
+channelsnames[2013]="PFC";
+channels[2013]="S30.0W-54-40-508";
+channelsnames[2014]="Nautical Channel";
+channels[2014]="S30.0W-54-41-600";
+channelsnames[2015]="Canal de História";
+channels[2015]="S30.0W-54-41-601";
+channelsnames[2016]="FOX Movies";
+channels[2016]="S30.0W-54-41-608";
+channelsnames[2017]="Cartoon / TCM";
+channels[2017]="S30.0W-54-41-614";
+channelsnames[2018]="FOX";
+channels[2018]="S30.0W-54-41-972";
+channelsnames[2019]="FOX Crime";
+channels[2019]="S30.0W-54-41-974";
+channelsnames[2020]="FX";
+channels[2020]="S30.0W-54-41-975";
+channelsnames[2021]="FOX Crime";
+channels[2021]="S30.0W-54-42-710";
+channelsnames[2022]="FOX Life";
+channels[2022]="S30.0W-54-42-705";
+channelsnames[2023]="The Biography Channel";
+channels[2023]="S30.0W-54-42-890";
+channelsnames[2024]="MCM TOP";
+channels[2024]="S30.0W-54-42-894";
+channelsnames[2025]="BBC Entertainment";
+channels[2025]="S30.0W-54-42-895";
+channelsnames[2026]="Odisseia";
+channels[2026]="S30.0W-54-42-973";
+channelsnames[2050]="CANAL+1 HD";
+channels[2050]="S30.0W-49-3-150";
+channelsnames[2051]="ANDALUCÍA TV";
+channels[2051]="S30.0W-49-3-300";
+channelsnames[2052]="TAQUILLA HD";
+channels[2052]="S30.0W-49-3-1119";
+channelsnames[2053]="CANAL+ 3D";
+channels[2053]="S30.0W-49-3-1123";
+channelsnames[2054]="MEZZO LIVEHD";
+channels[2054]="S30.0W-49-3-1221";
+channelsnames[2055]="C+ DEP 2 HD";
+channels[2055]="S30.0W-49-3-1224";
+channelsnames[2056]="C+ CABLE";
+channels[2056]="S30.0W-49-3-1801";
+channelsnames[2057]="ANTENA 3";
+channels[2057]="S30.0W-49-7-13";
+channelsnames[2058]="RMTV";
+channels[2058]="S30.0W-49-7-62";
+channelsnames[2059]="C+ infoDEPORTE";
+channels[2059]="S30.0W-49-7-69";
+channelsnames[2060]="NEOX";
+channels[2060]="S30.0W-49-7-96";
+channelsnames[2061]="C+ TAQUILLA";
+channels[2061]="S30.0W-49-7-120";
+channelsnames[2062]="CANAL+ 2";
+channels[2062]="S30.0W-49-2-2";
+channelsnames[2063]="COMEDY CENTRAL";
+channels[2063]="S30.0W-49-2-23";
+channelsnames[2064]="VIAJAR";
+channels[2064]="S30.0W-49-2-34";
+channelsnames[2065]="CANAL COCINA";
+channels[2065]="S30.0W-49-2-37";
+channelsnames[2066]="TCM";
+channels[2066]="S30.0W-49-2-45";
+channelsnames[2067]="DISNEY CH.";
+channels[2067]="S30.0W-49-2-70";
+channelsnames[2068]="R. Informativas";
+channels[2068]="S30.0W-49-2-363";
+channelsnames[2069]="R. Musicales";
+channels[2069]="S30.0W-49-2-364";
+channelsnames[2070]="RADIO MARIA";
+channels[2070]="S30.0W-40-13-8";
+channelsnames[2071]="Cadena 100";
+channels[2071]="S30.0W-40-13-10";
+channelsnames[2072]="HIT FM";
+channels[2072]="S30.0W-40-13-26";
+channelsnames[2073]="Radio MARCA";
+channels[2073]="S30.0W-40-13-29";
+channelsnames[2074]="COPE";
+channels[2074]="S30.0W-40-13-37";
+channelsnames[2075]="INTERECONOMIA";
+channels[2075]="S30.0W-40-13-38";
+channelsnames[2076]="MegaStar";
+channels[2076]="S30.0W-40-13-39";
+channelsnames[2077]="ROCK FM";
+channels[2077]="S30.0W-40-13-52";
+channelsnames[2078]="EMA RADIO";
+channels[2078]="S30.0W-40-13-54";
+channelsnames[2079]="TSF ON M";
+channels[2079]="S30.0W-40-13-55";
+channelsnames[2080]="RADIO HIT";
+channels[2080]="S30.0W-40-13-58";
+channelsnames[2081]="Disney Channel";
+channels[2081]="S30.0W-40-13-900";
+channelsnames[2082]="24 HORAS";
+channels[2082]="S30.0W-49-9-70";
+channelsnames[2083]="SIC";
+channels[2083]="S30.0W-54-36-813";
+channelsnames[2084]="Slide TSCS 2";
+channels[2084]="S30.0W-54-37-712";
+channelsnames[2085]="BBC World News";
+channels[2085]="S30.0W-54-37-717";
+channelsnames[2086]="Sport TV 1";
+channels[2086]="S30.0W-54-38-870";
+channelsnames[2087]="AR TV";
+channels[2087]="S30.0W-54-40-501";
+channelsnames[2088]="Toros TV";
+channels[2088]="S30.0W-54-41-602";
+channelsnames[2089]="CANAL+ LIGA";
+channels[2089]="S30.0W-49-3-1800";
+channelsnames[2090]="Canal Extremadura SAT";
+channels[2090]="S30.0W-2-15-4";
+channelsnames[2091]="Feeds 2 TSA";
+channels[2091]="S30.0W-2-15-5";
+channelsnames[2092]="Feeds 3 TSA";
+channels[2092]="S30.0W-2-15-6";
+channelsnames[2093]="HIGH TV 3D";
+channels[2093]="S30.0W-2-15-11";
+channelsnames[2094]="CANAL+ 1";
+channels[2094]="S30.0W-49-2-1";
+channelsnames[2095]="C+ DCINE";
+channels[2095]="S30.0W-49-4-43";
+channelsnames[2096]="CANAL+1 ...30";
+channels[2096]="S30.0W-49-4-3";
+channelsnames[2097]="FOX";
+channels[2097]="S30.0W-49-4-21";
+channelsnames[2098]="AXN";
+channels[2098]="S30.0W-49-4-22";
+channelsnames[2099]="FOX CRIME";
+channels[2099]="S30.0W-49-4-27";
+channelsnames[2100]="AXN WHITE";
+channels[2100]="S30.0W-49-4-28";
+channelsnames[2101]="C+ ACCIÓN";
+channels[2101]="S30.0W-49-4-41";
+channelsnames[2102]="C+ COMEDIA";
+channels[2102]="S30.0W-49-4-42";
+channelsnames[2103]="EL GARAGE TV";
+channels[2103]="S30.0W-49-4-64";
+channelsnames[2104]="NOVA";
+channels[2104]="S30.0W-49-4-95";
+channelsnames[2105]="Paquetes";
+channels[2105]="S30.0W-49-4-1001";
+channelsnames[2106]="C+LIGA MULTI";
+channels[2106]="S30.0W-49-6-52";
+channelsnames[2107]="C+ TOROS";
+channels[2107]="S30.0W-49-6-67";
+channelsnames[2108]="TAQUILLA 5";
+channels[2108]="S30.0W-49-6-125";
+channelsnames[2109]="TAQUILLA 6";
+channels[2109]="S30.0W-49-6-126";
+channelsnames[2110]="TAQUILLA 7";
+channels[2110]="S30.0W-49-6-127";
+channelsnames[2111]="TAQUILLA 8";
+channels[2111]="S30.0W-49-6-128";
+channelsnames[2112]="TAQUILLAX";
+channels[2112]="S30.0W-49-6-131";
+channelsnames[2113]="TAQUILLAXX";
+channels[2113]="S30.0W-49-6-132";
+channelsnames[2114]="TAQ XXHARD";
+channels[2114]="S30.0W-49-6-133";
+channelsnames[2115]="MULTI-X (1)";
+channels[2115]="S30.0W-49-6-136";
+channelsnames[2116]="MULTI-X (2)";
+channels[2116]="S30.0W-49-6-137";
+channelsnames[2117]="C+LCampeones";
+channels[2117]="S30.0W-49-6-141";
+channelsnames[2118]="C+LCampeon2";
+channels[2118]="S30.0W-49-6-142";
+channelsnames[2119]="C+LCampeon3";
+channels[2119]="S30.0W-49-6-143";
+channelsnames[2120]="MULTIDEP.6";
+channels[2120]="S30.0W-49-6-195";
+channelsnames[2121]="MULTIDEP.7";
+channels[2121]="S30.0W-49-6-196";
+channelsnames[2122]="PUBLIACTIVA";
+channels[2122]="S30.0W-49-6-347";
+channelsnames[2123]="TVCine 2";
+channels[2123]="S30.0W-54-42-700";
+channelsnames[2124]="Nickelodeon";
+channels[2124]="S30.0W-54-42-701";
+channelsnames[2125]="TVCine 3";
+channels[2125]="S30.0W-54-42-706";
+channelsnames[2126]="TVCine 1";
+channels[2126]="S30.0W-54-42-707";
+channelsnames[2127]="TVCine 4";
+channels[2127]="S30.0W-54-42-709";
+channelsnames[2128]="MOV";
+channels[2128]="S30.0W-54-42-711";
+channelsnames[2129]="TVE Internacional";
+channels[2129]="S30.0W-54-42-713";
+channelsnames[2130]="National Geographic";
+channels[2130]="S30.0W-54-42-714";
+channelsnames[2131]="TV Globo Portugal";
+channels[2131]="S30.0W-54-42-904";
+channelsnames[2132]="RTP Madeira";
+channels[2132]="S30.0W-54-42-935";
+channelsnames[2133]="Canal de Teste";
+channels[2133]="S30.0W-54-36-1";
+channelsnames[2134]="RTP Informação";
+channels[2134]="S30.0W-54-36-101";
+channelsnames[2135]="Panda Biggs";
+channels[2135]="S30.0W-54-36-102";
+channelsnames[2136]="Canal de Teste";
+channels[2136]="S30.0W-54-36-111";
+channelsnames[2137]="Canal Panda";
+channels[2137]="S30.0W-54-36-708";
+channelsnames[2138]="SIC Notícias";
+channels[2138]="S30.0W-54-36-801";
+channelsnames[2139]="RTP 1";
+channels[2139]="S30.0W-54-36-811";
+channelsnames[2140]="RTP 2";
+channels[2140]="S30.0W-54-36-812";
+channelsnames[2141]="TVI";
+channels[2141]="S30.0W-54-36-814";
+channelsnames[2142]="Sport TV Golfe";
+channels[2142]="S30.0W-54-37-219";
+channelsnames[2143]="Eurosport News";
+channels[2143]="S30.0W-54-37-227";
+channelsnames[2144]="TVE 24h";
+channels[2144]="S30.0W-54-37-228";
+channelsnames[2145]="EuroNews";
+channels[2145]="S30.0W-54-37-702";
+channelsnames[2146]="SIC Mulher";
+channels[2146]="S30.0W-54-37-703";
+channelsnames[2147]="TLC";
+channels[2147]="S30.0W-54-37-704";
+channelsnames[2148]="France 24";
+channels[2148]="S30.0W-54-37-720";
+channelsnames[2149]="Hot";
+channels[2149]="S30.0W-54-37-831";
+channelsnames[2150]="SLIDE TSCS2";
+channels[2150]="S30.0W-54-37-961";
+channelsnames[2151]="CNN";
+channels[2151]="S30.0W-54-37-962";
+channelsnames[2152]="Mezzo";
+channels[2152]="S30.0W-54-37-965";
+channelsnames[2153]="SKY News";
+channels[2153]="S30.0W-54-37-966";
+channelsnames[2154]="MEZZO";
+channels[2154]="S30.0W-54-37-2000";
+channelsnames[2155]="BBC WORLD";
+channels[2155]="S30.0W-54-37-2001";
+channelsnames[2156]="CNN INT";
+channels[2156]="S30.0W-54-37-2002";
+channelsnames[2157]="CNBC";
+channels[2157]="S30.0W-54-37-2005";
+channelsnames[2158]="EURONEWS";
+channels[2158]="S30.0W-54-37-2006";
+channelsnames[2159]="FRANCE 24 ENG";
+channels[2159]="S30.0W-54-37-2007";
+channelsnames[2160]="NG_DVR_5.4";
+channels[2160]="S30.0W-54-38-19";
+channelsnames[2161]="NG_Zapper_3.8";
+channels[2161]="S30.0W-54-38-20";
+channelsnames[2162]="NG_DVR_3.8";
+channels[2162]="S30.0W-54-38-21";
+channelsnames[2163]="NG_ZAPPER_5.8";
+channels[2163]="S30.0W-54-38-22";
+channelsnames[2164]="NG_DVR_5.8";
+channels[2164]="S30.0W-54-38-23";
+channelsnames[2165]="Playboy TV";
+channels[2165]="S30.0W-54-38-169";
+channelsnames[2166]="Sport TV 2";
+channels[2166]="S30.0W-54-38-301";
+channelsnames[2167]="Canal de teste";
+channels[2167]="S30.0W-54-38-302";
+channelsnames[2168]="AR TV";
+channels[2168]="S30.0W-54-38-303";
+channelsnames[2169]="Globo";
+channels[2169]="S30.0W-54-38-304";
+channelsnames[2170]="TVI 24";
+channels[2170]="S30.0W-54-38-305";
+channelsnames[2171]="Sport TV 3";
+channels[2171]="S30.0W-54-38-306";
+channelsnames[2172]="TV Record";
+channels[2172]="S30.0W-54-38-308";
+channelsnames[2173]="Sport TV Live";
+channels[2173]="S30.0W-54-38-309";
+channelsnames[2174]="RTP Memória";
+channels[2174]="S30.0W-54-38-310";
+channelsnames[2175]="Eurosport";
+channels[2175]="S30.0W-54-38-312";
+channelsnames[2176]="Hollywood";
+channels[2176]="S30.0W-54-38-313";
+channelsnames[2177]="MOV";
+channels[2177]="S30.0W-54-38-314";
+channelsnames[2178]="Canal de Teste";
+channels[2178]="S30.0W-54-38-701";
+channelsnames[2179]="SIC Radical";
+channels[2179]="S30.0W-54-40-502";
+channelsnames[2180]="Panda Biggs";
+channels[2180]="S30.0W-54-40-503";
+channelsnames[2181]="BBC Entertainment";
+channels[2181]="S30.0W-54-40-506";
+channelsnames[2182]="E! Entertainment";
+channels[2182]="S30.0W-54-40-507";
+channelsnames[2183]="Baby First";
+channels[2183]="S30.0W-54-40-509";
+channelsnames[2184]="Caça e Pesca";
+channels[2184]="S30.0W-54-40-933";
+channelsnames[2185]="Disney Junior";
+channels[2185]="S30.0W-54-40-939";
+channelsnames[2186]="CBS Reality";
+channels[2186]="S30.0W-54-41-604";
+channelsnames[2187]="RTP Açores";
+channels[2187]="S30.0W-54-41-605";
+channelsnames[2188]="NBA TV";
+channels[2188]="S30.0W-54-41-609";
+channelsnames[2189]="Canção Nova";
+channels[2189]="S30.0W-54-41-610";
+channelsnames[2190]="Novo SD TSCS6- 01";
+channels[2190]="S30.0W-54-41-611";
+channelsnames[2191]="Cartoon / TCM";
+channels[2191]="S30.0W-54-41-613";
+channelsnames[2192]="Canal Q";
+channels[2192]="S30.0W-54-41-959";
+channelsnames[2193]="C+ YOMVI";
+channels[2193]="S30.0W-49-9-7";
+channelsnames[2194]="COSMOPOLITAN";
+channels[2194]="S30.0W-49-9-26";
+channelsnames[2195]="HISTORIA";
+channels[2195]="S30.0W-49-9-35";
+channelsnames[2196]="BIO";
+channels[2196]="S30.0W-49-9-36";
+channelsnames[2197]="CINEMAGIC";
+channels[2197]="S30.0W-49-9-44";
+channelsnames[2198]="DCINEESPAÑOL";
+channels[2198]="S30.0W-49-9-48";
+channelsnames[2199]="EUROSPORT";
+channels[2199]="S30.0W-49-9-60";
+channelsnames[2200]="CAZA Y PESCA";
+channels[2200]="S30.0W-49-9-66";
+channelsnames[2201]="DISNEY XD";
+channels[2201]="S30.0W-49-9-72";
+channelsnames[2202]="CINEMAGIC";
+channels[2202]="S30.0W-49-9-73";
+channelsnames[2203]="24 HORAS";
+channels[2203]="S30.0W-49-9-100";
+channelsnames[2204]="BLOOMBERG";
+channels[2204]="S30.0W-49-9-102";
+channelsnames[2205]="Eventos";
+channels[2205]="S30.0W-49-9-500";
+channelsnames[2206]="Caça e Pesca";
+channels[2206]="S30.0W-49-9-3000";
+channelsnames[2207]="Eurosport";
+channels[2207]="S30.0W-49-9-3002";
+channelsnames[2208]="Canal de História";
+channels[2208]="S30.0W-49-9-3003";
+channelsnames[2209]="Bloomberg";
+channels[2209]="S30.0W-49-9-3004";
+channelsnames[2210]="TVE 24h";
+channels[2210]="S30.0W-49-9-3006";
+channelsnames[2211]="MTV ESPAÑA";
+channels[2211]="S30.0W-49-5-29";
+channelsnames[2212]="LTC";
+channels[2212]="S30.0W-49-5-39";
+channelsnames[2213]="BARÇA TV";
+channels[2213]="S30.0W-49-5-63";
+channelsnames[2214]="MOTORS TV";
+channels[2214]="S30.0W-49-5-65";
+channelsnames[2215]="DIVINITY";
+channels[2215]="S30.0W-49-5-90";
+channelsnames[2216]="ENERGY";
+channels[2216]="S30.0W-49-5-91";
+channelsnames[2217]="FOX NEWS";
+channels[2217]="S30.0W-49-5-105";
+channelsnames[2218]="C.ESTRELLAS";
+channels[2218]="S30.0W-49-5-117";
+channelsnames[2219]="C+ MultiCINE";
+channels[2219]="S30.0W-49-8-6";
+channelsnames[2220]="C+ MultiCINE";
+channels[2220]="S30.0W-49-8-40";
+channelsnames[2221]="C+ MultiDEP";
+channels[2221]="S30.0W-49-8-50";
+channelsnames[2222]="NICKELODEON";
+channels[2222]="S30.0W-49-8-74";
+channelsnames[2223]="TAQUILLA 1";
+channels[2223]="S30.0W-49-8-121";
+channelsnames[2224]="TAQUILLA 2";
+channels[2224]="S30.0W-49-8-122";
+channelsnames[2225]="TAQUILLA 3";
+channels[2225]="S30.0W-49-8-123";
+channelsnames[2226]="TAQUILLA 4";
+channels[2226]="S30.0W-49-8-124";
+channelsnames[2227]="TAQUILLA X";
+channels[2227]="S30.0W-49-8-139";
+channelsnames[2228]="MULTIDEP.4";
+channels[2228]="S30.0W-49-8-193";
+channelsnames[3000]="TV3 Lithuania";
+channels[3000]="S5.0E-85-14-6340";
+channelsnames[3001]="TV6 Lithuania";
+channels[3001]="S5.0E-85-14-6350";
+channelsnames[3002]="TV8 Lithuania";
+channels[3002]="S5.0E-85-18-6890";
+channelsnames[3003]="LNK";
+channels[3003]="S5.0E-85-52-2910";
+channelsnames[3004]="LTV1";
+channels[3004]="S5.0E-85-14-6390";
+channelsnames[3005]="LTV World";
+channels[3005]="S5.0E-85-2-240";
+channelsnames[3006]="LTV7";
+channels[3006]="S5.0E-85-13-6295";
+channelsnames[3007]="Kidzone";
+channels[3007]="S5.0E-85-14-6370";
+channelsnames[3008]="TV1 Lithuania";
+channels[3008]="S5.0E-85-52-2900";
+channelsnames[3009]="Lietuvos Rytas TV";
+channels[3009]="S5.0E-85-52-2920";
+channelsnames[3010]="BTV";
+channels[3010]="S5.0E-85-52-2930";
+channelsnames[3011]="RTR Planeta";
+channels[3011]="S5.0E-86-24-4420";
+channelsnames[3012]="NTV Mir Lithuania";
+channels[3012]="S5.0E-85-13-6270";
+channelsnames[3013]="REN-TV LIETUVA";
+channels[3013]="S5.0E-85-13-6240";
+channelsnames[3014]="CTC Baltic";
+channels[3014]="S5.0E-85-18-6850";
+channelsnames[3015]="1st Baltic Ch. Lithuania";
+channels[3015]="S5.0E-85-13-6220";
+channelsnames[3016]="ENGLISH CLUB TV";
+channels[3016]="S5.0E-85-15-6575";
+channelsnames[3017]="ATR";
+channels[3017]="S5.0E-85-17-6950";
+channelsnames[3018]="GLAS";
+channels[3018]="S5.0E-85-12-6130";
+channelsnames[3019]="TV SALE UKR";
+channels[3019]="S5.0E-85-12-6160";
+channelsnames[3020]="Viasat Explore";
+channels[3020]="S5.0E-86-9-7050";
+channelsnames[3021]="Viasat History";
+channels[3021]="S5.0E-86-8-6050";
+channelsnames[3022]="Viasat Nature East";
+channels[3022]="S5.0E-86-8-6030";
+channelsnames[3023]="Ohota Rybalka";
+channels[3023]="S5.0E-86-22-3630";
+channelsnames[3024]="National Geographic (S)";
+channels[3024]="S5.0E-86-22-3690";
+channelsnames[3025]="History Channel";
+channels[3025]="S5.0E-86-22-3620";
+channelsnames[3026]="Nick No/VH1 Classic";
+channels[3026]="S5.0E-86-24-4460";
+channelsnames[3027]="TV6 (N)";
+channels[3027]="S5.0E-86-4-2170";
+channelsnames[3028]="TV1000 Action East";
+channels[3028]="S5.0E-86-21-3410";
+channelsnames[3029]="TV1000 Ru Kino";
+channels[3029]="S5.0E-86-9-7080";
+channelsnames[3030]="Cartoon Network EE";
+channels[3030]="S5.0E-86-22-3610";
+channelsnames[3031]="Viasat Sport Baltic";
+channels[3031]="S5.0E-86-8-6060";
+channelsnames[3032]="Viasat Golf";
+channels[3032]="S5.0E-86-30-1860";
+channelsnames[3033]="Disney Channel";
+channels[3033]="S5.0E-86-5-3180";
+channelsnames[3034]="Disney XD";
+channels[3034]="S5.0E-86-5-3190";
+channelsnames[3035]="Disney Junior";
+channels[3035]="S5.0E-86-3-1130";
+channelsnames[3036]="Nickelodeon (S)";
+channels[3036]="S5.0E-86-5-3160";
+channelsnames[3037]="Nick JR / VH1";
+channels[3037]="S5.0E-85-18-6880";
+channelsnames[3038]="MTV SE";
+channels[3038]="S5.0E-86-4-2150";
+channelsnames[3039]="E!";
+channels[3039]="S5.0E-86-5-3100";
+channelsnames[3040]="1st Baltic Music channel";
+channels[3040]="S5.0E-85-13-6230";
+channelsnames[3041]="BBC World";
+channels[3041]="S5.0E-86-4-2120";
+channelsnames[3042]="CNN";
+channels[3042]="S5.0E-86-9-7040";
+channelsnames[3043]="Russia Today";
+channels[3043]="S5.0E-86-6-4080";
+channelsnames[3044]="CNBC";
+channels[3044]="S5.0E-86-6-4180";
+channelsnames[3045]="Viasat Xtra 1";
+channels[3045]="S5.0E-86-10-8000";
+channelsnames[3046]="Viasat Xtra 2";
+channels[3046]="S5.0E-86-10-8010";
+channelsnames[3047]="Viasat Xtra 3";
+channels[3047]="S5.0E-86-10-8020";
+channelsnames[3048]="Viasat Xtra 4";
+channels[3048]="S5.0E-86-10-8030";
+channelsnames[3049]="Viasat Xtra 5";
+channels[3049]="S5.0E-86-10-8040";
+channelsnames[3050]="Viasat Xtra 6";
+channels[3050]="S5.0E-86-10-8080";
+channelsnames[3051]="Viasat Xtra 7";
+channels[3051]="S5.0E-86-10-8050";
+channelsnames[3052]="Viasat Xtra PL1";
+channels[3052]="S5.0E-86-10-7900";
+channelsnames[3053]="Viasat Xtra PL2";
+channels[3053]="S5.0E-86-10-7910";
+channelsnames[3054]="Viasat Xtra PL3";
+channels[3054]="S5.0E-86-10-7920";
+channelsnames[3055]="Viasat Xtra PL4";
+channels[3055]="S5.0E-86-10-7930";
+channelsnames[3056]="Viasat Xtra PL5";
+channels[3056]="S5.0E-86-10-7940";
+channelsnames[3057]="Viasat Xtra PL6";
+channels[3057]="S5.0E-86-10-7950";
+channelsnames[3058]="Viasat Xtra PL7";
+channels[3058]="S5.0E-86-10-7960";
+channelsnames[3059]="Viasat Xtra NHL1";
+channels[3059]="S5.0E-86-10-7970";
+channelsnames[3060]="Viasat Xtra NHL2";
+channels[3060]="S5.0E-86-10-7980";
+channelsnames[3061]="Viasat Xtra NHL3";
+channels[3061]="S5.0E-86-10-7990";
+channelsnames[3062]="Viasat Xtra NHL4";
+channels[3062]="S5.0E-86-10-8150";
+channelsnames[3063]="Viasat Xtra NHL5";
+channels[3063]="S5.0E-86-10-8160";
+channelsnames[3064]="Viasat Xtra NHL6";
+channels[3064]="S5.0E-86-10-8170";
+channelsnames[3065]="Viasat Xtra NHL7";
+channels[3065]="S5.0E-86-10-8180";
+channelsnames[3066]="Nature/Crime/Playboy";
+channels[3066]="S5.0E-86-4-2110";
+channelsnames[3100]="Romantica 2";
+channels[3100]="S5.0E-0-0-8";
+channelsnames[3101]="Absolute Radio";
+channels[3101]="S5.0E-1-1-6";
+channelsnames[3200]="NRK1";
+channels[3200]="S5.0E-86-28-1501";
+channelsnames[3201]="NRK2";
+channels[3201]="S5.0E-86-28-1502";
+channelsnames[3202]="NRK Super / NRK3";
+channels[3202]="S5.0E-86-28-3510";
+channelsnames[3203]="DR Ultra";
+channels[3203]="S5.0E-86-30-1800";
+channelsnames[3204]="TV2 Zulu";
+channels[3204]="S5.0E-86-30-1810";
+channelsnames[3205]="TV2 Charlie";
+channels[3205]="S5.0E-86-30-1820";
+channelsnames[3206]="TV3 SPORT 1";
+channels[3206]="S5.0E-86-30-1830";
+channelsnames[3207]="TV 2 Sportkanalen";
+channels[3207]="S5.0E-86-30-1840";
+channelsnames[3208]="TV2 Fri";
+channels[3208]="S5.0E-86-30-1850";
+channelsnames[3209]="TV2 NEWS";
+channels[3209]="S5.0E-86-30-1870";
+channelsnames[3210]="DR Ramasjang";
+channels[3210]="S5.0E-86-30-1880";
+channelsnames[3211]="DR K";
+channels[3211]="S5.0E-86-30-1890";
+channelsnames[3212]="TV3 Latvia";
+channels[3212]="S5.0E-85-14-6300";
+channelsnames[3213]="3+";
+channels[3213]="S5.0E-85-14-6310";
+channelsnames[3214]="Kanals 2";
+channels[3214]="S5.0E-85-14-6320";
+channelsnames[3215]="TV3 Estonia";
+channels[3215]="S5.0E-85-14-6330";
+channelsnames[3216]="TV6 Latvia";
+channels[3216]="S5.0E-85-14-6335";
+channelsnames[3217]="Star FM LV";
+channels[3217]="S5.0E-85-14-6345";
+channelsnames[3218]="TV6 Estonia";
+channels[3218]="S5.0E-85-14-6355";
+channelsnames[3219]="LNT Latvia";
+channels[3219]="S5.0E-85-14-6360";
+channelsnames[3220]="ETV";
+channels[3220]="S5.0E-85-14-6380";
+channelsnames[3221]="UR1";
+channels[3221]="S5.0E-85-12-6100";
+channelsnames[3222]="UR2";
+channels[3222]="S5.0E-85-12-6102";
+channelsnames[3223]="UR3";
+channels[3223]="S5.0E-85-12-6104";
+channelsnames[3224]="RUI";
+channels[3224]="S5.0E-85-12-6106";
+channelsnames[3225]="TET";
+channels[3225]="S5.0E-85-12-6110";
+channelsnames[3226]="2+2";
+channels[3226]="S5.0E-85-12-6120";
+channelsnames[3227]="1+1 International";
+channels[3227]="S5.0E-85-12-6125";
+channelsnames[3228]="JN1 - Jewish news one";
+channels[3228]="S5.0E-85-12-6140";
+channelsnames[3229]="MALYATKO TV";
+channels[3229]="S5.0E-85-12-6150";
+channelsnames[3230]="RADA";
+channels[3230]="S5.0E-85-12-6170";
+channelsnames[3231]="NTA";
+channels[3231]="S5.0E-85-12-6180";
+channelsnames[3232]="RADIO ERA";
+channels[3232]="S5.0E-85-12-6186";
+channelsnames[3233]="Channel 5 (Ukraine)";
+channels[3233]="S5.0E-85-12-6190";
+channelsnames[3234]="Love Radio";
+channels[3234]="S5.0E-85-12-6196";
+channelsnames[3235]="NTV";
+channels[3235]="S5.0E-85-2-10";
+channelsnames[3236]="Belsat TV";
+channels[3236]="S5.0E-85-2-200";
+channelsnames[3237]="ATG EU BSS";
+channels[3237]="S5.0E-85-2-210";
+channelsnames[3238]="TVCI new";
+channels[3238]="S5.0E-85-2-220";
+channelsnames[3239]="European Radio for Belarus";
+channels[3239]="S5.0E-85-2-230";
+channelsnames[3240]="K75 International";
+channels[3240]="S5.0E-85-2-260";
+channelsnames[3241]="Dozhd TV";
+channels[3241]="S5.0E-85-2-270";
+channelsnames[3242]="Espreso TV";
+channels[3242]="S5.0E-85-2-280";
+channelsnames[3243]="Viasat Sport Sverige";
+channels[3243]="S5.0E-86-4-2100";
+channelsnames[3244]="TV3+";
+channels[3244]="S5.0E-86-4-2130";
+channelsnames[3245]="Viasat Hockey";
+channels[3245]="S5.0E-86-4-2140";
+channelsnames[3246]="Viasat 4";
+channels[3246]="S5.0E-86-4-2160";
+channelsnames[3247]="TV4 Fakta";
+channels[3247]="S5.0E-86-4-2180";
+channelsnames[3248]="TV3 Sverige";
+channels[3248]="S5.0E-86-3-1100";
+channelsnames[3249]="TV3 Norge";
+channels[3249]="S5.0E-86-3-1110";
+channelsnames[3250]="TV3 Denmark";
+channels[3250]="S5.0E-86-3-1120";
+channelsnames[3251]="Viasat Film";
+channels[3251]="S5.0E-86-3-1140";
+channelsnames[3252]="VFilm Action";
+channels[3252]="S5.0E-86-3-1150";
+channelsnames[3253]="TV6";
+channels[3253]="S5.0E-86-3-1160";
+channelsnames[3254]="Cartoon Network";
+channels[3254]="S5.0E-86-3-1170";
+channelsnames[3255]="VFilm Drama";
+channels[3255]="S5.0E-86-3-1195";
+channelsnames[3256]="1st Baltic Ch. Estonia";
+channels[3256]="S5.0E-85-13-6200";
+channelsnames[3257]="1st Baltic Ch. Latvia";
+channels[3257]="S5.0E-85-13-6210";
+channelsnames[3258]="Mir Baltic";
+channels[3258]="S5.0E-85-13-6260";
+channelsnames[3259]="Radio 101";
+channels[3259]="S5.0E-85-13-6275";
+channelsnames[3260]="VFilm Family";
+channels[3260]="S5.0E-86-5-3110";
+channelsnames[3261]="VFilm Comedy";
+channels[3261]="S5.0E-86-5-3120";
+channelsnames[3262]="VFilm Classic";
+channels[3262]="S5.0E-86-5-3130";
+channelsnames[3263]="Euronews";
+channels[3263]="S5.0E-86-7-5000";
+channelsnames[3264]="NHK World TV";
+channels[3264]="S5.0E-86-7-5010";
+channelsnames[3265]="Kunskapskanalen";
+channels[3265]="S5.0E-86-7-5020";
+channelsnames[3266]="SVTB/SVT24";
+channels[3266]="S5.0E-86-7-5030";
+channelsnames[3267]="Nat Geo Wild";
+channels[3267]="S5.0E-86-7-5080";
+channelsnames[3268]="TV 2 Bliss";
+channels[3268]="S5.0E-86-7-5050";
+channelsnames[3269]="TVNorge";
+channels[3269]="S5.0E-86-7-5040";
+channelsnames[3270]="TV4 Guld";
+channels[3270]="S5.0E-86-7-5060";
+channelsnames[3271]="NRK1 HD";
+channels[3271]="S5.0E-86-28-3515";
+channelsnames[3272]="NRK Tegnspråk";
+channels[3272]="S5.0E-86-28-1516";
+channelsnames[3273]="NRK1 Nordnytt";
+channels[3273]="S5.0E-86-28-1521";
+channelsnames[3274]="NRK1 Nordland";
+channels[3274]="S5.0E-86-28-3502";
+channelsnames[3275]="NRK1 Midtnytt";
+channels[3275]="S5.0E-86-28-3503";
+channelsnames[3276]="NRK1 Møre & Romsdal";
+channels[3276]="S5.0E-86-28-3504";
+channelsnames[3277]="NRK1 Vestlandsrevyen";
+channels[3277]="S5.0E-86-28-3505";
+channelsnames[3278]="NRK1 Rogaland";
+channels[3278]="S5.0E-86-28-3506";
+channelsnames[3279]="NRK1 Sørlandet";
+channels[3279]="S5.0E-86-28-3507";
+channelsnames[3280]="NRK1 Østafjells";
+channels[3280]="S5.0E-86-28-1520";
+channelsnames[3281]="NRK1 Østnytt";
+channels[3281]="S5.0E-86-28-3508";
+channelsnames[3282]="NRK1 Østfold";
+channels[3282]="S5.0E-86-28-3509";
+channelsnames[3283]="NRK P1";
+channels[3283]="S5.0E-86-28-1503";
+channelsnames[3284]="NRK P2";
+channels[3284]="S5.0E-86-28-1504";
+channelsnames[3285]="NRK P3";
+channels[3285]="S5.0E-86-28-1505";
+channelsnames[3286]="NRK Klassisk";
+channels[3286]="S5.0E-86-28-1507";
+channelsnames[3287]="NRK Sami Radio";
+channels[3287]="S5.0E-86-28-1510";
+channelsnames[3288]="NRK mP3";
+channels[3288]="S5.0E-86-28-1515";
+channelsnames[3289]="NRK Alltid Nyheter";
+channels[3289]="S5.0E-86-28-511";
+channelsnames[3290]="NRK P13";
+channels[3290]="S5.0E-86-28-3501";
+channelsnames[3291]="NRK Været til sjøs";
+channels[3291]="S5.0E-86-28-3511";
+channelsnames[3292]="NRK Super";
+channels[3292]="S5.0E-86-28-3513";
+channelsnames[3293]="NRK P1+";
+channels[3293]="S5.0E-86-28-3514";
+channelsnames[3294]="NRK Jazz";
+channels[3294]="S5.0E-86-28-3516";
+channelsnames[3295]="TV 2/Bornholm";
+channels[3295]="S5.0E-86-26-4670";
+channelsnames[3296]="TV 2/Fyn";
+channels[3296]="S5.0E-86-26-4640";
+channelsnames[3297]="TV 2/Lorry";
+channels[3297]="S5.0E-86-26-4660";
+channelsnames[3298]="TV 2/Midt-Vest";
+channels[3298]="S5.0E-86-26-4610";
+channelsnames[3299]="TV 2/Nord";
+channels[3299]="S5.0E-86-26-4600";
+channelsnames[3300]="TV 2/Syd";
+channels[3300]="S5.0E-86-26-4630";
+channelsnames[3301]="TV 2/Øst";
+channels[3301]="S5.0E-86-26-4650";
+channelsnames[3302]="TV 2/Østjylland";
+channels[3302]="S5.0E-86-26-4620";
+channelsnames[3303]="Bandit";
+channels[3303]="S5.0E-86-26-4690";
+channelsnames[3304]="Rix FM";
+channels[3304]="S5.0E-86-26-4692";
+channelsnames[3305]="P4 Lyden av Norge";
+channels[3305]="S5.0E-86-26-4694";
+channelsnames[3306]="Lugna Favoriter";
+channels[3306]="S5.0E-86-26-4696";
+channelsnames[3307]="Kanal 2";
+channels[3307]="S5.0E-85-52-2950";
+channelsnames[3308]="Kanal 11";
+channels[3308]="S5.0E-85-52-2960";
+channelsnames[3309]="ETV2";
+channels[3309]="S5.0E-85-52-2970";
+channelsnames[3310]="Golden Oldies";
+channels[3310]="S5.0E-86-22-3716";
+channelsnames[3311]="Jazz";
+channels[3311]="S5.0E-86-22-3718";
+channelsnames[3312]="Classic";
+channels[3312]="S5.0E-86-22-3722";
+channelsnames[3313]="Disco";
+channels[3313]="S5.0E-86-22-3724";
+channelsnames[3314]="Soul R&b";
+channels[3314]="S5.0E-86-22-3728";
+channelsnames[3315]="Super 80's";
+channels[3315]="S5.0E-86-22-3732";
+channelsnames[3316]="TV4";
+channels[3316]="S5.0E-86-22-3670";
+channelsnames[3317]="Comedy Central";
+channels[3317]="S5.0E-86-22-3660";
+channelsnames[3318]="Kanal 5";
+channels[3318]="S5.0E-86-22-3650";
+channelsnames[3319]="National Geographic (N)";
+channels[3319]="S5.0E-86-22-3640";
+channelsnames[3320]="TV10";
+channels[3320]="S5.0E-86-23-3800";
+channelsnames[3321]="Viasat Fotball";
+channels[3321]="S5.0E-86-23-3830";
+channelsnames[3322]="Boomerang";
+channels[3322]="S5.0E-86-23-3850";
+channelsnames[3323]="TV2 Zebra";
+channels[3323]="S5.0E-86-23-3820";
+channelsnames[3324]="TV4 Komedi";
+channels[3324]="S5.0E-86-23-3890";
+channelsnames[3325]="TV12";
+channels[3325]="S5.0E-86-23-3840";
+channelsnames[3326]="Kanal 5";
+channels[3326]="S5.0E-86-23-3880";
+channelsnames[3327]="TV4 Fakta XL";
+channels[3327]="S5.0E-86-23-3860";
+channelsnames[3328]="TV 2 Norge";
+channels[3328]="S5.0E-86-23-3810";
+channelsnames[3329]="TV1000 Premium";
+channels[3329]="S5.0E-85-18-6800";
+channelsnames[3330]="Lithuanian TV1";
+channels[3330]="S5.0E-85-18-6810";
+channelsnames[3331]="CANAL8 Sport";
+channels[3331]="S5.0E-86-24-4410";
+channelsnames[3332]="TV 2 Nyhetskanalen";
+channels[3332]="S5.0E-86-24-4450";
+channelsnames[3333]="dk4";
+channels[3333]="S5.0E-86-24-4470";
+channelsnames[3334]="TVN Chile Nordic";
+channels[3334]="S5.0E-86-6-4000";
+channelsnames[3335]="Visjon Norge";
+channels[3335]="S5.0E-86-6-4010";
+channelsnames[3336]="Kanal 10";
+channels[3336]="S5.0E-86-6-4050";
+channelsnames[3337]="GOD Channel";
+channels[3337]="S5.0E-86-6-4060";
+channelsnames[3338]="Viasat Xtra 8";
+channels[3338]="S5.0E-86-10-8110";
+channelsnames[3339]="Viasat Xtra 9";
+channels[3339]="S5.0E-86-10-8130";
+channelsnames[3340]="Viasat Xtra NHL8";
+channels[3340]="S5.0E-86-10-8140";
+channelsnames[3341]="TV11";
+channels[3341]="S5.0E-86-8-6000";
+channelsnames[3342]="TV 2 Filmkanalen";
+channels[3342]="S5.0E-86-8-6010";
+channelsnames[3343]="Ticket";
+channels[3343]="S5.0E-86-8-6020";
+channelsnames[3344]="MTV NO";
+channels[3344]="S5.0E-86-8-6040";
+channelsnames[3345]="Sjuan";
+channels[3345]="S5.0E-86-8-6080";
+channelsnames[3346]="TV4 Film";
+channels[3346]="S5.0E-86-8-6090";
+channelsnames[3347]="FEM";
+channels[3347]="S5.0E-86-21-3400";
+channelsnames[3348]="Viasat Fotboll";
+channels[3348]="S5.0E-86-21-3420";
+channelsnames[3349]="Nickelodeon DK / MTV Hits";
+channels[3349]="S5.0E-86-21-3450";
+channelsnames[3350]="Viasat Motor";
+channels[3350]="S5.0E-86-21-3430";
+channelsnames[3351]="Viasat Sport Norge";
+channels[3351]="S5.0E-86-21-3440";
+channelsnames[3352]="DR1";
+channels[3352]="S5.0E-86-9-7010";
+channelsnames[3353]="DR2";
+channels[3353]="S5.0E-86-9-7020";
+channelsnames[3354]="TV8";
+channels[3354]="S5.0E-86-9-7030";
+channelsnames[3355]="TV3 Puls";
+channels[3355]="S5.0E-86-9-7060";
+channelsnames[3356]="MTV DK";
+channels[3356]="S5.0E-86-9-7070";
+channelsnames[3357]="DR P1";
+channels[3357]="S5.0E-86-9-7210";
+channelsnames[3358]="DR P3";
+channels[3358]="S5.0E-86-9-7212";
+channelsnames[3359]="DR Klassisk";
+channels[3359]="S5.0E-86-9-7214";
+channelsnames[3360]="Emmanuel";
+channels[3360]="S5.0E-85-15-6500";
+channelsnames[3361]="NEWS ONE";
+channels[3361]="S5.0E-85-15-6510";
+channelsnames[3362]="1 Auto";
+channels[3362]="S5.0E-85-15-6520";
+channelsnames[3363]="RU MUSIC";
+channels[3363]="S5.0E-85-15-6530";
+channelsnames[3364]="Ukrainian Fashion";
+channels[3364]="S5.0E-85-15-6540";
+channelsnames[3365]="A-One UA";
+channels[3365]="S5.0E-85-15-6545";
+channelsnames[3366]="Dobro TV";
+channels[3366]="S5.0E-85-15-6555";
+channelsnames[3367]="Star TV UKR";
+channels[3367]="S5.0E-85-15-6560";
+channelsnames[3368]="PogodaTV";
+channels[3368]="S5.0E-85-15-6565";
+channelsnames[3369]="Business";
+channels[3369]="S5.0E-85-15-6580";
+channelsnames[3370]="YHT";
+channels[3370]="S5.0E-85-15-6585";
+channelsnames[3371]="SHOPping TV";
+channels[3371]="S5.0E-85-15-6590";
+channelsnames[3372]="SVT1 Nord";
+channels[3372]="S5.0E-86-11-2450";
+channelsnames[3373]="SVT1 Västerbotten";
+channels[3373]="S5.0E-86-11-2460";
+channelsnames[3374]="SVT1 Mitt";
+channels[3374]="S5.0E-86-11-2470";
+channelsnames[3375]="SVT1 Gävledala";
+channels[3375]="S5.0E-86-11-2480";
+channelsnames[3376]="SVT1 Värmland";
+channels[3376]="S5.0E-86-11-2490";
+channelsnames[3377]="SVT1 Tvärs";
+channels[3377]="S5.0E-86-11-2500";
+channelsnames[3378]="SVT1";
+channels[3378]="S5.0E-86-11-2510";
+channelsnames[3379]="SVT1 Öst";
+channels[3379]="S5.0E-86-11-2520";
+channelsnames[3380]="SVT1 Väst";
+channels[3380]="S5.0E-86-11-2530";
+channelsnames[3381]="SVT1 Småland";
+channels[3381]="S5.0E-86-11-2540";
+channelsnames[3382]="SVT1 Syd";
+channels[3382]="S5.0E-86-11-2550";
+channelsnames[3383]="SVT2 Nord";
+channels[3383]="S5.0E-86-11-2300";
+channelsnames[3384]="SVT2 Västerbotten";
+channels[3384]="S5.0E-86-11-2310";
+channelsnames[3385]="SVT2 Mitt";
+channels[3385]="S5.0E-86-11-2320";
+channelsnames[3386]="SVT2 Gävledala";
+channels[3386]="S5.0E-86-11-2330";
+channelsnames[3387]="SVT2 Värmland";
+channels[3387]="S5.0E-86-11-2340";
+channelsnames[3388]="SVT2 Tvärs";
+channels[3388]="S5.0E-86-11-2350";
+channelsnames[3389]="SVT2";
+channels[3389]="S5.0E-86-11-2360";
+channelsnames[3390]="SVT2 Öst";
+channels[3390]="S5.0E-86-11-2370";
+channelsnames[3391]="SVT2 Väst";
+channels[3391]="S5.0E-86-11-2380";
+channelsnames[3392]="SVT2 Småland";
+channels[3392]="S5.0E-86-11-2390";
+channelsnames[3393]="SVT2 Syd";
+channels[3393]="S5.0E-86-11-2400";
+channelsnames[3394]="Pro BCE";
+channels[3394]="S5.0E-85-17-6960";
+channelsnames[3395]="LALE";
+channels[3395]="S5.0E-85-17-6970";
+channelsnames[3500]="DISCOVERY CHANNEL";
+channels[3500]="S42.0E-42-55000-3601";
+channelsnames[3501]="TV2";
+channels[3501]="S42.0E-66-3-1303";
+channelsnames[3502]="TRT BELGESEL";
+channels[3502]="S42.0E-1-1-18";
+channelsnames[3503]="KIDZ/ANIMEZ";
+channels[3503]="S42.0E-42-55-100";
+channelsnames[3504]="SPORTS TV";
+channels[3504]="S42.0E-42-502-14";
+channelsnames[3505]="DUBLE TV";
+channels[3505]="S42.0E-42-55-2800";
+channelsnames[3506]="WORLD TRAVEL CHANNEL";
+channels[3506]="S42.0E-1070-41901-50702";
+channelsnames[3507]="CNN TÜRK OBSOLETE";
+channels[3507]="S42.0E-66-3-1";
+channelsnames[3508]="EURO D OBSOLETE";
+channels[3508]="S42.0E-66-3-3";
+channelsnames[3509]="ONE SUPER TV OBSOLETE";
+channels[3509]="S42.0E-66-3-4";
+channelsnames[3510]="BULUT TV OBSOLETE";
+channels[3510]="S42.0E-66-3-5";
+channelsnames[3511]="SUPERPOP TV OBSOLETE";
+channels[3511]="S42.0E-66-3-6";
+channelsnames[3512]="KARIŞIK TV OBSOLETE";
+channels[3512]="S42.0E-66-3-7";
+channelsnames[3513]="PİKSEL TV OBSOLETE";
+channels[3513]="S42.0E-66-3-8";
+channelsnames[3514]="ONE BAL TV OBSOLETE";
+channels[3514]="S42.0E-66-3-10";
+channelsnames[3515]="CNN TÜRK RADYO OBSOLETE";
+channels[3515]="S42.0E-66-3-11";
+channelsnames[3516]="RADYO D OBSOLETE";
+channels[3516]="S42.0E-66-3-12";
+channelsnames[3517]="MCJ MEDIASA";
+channels[3517]="S42.0E-42-1089-2";
+channelsnames[3518]="SLOW TÜRK OBSOLETE";
+channels[3518]="S42.0E-66-3-13";
+channelsnames[3519]="BEST FM OBSOLETE";
+channels[3519]="S42.0E-66-3-14";
+channelsnames[3520]="PMC TV OBSOLETE";
+channels[3520]="S42.0E-66-3-32";
+channelsnames[3521]="MÜZİK TÜRK OBSOLETE";
+channels[3521]="S42.0E-66-3-33";
+channelsnames[3522]="HAZAN TV OBSOLETE";
+channels[3522]="S42.0E-66-3-37";
+channelsnames[3523]="DHA FEED OBSOLETE";
+channels[3523]="S42.0E-66-3-41";
+channelsnames[3524]="PLANET ÇOCUK OBSOLETE";
+channels[3524]="S42.0E-66-3-43";
+channelsnames[3525]="PLANET PEMBE OBSOLETE";
+channels[3525]="S42.0E-66-3-44";
+channelsnames[3526]="PLANET MUTFAK OBSOLETE";
+channels[3526]="S42.0E-66-3-45";
+channelsnames[3527]="PLANET TÜRK OBSOLETE";
+channels[3527]="S42.0E-66-3-46";
+channelsnames[3528]="NİSA TV OBSOLETE";
+channels[3528]="S42.0E-66-3-47";
+channelsnames[3529]="MEDYA TV OBSOLETE";
+channels[3529]="S42.0E-66-3-48";
+channelsnames[3530]="DOGU TV OBSOLETE";
+channels[3530]="S42.0E-66-3-49";
+channelsnames[3531]="SERVICE 1 OBSOLETE";
+channels[3531]="S42.0E-66-3-81";
+channelsnames[3532]="SERVICE 2 OBSOLETE";
+channels[3532]="S42.0E-66-3-82";
+channelsnames[3533]="SERVICE 3 OBSOLETE";
+channels[3533]="S42.0E-66-3-83";
+channelsnames[3534]="SERVICE 4 OBSOLETE";
+channels[3534]="S42.0E-66-3-84";
+channelsnames[3535]="TRT 1";
+channels[3535]="S42.0E-1-1-1";
+channelsnames[3536]="RADYO 1";
+channels[3536]="S42.0E-1-1-2";
+channelsnames[3537]="RADYO 3";
+channels[3537]="S42.0E-1-1-3";
+channelsnames[3538]="RADYO GAP";
+channels[3538]="S42.0E-1-1-4";
+channelsnames[3539]="TRT HABER";
+channels[3539]="S42.0E-1-1-5";
+channelsnames[3540]="TRT FM";
+channels[3540]="S42.0E-1-1-6";
+channelsnames[3541]="RADYO 4";
+channels[3541]="S42.0E-1-1-7";
+channelsnames[3542]="RADYO 6";
+channels[3542]="S42.0E-1-1-8";
+channelsnames[3543]="TRT TURK";
+channels[3543]="S42.0E-1-1-9";
+channelsnames[3544]="VOT WORLD";
+channels[3544]="S42.0E-1-1-10";
+channelsnames[3545]="TSR TURKCE";
+channels[3545]="S42.0E-1-1-11";
+channelsnames[3546]="TRT 3-SPOR";
+channels[3546]="S42.0E-1-1-12";
+channelsnames[3547]="Meteorolojinin Sesi";
+channels[3547]="S42.0E-1-1-13";
+channelsnames[3548]="VOT WEST";
+channels[3548]="S42.0E-1-1-14";
+channelsnames[3549]="TRT RADYO HABER";
+channels[3549]="S42.0E-1-1-15";
+channelsnames[3550]="TRT COCUK";
+channels[3550]="S42.0E-1-1-16";
+channelsnames[3551]="TRT NAGME";
+channels[3551]="S42.0E-1-1-17";
+channelsnames[3552]="TRT AVRUPA FM";
+channels[3552]="S42.0E-1-1-19";
+channelsnames[3553]="TRT TURKU";
+channels[3553]="S42.0E-1-1-20";
+channelsnames[3554]="INTERCOM";
+channels[3554]="S42.0E-1-1-21";
+channelsnames[3555]="TRT OKUL";
+channels[3555]="S42.0E-1-1-22";
+channelsnames[3556]="TRT MUZIK";
+channels[3556]="S42.0E-1-1-23";
+channelsnames[3557]="ALTIN ORDU";
+channels[3557]="S42.0E-42-55-300";
+channelsnames[3558]="SINEMA TV";
+channels[3558]="S42.0E-42-55-400";
+channelsnames[3559]="SINEMA TV2";
+channels[3559]="S42.0E-42-55-500";
+channelsnames[3560]="SINEMA TV AILE";
+channels[3560]="S42.0E-42-55-600";
+channelsnames[3561]="SINEMA TV HD";
+channels[3561]="S42.0E-42-55-700";
+channelsnames[3562]="SINEMATV HD2";
+channels[3562]="S42.0E-42-55-800";
+channelsnames[3563]="SINEMA TV 1001";
+channels[3563]="S42.0E-42-55-1000";
+channelsnames[3564]="BBC HD";
+channels[3564]="S42.0E-42-55-1300";
+channelsnames[3565]="SINEMA TV 1001 HD";
+channels[3565]="S42.0E-42-55-1400";
+channelsnames[3566]="SINEMA TV AILE HD";
+channels[3566]="S42.0E-42-55-1500";
+channelsnames[3567]="YEDIRENK";
+channels[3567]="S42.0E-42-55-2000";
+channelsnames[3568]="BAHAR TV";
+channels[3568]="S42.0E-42-55-2100";
+channelsnames[3569]="ARABESK TV";
+channels[3569]="S42.0E-42-55-2500";
+channelsnames[3570]="DEPOMEPO TV";
+channels[3570]="S42.0E-42-55-2600";
+channelsnames[3571]="LAGUN TV";
+channels[3571]="S42.0E-42-55-2700";
+channelsnames[3572]="KON TV";
+channels[3572]="S42.0E-42-3-1";
+channelsnames[3573]="HALK TV";
+channels[3573]="S42.0E-42-3-2";
+channelsnames[3574]="KACKAR TV";
+channels[3574]="S42.0E-42-3-3";
+channelsnames[3575]="SMARTSHOPPING TV";
+channels[3575]="S42.0E-42-3-4";
+channelsnames[3576]="BEREKET TV";
+channels[3576]="S42.0E-42-3-5";
+channelsnames[3577]="SHOPPING TV";
+channels[3577]="S42.0E-42-3-6";
+channelsnames[3578]="67 TV";
+channels[3578]="S42.0E-42-3-7";
+channelsnames[3579]="SAMSUN AKS TV";
+channels[3579]="S42.0E-42-3-8";
+channelsnames[3580]="VIZYONTURK";
+channels[3580]="S42.0E-42-3-10";
+channelsnames[3581]="ULUSAL KANAL";
+channels[3581]="S42.0E-42-3-11";
+channelsnames[3582]="AKDENIZ TV";
+channels[3582]="S42.0E-42-3-12";
+channelsnames[3583]="TATLISES TV";
+channels[3583]="S42.0E-42-3-13";
+channelsnames[3584]="REHBER TV";
+channels[3584]="S42.0E-42-3-14";
+channelsnames[3585]="YON RADYO";
+channels[3585]="S42.0E-42-3-18";
+channelsnames[3586]="RIBAT FM";
+channels[3586]="S42.0E-42-3-19";
+channelsnames[3587]="RADYO SILA";
+channels[3587]="S42.0E-42-3-21";
+channelsnames[3588]="KONYA FM";
+channels[3588]="S42.0E-42-3-26";
+channelsnames[3589]="VIZYON TURK";
+channels[3589]="S42.0E-42-3-27";
+channelsnames[3590]="CAGRI FM";
+channels[3590]="S42.0E-42-3-29";
+channelsnames[3591]="T KACKAR";
+channels[3591]="S42.0E-42-3-30";
+channelsnames[3592]="ANC RADYO";
+channels[3592]="S42.0E-42-3-31";
+channelsnames[3593]="EM TV";
+channels[3593]="S42.0E-42-502-1";
+channelsnames[3594]="UZAY TV";
+channels[3594]="S42.0E-42-502-2";
+channelsnames[3595]="ALTAS TV";
+channels[3595]="S42.0E-42-502-3";
+channelsnames[3596]="FB TV";
+channels[3596]="S42.0E-42-502-4";
+channelsnames[3597]="BURSA AS TV";
+channels[3597]="S42.0E-42-502-5";
+channelsnames[3598]="KONYA TV";
+channels[3598]="S42.0E-42-502-6";
+channelsnames[3599]="MAXI TV";
+channels[3599]="S42.0E-42-502-7";
+channelsnames[3600]="GALA TV";
+channels[3600]="S42.0E-42-502-8";
+channelsnames[3601]="ON4 TV";
+channels[3601]="S42.0E-42-502-9";
+channelsnames[3602]="YILDIZ TV";
+channels[3602]="S42.0E-42-502-10";
+channelsnames[3603]="TURKIYEM TV";
+channels[3603]="S42.0E-42-502-11";
+channelsnames[3604]="DOLUNAY FM";
+channels[3604]="S42.0E-42-502-13";
+channelsnames[3605]="BAYRAM FM";
+channels[3605]="S42.0E-42-502-15";
+channelsnames[3606]="SUN TV";
+channels[3606]="S42.0E-42-502-16";
+channelsnames[3607]="silafm";
+channels[3607]="S42.0E-42-502-17";
+channelsnames[4001]="TVN HD";
+channels[4001]="S13.0E-318-1600-15821";
+channelsnames[4002]="TVN Siedem";
+channels[4002]="S13.0E-318-1000-4313";
+channelsnames[4003]="TVN STYLE HD";
+channels[4003]="S13.0E-318-1600-15823";
+channelsnames[4004]="TVN Turbo HD";
+channels[4004]="S13.0E-318-1600-15824";
+channelsnames[4005]="TTV";
+channels[4005]="S13.0E-318-1000-4317";
+channelsnames[4006]="TVN 24 HD";
+channels[4006]="S13.0E-318-1600-15826";
+channelsnames[4007]="Polsat HD";
+channels[4007]="S13.0E-113-7800-3107";
+channelsnames[4008]="TV4";
+channels[4008]="S13.0E-113-13200-13103";
+channelsnames[4009]="Kuchnia+ HD";
+channels[4009]="S13.0E-318-1100-14237";
+channelsnames[4010]="Polsat2";
+channels[4010]="S13.0E-113-13200-13110";
+channelsnames[4011]="TVP 1 HD";
+channels[4011]="S13.0E-318-1300-15037";
+channelsnames[4012]="TVP 2 HD";
+channels[4012]="S13.0E-113-7800-3106";
+channelsnames[4013]="TVP HD";
+channels[4013]="S13.0E-318-300-15202";
+channelsnames[4014]="TVP SERIALE";
+channels[4014]="S13.0E-318-11400-15708";
+channelsnames[4015]="TVP INFO";
+channels[4015]="S13.0E-318-1500-5110";
+channelsnames[4016]="TVP Kultura";
+channels[4016]="S13.0E-318-1500-5113";
+channelsnames[4017]="TV POLONIA";
+channels[4017]="S13.0E-318-1500-5101";
+channelsnames[4018]="TVP Historia";
+channels[4018]="S13.0E-318-11600-3524";
+channelsnames[4019]="TVP Rozrywka";
+channels[4019]="S13.0E-318-11200-17032";
+channelsnames[4020]="TV PULS";
+channels[4020]="S13.0E-318-1500-5112";
+channelsnames[4021]="Superstacja";
+channels[4021]="S13.0E-113-7900-10521";
+channelsnames[4022]="TVN 24 Biznes i Swiat";
+channels[4022]="S13.0E-318-1000-4322";
+channelsnames[4023]="TVN Meteo";
+channels[4023]="S13.0E-318-1000-4318";
+channelsnames[4024]="TV6";
+channels[4024]="S13.0E-113-7900-10510";
+channelsnames[4025]="Polsat News 2";
+channels[4025]="S13.0E-113-13200-13107";
+channelsnames[4026]="Polsat News";
+channels[4026]="S13.0E-113-13200-13129";
+channelsnames[4027]="BBC HD";
+channels[4027]="S13.0E-318-11600-3590";
+channelsnames[4028]="BBC Entertainment Poland";
+channels[4028]="S13.0E-318-13000-14602";
+channelsnames[4029]="TVN 24";
+channels[4029]="S13.0E-318-1000-4312";
+channelsnames[4030]="CANAL+ HD";
+channels[4030]="S13.0E-318-400-13020";
+channelsnames[4031]="CANAL+ FILM HD";
+channels[4031]="S13.0E-318-1100-14201";
+channelsnames[4032]="CANAL+ FILM2 HD";
+channels[4032]="S13.0E-318-1100-14210";
+channelsnames[4033]="CANAL+ FAMILY HD";
+channels[4033]="S13.0E-318-1100-14203";
+channelsnames[4034]="CANAL+ FAMILY2 HD";
+channels[4034]="S13.0E-318-1100-14202";
+channelsnames[4035]="CANAL+ SPORT HD";
+channels[4035]="S13.0E-318-400-13022";
+channelsnames[4048]="Cinemax HD";
+channels[4048]="S13.0E-318-300-15207";
+channelsnames[4049]="Cinemax 2 HD";
+channels[4049]="S13.0E-113-7800-3110";
+channelsnames[4050]="HBO HD";
+channels[4050]="S13.0E-113-7800-3105";
+channelsnames[4051]="HBO2 HD";
+channels[4051]="S13.0E-318-11600-3593";
+channelsnames[4052]="HBO COMEDY HD";
+channels[4052]="S13.0E-318-11600-3594";
+channelsnames[4053]="Ale kino+ HD";
+channels[4053]="S13.0E-318-1100-14239";
+channelsnames[4054]="FOX HD";
+channels[4054]="S13.0E-113-7800-3111";
+channelsnames[4055]="FoxLife HD";
+channels[4055]="S13.0E-113-7800-3103";
+channelsnames[4056]="AXN HD";
+channels[4056]="S13.0E-113-7800-3109";
+channelsnames[4057]="AXN Spin HD";
+channels[4057]="S13.0E-318-12000-15908";
+channelsnames[4058]="MGM HD";
+channels[4058]="S13.0E-318-1300-15031";
+channelsnames[4059]="Romance TV";
+channels[4059]="S13.0E-318-1300-15038";
+channelsnames[4060]="Sundance HD";
+channels[4060]="S13.0E-318-12000-15901";
+channelsnames[4145]="4fun.TV";
+channels[4145]="S13.0E-318-11000-4404";
+channelsnames[4165]="FILMBOX HD";
+channels[4165]="S13.0E-318-400-13025";
+channelsnames[4166]="Filmbox Extra";
+channels[4166]="S13.0E-318-11400-15712";
+channelsnames[4167]="Filmbox Family";
+channels[4167]="S13.0E-318-11400-15714";
+channelsnames[4168]="Filmbox Action";
+channels[4168]="S13.0E-318-11400-15717";
+channelsnames[4169]="Filmbox";
+channels[4169]="S13.0E-318-11400-15713";
+channelsnames[4210]="TVN";
+channels[4210]="S13.0E-318-1000-4311";
+channelsnames[4211]="TVP 1";
+channels[4211]="S13.0E-318-11900-4807";
+channelsnames[4212]="TVP 2";
+channels[4212]="S13.0E-318-11900-4808";
+channelsnames[4213]="TV PULS";
+channels[4213]="S13.0E-318-1500-5142";
+channelsnames[4272]="FoxLife";
+channels[4272]="S13.0E-113-7400-7375";
+channelsnames[4500]="CANAL+ FAMILY";
+channels[4500]="S13.0E-318-11000-4414";
+channelsnames[4501]="CANAL+ FAMILY2";
+channels[4501]="S13.0E-318-11000-4413";
+channelsnames[4502]="HBO";
+channels[4502]="S13.0E-318-11000-4429";
+channelsnames[4503]="HBO2";
+channels[4503]="S13.0E-318-11000-4431";
+channelsnames[4504]="HBO COMEDY";
+channels[4504]="S13.0E-318-11000-4432";
+channelsnames[4505]="Universal Channel Poland";
+channels[4505]="S13.0E-318-700-1";
+channelsnames[4506]="Sci Fi Poland";
+channels[4506]="S13.0E-318-700-2";
+channelsnames[4507]="13 Ulica (Street) Poland";
+channels[4507]="S13.0E-318-700-3";
+channelsnames[4600]="teleTOON+ HD";
+channels[4600]="S13.0E-318-1100-14205";
+channelsnames[4601]="Planete+ HD";
+channels[4601]="S13.0E-318-1100-14206";
+channelsnames[4602]="Kuchnia+ HD";
+channels[4602]="S13.0E-318-1100-14207";
+channelsnames[4603]="Domo+ HD";
+channels[4603]="S13.0E-318-1100-14208";
+channelsnames[4604]="Ale kino+ HD";
+channels[4604]="S13.0E-318-1100-14209";
+channelsnames[4605]="teleTOON+ HD";
+channels[4605]="S13.0E-318-1100-14235";
+channelsnames[4606]="Planete+ HD";
+channels[4606]="S13.0E-318-1100-14236";
+channelsnames[4607]="Domo+ HD";
+channels[4607]="S13.0E-318-1100-14238";
+channelsnames[4608]="Polsat";
+channels[4608]="S13.0E-113-13200-13101";
+channelsnames[4609]="Polsat Play";
+channels[4609]="S13.0E-113-13200-13102";
+channelsnames[4610]="Polsat Sport";
+channels[4610]="S13.0E-113-13200-13104";
+channelsnames[4611]="Polsat Sport Extra";
+channels[4611]="S13.0E-113-13200-13105";
+channelsnames[4612]="Polsat Cafe";
+channels[4612]="S13.0E-113-13200-13106";
+channelsnames[4613]="Polsat Film";
+channels[4613]="S13.0E-113-13200-13108";
+channelsnames[4614]="Polsat News";
+channels[4614]="S13.0E-113-13200-13109";
+channelsnames[4615]="Polsat Play";
+channels[4615]="S13.0E-113-13200-13122";
+channelsnames[4616]="Polsat Cafe";
+channels[4616]="S13.0E-113-13200-13126";
+channelsnames[4617]="Polsat News";
+channels[4617]="S13.0E-113-13200-13139";
+channelsnames[4618]="CANAL+";
+channels[4618]="S13.0E-318-11900-4801";
+channelsnames[4619]="CANAL+ FILM";
+channels[4619]="S13.0E-318-11900-4802";
+channelsnames[4620]="CANAL+ FILM2";
+channels[4620]="S13.0E-318-11900-4803";
+channelsnames[4621]="Kuchnia+";
+channels[4621]="S13.0E-318-11900-4804";
+channelsnames[4622]="Ale kino+";
+channels[4622]="S13.0E-318-11900-4805";
+channelsnames[4623]="teleTOON+";
+channels[4623]="S13.0E-318-11900-4806";
+channelsnames[4624]="CANAL+ SPORT";
+channels[4624]="S13.0E-318-11900-4809";
+channelsnames[4625]="Domo+";
+channels[4625]="S13.0E-318-11900-4811";
+channelsnames[4626]="4823";
+channels[4626]="S13.0E-318-11900-4823";
+channelsnames[4627]="H test 1";
+channels[4627]="S13.0E-318-11900-4830";
+channelsnames[4628]="H test 2";
+channels[4628]="S13.0E-318-11900-4831";
+channelsnames[4629]="H test 3";
+channels[4629]="S13.0E-318-11900-4832";
+channelsnames[4630]="CANAL+ FILM";
+channels[4630]="S13.0E-318-11900-4833";
+channelsnames[4631]="CANAL+ FILM2";
+channels[4631]="S13.0E-318-11900-4834";
+channelsnames[4632]="CANAL+";
+channels[4632]="S13.0E-318-11900-4835";
+channelsnames[4633]="CANAL+ FILM";
+channels[4633]="S13.0E-318-11900-4836";
+channelsnames[4634]="CANAL+ SPORT";
+channels[4634]="S13.0E-318-11900-4837";
+channelsnames[4635]="CYFRA+ RADIO";
+channels[4635]="S13.0E-318-11900-4840";
+channelsnames[4636]="CYFRA+ RMF";
+channels[4636]="S13.0E-318-11900-4842";
+channelsnames[4637]="CYFRA+ PR";
+channels[4637]="S13.0E-318-11900-4844";
+channelsnames[4638]="JASNA GORA";
+channels[4638]="S13.0E-318-11900-4845";
+channelsnames[4639]="CANAL+";
+channels[4639]="S13.0E-318-11900-4851";
+channelsnames[4640]="CANAL+ SPORT";
+channels[4640]="S13.0E-318-11900-4853";
+channelsnames[4641]="Kuchnia+";
+channels[4641]="S13.0E-318-11900-4854";
+channelsnames[4642]="Ale kino+";
+channels[4642]="S13.0E-318-11900-4855";
+channelsnames[4643]="teleTOON+";
+channels[4643]="S13.0E-318-11900-4856";
+channelsnames[4644]="Domo+";
+channels[4644]="S13.0E-318-11900-4857";
+channelsnames[4645]="TOK FM";
+channels[4645]="S13.0E-318-11900-4862";
+channelsnames[4646]="tech 2";
+channels[4646]="S13.0E-318-11900-4863";
+channelsnames[4647]="Kuchnia+";
+channels[4647]="S13.0E-318-11900-4864";
+channelsnames[4648]="DTV CABLE KU";
+channels[4648]="S13.0E-318-11900-4874";
+channelsnames[4649]="DTV CABLE AL";
+channels[4649]="S13.0E-318-11900-4875";
+channelsnames[4650]="DTV CABLE TT";
+channels[4650]="S13.0E-318-11900-4876";
+channelsnames[4651]="PR1";
+channels[4651]="S13.0E-318-11900-4881";
+channelsnames[4652]="PR2";
+channels[4652]="S13.0E-318-11900-4882";
+channelsnames[4653]="PR3";
+channels[4653]="S13.0E-318-11900-4883";
+channelsnames[4654]="Planete+";
+channels[4654]="S13.0E-318-11000-4406";
+channelsnames[4655]="MiniMini+";
+channels[4655]="S13.0E-318-11000-4407";
+channelsnames[4656]="nSport+";
+channels[4656]="S13.0E-318-11000-4408";
+channelsnames[4657]="HISTORY";
+channels[4657]="S13.0E-318-11000-4409";
+channelsnames[4658]="CANAL+ FAMILY2";
+channels[4658]="S13.0E-318-11000-4423";
+channelsnames[4659]="ESP";
+channels[4659]="S13.0E-318-11000-4435";
+channelsnames[4660]="Planete+";
+channels[4660]="S13.0E-318-11000-4451";
+channelsnames[4661]="MiniMini+";
+channels[4661]="S13.0E-318-11000-4452";
+channelsnames[4662]="nSport+";
+channels[4662]="S13.0E-318-11000-4458";
+channelsnames[4663]="DTV CABLE PL";
+channels[4663]="S13.0E-318-11000-4476";
+channelsnames[4664]="DTV CABLE MI";
+channels[4664]="S13.0E-318-11000-4477";
+channelsnames[4665]="STREFA ABONENTA nc+";
+channels[4665]="S13.0E-318-11000-4481";
+channelsnames[4666]="Test-R";
+channels[4666]="S19.2E-1-1051-28726";
+channelsnames[4667]="TVS";
+channels[4667]="S13.0E-318-1500-5102";
+channelsnames[4668]="KINO POLSKA";
+channels[4668]="S13.0E-318-1500-5104";
+channelsnames[4669]="TRACE TV";
+channels[4669]="S13.0E-318-1500-5105";
+channelsnames[4670]="5108";
+channels[4670]="S13.0E-318-1500-5108";
+channelsnames[4671]="TVP Regionalna";
+channels[4671]="S13.0E-318-1500-5115";
+channelsnames[4672]="ANIMAL PLANET";
+channels[4672]="S13.0E-318-1500-5122";
+channelsnames[4673]="CBS Drama";
+channels[4673]="S13.0E-318-1500-5126";
+channelsnames[4674]="CBS Reality";
+channels[4674]="S13.0E-318-1500-5127";
+channelsnames[4675]="TVP Kultura";
+channels[4675]="S13.0E-318-1500-5143";
+channelsnames[4676]="CINEMAX";
+channels[4676]="S13.0E-318-1500-5146";
+channelsnames[4677]="Boomerang CZ";
+channels[4677]="S23.5E-3-3202-6036";
+channelsnames[4678]="Animal Planet CZ";
+channels[4678]="S23.5E-3-3202-6041";
+channelsnames[4679]="EDGE";
+channels[4679]="S23.5E-3-3202-6111";
+channelsnames[4680]="EDGE CZ";
+channels[4680]="S23.5E-3-3202-6151";
+channelsnames[4681]="Polsat Romans";
+channels[4681]="S13.0E-113-7400-7301";
+channelsnames[4682]="AXN White";
+channels[4682]="S13.0E-113-7400-7302";
+channelsnames[4683]="AXN Black";
+channels[4683]="S13.0E-113-7400-7303";
+channelsnames[4684]="Fightbox";
+channels[4684]="S13.0E-113-7400-7304";
+channelsnames[4685]="Extreme Sports";
+channels[4685]="S13.0E-113-7400-7305";
+channelsnames[4686]="Eurosport";
+channels[4686]="S13.0E-113-7400-7306";
+channelsnames[4687]="Nat Geo Wild";
+channels[4687]="S13.0E-113-7400-7307";
+channelsnames[4688]="Disco Polo Music";
+channels[4688]="S13.0E-113-7400-7308";
+channelsnames[4689]="Disco Polo Music";
+channels[4689]="S13.0E-113-7400-7310";
+channelsnames[4690]="Discovery";
+channels[4690]="S13.0E-113-7400-7315";
+channelsnames[4691]="AXN";
+channels[4691]="S13.0E-113-7400-7318";
+channelsnames[4692]="Disney XD";
+channels[4692]="S13.0E-113-7400-7349";
+channelsnames[4693]="Polsat Viasat Explore";
+channels[4693]="S13.0E-113-7400-7371";
+channelsnames[4694]="Polsat Viasat History";
+channels[4694]="S13.0E-113-7400-7372";
+channelsnames[4695]="Polsat Viasat Nature";
+channels[4695]="S13.0E-113-7400-7373";
+channelsnames[4696]="D. SCIENCE";
+channels[4696]="S13.0E-318-11400-15701";
+channelsnames[4697]="Discovery Turbo Xtra";
+channels[4697]="S13.0E-318-11400-15703";
+channelsnames[4698]="TVP SPORT";
+channels[4698]="S13.0E-318-11400-15704";
+channelsnames[4699]="TELE5";
+channels[4699]="S13.0E-318-11400-15705";
+channelsnames[4700]="POLONIA1";
+channels[4700]="S13.0E-318-11400-15706";
+channelsnames[4701]="CINEMAX 2";
+channels[4701]="S13.0E-318-11400-15707";
+channelsnames[4702]="NATIONAL GEO";
+channels[4702]="S13.0E-318-11400-15710";
+channelsnames[4703]="Orange Sport";
+channels[4703]="S13.0E-318-11400-15711";
+channelsnames[4704]="POLSAT VOLLEYBALL 4";
+channels[4704]="S13.0E-318-11400-15716";
+channelsnames[4705]="TVP Seriale";
+channels[4705]="S13.0E-318-11400-15728";
+channelsnames[4706]="MTV Polska";
+channels[4706]="S13.0E-318-12800-2";
+channelsnames[4707]="CC Family";
+channels[4707]="S13.0E-318-12800-4";
+channelsnames[4708]="VIVA Polska";
+channels[4708]="S13.0E-318-12800-5";
+channelsnames[4709]="Viacom Blink!";
+channels[4709]="S13.0E-318-12800-6";
+channelsnames[4710]="VH1";
+channels[4710]="S13.0E-318-12800-7";
+channelsnames[4711]="Comedy Central Polska";
+channels[4711]="S13.0E-318-12800-10";
+channelsnames[4712]="Nickelodeon";
+channels[4712]="S13.0E-318-12800-11";
+channelsnames[4713]="MTV Live HD";
+channels[4713]="S13.0E-318-12800-21";
+channelsnames[4714]="MTV Polska.";
+channels[4714]="S13.0E-318-12800-22";
+channelsnames[4715]="CC Family.";
+channels[4715]="S13.0E-318-12800-24";
+channelsnames[4716]="VIVA Polska.";
+channels[4716]="S13.0E-318-12800-25";
+channelsnames[4717]="Comedy Central Polska.";
+channels[4717]="S13.0E-318-12800-30";
+channelsnames[4718]="VIVA Polska..";
+channels[4718]="S13.0E-318-12800-45";
+channelsnames[4719]="Starz TV";
+channels[4719]="S28.2E-2-2314-53335";
+channelsnames[4720]="?TV";
+channels[4720]="S28.2E-2-2314-53361";
+channelsnames[4721]="True Ent+1";
+channels[4721]="S28.2E-2-2314-53371";
+channelsnames[4722]="BBC Knowledge Poland";
+channels[4722]="S13.0E-318-13000-14603";
+channelsnames[4723]="BBC Lifestyle Poland";
+channels[4723]="S13.0E-318-13000-14604";
+channelsnames[4724]="BBC CBeebies Poland";
+channels[4724]="S13.0E-318-13000-14605";
+channelsnames[4725]="Discovery ID Poland";
+channels[4725]="S13.0E-318-13000-14612";
+channelsnames[4726]="TLC Poland";
+channels[4726]="S13.0E-318-13000-14613";
+channelsnames[4727]="Loveworld";
+channels[4727]="S13.0E-318-13000-14606";
+channelsnames[4728]="BBC Arabic TV";
+channels[4728]="S13.0E-318-13000-14616";
+channelsnames[4729]="BBC Arabic Radio";
+channels[4729]="S13.0E-318-13000-14617";
+channelsnames[4730]="BBC English (Europe)";
+channels[4730]="S13.0E-318-13000-14618";
+channelsnames[4731]="BBC English Mid-East";
+channels[4731]="S13.0E-318-13000-14619";
+channelsnames[4732]="TEST 1";
+channels[4732]="S13.0E-113-7900-10500";
+channelsnames[4733]="Polsat Food";
+channels[4733]="S13.0E-113-7900-10501";
+channelsnames[4734]="Boomerang";
+channels[4734]="S13.0E-113-7900-10502";
+channelsnames[4735]="Radio ZET Gold";
+channels[4735]="S13.0E-113-7900-10503";
+channelsnames[4736]="Radio ZET Gold";
+channels[4736]="S13.0E-113-7900-10504";
+channelsnames[4737]="MTV Rocks";
+channels[4737]="S13.0E-113-7900-10505";
+channelsnames[4738]="CBS Europa";
+channels[4738]="S13.0E-113-7900-10507";
+channelsnames[4739]="Polsat Jim Jam";
+channels[4739]="S13.0E-113-7900-10508";
+channelsnames[4740]="ATM Rozrywka TV";
+channels[4740]="S13.0E-113-7900-10511";
+channelsnames[4741]="Polsat Sport News";
+channels[4741]="S13.0E-113-7900-10514";
+channelsnames[4742]="Blue Hustler";
+channels[4742]="S13.0E-113-7900-10516";
+channelsnames[4743]="Zlote Przeboje";
+channels[4743]="S13.0E-113-7900-10519";
+channelsnames[4744]="Travel";
+channels[4744]="S13.0E-113-7900-10520";
+channelsnames[4745]="RMF FM";
+channels[4745]="S13.0E-113-7900-10523";
+channelsnames[4746]="Zlote Przeboje";
+channels[4746]="S13.0E-113-7900-10524";
+channelsnames[4747]="RMF Classic";
+channels[4747]="S13.0E-113-7900-10526";
+channelsnames[4748]="Radio PIN 102FM";
+channels[4748]="S13.0E-113-7900-10527";
+channelsnames[4749]="Jedynka - PR";
+channels[4749]="S13.0E-113-7900-10528";
+channelsnames[4750]="Trójka - PR";
+channels[4750]="S13.0E-113-7900-10529";
+channelsnames[4751]="Radio ZET";
+channels[4751]="S13.0E-113-7900-10530";
+channelsnames[4752]="Radio ZET";
+channels[4752]="S13.0E-113-7900-10531";
+channelsnames[4753]="RMF Classic";
+channels[4753]="S13.0E-113-7900-10532";
+channelsnames[4754]="Trójka - PR";
+channels[4754]="S13.0E-113-7900-10535";
+channelsnames[4755]="Radio PIN 102FM";
+channels[4755]="S13.0E-113-7900-10536";
+channelsnames[4756]="Jedynka - PR";
+channels[4756]="S13.0E-113-7900-10537";
+channelsnames[4757]="RMF FM";
+channels[4757]="S13.0E-113-7900-10538";
+channelsnames[4758]="RMF MAXXX";
+channels[4758]="S13.0E-113-7900-10543";
+channelsnames[4759]="RMF MAXXX";
+channels[4759]="S13.0E-113-7900-10549";
+channelsnames[4760]="Disney Junior";
+channels[4760]="S13.0E-113-7900-10552";
+channelsnames[4761]="Dla Abonentow";
+channels[4761]="S13.0E-113-7900-10556";
+channelsnames[4762]="CN/TCM";
+channels[4762]="S13.0E-318-12200-7457";
+channelsnames[4763]="Noursat";
+channels[4763]="S13.0E-318-12200-7402";
+channelsnames[4764]="Al Hiwar";
+channels[4764]="S13.0E-318-12200-7456";
+channelsnames[4765]="DMC";
+channels[4765]="S13.0E-318-12200-7459";
+channelsnames[4766]="Miracle TV";
+channels[4766]="S13.0E-318-12200-7460";
+channelsnames[4767]="Al Forat";
+channels[4767]="S13.0E-318-12200-7463";
+channelsnames[4768]="Al Fady";
+channels[4768]="S13.0E-318-12200-7464";
+channelsnames[4769]="Disney Channel";
+channels[4769]="S13.0E-318-12200-7466";
+channelsnames[4770]="Cartoon Network";
+channels[4770]="S13.0E-318-12200-7467";
+channelsnames[4771]="Turner Classic Movies";
+channels[4771]="S13.0E-318-12200-7468";
+channelsnames[4772]="RFI Persian";
+channels[4772]="S13.0E-318-12200-7469";
+channelsnames[4773]="Sat 7 Pars";
+channels[4773]="S13.0E-318-12200-7470";
+channelsnames[4774]="Velayat TV";
+channels[4774]="S13.0E-318-12200-7471";
+channelsnames[4775]="Karbala Satellite Channel";
+channels[4775]="S13.0E-318-12200-7472";
+channelsnames[4776]="iTV";
+channels[4776]="S13.0E-318-12200-7473";
+channelsnames[4777]="Al Maaref";
+channels[4777]="S13.0E-318-12200-7474";
+channelsnames[4778]="STS International";
+channels[4778]="S13.0E-318-12200-7475";
+channelsnames[4779]="Ahl E Bait";
+channels[4779]="S13.0E-318-12200-7476";
+channelsnames[4780]="Cancao Nova";
+channels[4780]="S13.0E-318-200-4922";
+channelsnames[4781]="ESP2 Dutch";
+channels[4781]="S13.0E-318-200-13802";
+channelsnames[4782]="ESP2 Test";
+channels[4782]="S13.0E-318-200-13804";
+channelsnames[4783]="ESP2 Greek";
+channels[4783]="S13.0E-318-200-13805";
+channelsnames[4784]="ESP2 Portuguese";
+channels[4784]="S13.0E-318-200-13821";
+channelsnames[4785]="ESP2 Italy";
+channels[4785]="S13.0E-318-200-13822";
+channelsnames[4786]="ESP2 Biava";
+channels[4786]="S13.0E-318-200-13823";
+channelsnames[4787]="ESP Spain";
+channels[4787]="S13.0E-318-200-13829";
+channelsnames[4788]="ESP Italy";
+channels[4788]="S13.0E-318-200-13830";
+channelsnames[4789]="ESP Polish";
+channels[4789]="S13.0E-318-200-13834";
+channelsnames[4790]="ESP Portuguese";
+channels[4790]="S13.0E-318-200-13836";
+channelsnames[4791]="ESP Hungarian";
+channels[4791]="S13.0E-318-200-13837";
+channelsnames[4792]="ESP Czech";
+channels[4792]="S13.0E-318-200-13839";
+channelsnames[4793]="ESP Greek";
+channels[4793]="S13.0E-318-200-13840";
+channelsnames[4794]="ESP Cyprus";
+channels[4794]="S13.0E-318-200-13841";
+channelsnames[4795]="ESP Bulgarian";
+channels[4795]="S13.0E-318-200-13842";
+channelsnames[4796]="ESP2 Turk";
+channels[4796]="S13.0E-318-200-13843";
+channelsnames[4797]="ESP Serbia";
+channels[4797]="S13.0E-318-200-13844";
+channelsnames[4798]="ESP Turk";
+channels[4798]="S13.0E-318-200-13845";
+channelsnames[4799]="ESP2 German";
+channels[4799]="S13.0E-318-200-13846";
+channelsnames[4800]="ESP2 Serbia";
+channels[4800]="S13.0E-318-200-13847";
+channelsnames[4801]="ESP Biava";
+channels[4801]="S13.0E-318-200-13848";
+channelsnames[4802]="EUROSPORT2 PL";
+channels[4802]="S13.0E-318-200-13864";
+channelsnames[4803]="EUROSPORT PL";
+channels[4803]="S13.0E-318-200-13865";
+channelsnames[4804]="ESP2 NE Intl";
+channels[4804]="S13.0E-318-200-13877";
+channelsnames[4805]="ESP2 NE Polish";
+channels[4805]="S13.0E-318-200-13878";
+channelsnames[4806]="ESP2 NE Bulgarian";
+channels[4806]="S13.0E-318-200-13879";
+channelsnames[4807]="ESP2 NE Serbian";
+channels[4807]="S13.0E-318-200-13880";
+channelsnames[4808]="ESP2 NE Czech";
+channels[4808]="S13.0E-318-200-13881";
+channelsnames[4809]="ESP2 NE Danish";
+channels[4809]="S13.0E-318-200-13882";
+channelsnames[4810]="ESP2 NE Swedish";
+channels[4810]="S13.0E-318-200-13884";
+channelsnames[4811]="ESP ECH";
+channels[4811]="S13.0E-318-200-13885";
+channelsnames[4812]="ESP2 NE UPC";
+channels[4812]="S13.0E-318-200-13886";
+channelsnames[4813]="ESP2 NE Hungary";
+channels[4813]="S13.0E-318-200-13887";
+channelsnames[4814]="ESP2 NE Romania";
+channels[4814]="S13.0E-318-200-13888";
+channelsnames[4815]="ESP UPC";
+channels[4815]="S13.0E-318-200-13889";
+channelsnames[4816]="ESP2 NE Norwegian";
+channels[4816]="S13.0E-318-200-13890";
+channelsnames[4817]="ESP2 NE Dutch";
+channels[4817]="S13.0E-318-200-13891";
+channelsnames[4818]="ESP Romanian";
+channels[4818]="S13.0E-318-200-13892";
+channelsnames[4819]="A3";
+channels[4819]="S13.0E-318-200-13940";
+channelsnames[4820]="Canal Algerie";
+channels[4820]="S13.0E-318-200-13950";
+channelsnames[4821]="TV5MONDE FBS";
+channels[4821]="S13.0E-318-13100-7321";
+channelsnames[4822]="TV5MONDE EUROPE";
+channels[4822]="S13.0E-318-13100-7322";
+channelsnames[4823]="Crime and Investigation nc+";
+channels[4823]="S13.0E-318-13100-7324";
+channelsnames[4824]="Crime + Investigation";
+channels[4824]="S13.0E-318-13100-7325";
+channelsnames[4825]="GEM TV";
+channels[4825]="S13.0E-318-13100-7333";
+channelsnames[4826]="AB Channel";
+channels[4826]="S13.0E-318-13100-7334";
+channelsnames[4827]="Kurd Channel";
+channels[4827]="S13.0E-318-13100-7335";
+channelsnames[4828]="NUMBER 1";
+channels[4828]="S13.0E-318-13100-7337";
+channelsnames[4829]="Radio Expert";
+channels[4829]="S13.0E-318-13100-7339";
+channelsnames[4830]="Manoto 1";
+channels[4830]="S13.0E-318-13100-7355";
+channelsnames[5000]="BBC Olym 4 HD";
+channels[5000]="S28.2E-0-0-8900";
+channelsnames[5001]="BBC Olym 4 HD";
+channels[5001]="S28.2E-0-0-8900";
+channelsnames[5100]="BBC Olym 4 HD";
+channels[5100]="S28.2E-0-0-8900";
+channelsnames[6001]="Meiden van Holland Hard";
+channels[6001]="T-8720-2213-38";
+channelsnames[6002]="XXL";
+channels[6002]="S19.2E-1-1094-17024";
+channelsnames[6003]="Redlight";
+channels[6003]="S13.0E-318-5000-13760";
+channelsnames[6004]="EXOTICA TV";
+channels[6004]="S13.0E-318-5000-13761";
+channelsnames[6005]="SCT 4";
+channels[6005]="S13.0E-318-5000-13764";
+channelsnames[6006]="SCT 6";
+channels[6006]="S13.0E-318-5000-13766";
+channelsnames[6007]="SCT 7";
+channels[6007]="S13.0E-318-5000-13767";
+channelsnames[6008]="SCT HQ";
+channels[6008]="S13.0E-318-5000-13768";
+channelsnames[6009]="PINK O TV";
+channels[6009]="S13.0E-318-5000-13784";
+channelsnames[6010]="Dorcel TV";
+channels[6010]="S19.2E-53-1119-12882";
+channelsnames[6011]="Hustler TV";
+channels[6011]="S19.2E-53-1119-12883";
+channelsnames[6012]="FRENCH LOVER";
+channels[6012]="S19.2E-1-1018-6407";
+channelsnames[6013]="LIBIDO TV";
+channels[6013]="S19.2E-1-1018-6402";
+channelsnames[6014]="BRAZZERS TV Europe";
+channels[6014]="S13.0E-318-12200-7461";
+channelsnames[6015]="PRIVATE TV";
+channels[6015]="S13.0E-318-13300-4960";
+channelsnames[6016]="FL TV";
+channels[6016]="S13.0E-318-8900-2098";
+channelsnames[6017]="Venus";
+channels[6017]="S30.0W-83-105-502";
+channelsnames[6018]="Leo TV";
+channels[6018]="S23.5E-3-3219-13142";
+channelsnames[6019]="Vivid";
+channels[6019]="S19.2E-53-1105-4064";
+channelsnames[6020]="Vivid CZ";
+channels[6020]="S19.2E-53-1105-4065";
+channelsnames[6021]="Dorcel TV";
+channels[6021]="S19.2E-1-1094-17029";
+channelsnames[6022]="XXL";
+channels[6022]="S19.2E-1-1094-17054";
+channelsnames[6023]="Dorcel TV";
+channels[6023]="S19.2E-1-1094-17059";
+channelsnames[6024]="DORCEL XXX";
+channels[6024]="S19.2E-1-1096-8613";
+channelsnames[6025]="Hustler TV CZ";
+channels[6025]="S19.2E-53-1119-12884";
+channelsnames[6026]="XXL";
+channels[6026]="S13.0E-319-9900-468";
+channelsnames[6027]="SCT HD";
+channels[6027]="S13.0E-318-5000-10";
+channelsnames[6028]="Redlight 3D-HD";
+channels[6028]="S13.0E-318-15800-16932";
+channelsnames[6029]="Penthouse 3D";
+channels[6029]="S23.5E-3-3204-5311";
+channelsnames[6030]="EROXXX";
+channels[6030]="S23.5E-3-3212-14055";
+channelsnames[6031]="Brazzers.tv";
+channels[6031]="S23.5E-3-3202-6072";
+channelsnames[6032]="Hustler HD-3D";
+channels[6032]="S13.0E-318-15800-16933";
+channelsnames[6033]="Beate-Uhse.TV,BeateU";
+channels[6033]="S19.2E-133-17-21";
+channelsnames[6034]="PENTHOUSE HD";
+channels[6034]="S19.2E-1-1086-9907";
+channelsnames[6035]="PLAYBOY TV";
+channels[6035]="S19.2E-1-1060-30603";
+channelsnames[6036]="Brazzers.tv CZ";
+channels[6036]="S23.5E-3-3202-6073";
+channelsnames[6037]="Penthouse";
+channels[6037]="S23.5E-3-3222-20917";
+channelsnames[6038]="Penthouse CZ";
+channels[6038]="S23.5E-3-3222-20957";
+channelsnames[6039]="Hustler HD";
+channels[6039]="S23.5E-3-3211-20830";
+channelsnames[6040]="Hustler HD CZ";
+channels[6040]="S23.5E-3-3211-20831";
+channelsnames[6041]="Redlight 3D-HD!";
+channels[6041]="S13.0E-318-15800-16943";
+channelsnames[6042]="Hustler 3D-HD!";
+channels[6042]="S13.0E-318-15800-16944";
+channelsnames[6043]="XXL PL";
+channels[6043]="S13.0E-319-9900-469";
+channelsnames[6044]="Penthouse HD";
+channels[6044]="S23.5E-3-3236-5711";
+channelsnames[6045]="Penthouse HD1";
+channels[6045]="S23.5E-3-3236-5712";
+channelsnames[6046]="Penthouse HD2";
+channels[6046]="S23.5E-3-3236-5713";
+channelsnames[6047]="Hallo TV German free";
+channels[6047]="S19.2E-1-1117-13015";
+channelsnames[8001]="NPO 1";
+channels[8001]="T-8720-2214-1101";
+channelsnames[8002]="NPO 2";
+channels[8002]="T-8720-2214-1102";
+channelsnames[8003]="NPO 3";
+channels[8003]="T-8720-2214-1103";
+channelsnames[8004]="RTL 4";
+channels[8004]="T-8720-2211-11";
+channelsnames[8005]="RTL 5";
+channels[8005]="T-8720-2211-12";
+channelsnames[8006]="SBS 6";
+channels[8006]="T-8720-2211-14";
+channelsnames[8007]="RTL 7";
+channels[8007]="T-8720-2211-13";
+channelsnames[8008]="Veronica/Disney XD";
+channels[8008]="T-8720-2213-31";
+channelsnames[8009]="NET5";
+channels[8009]="T-8720-2211-15";
+channelsnames[8010]="ID";
+channels[8010]="T-8720-2244-44";
+channelsnames[8011]="RTL 8";
+channels[8011]="T-8720-2213-32";
+channelsnames[8012]="Nickelodeon/TeenNick";
+channels[8012]="T-8720-2244-41";
+channelsnames[8013]="Comedy Central";
+channels[8013]="T-8720-2213-35";
+channelsnames[8014]="Discovery Channel";
+channels[8014]="T-8720-2213-36";
+channelsnames[8015]="TLC";
+channels[8015]="T-8720-2212-25";
+channelsnames[8016]="National Geographic";
+channels[8016]="T-8720-2212-28";
+channelsnames[8017]="Eurosport";
+channels[8017]="T-8720-2213-37";
+channelsnames[8018]="één";
+channels[8018]="T-8720-2213-33";
+channelsnames[8019]="Canvas";
+channels[8019]="T-8720-2213-34";
+channelsnames[8020]="24Kitchen";
+channels[8020]="T-8720-2212-26";
+channelsnames[8021]="FOX";
+channels[8021]="T-8720-2244-42";
+channelsnames[8022]="CNN";
+channels[8022]="T-8720-2244-45";
+channelsnames[8023]="FOX Sports Ere 1";
+channels[8023]="T-8720-2212-21";
+channelsnames[8024]="FOX Sp.3/AT5/Cart.Nw.";
+channels[8024]="T-8720-2212-22";
+channelsnames[8025]="BBC One";
+channels[8025]="T-8720-2212-23";
+channelsnames[8026]="BBC Two";
+channels[8026]="T-8720-2212-27";
+channelsnames[8027]="TV Oost";
+channels[8027]="T-8720-2214-1104";
+channelsnames[8028]="TV Gelderland";
+channels[8028]="T-0-0-1104";
+channelsnames[8029]="Radio Gelderland";
+channels[8029]="T-0-0-1111";
+channelsnames[8030]="Radio Oost";
+channels[8030]="T-8720-2214-1111";
+channelsnames[8031]="NPO Radio 1";
+channels[8031]="T-8720-2214-1112";
+channelsnames[8032]="NPO Radio 2";
+channels[8032]="T-8720-2214-1113";
+channelsnames[8033]="NPO 3FM";
+channels[8033]="T-8720-2214-1114";
+channelsnames[8034]="NPO Radio 4";
+channels[8034]="T-8720-2214-1115";
+channelsnames[8035]="NPO Radio 5";
+channels[8035]="T-8720-2214-1116";
+channelsnames[8036]="NPO Radio 6";
+channels[8036]="T-8720-2214-1117";
+channelsnames[8037]="FunX";
+channels[8037]="T-8720-2214-1119";
+channelsnames[8038]="BNR Nieuwsradio";
+channels[8038]="T-8720-2212-217";
+channelsnames[8039]="Arrow Classic Rock";
+channels[8039]="T-8720-2212-218";
+channelsnames[8040]="Radio 538";
+channels[8040]="T-8720-2212-219";
+channelsnames[8041]="BBC Radio 1";
+channels[8041]="T-8720-2244-411";
+channelsnames[8042]="BBC Radio 2";
+channels[8042]="T-8720-2244-412";
+channelsnames[8043]="BBC Radio 3";
+channels[8043]="T-8720-2244-413";
+channelsnames[8044]="BBC Radio 4";
+channels[8044]="T-8720-2244-414";
+channelsnames[8045]="SubLime FM";
+channels[8045]="T-8720-2244-415";
+channelsnames[8046]="SLAM!FM";
+channels[8046]="T-8720-2211-111";
+channelsnames[8047]="Radio 10";
+channels[8047]="T-8720-2211-112";
+channelsnames[8048]="Q-Music";
+channels[8048]="T-8720-2211-113";
+channelsnames[8049]="100%NL";
+channels[8049]="T-8720-2211-114";
+channelsnames[8050]="Classic FM";
+channels[8050]="T-8720-2211-115";
+channelsnames[8051]="SkyRadio 101 FM";
+channels[8051]="T-8720-2211-116";
+channelsnames[8052]="Radio Veronica";
+channels[8052]="T-8720-2211-117";
+channelsnames[8053]="ZDF";
+channels[8053]="T-8468-514-514";
+channelsnames[8054]="3sat";
+channels[8054]="T-8468-514-515";
+channelsnames[8055]="ZDFinfo";
+channels[8055]="T-8468-514-516";
+channelsnames[8056]="neo/KiKA";
+channels[8056]="T-8468-514-517";
+channelsnames[8057]="arte";
+channels[8057]="T-8468-6144-2";
+channelsnames[8058]="arte";
+channels[8058]="T-8468-14849-2";
+channelsnames[8059]="arte OBSOLETE";
+channels[8059]="T-8720-2214-2";
+channelsnames[8060]="PHOENIX";
+channels[8060]="T-8468-6144-3";
+channelsnames[8061]="PHOENIX OBSOLETE";
+channels[8061]="T-8720-2214-3";
+channelsnames[8062]="PHOENIX";
+channels[8062]="T-8468-14849-3";
+channelsnames[8063]="Einsfestival";
+channels[8063]="T-8468-6144-5";
+channelsnames[8064]="Einsfestival OBSOLETE";
+channels[8064]="T-8720-2214-5";
+channelsnames[8065]="Einsfestival";
+channels[8065]="T-8468-14849-5";
+channelsnames[8066]="Das Erste";
+channels[8066]="T-8468-6144-256";
+channelsnames[8067]="Das Erste OBSOLETE";
+channels[8067]="T-8720-2214-256";
+channelsnames[8068]="Das Erste";
+channels[8068]="T-8468-14849-256";
+channelsnames[8069]="hr-fernsehen";
+channels[8069]="T-0-0-65";
+channelsnames[8070]="hr-fernsehen";
+channels[8070]="T-8468-38912-65";
+channelsnames[8071]="MDR FERNSEHEN";
+channels[8071]="T-0-0-100";
+channelsnames[8072]="MDR FERNSEHEN";
+channels[8072]="T-8468-38912-100";
+channelsnames[8073]="NDR FS NDS";
+channels[8073]="T-8468-38912-129";
+channelsnames[8074]="NDR FS NDS";
+channels[8074]="T-0-0-129";
+channelsnames[8075]="NDR FS HH*";
+channels[8075]="T-0-0-130";
+channelsnames[8076]="NDR FS HH*";
+channels[8076]="T-8468-38912-130";
+channelsnames[8077]="NDR FS SH*";
+channels[8077]="T-8468-38912-131";
+channelsnames[8078]="NDR FS SH*";
+channels[8078]="T-0-0-131";
+channelsnames[8079]="NDR FS MVP*";
+channels[8079]="T-0-0-132";
+channelsnames[8080]="NDR FS MVP*";
+channels[8080]="T-8468-38912-132";
+channelsnames[8081]="WDR Köln";
+channels[8081]="T-0-0-262";
+channelsnames[8082]="WDR Köln";
+channels[8082]="T-8468-38912-262";
+channelsnames[9001]="NPO Radio1";
+channels[9001]="S23.5E-3-3211-20860";
+channelsnames[9002]="NPO Radio2";
+channels[9002]="S23.5E-3-3211-20862";
+channelsnames[9003]="NPO 3FM";
+channels[9003]="S23.5E-3-3211-20864";
+channelsnames[9004]="NPO Radio4";
+channels[9004]="S23.5E-3-3211-20866";
+channelsnames[9005]="NPO Radio5";
+channels[9005]="S23.5E-3-3211-20867";
+channelsnames[9006]="NPO Radio6";
+channels[9006]="S23.5E-3-3211-20868";
+channelsnames[9007]="Radio Oost";
+channels[9007]="S23.5E-3-3211-20844";
+channelsnames[9008]="Radio Gelderland";
+channels[9008]="S23.5E-3-3211-20846";
+channelsnames[9009]="Radio Veronica";
+channels[9009]="S23.5E-3-3211-20870";
+channelsnames[9010]="Sky Radio";
+channels[9010]="S23.5E-3-3211-20872";
+channelsnames[9011]="Classic FM";
+channels[9011]="S23.5E-3-3211-20874";
+channelsnames[9012]="Radio 538";
+channels[9012]="S23.5E-3-3211-20876";
+channelsnames[9013]="Radio 10";
+channels[9013]="S23.5E-3-3211-20878";
+channelsnames[9014]="Slam FM";
+channels[9014]="S23.5E-3-3211-20880";
+channelsnames[9015]="BNR Nieuwsradio";
+channels[9015]="S23.5E-3-3211-20882";
+channelsnames[9016]="Funx";
+channels[9016]="S23.5E-3-3211-20896";
+channelsnames[9017]="Radio10Gold";
+channels[9017]="S19.2E-53-1097-2067";
+channelsnames[9018]="Nostalgie";
+channels[9018]="S19.2E-53-1119-12789";
+channelsnames[9019]="100% NL";
+channels[9019]="S23.5E-3-3211-20890";
+channelsnames[9020]="Arrow Jazz";
+channels[9020]="S19.2E-53-1097-2062";
+channelsnames[9021]="Mint";
+channels[9021]="S19.2E-53-1097-2080";
+channelsnames[9022]="Bel RTL";
+channels[9022]="S19.2E-53-1097-2081";
+channelsnames[9023]="Radio Contact";
+channels[9023]="S19.2E-53-1097-2082";
+channelsnames[9024]="Pure FM";
+channels[9024]="S19.2E-53-1097-2085";
+channelsnames[9025]="Classic21";
+channels[9025]="S19.2E-53-1097-2086";
+channelsnames[9026]="VivaCite";
+channels[9026]="S19.2E-53-1097-2087";
+channelsnames[9027]="Musiq 3";
+channels[9027]="S19.2E-53-1097-2088";
+channelsnames[9028]="La Premiere";
+channels[9028]="S19.2E-53-1097-2089";
+channelsnames[9029]="RTL 1440";
+channels[9029]="S19.2E-53-1105-4060";
+channelsnames[9030]="VRT Radio1";
+channels[9030]="S19.2E-53-1119-12778";
+channelsnames[9031]="VRT Radio2";
+channels[9031]="S19.2E-53-1119-12779";
+channelsnames[9032]="COUNTRY RADIO";
+channels[9032]="S23.5E-3-3219-13150";
+channelsnames[9050]="Arrow Classic Rock";
+channels[9050]="S23.5E-3-3211-20892";
+channelsnames[9051]="ROCK ANTENNE,ROCK ANT";
+channels[9051]="S19.2E-133-7-160";
+channelsnames[9052]="Planet Rock";
+channels[9052]="S28.2E-2-2407-9575";
+channelsnames[9053]="Radio Beat";
+channels[9053]="S23.5E-3-3209-13120";
+channelsnames[9054]="1LIVE";
+channels[9054]="S19.2E-1-1093-28475";
+channelsnames[9055]="1LIVE diggi";
+channels[9055]="S19.2E-1-1093-28481";
+channelsnames[9056]="ANTENNE BAYERN,ANTENNE";
+channels[9056]="S19.2E-133-7-170";
+channelsnames[9057]="radio top40";
+channels[9057]="S19.2E-1-1113-12653";
+channelsnames[9058]="Musicam 1";
+channels[9058]="S30.0W-2-15-15";
+channelsnames[9059]="Musicam 2";
+channels[9059]="S30.0W-2-15-16";
+channelsnames[9060]="Musicam 3";
+channels[9060]="S30.0W-2-15-17";
+channelsnames[9061]="Musicam 4";
+channels[9061]="S30.0W-2-15-18";
+channelsnames[9062]="Musicam 5";
+channels[9062]="S30.0W-2-15-19";
+channelsnames[9063]="Musicam 6";
+channels[9063]="S30.0W-2-15-20";
+minChan[0] = 1;
+maxChan[0] = 954;
+baseChn[0] = 0;
+minChan[1] = 1001;
+maxChan[1] = 1967;
+baseChn[1] = 1000;
+minChan[2] = 2000;
+maxChan[2] = 2228;
+baseChn[2] = 2000;
+minChan[3] = 3000;
+maxChan[3] = 3607;
+baseChn[3] = 3000;
+minChan[4] = 4001;
+maxChan[4] = 4830;
+baseChn[4] = 4000;
+minChan[5] = 5000;
+maxChan[5] = 5100;
+baseChn[5] = 5000;
+minChan[6] = 6001;
+maxChan[6] = 6047;
+baseChn[6] = 6000;
+minChan[8] = 8001;
+maxChan[8] = 8082;
+baseChn[8] = 8000;
+minChan[9] = 9001;
+maxChan[9] = 9063;
+baseChn[9] = 9000;
+
+defChan[0] = 10  ; protChn[0] = 0;
+defChan[1] = 1001; protChn[1] = 0;
+defChan[2] = 2000; protChn[2] = 0;
+defChan[3] = 3000; protChn[3] = 0;
+defChan[4] = 4145; protChn[4] = 0;
+defChan[5] = 5000; protChn[5] = 0;
+defChan[6] = 6001; protChn[6] = 1;
+defChan[7] = 7000; protChn[7] = 0;
+defChan[8] = 8001; protChn[8] = 0;
+defChan[9] = 9051; protChn[9] = 0;
+Chan_Ver = "11/03/14 23:51:46" ;
diff --git a/javascript/main.js b/javascript/main.js
new file mode 100644
index 0000000..3c07f40
--- /dev/null
+++ b/javascript/main.js
@@ -0,0 +1,5048 @@
+window.onkeydown = onKeyDown;
+
+function onLoad() {
+
+	is = toi.informationService;
+	ss = toi.schedulerService;
+	aos = toi.audioOutputService;
+	vos = toi.videoOutputService;
+	fps = toi.frontPanelService;
+	ams = toi.assetManagerService;
+
+	GetSettings();
+	createPlayer();
+	createEitCache();
+
+	if(pipPlayer){
+		addPipVideoplane();
+		createPip();
+	}
+	if(PipSwitchGuide){
+		createPip();
+	}
+
+	embedTeletextPlugin();
+	aos.setVolume(AudioOut, StartVolume);
+	aos.setMuteState(AudioOut, false);
+	showDisplay(currChan.toString(), false, 100, 0 );
+	play(channels[currChan]);
+
+	if (EPGMode) {
+		eitCache.setFilterMode(eitCache.FILTER_MODE_PF_AND_SCHEDULE);
+	} else {
+		eitCache.setFilterMode(eitCache.FILTER_MODE_PF_ONLY);
+	}
+	eitCache.addEventListener(eitCache.ON_CACHE_UPDATED, onCacheUpdated);
+	mediaPlayer.addEventListener(mediaPlayer.ON_DATA_AVAILABLE,onDataAvailableEvent);
+	mediaPlayer.addEventListener(mediaPlayer.ON_STATE_CHANGED, MPD); 
+
+	if (is.getObject("var.capabilities.dvr") == "FALSE") { 
+		mediaRecorder = 0;
+		// No harddisk, no recorder functions possible
+	}
+
+	if (is.getObject("config.architecture.target") !== "vip1903" && fullupdate !== 2) { 
+		fullupdate = 0;
+		// No 19x3 so better turn fullupdate EPG off
+	}
+
+	if (mediaRecorder) {
+		createRecorder();
+		mediaRecorder.addEventListener(mediaRecorder.ON_STATE_CHANGED, onRecorderStateChanged);
+		om = toi.assetManagerService.getAssetOperationManager(); //toi.OperationManager;
+		rma = om.createOperation("Remove Asset");
+	}
+
+	    is.addEventListener(is.ON_OBJECTS_CHANGED, onEvent);
+	    is.subscribeObject(onEvent, "var.io.state", true);
+
+	    ss.addEventListener(ss.ON_SCHEDULED_START, onScheduledStart);
+	    ss.addEventListener(ss.ON_SCHEDULED_STOP, onScheduledStop);
+	    ss.setCategorySubscription(onScheduledStart, "*");
+	    ss.setCategorySubscription(onScheduledStop, "*");
+
+	setOSDscale();
+	setOSDtimer();
+	showOSD();
+	videoplane.subtitles = Boolean(ShowSubs);
+	colorkeys.innerHTML = "<span class=redkey> " +  NN[4] + " </span><span class=greenkey > " + NN[1] + " </span><span class=yellowkey> " + NN[2] + " </span><span class=bluekey> " + NN[5] + " </span>";
+	medialist.innerHTML = "<h1 class=mainmenu>" + Lang[0] + "</h1>";
+}
+
+
+
+
+function GetSettings() {
+	//test for settings, create if not excists.
+	try {
+		if (!is.getObject("vip.serveraddress")) {} 
+	} catch(e) {
+		is.setObject("vip.serveraddress","0",is.STORAGE_PERMANENT)
+	}
+
+	try {
+		if (!is.getObject("vip.languagepriority")) {} 
+	} catch(e) {
+		is.setObject("vip.languagepriority","0",is.STORAGE_PERMANENT)
+	}
+
+	try {
+		if (!is.getObject("vip.OSDlanguage")) {} 
+	} catch(e) {
+		is.setObject("vip.OSDlanguage","0",is.STORAGE_PERMANENT)
+	}
+
+	try {
+		if (!is.getObject("vip.testing")) {} 
+	} catch(e) {
+		is.setObject("vip.testing","0",is.STORAGE_PERMANENT)
+	}
+
+
+	try {
+		if (!is.getObject("vip.resolution")) {} 
+	} catch(e) {
+		is.setObject("vip.resolution","2",is.STORAGE_PERMANENT)
+	}
+
+	try {
+		if (!is.getObject("vip.testing2")) {} 
+	} catch(e) {
+		is.setObject("vip.testing2","0",is.STORAGE_PERMANENT)
+		//show info if channel is on hardcoded list of non free
+	}
+
+	try {
+		if (!is.getObject("vip.fav_max_channel")) {} 
+	} catch(e) {
+		is.setObject("vip.fav_max_channel","0",is.STORAGE_PERMANENT)
+	}
+
+	try {
+		if (!is.getObject("vip.showsubs")) {} 
+	} catch(e) {
+		is.setObject("vip.showsubs","1",is.STORAGE_PERMANENT)
+	}
+
+
+	try {
+		if (!is.getObject("vip.css_nr")) {} 
+	} catch(e) {
+		is.setObject("vip.css_nr","0",is.STORAGE_PERMANENT)
+	}
+
+	var sel_group;
+	for (var i=0;i<10;i++) {
+		sel_group = "vip.group." + i;
+		try {
+			if (!is.getObject(sel_group)) {} 
+		} catch(e) {
+			if (!minChan[i]) {
+				is.setObject(sel_group,"0",is.STORAGE_PERMANENT)
+			} else {
+				is.setObject(sel_group,"1",is.STORAGE_PERMANENT)
+			}
+		}
+	}
+
+	for (var i=0;i<10;i++) {
+		if (minChan[i]) {minchan[i] = minChan[i];}
+		sel_group = "vip.group." + i;
+		if (is.getObject(sel_group) == "0") { minChan[i] = "";}
+	}
+
+	audio = Number(is.getObject("vip.languagepriority"));
+	server_ip = server_ip_array[Number(is.getObject("vip.serveraddress"))];
+	for (var i=0;i<10;i++) { if (ServerAdres[i] !== "FullURL" && ServerAdres[i] !== "MultiCast") {ServerAdres[i] = server_ip + StreamPort;} }
+	ServerAdres[Fav_group] = server_ip + StreamPort;
+
+	lang_nr = Number(is.getObject("vip.OSDlanguage"));
+	loadjs(langfile[lang_nr]);
+
+	experimental = Number(is.getObject("vip.testing"));// Use some experimental code
+	testing2 = Number(is.getObject("vip.testing2"));// Use some experimental code
+	ShowSubs = Number(is.getObject("vip.showsubs"));
+	css_nr = Number(is.getObject("vip.css_nr"));
+	loadcss(cssfile[css_nr]);
+
+	Set_Res = Number(is.getObject("vip.resolution"));
+	VideoOutput();
+	Read_Fav();
+
+	is.setObject("cfg.media.subtitling.languagepriority",subs_prio,is.STORAGE_PERMANENT);
+	// set default subtitle language to 
+
+
+	//if needed types can be set here. Default of the box is normal.
+	//is.setObject("cfg.media.subtitling.typepriority","hearing_impaired",is.STORAGE_PERMANENT);
+	//is.setObject("cfg.media.subtitling.typepriority","normal",is.STORAGE_PERMANENT);
+	//is.setObject("cfg.media.audio.typepriority","normal",is.STORAGE_PERMANENT);
+	//is.setObject("cfg.media.audio.typepriority","hearing_impaired",is.STORAGE_PERMANENT);
+	//is.setObject("cfg.media.audio.typepriority","visually_impaired",is.STORAGE_PERMANENT);
+
+
+	for (var x = 0;  x < 10; x++) { 
+		searchtimers[x] = "" ; // To solve displaying undefined
+		timers[x] = "" ;
+		if (maxChan[x]) { //check changed to maxChan because minChan can be unset from menu
+			for (var i = minChan[x];  i < (maxChan[x]+1); i++) { 
+			EPG[0][4][i] = "";EPG[1][4][i] = "";EPG[0][5][i] = "";EPG[1][5][i] = "";
+			EPG[0][7][i] = "";EPG[1][7][i] = "";AvInfo[i] = "";
+			}
+		}
+	}
+	for (var i = minChan[Fav_group];  i < (maxChan[Fav_group]+10); i++) { 
+		EPG[0][4][i] = "";EPG[1][4][i] = "";EPG[0][5][i] = "";EPG[1][5][i] = "";EPG[0][7][i] = "";EPG[1][7][i] = "";AvInfo[i] = "";
+	}
+	//Check if there is a SmartTV or Restfulapi VDR server plugin but not when box ip isn't the same range as server ip
+ 	test_ip = server_ip.split(".");
+	box_ip = (is.getObject("config.ipaddress")).split(".");
+
+	if (("http://" + box_ip[0] == test_ip[0]) && (box_ip[1] == test_ip[1]) && (box_ip[2] == test_ip[2])) {
+		CheckPlugins();
+	}
+
+// override check for testing :
+//	smartTVplugin = 0 ;
+//	Restfulapiplugin = 1;
+	if (smartTVplugin && Restfulapiplugin == 0) {
+		// smartTVplugin YES
+		// Restfulapiplugin NO
+		get_timer = 1;
+		if (get_recordings == 0 ) {get_recordings = 1;}
+		get_marks = 1;
+	} else if (smartTVplugin == 0 && Restfulapiplugin) {
+		// smartTVplugin NO
+		// Restfulapiplugin YES
+		get_timer = 0;
+		if (get_recordings == 1 ) {get_recordings = 0;}
+		get_marks = 0;
+	} else if (smartTVplugin == 0 && Restfulapiplugin == 0) {
+		// smartTVplugin NO
+		// Restfulapiplugin NO
+		get_recordings = 2; //from streamdev
+	}
+}
+
+function loadjs(filename){
+	var oHead = document.getElementsByTagName('HEAD').item(0);
+	var oScript= document.createElement("script");
+	oScript.type = "text/javascript";
+	oScript.src= filename;
+	oHead.appendChild( oScript);
+}
+
+function loadcss(filename){
+	var oHead = document.getElementsByTagName('HEAD').item(0);
+	var oScript= document.createElement("link");
+	oScript.type = "text/css";
+	oScript.rel = "stylesheet";
+	oScript.href = filename;
+	oHead.appendChild( oScript);
+}
+
+
+function onEvent(event) {
+var numObjs = event.objectNames.length;
+  for (var i=0; i<numObjs; i++) {
+	if(event.objectNames[i] == "var.io.state" && is.getObject(event.objectNames[i]) == "standby" && KillStream == 1){
+		try {
+			if (isMediaMenu) { 
+				if (medialist.style.opacity == 0) {setResume();} // No mediamenu on screen so set resume.
+			}
+			mediaPlayer.close();
+			SetLed(2,2,0);// At request no more blinking on standby.
+
+		} catch(e) {
+		alert(e);
+		}
+	} else if(event.objectNames[i] == "var.io.state" && is.getObject(event.objectNames[i]) == "normal" && KillStream == 1){
+		play(channels[currChan]);
+		if(isMediaMenu) {
+			if (mediaList.style.opacity == 0) {
+			if (get_recordings == 1) {
+			setTimeout("GetMarks(); getResume(); playRec(recLink[currMed]+ '?mode=streamtoend&time=' + position);",100);
+			} else if (get_recordings == 2) {
+			setTimeout("playRec(recLink[currMed]+ '?pos=time.' + position);",100);
+			}
+
+			} else {
+				showDisplay("STOP", false, 100, 0 );
+				showMediaList();
+			}
+		}
+	}
+  }
+}
+	
+function onUnload() {
+	try {
+		mediaPlayer.close();
+		mediaPlayer.releaseInstance();
+	if(TimeShift){
+		mediaPlayer.stopTimeshiftBuffering();
+		mediaPlayer.discardTimeshiftBuffer();
+		}
+	if(mediaRecorder){
+		om.releaseOperation(rma);
+		mediaRecorder.close();
+		mediaRecorder.releaseInstance();
+	}
+	if(pipPlayer){
+		pipPlayer.close();
+		pipPlayer.releaseInstance();
+	}
+
+	is.removeEventListener(is.ON_OBJECTS_CHANGED, onEvent);
+	eitCache.removeEventListener(eitCache.ON_CACHE_UPDATED, onCacheUpdated);
+	mediaPlayer.removeEventListener(mediaPlayer.ON_DATA_AVAILABLE,onDataAvailableEvent);
+	mediaPlayer.removeEventListener(mediaPlayer.ON_STATE_CHANGED, MPD); 
+	mediaRecorder.removeEventListener(mediaRecorder.ON_STATE_CHANGED, onRecorderStateChanged);
+
+	} catch(e) {
+		alert(e);
+	}
+}
+
+function incChan(step) {
+    currChan += step;
+    if (currChan > maxChan[ChanGroup]) {
+        currChan = minChan[ChanGroup];
+    }
+    osdmain.style.opacity = isFullscreen; 
+    OSDchannr(currChan);
+}
+
+function decChan(step) {
+    currChan -= step;
+    if (currChan < minChan[ChanGroup] ) {
+        currChan = maxChan[ChanGroup] ;
+    }
+    osdmain.style.opacity = isFullscreen; 
+    OSDchannr(currChan);
+}
+
+function VolumeUp() {
+	if (Volume < 5) {
+		var VolStep = 1;
+	} else {
+		var VolStep = VolumeStep;
+	}
+
+	Volume += VolStep;
+        if (Volume > 100) {
+            Volume = 100;
+        }
+        aos.setVolume(AudioOut, Volume);
+	showVolume();
+}
+
+function VolumeDown() {
+	if (Volume > 5) {
+		var VolStep = VolumeStep;
+	} else {
+		var VolStep = 1;
+	}
+
+	Volume -= VolStep;
+        if (Volume < 0) {
+            Volume = 0;
+        }
+        aos.setVolume(AudioOut, Volume);
+	showVolume();
+}
+
+
+function VolumeMute() {
+	state = aos.getMuteState(AudioOut);
+	aos.setMuteState(AudioOut, !state);
+	mute = 1 - state;
+        osdmute.style.opacity = mute; 
+}
+
+function createEitCache() {
+  try {
+	eitCache = toi.dvbEitService.createInstance();
+  } catch(e) {
+    alert("Failed getting eitCache: " + e);
+  }
+}
+
+function createPlayer() {
+  try {
+    mediaPlayer = toi.mediaService.createPlayerInstance();
+  } catch(e) {
+    alert("Failed creating player: " + e);
+  }
+}
+
+
+function createRecorder() {
+	try {
+		mediaRecorder = toi.mediaService.createRecorderInstance();
+	} catch(e) {
+		alert("Cannot create media recorder: " + e);
+		mediaRecorder = "";
+	}
+}
+
+function createPip() {
+  try {
+    pipPlayer = toi.mediaService.createPipPlayerInstance();
+  } catch(e) {
+    alert("Failed creating PIP player: " + e);
+  }
+}
+
+
+function addPipVideoplane() {
+  var pipVideoDiv = document.getElementById("pipVideoDiv");
+  pipVideoDiv.innerHTML = "<videoplane id='pipvideoplane' index=1 style='position:fixed;left:70%;top:60%;height:20%;width:20%;z-index:50;'></videoplane>";
+  document.body.appendChild(pipVideoDiv);
+}
+
+function pipplay(uri) {
+try {
+	if (pipPlayer.getState() != pipPlayer.STATE_IDLE) {
+		pipPlayer.close();
+	 }
+	if (PIPDelayID != -1) { clearTimeout(PIPDelayID); PIPDelayID = -1; }
+
+	if (ServerAdres[ChanGroup] == "MultiCast" ) {
+ 	SI=channels[currChan].split("-");
+	uri = SI[4];
+	} else if (ServerAdres[ChanGroup] == "FullURL" ) {
+	// uri = ready!
+	} else {
+	uri = ServerAdres[ChanGroup] + uri;
+	}
+	pipPlayer.open(uri);
+	PIPDelayID = setTimeout("pipPlayer.play(1000);", 500);
+  } catch (e) {
+    alert("Failed opening PIP stream: " + e);
+    return;
+  }
+}
+
+
+function play(uri) {
+  try {
+    if (initialDelayID != -1) { clearTimeout(initialDelayID); initialDelayID = -1; }
+    if (PlayDelayID != -1) { clearTimeout(PlayDelayID); PlayDelayID = -1; }
+    if (initialDelayPlayID != -1) { clearTimeout(initialDelayPlayID); initialDelayPlayID = -1; }
+
+    if (mediaPlayer.getState() != mediaPlayer.STATE_IDLE) { mediaPlayer.close(); }
+    if (isSchedule) { schedule.style.opacity = 0; isSchedule = 0;}
+    if (epgactive) { osdepginfo.style.opacity = 0; osdepginfonext.style.opacity = 0; epgactive = 0;}
+
+    if (ServerAdres[ChanGroup] == "MultiCast" ) { SI=channels[currChan].split("-"); uri = SI[4];
+    } else if (ServerAdres[ChanGroup] == "FullURL" ) {	// uri = ready!
+    } else { uri = ServerAdres[ChanGroup] + uri; }
+
+    URL = uri;
+    initialDelayPlayID = setTimeout("mediaPlayer.open(URL);mediaPlayer.play(1000);GetEPG(currChan);ExtraStuff();",initialDelayPlay);
+    initialDelayPlay = 500; // wait 500 ms before zap to next channel
+    PlayDelayID = setTimeout("initialDelayPlay = 0;",5000);
+    SetLed(1,1,0);
+
+    if(isFullscreen) { showOSD(); }
+
+    showDisplay(currChan.toString(), false, 100, 0 );
+        
+  } catch (e) {
+    alert("Failed opening stream: " + e);
+    return;
+  }
+}
+
+function preview(urip) {
+	if(SwitchGuide) {
+		play(urip);
+	} else if (PipSwitchGuide && fullupdate) {
+		pipplay(urip);
+	}
+
+	if (isSchedule) { schedule.style.opacity = 0; isSchedule = 0;}
+	if (epgactive) { osdepginfo.style.opacity = 0; osdepginfonext.style.opacity = 0; epgactive = 0;}
+	showChannelList();
+}
+
+
+function onDataAvailableEvent(event) {
+	dataAvailable = event.status;
+	//alert("onDataAvailableEvent : " + event.status);
+	if(event.status==true) {
+		updateStreamInfo(currChan);
+	} 
+}
+
+
+function updateStreamInfo(currStream) {
+
+var streamInfo = mediaPlayer.getStreamInfo();
+var cList = streamInfo.availableComponents;
+var x;
+var xs = 0;
+var subs = "";
+if (currMed!= -1) {
+	if (streamInfo.playTime != -1) {
+		recDura[currMed] = streamInfo.playTime;
+	}
+}
+xx = 0;
+AvInfo[currStream] = "";
+lang_prio_dyn.length = 0;
+subs_prio_dyn.length = 0;
+Radioicon = "\uE00E";
+
+for(x=0; x<cList.length;x++) {
+	if(cList[x].type == 0) {
+	lang_prio_dyn[xx] = mediaPlayer.getAudioStreamInfo(cList[x]).language;
+	AvInfo[currStream] = AvInfo[currStream] + " Audio " + xx + " " + mediaPlayer.getAudioStreamInfo(cList[x]).encoding + " - " + mediaPlayer.getAudioStreamInfo(cList[x]).language + " , ";
+
+	//
+//	alert (mediaPlayer.getAudioStreamInfo(cList[x]).sampleRate);
+//	alert (mediaPlayer.getAudioStreamInfo(cList[x]).channelFormat);
+	// AUDIO_CHANNEL_FORMAT_UNKNOWN = 0
+	// AUDIO_CHANNEL_FORMAT_SINGLE_MONO = 1
+	// AUDIO_CHANNEL_FORMAT_DUAL_MONO = 2
+	// AUDIO_CHANNEL_FORMAT_STEREO = 3
+	// AUDIO_CHANNEL_FORMAT_3_FRONT_1_BACK = 4
+	// AUDIO_CHANNEL_FORMAT_3_FRONT_2_BACK = 5
+	// AUDIO_CHANNEL_FORMAT_3_FRONT_2_BACK_LFE = 6
+	// AUDIO_CHANNEL_FORMAT_3_FRONT_2_SIDE_2_BACK_LFE = 7
+//	alert (mediaPlayer.getAudioStreamInfo(cList[x]).channelMode);
+	// AUDIO_CHANNEL_MODE_NORMAL = 0
+	// AUDIO_CHANNEL_MODE_DUAL_MONO_LEFT_ONLY = 1
+	// AUDIO_CHANNEL_MODE_DUAL_MONO_RIGHT_ONLY = 2
+	// AUDIO_CHANNEL_MODE_DUAL_MONO_STEREO = 3
+	// AUDIO_CHANNEL_MODE_DUAL_MONO_MIXED = 4
+
+	if (lang_prio_dyn[xx] !== "NAR") { 
+		xx += 1; 
+	} else { 
+		lang_prio_dyn.length = xx;
+	}
+
+
+	}
+	if(cList[x].type == 1) {
+	Radioicon = "\uE00F";
+	AvInfo[currStream] = AvInfo[currStream] + " Video " + mediaPlayer.getVideoStreamInfo(cList[x]).encoding + " size : " + mediaPlayer.getVideoStreamInfo(cList[x]).resolutionX + " x " + mediaPlayer.getVideoStreamInfo(cList[x]).resolutionY;
+	if (mediaPlayer.getVideoStreamInfo(cList[x]).aspectRatio == "0") { AvInfo[currStream] = AvInfo[currStream] + " (?:?)"; }
+	if (mediaPlayer.getVideoStreamInfo(cList[x]).aspectRatio == "1") { AvInfo[currStream] = AvInfo[currStream] + " (4:3)"; }
+	if (mediaPlayer.getVideoStreamInfo(cList[x]).aspectRatio == "2") { AvInfo[currStream] = AvInfo[currStream] + " (16:9)"; }
+	}
+
+	if(cList[x].type == 2) {
+		if (xs == 0) { subs = " SUBS : " } else { subs += " , ";}
+		subs_prio_dyn[xs] = mediaPlayer.getSubtitleStreamInfo(cList[x]).language;
+		subs = subs + subs_prio_dyn[xs];
+		xs += 1;
+	}
+
+	if(cList[x].type == 3) {
+	alert("COMPONENT_SUBTITLE_CAPTION");
+	//This is an ARIB specific type of subtitles
+	}
+	if(cList[x].type == 4) {
+	alert("COMPONENT_SUBTITLE_SUPERIMPOSE");
+	//This is an ARIB specific type of subtitles and used mainly for displaying alert messages on screen.
+	}
+	if(cList[x].type == 5) {
+//		alert("TeletextStreamInfo : " + mediaPlayer.getTeletextStreamInfo(cList[x]).language)
+		AvInfo[currStream] += " TXT";
+	}
+
+
+	}
+	AvInfo[currStream] += subs;
+}
+
+
+function VideoOutput() {
+
+videoConfig = vos.getVideoConfiguration();
+
+ var session = null;
+  try {
+    var currentOutput = 0; //0 = normaly HDMI
+    displayInfo=videoConfig.getDisplayInfo(videoConfig.getVideoOutputs()[currentOutput]);
+    var desiredMode = VideoOutputModes[Set_Res];
+
+    // create the session
+    session = vos.createVideoConfigurationSession();
+    session.setDefaultVideoMode(videoConfig.getVideoOutputs()[currentOutput], desiredMode);
+    session.apply();
+    session.releaseInstance();
+
+  }
+  catch (e) {
+    if (session != null) {
+      session.releaseInstance();
+    }
+    alert(e);
+  }
+
+setOSDscale();
+
+}
+
+function addzero(zero)
+{
+if (zero<10)
+  {
+  zero="0" + zero;
+  }
+
+return zero;
+}
+
+function ExtraStuff(){
+	if(TimeShift){
+	    initialDelayID = setTimeout("startTimeshiftBuffering();", 5000);
+	}
+	if(testing2) {
+			if (CAdelayID != -1) { clearTimeout(CAdelayID); CAdelayID = -1; switchtimer.style.opacity = 0;}
+		if ( 	(currChan > 10 && currChan < 26 )  || (currChan > 40 && currChan < 50 )   || (currChan > 50 && currChan < 120 ) ||
+			(currChan > 151 && currChan < 200) || (currChan > 604 && currChan < 612 ) || (currChan > 624 && currChan < 631) ||
+			(currChan > 632 && currChan < 700) || (currChan > 8004 && currChan < 8027) )
+		{
+			//Show info if set nonfree
+			switchtimer.style.background = "red";
+			switchtimer.innerHTML = "<pre class=nonfree>\n" + Lang[90] +"\n\n </pre>"; // Non free channel message
+			switchtimer.style.opacity = 1;
+			CAdelayID = setTimeout("switchtimer.style.opacity = 0;",ShowSetTimer);
+		}
+	}
+
+}
+
+function startTimeshiftBuffering() {
+    // check that media player is working
+    if (mediaPlayer.getState() != mediaPlayer.STATE_PLAYING ) {
+      alert("Media Player must be playing when starting timeshift buffering!");
+      return;
+    }
+
+    mediaPlayer.startTimeshiftBuffering(600);
+}
+
+
+function FullScreen() {
+	videoplane.style.width = "100%";
+	videoplane.style.height = "100%";
+	videoplane.style.left = "0px";
+	videoplane.style.top = "0px";
+	if(PipSwitchGuide){
+		if (pipPlayer.getState() != pipPlayer.STATE_IDLE) {
+			pipPlayer.close();
+		 }
+	}
+}
+
+
+function onKeyDown(event) {
+//show key info, needed when a 'new' remote is used
+//alert( "keyIdentifier  : " + event.keyIdentifier +"\n"+"ctrlKey    : " + event.ctrlKey +"\n"+"altKey     : " + event.altKey  +"\n"+"shiftKey  : " + event.shiftKey +"\n"+"RAW  : " + event );
+
+    if(isVisible) {
+ 	onKeyTeletext(event.keyIdentifier);
+    } else if(isSetupMenu) {
+	onKeyMenu(event.keyIdentifier);
+    } else if(isMediaMenu) {
+	onKeyMedia(event.keyIdentifier);
+    } else {
+
+    switch(event.keyIdentifier) {
+
+    case "ChannelUp":
+    case "Up":
+	if(isFullscreen) {
+		count = 0; Change = 0;
+		prevChan = currChan;
+		do
+		{
+		        incChan(1);
+		}
+		while (!channels[currChan]);
+	        play(channels[currChan]);
+	} else {
+	// swap up <> down in guide mode
+		count = 0; Change = 0;
+		do
+		{
+		        decChan(1);
+		}
+		while (!channels[currChan]);
+	        preview(channels[currChan]);
+	}
+        break;
+    case "ChannelDown":
+    case "Down":
+	if(isFullscreen) {
+		count = 0; Change = 0;
+		prevChan = currChan;
+		do
+		{
+		        decChan(1);
+		}
+		while (!channels[currChan]);
+	        play(channels[currChan]);
+	} else {
+	// swap up <> down in guide mode
+		count = 0; Change = 0;
+		do
+		{
+		        incChan(1);
+		}
+		while (!channels[currChan]);
+	        preview(channels[currChan]);
+	}
+	break;
+    case "Left":
+	count = 0; Change = 0;
+	if(isFullscreen) {
+	defChan[ChanGroup] = currChan;
+	do
+		{
+		do
+			ChanGroup -= 1;
+		while (protChn[ChanGroup] == 1 && ShowProtectedChannels == 1) 
+		if (ChanGroup < 0) {
+			ChanGroup = 9;
+			}
+		}
+	while (!minChan[ChanGroup]);
+	currChan = defChan[ChanGroup];
+	play(channels[currChan]);
+	} else {
+	prevChan = currChan;
+	if (currChan > (minChan[ChanGroup] + 8)) {
+	decChan(9);
+	} else {
+		currChan = baseChn[ChanGroup] + (maxChan[ChanGroup] - currChan);
+	}
+	do
+	{
+	        decChan(1);
+	}
+	while (!channels[currChan]);
+        preview(channels[currChan]);
+	}
+	break;
+    case "Right":
+	count = 0; Change = 0;
+	if(isFullscreen) {
+	defChan[ChanGroup] = currChan;
+	do
+		{
+		do
+			ChanGroup += 1;
+		while (protChn[ChanGroup] == 1 && ShowProtectedChannels == 1)
+		if (ChanGroup > 9) {
+			ChanGroup = 0;
+			}
+		}
+	while (!minChan[ChanGroup]);
+	currChan = defChan[ChanGroup];
+	play(channels[currChan]);
+
+	} else {
+	prevChan = currChan;
+	if (currChan < (maxChan[ChanGroup] - 9 )) {
+	incChan(9);
+	} else {
+		currChan = baseChn[ChanGroup] + (maxChan[ChanGroup] - currChan);
+	}
+	do
+	{
+	        incChan(1);
+	}
+	while (!channels[currChan]);
+        preview(channels[currChan]);
+	}
+	break;
+  case "Red":
+	if(isFullscreen) {
+		if(showClock == 0 )	{
+		 	showDisplay("", true, 80, 1 );
+			showClock = 1;
+		} else if(showClock == 1 ) {
+			showClock = 0;
+			showDisplay(currChan.toString(), false, 100, 0 );
+		}
+	} else if(isSchedule == 0){
+	   if(NowNext) {	
+		settimer(EPG[1][2][currChan],EPG[1][1][currChan],0,1,"",(EPG[1][4][currChan] + EPG[1][5][currChan]),EPG[1][6][currChan].toString());
+	   }
+	}
+        break;
+   case "Green":
+	if(isFullscreen) {
+		if(!epgactive) {
+			if (audio_dyn < (lang_prio_dyn.length -1)) { audio_dyn += 1} else { audio_dyn = 0 }
+			if (lang_prio_dyn.length > 1) {
+				is.setObject("cfg.media.audio.languagepriority",lang_prio_dyn[audio_dyn] + "," + lang_prio[audio],is.STORAGE_PERMANENT);
+				osdlang.style.opacity = 1;
+				osdlang.innerHTML = "<img src='unmute.png'> " + lang_prio_dyn[audio_dyn] + " ";
+				setTimeout("osdlang.style.opacity = 0; ", 3000);
+			}
+		}
+	} else if(isSchedule == 0 && !epgactive){
+		colorkeys.innerHTML = "<span class=redkey> " +  NN[3 + NowNext] + " </span><span class=greenkey > " + NN[NowNext] + " </span><span class=yellowkey> " + NN[2] + " </span><span class=bluekey> " + NN[5] + " </span>";
+		NowNext = 1 - NowNext;
+		showChannelList();
+	}
+
+	if(epgactive) {
+		NowNext = 1 - NowNext;
+		osdepginfo.style.opacity = 1 - osdepginfo.style.opacity ;
+		osdepginfonext.style.opacity = 1 - osdepginfo.style.opacity;
+	}
+
+
+	break;
+   case "Yellow":
+	if(isFullscreen) {
+		if(epgactive) {
+			osdepginfo.style.opacity = 0;
+			osdepginfonext.style.opacity = 0;
+			epgactive = 0;
+		}
+		medialist.style.opacity = 0.9;
+		set_yellow_key = 1;
+		setTimeout("getSchedule(currChan);LoadMediaSettings();",100);
+	} else {
+		GetSchedule(currChan,15);
+		schedule.style.opacity = 1 - schedule.style.opacity;
+		isSchedule = schedule.style.opacity;
+		if(isSchedule == 1){
+			colorkeys.innerHTML = "<span class=redkey> " +  NN[4] + " </span><span class=greenkey > " + NN[4] + " </span><span class=yellowkey> " + NN[6] + " </span><span class=bluekey> " + NN[4] + " </span>";
+			} else {
+			colorkeys.innerHTML = "<span class=redkey> " +  NN[3 + (1 - NowNext)] + " </span><span class=greenkey > " + NN[1 - NowNext] + " </span><span class=yellowkey> " + NN[2] + " </span><span class=bluekey> " + NN[5] + " </span>";
+			}
+	}
+	break;
+
+   case "Info":
+   case "Blue":
+   case KEY_EPG:
+//	if(isFullscreen) {
+//	RestartPortal();
+//	} else 
+	if(isSchedule == 0) {
+			if(!epgactive) {
+			updateOSDtime(currChan);
+			SetOsdInfo();
+				if(isFullscreen) { NowNext = 0;}
+				if (NowNext) {
+					osdepginfo.style.opacity = 0;
+					osdepginfonext.style.opacity = 1;
+				} else {
+					osdepginfo.style.opacity = 1;
+					osdepginfonext.style.opacity = 0;
+				}			
+			epgactive = 1;		
+			} else {
+			osdepginfo.style.opacity = 0;
+			osdepginfonext.style.opacity = 0;
+			epgactive = 0;
+			}
+//		setTimeout("epgactive = 0; osdepginfo.style.opacity = 0; osdepginfonext.style.opacity = 0;", 5000);
+	}
+	break;
+   case "BrowserBack":
+	if(count) {
+		count = 0;
+		osdmain.style.opacity = 0;
+		if(isFullscreen) {
+			showDisplay(currChan.toString(), false, 100, 0 );
+		}
+		Change = 0;
+	} else {
+		if(isSchedule) {
+			isSchedule = 0;
+			schedule.style.opacity = 0;
+			colorkeys.innerHTML = "<span class=redkey> " +  NN[3 + (1 - NowNext)] + " </span><span class=greenkey > " 
+				+ NN[1 - NowNext] + " </span><span class=yellowkey> " + NN[2] + " </span><span class=bluekey> " 
+				+ NN[5] + " </span>";
+			break;
+		}
+
+		if(isFullscreen) {
+		//SHOW epg info
+			if(!epgactive) {
+//			SetOsdInfo();
+//			osdepginfo.style.opacity = 1;
+//			osdepginfonext.style.opacity = 0;
+//			epgactive = 1;		
+			} else {
+			osdepginfo.style.opacity = 0;
+			osdepginfonext.style.opacity = 0;
+			epgactive = 0;
+			}
+//		setTimeout("epgactive = 0; osdepginfo.style.opacity = 0; osdepginfonext.style.opacity = 0;", 5000);
+		} else if(!isFullscreen){
+			osdepginfo.style.opacity = 0;
+			osdepginfonext.style.opacity = 0;
+			epgactive = 0;
+			isFullscreen = 1;
+			FullScreen();
+			currChan = preChan;
+			ChanGroup = preGrp;
+		}
+	}
+	break;
+   case "Enter":
+	// OK key on frontpanel
+	if (experimental) {
+		RestartPortal();
+	}
+   case KEY_OK:
+	if(isFullscreen) {
+	// fullscreen
+		if (osdmain.style.opacity !== 0) {opacity = 0; OSD(opacity);}
+		if(count == 0) {
+			if (osdtimeout) {
+				clearTimeout(osdtimeout);
+				osdtimeout = 0;
+				opacity = 0;
+				OSD(opacity);
+				break;
+				}
+		osdepg.innerHTML = "";
+		showOSD();
+	        GetEPG(currChan);
+		updateOSDtime(currChan);
+		osdepg.innerHTML = "<p>" + EPG[0][7][currChan] + "</p>\n<p>" + EPG[1][7][currChan] + "</p>";
+//		showOSD();
+		} else {
+			CheckChannel(Change);
+			count = 0;
+			if(ChangeOK) { 	
+				play(channels[currChan]);
+				ChangeOK = 0;
+				}
+		  }
+	} else {
+	// if not fullscreen
+		if(count){
+			CheckChannel(Change);
+			count = 0;
+			if(ChangeOK) { 	
+				preview(channels[currChan]);
+				ChangeOK = 0;
+				}
+		  } else {
+		isFullscreen = 1;
+		FullScreen();
+		if(isSchedule) { isSchedule = 0; schedule.style.opacity = 0; }
+	        play(channels[currChan]);
+		}
+	}
+        break;
+
+   case "Menu":
+		if(isFullscreen) {
+			if(count) {
+				count = 0;
+				osdmain.style.opacity = 0;
+				showDisplay(currChan.toString(), false, 100, 0 );
+				Change = 0;
+			}
+		osdepginfo.style.opacity = 0;
+		osdepginfonext.style.opacity = 0;
+		isSetupMenu = 1;
+		mainmenu.style.opacity = 0.8;
+		menu = 0;
+		InitMenu(menu);
+		}
+		break;
+   case KEY_FAV:
+   case "Scroll":
+		if(isFullscreen) {
+			NowNext = 0;
+			videoplane.style.width = (320*Xfactor[Set_Res])+"px";
+			videoplane.style.height = (240*Yfactor[Set_Res])+"px";
+			videoplane.style.left = (380*Xfactor[Set_Res])+"px";
+			videoplane.style.top = (300*Yfactor[Set_Res])+"px";
+			isFullscreen = 0;
+			ClearScreen();
+			channellist.style.opacity = 1;
+			colorkeys.innerHTML = "<span class=redkey> " +  NN[3 + (1 - NowNext)] + " </span><span class=greenkey > " 
+				+ NN[1 - NowNext] + " </span><span class=yellowkey> " + NN[2] + " </span><span class=bluekey> " 
+				+ NN[5] + " </span>";
+			colorkeys.style.opacity = 1;
+			showChannelList();
+			if(!SwitchGuide) {
+			preChan = currChan;
+			preGrp = ChanGroup;
+			}
+		} else {
+			isSchedule = 0;
+			schedule.style.opacity = 0;
+			isFullscreen = 1;
+			FullScreen();
+			if(!SwitchGuide) {
+			currChan = preChan;
+			ChanGroup = preGrp;
+			}
+		}
+		break;
+    case "TV":
+    case "RADIO":
+	if(isFullscreen) {
+		if(ChanGroup !== 9) {
+		//Radio
+		defChan[ChanGroup] = currChan;
+		ChanGroup = 9;
+		currChan = defChan[9];
+		} else {
+		//TV
+		defChan[ChanGroup] = currChan;
+		ChanGroup = 0;
+		currChan = defChan[0];
+		}
+		isSetupMenu = 0;
+		mainmenu.style.opacity = 0;
+		play(channels[currChan]);
+	}
+	break;
+    case KEY_0:
+	digit = 0;
+	Makedigit();
+        break;
+    case KEY_1:
+	digit = 1;
+	Makedigit();
+        break;
+    case KEY_2:
+	digit = 2;
+	Makedigit();
+        break;
+    case KEY_3:
+	digit = 3;
+	Makedigit();
+        break;
+    case KEY_4:
+	digit = 4;
+	Makedigit();
+        break;
+    case KEY_5:
+	digit = 5;
+	Makedigit();
+        break;
+    case KEY_6:
+	digit = 6;
+	Makedigit();
+        break;
+    case KEY_7:
+	digit = 7;
+	Makedigit();
+        break;
+    case KEY_8:
+	digit = 8;
+	Makedigit();
+        break;
+    case KEY_9:
+	digit = 9;
+	Makedigit();
+        break;
+
+   case KEY_A:// |> key on old long kpn 1710/1760 remote
+        break;
+   case KEY_B:// hh key on old long kpn 1710/1760 remote
+	if (prevChan !== currChan) {
+		currChan = [prevChan, prevChan = currChan][0];
+		count = 0;
+		play(channels[currChan]);
+		}
+	break;
+   case KEY_C:// @ key on old long kpn 1710/1760 remote
+	if(isFullscreen && Fav_max_channel !== 0 && ChanGroup !== Fav_group) {
+	timerID = (defChan[Fav_group] - Fav_base - 1); if (timerID < 0) { timerID = 0;}
+	maxTimers = Fav_max_channel;
+	GotoFav(defChan[Fav_group]);
+	} else if(isFullscreen && ChanGroup == Fav_group) {
+	timerID = (currChan - Fav_base - 1);
+	}
+	if(isFullscreen && Fav_max_channel !== 0) {
+		if(count) {
+			count = 0;
+			osdmain.style.opacity = 0;
+			showDisplay(currChan.toString(), false, 100, 0 );
+			Change = 0;
+		}
+		osdepginfo.style.opacity = 0;
+		osdepginfonext.style.opacity = 0;
+		isSetupMenu = 1;
+		mainmenu.style.opacity = 0.8;
+		menu = 10;
+		InitMenu(menu);
+	}
+
+
+        break;
+   case KEY_D:// >@ key on old long kpn 1710/1760 remote
+	if (protChn[ChanGroup] !== 1 && ChanGroup !== Fav_group) {
+		AddtoFav();
+	}
+	break;
+
+   case "Teletext":
+	if(isFullscreen) {
+		ClearScreen();
+		isVisible = 1;
+		setVisible(isVisible);
+		}
+	break;
+    case "VolumeMute":
+	VolumeMute();
+	break;
+    case "VolumeUp":
+	VolumeUp();
+	break;
+    case "VolumeDown":
+	VolumeDown();
+	break;
+
+    case "MediaRewind":
+	if(isFullscreen) {
+	      mediaPlayer.play(mediaPlayer.PACE_REWIND);
+	} else {
+		count = 0; Change = 0;
+		defChan[ChanGroup] = currChan;
+		do {
+			do
+				ChanGroup -= 1;
+			while (protChn[ChanGroup] == 1 && ShowProtectedChannels == 1) 
+			if (ChanGroup < 0) {
+				ChanGroup = 9;
+			}
+		}
+		while (!minChan[ChanGroup]);
+		currChan = defChan[ChanGroup];
+		preview(channels[currChan]);
+	}
+	break;
+    case "MediaForward":
+	if(isFullscreen) {
+	      mediaPlayer.play(mediaPlayer.PACE_FASTFORWARD);
+	} else {
+	count = 0; Change = 0;
+	defChan[ChanGroup] = currChan;
+	do{
+		do
+			ChanGroup += 1;
+		while (protChn[ChanGroup] == 1 && ShowProtectedChannels == 1)
+		if (ChanGroup > 9) {
+			ChanGroup = 0;
+			}
+		}
+	while (!minChan[ChanGroup]);
+	currChan = defChan[ChanGroup];
+        preview(channels[currChan]);
+	}
+	break;
+	case "MediaPlayPause":
+
+		if(isFullscreen && PauseOnServer) {
+		   	if(mediaPlayer.getState() == mediaPlayer.STATE_PLAYING) {
+				isPause = 1;
+				ServerPause();
+				SetLed(1,1,10);
+//				setTimeout("mediaPlayer.play(0);",5000);
+				mediaPlayer.play(0);
+				break;
+			}
+			if(mediaPlayer.getState() == mediaPlayer.STATE_PAUSED || mediaPlayer.getState() == mediaPlayer.STATE_FASTFORWARDING ||
+			   mediaPlayer.getState() == mediaPlayer.STATE_REWINDING) {
+				SetLed(1,1,0);
+				mediaPlayer.play(mediaPlayer.PACE_PLAY);
+				break;
+			}
+
+		}
+
+		if(TimeShift){
+			if(mediaPlayer.getState() == mediaPlayer.STATE_PAUSED || mediaPlayer.getState() == mediaPlayer.STATE_FASTFORWARDING || mediaPlayer.getState() == mediaPlayer.STATE_REWINDING) {
+				SetLed(1,1,0);
+				mediaPlayer.play(mediaPlayer.PACE_PLAY);
+				break;
+			}
+		   	if(mediaPlayer.getState() == mediaPlayer.STATE_PLAYING) {
+				SetLed(1,1,10);
+				mediaPlayer.play(0);
+				break;
+			}
+		}
+		break;
+	case "MediaStop":
+		try {
+		SetLed(1,1,0);
+		if(TimeShift){ mediaPlayer.playFromPosition(mediaPlayer.POSITION_LIVE,mediaPlayer.PACE_PLAY); }
+		} catch(e) {
+			alert(e);
+		}
+	break;
+	case KEY_REC:
+	case KEY_REC2:
+	if(isSchedule == 0) {
+			if(epgactive) {
+				ServerTimer(channels[currChan],EPG[NowNext][6][currChan]);
+				settimer(EPG[NowNext][2][currChan],EPG[NowNext][1][currChan],(EPG[NowNext][3][currChan]*60),2);
+			} else {
+				ServerRecordStart();
+			}
+	}
+//	if(isFullscreen && !epgactive) {
+//		ServerRecordStart();
+//	} else if(isSchedule == 0){
+//		if(NowNext) {
+//		} else {
+//			// make timer for recording
+//			ServerTimer(channels[currChan],EPG[NowNext][6][currChan]);
+//			settimer(EPG[NowNext][2][currChan],EPG[NowNext][1][currChan],(EPG[NowNext][3][currChan]*60),2);
+//		} else {
+//			ServerRecordStart();
+//		}
+//	}
+
+
+	break;
+	case KEY_OPNAMES:
+	case KEY_FILM:
+	case KEY_DVR:
+	if (smartTVplugin) {
+	// jump to recordings menu.
+		if(isFullscreen) {
+			if(count) {
+				count = 0;
+				osdmain.style.opacity = 0;
+				showDisplay(currChan.toString(), false, 100, 0 );
+				Change = 0;
+			}
+		osdepginfo.style.opacity = 0;
+		osdepginfonext.style.opacity = 0;
+		medialist.style.opacity = 0.9;
+		mainmenu.style.opacity = 0;
+		recPath = "/recordings.xml";
+		setTimeout("getRecList();LoadMediaSettings();",100);
+		}
+		break;
+	}
+	default:
+        break;
+    }
+  }
+}
+
+
+function GotoFav(ChanID) {
+		count = 0; Change = 0;
+		prevChan = ""; Fav_key1 = "";
+		defChan[ChanGroup] = currChan;
+		ChanGroup = Fav_group;
+		currChan = ChanID;
+		play(channels[currChan]);
+}
+
+
+function AddtoFav() {
+	Fav_max_channel  += 1;
+	maxChan[Fav_group] = Fav_base + Fav_max_channel;
+	channelsnames[(Fav_base + Fav_max_channel)] = channelsnames[currChan];
+	channels[(Fav_base + Fav_max_channel)] = channels[currChan];
+		is.setObject(("vip.channelsnames." + Fav_max_channel),channelsnames[currChan],is.STORAGE_PERMANENT)
+		is.setObject(("vip.channels." + Fav_max_channel),channels[currChan],is.STORAGE_PERMANENT)
+		is.setObject("vip.fav_max_channel",Fav_max_channel.toString(),is.STORAGE_PERMANENT)
+	settimer(0,channels[currChan],Fav_max_channel ,2);
+}
+
+
+function Read_Fav() {
+	Fav_max_channel = Number(is.getObject("vip.fav_max_channel"));
+	maxChan[Fav_group] = Fav_base + Fav_max_channel;
+		for (var i=1; i<=Fav_max_channel; i++) {
+		channelsnames[(i+Fav_base)] = is.getObject(("vip.channelsnames." + i));
+		channels[(i+Fav_base)] = is.getObject(("vip.channels." + i));
+		}
+}
+
+
+function Makedigit() {
+    if (TimedChangeID != -1) { clearTimeout(TimedChangeID); TimedChangeID = -1; }
+
+	prevChan = currChan;
+	Change = (Change*10) + digit;
+	count += 1;
+	osdmain.style.opacity = isFullscreen; 
+        OSDchannr(Change);
+	if(isFullscreen) {
+		showDisplay((Change.toString()), false, 100, 0 ); 
+	}
+
+    if (count>channeldigits) {
+	CheckChannel(Change);
+	count = 0;
+    } else {
+	TimedChangeID = setTimeout("TimedChange();",ChangeTime);
+    }
+
+    if(ChangeOK) { 
+	if(isFullscreen) {
+	        play(channels[currChan]);
+	} else {
+	        preview(channels[currChan]);
+	}
+	ChangeOK = 0;
+	}
+}
+
+function CheckChannel(CheckThis) {
+// function to check if channel exists
+	CheckThis = baseChn[ChanGroup] + CheckThis;
+	if(channels[CheckThis]) {
+		ChangeOK = 1;
+		currChan = CheckThis;
+	} else {
+		ChangeOK = 0;
+	}
+	if(prevChan == currChan) { 
+	ChangeOK = 0 ;
+	}
+	osdmain.style.opacity = 0;
+	if(isFullscreen) {
+	showDisplay(currChan.toString(), false, 100, 0 );
+	}
+	Change = 0;
+
+}
+
+function TimedChange() {
+  if (count && ChangeTime) {
+	CheckChannel(Change);
+	count = 0;
+	if(ChangeOK) {
+		if(isFullscreen) { 	
+			play(channels[currChan]);
+		} else {
+			preview(channels[currChan]);			
+		}
+		ChangeOK = 0;
+	}
+  }
+}
+
+
+function showDisplay(showtxt,colonState,intensity,currentMode) {
+	if(!showClock){
+		if (Number(showtxt) > 8999 && Number(showtxt) < 10000) { showtxt = "R" + Right(showtxt,3); }
+		if (Number(showtxt) > 9999 && Number(showtxt) < 20000) { showtxt = "F" + Right(showtxt,3); }
+	showtxt = Right(showtxt,4);
+	try {
+	 fps.setSegmentDisplayState(toi.statics.ToiFrontPanelServiceSegmentDisplayState.create(showtxt,colonState,intensity,currentMode));
+	} catch (e) {
+	// Display error, maybe no display...
+	 }
+	}
+}
+
+
+function SetLed(NumLed,color,blinkfreq){
+	var state = toi.statics.ToiFrontPanelServiceLedState.create(color, blinkfreq);
+	fps.setLedState(NumLed, state);
+}
+
+
+function showOSD() {
+	if (osdtimeout) {
+		clearTimeout(osdtimeout);
+	}
+	SetOsdInfo();
+	opacity = 0.8;
+	OSD(opacity);
+	osdtimeout = setTimeout("fadeOut(); osdtimeout = 0;", ShowOsdTime);
+}
+
+function showVolume() {
+	if (osdVolumetimeout) {
+		clearTimeout(osdVolumetimeout);
+	}
+	osdvolume.innerHTML = Lang[1] + " : " + Volume + "% \n\uE007" + (new Array(Volume)).join("\uE008") + (new Array(100 - Volume)).join("\uE009") + "\uE00A";
+	osdvolume.style.opacity = 1;
+	osdVolumetimeout = setTimeout("osdvolume.style.opacity = 0;", ShowOsdTime);
+}
+
+
+function OSD(opacity) {
+    osdmain.style.opacity = opacity;
+}
+
+
+function SetOsdInfo() {
+    OSDchannr(currChan);
+    date_time();
+    OSDhtml();
+    return;
+}
+
+function onCacheUpdated() {
+        GetEPG(currChan);
+	if (osdtimeout) { SetOsdInfo();	} 
+}
+
+function OSDchannr(channr) {
+//	Show logo's
+	if (experimental) {
+//	osdnr.innerHTML = "<img src='" + channels[currChan] + ".logo.jpg' style='width:80%; max-height:100%; position:absolute; left:10%;' >";
+	}
+	osdnr.innerHTML = Right(channr,3);
+}
+
+function OSDhtml(){
+    osdtime.innerHTML = result;
+	if (ShowSource == 1) {
+	    osdname.innerHTML = channels[currChan].split("-")[0] + "\uE003" + Left(channelsnames[currChan],30);
+	} else {
+	    osdname.innerHTML = Left(channelsnames[currChan],30);
+	}
+    osdepg.innerHTML = "<p>" + EPG[0][7][currChan] + "</p>\n<p>" + EPG[1][7][currChan] + "</p>";
+    osdepginfo.innerHTML =  "<p class=epg_head>" + currChan + "\uE003" + channelsnames[currChan] + "</p><p class=epg_avinfo>" + AvInfo[currChan] + "</p><p class=epg_title>" + EPG[0][7][currChan] + EPG[0][9][currChan] + EPG[0][8][currChan] + "</p>\n<p class=epg_info>" + EPG[0][4][currChan] + "</p>\n<p>" + Left(EPG[0][5][currChan],750) + "</p></center>";
+    osdepginfonext.innerHTML =  "<p class=epg_head>"  + currChan + "\uE003" + channelsnames[currChan] + "</p><p class=epg_title>" +  EPG[1][7][currChan] + EPG[1][9][currChan] + EPG[1][8][currChan] + "</p>\n<p class=epg_info>" + EPG[1][4][currChan] + "</p>\n<p>" + Left(EPG[1][5][currChan],750) + "</p></center>";
+}
+
+function updateOSDtime(timchan) {
+
+	tijd = EPG[0][2][timchan];
+	date = new Date(tijd*1000); 
+	tijd = date.toUTCString();
+	tijd = new Date(tijd);
+	dateCurrent = new Date();
+	var EPGminutes = Math.floor((dateCurrent.getTime() - date.getTime()) /1000/60);
+	if (EPGminutes > 1440) { 
+		EPGminutes = 0; // Duration is >24h, maybe current time isn't right.
+	}
+	var tm = tijd.getMinutes();
+	var th = tijd.getHours();
+	th=addzero(th);
+	tm=addzero(tm);
+
+	EPG[0][7][timchan] =  th + ":" + tm + " (" + EPGminutes + " / " + ((EPG[0][3][timchan])-EPGminutes).toFixed(0) + ")" + " " + EPG[0][1][timchan] + " ";
+	if (!EPG[0][2][timchan] || ((EPG[0][3][timchan]-EPGminutes) < 0))
+	{
+		EPG[0][7][timchan] = " ";
+	}
+
+}
+
+
+function settimer(ProgTime,ProgName,ProgDura,SwitchTimer,BackGroundColor,ProgDesc,ProgEvID) {
+
+if (!BackGroundColor) { BackGroundColor = color_default;}
+// 1 - switchonly, 2 - record on server (display info only), 3 - record local
+	if(SwitchTimer == 1) {	
+		  try {
+		    var x = ss.schedule("SwitchOnly","notification", ProgTime , ProgDura);
+		    ss.setParameter(x, "Channel", currChan.toString() );
+		    ss.setParameter(x, "Title", ProgName );
+		    ss.setParameter(x, "Info", ProgDesc);
+		    ss.setParameter(x, "active", "False");
+		    ss.setParameter(x, "Type", "\uE00C"); //Timer Symbol
+		    ss.setParameter(x, "resume", "0");
+		    ss.setParameter(x, "Eventid", ProgEvID);
+
+		  }
+		  catch (e) {
+			    ProgName = "ERROR" ;
+			    BackGroundColor = "color_error";
+		  }
+	} else if(SwitchTimer == 3) {
+		ProgTime -= preRecTime;
+		ProgDura = Number(ProgDura) + (afterRecTime + preRecTime);
+		var y = (new Date().getTime()/1000).toFixed(0); 
+		if(ProgTime < y) { 
+			ProgDura = ProgDura - (y - ProgTime);
+			ProgTime = y; 
+			}
+			
+		  try {
+		    var x = ss.schedule("RecLocal","record_hd_from_ip", ProgTime , ProgDura);
+		    if (x != 0) {
+			    ss.setParameter(x, "Channel", currChan.toString() );
+			    ss.setParameter(x, "Title", ProgName );
+			    ss.setParameter(x, "Info", ProgDesc);
+			    ss.setParameter(x, "active", "False");
+			    ss.setParameter(x, "Type", "\uE00C"); //Timer Symbol
+			    ss.setParameter(x, "resume", "0");
+			    ss.setParameter(x, "Eventid", ProgEvID);
+		    } else {
+			    ProgName = "ERROR" ;
+			    BackGroundColor = "color_error";
+		    }
+		  } catch (e) {
+		    alert(e);
+		  }
+	}
+
+	if ( ProgTime == 0 && SwitchTimer == 2 && ProgDura !== 0 ) {
+		var x = Lang[3] + ProgDura + "</pre>";
+	} else if ( ProgTime == 0 && SwitchTimer == 2) {
+		var x = "</pre>";
+	} else {
+		tijd = ProgTime;
+		date = new Date(tijd*1000); 
+		tijd = date.toUTCString();
+		tijd = new Date(tijd);
+		var tm = tijd.getMinutes();
+		var th = tijd.getHours();
+		th=addzero(th);
+		tm=addzero(tm);
+		var x = Lang[4] + th + ":" + tm  + "</pre>";
+	}
+
+//	switchtimer.style.background = BackGroundColor;
+	switchtimer.innerHTML = "<pre class=" + BackGroundColor + ">" + Lang[2] + Left(ProgName,30) + "\n" + Lang[3] + channelsnames[currChan] + "\n" + x + "</pre>";
+	setOSDtimer();
+
+	switchtimer.style.opacity = 1;
+	setTimeout("switchtimer.style.opacity = 0;", ShowSetTimer);
+
+}
+
+
+function setOSDtimer() {
+		// Only for type "SwitchOnly"
+		var today = new Date;
+		today = today / 1000;
+		var x = ss.getBookingIds("SwitchOnly", today, 0)
+		if (x.length !== 0) {
+		tijd = ss.getNextStartTime("SwitchOnly");
+		date = new Date(tijd*1000); 
+		tijd = date.toUTCString();
+		tijd = new Date(tijd);
+		var tm = tijd.getMinutes();
+		var th = tijd.getHours();
+		th=addzero(th);
+		tm=addzero(tm);
+		osdtimer.innerHTML = "<p class=osdtimer>" + th + ":" + tm + "</p>";
+		SetLed(0,2,1);
+		switchicon = "\uE00C";
+		osdca.innerHTML = CAicon + switchicon + RECicon;
+		} else {
+		osdtimer.innerHTML = " ";
+		SetLed(0,0,0);
+		switchicon = '\uE003';
+		osdca.innerHTML = CAicon + switchicon + RECicon;
+		}
+}
+
+// Left n characters of str
+function Left(str, n){
+  if (n <= 0)
+    return "";
+  else if (n > String(str).length)
+    return str;
+  else
+    return String(str).substring(0,n);
+}
+
+// Right n characters of str
+function Right(str, n){
+  if (n <= 0)
+    return "";
+  else if (n > String(str).length)
+    return str;
+  else {
+    var iLen = String(str).length;
+    return String(str).substring(iLen, iLen - n);
+  }
+}
+
+function fadeIn() {
+    opacity += 0.2;
+	    OSD(opcity);
+    if (opacity >= 1) {
+	setTimeout("fadeOut()", 200);
+	return;
+    }
+    setTimeout("fadeIn()", 100);
+}
+
+function fadeOut() {
+    opacity -= 0.5;
+	OSD(opacity);
+    if (opacity <= 0) {
+	return;
+    }
+    setTimeout("fadeOut()", 100);
+}
+
+function RestartPortal(){
+
+    try {
+	ids = toi.applicationService.getApplicationIds();
+	for ( i = 0; i < ids.length; ++i ){
+	    info = toi.applicationService.getInfo(ids[i]);
+	    if (info.applicationName == "WebKit Portal"){
+		 dump("Killing app " + ids[i] + ": " + info.applicationName);
+		 toi.applicationService.kill(ids[i]);
+	    }
+	}
+    }
+    catch(e) { dump(e) };
+}
+
+function date_time()
+{
+        date = new Date;
+        year = date.getFullYear();
+        month = date.getMonth();
+        d = date.getDate();
+        day = date.getDay();
+        h = date.getHours();
+        m = date.getMinutes();
+	h=addzero(h);
+	m=addzero(m);
+        result = ''+days[day]+' '+d+' '+months[month]+' '+year+' '+h+':'+m;
+        return;
+}
+
+function date_time_rec()
+{
+        date = new Date(Number(recStrt[currMed])*1000);
+        year = date.getFullYear();
+        month = date.getMonth();
+	month = addzero(month + 1);
+        d = date.getDate();
+	d = addzero(d);
+        day = date.getDay();
+        h = date.getHours();
+        m = date.getMinutes();
+	h = addzero(h);
+	m = addzero(m);
+	if (year!==1970) { 
+        	result = ' ' + d + '-' + month + '-' + year + ' ' + h + ':' + m;
+	} else {
+		result = "";
+	}
+	return;
+}
+
+// EPG Section
+
+function GetEPG(epgchan)
+{
+	EPG[0][7][epgchan] = "";
+	EPGShortnow = "";
+	EPGExtnow = "";
+	EPG[1][7][epgchan] = "";
+	EPGShortnext = "";
+	EPGExtnext = "";
+	SI="";
+  try {
+
+	eitCache.clearServices();
+
+	 StreamInfo(epgchan);
+
+	 eitService = toi.statics.ToiDvbEitCacheServiceItem.create(SI[1],SI[2],SI[3]);
+	 eitCache.addService(eitService);
+	 event = eitCache.getPresentEvent(eitService);
+	if(event.freeCaMode){
+		CAicon = "\uE00D";
+	} else {
+		CAicon = Radioicon;
+	}
+
+		osdca.innerHTML = CAicon + switchicon + RECicon;
+
+	if (event.name)	{
+	 events = eitCache.getEvents(eitService, (Math.round(new Date().getTime()/1000.0)), 2000000000);
+ 	    extEventsnow = eitCache.getExtendedEventInfo(eitService, events.infoSequence[0].eventId);
+	    EPGShortnow = extEventsnow.shortInfo;
+	    EPGExtnow = extEventsnow.extendedInfo;
+	    Extok = 1;
+
+	} else { Extok = 0; }
+
+
+
+	EPG[0][1][epgchan] = event.name;
+	EPG[0][2][epgchan] = event.time;
+	EPG[0][3][epgchan] = (event.duration/60);
+//	EPG[0][4][epgchan] = "";
+//	EPG[0][5][epgchan] = "";
+	EPG[0][6][epgchan] = event.eventId;
+	if (event.parentalRating) {
+		EPG[0][8][epgchan] = "<br>(" + Lang[5] + (event.parentalRating + 3) + " )";
+	} else {
+		EPG[0][8][epgchan] = "";
+	}
+
+	if (event.contentNibbles) {
+		connib = event.contentNibbles;
+		Nibbles();
+		EPG[0][9][epgchan] = "<br>" + content;
+	} else {
+		EPG[0][9][epgchan] = "";
+	}
+
+
+	if(EPGShortnow) {
+	EPG[0][4][epgchan] = EPGShortnow;
+	} else {
+	EPG[0][4][epgchan] = "";
+	}
+	if(EPGExtnow) {
+	EPG[0][5][epgchan] = EPGExtnow;
+	} else {
+	EPG[0][5][epgchan] = "";
+	}
+
+	if (EPG[0][5][epgchan] == EPG[0][4][epgchan]) { EPG[0][5][epgchan] = "";}
+
+
+
+	updateOSDtime(epgchan);
+
+	 event = eitCache.getFollowingEvent(eitService);
+	if (Extok) {
+		for (var i = 0; i < events.infoSequence.length && i < 4; i++) {
+	 	    extEvents = eitCache.getExtendedEventInfo(eitService, events.infoSequence[i].eventId);
+			if (extEvents.eventId == event.eventId) {
+			    EPGShortnext = extEvents.shortInfo;
+			    EPGExtnext = extEvents.extendedInfo; 
+			}
+		}
+	}
+
+	EPG[1][1][epgchan] = event.name;
+	EPG[1][2][epgchan] = event.time;
+	EPG[1][3][epgchan] = (event.duration/60);
+//	EPG[1][4][epgchan] = "";
+//	EPG[1][5][epgchan] = "";
+	EPG[1][6][epgchan] = event.eventId;
+	if (event.parentalRating) {
+		EPG[1][8][epgchan] = "<br>(" + Lang[5] + (event.parentalRating + 3) + " )";
+	} else {
+		EPG[1][8][epgchan] = "";
+	}
+
+	if (event.contentNibbles) {
+		connib = event.contentNibbles;
+		Nibbles();
+		EPG[1][9][epgchan] = "<br>" + content;
+	} else {
+		EPG[1][9][epgchan] = "";
+	}
+
+	if(EPGShortnext) {
+	EPG[1][4][epgchan] = EPGShortnext;
+	} else {
+	EPG[1][4][epgchan] = "";
+	}
+	if(EPGExtnext) {
+	EPG[1][5][epgchan] = EPGExtnext;
+	} else {
+	EPG[1][5][epgchan] = "";
+	}
+	
+	if (EPG[1][5][epgchan] == EPG[1][4][epgchan]) { EPG[1][5][epgchan] = "";}
+
+	tijd = event.time;
+	date = new Date(tijd*1000); 
+	tijd = date.toUTCString();
+	tijd = new Date(tijd);
+	var tm = tijd.getMinutes();
+	var th = tijd.getHours();
+	th=addzero(th);
+	tm=addzero(tm);
+	 EPG[1][7][epgchan] = th + ":" + tm + " (" + (event.duration/60).toFixed(0) + ")" + "          " + event.name + " ";
+
+	if (!event.time) 
+	{
+		EPG[1][7][epgchan] = " ";
+	}
+
+
+  } catch(e) {
+    alert("Get EPG problem: " + e);
+    CAicon = "\uE01A";
+  }
+} 
+
+
+function Nibbles() {
+	content = "";
+	if (connib >= 0x00001000 && connib < 0x00002000) { content = CLang[0]; }
+	if (connib >= 0x00002000 && connib < 0x00003000) { content = CLang[10]; }
+	if (connib >= 0x00003000 && connib < 0x00004000) { content = CLang[20]; }
+	if (connib >= 0x00004000 && connib < 0x00005000) { content = CLang[30]; }
+	if (connib >= 0x00005000 && connib < 0x00006000) { content = CLang[40]; }
+	if (connib >= 0x00006000 && connib < 0x00007000) { content = CLang[50]; }
+	if (connib >= 0x00007000 && connib < 0x00008000) { content = CLang[60]; }
+	if (connib >= 0x00008000 && connib < 0x00009000) { content = CLang[70]; }
+	if (connib >= 0x00009000 && connib < 0x0000A000) { content = CLang[80]; }
+	if (connib >= 0x0000A000 && connib < 0x0000B000) { content = CLang[90]; }
+	if (connib >= 0x0000B000 && connib < 0x0000C000) { content = CLang[100]; }
+	// alert(connib);
+}
+
+
+
+function StreamInfo(si) {
+	// EPG Filter
+	// streaminfo
+	// SI[x] 0-sat,1-NID,2-TID,3-SID
+ 	SI=channels[si].split("-");
+
+	//default setting : English
+	is.setObject("cfg.locale.ui","eng",is.STORAGE_VOLATILE);
+
+	if(SI[0]=="C") {
+	// Default on Cable - Dutch // Ziggo.
+	is.setObject("cfg.locale.ui","dut",is.STORAGE_VOLATILE);
+	}
+
+	if(SI[0]=="T") {
+	// DVB-T default German.
+	is.setObject("cfg.locale.ui","ger",is.STORAGE_VOLATILE);
+	}
+
+	if(SI[1]=="8720") {
+	// KPN DVB-T (might also be used for some german)
+	is.setObject("cfg.locale.ui","dut",is.STORAGE_VOLATILE);
+	}
+
+	if(SI[0]=="S19.2E") {
+	// Default on 19E German.
+	is.setObject("cfg.locale.ui","ger",is.STORAGE_VOLATILE);
+	}
+
+	if(SI[0]=="S28.2E") {
+	// Default on 28E English
+	is.setObject("cfg.locale.ui","eng",is.STORAGE_VOLATILE);
+	} 
+
+	if(SI[0]=="S42.0E") {
+	is.setObject("cfg.locale.ui","tur",is.STORAGE_VOLATILE);
+	} 
+
+	if(SI[0]=="S42.0E" && SI[3]=="3601") {
+	is.setObject("cfg.locale.ui","eng",is.STORAGE_VOLATILE);
+	} 
+
+	if(SI[1]=="133") {
+	//sky deutchland
+	is.setObject("cfg.locale.ui","DEU",is.STORAGE_VOLATILE);
+	}
+
+	if(SI[2]=="1107") {
+	//Sat1/pro7 deutchland
+	is.setObject("cfg.locale.ui","DEU",is.STORAGE_VOLATILE);
+	}
+
+//	if(SI[2]=="1057") {
+//	//RTL HD transponder
+//	is.setObject("cfg.locale.ui","GER",is.STORAGE_VOLATILE);
+//	}
+
+//	if(SI[2]=="1057" && SI[3]=="61204") {
+//	//Sport1 HD (daytime only?)
+//	is.setObject("cfg.locale.ui","DEU",is.STORAGE_VOLATILE);
+//	}
+
+	if(SI[2]=="1055" || SI[2]=="1053" || SI[2]=="1041" || SI[2]=="1017" || SI[2]=="1109") {
+	//HD+ transponder
+	is.setObject("cfg.locale.ui","DEU",is.STORAGE_VOLATILE);
+	}
+
+	if(SI[0]=="S13.0E" && (SI[2]=="1600" || SI[2]=="1000" || SI[2]=="1500" || SI[2]=="1300" || SI[2]=="300" || SI[2]=="1100" )) {
+	//NC+ (Polish)
+	is.setObject("cfg.locale.ui","pol",is.STORAGE_VOLATILE);
+	}
+
+	if(SI[0]=="S13.0E" && (SI[2]=="11200" || SI[2]=="400" || SI[2]=="12000" || SI[2]=="11400" || SI[2]=="11900" || SI[2]=="11600" )) {
+	//NC+ (Polish)
+	is.setObject("cfg.locale.ui","pol",is.STORAGE_VOLATILE);
+	}
+
+	if(SI[0]=="S13.0E" && (SI[2]=="11000" || SI[2]=="1400")) {
+	//NC+ (Polish)
+	is.setObject("cfg.locale.ui","pol",is.STORAGE_VOLATILE);
+	}
+
+	if(SI[1]=="113") {
+	//PolSat
+	is.setObject("cfg.locale.ui","pol",is.STORAGE_VOLATILE);
+	}
+
+	if((SI[0]=="S19.2E" && SI[2]=="1059") ) {
+		//TVP transponder
+		is.setObject("cfg.locale.ui","pol",is.STORAGE_VOLATILE);
+	}
+
+	if(SI[1]=="64511") {
+	//sky Italia
+	is.setObject("cfg.locale.ui","ita",is.STORAGE_VOLATILE);
+	}
+
+	if(SI[0]=="S13.0E" && (SI[2]=="5400" || SI[2]=="12400" || SI[2]=="65419" || SI[2]=="65417" )) {
+	//Rai Italia
+	is.setObject("cfg.locale.ui","ita",is.STORAGE_VOLATILE);
+	}
+
+	if(SI[1]=="53" ) {
+	//Canal Digitaal/ TV Vlaanderen 
+	is.setObject("cfg.locale.ui","dut",is.STORAGE_VOLATILE);
+	}
+
+	if(SI[0]=="S19.2E" && SI[2]=="1048" && SI[3]=="4320" ) {
+	//BVN
+	is.setObject("cfg.locale.ui","dut",is.STORAGE_VOLATILE);
+	}
+
+
+	if(SI[1]=="54") {
+	//ZON / 30W
+	is.setObject("cfg.locale.ui","eng",is.STORAGE_VOLATILE);
+	}
+
+	if(SI[1]=="83") {
+	//MEO / 30W
+	is.setObject("cfg.locale.ui","por",is.STORAGE_VOLATILE);
+	}
+
+	if(SI[1]=="49") {
+	//Digital 30W
+	is.setObject("cfg.locale.ui","spa",is.STORAGE_VOLATILE);
+	}
+
+	if(SI[1]=="3" && ( SI[2]=="3202" || SI[2]=="3208" || SI[2]=="3211" || SI[2]=="3222" || SI[2]=="3225") ) {
+	//Canal Digitaal/ TV Vlaanderen (NID:3 is used for more than only CDS/TVV on 23East)
+	is.setObject("cfg.locale.ui","dut",is.STORAGE_VOLATILE);
+	}
+
+	if(SI[1]=="3" && SI[2]=="3208" && SI[3]=="7037") {
+	// Some other EPG
+	is.setObject("cfg.locale.ui","eng",is.STORAGE_VOLATILE);
+	}
+
+	if(SI[1]=="3" && ( SI[2]=="3217") ) {
+	// 23E - Deluxe HD
+	is.setObject("cfg.locale.ui","DEU",is.STORAGE_VOLATILE);
+	}
+
+	if(SI[1]=="3" && SI[2]=="3212" && ( SI[3]=="14052" || SI[3]=="14055" ) ) {
+	is.setObject("cfg.locale.ui","eng",is.STORAGE_VOLATILE);
+	}
+
+	if(SI[1]=="3" && ( SI[2]=="3205" || SI[2]=="3209" || SI[2]=="3210" || SI[2]=="3221" || SI[2]=="3219" || SI[2]=="3226")) {
+	//Canal Digitaal/ TV Vlaanderen use CZE channels on 23East
+	// Strangly set filter to cze but epg is in Dutch. (But not for JimJam)
+	is.setObject("cfg.locale.ui","cze",is.STORAGE_VOLATILE);
+	}
+
+	if(SI[1]=="3" && SI[2]=="3211" && ( SI[3]=="20863" || SI[3]=="20865") ) {
+	//MGM & Film+ CZ
+	is.setObject("cfg.locale.ui","cze",is.STORAGE_VOLATILE);
+	}
+
+	if((SI[0]=="S13.0E" && SI[3]=="14003") || (SI[0]=="S13.0E" && SI[3]=="14009") || (SI[0]=="S13.0E" && SI[3]=="14051") || (SI[0]=="S13.0E" && SI[3]=="951")) {
+	//Swiss ITA channels
+		is.setObject("cfg.locale.ui","ita",is.STORAGE_VOLATILE);
+	}
+
+	if((SI[0]=="S13.0E" && SI[2]=="12800")) {
+		is.setObject("cfg.locale.ui","eng",is.STORAGE_VOLATILE);
+	}
+
+	if((SI[0]=="S13.0E" && SI[3]=="14002") || (SI[0]=="S13.0E" && SI[3]=="14008") || (SI[0]=="S13.0E" && SI[3]=="17203") || (SI[0]=="S13.0E" && SI[3]=="17204") ) {
+	//Swiss FRA channels
+		is.setObject("cfg.locale.ui","fra",is.STORAGE_VOLATILE);
+	}
+
+	if((SI[0]=="S13.0E" && SI[3]=="17201") || (SI[0]=="S13.0E" && SI[3]=="17202") || (SI[0]=="S13.0E" && SI[3]=="901") || (SI[0]=="S13.0E" && SI[3]=="907") || (SI[0]=="S13.0E" && SI[3]=="911") ) {
+	//Swiss GER channels
+		is.setObject("cfg.locale.ui","ger",is.STORAGE_VOLATILE);
+	}
+
+	if((SI[0]=="S19.2E" && SI[2]=="1111" && SI[3]=="7290") ) {
+		//Sky News on WDR HD transponder
+		is.setObject("cfg.locale.ui","eng",is.STORAGE_VOLATILE);
+	}
+
+	if(SI[0]=="S19.2E" && ( (SI[2]=="1018") || (SI[2]=="1020") || (SI[2]=="1022") || (SI[2]=="1024") || (SI[2]=="1026") || (SI[2]=="1068") || (SI[2]=="1070") || (SI[2]=="1072") || (SI[2]=="1074") || (SI[2]=="1076") || (SI[2]=="1080") || (SI[2]=="1084") || (SI[2]=="1086") || (SI[2]=="1090") || (SI[2]=="1092") || (SI[2]=="1094") || (SI[2]=="1096") || (SI[2]=="1100") || (SI[2]=="1102") || (SI[2]=="1106") || (SI[2]=="1110") || (SI[2]=="1112") || (SI[2]=="1114") || (SI[2]=="1116") || (SI[2]=="1118") || (SI[2]=="1120"))) {
+	//CanalSat S19.2
+		is.setObject("cfg.locale.ui","fra",is.STORAGE_VOLATILE);
+	}
+
+	// MTV transponder 1078 / 1066
+	if(SI[0]=="S19.2E" && SI[2]=="1078" && ( SI[3]=="28674" || SI[3]=="28675" || SI[3]=="28677" )) {
+	//Nick JR France
+		is.setObject("cfg.locale.ui","fra",is.STORAGE_VOLATILE);
+	}
+	if(SI[0]=="S19.2E" && SI[2]=="1078" && SI[3]=="28679") {
+	//Nick NL
+		is.setObject("cfg.locale.ui","dut",is.STORAGE_VOLATILE);
+	}
+	if(SI[0]=="S19.2E" && SI[2]=="1078" && ( SI[3]=="28673" || SI[3]=="28676" )) {
+	//Deutsch
+		is.setObject("cfg.locale.ui","ger",is.STORAGE_VOLATILE);
+	}
+
+	if(SI[0]=="S19.2E" && SI[2]=="1066") {
+		is.setObject("cfg.locale.ui","eng",is.STORAGE_VOLATILE);
+	}
+	if(SI[0]=="S19.2E" && SI[2]=="1066" && ( SI[3]=="28652" || SI[3]=="28661" )) {
+		is.setObject("cfg.locale.ui","fra",is.STORAGE_VOLATILE);
+	}
+
+	//Canal Sat 
+	if(SI[0]=="S19.2E" && SI[1]=="1" && SI[2]=="1088" ) {
+	is.setObject("cfg.locale.ui","fre",is.STORAGE_VOLATILE);
+	}
+
+	if(SI[0]=="S13.0E" && SI[1]=="319") {
+	is.setObject("cfg.locale.ui","fre",is.STORAGE_VOLATILE);
+	}
+
+	//Euronews / Eurosport
+	if(SI[0]=="S13.0E" && SI[1]=="318" && SI[2]=="200") {
+	is.setObject("cfg.locale.ui","fra",is.STORAGE_VOLATILE);
+	}
+
+	//bloomberg 19.2E
+	if(SI[0]=="S19.2E" && SI[2]=="1026" && SI[3]=="10067") {
+	is.setObject("cfg.locale.ui","eng",is.STORAGE_VOLATILE);
+	}
+
+	//Canal+
+	if(SI[0]=="S19.2E" && SI[1]=="1" && SI[2]=="1060" ) {
+	is.setObject("cfg.locale.ui","spa",is.STORAGE_VOLATILE);
+	}
+
+	//Russian
+	if(SI[0]=="S13.0E" && SI[2]=="8100") {
+		is.setObject("cfg.locale.ui","ger",is.STORAGE_VOLATILE);
+		//doesn't work but dvbsnoop does show 'ISO639_2_language_code:  ger' 
+	}
+
+
+}
+
+
+// End of EPG section
+
+
+// TeleTXT section
+
+function embedTeletextPlugin() {
+  teletext = document.createElement("embed");
+  teletext.id = "teletext";
+  teletext.type = "application/motorola-teletext-plugin";
+  teletext.style.position = "absolute";
+  teletext.style.width = "100%";
+  teletext.style.height = "100%";
+  teletext.style.top = "10px"; // has to be 1 rather than 0
+  teletext.style.left = "10px"; // has to be 1 rather than 0
+  teletext.style.zIndex = "501";
+  return teletext;
+}
+
+
+function setVisible(isVisible) {
+  if (isVisible) {
+    videoplane.style.width = "50%";
+    videoplane.style.left = "50%";
+    document.body.appendChild(teletext);
+    teletext.style.width = "50%";
+    teletext.style.visibility = "visible";
+    channellist.style.visibility = "hidden";
+    colorkeys.style.visibility = "hidden";
+  } else {
+    teletext.style.visibility = "hidden";
+    channellist.style.visibility = "visible";
+    colorkeys.style.visibility = "visible";
+  }
+}
+
+
+function onKeyTeletext(keyCode) {
+  switch(keyCode) {
+    case "Left":
+      teletext.api.gotoNextPage();
+    break;
+    case "Right":
+      teletext.api.gotoPreviousPage();
+    break;
+    case "Red":
+      teletext.api.inputRedKey();
+    break;
+    case "Green":
+      teletext.api.inputGreenKey();
+    break;
+    case "Yellow":
+      teletext.api.inputYellowKey();
+    break;
+    case "Blue":
+      teletext.api.inputCyanKey();
+    break;
+    case "MediaRewind":
+      teletext.api.gotoPreviousSubpage();
+    break;
+    case "MediaForward":
+      teletext.api.gotoNextSubpage();
+    break;
+    case "MediaStop":
+	teletext.style.width = "100%";
+	teletext.api.transparent = !teletext.api.transparent;
+	FullScreen();
+    break;
+    case "BrowserBack":
+    case "Teletext":
+	isVisible = 0;
+	FullScreen();
+	setVisible(isVisible);		
+    break;
+
+    case "TV":
+      teletext.api.gotoIndexPage();
+    break;
+
+	case KEY_0:
+	    teletext.api.inputDigit(0);
+	break;
+	case KEY_1:
+	    teletext.api.inputDigit(1);
+	break;
+	case KEY_2:
+	    teletext.api.inputDigit(2);
+	break;
+	case KEY_3:
+	    teletext.api.inputDigit(3);
+	break;
+	case KEY_4:
+	    teletext.api.inputDigit(4);
+	break;
+	case KEY_5:
+	    teletext.api.inputDigit(5);
+	break;
+	case KEY_6:
+	    teletext.api.inputDigit(6);
+	break;
+	case KEY_7:
+	    teletext.api.inputDigit(7);
+	break;
+	case KEY_8:
+	    teletext.api.inputDigit(8);
+	break;
+	case KEY_9:
+	    teletext.api.inputDigit(9);
+	break;
+
+
+
+  }
+}
+
+// end of TeleTXT section
+
+
+// Menu section
+
+function onKeyMenu(keyCode) {
+  switch(keyCode) {
+    case "BrowserBack":
+	if ((menu == 5 || menu == 7) && osdepginfo.style.opacity == 1) {
+		osdepginfo.style.opacity = 0;
+	} else if (menu == 10 || menu == MainMenu) {
+		isSetupMenu = 0;
+		mainmenu.style.opacity = 0;
+		osdepginfo.style.opacity = 0;
+	} else if (menu !== MainMenu) {
+		if (menu == 3 ) { isFullscreen = 0; play(channels[currChan]); isFullscreen = 1;MPDListener = 0;}
+		menu = MainMenu;
+		InitMenu(menu);
+	}
+	break;
+    case "Menu":
+	if (menu == 3 ) { play(channels[currChan]);MPDListener = 0;}
+	isSetupMenu = 0;
+	mainmenu.style.opacity = 0;
+	osdepginfo.style.opacity = 0;
+    break;
+
+    case "Left":
+    break;
+    case "Right":
+    break;
+    case "Up":
+	if (menu == 2) {
+	    timerID -= 1;
+		    if (timerID < 1) { timerID = 1; }
+	} else 	if (menu == 5 || menu == 7 || menu == 10) {
+	    timerID -= 1;
+		    if (timerID < 0) { timerID = 0; }
+	}
+		InitMenu(menu);
+    break;
+    case "Down":
+	if (menu == 2) {
+	    timerID += 1;
+		var x = ss.getBookingIds("*", 0, 0);
+		    if (timerID > x.length ) { timerID = x.length; }
+	} else 	if (menu == 5 || menu == 7 || menu == 10) {
+	    timerID += 1;
+			if (timerID > (maxTimers - 1) && maxTimers !== 0) { timerID = maxTimers - 1; }
+	}
+		InitMenu(menu);
+    break;
+    case KEY_OK:
+    	if (menu == 2 && isMediaMenu !== 1) {
+		var x = ss.getBookingIds("*", 0, 0);
+		try {
+			recLink[0] = ss.getParameter(x[timerID-1], "assetURI");
+			recGUID[0] = ss.getParameter(x[timerID-1], "assetId");
+			recChan[0] = ss.getParameter(x[timerID-1], "Channel");
+			recTitl[0] = ss.getParameter(x[timerID-1], "Title");
+			recDura[0] = ss.getBooking(x[timerID-1]).duration;// Is updated if real length is different
+			recStrt[0] = ss.getBooking(x[timerID-1]).start;
+			recDesc[0] = ss.getParameter(x[timerID-1], "Info");
+			recDummy[0] = x[timerID-1];
+			resume_position = Number(ss.getParameter(x[timerID-1], "resume"));
+			localRecording = 1;
+			currMed = 0;
+			getRecOK = 0;
+			LoadMediaSettings();
+			isSetupMenu = 0;
+			medialist.style.opacity = 0;
+			mainmenu.style.opacity = 0;
+			playRec(recLink[0],resume_position);
+			} catch(e) {
+				alert("error : " + e);
+			}
+	}
+	if (menu == 10) { 
+		GotoFav((timerID + Fav_base + 1));
+		isSetupMenu = 0;
+		mainmenu.style.opacity = 0;
+		osdepginfo.style.opacity = 0;
+	}
+	if (menu == 5) {
+		// Show EPG info Timer
+		osdepginfo.style.opacity = 1 - osdepginfo.style.opacity;
+		osdepginfo.innerHTML = "<pre class=epgtimerinfo>\n\n\n" + Lang[0] + "\n\n\n </pre>" ;
+		setTimeout("ShowTimerInfo();",100);
+	}
+	if (menu == 7) {
+		// Show more info Current SearchTimer
+		osdepginfo.style.opacity = 1 - osdepginfo.style.opacity;
+	       	osdepginfo.innerHTML = "<h1 class=mainmenu>" + searchtimersSearch[timerID] + "\n\n\n\n" + Lang[0] + "</h1>" ;
+		setTimeout("ShowSearchTimerInfo();",100);
+	}
+
+    break;
+    case "Red":
+
+    	if (menu == 1) {
+		if (subs_dyn < (subs_prio_dyn.length -1)) { subs_dyn += 1} else { subs_dyn = 0 }
+		if (subs_prio_dyn.length > 0) {
+			is.setObject("cfg.media.subtitling.languagepriority", (subs_prio_dyn[subs_dyn] + "," + subs_prio),is.STORAGE_PERMANENT);
+		} else {
+			is.setObject("cfg.media.subtitling.languagepriority",subs_prio,is.STORAGE_PERMANENT);
+		}
+		InitMenu(menu);
+		break;
+	} else if (menu == 2) {
+		var x = ss.getBookingIds("*", 0, 0);
+		if (x.length > 0) {
+			if (mediaRecorder) {
+			  try {
+				if (ss.getParameter(x[timerID-1], "active") == "True") {
+					ss.setParameter(x[timerID-1], "active", "False");
+					mediaRecorder.close();
+				}
+			  } catch (e) {
+				alert(e);
+			  }
+
+			  try {
+				ams.removeAsset(rma, ss.getParameter(x[timerID-1], "assetId"));
+			  } catch(e) {
+				alert("Error remove asset" + e);
+			  }
+			}
+
+			//Remove timer from schedule DB
+
+			ss.remove(x[timerID-1]);
+			timer[timerID] = "";
+			timerID -= 1; if (timerID < 1) { timerID = 1;}
+			LoadTimers();
+			//if (timer.length !== 0) { do { timerID = timerID + 1; } while (!timer[timerID] && (timerID < timer.length)) }
+			setOSDtimer();
+			InitMenu(menu);
+		}
+	} else 	if (menu == 5 && smartTVplugin) {
+		osdepginfo.style.opacity = 0;
+		mainmenu.innerHTML = "<h1 class=mainmenu>" + Lang[7] + "</h1><pre class=mainmenu>\n\n\n" + Lang[0] + "</pre>";
+		DeleteTimers();
+		setTimeout("LoadTimersServer();InitMenu(menu);",100);
+	} else 	if (menu == 10) {
+		channels[(timerID + Fav_base + 1)]="";
+		channelsnames[(timerID + Fav_base + 1)]="";
+		is.setObject(("vip.channelsnames." + (timerID + 1)),"",is.STORAGE_PERMANENT)
+		is.setObject(("vip.channels." + (timerID + 1)),"",is.STORAGE_PERMANENT)
+		if (Fav_max_channel == (timerID + 1)) { 
+			Fav_max_channel = timerID;
+			maxTimers = Fav_max_channel;
+			is.setObject("vip.fav_max_channel",Fav_max_channel.toString(),is.STORAGE_PERMANENT)
+			timerID -= 1; if (timerID < 0) {timerID = 0;}
+		}
+		setTimeout("InitMenu(menu);",100);
+	}
+    break;
+    case "Green":
+    	if (menu == 1) {
+		Set_Res = Set_Res + 1;
+		if (Set_Res > (VideoOutputModes.length-1)) { Set_Res = 0;}
+		// save the info
+		is.setObject("vip.resolution",Set_Res.toString(),is.STORAGE_PERMANENT)
+
+		VideoOutput();
+		InitMenu(menu);
+	} else if (menu == 2 && mediaRecorder) {
+		var x = ss.getBookingIds("*", 0, 0);
+		if (ss.getBooking(x[timerID-1]).category == "RecLocal") {
+			ss.reschedule(x[timerID-1],"SwitchOnly","notification",ss.getBooking(x[timerID-1]).start,ss.getBooking(x[timerID-1]).duration)
+		} else if (ss.getBooking(x[timerID-1]).category == "SwitchOnly") {
+			ss.reschedule(x[timerID-1],"RecLocal","record_hd_from_ip",ss.getBooking(x[timerID-1]).start,ss.getBooking(x[timerID-1]).duration)
+		}
+		LoadTimers();
+		InitMenu(menu);
+	} else 	if (menu == 5 && smartTVplugin) {
+		activate_timers(timerID);
+		InitMenu(menu);
+	} else 	if (menu == 10) {
+		//move up
+		if (timerID !== 0) {
+			x = timerID + Fav_base + 1;
+			x1 = channels[x];
+			y1 = channelsnames[x];
+			x2 = channels[(x - 1)];
+			y2 = channelsnames[(x - 1)];
+			is.setObject(("vip.channelsnames." + (timerID + 1)),y2,is.STORAGE_PERMANENT)
+			is.setObject(("vip.channels." + (timerID + 1)),x2,is.STORAGE_PERMANENT)
+			is.setObject(("vip.channelsnames." + timerID),y1,is.STORAGE_PERMANENT)
+			is.setObject(("vip.channels." + timerID),x1,is.STORAGE_PERMANENT)
+			channelsnames[x] = y2;
+			channels[x] = x2;
+			channelsnames[(x - 1)] = y1;
+			channels[(x - 1)] = x1;
+			timerID -= 1;
+			setTimeout("InitMenu(menu);",100);
+		}
+	} 
+    break;
+    case "Yellow":
+	if (menu == MainMenu) {
+		menu = 4; // INFO menu
+		InitMenu(menu);
+	} else 	if (menu == 1) {
+		menu = 9; // INFO2 menu
+		InitMenu(menu);
+	} else 	if (menu == 10) {
+		//move down
+		if (timerID !== (maxTimers - 1)) {
+			x = timerID + Fav_base + 1;
+			x1 = channels[x];
+			y1 = channelsnames[x];
+			x2 = channels[(x + 1)];
+			y2 = channelsnames[(x + 1)];
+			is.setObject(("vip.channelsnames." + (timerID + 1)),y2,is.STORAGE_PERMANENT)
+			is.setObject(("vip.channels." + (timerID + 1)),x2,is.STORAGE_PERMANENT)
+			is.setObject(("vip.channelsnames." + (timerID + 2)),y1,is.STORAGE_PERMANENT)
+			is.setObject(("vip.channels." + (timerID + 2)),x1,is.STORAGE_PERMANENT)
+			channelsnames[x] = y2;
+			channels[x] = x2;
+			channelsnames[(x + 1)] = y1;
+			channels[(x + 1)] = x1;
+			timerID += 1;
+			setTimeout("InitMenu(menu);",100);
+		}
+	}
+    break;
+    case "Blue":
+		if (menu == 0) {
+		RestartPortal();
+	} else if (menu == 1) {
+		css_nr += 1;
+		if (css_nr > (cssfile.length - 1)) { css_nr = 0;}
+		loadcss(cssfile[css_nr]);
+		alert(css_nr);
+		alert(cssfile[css_nr]);
+		is.setObject("vip.css_nr",css_nr.toString(),is.STORAGE_PERMANENT)
+		setTimeout("InitMenu(menu);",100);
+	} else if (menu == 2) {
+		// Show Info local timer/ recording
+		var x = ss.getBookingIds("*", 0, 0);
+		var y = Number(ss.getParameter(x[timerID-1], "Channel"));
+		osdepginfo.style.opacity = 1 - osdepginfo.style.opacity;
+	       	osdepginfo.innerHTML = "<pre class=epgtimerinfo>" + ss.getParameter(x[timerID-1], "Title") + "\n " + "\n" + y + " - " + channelsnames[y] + "(" + ss.getParameter(x[timerID-1], "Eventid") + ")" + "\n </pre><p class=epg_info>" + ss.getParameter(x[timerID-1], "Info") + "</p>" ;
+	} else 	if (menu == 5) {
+		// Show EPG info Timer
+		osdepginfo.style.opacity = 1 - osdepginfo.style.opacity;
+		osdepginfo.innerHTML = "<pre class=epgtimerinfo>\n\n\n" + Lang[0] + "\n\n\n </pre>" ;
+		setTimeout("ShowTimerInfo();",100);
+	} else 	if (menu == 7) {
+		// Show info SearchTimers
+	       	osdepginfo.innerHTML = SearchTimer[timerID] ;
+		osdepginfo.style.opacity = 1 - osdepginfo.style.opacity;
+	} else if (menu == 10) {
+		if (protChn[ChanGroup] !== 1 && ChanGroup !== Fav_group) {
+			AddtoFav();
+		}
+	}
+    break;
+    case "MediaRewind":
+	 if (menu == 1) {
+		if (experimental) { // mute output 0 (analog out), keep output 3 'decoder output' unmuted
+			aos.setVolume(0, 0); 
+			}
+	}
+    break;
+    case "MediaForward":
+	 if (menu == 1) {
+		if (experimental) { aos.setVolume(0, 100); }
+	}
+
+    break;
+    case "MediaStop":
+	if (menu == 1) {
+		//set sleep timer.
+		SleepTimer += 15;
+		if (SleepTimerID != -1) {
+		  clearTimeout(SleepTimerID);
+		  SleepTimerID = -1;
+		}
+		if (SleepTimer > 90) {
+			SleepTimer = 0;
+		} else {
+			SleepTimerID = setTimeout("SleepTimer = 0;toi.platformService.setStandby(true);", (SleepTimer * 60 * 1000));
+		}
+	} else if (menu == 2) {
+		var x = ss.getBookingIds("*", 0, 0);
+		var y = Number((new Date().getTime()/1000).toFixed(0)) + 2;
+		//stop current recording after 2 sec.
+		ss.reschedule(x[timerID-1],"RecLocal","record_hd_from_ip", y , 0)
+		ss.setParameter(x[timerID-1], "Type", "\uE01C");
+		LoadTimers();
+	}
+	InitMenu(menu);
+    break;
+    case "Teletext":
+    break;
+    case "TV":
+    break;
+	case KEY_1:
+		if (menu == MainMenu) {
+		menu = 1;
+		} else if (menu == 1) {
+		 ShowSubs = 1 - ShowSubs;
+		 videoplane.subtitles = Boolean(ShowSubs); // Enable subtitles or Disable subtitles
+		 is.setObject("vip.showsubs",ShowSubs.toString(),is.STORAGE_PERMANENT);
+		} else	if (menu == 8) {
+			SetGroup(1);
+		}
+
+	InitMenu(menu);
+	break;
+	case KEY_2:
+		if (menu == MainMenu) {
+			LoadTimers();
+			timerID = 1;
+				//if (timer.length !== 0) { do { timerID += 1; } while (!timer[timerID] && (timerID < timer.length)) }
+			menu = 2;
+		}
+
+		if (menu == 1) {
+			if(subsmode == 0 ) {	
+				is.setObject("cfg.media.subtitling.modepriority","Teletext,DVB",is.STORAGE_PERMANENT);
+				subsmode = 1;
+			} else {
+				is.setObject("cfg.media.subtitling.modepriority","DVB,Teletext",is.STORAGE_PERMANENT);
+				subsmode = 0;
+			}
+		}
+
+		if (menu == 8) {
+		SetGroup(2);
+		}
+		InitMenu(menu);
+	break;
+	case KEY_3:
+	if (menu == 0) {
+			isSetupMenu = 0;
+			medialist.style.opacity = 0.9;
+			mainmenu.style.opacity = 0;
+			setTimeout("getSchedule(currChan);LoadMediaSettings();",100);
+	} else	if (menu == 1) {
+			if (audio < (lang_prio.length -1)) { audio += 1} else { audio = 0 }
+				is.setObject("vip.languagepriority",audio.toString(),is.STORAGE_PERMANENT);
+				is.setObject("cfg.media.audio.languagepriority",lang_prio[audio],is.STORAGE_PERMANENT);
+		InitMenu(menu);
+	} else	if (menu == 8) {
+		SetGroup(3);
+		InitMenu(menu);
+	} 
+
+	break;
+	case KEY_4:
+		if (menu == 0) {
+			isSetupMenu = 0;
+			medialist.style.opacity = 0.9;
+			mainmenu.style.opacity = 0;
+			recPath = "/recordings.xml";
+			setTimeout("getRecList();LoadMediaSettings();",100);
+		} else if (menu == 1) {
+		//Init here. menu = 0 don't need init!
+		menu = 8;
+		InitMenu(menu);
+		} else if (menu == 8) {
+		SetGroup(4);
+		InitMenu(menu);
+		}
+
+	break;
+	case KEY_5:
+		if (menu == MainMenu && (Restfulapiplugin || smartTVplugin)) {
+			mainmenu.innerHTML = "<h1 class=mainmenu>" + Lang[7] + "</h1><pre class=mainmenu>\n\n\n" + Lang[0] + "</pre>";
+			timerID = 0;
+			menu = 5;
+			setTimeout("LoadTimersServer();InitMenu(menu);",200);
+		}
+
+	if (menu == 1) {
+		var x = is.getObject("vip.serveraddress");
+		x = Number(x);
+		if (x < (server_ip_array.length -1)) { x += 1} else { x = 0 }
+		is.setObject("vip.serveraddress",x.toString(),is.STORAGE_PERMANENT);
+
+		server_ip = server_ip_array[x];
+		for (var i=0;i<10;i++) {
+			if (ServerAdres[i] !== "FullURL" && ServerAdres[i] !== "MultiCast") {ServerAdres[i] = server_ip + StreamPort;}
+		}
+		InitMenu(menu);
+		}
+
+		if (menu == 8) {
+		SetGroup(5);
+		InitMenu(menu);
+		}
+	break;
+	case KEY_6:
+	if (menu == 0 && Restfulapiplugin) {
+			isSetupMenu = 0;
+			medialist.style.opacity = 0.9;
+			mainmenu.style.opacity = 0;
+			setTimeout("getServerSchedule();LoadMediaSettings();",100);
+			}
+
+	if (menu == 1) {
+		if(showClock == 0 )	{
+		 	showDisplay("", true, 80, 1 );
+			showClock = 1;
+		} else if(showClock == 1 ) {
+			showClock = 0;
+	 		showDisplay(currChan.toString(), false, 100, 0 );
+		}
+		InitMenu(menu);
+	}
+		if (menu == 8) {
+		SetGroup(6);
+		InitMenu(menu);
+		}
+
+	break;
+	case KEY_7:
+		if (menu == 0 && smartTVplugin) {
+			isSetupMenu = 0;
+			medialist.style.opacity = 0.9;
+			mainmenu.style.opacity = 0;
+			recPath = "/media.xml";
+			setTimeout("getRecList();LoadMediaSettings();",100);
+			}
+
+
+		if (menu == 1) {
+			ShowProtectedChannels = 1 - ShowProtectedChannels;
+			if (ProtectID) { clearTimeout(ProtectID); }
+			if (ShowProtectedChannels == 0 && ProtectTimeOut !== 0 ) {
+				ProtectID = setTimeout("ShowProtectedChannels = 1; if (protChn[ChanGroup] == 1) {ChanGroup = 0; currChan = defChan[ChanGroup]; play(currChan); }",ProtectTimeOut);
+				}
+			if (ShowProtectedChannels == 1 && protChn[ChanGroup] == 1) { ChanGroup = 0; currChan = defChan[ChanGroup]; play(currChan); }
+			isSetupMenu = 0;
+			mainmenu.style.opacity = 0;
+		}
+		if (menu == 8) {
+		SetGroup(7);
+		InitMenu(menu);
+		}
+
+	break;
+	case KEY_8:
+	if (menu == MainMenu && Restfulapiplugin) {
+			mainmenu.innerHTML = "<h1 class=mainmenu>" + Lang[8] + "</h1><pre class=mainmenu>\n\n\n" + Lang[0] + "</pre>";
+			timerID = 0;
+			menu = 7;
+			setTimeout("LoadSearchTimersServer();InitMenu(menu);",200);
+		}
+	if (menu == 1) {
+		if(SwitchGuide == 0 )	{
+			SwitchGuide = 1;
+		} else if(SwitchGuide == 1 ) {
+			SwitchGuide = 0;
+		}
+		InitMenu(menu);
+	}
+	if (menu == 8) {
+		SetGroup(8);
+		InitMenu(menu);
+	}
+
+
+	break;
+	case KEY_9:
+		if ((menu == 0 || menu == 3) && ShowMPD) {
+			menu = 3;
+			playMPD(server_ip + MPDAddress);
+		} else if (menu == 1) {
+			if (lang_nr < (OSDLang.length -1)) { lang_nr += 1} else { lang_nr = 0 }
+			is.setObject("vip.OSDlanguage",lang_nr.toString(),is.STORAGE_PERMANENT);
+			loadjs(langfile[lang_nr]);
+			setTimeout("InitMenu(menu);",100);
+		} else if (menu == 8) {
+			SetGroup(9);
+		}
+
+		InitMenu(menu);
+	break;
+	case KEY_0:
+		if (menu !== MainMenu && menu !== 8 ) {
+			if (menu == 3 ) { isFullscreen = 0; play(channels[currChan]); isFullscreen = 1; MPDListener = 0;}
+			menu = MainMenu;	
+			InitMenu(menu);
+		} else if (menu == 8) {
+			SetGroup(0);
+			InitMenu(menu);
+		} else if (menu == 0) {
+			timerID = 0; maxTimers = Fav_max_channel;
+			menu = 10; if (ChanGroup !== Fav_group) { Fav_key1 = Lang[86]; }
+			InitMenu(menu);
+		}
+
+	break;
+    case "VolumeMute":
+	VolumeMute();
+	break;
+    case "VolumeUp":
+	VolumeUp();
+	break;
+    case "VolumeDown":
+	VolumeDown();
+	break;
+    case KEY_A:// |> key on old long kpn 1710/1760 remote
+        break;
+    case KEY_B:// hh key on old long kpn 1710/1760 remote
+        break;
+    case KEY_C:// @ key on old long kpn 1710/1760 remote
+	if (menu == 10 ) {
+		isSetupMenu = 0;
+		mainmenu.style.opacity = 0;
+		osdepginfo.style.opacity = 0;
+	}
+        break;
+    case KEY_D:// >@ key on old long kpn 1710/1760 remote
+        break;
+
+	default:
+        break;
+  }
+}
+
+
+function InitMenu(menu) {
+
+// 0 = Main Menu
+// 1 = settings menu
+// 2 = Timers menu
+// 3 = MPD Menu
+// 4 = INFO Menu
+// 5 = Timers from Server
+// 6 = Main Menu (when watching recording)
+// 7 = SearchTimers from Server
+// 8 = ChannelGroups enable/disable
+// 9 = INFO2 menu
+// 10 = Favorite Edit menu
+
+osdepginfo.style.opacity = 0;
+
+if(menu == 0) { // Main Menu
+	MainMenu = 0;
+	var htmltext = "<h1 class=mainmenu>" + Lang[9] + "\n ( " + Version + " )</h1><pre class=mainmenu>   1 -" + Lang[10] + "\n   2 -" + Lang[7] + "\n   3 -" + Lang[11];
+	htmltext += "\n   4 -" + Lang[12]; 
+	if (Restfulapiplugin) { 
+		htmltext += "\n   5 -" + Lang[13]; 
+	} else { 
+		htmltext += "<span class=notset>" + "\n   5 -" + Lang[13] + "</span>" ;
+	}
+	if (Restfulapiplugin) { 
+		htmltext += "\n   6 -" + Lang[14]; 
+	} else {
+		htmltext += "<span class=notset>" + "\n   6 -" + Lang[14] + "</span>" ;  
+	}
+	if (smartTVplugin) { 
+		htmltext += "\n   7 -" + Lang[15]; 
+	} else { 
+		htmltext += "<span class=notset>" + "\n   7 -" + Lang[15] + "</span>" ; 
+	}
+	if (Restfulapiplugin) { 
+		htmltext += "\n   8 -" + Lang[16];
+	} else {
+		htmltext += "<span class=notset>" + "\n   8 -" + Lang[16] + "</span>" ;  
+	}
+	if (ShowMPD) { 
+		htmltext += "\n   9 -" + Lang[17]; 
+	} else { 
+		htmltext += "<span class=notset>" + "\n   9 -" + Lang[17] + "</span>" ; 
+	}
+
+	htmltext += "\n   0 - " + Lang[83] + "\n\n   <span class=redkey>\u25CF</span><span class=mainfont> -" + Lang[19] + "</span><span class=greenkey>\u25CF</span><span class=mainfont> -" + Lang[19] + "</span><span class=yellowkey>\u25CF</span><span class=mainfont> -" + Lang[35] + "   </span><span class=bluekey>\u25CF</span><span class=mainfont> -" + Lang[18] + "</pre>";
+	mainmenu.innerHTML = htmltext;
+}
+
+if(menu == 6) { // Main Menu when watching recording
+	MainMenu = 6;
+	mainmenu.innerHTML = "<h1 class=mainmenu>" + Lang[9] + "\n ( " + Version + " )</h1><pre class=mainmenu>   1 -" + Lang[10] + "\n   2 -" + Lang[7] + "\n\n\n   5 -" + Lang[13] + "\n\n\n   8 -" + Lang[16] + "\n\n\n\n   <span class=redkey>\u25CF</span><span class=mainfont> -" + Lang[19] + "</span><span class=greenkey>\u25CF</span><span class=mainfont> -" + Lang[19] + "</span><span class=yellowkey>\u25CF</span><span class=mainfont> -" + Lang[35] + "   </span><span class=bluekey>\u25CF</span><span class=mainfont> -" + Lang[19] + "</pre>";
+}
+
+
+if(menu == 1) { // settings menu
+	var htmltext = "<h1 class=mainmenu>" + Lang[10] + "</h1><pre class=mainmenu>   1 - ";
+	if (ShowSubs) { htmltext += "\uE017"; } else { htmltext += "\uE016"; }
+	htmltext += Lang[20] + ": " + (is.getObject("cfg.media.subtitling.languagepriority"));
+	if (subs_prio_dyn.length > 0) { htmltext += " (" + (subs_dyn + 1 ) + "/" + subs_prio_dyn.length + ") "; }
+	htmltext += "\n   2 - \uE003" + Lang[22] + (is.getObject("cfg.media.subtitling.modepriority"));
+	htmltext += "\n   3 - \uE003" + Lang[24] + (is.getObject("cfg.media.audio.languagepriority")); 
+	htmltext += "\n   4 - " + Lang[82] + "\n   5 - VDR : " + server_ip + "\n   6 - ";
+	if (showClock) { htmltext += "\uE017"; } else { htmltext += "\uE016"; }
+	htmltext += Lang[25] + "\n   7 - ";
+	if (ShowProtectedChannels) { htmltext += "\uE017"; } else { htmltext += "\uE016"; }
+	htmltext += Lang[26] + "\n   8 - ";
+	if (SwitchGuide) { htmltext += "\uE017"; } else { htmltext += "\uE016"; }
+	htmltext += Lang[27] + "\n   9 -" + Lang[23] + OSDLang[lang_nr] + "\n   \u25AA -" + Lang[29];
+
+	if (SleepTimer) { htmltext += SleepTimer + Lang[30]; } else { htmltext += Lang[31]; }
+
+	htmltext += "\n\n   <span class=redkey>\u25CF</span><span class=mainfont> -" + Lang[20];
+	htmltext += "</span><span class=greenkey>\u25CF</span><span class=mainfont> - " + VideoOutputModes_txt[VideoOutputModes[Set_Res]] + " ";  
+	htmltext += "</span><span class=yellowkey>\u25CF</span><span class=mainfont> -" + Lang[35];
+	htmltext += "</span><span class=bluekey>\u25CF</span><span class=mainfont> - " + Left(cssfile[css_nr].split(".")[0],8) +"</pre>";
+//	htmltext += "\n   0 -" + Lang[9] +"</pre>";
+	mainmenu.innerHTML = htmltext;
+}
+
+if(menu == 2) { // Timers menu
+	booking = "";
+	var x = timerID - 2;
+	var y = ss.getBookingIds("*", 0, 0);
+	if (y.length !== 0) {
+	for (var i=0;i<10;i++) {
+		if (timer.length !== 0) { do { x += 1; } while (!timer[x] && (x < timer.length)) }
+
+			if (i == 0) {
+			booking += "<span class=select>";
+			} else if (i == 1) {
+			booking += "</span>";
+			} 
+
+		if (timer.length > x) {
+			try {
+				if (ss.getParameter(y[x], "assetURI")) {
+				// test if there is a file with the timer if so more info is added
+					if (Number(ss.getParameter(y[x], "resume")) == 0 ) {
+						booking += "\uE003\uE010";
+					} else {
+						booking += "\uE003\uE003";
+					}			
+				}
+			} catch(e) {
+			    booking += "\uE003\uE003";
+			}
+			booking += ss.getParameter(y[x], "Type");
+			booking += timer[x];
+		} else {
+			booking += "\n";
+		}
+	}
+	}
+	if (mediaRecorder) { var x = NN[3]; } else { var x =  Lang[19]; }
+	mainmenu.innerHTML = "<h1 class=mainmenu>" + Lang[7] + "</h1><pre class=mainmenu>\n   0 -" + Lang[9] + "\n" + booking + "   <span class=redkey>\u25CF</span><span class=mainfont> -" + Lang[48] + "</span><span class=greenkey>\u25CF</span><span class=mainfont> - " + x + "  </span><span class=yellowkey>\u25CF</span><span class=mainfont> -" + Lang[19] + "</span><span class=bluekey>\u25CF</span><span class=mainfont> - " + NN[5] + "</pre>";
+}
+
+if(menu == 3) { // MPD Menu
+	mainmenu.innerHTML = "<h1 class=mainmenu>" + Lang[33] + "</h1><pre class=mainmenu>" + Lang[34] + "\n 0 -" + Lang[9] + "</pre>";
+}
+
+if(menu == 4) { // INFO Menu
+	var htmltext = "<h1 class=mainmenu>" + Lang[35] + "</h1><pre class=mainmenu>";
+	try {
+		htmltext += "\n   Product name: " + is.getObject("config.productdisplayname");
+		htmltext += "\n   Build date : " + is.getObject("config.build.date");
+		htmltext += "\n\n   IP address : " + is.getObject("config.ipaddress");
+
+		var x = is.getObject("cfg.ip.eth0.mode");
+		if (x == "DHCP") { htmltext += "\n \uE003\uE017 "; } else { htmltext += "\n \uE003\uE016 "; }
+		htmltext += "DHCP";
+		var x = is.getObject("var.capabilities.dvr");
+		if (x !== "FALSE") { htmltext += "\n \uE003\uE017 "; } else { htmltext += "\n \uE003\uE016 "; }
+		htmltext += "DVR \n";
+		htmltext += "\n   VDR address : " + server_ip;
+		htmltext += "\n   Vip Client\uE003\uE003\uE003: " + Version;
+		htmltext += "\n   Channel list\uE003: " + Chan_Ver;
+
+	} catch(e) {
+		alert("Error : " + e);
+	}
+	htmltext += "\n\n   0 -" + Lang[9] + "</pre>";
+	mainmenu.innerHTML = htmltext;
+
+}
+
+if(menu == 5) { // Timers from Server
+	if (timerOK) {
+	//	booking = "<center>" + Lang[32] + "</center>";
+	booking = "<span class=select>";
+	var x = timerID - 1;
+	for (var i=0;i<10;i++) {
+		if (maxTimers !== 0) { do { x += 1; } while (!timers[x] && (x < maxTimers)) }
+		if (maxTimers > x) { booking += timers[x]; } else { booking += "\n"; }
+		if (i == 0) { booking += "</span>"; } 
+	}
+	if (get_timer) {
+	mainmenu.innerHTML = "<h1 class=mainmenu>" + Lang[7] + "</h1><pre class=mainmenu>\n" + booking + "\n   <span class=redkey>\u25CF</span><span class=mainfont> -" + Lang[48] + "</span><span class=greenkey>\u25CF</span><span class=mainfont> -" + Lang[49] + "</span><span class=yellowkey>\u25CF</span><span class=mainfont> -" + Lang[19] + "   </span><span class=bluekey>\u25CF</span><span class=mainfont> -" + Lang[28] + "</pre>";
+	 } else {
+	mainmenu.innerHTML = "<h1 class=mainmenu>" + Lang[7] + "</h1><pre class=mainmenu>\n" + booking + "\n   <span class=redkey>\u25CF</span><span class=mainfont> -" + Lang[19] + "</span><span class=greenkey>\u25CF</span><span class=mainfont> -" + Lang[19] + "</span><span class=yellowkey>\u25CF</span><span class=mainfont> -" + Lang[19] + "   </span><span class=bluekey>\u25CF</span><span class=mainfont> -" + Lang[28] + "</pre>";
+	 }
+	}
+}
+
+
+if(menu == 7) { // SearchTimers from Server
+	if (timerOK) {
+	// 	booking = "<center>" + Lang[32] + "</center>";
+	booking = "<span class=select>";
+	var x = timerID - 1;
+	for (var i=0;i<10;i++) {
+		if (maxTimers !== 0) { do { x += 1; } while (!searchtimers[x] && (x < maxTimers)) }
+		if (maxTimers > x) { booking += searchtimers[x]; } else { booking += "\n"; }
+		if (i == 0) { booking += "</span>"; } 
+	}
+	mainmenu.innerHTML = "<h1 class=mainmenu>" + Lang[8] + "</h1><pre class=mainmenu>\n" + booking + "\n   <span class=redkey>\u25CF</span><span class=mainfont> -" + Lang[19] + "</span><span class=greenkey>\u25CF</span><span class=mainfont> -" + Lang[19] + "</span><span class=yellowkey>\u25CF</span><span class=mainfont> -" + Lang[19] + "   </span><span class=bluekey>\u25CF</span><span class=mainfont> -" + Lang[28] + "</pre>";
+
+	}
+}
+
+if(menu == 8) { // ChannelGroups enable/disable
+	var htmltext = "<h1 class=mainmenu>" + Lang[80] + "</h1><pre class=mainmenu>\n";
+	for (var i=0;i<10;i++) {
+		if (maxChan[i]) { } else { htmltext += "<span class=notset>"; }
+		htmltext += "\uE003" + i + "\uE003-\uE003";
+		if (is.getObject(("vip.group." + i)) == "1") { htmltext += "\uE017"; } else { htmltext += "\uE016"; }
+		htmltext += "\uE003" + Lang[81] + i + "\n";
+		if (maxChan[i]) { } else { htmltext += "</span>"; }
+	}
+	htmltext += "</pre>";
+	mainmenu.innerHTML = htmltext;
+	}
+
+if(menu == 9) { // INFO2 Menu
+	var htmltext = "<h1 class=mainmenu>" + Lang[35] + "</h1><pre class=mainmenu>";
+	try {
+		if (fullupdate !== 0) { htmltext += "\n \uE017 "; } else { htmltext += "\n \uE016 "; }
+		htmltext += "Full EPG Update ";
+
+		experimental = Number(is.getObject("vip.testing"));
+		if (experimental) { htmltext += "\n \uE017 "; } else { htmltext += "\n \uE016 "; }
+		htmltext += "Experimental";
+		if (Number(is.getObject("vip.testing2"))) { htmltext += "\n \uE017 "; } else { htmltext += "\n \uE016 "; }
+		htmltext += "Experimental 2 (Info box 'not in package')";
+		if (Restfulapiplugin) { htmltext += "\n \uE017 "; } else { htmltext += "\n \uE016 "; }
+		htmltext += "Has Restfulapiplugin"
+		if (smartTVplugin) { htmltext += "\n \uE017 "; } else { htmltext += "\n \uE016 "; }
+		htmltext += "Has smartTVplugin"
+		htmltext += "\n gettimers from";
+		if (get_timer == 1) { 
+			htmltext += " smarttvweb "; 
+		} else { 
+			htmltext += " restfulapi "; 
+		}
+
+		htmltext += "\n getmarks from";
+		if (get_marks == 1) { htmltext += " smarttvweb "; } else { htmltext += " restfulapi "; }
+		htmltext += "\n getrecordings from";
+		if (get_recordings == 1) { 
+			htmltext += " smarttvweb "; 
+		} else if (get_recordings == 0) { 
+			htmltext += " restfulapi "; 
+		} else {
+			htmltext += " streamdev "; 
+		}
+		htmltext += "\n EPGMode : "
+		if (EPGMode) { htmltext += "Full EPG"; } else { htmltext += "Now/Next Only"; }
+	} catch(e) {
+		alert("Error : " + e);
+	}
+	htmltext += "\n\n   0 -" + Lang[9] + "</pre>";
+	mainmenu.innerHTML = htmltext;
+
+}
+
+if(menu == 10) { // Favorite edit Menu
+	var htmltext = "<h1 class=mainmenu>" + Lang[83]
+	htmltext += "</h1><pre class=mainmenu>\n"
+	htmltext += "<span class=select>";
+	var x = timerID;
+	for (var i=0;i<10;i++) {
+		if (maxTimers !== 0) { x += 1;}
+		if (maxTimers >= x && x !== 0) { htmltext += " \u0003\u0003 " + x + " \u0003\u0003 " + channelsnames[(x + Fav_base)] + " \u0003\u0003\u0003 \n"; } else { htmltext += "\n"; }
+		if (i == 0) { htmltext += "</span>"; } 
+	}
+	htmltext += "\n   <span class=redkey>\u25CF</span><span class=mainfont> -" + Lang[87]; 
+	htmltext += "</span><span class=greenkey>\u25CF</span><span class=mainfont> -"
+	if (timerID == 0) { htmltext += Lang[19] } else { htmltext += Lang[84] } //no move up
+	htmltext += "</span><span class=yellowkey>\u25CF</span><span class=mainfont> -"
+	if (timerID == (maxTimers - 1) || x == 0) { htmltext += Lang[19] } else { htmltext += Lang[85] } //no move down
+	htmltext += "</span><span class=bluekey>\u25CF</span><span class=mainfont> -" + Fav_key1 + "</pre>";
+	mainmenu.innerHTML = htmltext;
+}
+
+} // end of initmenu
+
+function SetGroup(isgroup) {
+	is.setObject("vip.group." + isgroup,(1 - is.getObject("vip.group." + isgroup)).toString(),is.STORAGE_PERMANENT);
+	if (is.getObject("vip.group." + isgroup) == "0") { minChan[isgroup] = "";} else {minChan[isgroup] = minchan[isgroup];}
+}
+
+function LoadTimers() {
+		timer.length = 0;
+		var booking = "";
+		var x = ss.getBookingIds("*", 0, 0);
+			for (var i=0;i<x.length;i++) { 
+				var y = ss.getBooking(x[i]);
+				booking = " ID " + x[i];
+				booking += " " + Left(y.category,1);
+				tijd = y.start;
+				date = new Date(tijd*1000); 
+				tijd = date.toUTCString();
+				tijd = new Date(tijd);
+			        month = tijd.getMonth();
+			        d = tijd.getDate();
+		        	day = tijd.getDay();
+				var tm = tijd.getMinutes();
+				var th = tijd.getHours();
+				th=addzero(th);
+				tm=addzero(tm);
+
+//				booking += " Start " + Left(days[day],3) + " " + d + " " + Left(months[month],3) + " " + th + ":" + tm + "   " + (y.duration/60).toFixed(0) + " min";
+				booking += " " + d + " " + Left(months[month],3) + " " + th + ":" + tm + "   " + (y.duration/60).toFixed(0) + " min";
+
+				booking += " " + Left(channelsnames[ss.getParameter(x[i], "Channel")],8);
+				booking += "  " + Left(ss.getParameter(x[i], "Title"),15);
+				timer[i] = booking + "\n" ;
+
+				}
+}
+
+
+function LoadTimersServer() {
+try {
+
+ if (get_timer==1) {
+   //Get timers from SmartTVweb
+   xmlhttp=new XMLHttpRequest();
+   xmlhttp.open("GET",(server_ip + recServ + "/timers.xml?" + new Date().getTime()),false);
+   xmlhttp.send();
+   xmlDoc=xmlhttp.responseXML; 
+   var x=xmlDoc.getElementsByTagName("timer");
+   maxTimers = x.length;
+   timers.length = 0; // clear timers[i] tries to clear crap if current x.length < previous x.length
+   if (x.length > 0) {
+    for (var i=0;i<x.length;i++)
+	  { 
+	  var fill = "\uE003\uE003\uE003\uE003\uE003\uE003\uE003\uE003\uE003\uE003";
+	  timersFlag[i] = x[i].getElementsByTagName("flags")[0].childNodes[0].nodeValue;
+	  timersStrt[i] = Right("000" + x[i].getElementsByTagName("start")[0].childNodes[0].nodeValue,4);
+	  timersStop[i] = Right("000" + x[i].getElementsByTagName("stop")[0].childNodes[0].nodeValue,4);
+
+	  timersEvnt[i] = x[i].getElementsByTagName("eventid")[0].childNodes[0].nodeValue; // event_id
+	  timersID[i] = x[i].getElementsByTagName("index")[0].childNodes[0].nodeValue; // index
+	  timersChan[i]  = x[i].getElementsByTagName("channelid")[0].childNodes[0].nodeValue; // channel_id
+	  timersName[i] = x[i].getElementsByTagName("channelname")[0].childNodes[0].nodeValue + fill;
+	  timersDay[i] = x[i].getElementsByTagName("day")[0].childNodes[0].nodeValue;
+	  timersDays[i] = new Date(timersDay[i]*1000);
+	  timersDays[i] = timersDays[i].getDate() + "\uE003" + Left(months[timersDays[i].getMonth()],4);
+	  timersFile[i] = x[i].getElementsByTagName("file")[0].childNodes[0].nodeValue + fill + fill;
+
+	  if (timersFlag[i] == "1") { 
+		timers[i] = "\uE003\uE00C\uE003";
+	  } else if (timersFlag[i] == "9" || timersFlag[i] == "11" ) { 
+		timers[i] = "\uE003\uE00B\uE003";
+	  } else if (timersFlag[i] == "0") { 
+		timers[i] = "\uE003\uE003\uE003";
+	  }  else { 
+		timers[i] = "\uE003?\uE003";
+	  }
+
+	  timers[i] += timersDays[i] + "\uE003" + timersStrt[i] + "\uE003" + timersStop[i] + "\uE003" + Left(timersName[i],8) + "\uE003" + Left(timersFile[i],15) + "\n" ;
+    }
+   }
+    timerOK = 1;
+ } else if (get_timer == 0) {
+   xmlhttp=new XMLHttpRequest();
+   xmlhttp.open("GET",(server_ip + RestFulAPI + "/timers.xml"),false);  // ?" + new Date().getTime()),false);
+   xmlhttp.send();
+   xmlDoc=xmlhttp.responseXML; 
+   var x=xmlDoc.getElementsByTagName("timer");
+   maxTimers = x.length;
+   timers.length = 0; // clear timers[i] tries to clear crap if current x.length < previous x.length
+   if (x.length > 0) {
+    for (var i=0;i<x.length;i++)
+	  { 
+	  var fill = "\uE003\uE003\uE003\uE003\uE003\uE003\uE003\uE003\uE003\uE003";
+	  timersID[i] = x[i].getElementsByTagName("param")[0].childNodes[0].nodeValue;
+	  timersChan[i] = x[i].getElementsByTagName("param")[11].childNodes[0].nodeValue;
+	  timersFlag[i] = x[i].getElementsByTagName("param")[1].childNodes[0].nodeValue;
+	  timersStrt[i] = Right("00" + x[i].getElementsByTagName("param")[2].childNodes[0].nodeValue,4);
+	  timersStop[i] = Right("00" + x[i].getElementsByTagName("param")[3].childNodes[0].nodeValue,4);
+	  timersEvnt[i] = x[i].getElementsByTagName("param")[8].childNodes[0].nodeValue;
+	  timersDays[i] = x[i].getElementsByTagName("param")[9].childNodes[0].nodeValue;
+	  if (timersDays[i] == "-------" ) { 
+		timersDays[i] = x[i].getElementsByTagName("param")[10].childNodes[0].nodeValue;
+	  } else { 
+		timersDays[i] += "\uE003\uE003\uE003";
+	  }
+	  timersName[i] = x[i].getElementsByTagName("param")[15].childNodes[0].nodeValue + fill;
+	  timersFile[i] = x[i].getElementsByTagName("param")[14].childNodes[0].nodeValue + fill + fill;
+	  if (timersFlag[i] == "1") { 
+		timers[i] = "\uE003\uE00C\uE003";
+	  } else if (timersFlag[i] == "9") { 
+		timers[i] = "\uE003\uE00B\uE003";
+	  } else { 
+		timers[i] = "\uE003\uE003\uE003";
+	  }
+	  timers[i] += timersDays[i] + "\uE003" + timersStrt[i] + "\uE003" + timersStop[i] + "\uE003" + Left(timersName[i],8) + "\uE003" + Left(timersFile[i],15) + "\n" ;
+   } 
+  }
+   timerOK = 1;
+ }
+  } catch(e) {
+    timerOK = 0;
+    alert("Get Timers problem: " + e);
+    mainmenu.innerHTML = "<h1 class=mainmenu>" + Lang[7] + "</h1><pre class=mainmenu>\n  " + Lang[36] + ": \n " + server_ip + "</pre>";
+  }
+}
+
+function DeleteTimers() {
+if (get_timer==1) {
+ try {
+
+	xmlhttp=new XMLHttpRequest();
+ //
+ // SmartTVWeb
+ //	xmlhttp.open("GET",(server_ip + recServ + "/deleteTimer?guid=" + timersChan[timerID] + "&dy=" + timersDay[timerID] 
+ //			+ "&st=" + timersStrt[timerID] + "&sp=" + timersStop[timerID] + "&" + new Date().getTime()),false);
+	xmlhttp.open("GET",(server_ip + recServ + "/deleteTimer?index=" + timersID[timerID] + "&" + new Date().getTime()),false);
+	xmlhttp.send();
+
+  } catch(e) {
+    alert("Deleting Timers problem: " + e);
+  }
+ }
+}
+
+function activate_timers(){
+if (get_timer==1) {
+	// (De)activate timers.
+ try {
+
+	xmlhttp=new XMLHttpRequest();
+	if (timersFlag[timerID] == "0") { 
+	xmlhttp.open("GET",(server_ip + recServ + "/activateTimer?index=" + timersID[timerID] + "&activate=true&" + new Date().getTime()),false);
+	} else {
+	xmlhttp.open("GET",(server_ip + recServ + "/activateTimer?index=" + timersID[timerID] + "&activate=false&" + new Date().getTime()),false);
+	}
+	xmlhttp.send();
+
+	if (timersFlag[timerID] == "0") { 
+		timers[timerID] = timers[timerID].substr(0, 1) + "\uE00C" + timers[timerID].substr(2);
+		timersFlag[timerID] = "1"
+	} else {
+		timers[timerID] = timers[timerID].substr(0, 1) + "\uE003" + timers[timerID].substr(2);
+		timersFlag[timerID] = "0"
+	}
+  } catch(e) {
+    alert("(De)Activate Timers problem: " + e);
+  }
+ }
+}
+
+
+function ShowTimerInfo() {
+ if (osdepginfo.style.opacity == 1) {
+  //Like Show EPG Info
+  //setup some dummy vars
+  var info1 = ""; var info2 = ""; var info3 = ""; var info4="";
+  if (timersEvnt[timerID] > 0) {
+
+	try {
+	   xmlhttp=new XMLHttpRequest();
+	   xmlhttp.open("GET",(server_ip + RestFulAPI + "/events/" + timersChan[timerID] + "/" + timersEvnt[timerID] + ".xml?" + new Date().getTime()),false);  
+	   xmlhttp.send();
+	   xmlDoc=xmlhttp.responseXML;
+	   var x=xmlDoc.getElementsByTagName("event");
+		// x[0].getElementsByTagName("param")[1].childNodes[0].nodeValue --> Title
+		// x[0].getElementsByTagName("param")[2].childNodes[0].nodeValue --> Short_text
+		// x[0].getElementsByTagName("param")[3].childNodes[0].nodeValue --> Description
+		// x[0].getElementsByTagName("param")[5].childNodes[0].nodeValue --> ChannelsName
+
+		info1 = x[0].getElementsByTagName("param")[1].childNodes[0].nodeValue;
+		info2 = x[0].getElementsByTagName("param")[5].childNodes[0].nodeValue;
+		info4 = x[0].getElementsByTagName("param")[3].childNodes[0].nodeValue;
+		info3 = x[0].getElementsByTagName("param")[2].childNodes[0].nodeValue + "</p><p>";
+
+	  } catch(e) {
+	    alert("Get EPG problem: " + e);
+
+	  }
+  } else {
+	info3 = Lang[37];
+  }
+       	osdepginfo.innerHTML = "<pre class=epgtimerinfo>" + Left(info1,60) + "\n " + timersDays[timerID] + " " + 
+	timersStrt[timerID] + " - " + timersStop[timerID] + "\n" + info2 + "\n </pre><p class=epgtimerinfo>" + info3 + Left(info4,750) + "</p>" ;
+ }
+}
+
+function LoadSearchTimersServer() {
+try {
+   xmlhttp=new XMLHttpRequest();
+   xmlhttp.open("GET",(server_ip + RestFulAPI + "/searchtimers.xml?" + new Date().getTime()),false); //"),false);  // 
+   xmlhttp.send();
+   xmlDoc=xmlhttp.responseXML; 
+   var x=xmlDoc.getElementsByTagName("searchtimer");
+   maxTimers = x.length;
+   searchtimers.length = 0; // clear timers[i] tries to clear crap if current x.length < previous x.length
+   if (x.length > 0) {
+     for (var i=0;i<x.length;i++)
+	  { 
+	  var fill = "\uE003\uE003\uE003\uE003\uE003\uE003\uE003\uE003\uE003\uE003";
+	  searchtimersID[i] = x[i].getElementsByTagName("id")[0].childNodes[0].nodeValue;
+	  searchtimersSearch[i] = x[i].getElementsByTagName("search")[0].childNodes[0].nodeValue;
+	  searchtimersFlag[i] = x[i].getElementsByTagName("use_as_searchtimer")[0].childNodes[0].nodeValue;
+	  if (searchtimersFlag[i] == "1") { 
+		searchtimers[i] = "\uE003\uE017\uE003";
+	  } else if (searchtimersFlag[i] == "0") { 
+		searchtimers[i] = "\uE003\uE016\uE003";
+	  }  else { 
+		searchtimers[i] = "\uE003?\uE003";
+	  }
+
+		// Extended INFO
+		SearchTimer[i] = "<pre class=mainhead>" + x[i].getElementsByTagName("search")[0].childNodes[0].nodeValue + "\n </pre><pre>";
+		if ((x[i].getElementsByTagName("use_as_searchtimer")[0].childNodes[0].nodeValue) == 0) {
+			SearchTimer[i]  += "\uE003\uE016\uE003" + Lang[40] + "\n";
+		} else {
+			SearchTimer[i]  += "\uE003\uE017\uE003" + Lang[40] + "\n";
+		}
+		SearchTimer[i] = SearchTimer[i] + "\uE003\uE003\uE003Mode :\uE003" + (searchmode[x[i].getElementsByTagName("mode")[0].childNodes[0].nodeValue]) + "\n";
+		if ((x[i].getElementsByTagName("use_time")[0].childNodes[0].nodeValue) == 1) {
+			SearchTimer[i]  += "\uE003\uE017\uE003" + Lang[41] + "\uE003" + 
+					x[i].getElementsByTagName("start_time")[0].childNodes[0].nodeValue + 
+					"\uE003-\uE003" + x[i].getElementsByTagName("stop_time")[0].childNodes[0].nodeValue  + "\n";
+		} else {
+			SearchTimer[i]  += "\uE003\uE016\uE003" + Lang[41] + "\uE003" + "\n";
+		}
+		if ((x[i].getElementsByTagName("use_dayofweek")[0].childNodes[0].nodeValue) == 0) {
+			SearchTimer[i] += "\uE003\uE016\uE003" + Lang[47] + "\uE003" + "\n";
+		} else {
+			//bit is used for dayofweek.
+			var dowx = x[i].getElementsByTagName("dayofweek")[0].childNodes[0].nodeValue;
+			var dow = "";
+			if (dowx > 0) { var y = 1;} else { var y = 0;}
+			dowx = Math.abs(dowx);
+			for (var dowi=0; dowi<7; dowi++)
+			{
+				var mask = 1 << dowi;
+				if ((dowx & mask) != 0) { dow += days[(dowi+y)] + "\uE003";}
+			}
+			SearchTimer[i] += "\uE003\uE017\uE003" + Lang[47] + "\uE003:\uE003" + dow + "\n";
+		}
+
+
+		if ((x[i].getElementsByTagName("use_channel")[0].childNodes[0].nodeValue) == 0) {
+			SearchTimer[i] += "\uE003\uE016\uE003" + Lang[42] + "\uE003" + "\n";
+		} else {
+			SearchTimer[i] += "\uE003\uE017\uE003" + Lang[42] + "\uE003:\uE003" + 
+					searchchan[(x[i].getElementsByTagName("use_channel")[0].childNodes[0].nodeValue)] + "\uE003" + 
+					x[i].getElementsByTagName("channels")[0].childNodes[0].nodeValue + "\n";
+		}
+
+		SearchTimer[i]  += "\n</pre>";
+		// End of Extended INFO
+
+
+	  searchtimers[i] += searchtimersSearch[i]  + "\uE003\uE003\n" ;
+    }
+	  timerOK = 1;
+   }
+  } catch(e) {
+    timerOK = 0;
+    alert("Get SearchTimers problem: " + e);
+    mainmenu.innerHTML = "<h1 class=mainmenu>" + Lang[8] + "</h1><pre class=mainmenu>\n  " + Lang[43] + ": \n " + server_ip + RestFulAPI + "</pre>";
+  }
+}
+
+function ShowSearchTimerInfo() {
+  // info about a search timer.
+  //Like Show EPG Info
+  //setup some dummy vars
+
+  var info1 = ""; var info2 = "";
+
+	try {
+	   xmlhttp=new XMLHttpRequest();
+	   xmlhttp.open("GET",(server_ip + RestFulAPI + "/searchtimers/search/" + searchtimersID[timerID] + ".xml?" + new Date().getTime()),false);  
+	   xmlhttp.send();
+	   xmlDoc=xmlhttp.responseXML;
+	   var x=xmlDoc.getElementsByTagName("event");
+	   var maxinfo = x.length; if (maxinfo > 15) { maxinfo = 15;}
+		
+	   for (var i=0;i<maxinfo;i++)
+		  { 
+			info2 = x[i].getElementsByTagName("param")[16].childNodes[0].nodeValue; // Timer exists
+			if (info2 == "true") {
+				info1 += "\uE003\uE00C\uE003";
+			} else {
+				info1 += "\uE003\uE003\uE003";
+			}
+			info2 = x[i].getElementsByTagName("param")[17].childNodes[0].nodeValue; // Timer active
+			if (info2 == "true") {
+				info1 += "\uE017\uE003";
+			} else {
+				info1 += "\uE016\uE003";
+			}
+
+			info2 = x[i].getElementsByTagName("param")[6].childNodes[0].nodeValue; // Time
+			        date = new Date(Number(info2)*1000);
+	        		month = date.getMonth();
+			        d = date.getDate();
+		        	day = date.getDay();
+			        h = date.getHours();
+			        m = date.getMinutes();
+				h=addzero(h);
+				m=addzero(m);
+			info2 = Left(days[day],3) + "\uE003" + d + "\uE003" + Left(months[month],3) + "\uE003" + h + ':' + m;
+			info1 += info2;
+			info2 = "\uE003\uE003" + x[i].getElementsByTagName("param")[7].childNodes[0].nodeValue/60 + "\uE003"; // Duration
+			info1 += "\uE003" + Right(info2,3) + Lang[56] + "\uE003" + x[i].getElementsByTagName("param")[5].childNodes[0].nodeValue + "\uE003"; // Channel
+			info1 += "\uE003" + Left(x[i].getElementsByTagName("param")[1].childNodes[0].nodeValue,25) + "\uE003"; // Programm Title
+			info1 += "\n";
+			
+		}
+
+	  } catch(e) {
+	    alert("Get SearchTimer INFO problem: " + e);
+
+	  }
+
+       	osdepginfo.innerHTML = "<pre class=mainhead>" + searchtimersSearch[timerID] + "\n </pre><pre>" + info1 + "</pre>" ;
+
+}
+
+// End of Menu section
+
+// MPD Section
+
+function MPD(ev) {
+//     alert("Media player state changed: " + ev);
+//     alert("Media player state changed: state=" + ev.state + ", reason=" + ev.reason + ", code=" + ev.code);
+//     alert("Media player error :" + mediaPlayer.getError().details);
+if (MPDListener == 0) {
+	if (ev.state == 6 ) { 
+		if (ev.reason == "CommandClose" && ErrorAgain == 0) {
+			setTimeout("mediaPlayer.open(URL);mediaPlayer.play(1000);GetEPG(currChan);ExtraStuff();",500);
+			ErrorAgain = 1;
+		} else {
+			ErrorAgain = 0;
+			alert("Media player state changed: state=" + ev.state + ", reason=" + ev.reason + ", code=" + ev.code);
+			showDisplay("ERRR", false, 100, 0 ); 
+			if (experimental) {
+				settimer(0,ev.reason,0,2,color_error);
+			} else {
+				settimer(0,Lang[67],0,2,color_error);
+			}
+		}
+	}
+	
+} else {
+	if ( ev.state == 6 && ev.reason == "HostUnreachable" ) {
+	    showDisplay("ERRR", false, 100, 0 );
+	mainmenu.innerHTML = "<h1 class=mainmenu>" + Lang[60] + "</h1><pre class=mainmenu>" + Lang[34] + "\n   0 -" + Lang[9] + "\n   9 -" + Lang[61] + "\n\n<pre class=mainhead>" + Lang[62] + ": \n" + server_ip + MPDAddress + "</pre></pre>";
+	  } else if ( ev.state == 2 ) { // && ev.reason == "PositionEnd" ) {
+	    showDisplay("STOP", false, 100, 0 );
+	mainmenu.innerHTML = "<h1 class=mainmenu>" + Lang[60] + "</h1><pre class=mainmenu>" + Lang[34] + "\n   0 -" + Lang[9] + "\n   9 -" + Lang[63] + "\n\n<pre class=mainhead>" + Lang[64] + ": \n" + server_ip + MPDAddress + "\n" + Lang[65] + "</pre></pre>";
+	  } else if ( ev.state == 3 && ev.reason == "CommandPlay" ) {
+	showDisplay("MPD", false, 100, 0 );
+	mainmenu.innerHTML = "<h1 class=mainmenu>" + Lang[60] + "</h1><pre class=mainmenu>" + Lang[34] + "\n   0 -" + Lang[9] + "\n\n\n<pre class =mainhead>" + Lang[64] + ": \n" + server_ip + MPDAddress + "</pre></pre>";
+	  } else {
+	    showDisplay("ERRR", false, 100, 0 );
+	mainmenu.innerHTML = "<h1 class=mainmenu>" + Lang[60] + "</h1><pre class=mainmenu>" + Lang[34] + "\n   0 -" + Lang[9] + "\n   9 -" + Lang[63] + "\n\n<pre class=main_head>Error : " + ev.state + "\n" + Lang[66] + ": " + ev.reason + "</pre></pre>";
+	}
+}
+
+}
+
+function playMPD(uri) {
+  try {
+    if (mediaPlayer.getState() != mediaPlayer.STATE_IDLE) {
+      mediaPlayer.close();
+    }
+	MPDListener = 1;
+	mediaPlayer.open(uri);
+	mediaPlayer.play(1000);
+  } catch (e) {
+    alert("Failed opening recording: " + e);
+    return;
+  }
+}
+
+
+// End of MPD Section
+
+// Media Player Section
+
+function LoadMediaSettings() {
+		subgroup = 0;
+		subsubgroup = 0;
+		isMediaMenu = 1;
+		isFullscreen = 0;
+		if (getRecOK !== 2) { showDisplay("STOP", false, 100, 0 ); }
+		currMed = 0;
+		if (getRecOK) { showMediaList();}
+		mediaPlayer.addEventListener(mediaPlayer.ON_POSITION_CHANGED, ShowMediaOSD);
+		mediaPlayer.addEventListener(mediaPlayer.ON_STATE_CHANGED, onStateChanged);
+}
+
+function UnloadMediaSettings() {
+	mediaPlayer.removeEventListener(mediaPlayer.ON_POSITION_CHANGED, ShowMediaOSD);
+	mediaPlayer.removeEventListener(mediaPlayer.ON_STATE_CHANGED, onStateChanged);
+	medialist.style.opacity = 0;
+	osdmedia.style.opacity = 0;
+	osdmediatime.style.opacity = 0;
+	osdepginfo.style.opacity = 0;
+	medialist.innerHTML = "<h1 class=mainmenu>" + Lang[0] + "</h1>";
+	showDisplay(currChan.toString(), false, 100, 0 );
+	isMediaMenu = 0;
+	isFullscreen = 1;
+	isPause = 0;
+	set_yellow_key = 0;
+	localRecording = 0;
+	if (mediaPlayer.getState() != mediaPlayer.STATE_PLAYING ) {
+        play(channels[currChan]);
+	}
+}
+
+
+
+function onKeyMedia(keyCode) {
+if (DelisOK) {
+	switch(keyCode) {
+	case KEY_OK:
+	  medialist.innerHTML = "<h1 class=mainmenu>" + Lang[0] + "</h1>";
+	  switchtimer.style.opacity = 0;
+	  setTimeout("DelRec2(); getRecList(); showMediaList();",100)
+	default:
+	  switchtimer.style.opacity = 0;
+	  DelisOK = 0;
+	break;
+  	} // end of switch
+} else if (medialist.style.opacity != 0) { 
+  switch(keyCode) {
+    case "BrowserBack":
+	if (subgroup && osdepginfo.style.opacity == 0) { 	
+		subgroup = 0;
+		subsubgroup = 0;
+		if (ShowSubDir) {
+			MakeRecList2();
+		} else {
+			MakeRecList();
+		}
+		setTimeout("showMediaList();",100)
+		break;
+	}
+	if (osdepginfo.style.opacity == 1) { osdepginfo.style.opacity = 0; break; }
+    case "TV":
+	UnloadMediaSettings();
+        break;
+    case "Yellow":
+	if (set_yellow_key) { 
+		//hide/display schedule with same button
+		UnloadMediaSettings();
+	}
+	break;
+    case "Right":
+	if (getRecOK !== 0) {
+           for (var i=0;i<10;i++) {
+		do
+		{
+		        incMed(1);
+		}
+	//	while (!recTitl[currMed]);
+		while (!recList[currMed]);
+	   }	
+	showMediaList();
+	}
+	break;
+    case "Left":
+	if (getRecOK !== 0) {
+           for (var i=0;i<10;i++) {
+		do
+		{
+		        decMed(1);
+		}
+	//	while (!recTitl[currMed]);
+		while (!recList[currMed]);
+	   }
+	showMediaList();
+	}
+	break;
+    case "Down":
+	if (getRecOK !== 0) {
+	do
+	{
+	        incMed(1);
+	}
+	//	while (!recTitl[currMed]);
+		while (!recList[currMed]);
+	showMediaList();
+	}
+        break;
+    case "Up":
+	if (getRecOK !== 0) {
+	do
+	{
+	        decMed(1);
+	}
+	//	while (!recTitl[currMed]);
+		while (!recList[currMed]);
+	showMediaList();
+	}
+	break;
+  case KEY_OK:
+  case "MediaPlayPause":
+	if (getRecOK == 2) {
+		ShowInfo();
+		osdepginfo.style.opacity = 1 - osdepginfo.style.opacity;
+	}
+	if (getRecOK == 1) {
+		if (recGroup[currMed] !== 0 && subgroup == 0 && ShowSubDir) {
+			if (subgroup_old) {
+			setTimeout("MakeRecList_sublevel(recGroup[currMed]); showMediaList();",100)
+			} else {
+			setTimeout("MakeRecList3(recGroup[currMed]); showMediaList();",100)
+			}
+			subgroup = 1;
+		} else if (recSubGroup[currMed] !== 0 && subgroup == 1 && subsubgroup == 0 && ShowSubDir && subgroup_old) {
+			setTimeout("MakeRecList_sublevel2(recGroup[currMed],recSubGroup[currMed]); showMediaList();",100)
+			subsubgroup = 1;
+		} else {
+			recList[currMed] = "\u0003" + recList[currMed].substring(1);
+			medialist.style.opacity = 0;
+			if (get_recordings == 1) {
+			setTimeout("GetMarks(); getResume(); playRec(recLink[currMed]+ '?mode=streamtoend&time=' + position);",100);
+			} else if (get_recordings == 2) {
+//			setTimeout("playRec(recLink[currMed]+ '?pos=resume');position = (mediaPlayer.getPosition()/1000);",100)
+			position = 0;
+			setTimeout("playRec(recLink[currMed]);",100)
+			}
+		}
+	}
+        break;
+    case "Red":
+	if (getRecOK == 1 && (recGroup[currMed] == 0 || subgroup == 1)) { 
+	   // Only delete item if it isn't a subdir marker
+	   DelRec(); 
+	}
+	if (getRecOK == 2) { //set timer
+			settimer(recStrt[currMed],recTitl[currMed],recDura[currMed],1,color_switchtimer,recDesc[currMed],recGUID[currMed].toString());
+	 }
+	break;
+    case "Blue":
+	// only show info if not a subdir marker or if in EPG mode
+	if ( (getRecOK == 1 && (recGroup[currMed] == 0 || subgroup == 1)) || getRecOK == 2) {
+	ShowInfo();
+	osdepginfo.style.opacity = 1 - osdepginfo.style.opacity;
+	}
+	break;
+    case "Green":
+	if (getRecOK == 2 && mediaRecorder) { //set timer only if mediaRecorder = 1, unit has harddisk
+			settimer(recStrt[currMed],recTitl[currMed],recDura[currMed],3,"",recDesc[currMed],recGUID[currMed].toString());
+	 }
+	break;
+
+    case "VolumeMute":
+	VolumeMute();
+	break;
+    case "VolumeUp":
+	VolumeUp();
+	break;
+    case "VolumeDown":
+	VolumeDown();
+	break;
+
+    case KEY_REC:
+    case KEY_REC2:
+	// make timer for recording
+	if (getRecOK == 2) { //set timer
+			settimer(recStrt[currMed],recTitl[currMed],recDura[currMed],2);
+			ServerTimer(channels[currChan],recGUID[currMed]);
+	 } 
+        break;
+   case KEY_0:
+	if (getRecOK == 1 && (recGroup[currMed] == 0 || recSubGroup[currMed] == 0 || subsubgroup == 1)) { 
+	// Only rewind file if it isn't a subdir marker
+	setResumeNull();
+	showMediaList();
+	}
+	break;
+   case KEY_1:
+	if (getRecOK == 1 && (recGroup[currMed] == 0 || recSubGroup[currMed] == 0 || subsubgroup == 1)) { 
+		// Only do reccmds if it isn't a subdir marker
+		reccmds(1);
+	}
+	break;
+   case KEY_2:
+	if (getRecOK == 1 && (recGroup[currMed] == 0 || recSubGroup[currMed] == 0 || subsubgroup == 1)) { 
+		// Only do reccmds if it isn't a subdir marker
+		reccmds(2);
+	}
+	break;
+   case KEY_3:
+	if (getRecOK == 1 && (recGroup[currMed] == 0 || recSubGroup[currMed] == 0 || subsubgroup == 1)) { 
+		// Only do reccmds if it isn't a subdir marker
+		reccmds(3);
+	}
+	break;
+   case KEY_4:
+	if (getRecOK == 1 && (recGroup[currMed] == 0 || recSubGroup[currMed] == 0 || subsubgroup == 1)) { 
+		// Only do reccmds if it isn't a subdir marker
+		reccmds(4);
+	}
+	break;
+   case KEY_5:
+	if (getRecOK == 1 && (recGroup[currMed] == 0 || recSubGroup[currMed] == 0 || subsubgroup == 1)) { 
+		// Only do reccmds if it isn't a subdir marker
+		reccmds(5);
+	}
+	break;
+   case KEY_6:
+	if (getRecOK == 1 && (recGroup[currMed] == 0 || recSubGroup[currMed] == 0 || subsubgroup == 1)) { 
+		// Only do reccmds if it isn't a subdir marker
+		reccmds(6);
+	}
+	break;
+   case KEY_7:
+	if (getRecOK == 1 && (recGroup[currMed] == 0 || recSubGroup[currMed] == 0 || subsubgroup == 1)) { 
+		// Only do reccmds if it isn't a subdir marker
+		reccmds(7);
+	}
+	break;
+   case KEY_8:
+	if (getRecOK == 1 && (recGroup[currMed] == 0 || recSubGroup[currMed] == 0 || subsubgroup == 1)) { 
+		// Only do reccmds if it isn't a subdir marker
+		reccmds(8);
+	}
+	break;
+   case KEY_9:
+	if (getRecOK == 1 && (recGroup[currMed] == 0 || recSubGroup[currMed] == 0 || subsubgroup == 1)) { 
+		// Only do reccmds if it isn't a subdir marker
+		reccmds(9);
+	}
+	break;
+
+
+
+	default:
+        break;
+  } // end of switch
+} else { 
+  switch(keyCode) {
+    case "BrowserBack":
+//		ShowInfo();
+//		osdepginfo.style.opacity = 1 - osdepginfo.style.opacity;
+		break;
+    case "TV":
+	setResume();
+	play(channels[currChan]);
+	UnloadMediaSettings();
+        break;
+    break;
+    case "Down":
+	if (mediaPlayer.getState() != mediaPlayer.STATE_PAUSED) {
+	      showDisplay("PAUS", false, 100, 0 );
+	      mediaPlayer.play(0);
+	}
+        break;
+    case "Up":
+	if (mediaPlayer.getState() != mediaPlayer.STATE_PLAYING) {
+		if (currMed == -1 || localRecording == 1 ) {
+		      showDisplay("PLAY", false, 100, 0 );
+		      mediaPlayer.play(1000);
+		} else {		
+		      position += (mediaPlayer.getPosition()/1000);
+			if (get_recordings == 1) {
+			      playRec((recLink[currMed] + "?mode=streamtoend&time=" + position));
+			} else if (get_recordings == 2) {
+			      playRec((recLink[currMed] + "?pos=time." + position));
+			}
+		}
+	}
+	break;
+  case KEY_OK:
+	osdmedia.style.opacity = 1 - osdmedia.style.opacity;
+	osdmediatime.style.opacity = osdmedia.style.opacity;
+	ShowMediaOSD();
+        break;
+   case "Green":
+	if (audio_dyn < (lang_prio_dyn.length -1)) { audio_dyn += 1} else { audio_dyn = 0 }
+	if (lang_prio_dyn.length > 1) {
+		is.setObject("cfg.media.audio.languagepriority",lang_prio_dyn[audio_dyn] + "," + lang_prio[audio],is.STORAGE_PERMANENT);
+		osdlang.style.opacity = 1;
+		osdlang.innerHTML = "<img src='unmute.png'> " + lang_prio_dyn[audio_dyn] + " ";
+		setTimeout("osdlang.style.opacity = 0; ", 3000);
+	}
+	break;
+    case "Yellow":
+	 ShowSubs = 1 - ShowSubs;
+	 videoplane.subtitles = Boolean(ShowSubs); // Enable subtitles or Disable subtitles
+	break;
+    case "Blue":
+	if ( isPause == 0 ) {
+		ShowInfo();
+		osdepginfo.style.opacity = 1 - osdepginfo.style.opacity;
+	}
+	break;
+    case "Red":
+	GetMarks();
+	ShowMediaOSD();
+	break;
+
+   case "Menu":
+	osdepginfo.style.opacity = 0;
+	osdepginfonext.style.opacity = 0;
+	isSetupMenu = 1;
+	mainmenu.style.opacity = 0.8;
+	menu = 6;
+	InitMenu(menu);
+	break;
+
+    case "VolumeMute":
+	VolumeMute();
+	break;
+    case "VolumeUp":
+	VolumeUp()
+	break;
+    case "VolumeDown":
+	VolumeDown();
+	break;
+
+
+    case KEY_REC:
+    case KEY_REC2:
+	break;
+    case "MediaRewind":
+	    if (mediaPlayer.getState() != mediaPlayer.STATE_IDLE) {
+	      mediaPlayer.play(-4000);
+	    showDisplay("REW", false, 100, 0 );
+	    }
+    break;
+    case "MediaForward":
+	    if (mediaPlayer.getState() != mediaPlayer.STATE_IDLE) {
+	      mediaPlayer.play(4000);
+	    showDisplay("FF", false, 100, 0 );
+	    }
+    break;
+    case "MediaStop":
+	    if (currMed == -1 || isPause == 1 || localRecording == 1) {
+		    if (localRecording == 1) { 
+			ss.setParameter(recDummy[0], "resume", mediaPlayer.getPosition().toString());
+		    }
+		    osdepginfo.style.opacity = 0;
+		    isFullscreen = 1; play(channels[currChan]); 
+		    UnloadMediaSettings();		
+	    } else {
+		    setResume();
+		    osdepginfo.style.opacity = 0;
+		    isFullscreen = 0; play(channels[currChan]); isFullscreen = 1;
+		    medialist.style.opacity = 0.9;
+		    showDisplay("STOP", false, 100, 0 );
+		    showMediaList();
+	    }
+    break;
+	case "MediaPlayPause":
+	    if (mediaPlayer.getState() != mediaPlayer.STATE_PAUSED) {
+	      showDisplay("PAUS", false, 100, 0 );
+	      mediaPlayer.play(0);
+	    } else {
+		if (currMed == -1 || localRecording == 1) {
+		      showDisplay("PLAY", false, 100, 0 );
+		      mediaPlayer.play(1000);
+		} else {		
+			position += (mediaPlayer.getPosition()/1000);
+			if (get_recordings == 1) {
+				playRec((recLink[currMed] + "?mode=streamtoend&time=" + position));
+			} else if (get_recordings == 2) {
+				playRec((recLink[currMed] + "?pos=time." + position));
+			}
+		}
+    	    }
+	break;
+    case KEY_1:
+	if (localRecording != 1 ) {
+		position += (mediaPlayer.getPosition()/1000) - 30;
+		if (position <= 0) { position = 0;} 
+			if (get_recordings == 1) {
+			      playRec((recLink[currMed] + "?mode=streamtoend&time=" + position));
+			} else if (get_recordings == 2) {
+			      playRec((recLink[currMed] + "?pos=time." + position));
+			}
+	} else {
+		mediaPlayer.playFromPosition((mediaPlayer.getPosition()-30000),1000);
+	}
+	break;
+    case KEY_4:
+	if (localRecording != 1 ) {
+		position += (mediaPlayer.getPosition()/1000) - 60;
+		if (position <= 0) { position = 0;} 
+			if (get_recordings == 1) {
+			      playRec((recLink[currMed] + "?mode=streamtoend&time=" + position));
+			} else if (get_recordings == 2) {
+			      playRec((recLink[currMed] + "?pos=time." + position));
+			}
+	} else {
+		mediaPlayer.playFromPosition((mediaPlayer.getPosition()-60000),1000);
+
+	}
+	break;
+    case KEY_7:
+	if (localRecording != 1 ) {
+		position += (mediaPlayer.getPosition()/1000) - 240;
+		if (position <= 0) { position = 0;} 
+			if (get_recordings == 1) {
+			      playRec((recLink[currMed] + "?mode=streamtoend&time=" + position));
+			} else if (get_recordings == 2) {
+			      playRec((recLink[currMed] + "?pos=time." + position));
+			}
+	} else {
+		mediaPlayer.playFromPosition((mediaPlayer.getPosition()-240000),1000);
+
+	}
+	break;
+
+    case KEY_5:
+	if (localRecording != 1 ) {
+	if (recMark.length>posMark && get_recordings == 1) {	
+		position = recMark[posMark]; 
+		playRec(recLink[currMed] + "?mode=streamtoend&time=" + position); 
+	}
+	}
+	break;
+    case KEY_2:
+	if (localRecording != 1 ) {
+	if (posMark>0 && get_recordings == 1) {	
+		posMark -= 1;
+		position = recMark[posMark]; 
+		playRec(recLink[currMed] + "?mode=streamtoend&time=" + position); 
+	}
+	}
+	break;
+    case KEY_8:
+	if (localRecording != 1 ) {
+	if (recMark[posMark+1] && get_recordings == 1) {	
+		posMark += 1;
+		position = recMark[posMark]; 
+		playRec(recLink[currMed] + "?mode=streamtoend&time=" + position); 
+	}
+	}
+	break;
+
+
+
+    case KEY_3:
+	if (localRecording != 1 ) {
+		position += (mediaPlayer.getPosition()/1000) + 30;
+		if (get_recordings == 1) {
+			if (position >= recDura[currMed]) {
+			 	BackToTV();
+			} else {
+				playRec((recLink[currMed] + "?mode=streamtoend&time=" + position));
+			}
+		} else if (get_recordings == 2) {
+			playRec((recLink[currMed] + "?pos=time." + position));
+		}
+	} else {
+		mediaPlayer.playFromPosition((mediaPlayer.getPosition()+30000),1000);
+	}
+	break;
+    case KEY_6:
+	if (localRecording != 1 ) {
+		position += (mediaPlayer.getPosition()/1000) + 60;
+		if (get_recordings == 1) {
+			if (position >= recDura[currMed]) {
+			 	BackToTV();
+			} else {
+				playRec((recLink[currMed] + "?mode=streamtoend&time=" + position));
+			}
+		} else if (get_recordings == 2) {
+			playRec((recLink[currMed] + "?pos=time." + position));
+		}
+	} else {
+		mediaPlayer.playFromPosition((mediaPlayer.getPosition()+60000),1000);
+	}
+	break;
+    case KEY_9:
+	if (localRecording != 1 ) {
+		position += (mediaPlayer.getPosition()/1000) + 240;
+		if (get_recordings == 1) {
+			if (position >= recDura[currMed]) {
+			 	BackToTV();
+			} else {
+				playRec((recLink[currMed] + "?mode=streamtoend&time=" + position));
+			}
+		} else if (get_recordings == 2) {
+			playRec((recLink[currMed] + "?pos=time." + position));
+		}
+	} else {
+		mediaPlayer.playFromPosition((mediaPlayer.getPosition()+240000),1000);
+	}
+	break;
+   case KEY_0:
+	if (localRecording != 1 ) {
+	position = 0; posMark = 0;
+			if (get_recordings == 1) {
+			      playRec((recLink[currMed] + "?mode=streamtoend&time=" + position));
+			} else if (get_recordings == 2) {
+			      playRec((recLink[currMed] + "?pos=time." + position));
+			}
+	} else {
+		mediaPlayer.playFromPosition(0,1000)
+	}
+	break;
+
+	default:
+        break;
+  } // end of switch
+ } // end of if
+}
+
+function getRecList() {
+	getVDRstatus();
+	MaxInGroup = 14;
+	subgroup = 0;
+	subsubgroup = 0;
+try {
+ if (get_recordings ==1) {
+	 // get recordings from smartTVWeb
+	  xmlhttp=new XMLHttpRequest();
+	   xmlhttp.open("GET",(server_ip + recServ + recPath + "?" + new Date().getTime()),false);
+	   xmlhttp.send();
+	   xmlDoc=xmlhttp.responseXML; 
+	   var x=xmlDoc.getElementsByTagName("item");
+	   nrMedia = x.length - 1;
+	   recTitl.length = 0;
+	   rec_lst.length = 0;
+
+	 if (recPath == "/recordings.xml") {
+	   for (var i=0;i<x.length;i++)
+		  { 
+			rec_lst[i] = new Array();
+			for (var yy=0;yy<9;yy++) { rec_lst[i][yy] = new Array(); }
+			  rec_lst[i][0] = (x[i].getElementsByTagName("title")[0].childNodes[0].nodeValue);
+			  rec_lst[i][0] = rec_lst[i][0].split("~");
+			  rec_lst[i][1] = (x[i].getElementsByTagName("enclosure")[0].getAttribute('url'));
+			  rec_lst[i][2] = (x[i].getElementsByTagName("description")[0].childNodes[0].nodeValue);
+			  rec_lst[i][3] = (x[i].getElementsByTagName("duration")[0].childNodes[0].nodeValue);
+			  rec_lst[i][4] = (x[i].getElementsByTagName("start")[0].childNodes[0].nodeValue);
+			  rec_lst[i][5] = (x[i].getElementsByTagName("isnew")[0].childNodes[0].nodeValue);
+			  rec_lst[i][6] = (x[i].getElementsByTagName("guid")[0].childNodes[0].nodeValue);
+			  //Get channel number from recordings, shows right names only if server & client use same channel order
+			  recDummy = rec_lst[i][6].split(".");
+			  recDummy = recDummy[(recDummy.length-2)].split("-");
+			  rec_lst[i][7] = recDummy[0] + "\uE003-\uE003" + channelsnames[(recDummy[0])];
+			  rec_lst[i][8] = protChn[Number(Left((recDummy[0] / 1000),1))];
+
+	 }
+
+	  //Get channel number from recordings
+		rec_lst.sort();
+	   	for (var i=0;i<x.length;i++) {
+			recTitl[i] = rec_lst[i][0];
+			recLink[i] = rec_lst[i][1];
+			recDesc[i] = rec_lst[i][2];
+			recDura[i] = rec_lst[i][3];
+			recStrt[i] = rec_lst[i][4];
+			rec_New[i] = rec_lst[i][5];
+			recGUID[i] = rec_lst[i][6];
+			recChan[i] = rec_lst[i][7];
+			recProt[i] = rec_lst[i][8];
+		}
+		recProt[i] = 1;
+	 } else {
+
+	 // old recordings list function
+	 // also used for media listing
+
+	   for (var i=0;i<x.length;i++) { 
+	          recTitl[i] = (x[i].getElementsByTagName("title")[0].childNodes[0].nodeValue);
+	          recTitl[i] = recTitl[i].split("~");
+	 //          recLink[i] = (x[i].getElementsByTagName("link")[0].childNodes[0].nodeValue);
+	          recLink[i] = (x[i].getElementsByTagName("enclosure")[0].getAttribute('url'));
+	          recDesc[i] = (x[i].getElementsByTagName("description")[0].childNodes[0].nodeValue);
+	          recDura[i] = (x[i].getElementsByTagName("duration")[0].childNodes[0].nodeValue);
+	          recStrt[i] = (x[i].getElementsByTagName("start")[0].childNodes[0].nodeValue);
+	          rec_New[i] = (x[i].getElementsByTagName("isnew")[0].childNodes[0].nodeValue);
+	          recGUID[i] = (x[i].getElementsByTagName("guid")[0].childNodes[0].nodeValue);
+                  //Media directory
+                  recChan[i] = "Media File";
+                  recProt[i] = 0; // No protection for Media Files.
+	         }
+	// try to fix display double entries in the last directory. (Only shown for some time after deleting files, should be fixed now)
+	recProt[i] = 1;
+   }
+} else if (get_recordings == 2) {
+//get recordings from streamdev
+//no media directory or delete support
+   xmlhttp=new XMLHttpRequest();
+   xmlhttp.open("GET",(server_ip + StreamPort + "recordings.rss?" + new Date().getTime()),false);
+   xmlhttp.send();
+   xmlDoc=xmlhttp.responseXML; 
+   var x=xmlDoc.getElementsByTagName("item");
+   nrMedia = x.length - 1;
+   recTitl.length = 0;
+
+   for (var i=0;i<x.length;i++)
+	  { 
+			  rec_lst[i] = new Array();
+			  for (var yy=0;yy<9;yy++) { rec_lst[i][yy] = new Array(); }
+			  rec_lst[i][0] = x[i].getElementsByTagName("title")[0].childNodes[0].nodeValue.split("  ");
+			  rec_lst[i][0] = rec_lst[i][0][1].split("~");
+			  rec_lst[i][1] = x[i].getElementsByTagName("enclosure")[0].getAttribute('url');
+			  rec_lst[i][2] = Lang[37];
+			  rec_lst[i][3] = Lang[37];
+			  rec_lst[i][4] = x[i].getElementsByTagName("title")[0].childNodes[0].nodeValue;
+			  rec_lst[i][4] = rec_lst[i][4].split(" ");
+			  rec_lst[i][4] = rec_lst[i][4][1] + " " + rec_lst[i][4][2];
+			  rec_lst[i][5] = Lang[37];
+			  rec_lst[i][6] = x[i].getElementsByTagName("link")[0].childNodes[0].nodeValue;
+			  rec_lst[i][7] = 0;
+			  rec_lst[i][8] = 0;
+	 }
+
+		rec_lst.sort();
+	   	for (var i=0;i<x.length;i++) {
+			recTitl[i] = rec_lst[i][0];
+			recLink[i] = rec_lst[i][1];
+			recDesc[i] = rec_lst[i][2];
+			recDura[i] = rec_lst[i][3];
+			recStrt[i] = rec_lst[i][4];
+			rec_New[i] = rec_lst[i][5];
+			recGUID[i] = rec_lst[i][6];
+			recChan[i] = rec_lst[i][7];
+			recProt[i] = rec_lst[i][8];
+		}
+
+
+	recProt[i] = 1;
+} else if (get_recordings == 0) {
+	 // get recordings from restfulapi
+	  xmlhttp=new XMLHttpRequest();
+	   xmlhttp.open("GET",(server_ip + RestFulAPI + "/recordings.xml?" + new Date().getTime()),false);
+	   xmlhttp.send();
+	   xmlDoc=xmlhttp.responseXML; 
+	   var x=xmlDoc.getElementsByTagName("recording");
+	   nrMedia = x.length - 1;
+	   recTitl.length = 0;
+	   rec_lst.length = 0;
+
+	   for (var i=0;i<x.length;i++)
+		  { 
+			rec_lst[i] = new Array();
+			for (var yy=0;yy<9;yy++) { rec_lst[i][yy] = new Array(); }
+			  rec_lst[i][0] = x[i].getElementsByTagName("param")[1].childNodes[0].nodeValue;
+			  rec_lst[i][0] = rec_lst[i][0].split("~");
+			  rec_lst[i][1] = x[i].getElementsByTagName("param")[2].childNodes[0].nodeValue;
+			  rec_lst[i][2] = x[i].getElementsByTagName("param")[13].textContent; 
+			  rec_lst[i][3] = x[i].getElementsByTagName("param")[8].childNodes[0].nodeValue;
+			  rec_lst[i][4] = x[i].getElementsByTagName("param")[14].childNodes[0].nodeValue;
+			  rec_lst[i][5] = x[i].getElementsByTagName("param")[4].childNodes[0].nodeValue;
+			  rec_lst[i][6] = x[i].getElementsByTagName("param")[0].childNodes[0].nodeValue;
+			  //Get channel number from recordings, shows right names only if server & client use same channel order
+			  recDummy = rec_lst[i][1].split(".");
+			  recDummy = recDummy[(recDummy.length-2)].split("-");
+			  rec_lst[i][7] = recDummy[0] + "\uE003-\uE003" + channelsnames[(recDummy[0])];
+			  rec_lst[i][8] = protChn[Number(Left((recDummy[0] / 1000),1))];
+
+	 }
+
+	  //Get channel number from recordings
+		rec_lst.sort();
+	   	for (var i=0;i<x.length;i++) {
+			recTitl[i] = rec_lst[i][0];
+			recLink[i] = rec_lst[i][1];
+			recDesc[i] = rec_lst[i][2];
+			recDura[i] = rec_lst[i][3];
+			recStrt[i] = rec_lst[i][4];
+			rec_New[i] = rec_lst[i][5];
+			recGUID[i] = rec_lst[i][6];
+			recChan[i] = rec_lst[i][7];
+			recProt[i] = rec_lst[i][8];
+		}
+		recProt[i] = 1;
+	// try to fix display double entries in the last directory. (Only shown for some time after deleting files, should be fixed now)
+}
+
+
+//end of get_recordings
+	if (ShowSubDir) {
+		MakeRecList2();
+	} else {
+		MakeRecList();
+	}
+	if (nrMedia!==0) { getRecOK = 1; } else {
+	getRecOK = 0;
+	medialist.innerHTML = "<h1 class=mainmenu>" + Lang[38] + "</center><pre>\n\n\n" + Lang[37] + "</pre></h1>";
+	}
+
+  } catch(e) {
+    alert("Get Recordings problem: " + e);
+	getRecOK = 0;
+	medialist.innerHTML = "<h1 class=mainmenu>" + Lang[38] + "</center><pre>\n\n\n" + Lang[39] + "</pre></h1>";
+  }
+}
+
+
+function GetMarks() {
+
+if (get_marks==1) {
+ try {
+   posMark = 0;
+   xmlhttp=new XMLHttpRequest();
+   xmlhttp.open("GET",(server_ip + recServ + "/getMarks.xml?guid=" + recGUID[currMed] + "&" + new Date().getTime()),false);
+   xmlhttp.send();
+   xmlDoc=xmlhttp.responseXML;
+   recMark = [];
+   var x=xmlDoc.getElementsByTagName("mark");
+	   for (var i=0;i<x.length;i++)
+		{
+		var y = x[i].childNodes[0].nodeValue.split(",");
+		recMark[i] = Number(y[0]);
+		}
+  } catch(e) {
+    alert("Getting Marks problem: " + e);
+  }
+ } else {
+  try {
+   posMark = 0;
+   xmlhttp=new XMLHttpRequest();
+   xmlhttp.open("GET",(server_ip + RestFulAPI + "/recordings/" + currMed + ".xml?marks=true&" + new Date().getTime()),false);
+   xmlhttp.send();
+   xmlDoc=xmlhttp.responseXML;
+   recMark = [];
+   var x=xmlDoc.getElementsByTagName("mark");
+	   for (var i=0;i<x.length;i++)
+		{
+		var y = x[i].childNodes[0].nodeValue.split(":");
+		recMark[i] = Number(y[0]*3600) + Number(y[1]*60) + Number(y[2]);
+		}
+  } catch(e) {
+    alert("Getting Marks problem: " + e);
+  }
+ }
+}
+
+
+function setResume() {
+if (get_recordings == 1) {
+try {
+	position += (mediaPlayer.getPosition()/1000)
+        var xmlhttp = new XMLHttpRequest();
+        xmlhttp.open("POST", server_ip + recServ + "/setResume.xml?guid=" + recGUID[currMed] + "&resume=" + position, false);
+        xmlhttp.send();
+	recList[currMed] = "\uE003" + recList[currMed].substring(1);
+  } catch(e) {
+    alert("Setting Resume problem: " + e);
+  }
+}
+}
+
+function getResume() {
+position = 0;
+if (get_recordings == 1) {
+try {
+	  var xmlhttp = new XMLHttpRequest();
+	  var i = 0;
+	  xmlhttp.open("GET", server_ip + recServ + "/getResume.xml?guid=" + recGUID[currMed] + "&" + new Date().getTime(), false);
+	  xmlhttp.send();
+	  xmlDoc=xmlhttp.responseXML; 
+	  i = xmlDoc.getElementsByTagName("resume")[0].childNodes[0].nodeValue.split(",");
+	  position = Number(i[0]);
+  } catch(e) {
+    alert("Getting Resume problem: " + e);
+  }
+}
+}
+
+
+function setResumeNull() {
+if (get_recordings == 1) {
+try {
+        var xmlhttp = new XMLHttpRequest();
+        xmlhttp.open("POST", server_ip + recServ + "/setResume.xml?guid=" + recGUID[currMed] + "&resume=0", false);
+        xmlhttp.send();
+	recList[currMed] = "\uE010" + recList[currMed].substring(1);
+  } catch(e) {
+    alert("Setting Resume problem: " + e);
+  }
+}
+}
+
+function reccmds(option) {
+try {
+	option = Number(option);
+	if (RecCmds[option] > -1 ) {
+	        var xmlhttp = new XMLHttpRequest();
+	        xmlhttp.open("POST", server_ip + recServ + "/execreccmd?cmd=" + RecCmds[option] + "&guid=\"" + recGUID[currMed] + "\"", false);
+	        xmlhttp.send();
+		recList[currMed] = RecCmdsIcon[option] + recList[currMed].substring(1);
+		showMediaList();
+	}
+  } catch(e) {
+    alert("Execute reccmds problem: " + e);
+  }
+
+}
+
+
+
+function CheckPlugins() {
+try {
+   xmlhttp=new XMLHttpRequest();
+   xmlhttp.open("GET",(server_ip + recServ + "/vdrstatus.xml?" + new Date().getTime()),false);
+   xmlhttp.send();
+   xmlDoc=xmlhttp.responseXML; 
+	smartTVplugin = 1;
+  } catch(e) {
+    alert("NO smartTVplugin: " + e);
+	smartTVplugin = 0;
+  }
+
+//Check for Restfulapi
+
+try {
+   xmlhttp=new XMLHttpRequest();
+   xmlhttp.open("GET",(server_ip + RestFulAPI + "/info.xml?" + new Date().getTime()),false);
+   xmlhttp.send();
+   xmlDoc=xmlhttp.responseXML; 
+    Restfulapiplugin = 1;
+  } catch(e) {
+    alert("NO Restfulapiplugin: " + e);
+    Restfulapiplugin = 0;
+  }
+}
+
+function getVDRstatus() {
+if (smartTVplugin == 1) {
+try {
+   xmlhttp=new XMLHttpRequest();
+   xmlhttp.open("GET",(server_ip + recServ + "/vdrstatus.xml?" + new Date().getTime()),false);
+   xmlhttp.send();
+   xmlDoc=xmlhttp.responseXML; 
+//   var x=xmlDoc.getElementsByTagName("vdrstatus");
+   var x=xmlDoc.getElementsByTagName("diskspace");
+	  free_space = x[0].getElementsByTagName("free")[0].childNodes[0].nodeValue;
+	  perc_space = x[0].getElementsByTagName("percent")[0].childNodes[0].nodeValue;
+  } catch(e) {
+    alert("Get VDR Status problem: " + e);
+  }
+}
+if (smartTVplugin == 0 && Restfulapiplugin == 1) {
+try {
+   xmlhttp=new XMLHttpRequest();
+   xmlhttp.open("GET",(server_ip + RestFulAPI + "/info.xml?" + new Date().getTime()),false);
+   xmlhttp.send();
+   xmlDoc=xmlhttp.responseXML; 
+   var x=xmlDoc.getElementsByTagName("diskusage");
+	  free_space = x[0].getElementsByTagName("free_mb")[0].childNodes[0].nodeValue;
+	  perc_space = x[0].getElementsByTagName("used_percent")[0].childNodes[0].nodeValue;
+  } catch(e) {
+    alert("Get VDR Status problem: " + e);
+  }
+ }
+}
+
+
+function DelRec() {
+	if (osdepginfo.style.opacity == 1) {osdepginfo.style.opacity = 0;}
+try {
+	//popup for confirm
+	switchtimer.style.background = "red";
+	switchtimer.style.opacity = 1;
+	switchtimer.innerHTML = "<pre class=deletefile>" + Lang[44] +"\n" + Lang[45] + "\n\n " + Left(recTitl[currMed],30) + "</pre>"; // Recording Name
+	DelisOK = 1
+  } catch(e) {
+    alert("Delete Recordings problem: " + e);
+  }
+}
+
+function DelRec2() {
+  if (get_recordings == 1) {
+	try {
+	   xmlhttp=new XMLHttpRequest();
+	   xmlhttp.open("POST",(server_ip + recServ + "/deleteRecording.xml?id=" + recGUID[currMed] ),false);
+	   xmlhttp.send();
+	   recList[currMed] = "";
+	   recGroup[currMed] = -1;
+	   recProt[currMed] = 0;
+	  } catch(e) {
+	    alert("Delete Recordings problem: " + e);
+	  }
+  } else if (get_recordings == 0) {
+//	try {
+//	   xmlhttp=new XMLHttpRequest();
+//	   xmlhttp.open("DELETE",(server_ip + RestFulAPI + "/recordings/" + recGUID[currMed] ),true);
+//	   xmlhttp.send();
+//	   recList[currMed] = "";
+//	   recGroup[currMed] = -1;
+//	   recProt[currMed] = 0;
+//	  } catch(e) {
+//	    alert("Delete Recordings problem: " + e);
+//	  }
+//
+  }
+}
+
+
+
+
+function MakeRecList() {
+//old style list
+   var x = "";
+   var xx = "";
+   for (var i=0;i<recTitl.length;i++)
+	{
+	if (recTitl[i][recMap + 2]) { 
+		if (recTitl[i][recMap + 1] != xx) {
+						var y = recTitl[i][recMap].length + 1;
+						if (recTitl[i][recMap] != x) {
+								recList[i] = "\uE002 " + recTitl[i][recMap] + " \uE002 " + String(recTitl[i]).substring(y);
+							} else {
+								recList[i] = "\uE003 " + new Array(y).join("\uE003") + " \uE002 " + String(recTitl[i]).substring(y);
+							}
+					} else {
+						var y = recTitl[i][recMap + 1].length + recTitl[i][recMap].length + 4;
+						recList[i] = new Array(y).join("\uE003") + String(recTitl[i]).substring(y - 2);
+						}
+	} else if (recTitl[i][recMap + 1]) { 
+					if (recTitl[i][recMap] != x) {
+						recList[i] = "\uE002" + recTitl[i];
+					} else {
+						var y = recTitl[i][recMap].length + 4;
+						recList[i] = new Array(y).join("\uE003") + String(recTitl[i]).substring(y - 3);
+					}
+				} else { 
+					recList[i] = "\uE003" + recTitl[i];
+				}
+	if (get_recordings == 2 ) {
+		result = recStrt[i];
+	} else{ 
+		AddInfo(i);
+	}
+
+	if (rec_New[i] == "true" ) 
+		{ 
+		recList[i] = "\uE010" + result + "\uE003" + recList[i]; 
+		} else { 
+		recList[i] = "\uE003" + result + "\uE003" + recList[i]; 
+		}
+	x = recTitl[i][recMap];
+	xx = recTitl[i][recMap + 1];
+	if ((recProt[i] == 1) && (ShowProtectedChannels == 1)) { recList[i] = "";}
+	}
+}
+
+function MakeRecList2() {
+//new style with sub maps
+   var x = "";
+   var xx = 0;
+   for (var i=0;i<recTitl.length;i++)
+	{
+	 if (recTitl[i][1]) { 
+					if (recTitl[i][0] != x) {
+						recList[i] = "\uE002\uE003" + recTitl[i][0];
+						xx += 1;
+					} else {
+						recList[i] = "" ; 
+					}
+					recGroup[i] = xx;
+				} else { 
+					recGroup[i] = 0;
+						if (get_recordings == 2 ) {
+							result = recStrt[i];
+						} else{ 
+							AddInfo(i);
+							if (recChan[i] !== "Media File") {result += "\uE003" + (recDura[i]/60).toFixed(0);}
+						}
+						if (rec_New[i] == "true" ) { 
+							recList[i] = "\uE010" + result + "\uE003" + recTitl[i]; 
+						} else { 
+							recList[i] = "\uE003" + result + "\uE003" + recTitl[i];
+						}
+				}
+
+	if ((recProt[i] == 1) && (ShowProtectedChannels == 1)) { recList[i] = "";}
+
+	x = recTitl[i][0];
+	}
+}
+
+function MakeRecList3(GroupID) {
+
+   MaxInGroup = -1;
+   for (var i=0;i<recTitl.length;i++)
+	{
+		if (recGroup[i] == GroupID) {
+			var tmp = "";
+			   for (var ii=1;ii<recTitl[i].length;ii++)
+				{
+				tmp += "\uE003" + recTitl[i][ii];
+				}
+			if (get_recordings == 2 ) {
+				result = recStrt[i];
+			} else{ 
+				AddInfo(i);
+				if (recChan[i] !== "Media File") {result += "\uE003" + (recDura[i]/60).toFixed(0);}
+			}
+			if (rec_New[i] == "true" ) { 
+				recList[i] = "\uE010" + result + tmp; // recTitl[i]; 
+			} else { 
+				recList[i] = "\uE003" + result + tmp; //recTitl[i]; 
+			}
+
+			MaxInGroup = MaxInGroup + 1;
+			if ((recProt[i] == 1) && (ShowProtectedChannels == 1)) { recList[i] = "";}
+
+		} else {
+			recList[i] = "" ; 
+		}
+	}
+}
+
+//
+//
+// sub-sublevel testing
+//
+//
+
+function MakeRecList_sublevel(GroupID) {
+//new style with sub maps on sub maps
+   var x = "";
+   var xx = 0;
+   recList.length = 0;
+   MaxInGroup = -1;
+   for (var i=0;i<recTitl.length;i++)
+	{
+	if (recGroup[i] == GroupID) {
+	 Group_Header[GroupID] = recTitl[i][0];
+		 if (recTitl[i][2]) { 
+					if (recTitl[i][1] != x) {
+						
+						recList[i] = "\uE002\uE003" + recTitl[i][1];
+						xx += 1;
+					} else {
+						recList[i] = "" ; 
+					}
+					recSubGroup[i] = xx;
+		} else { 
+					recSubGroup[i] = 0;
+					var tmp = "";
+					for (var ii=1;ii<recTitl[i].length;ii++)
+						{
+							tmp += "\uE003" + recTitl[i][ii];
+						}
+					if (get_recordings == 2 ) {
+						result = recStrt[i];
+					} else{ 
+						AddInfo(i);
+						if (recChan[i] !== "Media File") {result += "\uE003" + (recDura[i]/60).toFixed(0);}
+					}
+					if (rec_New[i] == "true" ) { 
+						recList[i] = "\uE010" + result + tmp; // recTitl[i]; 
+					} else { 
+						recList[i] = "\uE003" + result + tmp; //recTitl[i]; 
+					}
+		}
+		if ((recProt[i] == 1) && (ShowProtectedChannels == 1)) { recList[i] = "";}
+		if (recList[i] != "") { MaxInGroup = MaxInGroup + 1; }
+		x = recTitl[i][1];
+	}
+	}
+//MakeRecList_sublevel2(GroupID,0);
+}
+
+
+function MakeRecList_sublevel2(GroupID,SubGroupID) {
+   MaxInGroup = -1;
+   for (var i=0;i<recTitl.length;i++)
+	{
+		if (recGroup[i] == GroupID && recSubGroup[i] == SubGroupID) {
+			var tmp = ""; var xx = "\uE003";
+			   for (var ii=2;ii<recTitl[i].length;ii++)
+				{
+					if (recTitl[i][(ii+1)]) {
+						tmp += "\uE003\uE002" + recTitl[i][ii];
+						xx = "/";
+					} else {
+						tmp += xx + recTitl[i][ii];
+					}
+				}
+			if (get_recordings == 2 ) {
+				result = recStrt[i];
+			} else{ 
+				AddInfo(i);
+				if (recChan[i] !== "Media File") {result += "\uE003" + (recDura[i]/60).toFixed(0);}
+			}
+			if (rec_New[i] == "true" ) { 
+				recList[i] = "\uE010" + result + tmp; // recTitl[i]; 
+			} else { 
+				recList[i] = "\uE003" + result + tmp; //recTitl[i]; 
+			}
+
+			MaxInGroup = MaxInGroup + 1;
+			if ((recProt[i] == 1) && (ShowProtectedChannels == 1)) { recList[i] = "";}
+
+		} else {
+			recList[i] = "" ; 
+		}
+	}
+}
+
+//
+//
+// End of sub-sublevel testing
+//
+//
+
+function AddInfo(info) {
+//Add Date to item
+        date = new Date(Number(recStrt[info])*1000);
+        year = date.getFullYear();
+        month = date.getMonth();
+        d = date.getDate();
+        h = date.getHours();
+        m = date.getMinutes();
+	month=addzero(month + 1);
+	d=addzero(d);
+	h=addzero(h);
+	m=addzero(m);
+	if ( year==1970 ) { 
+		result = "\uE003";
+	} else {
+	        result = "\uE003" + d + '-' + month + '-' + year + ' ' + h + ':' + m;
+	}
+//
+}
+
+function showMediaList() {
+	if (osdepginfo.style.opacity == 1) {osdepginfo.style.opacity = 0;}
+	osdmedia.style.opacity = 0;
+	osdmediatime.style.opacity = 0;
+	var liststyle = "";
+	listMed = currMed - 1;
+	var MaxMed = -1;
+
+	if (getRecOK == 1) {
+		var htmlstring = "<h1 class=mainmenu>" + Lang[38] + "(" + Lang[46] + (100 - perc_space) + "%, " + (free_space/1024).toFixed(0) + " GB) </h1><pre class=mediamenu>";
+
+		if (subgroup) {
+			htmlstring = "<h1 class=mainmenu>" + Group_Header[Number(recGroup[currMed])] + "</h1><pre class=mediamenu>";
+			if (MaxInGroup < 14){ MaxMed = MaxInGroup; } else {MaxMed = 14; }
+		}
+		if (!subgroup) { 
+			for(var i=0; i<=nrMedia; i++) {
+				if (recList[i]) { MaxMed += 1;}
+			}
+		}
+
+	} else {
+
+		if (nrMedia < 14) {MaxMed = nrMedia; } else {MaxMed = 14; }
+		var htmlstring = "<h1 class=mainmenu>" + Lang[11] + channelsnames[currChan] + " </h1><pre class=mediamenu>";
+	}
+
+	if (MaxMed > 14) { MaxMed = 14; }
+	if (MaxMed < 0 ) { MaxMed = 0; }
+
+	for(var i=currMed; i<=currMed + MaxMed; i++) {
+		if (listMed>=nrMedia) { listMed= -1; }
+		if (listMed<-1) { listMed=nrMedia - 1; } 
+//		if (listMed>nrMedia) { listMed= -1; }
+
+		do
+			{
+				listMed += 1;
+			}
+		while (!recList[listMed] && (listMed<=nrMedia));
+
+		if (listMed > nrMedia) { recList[listMed] = ""; }
+
+		if (recList[listMed]) { //Solves empty string at the end.
+			if ( listMed == currMed) { htmlstring += "<span class=mediaselect>"; }
+			htmlstring += "\uE003" + Left(recList[listMed],60) + "\uE003\uE003\n";
+			if ( listMed == currMed) { htmlstring += "</span>";}
+		}
+
+	}
+	medialist.innerHTML = htmlstring + "</pre>";
+	//ShowInfo();
+}
+
+function getServerSchedule() {
+try {
+   xmlhttp=new XMLHttpRequest();
+   xmlhttp.open("GET",(server_ip + RestFulAPI + "/events/" + channels[currChan] + ".xml?timespan=" + serverEPGdays + "&" + new Date().getTime()),false);
+   xmlhttp.send();
+   xmlDoc=xmlhttp.responseXML; 
+   var x=xmlDoc.getElementsByTagName("event");
+   nrMedia = x.length - 1;
+   for (var i=0;i<x.length;i++)
+	  { 
+
+/*	// restful api layout dd 10/04/2013
+	// <event>
+	// 1 <param name="id">516</param>
+	// 2 <param name="title">Thuis</param>
+	// 3 <param name="short_text"/ >
+	// 4 <param name="description">Soapserie (BE).</param>
+	// 5 <param name="channel">S19.2E-53-1105-4016</param>
+	// 6 <param name="channel_name">BVN (S)</param>
+	// 7 <param name="start_time">1365608700</param>
+	// 8 <param name="duration">1500</param>
+	// 9 <param name="table_id">78</param>
+	// 10 <param name="version">7</param>
+	// 11 <param name="parental_rating">0</param>
+	// 12 <param name="vps">0</param>
+	// 13 <param name="images">0</param>
+	// 14 <param name="components">
+	//	<component stream="1" type="1" language="dut" description="4:3"/ >
+	//	<component stream="2" type="1" language="dut" description=""/ ></param>
+	// 15 <param name="contents">
+	// 16 <content name="Soap/Melodrama/Folkloric"/ ></param>
+	// 17 <param name="raw_contents"><raw_content name="21"/ ></param>
+	// 18 <param name="timer_exists">false</param>
+	// 19 <param name="timer_active">false</param>
+	// 20 <param name="timer_id"/ >
+	// </event>
+*/
+
+	recTitl[i] = x[i].getElementsByTagName("param")[1].childNodes[0].nodeValue;
+		try { 
+			recDesc[i] = x[i].getElementsByTagName("param")[3].childNodes[0].nodeValue; 
+		} catch(e) {
+			recDesc[i] = "";
+		}
+	recDura[i] = x[i].getElementsByTagName("param")[7].childNodes[0].nodeValue;
+	recStrt[i] = x[i].getElementsByTagName("param")[6].childNodes[0].nodeValue;
+	recChan[i] = currChan + "\uE003-\uE003" + channelsnames[currChan];
+	recGUID[i] = x[i].getElementsByTagName("param")[0].childNodes[0].nodeValue;
+
+        date = new Date(Number(recStrt[i])*1000);
+	        year = date.getFullYear();
+	        month = date.getMonth();
+	        d = date.getDate();
+        	day = date.getDay();
+	        h = date.getHours();
+	        m = date.getMinutes();
+		h=addzero(h);
+		m=addzero(m);
+	recList[i] = ''+days[day]+' '+d+' '+months[month]+' '+year+' '+h+':'+m + " " + recTitl[i];
+
+	  }
+ 	getRecOK = 2;
+  } catch(e) {
+    alert("Get EPG problem: " + e);
+	getRecOK = 0;
+	medialist.innerHTML = "<h1 class=mainmenu>" + Lang[50] + "</center><pre>\n\n\n" + Lang[51] + "</pre></h1>";
+  }
+}
+
+function getSchedule(schchan){
+	SI = "";
+	recTitl.length = 0;
+	nrMedia = 0;
+  try {
+	 StreamInfo(schchan);
+
+	 eitService = toi.statics.ToiDvbEitCacheServiceItem.create(SI[1],SI[2],SI[3]);
+	 eitCache.addService(eitService);
+	 event = eitCache.getPresentEvent(eitService);
+	 events = eitCache.getEvents(eitService, (Math.round(new Date().getTime()/1000.0)), 2000000000);
+
+	if (event.name)	{
+	    if (events.more) {
+	      var t = eitCache.getEvents(eitService, (Math.round(new Date().getTime()/1000.0)), 2000000000);
+	      events.infoSequence.concat(t.infoSequence);
+	      events.more = t.more;
+	    }
+	    nrMedia = events.infoSequence.length - 1;
+	    for (var i = 0; i < events.infoSequence.length; i++) {
+
+		// Double info or scrollbar twice on the screen if nrMedia < 14
+		while ((i > 0) && (events.infoSequence[i].eventId == events.infoSequence[(i-1)].eventId) && (nrMedia > 14)) {
+			recList[i] = "";
+			i += 1;
+		}
+
+		recTitl[i] = events.infoSequence[i].name;
+		recDesc[i] = eitCache.getExtendedEventInfo(eitService,events.infoSequence[i].eventId).extendedInfo;
+		if (recDesc[i] == "" ) { recDesc[i] = eitCache.getExtendedEventInfo(eitService,events.infoSequence[i].eventId).shortInfo;}
+		recDura[i] = events.infoSequence[i].duration;
+		recStrt[i] = events.infoSequence[i].time;
+		recChan[i] = schchan + "\uE003-\uE003" + channelsnames[schchan];
+		recGUID[i] = events.infoSequence[i].eventId;
+
+	        date = new Date(Number(recStrt[i])*1000);
+		        year = date.getFullYear();
+		        month = date.getMonth();
+		        d = date.getDate();
+	        	day = date.getDay();
+		        h = date.getHours();
+		        m = date.getMinutes();
+			h=addzero(h);
+			m=addzero(m);
+			recList[i] = ' ' + days[day] + ' ' + d + ' ' + months[month] + ' ' + year + " " + h + ":" + m + " (" + (recDura[i]/60).toFixed(0) + ") " + Left(recTitl[i],30);
+		}
+	getRecOK = 2;
+	} else {
+	getRecOK = 0;
+
+	medialist.innerHTML = "<h1 class=mainmenu>" + Lang[11] + "</center><pre>\n\n\n" + Lang[52] + "</pre></h1>";
+
+	if (experimental) {
+	medialist.innerHTML += "<img src='" + channels[schchan] + ".jpg' style='width:100%; position:absolute; left:0%; top:-11%;'>";
+	}
+
+	}
+  } catch(e) {
+	getRecOK = 0;
+	medialist.innerHTML = "<h1 class=mainmenu>" + Lang[11] + "</center><pre>\n\n\n" + Lang[53] + "</pre></h1>";
+  }
+
+}
+
+
+
+function incMed(step) {
+    currMed += step;
+    if (currMed > nrMedia ) {
+        currMed = 0;
+    }
+}
+
+function decMed(step) {
+    currMed -= step;
+    if (currMed < 0) {
+        currMed = nrMedia;
+    }
+}
+
+function playRec(uri,posrec) {
+  try {
+    if (mediaPlayer.getState() != mediaPlayer.STATE_IDLE) {
+      mediaPlayer.close();
+    }
+	if (osdepginfo.style.opacity == 1) {osdepginfo.style.opacity = 0;}
+	mediaPlayer.open(uri);
+	if (posrec) {
+		mediaPlayer.playFromPosition(posrec,1000);
+	} else {
+		mediaPlayer.play(1000);
+	}
+	showDisplay("PLAY", false, 100, 0 );
+  } catch (e) {
+    alert("Failed opening recording: " + e);
+    return;
+  }
+}
+
+
+function pauseRec(uri) {
+  try {
+    if (mediaPlayer.getState() != mediaPlayer.STATE_IDLE) {
+      mediaPlayer.close();
+    }
+	if (osdepginfo.style.opacity == 1) {osdepginfo.style.opacity = 0;}
+	mediaPlayer.open(uri);
+	mediaPlayer.play(0);
+	showDisplay("PAUS", false, 100, 0 );
+  } catch (e) {
+    alert("Failed opening recording: " + e);
+    return;
+  }
+}
+
+
+
+function createNewAsset() {
+	try {
+		assetId = ams.createAsset(ams.ASSET_PVR);
+//		alert("Created " + assetId);
+	} catch(e) {
+		alert("Couldn't create asset: " + e);
+	}
+}
+
+function onStateChanged(ev) {
+//    alert("Media player state changed: state=" + ev.state + ", reason=" + ev.reason + ", code=" + ev.code);
+
+	if ( ( ev.state == 6 && ev.reason == "HostUnreachable" ) || ( ev.state == 2 && ev.reason == "PositionEnd" )) {
+	BackToTV();
+	}
+
+}
+
+// Start recording/ timeshift
+
+function ServerRecordStart() {
+//Record current program
+
+	try {
+	   xmlhttp=new XMLHttpRequest();
+	   xmlhttp.open("GET",(server_ip + recServ + "/addTimer?guid=" + channels[currChan] + "&" + new Date().getTime() ),false);
+	   xmlhttp.send();
+
+		if (xmlhttp.responseXML == null) {
+		    //settimer(EPG[NowNext][2][currChan],Lang[55],0,2);
+		    //Timer not set, try direct recording
+		    ServerRecord();
+		    settimer(0,Lang[57],0,2);
+		} else {
+		   settimer(EPG[NowNext][2][currChan],EPG[NowNext][1][currChan],0,2);
+		}
+
+	  } catch(e) {
+	    alert("Sending Timers to server problem: " + e);
+	    settimer(0,Lang[55],0,2,color_error);
+	  }
+
+}
+
+
+function ServerRecord() {
+//Instant record on server
+
+  try {
+	xmlhttp=new XMLHttpRequest();
+	//switch server to current channel
+	xmlhttp.open("POST",(server_ip + RestFulAPI + "/remote/switch/" + channels[currChan]),true);
+	xmlhttp.send();
+	//start recording
+	setTimeout("xmlhttp.open('POST',(server_ip + RestFulAPI + '/remote/Record'),false);xmlhttp.send();",5000);
+  } catch(e) {
+   alert("Sending key to server problem: " + e);
+   settimer(0,Lang[55],0,2,color_error);
+  }
+
+//end of function
+}
+
+
+
+function ServerPause() {
+//Instant pause on server
+	ServerRecord();
+	settimer(EPG[NowNext][2][currChan],Lang[70],0,2);
+	setTimeout("getPauseFile();",6000);
+//end of function
+}
+
+
+
+
+function getPauseFile() {
+
+try {
+   xmlhttp=new XMLHttpRequest();
+   xmlhttp.open("GET",(server_ip + RestFulAPI + "/recordings.xml?" + new Date().getTime()),false);
+   xmlhttp.send();
+   xmlDoc=xmlhttp.responseXML; 
+   var x=xmlDoc.getElementsByTagName("recording");
+   nrMedia = x.length - 1;
+   for (var i=0;i<x.length;i++)
+	  { 
+	var xx = x[i].getElementsByTagName("param")[2].childNodes[0].nodeValue.split(".");
+	xx = xx[(xx.length-2)].split("-");
+
+	if ( xx[0] == currChan ) {
+		recLink[0] = server_ip + recServ + x[i].getElementsByTagName("param")[2].childNodes[0].nodeValue;
+		}
+
+	 }
+
+  } catch(e) {
+    alert("Get Recordings problem: " + e);
+  }
+	getRecOK = 0;
+	recDura[0] = 0; // 3600;// set to 1 hour
+	LoadMediaSettings();// sets currMed to 0
+	recTitl[0] = "Time Shift File"
+	position = 0;
+	pauseRec(recLink[0]);
+
+}
+
+
+
+function ServerTimer(guid,evid) {
+
+try {
+   xmlhttp=new XMLHttpRequest();
+   xmlhttp.open("GET",(server_ip + recServ + "/addTimer?guid=" + guid + "&evid=" + evid + "&" + new Date().getTime() ),false);
+   xmlhttp.send();
+  } catch(e) {
+    alert("Sending Timers to server problem: " + e);
+  }
+
+
+}
+
+
+
+function BackToTV() {
+	    play(channels[currChan]);
+	    if (isPause == 1 || localRecording == 1) { 
+		UnloadMediaSettings(); 
+	    } else {
+	    	medialist.style.opacity = 0.9;
+	    	showDisplay("STOP", false, 100, 0 );
+	    	showMediaList();
+		AvInfo.length = 0;
+	    }
+}
+
+
+function onRecorderStateChanged(event) {
+//  alert("EVENT! " + event.reason + " *** " + event.state);
+  RECicon = "\uE003"; // 0xE003 0x83 Fixed width blank
+  switch (event.state) {
+    case mediaRecorder.STATE_IDLE:
+	//  "STATE_IDLE";
+      break;
+    case mediaRecorder.STATE_CONNECTING:
+	//  "STATE_CONNECTING";
+      break;
+    case mediaRecorder.STATE_PAUSED:
+	//  "STATE_PAUSED";
+      break;
+    case mediaRecorder.STATE_RECORDING:
+	//  "STATE_RECORDING";
+	RECicon = "\uE00B"; // 0xE00B 0x8B REC
+      break;
+    case mediaRecorder.STATE_FAILED:
+	//  "STATE_FAILED";
+	RECicon = "\uE01A"; // Bomb Icoon
+      break;
+  }
+
+}
+
+function ShowMediaOSD() {
+if (get_recordings == 1) {
+	// Display Name/ length 
+	var pos = position + (mediaPlayer.getPosition()/1000);
+	var pos2 = (pos / Number(recDura[currMed])) * 100;
+	if (pos2 < 1) { pos2 = 1;} 
+	if (pos2 >100) {pos2 = 100;} // in case of viewing while still recording.
+	if (pos>recMark[posMark] && recMark.length-1>posMark) { posMark += 1;}
+	pos2 = ((pos2 * 140) / 100).toFixed(0);  // make it 40% bigger
+	var pos5 = "\uE007" + new Array(pos2 - 1).join("\uE008") + new Array(140 - pos2).join("\uE009") + "\uE00A"
+	var pos4 = "";
+	var pos6 = pos5;
+	var fontc = color_progress1;
+	var x = 0;
+	  for (var i=0; i<recMark.length; i++) {
+		var pos3 = recMark[i] / Number(recDura[currMed]) * 100;
+		pos3 = ((pos3 * 140) / 100).toFixed(0); // make it 40% bigger
+		pos4 += fontc + Left(pos6,pos3 - x);
+		if (fontc == "</font>" + color_progress2) { fontc = "</font>" + color_progress1; } else { fontc = "</font>" + color_progress2;}
+		x = pos3;
+		pos6 = Right(pos5,140 - pos3);
+		}
+	pos4 += "</font>" + color_progress1 + pos6 + "</font>";
+	var x = (Number(recDura[currMed])/60).toFixed(0);
+	if (pos/60 > x) { x = (pos/60).toFixed(0);}
+	date_time();
+	osdmediatime.innerHTML = result;
+	date_time_rec();
+	osdmedia.innerHTML = "<pre class=media> \n  " + (pos/60).toFixed(0) + " / " + x + "  " + Left(recTitl[currMed],40) + "\n  " + pos4 + "\n " + result + " </pre>";
+} else if ( get_recordings == 2) {
+	var pos = position + (mediaPlayer.getPosition()/1000);
+	date_time();
+	osdmediatime.innerHTML = result;
+	osdmedia.innerHTML = "<pre class=media> \n  " + (pos/60).toFixed(0) + " \n " + Left(recTitl[currMed],40) + "\n  \n " + recStrt[currMed] + " </pre>";
+}
+}
+
+function ShowInfo() {
+//Like Show EPG Info
+  if ( medialist.style.opacity == 0 ) { updateStreamInfo(currMed);} else { AvInfo[currMed] = "";}
+  if (get_recordings == 2) {
+	result = recStrt[currMed]
+       	osdepginfo.innerHTML = "<p class=epg_head>" + Left(recTitl[currMed],60) 
+				+ "\n </p><p class=epg_avinfo>" + AvInfo[currMed] 
+				+ "</p><p class=epg_title> " + result + "\n " 
+				+ "???" + Lang[54]
+				+ "</p><p class=epg_info> Sorry STREAMDEV-plugin : " + Lang[37] + "</p></center>";
+  } else {
+        date = new Date(Number(recStrt[currMed])*1000);
+        year = date.getFullYear();
+        month = date.getMonth();
+        d = date.getDate();
+        day = date.getDay();
+        h = date.getHours();
+        m = date.getMinutes();
+	h = addzero(h);
+	m = addzero(m);
+        result = '' + days[day] + ' ' + d + ' ' + months[month] + ' ' + year + ' ' + h + ':' + m;
+
+	if (year!==1970) { 	
+       		osdepginfo.innerHTML = "<p class=epg_head>" + Left(recTitl[currMed],60) 
+					+ "</p><p class=epg_avinfo>" + AvInfo[currMed] 
+					+ "</p><p class=epg_title> " + result + "\n " 
+					+ (recDura[currMed] / 60).toFixed(0) + Lang[54] + "\n " + recChan[currMed] + "  "
+					+ "\n </p><p class=epg_info>" + Left(recDesc[currMed],750) + "</p></center>";
+	} else {
+		//info for non-vdr recordings
+	       	osdepginfo.innerHTML = "<p class=epg_head>" + Left(recTitl[currMed],60) 
+					+ "\n </p><p class=epg_avinfo>" + AvInfo[currMed] + " " + "\n \n </p></center>";
+	}
+  }
+}
+
+function onScheduledStart(event) {
+  // event is of type ToiSchedulerServiceBooking, see docs
+    var timertype = event.booking.category;
+
+  if ( timertype == "SwitchOnly") {
+	ClearScreen();
+	isFullscreen = 1; FullScreen(); 
+	isVisible = 0; setVisible(isVisible); 
+
+	//Switch from recordings
+	if (isMediaMenu) { 
+		if (medialist.style.opacity == 0) {setResume();} // No mediamenu on screen so set resume.
+		UnloadMediaSettings();
+	}
+
+	prevChan = currChan;
+	currChan = Number(ss.getParameter(event.booking.id, "Channel"));
+	ChanGroup = Number(Left((currChan / 1000),1));
+
+	// check if Group isn't protected
+	if ((protChn[ChanGroup] == 1) && (ShowProtectedChannels == 1)) {
+		currChan = prevChan;
+		ChanGroup = Number(Left((currChan / 1000),1));
+	}
+
+	// switch only if not already on that channel.
+	if (currChan !== prevChan) {
+		play(channels[currChan]);
+	} 
+	ss.remove(event.booking.id);
+	setOSDtimer();
+  } else {
+	  try {
+	    createNewAsset();
+
+		var recChannr = Number(ss.getParameter(event.booking.id, "Channel"));
+		var recGroup = Number(Left((recChannr / 1000),1));
+		var recChan = 0;
+		if (ServerAdres[recGroup] == "MultiCast" ) {
+		 	SI=channels[recChannr].split("-");
+			recChan = SI[4];
+		} else {
+			recChan = ServerAdres[recGroup] + channels[recChannr];
+		}
+
+	    mediaRecorder.open(recChan, assetId);
+
+	    var propList = new Array(ams.PROPERTY_SYSTEM_PLAYBACKURI);
+	    var properties = ams.getProperties(assetId, propList);
+	    var assetURI = properties[0].value;
+
+	    // save the assetId in the booking
+	    ss.setParameter(event.booking.id, "assetURI", assetURI);
+	    ss.setParameter(event.booking.id, "assetId", assetId);
+	    ss.setParameter(event.booking.id, "active", "True");
+	    ss.setParameter(event.booking.id, "Type", "\uE00B");
+
+	    mediaRecorder.record();
+//	    alert("Recording to " + assetURI);
+	  }
+	  catch (e) {
+	    alert(e);
+	  }
+	}
+}
+
+
+function onScheduledStop(event) {
+    var timertype = event.booking.category;
+	if ( timertype == "SwitchOnly") {
+	    ss.remove(event.booking.id);
+	    setOSDtimer();
+	} else {
+	  try {
+	    ss.setParameter(event.booking.id, "active", "False");
+	    ss.setParameter(event.booking.id, "Type", "\uE01C");
+	    mediaRecorder.close();
+	  }
+	  catch (e) {
+	    alert(e);
+	  }
+	} 
+
+}
+
+
+function ClearScreen() {
+	isSchedule = 0; schedule.style.opacity = 0;
+	isSetupMenu = 0;
+	epgactive = 0;
+	osdepginfonext.style.opacity = 0;
+	osdepginfo.style.opacity = 0;
+	mainmenu.style.opacity = 0;
+}
+
diff --git a/javascript/settings.js b/javascript/settings.js
new file mode 100644
index 0000000..e262564
--- /dev/null
+++ b/javascript/settings.js
@@ -0,0 +1,371 @@
+// 
+// Default settings
+// 
+
+var Version = "0.26.4";
+
+server_ip_array = new Array("http://192.168.1.15","http://192.168.3.15","http://192.168.178.56","http://192.168.3.100","http://192.168.178.19","http://192.168.1.21","http://192.168.2.100","http://192.168.178.52");
+
+var server_ip = server_ip_array[0]; // default server
+var StartVolume = 15; // Volume on (re)start of the portal.
+var currChan = 10; // default channel
+
+OSDLang = new Array ("English", "Nederlands", "Deutsch");
+langfile = new Array ("languages/lang_eng.js", "languages/lang_dut.js","languages/lang_ger.js");
+lang_prio = new Array("dut,eng,und","ger,deu,eng","eng,und","fre,fra,eng");
+
+cssfile = new Array ("skins/blue.css","skins/black.css");
+var css_nr;
+
+var subs_prio = "dut,eng"; //Subtitle prio
+
+var get_timer = 1; // gettimersserver 1 = smarttvweb, 0 = restfulapi
+var get_recordings = 1; // getrecordings 0 = restfulapi(only showing no play), 1 = smarttvweb, 2 = streamdev
+var get_marks = 1;// getmarks 1 = smarttvweb, 0 = restfulapi
+
+var subgroup_old = 1 ;// 0 = use old routine for sub group in recordings listing.
+
+var SortByDate = 1; //Sort recordings by date
+
+var ShowSubDir = 1 ; // 0 = no, 1 = yes (default) // show seperate maps for subdirs in menu recordings
+var showClock = 0;   // 0 = no, 1 = yes
+var SwitchGuide = 0; // 0 = no, 1 = yes
+var PipSwitchGuide = 0; // 0 = no, 1 = yes // use second/pip player for getting epg update in guide view // !!Unstable!! box might restart
+var TimeShift = 0;   // 0 = no, 1 = yes timeshift
+var KillStream = 1;  // 1 = Close stream on Standby
+var ShowProtectedChannels = 1; // 0 = yes show, 1 = don't show protected channels (default)
+var ProtectTimeOut = 60 * (60 * 1000); //time out in minutes (0 = no timeout)
+var ShowSource = 1; // show source in OSD
+var pipPlayer = 0; // 0 = no, 1 = yes Pip
+var mediaRecorder = 1; // 0 = no, 1 = yes local recording.
+var PauseOnServer = 0; // 0 = no pause on server, 1 = pause live TV on server
+var ShowMPD = 0; // 0 = don't use MPD, 1 = make use of MPD (http://www.musicpd.org/)
+
+var fullupdate = 1; // If guideview is too slow, set it to 0 (for 1910/1960), faster boxes can use 1
+// to force the use on boxes other then 19x3 use 2!!
+
+
+var ShowOsdTime = 5000; //Time to show OSD, in seconds * 1000
+var ShowSetTimer = 3000; //Time to show set timer popup, in seconds * 1000
+var ChangeTime = 2000; // Time before the channel change happens (was only with OK)
+
+var serverEPGdays = 3 * (60 * 60 * 24); // the higher the longer you wait while getting the epg info
+
+var VolumeStep = 5; // Steps the volume buttons make
+
+// Server for Recordings
+var recServ = ":" + "8000";
+var RestFulAPI = ":" + "8002";
+var MPDAddress = ":" + "8888";
+var StreamPort = ":" + "3000" + "/";
+//var StreamPort = ":" + "8000" + "/live/";
+
+var channeldigits = 2; // 0 - Max 9, 1 max 99, 2 max 999 or 3 max 9999 channels directly selectable by numbers
+
+var Fav_group = 10; // Favorite Group 10
+
+var EPGMode = 1; // 1 = FILTER_MODE_PF_AND_SCHEDULE 0 = FILTER_MODE_PF_ONLY
+
+var RecCmds = new Array(-1,1,-1,-1,-1,-1,-1,-1,-1,-1);
+var RecCmdsIcon = new Array("","\uE005","","","","","","","","");
+
+var preRecTime = 300 ;// for local recordings time before recording in seconds
+var afterRecTime = 600 ; // for local recordings time after recording in seconds
+
+
+//
+// No need to change anything from here on.
+//
+
+var experimental;// Use some experimental code
+var lang_nr;
+var testing2;
+var ShowSubs; //Flash stored
+
+VideoOutputModes = new Array(4,5,7); // Modes for the portal.
+VideoOutputModes_txt = new Array("NO_VIDEO_MODE","480I60","576I50","480P60","576P50","720P50","720P60","1080I50","1080I60","1080P23976","1080P24",
+				"1080P25","1080P29970","1080P30","1080P50","1080P59940","1080P60")
+
+// NO_VIDEO_MODE = 0
+// VIDEO_MODE_480I60 = 1
+// VIDEO_MODE_576I50 = 2
+// VIDEO_MODE_480P60 = 3
+// VIDEO_MODE_576P50 = 4 <--
+// VIDEO_MODE_720P50 = 5 <--
+// VIDEO_MODE_720P60 = 6
+// VIDEO_MODE_1080I50 = 7 <--
+// VIDEO_MODE_1080I60 = 8
+// VIDEO_MODE_1080P23976 = 9
+// VIDEO_MODE_1080P24 = 10
+// VIDEO_MODE_1080P25 = 11
+// VIDEO_MODE_1080P29970 = 12
+// VIDEO_MODE_1080P30 = 13
+// VIDEO_MODE_1080P50 = 14
+// VIDEO_MODE_1080P59940 = 15
+// VIDEO_MODE_1080P60 = 16
+
+var videoConfig;
+var Set_Res;
+var Xfactor = new Array();
+var Yfactor = new Array();
+
+// keep scale compliant with Videooutputmodes!!
+//  720x576
+Xfactor[0] = 720 / 720;
+Yfactor[0] = 576 / 576;
+// 1280x720
+Xfactor[1] = 1280 / 720; 
+Yfactor[1] = 720 / 576;
+// 1920x1080
+Xfactor[2] = 1920 / 720;
+Yfactor[2] = 1080 / 576;
+
+
+var audio = 0;
+var audio_dyn = 0;
+var subs_dyn = 0;
+
+
+var lang_prio_dyn = new Array(); //Used for dynamic audio track selection
+var subs_prio_dyn = new Array(); //Used for dynamic subs track selection
+
+
+var ChanGroup = Number(String((currChan / 1000)).substring(0,1)); // default group
+var minChan = new Array();var minchan = new Array(); var maxChan = new Array(); var defChan = new Array(); var baseChn = new Array(); var protChn = new Array(); var ServerAdres = new Array(); // Define settings for Channels.
+
+
+var NN = new Array();
+var Lang = new Array();
+var CLang = new Array();
+
+var isFullscreen = 1;
+var Volume = StartVolume;
+var AudioOut = 3; // AUDIO_CONNECTION_TYPE_ANALOG = 0; AUDIO_CONNECTION_TYPE_SPDIF = 1; AUDIO_CONNECTION_TYPE_HDMI = 2;AUDIO_CONNECTION_TYPE_DECODER = 3;AUDIO_CONNECTION_TYPE_BUFFER = 4;AUDIO_CONNECTION_TYPE_I2S = 5;
+
+var epgchan = currChan;
+var prevChan = currChan;
+
+var channels = new Array();
+var channelsnames = new Array();
+var channelsepglang = new Array();
+
+var currMed = 0;
+var listMed = 0;
+var DelisOK = 0;
+var recPath = "/recordings.xml";
+
+var menu = 0;
+var isMediaMenu = 0;
+var isVisible = 0;
+var isSetupMenu = 0;
+var isSchedule = 0;
+var MainMenu = 0;
+var mediaPlayer = null;
+var Change = 0;
+var ChangeOK = 0;
+var Extok = 0;
+var count = 0;
+
+//keys
+var KEY_0 = "U+0030";
+var KEY_1 = "U+0031";
+var KEY_2 = "U+0032";
+var KEY_3 = "U+0033";
+var KEY_4 = "U+0034";
+var KEY_5 = "U+0035";
+var KEY_6 = "U+0036";
+var KEY_7 = "U+0037";
+var KEY_8 = "U+0038";
+var KEY_9 = "U+0039";
+var KEY_REC = "U+00bd";
+var KEY_REC2 = "MediaRecord";
+var KEY_OK = "Accept";
+//Extra keys
+// Comhem Remote
+var KEY_FAV = "U+e0003";
+var KEY_FILM = "U+e0033";
+var KEY_HELP2 = "U+f0001";
+// old kpn (vip1710/1760)
+var KEY_OPNAMES = "U+0046";
+var KEY_HELP = "Info";
+var KEY_DIENSTEN = "Portal";
+var KEY_A = "U+0041";	// |>
+var KEY_B = "U+0042";	// hh
+var KEY_C = "U+0043";	// @
+var KEY_D = "U+0044";	// >@
+// Comx keyboard
+var KEY_DVR = "DVR";
+var KEY_WWW = "Web";
+var KEY_STOP = "U+001B";
+var KEY_EPG = "List";
+var KEY_MPT = "MediaPreviousTrack";
+var KEY_MNT = "MediaNextTrack";
+// Comx remote
+
+
+
+var eitCache = null;
+var events = null;
+var eitService = null;
+var EPGShortnext;
+var EPGShortnow;
+var listChan = 0;
+var NowNext = 0;
+var EpgInfo = new Array();
+var EpgExtInfo = new Array();
+var files = new Array();
+
+//
+//NowNext,	1 = programma naam	event.name			,currchan
+//0  1		2 = start		event.time
+//2 = schedule	3 = lengte		event.duration (/60 = minuten)
+//		4 = shortinfo
+//		5 = extinfo
+//		6 = eventid
+//		7 = EPGNow / EPGNext
+//		8 = ParentalRating
+//		9 = ContentNibbles
+var EPG = new Array();
+EPG[0] = new Array();
+EPG[1] = new Array();
+EPG[2] = new Array();
+EPG[0][1] = new Array();
+EPG[0][2] = new Array();
+EPG[0][3] = new Array();
+EPG[0][4] = new Array();
+EPG[0][5] = new Array();
+EPG[0][6] = new Array();
+EPG[0][7] = new Array();
+EPG[0][8] = new Array();
+EPG[0][9] = new Array();
+EPG[1][1] = new Array();
+EPG[1][2] = new Array();
+EPG[1][3] = new Array();
+EPG[1][4] = new Array();
+EPG[1][5] = new Array();
+EPG[1][6] = new Array();
+EPG[1][7] = new Array();
+EPG[1][8] = new Array();
+EPG[1][9] = new Array();
+EPG[2][1] = new Array();
+EPG[2][2] = new Array();
+EPG[2][3] = new Array();
+EPG[2][4] = new Array();
+EPG[2][5] = new Array();
+EPG[2][6] = new Array();
+EPG[2][7] = new Array();
+EPG[2][8] = new Array();
+EPG[2][9] = new Array();
+
+var content;
+var connib = 0x00000000;
+var osdtimeout = 0;
+var osdVolumetimeout = 0;
+var epgactive = 0;
+var preChan = 0;
+var preGrp = 0;
+var timerChan = 10;
+var TimerActions;
+var initialDelayID = 0;
+var CAdelayID = 0;
+var ProtectID = 0;
+var SleepTimer = 0;
+var SleepTimerID = -1;
+var initialDelayPlayID = -1;
+var TimedChangeID = -1;
+
+var instanttimer = new Array();
+var inst_timer = 0;
+
+var switchicon = "\uE003";
+var CAicon = "\uE00F";
+var RECicon = "\uE003";
+var Radioicon = "\uE003";
+
+var AvInfo = new Array();
+var xx = 0;
+
+var subsmode = 0;  // "cfg.media.subtitling.modepriority","Teletext,DVB"
+
+var rec_lst = new Array(); // Full recording list, used for sorting
+var recTitl = new Array(); // title of recording
+var recLink = new Array(); // link to get recording
+var recDesc = new Array(); // description of the recording
+var recDura = new Array(); // duration of the recording
+var recStrt = new Array(); // date of recording
+var recList = new Array(); // used to verify if the right recording is going to be deleted
+var recMark = new Array(); // marks made in the recording, eg by Noad, Markad
+var rec_New = new Array(); // Flag if recording is new (unseen)
+var recGUID = new Array(); // GUID of recording
+var recChan = new Array(); // Channel ID
+var recDummy= new Array(); //
+var recGroup= new Array(); // group index
+var recProt = new Array(); // protect recording based on channelgroup
+var recSubGroup = new Array(); // used for subgroups
+var subgroup= 0 ; // Used for subdirs in recording view
+var subsubgroup = 0;// Used for subdirs in recording view
+var MaxInGroup=14; // Used for subdirs in recording view
+var Group_Header = new Array(); // Header for submenu.
+
+var posMark = 0;
+var recMap = 0;
+
+var timersID = new Array();
+var timersFlag = new Array();
+var timersStrt = new Array();
+var timersStop = new Array();
+var timersDays = new Array();
+var timersDay  = new Array();
+var timersName = new Array();
+var timersFile = new Array();
+var timersEvnt = new Array();
+var timersChan = new Array();
+var maxTimers = 0;
+var timerOK = 0;
+
+var searchtimersID = new Array();
+var searchtimersSearch = new Array();
+var searchtimersFlag = new Array();
+var SearchTimer = new Array();
+
+var getRecOK = 0;
+var position = 0;
+
+var timer = new Array();
+var timers = new Array();
+var searchtimers = new Array();
+var getbookingID = 0;
+var timerID = 0;
+var nrMedia = 0;
+var MPDListener = 0;
+
+//vdr status
+var free_space = 0;
+var perc_space = 0;
+
+var isPause = 0; //used by pause routine.
+
+var Fav_base = Fav_group * 1000;
+var Fav_max_channel;
+baseChn[Fav_group] = Fav_base;
+defChan[Fav_group] = Fav_base + 1;
+minChan[Fav_group] = Fav_base + 1;
+//
+var Chan_Ver = "Not set";
+var Fav_key1; 
+var set_yellow_key = 0;
+var URL;
+var initialDelayPlay = 0; 
+var PlayDelayID;
+var PIPDelayID;
+var ErrorAgain = 0;
+var smartTVplugin; // Turn on or off the use of smartTVplugin
+var Restfulapiplugin; // Turn on or off the use of Restfulapiplugin
+var localRecording = 0;
+var box_ip; // Used for testing plugins
+var test_ip; // Used for testing plugins
+
+var color_switchtimer = "color_switchtimer";
+var color_default = "color_default";
+var color_error = "color_error";
+
diff --git a/javascript/settings2.js b/javascript/settings2.js
new file mode 100644
index 0000000..513582e
--- /dev/null
+++ b/javascript/settings2.js
@@ -0,0 +1,115 @@
+
+var fsList; var fsSchedList; var fsSched;
+
+var color_bg = "#fc5";
+var color_main_head = "color:white";
+var color_sched_head = "color:white";
+var color_sched_font = "color:black";
+var color_timerinfo = "color:white";
+
+var color_progress1 = "<font color=red>";
+var color_progress2 = "<font color=white>";
+
+
+function setOSDscale() {
+	fsList = (18*Yfactor[Set_Res]) + "px"; //1080 = 34, 720 = 23, 576 = 18
+	fsSchedList = (18*Yfactor[Set_Res]) + "px"; //1080 = 34, 720 = 23, 576 = 18
+	fsSched = (26*Yfactor[Set_Res]) + "px"; //1080 = 49, 720 = 33, 576 = 26
+}
+
+function GetSchedule(schchan,tablelength){
+	//Old style Schedule, used in Guide View.
+	SI = "";
+  try {
+	 StreamInfo(schchan);
+
+	 eitService = toi.statics.ToiDvbEitCacheServiceItem.create(SI[1],SI[2],SI[3]);
+	 eitCache.addService(eitService);
+	 event = eitCache.getPresentEvent(eitService);
+	 events = eitCache.getEvents(eitService, (Math.round(new Date().getTime()/1000.0)), 2000000000);
+
+	if (event.name)	{
+	    if (events.more) {
+	      var t = eitCache.getEvents(eitService, (Math.round(new Date().getTime()/1000.0)), 2000000000);
+	      events.infoSequence.concat(t.infoSequence);
+	      events.more = t.more;
+	    }
+
+	    var txt = "<table><tr>";
+	    var i = 0;
+	    for (i = 0; i < events.infoSequence.length && i < tablelength; i++) {
+
+		while ((i > 0) && (events.infoSequence[i].eventId == events.infoSequence[(i-1)].eventId)) {
+			i = i + 1;
+		}
+
+		tijd = events.infoSequence[i].time;
+		date = new Date(tijd*1000); 
+		tijd = date.toUTCString();
+		tijd = new Date(tijd);
+		var tm = tijd.getMinutes();
+		var th = tijd.getHours();
+		th=addzero(th);
+		tm=addzero(tm);
+
+	      txt = txt + "<td style='font-size:" + fsSchedList + ";" + color_sched_font + ";'>\uE003\uE003\uE003\uE003\uE003" + th + ":" + tm + "     (" + (events.infoSequence[i].duration/60).toFixed(0) + ")  " + Left(events.infoSequence[i].name,30) + "</td></tr>";
+	    }
+	   txt = txt + "</table>";
+	   schedule.innerHTML = "<p style='" + color_sched_head + ";font-size:" + fsSched + ";'>" + "\uE003" + schchan + "\uE003" + channelsnames[schchan] + txt + "</p>";
+	} else {
+	  schedule.innerHTML = "<p style='" + color_sched_head + ";font-size:" + fsSched + ";'>" + "\uE003" + schchan + "\uE003" + channelsnames[schchan] + "</p>";
+	}
+
+  } catch(e) {
+    alert("Get EPG problem: " + e);
+    schedule.innerHTML = "<p style='" + color_sched_head + ";font-size:" + fsSched + ";'>" + "\uE003" + schchan + "\uE003" + channelsnames[schchan] + "</p><p>" + Lang[6] + "</p>";
+  }
+
+}
+
+
+// Channelslist / EPG Guide
+//
+// show currchan - 5
+// highlite currchan
+// show currchan + 5
+// 
+// check if chan is OK
+// 
+function showChannelList() {
+	var liststyle = "";
+	var htmlstring = "<table border='0'><tr>";
+	listChan = currChan-5;
+	for(var i=currChan-5; i<=currChan+5; i++) {
+		do
+			{
+				listChan += 1;
+				if (listChan<minChan[ChanGroup]) {
+					listChan=maxChan[ChanGroup];
+					}
+				if (listChan>maxChan[ChanGroup]) {
+					listChan=minChan[ChanGroup];
+				}
+			}
+
+		while (!channels[listChan] && (listChan<maxChan[ChanGroup]));
+		if (fullupdate) { GetEPG(listChan); }
+		if ( listChan == currChan) { 
+			if (!fullupdate) { GetEPG(listChan); }
+			liststyle = "background:" + color_bg + ";";
+		}  else {
+			liststyle = "";
+		}
+		EpgInfo[0] = EPG[0][7][listChan];
+		EpgInfo[1] = EPG[1][7][listChan];
+		htmlstring = htmlstring + "<td style='" + liststyle + "font-size:" + fsList + ";'>\uE003\uE003" + listChan + "\uE003</td><td style='" + liststyle + "font-size:" + fsList + ";'>" + Left(channelsnames[listChan],15) + "\uE003</td><td style='" + liststyle + "font-size:" + fsList + ";'>"  + Left(EpgInfo[NowNext],64) + "</td></tr>";
+	}
+	htmlstring = htmlstring + "</table>";
+	channellist.innerHTML = htmlstring;
+        chanlistepg.innerHTML = "<p class=epg>" + EPG[NowNext][1][currChan] + "</p><p class=list>" + Left(EPG[NowNext][4][currChan],250) + "</p>" ;
+
+}
+
+
+// END of Channelslist / EPG Guide
+
diff --git a/lang_dut.js b/lang_dut.js
deleted file mode 100755
index 09e1998..0000000
--- a/lang_dut.js
+++ /dev/null
@@ -1,120 +0,0 @@
-//
-// language file
-//
-
-
-NN[0] = "Nu";
-NN[1] = "Hierna";
-NN[2] = "Overzicht";
-NN[3] = "TIMER";
-NN[4] = "-----";
-NN[5] = "INFO";
-NN[6] = "Terug";
-
-//lang_prio = new Array("dut,eng,und","ger,deu,eng","eng,und","fre,fra,eng");
-lang_prio_lang = new Array("Nederlands", "Duits", "Engels","Frans");
-months = new Array('Januari', 'Februari', 'Maart', 'April', 'Mei', 'Juni', 'Juli', 'Augustus', 'September', 'Oktober', 'November', 'December');
-days = new Array('Zondag', 'Maandag', 'Dinsdag', 'Woensdag', 'Donderdag', 'Vrijdag', 'Zaterdag');
-
-searchmode = new Array('zin', 'alle woorden', 'minimaal een woord', 'exacte overeenkomst', 'regex', 'fuzzy');
-searchchan = new Array('geen', 'interval', 'channel groep', 'alleen FTA');
-
-// EPG Content
-CLang[0] = "Movie/Drama";
-CLang[10] = "News/Current affairs";
-CLang[20] = "Show/Game show";
-CLang[30] = "Sports";
-CLang[40] = "Children's/Youth programmes";
-CLang[50] = "Music/Ballet/Dance";
-CLang[60] = "Arts/Culture (without music)";
-CLang[70] = "Social/Political issues/Economics";
-CLang[80] = "Education/Science/Factual topics"; 
-CLang[90] = "Leisure hobbies"; 
-CLang[100] = "Special characteristics";
-
-Lang[0] = " Een ogenblik geduld AUB ";
-Lang[1] = "VOLUME";
-Lang[2] = "  Naam      : ";
-Lang[3] = "  Kanaal    : ";
-Lang[4] = "  Starttijd : ";
-Lang[5] = " Vanaf "; // Epg rating
-Lang[6] = " Geen EPG ";
-Lang[7] = " Timers ";
-Lang[8] = " ZoekTimers ";
-Lang[9] = " HoofdMenu ";
-Lang[10] = " Instellingen ";
-Lang[11] = " EPG ";
-Lang[12] = " Server : Opnames ";
-Lang[13] = " Server : Timers ";
-Lang[14] = " Server : EPG ";
-Lang[15] = " Server : Media Directory ";
-Lang[16] = " Server : ZoekTimers ";
-Lang[17] = " Server : MPD Verbinding ";
-Lang[18] = " Herstart  ";
-Lang[19] = " \uE003\uE003\uE003\uE003\uE003\uE003\uE003\uE003 ";
-
-//Settings menu
-Lang[20] = " Ondertiteling ";
-Lang[21] = " Ondertiteling Type Prio ";
-Lang[22] = " Ondertiteling Prio   : ";
-Lang[23] = " Menu Taal : ";
-Lang[24] = " AudioVoorkeurstaal : ";
-Lang[25] = " Frontdisplay Klok ";
-Lang[26] = " Beveiliging ";
-Lang[27] = " Preview guide ";
-Lang[28] = " INFO      ";
-Lang[29] = " SlaapTimer : ";
-Lang[30] = " minuten ";
-Lang[31] = "UIT";
-Lang[32] = " DRUK OP ROOD OM TE WISSEN ";
-Lang[33] = " MPD Verbinding ";
-Lang[34] = " MENU om te beeindigen ";
-Lang[35] = " BOX-INFO ";
-Lang[36] = " Problemen met het opvragen van de timers van ";
-Lang[37] = " GEEN INFO ";
-Lang[38] = " OPNAMES ";
-Lang[39] = " Problemen met het opvragen van de opnames !!! "
-
-Lang[40] = "Gebruik als zoektimer";
-Lang[41] = "Gebruik Tijd";
-Lang[42] = "Channel Mode";
-Lang[43] = " Problemen met het opvragen van ZoekTimers ";
-Lang[47] = "Gebruik dag van de week";
-
-Lang[44] = " OK om te wissen ";
-Lang[45] = " andere toets om dit niet te doen ";
-Lang[46] = "vrij ";
-//Lang[47]
-Lang[48] = " Wissen     ";
-Lang[49] = " In/Active ";
-
-Lang[50] = " Server EPG ";
-Lang[51] = " Problemen met het opvragen van de EPG !!! ";
-Lang[52] = " GEEN EPG op dit kanaal!!! ";
-Lang[53] = " Problemen met het opvragen van de EPG !!! ";
-Lang[54] = " Minuten ";
-Lang[55] = "FOUT met instellen opname";
-Lang[56] = "Min.";
-Lang[57] = "Opname gestart";
-
-Lang[60] = " MPD Verbinding ";
-Lang[61] = " Opnieuw ";
-Lang[62] = " Problemen met het verbinden met MPD server ";
-Lang[63] = " Opnieuw verbinden ";
-Lang[64] = " Verbonden met MPD server ";
-Lang[65] = " maar streaming gestopt ";
-Lang[66] = " Reden ";
-Lang[67] = "Verbindings probleem";
-
-Lang[70] = "Pause";
-Lang[80] = "Toon KanaalGroep";
-Lang[81] = "Groep ";
-Lang[82] = "Groep Selektie";
-Lang[83] = "Favorieten Lijst";
-Lang[84] = " schuif op ";
-Lang[85] = " schuif neer ";
-Lang[86] = " Toevoegen ";
-Lang[87] = " Wissen ";
-
-Lang[90] = "Deze zender zit niet in je pakket";
-
diff --git a/lang_eng.js b/lang_eng.js
deleted file mode 100755
index 0b41fb2..0000000
--- a/lang_eng.js
+++ /dev/null
@@ -1,120 +0,0 @@
-//
-// language file
-//
-
-
-NN[0] = "Now";
-NN[1] = "Next";
-NN[2] = "Schedule";
-NN[3] = "TIMER";
-NN[4] = "-----";
-NN[5] = "INFO";
-NN[6] = "BACK";
-
-//lang_prio = new Array("dut,eng,und","ger,deu,eng","eng,und","fre,fra,eng");
-lang_prio_lang = new Array("Dutch", "German", "English","French");
-months = new Array('January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December');
-days = new Array('Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday');
-
-searchmode = new Array('phrase', 'all words', 'at least one word', 'match exactly', 'regex', 'fuzzy');
-searchchan = new Array('no', 'interval', 'channel group', 'only FTA');
-
-// EPG Content
-CLang[0] = "Movie/Drama";
-CLang[10] = "News/Current affairs";
-CLang[20] = "Show/Game show";
-CLang[30] = "Sports";
-CLang[40] = "Children's/Youth programmes";
-CLang[50] = "Music/Ballet/Dance";
-CLang[60] = "Arts/Culture (without music)";
-CLang[70] = "Social/Political issues/Economics";
-CLang[80] = "Education/Science/Factual topics"; 
-CLang[90] = "Leisure hobbies"; 
-CLang[100] = "Special characteristics";
-
-Lang[0] = " Please WAIT ";
-Lang[1] = "VOLUME";
-Lang[2] = "  Name      : ";
-Lang[3] = "  channel   : ";
-Lang[4] = "  Starttime : ";
-Lang[5] = " from "; // Epg rating
-Lang[6] = " NO EPG ";
-Lang[7] = " Timers ";
-Lang[8] = " SearchTimers ";
-Lang[9] = " MainMenu ";
-Lang[10] = " Settings ";
-Lang[11] = " EPG ";
-Lang[12] = " Server : Recordings ";
-Lang[13] = " Server : Timers ";
-Lang[14] = " Server : EPG ";
-Lang[15] = " Server : Media Directory ";
-Lang[16] = " Server : SearchTimers ";
-Lang[17] = " Server : MPD Connection ";
-Lang[18] = " Restart   ";
-Lang[19] = " \uE003\uE003\uE003\uE003\uE003\uE003\uE003\uE003 ";
-
-//Settings menu
-Lang[20] = " Show Subs ";
-Lang[21] = " Subs Type Prio ";
-Lang[22] = " Subs Mode Prio   : ";
-Lang[23] = " Menu Language : ";
-Lang[24] = " Prio audio track  : ";
-Lang[25] = " Frontdisplay Clock ";
-Lang[26] = " Protection ";
-Lang[27] = " Preview guide ";
-Lang[28] = " INFO      ";
-Lang[29] = " SleepTimer : ";
-Lang[30] = " minutes ";
-Lang[31] = "OFF";
-Lang[32] = " PRESS RED-KEY TO REMOVE ";
-Lang[33] = " MPD Connection ";
-Lang[34] = " MENU to exit ";
-Lang[35] = " BOX-INFO ";
-Lang[36] = " ERROR Getting Timers from ";
-Lang[37] = " NO INFO ";
-Lang[38] = " RECORDINGS ";
-Lang[39] = " ERROR getting RECORDINGS !!! "
-
-Lang[40] = "Use as Search Timer";
-Lang[41] = "Use Time";
-Lang[42] = "Channel Mode";
-Lang[43] = " ERROR Getting SearchTimers from ";
-Lang[47] = "Use day of the week";
-
-Lang[44] = " OK to delete ";
-Lang[45] = " other to abort ";
-Lang[46] = "free ";
-//Lang[47]
-Lang[48] = " Delete    ";
-Lang[49] = " Un/Active ";
-
-Lang[50] = " Server EPG ";
-Lang[51] = " ERROR getting Server EPG !!! ";
-Lang[52] = " NO EPG on this channel!!! ";
-Lang[53] = " ERROR getting EPG !!! ";
-Lang[54] = " Minutes ";
-Lang[55] = "ERROR starting recording";
-Lang[56] = "Min.";
-Lang[57] = "Recording started";
-
-Lang[60] = " MPD Connection ";
-Lang[61] = " Retry ";
-Lang[62] = " ERROR Connecting to MPD server ";
-Lang[63] = " Reconnect ";
-Lang[64] = " Connected to MPD server ";
-Lang[65] = " but streaming ended ";
-Lang[66] = " Reason ";
-Lang[67] = "Connection Error";
-
-Lang[70] = "Pause";
-Lang[80] = "Show ChannelsGroup";
-Lang[81] = "Group ";
-Lang[82] = "Group Selection";
-Lang[83] = "Favorites List";
-Lang[84] = " Move UP ";
-Lang[85] = " Move Down ";
-Lang[86] = " ADD ";
-Lang[87] = " Delete ";
-
-
-Lang[90] = "No subscription for this channel";
diff --git a/lang_ger.js b/lang_ger.js
deleted file mode 100644
index 085568b..0000000
--- a/lang_ger.js
+++ /dev/null
@@ -1,119 +0,0 @@
-//
-// language file
-//
-
-NN[0] = "Jetzt";
-NN[1] = "Weiter";
-NN[2] = "Zeitplan";
-NN[3] = "TIMER";
-NN[4] = "-----";
-NN[5] = "INFO";
-NN[6] = "ZURUCK";
-
-lang_prio_lang = new Array("Hollandisch", "Deutsch", "Englisch", "Franzosisch");
-months = new Array("Januar", "Februar", "Marz", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember ");
-days = new Array("Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag");
-
-searchmode = new Array('Ausdruck', 'alle Worter', 'zumindest ein Wort','genau ubereinstimmen', 'regex', 'Fuzzy');
-searchchan = new Array('Kein', 'Intervall', 'Kanalgruppe', 'nur FTA');
-
-// EPG Content
-CLang[0] = "Movie / Drama";
-CLang[10] = "News / Aktuelles";
-CLang[20] = "Show / Spielshow";
-CLang[30] = "Sport";
-CLang[40] = "Kinder / Jugendliche";
-CLang[50] = "Musik / Ballett / Tanz";
-CLang[60] = "Kunst / Kultur (ohne Musik)";
-CLang[70] = "Gesellschaft / Politik / Wirtschaft";
-CLang[80] = "Bildung / Wissenschaft / Factual Themen";
-CLang[90] = "Freizeit & Hobby";
-CLang[100] = "Besondere Merkmale";
-
-
-
-Lang[0] = " Bitte warten ";
-Lang[1] = "VOLUME";
-Lang[2] = " Name     : ";
-Lang[3] = " Kanal    : ";
-Lang[4] = " Startzeit: ";
-Lang[5] = " Ab "; // EPG Bewertung
-Lang[6] = " KEIN EPG ";
-Lang[7] = " Timers ";
-Lang[8] = " Suchtimer ";
-Lang[9] = " HauptMenu ";
-Lang[10] = " Einstellungen ";
-Lang[11] = " EPG ";
-Lang[12] = " Server : Aufnahmen ";
-Lang[13] = " Server : Zeiten ";
-Lang[14] = " Server : EPG ";
-Lang[15] = " Server : Medienverzeichnis ";
-Lang[16] = " Server : Suchtimer ";
-Lang[17] = " Server : MPD Connection ";
-Lang[18] = " Neustart  ";
-Lang[19] = " \uE003\uE003\uE003\uE003\uE003\uE003\uE003\uE003 ";
-
-//Settings menu
-Lang[20] = " UnterTiteln ";
-Lang[21] = " UnterTiteln Typ Prio ";
-Lang[22] = " UnterTiteln Prio: ";
-Lang[23] = " Menu-Sprache : ";
-Lang[24] = " Prio Audiospur : ";
-Lang[25] = " Frontdisplay Uhr ";
-Lang[26] = " Schutz ";
-Lang[27] = " Vorschau Zeitplan ";
-Lang[28] = " INFO ";
-Lang[29] = " Sleeptimer : ";
-Lang[30] = " Minuten ";
-Lang[31] = "OFF";
-Lang[32] = " DRUCKE ROTEN TASTE UM ZU LOSCHEN ";
-Lang[33] = " MPD Connection ";
-Lang[34] = " Menu verlassen ";
-Lang[35] = " BOX-INFO ";
-Lang[36] = " Fehler beim Abrufen der Timer von ";
-Lang[37] = " KEINE INFO ";
-Lang[38] = " AUFNAHMEN ";
-Lang[39] = " Fehler beim AUFNAHMEN! "
-
-Lang[40] = "Suchtimer";
-Lang[41] = "Time";
-Lang[42] = "Kanal Mode";
-Lang[43] = " Fehler beim Suchtimer von ";
-Lang[47] = "Verwenden Tag der Woche";
-
-Lang[44] = " OK, um zu loschen ";
-Lang[45] = " anderen abbrechen ";
-Lang[46] = "Frei ";
-Lang[48] = " Loschen   ";
-Lang[49] = " In/Aktiv  ";
-
-Lang[50] = " Server-EPG ";
-Lang[51] = " FEHLER beim abfragen Server EPG!! ";
-Lang[52] = " Kein EPG auf diesem Kanal!! ";
-Lang[53] = " FEHLER beim abfragen EPG !! ";
-Lang[54] = "Minuten";
-Lang[55] = "Fehler beim Starten Aufnahme";
-Lang[56] = "Min.";
-Lang[57] = "Aufnahme gestartet";
-
-Lang[60] = " MPD Connection ";
-Lang[61] = " Wiederholen ";
-Lang[62] = " Fehler beim Verbinden mit MPD-Server ";
-Lang[63] = " Reconnect ";
-Lang[64] = " Verbunden mit MPD-Server ";
-Lang[65] = " aber Streaming beendet ";
-Lang[66] = " Grund ";
-Lang[67] = "Connection Error";
-
-Lang[70] = "Pause";
-Lang[80] = "Zeige KanalGruppe";
-Lang[81] = "Gruppe ";
-Lang[82] = "Gruppe wahlen";
-Lang[83] = "Favoriten Liste";
-Lang[84] = " Nach oben ";
-Lang[85] = " Nach unten ";
-Lang[86] = " hinzufugen ";
-Lang[87] = " Loschen ";
-
-
-Lang[90] = "Kein Abo fur diesen Kanal";
diff --git a/languages/lang_dut.js b/languages/lang_dut.js
new file mode 100644
index 0000000..09e1998
--- /dev/null
+++ b/languages/lang_dut.js
@@ -0,0 +1,120 @@
+//
+// language file
+//
+
+
+NN[0] = "Nu";
+NN[1] = "Hierna";
+NN[2] = "Overzicht";
+NN[3] = "TIMER";
+NN[4] = "-----";
+NN[5] = "INFO";
+NN[6] = "Terug";
+
+//lang_prio = new Array("dut,eng,und","ger,deu,eng","eng,und","fre,fra,eng");
+lang_prio_lang = new Array("Nederlands", "Duits", "Engels","Frans");
+months = new Array('Januari', 'Februari', 'Maart', 'April', 'Mei', 'Juni', 'Juli', 'Augustus', 'September', 'Oktober', 'November', 'December');
+days = new Array('Zondag', 'Maandag', 'Dinsdag', 'Woensdag', 'Donderdag', 'Vrijdag', 'Zaterdag');
+
+searchmode = new Array('zin', 'alle woorden', 'minimaal een woord', 'exacte overeenkomst', 'regex', 'fuzzy');
+searchchan = new Array('geen', 'interval', 'channel groep', 'alleen FTA');
+
+// EPG Content
+CLang[0] = "Movie/Drama";
+CLang[10] = "News/Current affairs";
+CLang[20] = "Show/Game show";
+CLang[30] = "Sports";
+CLang[40] = "Children's/Youth programmes";
+CLang[50] = "Music/Ballet/Dance";
+CLang[60] = "Arts/Culture (without music)";
+CLang[70] = "Social/Political issues/Economics";
+CLang[80] = "Education/Science/Factual topics"; 
+CLang[90] = "Leisure hobbies"; 
+CLang[100] = "Special characteristics";
+
+Lang[0] = " Een ogenblik geduld AUB ";
+Lang[1] = "VOLUME";
+Lang[2] = "  Naam      : ";
+Lang[3] = "  Kanaal    : ";
+Lang[4] = "  Starttijd : ";
+Lang[5] = " Vanaf "; // Epg rating
+Lang[6] = " Geen EPG ";
+Lang[7] = " Timers ";
+Lang[8] = " ZoekTimers ";
+Lang[9] = " HoofdMenu ";
+Lang[10] = " Instellingen ";
+Lang[11] = " EPG ";
+Lang[12] = " Server : Opnames ";
+Lang[13] = " Server : Timers ";
+Lang[14] = " Server : EPG ";
+Lang[15] = " Server : Media Directory ";
+Lang[16] = " Server : ZoekTimers ";
+Lang[17] = " Server : MPD Verbinding ";
+Lang[18] = " Herstart  ";
+Lang[19] = " \uE003\uE003\uE003\uE003\uE003\uE003\uE003\uE003 ";
+
+//Settings menu
+Lang[20] = " Ondertiteling ";
+Lang[21] = " Ondertiteling Type Prio ";
+Lang[22] = " Ondertiteling Prio   : ";
+Lang[23] = " Menu Taal : ";
+Lang[24] = " AudioVoorkeurstaal : ";
+Lang[25] = " Frontdisplay Klok ";
+Lang[26] = " Beveiliging ";
+Lang[27] = " Preview guide ";
+Lang[28] = " INFO      ";
+Lang[29] = " SlaapTimer : ";
+Lang[30] = " minuten ";
+Lang[31] = "UIT";
+Lang[32] = " DRUK OP ROOD OM TE WISSEN ";
+Lang[33] = " MPD Verbinding ";
+Lang[34] = " MENU om te beeindigen ";
+Lang[35] = " BOX-INFO ";
+Lang[36] = " Problemen met het opvragen van de timers van ";
+Lang[37] = " GEEN INFO ";
+Lang[38] = " OPNAMES ";
+Lang[39] = " Problemen met het opvragen van de opnames !!! "
+
+Lang[40] = "Gebruik als zoektimer";
+Lang[41] = "Gebruik Tijd";
+Lang[42] = "Channel Mode";
+Lang[43] = " Problemen met het opvragen van ZoekTimers ";
+Lang[47] = "Gebruik dag van de week";
+
+Lang[44] = " OK om te wissen ";
+Lang[45] = " andere toets om dit niet te doen ";
+Lang[46] = "vrij ";
+//Lang[47]
+Lang[48] = " Wissen     ";
+Lang[49] = " In/Active ";
+
+Lang[50] = " Server EPG ";
+Lang[51] = " Problemen met het opvragen van de EPG !!! ";
+Lang[52] = " GEEN EPG op dit kanaal!!! ";
+Lang[53] = " Problemen met het opvragen van de EPG !!! ";
+Lang[54] = " Minuten ";
+Lang[55] = "FOUT met instellen opname";
+Lang[56] = "Min.";
+Lang[57] = "Opname gestart";
+
+Lang[60] = " MPD Verbinding ";
+Lang[61] = " Opnieuw ";
+Lang[62] = " Problemen met het verbinden met MPD server ";
+Lang[63] = " Opnieuw verbinden ";
+Lang[64] = " Verbonden met MPD server ";
+Lang[65] = " maar streaming gestopt ";
+Lang[66] = " Reden ";
+Lang[67] = "Verbindings probleem";
+
+Lang[70] = "Pause";
+Lang[80] = "Toon KanaalGroep";
+Lang[81] = "Groep ";
+Lang[82] = "Groep Selektie";
+Lang[83] = "Favorieten Lijst";
+Lang[84] = " schuif op ";
+Lang[85] = " schuif neer ";
+Lang[86] = " Toevoegen ";
+Lang[87] = " Wissen ";
+
+Lang[90] = "Deze zender zit niet in je pakket";
+
diff --git a/languages/lang_eng.js b/languages/lang_eng.js
new file mode 100644
index 0000000..0b41fb2
--- /dev/null
+++ b/languages/lang_eng.js
@@ -0,0 +1,120 @@
+//
+// language file
+//
+
+
+NN[0] = "Now";
+NN[1] = "Next";
+NN[2] = "Schedule";
+NN[3] = "TIMER";
+NN[4] = "-----";
+NN[5] = "INFO";
+NN[6] = "BACK";
+
+//lang_prio = new Array("dut,eng,und","ger,deu,eng","eng,und","fre,fra,eng");
+lang_prio_lang = new Array("Dutch", "German", "English","French");
+months = new Array('January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December');
+days = new Array('Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday');
+
+searchmode = new Array('phrase', 'all words', 'at least one word', 'match exactly', 'regex', 'fuzzy');
+searchchan = new Array('no', 'interval', 'channel group', 'only FTA');
+
+// EPG Content
+CLang[0] = "Movie/Drama";
+CLang[10] = "News/Current affairs";
+CLang[20] = "Show/Game show";
+CLang[30] = "Sports";
+CLang[40] = "Children's/Youth programmes";
+CLang[50] = "Music/Ballet/Dance";
+CLang[60] = "Arts/Culture (without music)";
+CLang[70] = "Social/Political issues/Economics";
+CLang[80] = "Education/Science/Factual topics"; 
+CLang[90] = "Leisure hobbies"; 
+CLang[100] = "Special characteristics";
+
+Lang[0] = " Please WAIT ";
+Lang[1] = "VOLUME";
+Lang[2] = "  Name      : ";
+Lang[3] = "  channel   : ";
+Lang[4] = "  Starttime : ";
+Lang[5] = " from "; // Epg rating
+Lang[6] = " NO EPG ";
+Lang[7] = " Timers ";
+Lang[8] = " SearchTimers ";
+Lang[9] = " MainMenu ";
+Lang[10] = " Settings ";
+Lang[11] = " EPG ";
+Lang[12] = " Server : Recordings ";
+Lang[13] = " Server : Timers ";
+Lang[14] = " Server : EPG ";
+Lang[15] = " Server : Media Directory ";
+Lang[16] = " Server : SearchTimers ";
+Lang[17] = " Server : MPD Connection ";
+Lang[18] = " Restart   ";
+Lang[19] = " \uE003\uE003\uE003\uE003\uE003\uE003\uE003\uE003 ";
+
+//Settings menu
+Lang[20] = " Show Subs ";
+Lang[21] = " Subs Type Prio ";
+Lang[22] = " Subs Mode Prio   : ";
+Lang[23] = " Menu Language : ";
+Lang[24] = " Prio audio track  : ";
+Lang[25] = " Frontdisplay Clock ";
+Lang[26] = " Protection ";
+Lang[27] = " Preview guide ";
+Lang[28] = " INFO      ";
+Lang[29] = " SleepTimer : ";
+Lang[30] = " minutes ";
+Lang[31] = "OFF";
+Lang[32] = " PRESS RED-KEY TO REMOVE ";
+Lang[33] = " MPD Connection ";
+Lang[34] = " MENU to exit ";
+Lang[35] = " BOX-INFO ";
+Lang[36] = " ERROR Getting Timers from ";
+Lang[37] = " NO INFO ";
+Lang[38] = " RECORDINGS ";
+Lang[39] = " ERROR getting RECORDINGS !!! "
+
+Lang[40] = "Use as Search Timer";
+Lang[41] = "Use Time";
+Lang[42] = "Channel Mode";
+Lang[43] = " ERROR Getting SearchTimers from ";
+Lang[47] = "Use day of the week";
+
+Lang[44] = " OK to delete ";
+Lang[45] = " other to abort ";
+Lang[46] = "free ";
+//Lang[47]
+Lang[48] = " Delete    ";
+Lang[49] = " Un/Active ";
+
+Lang[50] = " Server EPG ";
+Lang[51] = " ERROR getting Server EPG !!! ";
+Lang[52] = " NO EPG on this channel!!! ";
+Lang[53] = " ERROR getting EPG !!! ";
+Lang[54] = " Minutes ";
+Lang[55] = "ERROR starting recording";
+Lang[56] = "Min.";
+Lang[57] = "Recording started";
+
+Lang[60] = " MPD Connection ";
+Lang[61] = " Retry ";
+Lang[62] = " ERROR Connecting to MPD server ";
+Lang[63] = " Reconnect ";
+Lang[64] = " Connected to MPD server ";
+Lang[65] = " but streaming ended ";
+Lang[66] = " Reason ";
+Lang[67] = "Connection Error";
+
+Lang[70] = "Pause";
+Lang[80] = "Show ChannelsGroup";
+Lang[81] = "Group ";
+Lang[82] = "Group Selection";
+Lang[83] = "Favorites List";
+Lang[84] = " Move UP ";
+Lang[85] = " Move Down ";
+Lang[86] = " ADD ";
+Lang[87] = " Delete ";
+
+
+Lang[90] = "No subscription for this channel";
diff --git a/languages/lang_ger.js b/languages/lang_ger.js
new file mode 100644
index 0000000..085568b
--- /dev/null
+++ b/languages/lang_ger.js
@@ -0,0 +1,119 @@
+//
+// language file
+//
+
+NN[0] = "Jetzt";
+NN[1] = "Weiter";
+NN[2] = "Zeitplan";
+NN[3] = "TIMER";
+NN[4] = "-----";
+NN[5] = "INFO";
+NN[6] = "ZURUCK";
+
+lang_prio_lang = new Array("Hollandisch", "Deutsch", "Englisch", "Franzosisch");
+months = new Array("Januar", "Februar", "Marz", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember ");
+days = new Array("Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag");
+
+searchmode = new Array('Ausdruck', 'alle Worter', 'zumindest ein Wort','genau ubereinstimmen', 'regex', 'Fuzzy');
+searchchan = new Array('Kein', 'Intervall', 'Kanalgruppe', 'nur FTA');
+
+// EPG Content
+CLang[0] = "Movie / Drama";
+CLang[10] = "News / Aktuelles";
+CLang[20] = "Show / Spielshow";
+CLang[30] = "Sport";
+CLang[40] = "Kinder / Jugendliche";
+CLang[50] = "Musik / Ballett / Tanz";
+CLang[60] = "Kunst / Kultur (ohne Musik)";
+CLang[70] = "Gesellschaft / Politik / Wirtschaft";
+CLang[80] = "Bildung / Wissenschaft / Factual Themen";
+CLang[90] = "Freizeit & Hobby";
+CLang[100] = "Besondere Merkmale";
+
+
+
+Lang[0] = " Bitte warten ";
+Lang[1] = "VOLUME";
+Lang[2] = " Name     : ";
+Lang[3] = " Kanal    : ";
+Lang[4] = " Startzeit: ";
+Lang[5] = " Ab "; // EPG Bewertung
+Lang[6] = " KEIN EPG ";
+Lang[7] = " Timers ";
+Lang[8] = " Suchtimer ";
+Lang[9] = " HauptMenu ";
+Lang[10] = " Einstellungen ";
+Lang[11] = " EPG ";
+Lang[12] = " Server : Aufnahmen ";
+Lang[13] = " Server : Zeiten ";
+Lang[14] = " Server : EPG ";
+Lang[15] = " Server : Medienverzeichnis ";
+Lang[16] = " Server : Suchtimer ";
+Lang[17] = " Server : MPD Connection ";
+Lang[18] = " Neustart  ";
+Lang[19] = " \uE003\uE003\uE003\uE003\uE003\uE003\uE003\uE003 ";
+
+//Settings menu
+Lang[20] = " UnterTiteln ";
+Lang[21] = " UnterTiteln Typ Prio ";
+Lang[22] = " UnterTiteln Prio: ";
+Lang[23] = " Menu-Sprache : ";
+Lang[24] = " Prio Audiospur : ";
+Lang[25] = " Frontdisplay Uhr ";
+Lang[26] = " Schutz ";
+Lang[27] = " Vorschau Zeitplan ";
+Lang[28] = " INFO ";
+Lang[29] = " Sleeptimer : ";
+Lang[30] = " Minuten ";
+Lang[31] = "OFF";
+Lang[32] = " DRUCKE ROTEN TASTE UM ZU LOSCHEN ";
+Lang[33] = " MPD Connection ";
+Lang[34] = " Menu verlassen ";
+Lang[35] = " BOX-INFO ";
+Lang[36] = " Fehler beim Abrufen der Timer von ";
+Lang[37] = " KEINE INFO ";
+Lang[38] = " AUFNAHMEN ";
+Lang[39] = " Fehler beim AUFNAHMEN! "
+
+Lang[40] = "Suchtimer";
+Lang[41] = "Time";
+Lang[42] = "Kanal Mode";
+Lang[43] = " Fehler beim Suchtimer von ";
+Lang[47] = "Verwenden Tag der Woche";
+
+Lang[44] = " OK, um zu loschen ";
+Lang[45] = " anderen abbrechen ";
+Lang[46] = "Frei ";
+Lang[48] = " Loschen   ";
+Lang[49] = " In/Aktiv  ";
+
+Lang[50] = " Server-EPG ";
+Lang[51] = " FEHLER beim abfragen Server EPG!! ";
+Lang[52] = " Kein EPG auf diesem Kanal!! ";
+Lang[53] = " FEHLER beim abfragen EPG !! ";
+Lang[54] = "Minuten";
+Lang[55] = "Fehler beim Starten Aufnahme";
+Lang[56] = "Min.";
+Lang[57] = "Aufnahme gestartet";
+
+Lang[60] = " MPD Connection ";
+Lang[61] = " Wiederholen ";
+Lang[62] = " Fehler beim Verbinden mit MPD-Server ";
+Lang[63] = " Reconnect ";
+Lang[64] = " Verbunden mit MPD-Server ";
+Lang[65] = " aber Streaming beendet ";
+Lang[66] = " Grund ";
+Lang[67] = "Connection Error";
+
+Lang[70] = "Pause";
+Lang[80] = "Zeige KanalGruppe";
+Lang[81] = "Gruppe ";
+Lang[82] = "Gruppe wahlen";
+Lang[83] = "Favoriten Liste";
+Lang[84] = " Nach oben ";
+Lang[85] = " Nach unten ";
+Lang[86] = " hinzufugen ";
+Lang[87] = " Loschen ";
+
+
+Lang[90] = "Kein Abo fur diesen Kanal";
diff --git a/main.js b/main.js
deleted file mode 100644
index 3c07f40..0000000
--- a/main.js
+++ /dev/null
@@ -1,5048 +0,0 @@
-window.onkeydown = onKeyDown;
-
-function onLoad() {
-
-	is = toi.informationService;
-	ss = toi.schedulerService;
-	aos = toi.audioOutputService;
-	vos = toi.videoOutputService;
-	fps = toi.frontPanelService;
-	ams = toi.assetManagerService;
-
-	GetSettings();
-	createPlayer();
-	createEitCache();
-
-	if(pipPlayer){
-		addPipVideoplane();
-		createPip();
-	}
-	if(PipSwitchGuide){
-		createPip();
-	}
-
-	embedTeletextPlugin();
-	aos.setVolume(AudioOut, StartVolume);
-	aos.setMuteState(AudioOut, false);
-	showDisplay(currChan.toString(), false, 100, 0 );
-	play(channels[currChan]);
-
-	if (EPGMode) {
-		eitCache.setFilterMode(eitCache.FILTER_MODE_PF_AND_SCHEDULE);
-	} else {
-		eitCache.setFilterMode(eitCache.FILTER_MODE_PF_ONLY);
-	}
-	eitCache.addEventListener(eitCache.ON_CACHE_UPDATED, onCacheUpdated);
-	mediaPlayer.addEventListener(mediaPlayer.ON_DATA_AVAILABLE,onDataAvailableEvent);
-	mediaPlayer.addEventListener(mediaPlayer.ON_STATE_CHANGED, MPD); 
-
-	if (is.getObject("var.capabilities.dvr") == "FALSE") { 
-		mediaRecorder = 0;
-		// No harddisk, no recorder functions possible
-	}
-
-	if (is.getObject("config.architecture.target") !== "vip1903" && fullupdate !== 2) { 
-		fullupdate = 0;
-		// No 19x3 so better turn fullupdate EPG off
-	}
-
-	if (mediaRecorder) {
-		createRecorder();
-		mediaRecorder.addEventListener(mediaRecorder.ON_STATE_CHANGED, onRecorderStateChanged);
-		om = toi.assetManagerService.getAssetOperationManager(); //toi.OperationManager;
-		rma = om.createOperation("Remove Asset");
-	}
-
-	    is.addEventListener(is.ON_OBJECTS_CHANGED, onEvent);
-	    is.subscribeObject(onEvent, "var.io.state", true);
-
-	    ss.addEventListener(ss.ON_SCHEDULED_START, onScheduledStart);
-	    ss.addEventListener(ss.ON_SCHEDULED_STOP, onScheduledStop);
-	    ss.setCategorySubscription(onScheduledStart, "*");
-	    ss.setCategorySubscription(onScheduledStop, "*");
-
-	setOSDscale();
-	setOSDtimer();
-	showOSD();
-	videoplane.subtitles = Boolean(ShowSubs);
-	colorkeys.innerHTML = "<span class=redkey> " +  NN[4] + " </span><span class=greenkey > " + NN[1] + " </span><span class=yellowkey> " + NN[2] + " </span><span class=bluekey> " + NN[5] + " </span>";
-	medialist.innerHTML = "<h1 class=mainmenu>" + Lang[0] + "</h1>";
-}
-
-
-
-
-function GetSettings() {
-	//test for settings, create if not excists.
-	try {
-		if (!is.getObject("vip.serveraddress")) {} 
-	} catch(e) {
-		is.setObject("vip.serveraddress","0",is.STORAGE_PERMANENT)
-	}
-
-	try {
-		if (!is.getObject("vip.languagepriority")) {} 
-	} catch(e) {
-		is.setObject("vip.languagepriority","0",is.STORAGE_PERMANENT)
-	}
-
-	try {
-		if (!is.getObject("vip.OSDlanguage")) {} 
-	} catch(e) {
-		is.setObject("vip.OSDlanguage","0",is.STORAGE_PERMANENT)
-	}
-
-	try {
-		if (!is.getObject("vip.testing")) {} 
-	} catch(e) {
-		is.setObject("vip.testing","0",is.STORAGE_PERMANENT)
-	}
-
-
-	try {
-		if (!is.getObject("vip.resolution")) {} 
-	} catch(e) {
-		is.setObject("vip.resolution","2",is.STORAGE_PERMANENT)
-	}
-
-	try {
-		if (!is.getObject("vip.testing2")) {} 
-	} catch(e) {
-		is.setObject("vip.testing2","0",is.STORAGE_PERMANENT)
-		//show info if channel is on hardcoded list of non free
-	}
-
-	try {
-		if (!is.getObject("vip.fav_max_channel")) {} 
-	} catch(e) {
-		is.setObject("vip.fav_max_channel","0",is.STORAGE_PERMANENT)
-	}
-
-	try {
-		if (!is.getObject("vip.showsubs")) {} 
-	} catch(e) {
-		is.setObject("vip.showsubs","1",is.STORAGE_PERMANENT)
-	}
-
-
-	try {
-		if (!is.getObject("vip.css_nr")) {} 
-	} catch(e) {
-		is.setObject("vip.css_nr","0",is.STORAGE_PERMANENT)
-	}
-
-	var sel_group;
-	for (var i=0;i<10;i++) {
-		sel_group = "vip.group." + i;
-		try {
-			if (!is.getObject(sel_group)) {} 
-		} catch(e) {
-			if (!minChan[i]) {
-				is.setObject(sel_group,"0",is.STORAGE_PERMANENT)
-			} else {
-				is.setObject(sel_group,"1",is.STORAGE_PERMANENT)
-			}
-		}
-	}
-
-	for (var i=0;i<10;i++) {
-		if (minChan[i]) {minchan[i] = minChan[i];}
-		sel_group = "vip.group." + i;
-		if (is.getObject(sel_group) == "0") { minChan[i] = "";}
-	}
-
-	audio = Number(is.getObject("vip.languagepriority"));
-	server_ip = server_ip_array[Number(is.getObject("vip.serveraddress"))];
-	for (var i=0;i<10;i++) { if (ServerAdres[i] !== "FullURL" && ServerAdres[i] !== "MultiCast") {ServerAdres[i] = server_ip + StreamPort;} }
-	ServerAdres[Fav_group] = server_ip + StreamPort;
-
-	lang_nr = Number(is.getObject("vip.OSDlanguage"));
-	loadjs(langfile[lang_nr]);
-
-	experimental = Number(is.getObject("vip.testing"));// Use some experimental code
-	testing2 = Number(is.getObject("vip.testing2"));// Use some experimental code
-	ShowSubs = Number(is.getObject("vip.showsubs"));
-	css_nr = Number(is.getObject("vip.css_nr"));
-	loadcss(cssfile[css_nr]);
-
-	Set_Res = Number(is.getObject("vip.resolution"));
-	VideoOutput();
-	Read_Fav();
-
-	is.setObject("cfg.media.subtitling.languagepriority",subs_prio,is.STORAGE_PERMANENT);
-	// set default subtitle language to 
-
-
-	//if needed types can be set here. Default of the box is normal.
-	//is.setObject("cfg.media.subtitling.typepriority","hearing_impaired",is.STORAGE_PERMANENT);
-	//is.setObject("cfg.media.subtitling.typepriority","normal",is.STORAGE_PERMANENT);
-	//is.setObject("cfg.media.audio.typepriority","normal",is.STORAGE_PERMANENT);
-	//is.setObject("cfg.media.audio.typepriority","hearing_impaired",is.STORAGE_PERMANENT);
-	//is.setObject("cfg.media.audio.typepriority","visually_impaired",is.STORAGE_PERMANENT);
-
-
-	for (var x = 0;  x < 10; x++) { 
-		searchtimers[x] = "" ; // To solve displaying undefined
-		timers[x] = "" ;
-		if (maxChan[x]) { //check changed to maxChan because minChan can be unset from menu
-			for (var i = minChan[x];  i < (maxChan[x]+1); i++) { 
-			EPG[0][4][i] = "";EPG[1][4][i] = "";EPG[0][5][i] = "";EPG[1][5][i] = "";
-			EPG[0][7][i] = "";EPG[1][7][i] = "";AvInfo[i] = "";
-			}
-		}
-	}
-	for (var i = minChan[Fav_group];  i < (maxChan[Fav_group]+10); i++) { 
-		EPG[0][4][i] = "";EPG[1][4][i] = "";EPG[0][5][i] = "";EPG[1][5][i] = "";EPG[0][7][i] = "";EPG[1][7][i] = "";AvInfo[i] = "";
-	}
-	//Check if there is a SmartTV or Restfulapi VDR server plugin but not when box ip isn't the same range as server ip
- 	test_ip = server_ip.split(".");
-	box_ip = (is.getObject("config.ipaddress")).split(".");
-
-	if (("http://" + box_ip[0] == test_ip[0]) && (box_ip[1] == test_ip[1]) && (box_ip[2] == test_ip[2])) {
-		CheckPlugins();
-	}
-
-// override check for testing :
-//	smartTVplugin = 0 ;
-//	Restfulapiplugin = 1;
-	if (smartTVplugin && Restfulapiplugin == 0) {
-		// smartTVplugin YES
-		// Restfulapiplugin NO
-		get_timer = 1;
-		if (get_recordings == 0 ) {get_recordings = 1;}
-		get_marks = 1;
-	} else if (smartTVplugin == 0 && Restfulapiplugin) {
-		// smartTVplugin NO
-		// Restfulapiplugin YES
-		get_timer = 0;
-		if (get_recordings == 1 ) {get_recordings = 0;}
-		get_marks = 0;
-	} else if (smartTVplugin == 0 && Restfulapiplugin == 0) {
-		// smartTVplugin NO
-		// Restfulapiplugin NO
-		get_recordings = 2; //from streamdev
-	}
-}
-
-function loadjs(filename){
-	var oHead = document.getElementsByTagName('HEAD').item(0);
-	var oScript= document.createElement("script");
-	oScript.type = "text/javascript";
-	oScript.src= filename;
-	oHead.appendChild( oScript);
-}
-
-function loadcss(filename){
-	var oHead = document.getElementsByTagName('HEAD').item(0);
-	var oScript= document.createElement("link");
-	oScript.type = "text/css";
-	oScript.rel = "stylesheet";
-	oScript.href = filename;
-	oHead.appendChild( oScript);
-}
-
-
-function onEvent(event) {
-var numObjs = event.objectNames.length;
-  for (var i=0; i<numObjs; i++) {
-	if(event.objectNames[i] == "var.io.state" && is.getObject(event.objectNames[i]) == "standby" && KillStream == 1){
-		try {
-			if (isMediaMenu) { 
-				if (medialist.style.opacity == 0) {setResume();} // No mediamenu on screen so set resume.
-			}
-			mediaPlayer.close();
-			SetLed(2,2,0);// At request no more blinking on standby.
-
-		} catch(e) {
-		alert(e);
-		}
-	} else if(event.objectNames[i] == "var.io.state" && is.getObject(event.objectNames[i]) == "normal" && KillStream == 1){
-		play(channels[currChan]);
-		if(isMediaMenu) {
-			if (mediaList.style.opacity == 0) {
-			if (get_recordings == 1) {
-			setTimeout("GetMarks(); getResume(); playRec(recLink[currMed]+ '?mode=streamtoend&time=' + position);",100);
-			} else if (get_recordings == 2) {
-			setTimeout("playRec(recLink[currMed]+ '?pos=time.' + position);",100);
-			}
-
-			} else {
-				showDisplay("STOP", false, 100, 0 );
-				showMediaList();
-			}
-		}
-	}
-  }
-}
-	
-function onUnload() {
-	try {
-		mediaPlayer.close();
-		mediaPlayer.releaseInstance();
-	if(TimeShift){
-		mediaPlayer.stopTimeshiftBuffering();
-		mediaPlayer.discardTimeshiftBuffer();
-		}
-	if(mediaRecorder){
-		om.releaseOperation(rma);
-		mediaRecorder.close();
-		mediaRecorder.releaseInstance();
-	}
-	if(pipPlayer){
-		pipPlayer.close();
-		pipPlayer.releaseInstance();
-	}
-
-	is.removeEventListener(is.ON_OBJECTS_CHANGED, onEvent);
-	eitCache.removeEventListener(eitCache.ON_CACHE_UPDATED, onCacheUpdated);
-	mediaPlayer.removeEventListener(mediaPlayer.ON_DATA_AVAILABLE,onDataAvailableEvent);
-	mediaPlayer.removeEventListener(mediaPlayer.ON_STATE_CHANGED, MPD); 
-	mediaRecorder.removeEventListener(mediaRecorder.ON_STATE_CHANGED, onRecorderStateChanged);
-
-	} catch(e) {
-		alert(e);
-	}
-}
-
-function incChan(step) {
-    currChan += step;
-    if (currChan > maxChan[ChanGroup]) {
-        currChan = minChan[ChanGroup];
-    }
-    osdmain.style.opacity = isFullscreen; 
-    OSDchannr(currChan);
-}
-
-function decChan(step) {
-    currChan -= step;
-    if (currChan < minChan[ChanGroup] ) {
-        currChan = maxChan[ChanGroup] ;
-    }
-    osdmain.style.opacity = isFullscreen; 
-    OSDchannr(currChan);
-}
-
-function VolumeUp() {
-	if (Volume < 5) {
-		var VolStep = 1;
-	} else {
-		var VolStep = VolumeStep;
-	}
-
-	Volume += VolStep;
-        if (Volume > 100) {
-            Volume = 100;
-        }
-        aos.setVolume(AudioOut, Volume);
-	showVolume();
-}
-
-function VolumeDown() {
-	if (Volume > 5) {
-		var VolStep = VolumeStep;
-	} else {
-		var VolStep = 1;
-	}
-
-	Volume -= VolStep;
-        if (Volume < 0) {
-            Volume = 0;
-        }
-        aos.setVolume(AudioOut, Volume);
-	showVolume();
-}
-
-
-function VolumeMute() {
-	state = aos.getMuteState(AudioOut);
-	aos.setMuteState(AudioOut, !state);
-	mute = 1 - state;
-        osdmute.style.opacity = mute; 
-}
-
-function createEitCache() {
-  try {
-	eitCache = toi.dvbEitService.createInstance();
-  } catch(e) {
-    alert("Failed getting eitCache: " + e);
-  }
-}
-
-function createPlayer() {
-  try {
-    mediaPlayer = toi.mediaService.createPlayerInstance();
-  } catch(e) {
-    alert("Failed creating player: " + e);
-  }
-}
-
-
-function createRecorder() {
-	try {
-		mediaRecorder = toi.mediaService.createRecorderInstance();
-	} catch(e) {
-		alert("Cannot create media recorder: " + e);
-		mediaRecorder = "";
-	}
-}
-
-function createPip() {
-  try {
-    pipPlayer = toi.mediaService.createPipPlayerInstance();
-  } catch(e) {
-    alert("Failed creating PIP player: " + e);
-  }
-}
-
-
-function addPipVideoplane() {
-  var pipVideoDiv = document.getElementById("pipVideoDiv");
-  pipVideoDiv.innerHTML = "<videoplane id='pipvideoplane' index=1 style='position:fixed;left:70%;top:60%;height:20%;width:20%;z-index:50;'></videoplane>";
-  document.body.appendChild(pipVideoDiv);
-}
-
-function pipplay(uri) {
-try {
-	if (pipPlayer.getState() != pipPlayer.STATE_IDLE) {
-		pipPlayer.close();
-	 }
-	if (PIPDelayID != -1) { clearTimeout(PIPDelayID); PIPDelayID = -1; }
-
-	if (ServerAdres[ChanGroup] == "MultiCast" ) {
- 	SI=channels[currChan].split("-");
-	uri = SI[4];
-	} else if (ServerAdres[ChanGroup] == "FullURL" ) {
-	// uri = ready!
-	} else {
-	uri = ServerAdres[ChanGroup] + uri;
-	}
-	pipPlayer.open(uri);
-	PIPDelayID = setTimeout("pipPlayer.play(1000);", 500);
-  } catch (e) {
-    alert("Failed opening PIP stream: " + e);
-    return;
-  }
-}
-
-
-function play(uri) {
-  try {
-    if (initialDelayID != -1) { clearTimeout(initialDelayID); initialDelayID = -1; }
-    if (PlayDelayID != -1) { clearTimeout(PlayDelayID); PlayDelayID = -1; }
-    if (initialDelayPlayID != -1) { clearTimeout(initialDelayPlayID); initialDelayPlayID = -1; }
-
-    if (mediaPlayer.getState() != mediaPlayer.STATE_IDLE) { mediaPlayer.close(); }
-    if (isSchedule) { schedule.style.opacity = 0; isSchedule = 0;}
-    if (epgactive) { osdepginfo.style.opacity = 0; osdepginfonext.style.opacity = 0; epgactive = 0;}
-
-    if (ServerAdres[ChanGroup] == "MultiCast" ) { SI=channels[currChan].split("-"); uri = SI[4];
-    } else if (ServerAdres[ChanGroup] == "FullURL" ) {	// uri = ready!
-    } else { uri = ServerAdres[ChanGroup] + uri; }
-
-    URL = uri;
-    initialDelayPlayID = setTimeout("mediaPlayer.open(URL);mediaPlayer.play(1000);GetEPG(currChan);ExtraStuff();",initialDelayPlay);
-    initialDelayPlay = 500; // wait 500 ms before zap to next channel
-    PlayDelayID = setTimeout("initialDelayPlay = 0;",5000);
-    SetLed(1,1,0);
-
-    if(isFullscreen) { showOSD(); }
-
-    showDisplay(currChan.toString(), false, 100, 0 );
-        
-  } catch (e) {
-    alert("Failed opening stream: " + e);
-    return;
-  }
-}
-
-function preview(urip) {
-	if(SwitchGuide) {
-		play(urip);
-	} else if (PipSwitchGuide && fullupdate) {
-		pipplay(urip);
-	}
-
-	if (isSchedule) { schedule.style.opacity = 0; isSchedule = 0;}
-	if (epgactive) { osdepginfo.style.opacity = 0; osdepginfonext.style.opacity = 0; epgactive = 0;}
-	showChannelList();
-}
-
-
-function onDataAvailableEvent(event) {
-	dataAvailable = event.status;
-	//alert("onDataAvailableEvent : " + event.status);
-	if(event.status==true) {
-		updateStreamInfo(currChan);
-	} 
-}
-
-
-function updateStreamInfo(currStream) {
-
-var streamInfo = mediaPlayer.getStreamInfo();
-var cList = streamInfo.availableComponents;
-var x;
-var xs = 0;
-var subs = "";
-if (currMed!= -1) {
-	if (streamInfo.playTime != -1) {
-		recDura[currMed] = streamInfo.playTime;
-	}
-}
-xx = 0;
-AvInfo[currStream] = "";
-lang_prio_dyn.length = 0;
-subs_prio_dyn.length = 0;
-Radioicon = "\uE00E";
-
-for(x=0; x<cList.length;x++) {
-	if(cList[x].type == 0) {
-	lang_prio_dyn[xx] = mediaPlayer.getAudioStreamInfo(cList[x]).language;
-	AvInfo[currStream] = AvInfo[currStream] + " Audio " + xx + " " + mediaPlayer.getAudioStreamInfo(cList[x]).encoding + " - " + mediaPlayer.getAudioStreamInfo(cList[x]).language + " , ";
-
-	//
-//	alert (mediaPlayer.getAudioStreamInfo(cList[x]).sampleRate);
-//	alert (mediaPlayer.getAudioStreamInfo(cList[x]).channelFormat);
-	// AUDIO_CHANNEL_FORMAT_UNKNOWN = 0
-	// AUDIO_CHANNEL_FORMAT_SINGLE_MONO = 1
-	// AUDIO_CHANNEL_FORMAT_DUAL_MONO = 2
-	// AUDIO_CHANNEL_FORMAT_STEREO = 3
-	// AUDIO_CHANNEL_FORMAT_3_FRONT_1_BACK = 4
-	// AUDIO_CHANNEL_FORMAT_3_FRONT_2_BACK = 5
-	// AUDIO_CHANNEL_FORMAT_3_FRONT_2_BACK_LFE = 6
-	// AUDIO_CHANNEL_FORMAT_3_FRONT_2_SIDE_2_BACK_LFE = 7
-//	alert (mediaPlayer.getAudioStreamInfo(cList[x]).channelMode);
-	// AUDIO_CHANNEL_MODE_NORMAL = 0
-	// AUDIO_CHANNEL_MODE_DUAL_MONO_LEFT_ONLY = 1
-	// AUDIO_CHANNEL_MODE_DUAL_MONO_RIGHT_ONLY = 2
-	// AUDIO_CHANNEL_MODE_DUAL_MONO_STEREO = 3
-	// AUDIO_CHANNEL_MODE_DUAL_MONO_MIXED = 4
-
-	if (lang_prio_dyn[xx] !== "NAR") { 
-		xx += 1; 
-	} else { 
-		lang_prio_dyn.length = xx;
-	}
-
-
-	}
-	if(cList[x].type == 1) {
-	Radioicon = "\uE00F";
-	AvInfo[currStream] = AvInfo[currStream] + " Video " + mediaPlayer.getVideoStreamInfo(cList[x]).encoding + " size : " + mediaPlayer.getVideoStreamInfo(cList[x]).resolutionX + " x " + mediaPlayer.getVideoStreamInfo(cList[x]).resolutionY;
-	if (mediaPlayer.getVideoStreamInfo(cList[x]).aspectRatio == "0") { AvInfo[currStream] = AvInfo[currStream] + " (?:?)"; }
-	if (mediaPlayer.getVideoStreamInfo(cList[x]).aspectRatio == "1") { AvInfo[currStream] = AvInfo[currStream] + " (4:3)"; }
-	if (mediaPlayer.getVideoStreamInfo(cList[x]).aspectRatio == "2") { AvInfo[currStream] = AvInfo[currStream] + " (16:9)"; }
-	}
-
-	if(cList[x].type == 2) {
-		if (xs == 0) { subs = " SUBS : " } else { subs += " , ";}
-		subs_prio_dyn[xs] = mediaPlayer.getSubtitleStreamInfo(cList[x]).language;
-		subs = subs + subs_prio_dyn[xs];
-		xs += 1;
-	}
-
-	if(cList[x].type == 3) {
-	alert("COMPONENT_SUBTITLE_CAPTION");
-	//This is an ARIB specific type of subtitles
-	}
-	if(cList[x].type == 4) {
-	alert("COMPONENT_SUBTITLE_SUPERIMPOSE");
-	//This is an ARIB specific type of subtitles and used mainly for displaying alert messages on screen.
-	}
-	if(cList[x].type == 5) {
-//		alert("TeletextStreamInfo : " + mediaPlayer.getTeletextStreamInfo(cList[x]).language)
-		AvInfo[currStream] += " TXT";
-	}
-
-
-	}
-	AvInfo[currStream] += subs;
-}
-
-
-function VideoOutput() {
-
-videoConfig = vos.getVideoConfiguration();
-
- var session = null;
-  try {
-    var currentOutput = 0; //0 = normaly HDMI
-    displayInfo=videoConfig.getDisplayInfo(videoConfig.getVideoOutputs()[currentOutput]);
-    var desiredMode = VideoOutputModes[Set_Res];
-
-    // create the session
-    session = vos.createVideoConfigurationSession();
-    session.setDefaultVideoMode(videoConfig.getVideoOutputs()[currentOutput], desiredMode);
-    session.apply();
-    session.releaseInstance();
-
-  }
-  catch (e) {
-    if (session != null) {
-      session.releaseInstance();
-    }
-    alert(e);
-  }
-
-setOSDscale();
-
-}
-
-function addzero(zero)
-{
-if (zero<10)
-  {
-  zero="0" + zero;
-  }
-
-return zero;
-}
-
-function ExtraStuff(){
-	if(TimeShift){
-	    initialDelayID = setTimeout("startTimeshiftBuffering();", 5000);
-	}
-	if(testing2) {
-			if (CAdelayID != -1) { clearTimeout(CAdelayID); CAdelayID = -1; switchtimer.style.opacity = 0;}
-		if ( 	(currChan > 10 && currChan < 26 )  || (currChan > 40 && currChan < 50 )   || (currChan > 50 && currChan < 120 ) ||
-			(currChan > 151 && currChan < 200) || (currChan > 604 && currChan < 612 ) || (currChan > 624 && currChan < 631) ||
-			(currChan > 632 && currChan < 700) || (currChan > 8004 && currChan < 8027) )
-		{
-			//Show info if set nonfree
-			switchtimer.style.background = "red";
-			switchtimer.innerHTML = "<pre class=nonfree>\n" + Lang[90] +"\n\n </pre>"; // Non free channel message
-			switchtimer.style.opacity = 1;
-			CAdelayID = setTimeout("switchtimer.style.opacity = 0;",ShowSetTimer);
-		}
-	}
-
-}
-
-function startTimeshiftBuffering() {
-    // check that media player is working
-    if (mediaPlayer.getState() != mediaPlayer.STATE_PLAYING ) {
-      alert("Media Player must be playing when starting timeshift buffering!");
-      return;
-    }
-
-    mediaPlayer.startTimeshiftBuffering(600);
-}
-
-
-function FullScreen() {
-	videoplane.style.width = "100%";
-	videoplane.style.height = "100%";
-	videoplane.style.left = "0px";
-	videoplane.style.top = "0px";
-	if(PipSwitchGuide){
-		if (pipPlayer.getState() != pipPlayer.STATE_IDLE) {
-			pipPlayer.close();
-		 }
-	}
-}
-
-
-function onKeyDown(event) {
-//show key info, needed when a 'new' remote is used
-//alert( "keyIdentifier  : " + event.keyIdentifier +"\n"+"ctrlKey    : " + event.ctrlKey +"\n"+"altKey     : " + event.altKey  +"\n"+"shiftKey  : " + event.shiftKey +"\n"+"RAW  : " + event );
-
-    if(isVisible) {
- 	onKeyTeletext(event.keyIdentifier);
-    } else if(isSetupMenu) {
-	onKeyMenu(event.keyIdentifier);
-    } else if(isMediaMenu) {
-	onKeyMedia(event.keyIdentifier);
-    } else {
-
-    switch(event.keyIdentifier) {
-
-    case "ChannelUp":
-    case "Up":
-	if(isFullscreen) {
-		count = 0; Change = 0;
-		prevChan = currChan;
-		do
-		{
-		        incChan(1);
-		}
-		while (!channels[currChan]);
-	        play(channels[currChan]);
-	} else {
-	// swap up <> down in guide mode
-		count = 0; Change = 0;
-		do
-		{
-		        decChan(1);
-		}
-		while (!channels[currChan]);
-	        preview(channels[currChan]);
-	}
-        break;
-    case "ChannelDown":
-    case "Down":
-	if(isFullscreen) {
-		count = 0; Change = 0;
-		prevChan = currChan;
-		do
-		{
-		        decChan(1);
-		}
-		while (!channels[currChan]);
-	        play(channels[currChan]);
-	} else {
-	// swap up <> down in guide mode
-		count = 0; Change = 0;
-		do
-		{
-		        incChan(1);
-		}
-		while (!channels[currChan]);
-	        preview(channels[currChan]);
-	}
-	break;
-    case "Left":
-	count = 0; Change = 0;
-	if(isFullscreen) {
-	defChan[ChanGroup] = currChan;
-	do
-		{
-		do
-			ChanGroup -= 1;
-		while (protChn[ChanGroup] == 1 && ShowProtectedChannels == 1) 
-		if (ChanGroup < 0) {
-			ChanGroup = 9;
-			}
-		}
-	while (!minChan[ChanGroup]);
-	currChan = defChan[ChanGroup];
-	play(channels[currChan]);
-	} else {
-	prevChan = currChan;
-	if (currChan > (minChan[ChanGroup] + 8)) {
-	decChan(9);
-	} else {
-		currChan = baseChn[ChanGroup] + (maxChan[ChanGroup] - currChan);
-	}
-	do
-	{
-	        decChan(1);
-	}
-	while (!channels[currChan]);
-        preview(channels[currChan]);
-	}
-	break;
-    case "Right":
-	count = 0; Change = 0;
-	if(isFullscreen) {
-	defChan[ChanGroup] = currChan;
-	do
-		{
-		do
-			ChanGroup += 1;
-		while (protChn[ChanGroup] == 1 && ShowProtectedChannels == 1)
-		if (ChanGroup > 9) {
-			ChanGroup = 0;
-			}
-		}
-	while (!minChan[ChanGroup]);
-	currChan = defChan[ChanGroup];
-	play(channels[currChan]);
-
-	} else {
-	prevChan = currChan;
-	if (currChan < (maxChan[ChanGroup] - 9 )) {
-	incChan(9);
-	} else {
-		currChan = baseChn[ChanGroup] + (maxChan[ChanGroup] - currChan);
-	}
-	do
-	{
-	        incChan(1);
-	}
-	while (!channels[currChan]);
-        preview(channels[currChan]);
-	}
-	break;
-  case "Red":
-	if(isFullscreen) {
-		if(showClock == 0 )	{
-		 	showDisplay("", true, 80, 1 );
-			showClock = 1;
-		} else if(showClock == 1 ) {
-			showClock = 0;
-			showDisplay(currChan.toString(), false, 100, 0 );
-		}
-	} else if(isSchedule == 0){
-	   if(NowNext) {	
-		settimer(EPG[1][2][currChan],EPG[1][1][currChan],0,1,"",(EPG[1][4][currChan] + EPG[1][5][currChan]),EPG[1][6][currChan].toString());
-	   }
-	}
-        break;
-   case "Green":
-	if(isFullscreen) {
-		if(!epgactive) {
-			if (audio_dyn < (lang_prio_dyn.length -1)) { audio_dyn += 1} else { audio_dyn = 0 }
-			if (lang_prio_dyn.length > 1) {
-				is.setObject("cfg.media.audio.languagepriority",lang_prio_dyn[audio_dyn] + "," + lang_prio[audio],is.STORAGE_PERMANENT);
-				osdlang.style.opacity = 1;
-				osdlang.innerHTML = "<img src='unmute.png'> " + lang_prio_dyn[audio_dyn] + " ";
-				setTimeout("osdlang.style.opacity = 0; ", 3000);
-			}
-		}
-	} else if(isSchedule == 0 && !epgactive){
-		colorkeys.innerHTML = "<span class=redkey> " +  NN[3 + NowNext] + " </span><span class=greenkey > " + NN[NowNext] + " </span><span class=yellowkey> " + NN[2] + " </span><span class=bluekey> " + NN[5] + " </span>";
-		NowNext = 1 - NowNext;
-		showChannelList();
-	}
-
-	if(epgactive) {
-		NowNext = 1 - NowNext;
-		osdepginfo.style.opacity = 1 - osdepginfo.style.opacity ;
-		osdepginfonext.style.opacity = 1 - osdepginfo.style.opacity;
-	}
-
-
-	break;
-   case "Yellow":
-	if(isFullscreen) {
-		if(epgactive) {
-			osdepginfo.style.opacity = 0;
-			osdepginfonext.style.opacity = 0;
-			epgactive = 0;
-		}
-		medialist.style.opacity = 0.9;
-		set_yellow_key = 1;
-		setTimeout("getSchedule(currChan);LoadMediaSettings();",100);
-	} else {
-		GetSchedule(currChan,15);
-		schedule.style.opacity = 1 - schedule.style.opacity;
-		isSchedule = schedule.style.opacity;
-		if(isSchedule == 1){
-			colorkeys.innerHTML = "<span class=redkey> " +  NN[4] + " </span><span class=greenkey > " + NN[4] + " </span><span class=yellowkey> " + NN[6] + " </span><span class=bluekey> " + NN[4] + " </span>";
-			} else {
-			colorkeys.innerHTML = "<span class=redkey> " +  NN[3 + (1 - NowNext)] + " </span><span class=greenkey > " + NN[1 - NowNext] + " </span><span class=yellowkey> " + NN[2] + " </span><span class=bluekey> " + NN[5] + " </span>";
-			}
-	}
-	break;
-
-   case "Info":
-   case "Blue":
-   case KEY_EPG:
-//	if(isFullscreen) {
-//	RestartPortal();
-//	} else 
-	if(isSchedule == 0) {
-			if(!epgactive) {
-			updateOSDtime(currChan);
-			SetOsdInfo();
-				if(isFullscreen) { NowNext = 0;}
-				if (NowNext) {
-					osdepginfo.style.opacity = 0;
-					osdepginfonext.style.opacity = 1;
-				} else {
-					osdepginfo.style.opacity = 1;
-					osdepginfonext.style.opacity = 0;
-				}			
-			epgactive = 1;		
-			} else {
-			osdepginfo.style.opacity = 0;
-			osdepginfonext.style.opacity = 0;
-			epgactive = 0;
-			}
-//		setTimeout("epgactive = 0; osdepginfo.style.opacity = 0; osdepginfonext.style.opacity = 0;", 5000);
-	}
-	break;
-   case "BrowserBack":
-	if(count) {
-		count = 0;
-		osdmain.style.opacity = 0;
-		if(isFullscreen) {
-			showDisplay(currChan.toString(), false, 100, 0 );
-		}
-		Change = 0;
-	} else {
-		if(isSchedule) {
-			isSchedule = 0;
-			schedule.style.opacity = 0;
-			colorkeys.innerHTML = "<span class=redkey> " +  NN[3 + (1 - NowNext)] + " </span><span class=greenkey > " 
-				+ NN[1 - NowNext] + " </span><span class=yellowkey> " + NN[2] + " </span><span class=bluekey> " 
-				+ NN[5] + " </span>";
-			break;
-		}
-
-		if(isFullscreen) {
-		//SHOW epg info
-			if(!epgactive) {
-//			SetOsdInfo();
-//			osdepginfo.style.opacity = 1;
-//			osdepginfonext.style.opacity = 0;
-//			epgactive = 1;		
-			} else {
-			osdepginfo.style.opacity = 0;
-			osdepginfonext.style.opacity = 0;
-			epgactive = 0;
-			}
-//		setTimeout("epgactive = 0; osdepginfo.style.opacity = 0; osdepginfonext.style.opacity = 0;", 5000);
-		} else if(!isFullscreen){
-			osdepginfo.style.opacity = 0;
-			osdepginfonext.style.opacity = 0;
-			epgactive = 0;
-			isFullscreen = 1;
-			FullScreen();
-			currChan = preChan;
-			ChanGroup = preGrp;
-		}
-	}
-	break;
-   case "Enter":
-	// OK key on frontpanel
-	if (experimental) {
-		RestartPortal();
-	}
-   case KEY_OK:
-	if(isFullscreen) {
-	// fullscreen
-		if (osdmain.style.opacity !== 0) {opacity = 0; OSD(opacity);}
-		if(count == 0) {
-			if (osdtimeout) {
-				clearTimeout(osdtimeout);
-				osdtimeout = 0;
-				opacity = 0;
-				OSD(opacity);
-				break;
-				}
-		osdepg.innerHTML = "";
-		showOSD();
-	        GetEPG(currChan);
-		updateOSDtime(currChan);
-		osdepg.innerHTML = "<p>" + EPG[0][7][currChan] + "</p>\n<p>" + EPG[1][7][currChan] + "</p>";
-//		showOSD();
-		} else {
-			CheckChannel(Change);
-			count = 0;
-			if(ChangeOK) { 	
-				play(channels[currChan]);
-				ChangeOK = 0;
-				}
-		  }
-	} else {
-	// if not fullscreen
-		if(count){
-			CheckChannel(Change);
-			count = 0;
-			if(ChangeOK) { 	
-				preview(channels[currChan]);
-				ChangeOK = 0;
-				}
-		  } else {
-		isFullscreen = 1;
-		FullScreen();
-		if(isSchedule) { isSchedule = 0; schedule.style.opacity = 0; }
-	        play(channels[currChan]);
-		}
-	}
-        break;
-
-   case "Menu":
-		if(isFullscreen) {
-			if(count) {
-				count = 0;
-				osdmain.style.opacity = 0;
-				showDisplay(currChan.toString(), false, 100, 0 );
-				Change = 0;
-			}
-		osdepginfo.style.opacity = 0;
-		osdepginfonext.style.opacity = 0;
-		isSetupMenu = 1;
-		mainmenu.style.opacity = 0.8;
-		menu = 0;
-		InitMenu(menu);
-		}
-		break;
-   case KEY_FAV:
-   case "Scroll":
-		if(isFullscreen) {
-			NowNext = 0;
-			videoplane.style.width = (320*Xfactor[Set_Res])+"px";
-			videoplane.style.height = (240*Yfactor[Set_Res])+"px";
-			videoplane.style.left = (380*Xfactor[Set_Res])+"px";
-			videoplane.style.top = (300*Yfactor[Set_Res])+"px";
-			isFullscreen = 0;
-			ClearScreen();
-			channellist.style.opacity = 1;
-			colorkeys.innerHTML = "<span class=redkey> " +  NN[3 + (1 - NowNext)] + " </span><span class=greenkey > " 
-				+ NN[1 - NowNext] + " </span><span class=yellowkey> " + NN[2] + " </span><span class=bluekey> " 
-				+ NN[5] + " </span>";
-			colorkeys.style.opacity = 1;
-			showChannelList();
-			if(!SwitchGuide) {
-			preChan = currChan;
-			preGrp = ChanGroup;
-			}
-		} else {
-			isSchedule = 0;
-			schedule.style.opacity = 0;
-			isFullscreen = 1;
-			FullScreen();
-			if(!SwitchGuide) {
-			currChan = preChan;
-			ChanGroup = preGrp;
-			}
-		}
-		break;
-    case "TV":
-    case "RADIO":
-	if(isFullscreen) {
-		if(ChanGroup !== 9) {
-		//Radio
-		defChan[ChanGroup] = currChan;
-		ChanGroup = 9;
-		currChan = defChan[9];
-		} else {
-		//TV
-		defChan[ChanGroup] = currChan;
-		ChanGroup = 0;
-		currChan = defChan[0];
-		}
-		isSetupMenu = 0;
-		mainmenu.style.opacity = 0;
-		play(channels[currChan]);
-	}
-	break;
-    case KEY_0:
-	digit = 0;
-	Makedigit();
-        break;
-    case KEY_1:
-	digit = 1;
-	Makedigit();
-        break;
-    case KEY_2:
-	digit = 2;
-	Makedigit();
-        break;
-    case KEY_3:
-	digit = 3;
-	Makedigit();
-        break;
-    case KEY_4:
-	digit = 4;
-	Makedigit();
-        break;
-    case KEY_5:
-	digit = 5;
-	Makedigit();
-        break;
-    case KEY_6:
-	digit = 6;
-	Makedigit();
-        break;
-    case KEY_7:
-	digit = 7;
-	Makedigit();
-        break;
-    case KEY_8:
-	digit = 8;
-	Makedigit();
-        break;
-    case KEY_9:
-	digit = 9;
-	Makedigit();
-        break;
-
-   case KEY_A:// |> key on old long kpn 1710/1760 remote
-        break;
-   case KEY_B:// hh key on old long kpn 1710/1760 remote
-	if (prevChan !== currChan) {
-		currChan = [prevChan, prevChan = currChan][0];
-		count = 0;
-		play(channels[currChan]);
-		}
-	break;
-   case KEY_C:// @ key on old long kpn 1710/1760 remote
-	if(isFullscreen && Fav_max_channel !== 0 && ChanGroup !== Fav_group) {
-	timerID = (defChan[Fav_group] - Fav_base - 1); if (timerID < 0) { timerID = 0;}
-	maxTimers = Fav_max_channel;
-	GotoFav(defChan[Fav_group]);
-	} else if(isFullscreen && ChanGroup == Fav_group) {
-	timerID = (currChan - Fav_base - 1);
-	}
-	if(isFullscreen && Fav_max_channel !== 0) {
-		if(count) {
-			count = 0;
-			osdmain.style.opacity = 0;
-			showDisplay(currChan.toString(), false, 100, 0 );
-			Change = 0;
-		}
-		osdepginfo.style.opacity = 0;
-		osdepginfonext.style.opacity = 0;
-		isSetupMenu = 1;
-		mainmenu.style.opacity = 0.8;
-		menu = 10;
-		InitMenu(menu);
-	}
-
-
-        break;
-   case KEY_D:// >@ key on old long kpn 1710/1760 remote
-	if (protChn[ChanGroup] !== 1 && ChanGroup !== Fav_group) {
-		AddtoFav();
-	}
-	break;
-
-   case "Teletext":
-	if(isFullscreen) {
-		ClearScreen();
-		isVisible = 1;
-		setVisible(isVisible);
-		}
-	break;
-    case "VolumeMute":
-	VolumeMute();
-	break;
-    case "VolumeUp":
-	VolumeUp();
-	break;
-    case "VolumeDown":
-	VolumeDown();
-	break;
-
-    case "MediaRewind":
-	if(isFullscreen) {
-	      mediaPlayer.play(mediaPlayer.PACE_REWIND);
-	} else {
-		count = 0; Change = 0;
-		defChan[ChanGroup] = currChan;
-		do {
-			do
-				ChanGroup -= 1;
-			while (protChn[ChanGroup] == 1 && ShowProtectedChannels == 1) 
-			if (ChanGroup < 0) {
-				ChanGroup = 9;
-			}
-		}
-		while (!minChan[ChanGroup]);
-		currChan = defChan[ChanGroup];
-		preview(channels[currChan]);
-	}
-	break;
-    case "MediaForward":
-	if(isFullscreen) {
-	      mediaPlayer.play(mediaPlayer.PACE_FASTFORWARD);
-	} else {
-	count = 0; Change = 0;
-	defChan[ChanGroup] = currChan;
-	do{
-		do
-			ChanGroup += 1;
-		while (protChn[ChanGroup] == 1 && ShowProtectedChannels == 1)
-		if (ChanGroup > 9) {
-			ChanGroup = 0;
-			}
-		}
-	while (!minChan[ChanGroup]);
-	currChan = defChan[ChanGroup];
-        preview(channels[currChan]);
-	}
-	break;
-	case "MediaPlayPause":
-
-		if(isFullscreen && PauseOnServer) {
-		   	if(mediaPlayer.getState() == mediaPlayer.STATE_PLAYING) {
-				isPause = 1;
-				ServerPause();
-				SetLed(1,1,10);
-//				setTimeout("mediaPlayer.play(0);",5000);
-				mediaPlayer.play(0);
-				break;
-			}
-			if(mediaPlayer.getState() == mediaPlayer.STATE_PAUSED || mediaPlayer.getState() == mediaPlayer.STATE_FASTFORWARDING ||
-			   mediaPlayer.getState() == mediaPlayer.STATE_REWINDING) {
-				SetLed(1,1,0);
-				mediaPlayer.play(mediaPlayer.PACE_PLAY);
-				break;
-			}
-
-		}
-
-		if(TimeShift){
-			if(mediaPlayer.getState() == mediaPlayer.STATE_PAUSED || mediaPlayer.getState() == mediaPlayer.STATE_FASTFORWARDING || mediaPlayer.getState() == mediaPlayer.STATE_REWINDING) {
-				SetLed(1,1,0);
-				mediaPlayer.play(mediaPlayer.PACE_PLAY);
-				break;
-			}
-		   	if(mediaPlayer.getState() == mediaPlayer.STATE_PLAYING) {
-				SetLed(1,1,10);
-				mediaPlayer.play(0);
-				break;
-			}
-		}
-		break;
-	case "MediaStop":
-		try {
-		SetLed(1,1,0);
-		if(TimeShift){ mediaPlayer.playFromPosition(mediaPlayer.POSITION_LIVE,mediaPlayer.PACE_PLAY); }
-		} catch(e) {
-			alert(e);
-		}
-	break;
-	case KEY_REC:
-	case KEY_REC2:
-	if(isSchedule == 0) {
-			if(epgactive) {
-				ServerTimer(channels[currChan],EPG[NowNext][6][currChan]);
-				settimer(EPG[NowNext][2][currChan],EPG[NowNext][1][currChan],(EPG[NowNext][3][currChan]*60),2);
-			} else {
-				ServerRecordStart();
-			}
-	}
-//	if(isFullscreen && !epgactive) {
-//		ServerRecordStart();
-//	} else if(isSchedule == 0){
-//		if(NowNext) {
-//		} else {
-//			// make timer for recording
-//			ServerTimer(channels[currChan],EPG[NowNext][6][currChan]);
-//			settimer(EPG[NowNext][2][currChan],EPG[NowNext][1][currChan],(EPG[NowNext][3][currChan]*60),2);
-//		} else {
-//			ServerRecordStart();
-//		}
-//	}
-
-
-	break;
-	case KEY_OPNAMES:
-	case KEY_FILM:
-	case KEY_DVR:
-	if (smartTVplugin) {
-	// jump to recordings menu.
-		if(isFullscreen) {
-			if(count) {
-				count = 0;
-				osdmain.style.opacity = 0;
-				showDisplay(currChan.toString(), false, 100, 0 );
-				Change = 0;
-			}
-		osdepginfo.style.opacity = 0;
-		osdepginfonext.style.opacity = 0;
-		medialist.style.opacity = 0.9;
-		mainmenu.style.opacity = 0;
-		recPath = "/recordings.xml";
-		setTimeout("getRecList();LoadMediaSettings();",100);
-		}
-		break;
-	}
-	default:
-        break;
-    }
-  }
-}
-
-
-function GotoFav(ChanID) {
-		count = 0; Change = 0;
-		prevChan = ""; Fav_key1 = "";
-		defChan[ChanGroup] = currChan;
-		ChanGroup = Fav_group;
-		currChan = ChanID;
-		play(channels[currChan]);
-}
-
-
-function AddtoFav() {
-	Fav_max_channel  += 1;
-	maxChan[Fav_group] = Fav_base + Fav_max_channel;
-	channelsnames[(Fav_base + Fav_max_channel)] = channelsnames[currChan];
-	channels[(Fav_base + Fav_max_channel)] = channels[currChan];
-		is.setObject(("vip.channelsnames." + Fav_max_channel),channelsnames[currChan],is.STORAGE_PERMANENT)
-		is.setObject(("vip.channels." + Fav_max_channel),channels[currChan],is.STORAGE_PERMANENT)
-		is.setObject("vip.fav_max_channel",Fav_max_channel.toString(),is.STORAGE_PERMANENT)
-	settimer(0,channels[currChan],Fav_max_channel ,2);
-}
-
-
-function Read_Fav() {
-	Fav_max_channel = Number(is.getObject("vip.fav_max_channel"));
-	maxChan[Fav_group] = Fav_base + Fav_max_channel;
-		for (var i=1; i<=Fav_max_channel; i++) {
-		channelsnames[(i+Fav_base)] = is.getObject(("vip.channelsnames." + i));
-		channels[(i+Fav_base)] = is.getObject(("vip.channels." + i));
-		}
-}
-
-
-function Makedigit() {
-    if (TimedChangeID != -1) { clearTimeout(TimedChangeID); TimedChangeID = -1; }
-
-	prevChan = currChan;
-	Change = (Change*10) + digit;
-	count += 1;
-	osdmain.style.opacity = isFullscreen; 
-        OSDchannr(Change);
-	if(isFullscreen) {
-		showDisplay((Change.toString()), false, 100, 0 ); 
-	}
-
-    if (count>channeldigits) {
-	CheckChannel(Change);
-	count = 0;
-    } else {
-	TimedChangeID = setTimeout("TimedChange();",ChangeTime);
-    }
-
-    if(ChangeOK) { 
-	if(isFullscreen) {
-	        play(channels[currChan]);
-	} else {
-	        preview(channels[currChan]);
-	}
-	ChangeOK = 0;
-	}
-}
-
-function CheckChannel(CheckThis) {
-// function to check if channel exists
-	CheckThis = baseChn[ChanGroup] + CheckThis;
-	if(channels[CheckThis]) {
-		ChangeOK = 1;
-		currChan = CheckThis;
-	} else {
-		ChangeOK = 0;
-	}
-	if(prevChan == currChan) { 
-	ChangeOK = 0 ;
-	}
-	osdmain.style.opacity = 0;
-	if(isFullscreen) {
-	showDisplay(currChan.toString(), false, 100, 0 );
-	}
-	Change = 0;
-
-}
-
-function TimedChange() {
-  if (count && ChangeTime) {
-	CheckChannel(Change);
-	count = 0;
-	if(ChangeOK) {
-		if(isFullscreen) { 	
-			play(channels[currChan]);
-		} else {
-			preview(channels[currChan]);			
-		}
-		ChangeOK = 0;
-	}
-  }
-}
-
-
-function showDisplay(showtxt,colonState,intensity,currentMode) {
-	if(!showClock){
-		if (Number(showtxt) > 8999 && Number(showtxt) < 10000) { showtxt = "R" + Right(showtxt,3); }
-		if (Number(showtxt) > 9999 && Number(showtxt) < 20000) { showtxt = "F" + Right(showtxt,3); }
-	showtxt = Right(showtxt,4);
-	try {
-	 fps.setSegmentDisplayState(toi.statics.ToiFrontPanelServiceSegmentDisplayState.create(showtxt,colonState,intensity,currentMode));
-	} catch (e) {
-	// Display error, maybe no display...
-	 }
-	}
-}
-
-
-function SetLed(NumLed,color,blinkfreq){
-	var state = toi.statics.ToiFrontPanelServiceLedState.create(color, blinkfreq);
-	fps.setLedState(NumLed, state);
-}
-
-
-function showOSD() {
-	if (osdtimeout) {
-		clearTimeout(osdtimeout);
-	}
-	SetOsdInfo();
-	opacity = 0.8;
-	OSD(opacity);
-	osdtimeout = setTimeout("fadeOut(); osdtimeout = 0;", ShowOsdTime);
-}
-
-function showVolume() {
-	if (osdVolumetimeout) {
-		clearTimeout(osdVolumetimeout);
-	}
-	osdvolume.innerHTML = Lang[1] + " : " + Volume + "% \n\uE007" + (new Array(Volume)).join("\uE008") + (new Array(100 - Volume)).join("\uE009") + "\uE00A";
-	osdvolume.style.opacity = 1;
-	osdVolumetimeout = setTimeout("osdvolume.style.opacity = 0;", ShowOsdTime);
-}
-
-
-function OSD(opacity) {
-    osdmain.style.opacity = opacity;
-}
-
-
-function SetOsdInfo() {
-    OSDchannr(currChan);
-    date_time();
-    OSDhtml();
-    return;
-}
-
-function onCacheUpdated() {
-        GetEPG(currChan);
-	if (osdtimeout) { SetOsdInfo();	} 
-}
-
-function OSDchannr(channr) {
-//	Show logo's
-	if (experimental) {
-//	osdnr.innerHTML = "<img src='" + channels[currChan] + ".logo.jpg' style='width:80%; max-height:100%; position:absolute; left:10%;' >";
-	}
-	osdnr.innerHTML = Right(channr,3);
-}
-
-function OSDhtml(){
-    osdtime.innerHTML = result;
-	if (ShowSource == 1) {
-	    osdname.innerHTML = channels[currChan].split("-")[0] + "\uE003" + Left(channelsnames[currChan],30);
-	} else {
-	    osdname.innerHTML = Left(channelsnames[currChan],30);
-	}
-    osdepg.innerHTML = "<p>" + EPG[0][7][currChan] + "</p>\n<p>" + EPG[1][7][currChan] + "</p>";
-    osdepginfo.innerHTML =  "<p class=epg_head>" + currChan + "\uE003" + channelsnames[currChan] + "</p><p class=epg_avinfo>" + AvInfo[currChan] + "</p><p class=epg_title>" + EPG[0][7][currChan] + EPG[0][9][currChan] + EPG[0][8][currChan] + "</p>\n<p class=epg_info>" + EPG[0][4][currChan] + "</p>\n<p>" + Left(EPG[0][5][currChan],750) + "</p></center>";
-    osdepginfonext.innerHTML =  "<p class=epg_head>"  + currChan + "\uE003" + channelsnames[currChan] + "</p><p class=epg_title>" +  EPG[1][7][currChan] + EPG[1][9][currChan] + EPG[1][8][currChan] + "</p>\n<p class=epg_info>" + EPG[1][4][currChan] + "</p>\n<p>" + Left(EPG[1][5][currChan],750) + "</p></center>";
-}
-
-function updateOSDtime(timchan) {
-
-	tijd = EPG[0][2][timchan];
-	date = new Date(tijd*1000); 
-	tijd = date.toUTCString();
-	tijd = new Date(tijd);
-	dateCurrent = new Date();
-	var EPGminutes = Math.floor((dateCurrent.getTime() - date.getTime()) /1000/60);
-	if (EPGminutes > 1440) { 
-		EPGminutes = 0; // Duration is >24h, maybe current time isn't right.
-	}
-	var tm = tijd.getMinutes();
-	var th = tijd.getHours();
-	th=addzero(th);
-	tm=addzero(tm);
-
-	EPG[0][7][timchan] =  th + ":" + tm + " (" + EPGminutes + " / " + ((EPG[0][3][timchan])-EPGminutes).toFixed(0) + ")" + " " + EPG[0][1][timchan] + " ";
-	if (!EPG[0][2][timchan] || ((EPG[0][3][timchan]-EPGminutes) < 0))
-	{
-		EPG[0][7][timchan] = " ";
-	}
-
-}
-
-
-function settimer(ProgTime,ProgName,ProgDura,SwitchTimer,BackGroundColor,ProgDesc,ProgEvID) {
-
-if (!BackGroundColor) { BackGroundColor = color_default;}
-// 1 - switchonly, 2 - record on server (display info only), 3 - record local
-	if(SwitchTimer == 1) {	
-		  try {
-		    var x = ss.schedule("SwitchOnly","notification", ProgTime , ProgDura);
-		    ss.setParameter(x, "Channel", currChan.toString() );
-		    ss.setParameter(x, "Title", ProgName );
-		    ss.setParameter(x, "Info", ProgDesc);
-		    ss.setParameter(x, "active", "False");
-		    ss.setParameter(x, "Type", "\uE00C"); //Timer Symbol
-		    ss.setParameter(x, "resume", "0");
-		    ss.setParameter(x, "Eventid", ProgEvID);
-
-		  }
-		  catch (e) {
-			    ProgName = "ERROR" ;
-			    BackGroundColor = "color_error";
-		  }
-	} else if(SwitchTimer == 3) {
-		ProgTime -= preRecTime;
-		ProgDura = Number(ProgDura) + (afterRecTime + preRecTime);
-		var y = (new Date().getTime()/1000).toFixed(0); 
-		if(ProgTime < y) { 
-			ProgDura = ProgDura - (y - ProgTime);
-			ProgTime = y; 
-			}
-			
-		  try {
-		    var x = ss.schedule("RecLocal","record_hd_from_ip", ProgTime , ProgDura);
-		    if (x != 0) {
-			    ss.setParameter(x, "Channel", currChan.toString() );
-			    ss.setParameter(x, "Title", ProgName );
-			    ss.setParameter(x, "Info", ProgDesc);
-			    ss.setParameter(x, "active", "False");
-			    ss.setParameter(x, "Type", "\uE00C"); //Timer Symbol
-			    ss.setParameter(x, "resume", "0");
-			    ss.setParameter(x, "Eventid", ProgEvID);
-		    } else {
-			    ProgName = "ERROR" ;
-			    BackGroundColor = "color_error";
-		    }
-		  } catch (e) {
-		    alert(e);
-		  }
-	}
-
-	if ( ProgTime == 0 && SwitchTimer == 2 && ProgDura !== 0 ) {
-		var x = Lang[3] + ProgDura + "</pre>";
-	} else if ( ProgTime == 0 && SwitchTimer == 2) {
-		var x = "</pre>";
-	} else {
-		tijd = ProgTime;
-		date = new Date(tijd*1000); 
-		tijd = date.toUTCString();
-		tijd = new Date(tijd);
-		var tm = tijd.getMinutes();
-		var th = tijd.getHours();
-		th=addzero(th);
-		tm=addzero(tm);
-		var x = Lang[4] + th + ":" + tm  + "</pre>";
-	}
-
-//	switchtimer.style.background = BackGroundColor;
-	switchtimer.innerHTML = "<pre class=" + BackGroundColor + ">" + Lang[2] + Left(ProgName,30) + "\n" + Lang[3] + channelsnames[currChan] + "\n" + x + "</pre>";
-	setOSDtimer();
-
-	switchtimer.style.opacity = 1;
-	setTimeout("switchtimer.style.opacity = 0;", ShowSetTimer);
-
-}
-
-
-function setOSDtimer() {
-		// Only for type "SwitchOnly"
-		var today = new Date;
-		today = today / 1000;
-		var x = ss.getBookingIds("SwitchOnly", today, 0)
-		if (x.length !== 0) {
-		tijd = ss.getNextStartTime("SwitchOnly");
-		date = new Date(tijd*1000); 
-		tijd = date.toUTCString();
-		tijd = new Date(tijd);
-		var tm = tijd.getMinutes();
-		var th = tijd.getHours();
-		th=addzero(th);
-		tm=addzero(tm);
-		osdtimer.innerHTML = "<p class=osdtimer>" + th + ":" + tm + "</p>";
-		SetLed(0,2,1);
-		switchicon = "\uE00C";
-		osdca.innerHTML = CAicon + switchicon + RECicon;
-		} else {
-		osdtimer.innerHTML = " ";
-		SetLed(0,0,0);
-		switchicon = '\uE003';
-		osdca.innerHTML = CAicon + switchicon + RECicon;
-		}
-}
-
-// Left n characters of str
-function Left(str, n){
-  if (n <= 0)
-    return "";
-  else if (n > String(str).length)
-    return str;
-  else
-    return String(str).substring(0,n);
-}
-
-// Right n characters of str
-function Right(str, n){
-  if (n <= 0)
-    return "";
-  else if (n > String(str).length)
-    return str;
-  else {
-    var iLen = String(str).length;
-    return String(str).substring(iLen, iLen - n);
-  }
-}
-
-function fadeIn() {
-    opacity += 0.2;
-	    OSD(opcity);
-    if (opacity >= 1) {
-	setTimeout("fadeOut()", 200);
-	return;
-    }
-    setTimeout("fadeIn()", 100);
-}
-
-function fadeOut() {
-    opacity -= 0.5;
-	OSD(opacity);
-    if (opacity <= 0) {
-	return;
-    }
-    setTimeout("fadeOut()", 100);
-}
-
-function RestartPortal(){
-
-    try {
-	ids = toi.applicationService.getApplicationIds();
-	for ( i = 0; i < ids.length; ++i ){
-	    info = toi.applicationService.getInfo(ids[i]);
-	    if (info.applicationName == "WebKit Portal"){
-		 dump("Killing app " + ids[i] + ": " + info.applicationName);
-		 toi.applicationService.kill(ids[i]);
-	    }
-	}
-    }
-    catch(e) { dump(e) };
-}
-
-function date_time()
-{
-        date = new Date;
-        year = date.getFullYear();
-        month = date.getMonth();
-        d = date.getDate();
-        day = date.getDay();
-        h = date.getHours();
-        m = date.getMinutes();
-	h=addzero(h);
-	m=addzero(m);
-        result = ''+days[day]+' '+d+' '+months[month]+' '+year+' '+h+':'+m;
-        return;
-}
-
-function date_time_rec()
-{
-        date = new Date(Number(recStrt[currMed])*1000);
-        year = date.getFullYear();
-        month = date.getMonth();
-	month = addzero(month + 1);
-        d = date.getDate();
-	d = addzero(d);
-        day = date.getDay();
-        h = date.getHours();
-        m = date.getMinutes();
-	h = addzero(h);
-	m = addzero(m);
-	if (year!==1970) { 
-        	result = ' ' + d + '-' + month + '-' + year + ' ' + h + ':' + m;
-	} else {
-		result = "";
-	}
-	return;
-}
-
-// EPG Section
-
-function GetEPG(epgchan)
-{
-	EPG[0][7][epgchan] = "";
-	EPGShortnow = "";
-	EPGExtnow = "";
-	EPG[1][7][epgchan] = "";
-	EPGShortnext = "";
-	EPGExtnext = "";
-	SI="";
-  try {
-
-	eitCache.clearServices();
-
-	 StreamInfo(epgchan);
-
-	 eitService = toi.statics.ToiDvbEitCacheServiceItem.create(SI[1],SI[2],SI[3]);
-	 eitCache.addService(eitService);
-	 event = eitCache.getPresentEvent(eitService);
-	if(event.freeCaMode){
-		CAicon = "\uE00D";
-	} else {
-		CAicon = Radioicon;
-	}
-
-		osdca.innerHTML = CAicon + switchicon + RECicon;
-
-	if (event.name)	{
-	 events = eitCache.getEvents(eitService, (Math.round(new Date().getTime()/1000.0)), 2000000000);
- 	    extEventsnow = eitCache.getExtendedEventInfo(eitService, events.infoSequence[0].eventId);
-	    EPGShortnow = extEventsnow.shortInfo;
-	    EPGExtnow = extEventsnow.extendedInfo;
-	    Extok = 1;
-
-	} else { Extok = 0; }
-
-
-
-	EPG[0][1][epgchan] = event.name;
-	EPG[0][2][epgchan] = event.time;
-	EPG[0][3][epgchan] = (event.duration/60);
-//	EPG[0][4][epgchan] = "";
-//	EPG[0][5][epgchan] = "";
-	EPG[0][6][epgchan] = event.eventId;
-	if (event.parentalRating) {
-		EPG[0][8][epgchan] = "<br>(" + Lang[5] + (event.parentalRating + 3) + " )";
-	} else {
-		EPG[0][8][epgchan] = "";
-	}
-
-	if (event.contentNibbles) {
-		connib = event.contentNibbles;
-		Nibbles();
-		EPG[0][9][epgchan] = "<br>" + content;
-	} else {
-		EPG[0][9][epgchan] = "";
-	}
-
-
-	if(EPGShortnow) {
-	EPG[0][4][epgchan] = EPGShortnow;
-	} else {
-	EPG[0][4][epgchan] = "";
-	}
-	if(EPGExtnow) {
-	EPG[0][5][epgchan] = EPGExtnow;
-	} else {
-	EPG[0][5][epgchan] = "";
-	}
-
-	if (EPG[0][5][epgchan] == EPG[0][4][epgchan]) { EPG[0][5][epgchan] = "";}
-
-
-
-	updateOSDtime(epgchan);
-
-	 event = eitCache.getFollowingEvent(eitService);
-	if (Extok) {
-		for (var i = 0; i < events.infoSequence.length && i < 4; i++) {
-	 	    extEvents = eitCache.getExtendedEventInfo(eitService, events.infoSequence[i].eventId);
-			if (extEvents.eventId == event.eventId) {
-			    EPGShortnext = extEvents.shortInfo;
-			    EPGExtnext = extEvents.extendedInfo; 
-			}
-		}
-	}
-
-	EPG[1][1][epgchan] = event.name;
-	EPG[1][2][epgchan] = event.time;
-	EPG[1][3][epgchan] = (event.duration/60);
-//	EPG[1][4][epgchan] = "";
-//	EPG[1][5][epgchan] = "";
-	EPG[1][6][epgchan] = event.eventId;
-	if (event.parentalRating) {
-		EPG[1][8][epgchan] = "<br>(" + Lang[5] + (event.parentalRating + 3) + " )";
-	} else {
-		EPG[1][8][epgchan] = "";
-	}
-
-	if (event.contentNibbles) {
-		connib = event.contentNibbles;
-		Nibbles();
-		EPG[1][9][epgchan] = "<br>" + content;
-	} else {
-		EPG[1][9][epgchan] = "";
-	}
-
-	if(EPGShortnext) {
-	EPG[1][4][epgchan] = EPGShortnext;
-	} else {
-	EPG[1][4][epgchan] = "";
-	}
-	if(EPGExtnext) {
-	EPG[1][5][epgchan] = EPGExtnext;
-	} else {
-	EPG[1][5][epgchan] = "";
-	}
-	
-	if (EPG[1][5][epgchan] == EPG[1][4][epgchan]) { EPG[1][5][epgchan] = "";}
-
-	tijd = event.time;
-	date = new Date(tijd*1000); 
-	tijd = date.toUTCString();
-	tijd = new Date(tijd);
-	var tm = tijd.getMinutes();
-	var th = tijd.getHours();
-	th=addzero(th);
-	tm=addzero(tm);
-	 EPG[1][7][epgchan] = th + ":" + tm + " (" + (event.duration/60).toFixed(0) + ")" + "          " + event.name + " ";
-
-	if (!event.time) 
-	{
-		EPG[1][7][epgchan] = " ";
-	}
-
-
-  } catch(e) {
-    alert("Get EPG problem: " + e);
-    CAicon = "\uE01A";
-  }
-} 
-
-
-function Nibbles() {
-	content = "";
-	if (connib >= 0x00001000 && connib < 0x00002000) { content = CLang[0]; }
-	if (connib >= 0x00002000 && connib < 0x00003000) { content = CLang[10]; }
-	if (connib >= 0x00003000 && connib < 0x00004000) { content = CLang[20]; }
-	if (connib >= 0x00004000 && connib < 0x00005000) { content = CLang[30]; }
-	if (connib >= 0x00005000 && connib < 0x00006000) { content = CLang[40]; }
-	if (connib >= 0x00006000 && connib < 0x00007000) { content = CLang[50]; }
-	if (connib >= 0x00007000 && connib < 0x00008000) { content = CLang[60]; }
-	if (connib >= 0x00008000 && connib < 0x00009000) { content = CLang[70]; }
-	if (connib >= 0x00009000 && connib < 0x0000A000) { content = CLang[80]; }
-	if (connib >= 0x0000A000 && connib < 0x0000B000) { content = CLang[90]; }
-	if (connib >= 0x0000B000 && connib < 0x0000C000) { content = CLang[100]; }
-	// alert(connib);
-}
-
-
-
-function StreamInfo(si) {
-	// EPG Filter
-	// streaminfo
-	// SI[x] 0-sat,1-NID,2-TID,3-SID
- 	SI=channels[si].split("-");
-
-	//default setting : English
-	is.setObject("cfg.locale.ui","eng",is.STORAGE_VOLATILE);
-
-	if(SI[0]=="C") {
-	// Default on Cable - Dutch // Ziggo.
-	is.setObject("cfg.locale.ui","dut",is.STORAGE_VOLATILE);
-	}
-
-	if(SI[0]=="T") {
-	// DVB-T default German.
-	is.setObject("cfg.locale.ui","ger",is.STORAGE_VOLATILE);
-	}
-
-	if(SI[1]=="8720") {
-	// KPN DVB-T (might also be used for some german)
-	is.setObject("cfg.locale.ui","dut",is.STORAGE_VOLATILE);
-	}
-
-	if(SI[0]=="S19.2E") {
-	// Default on 19E German.
-	is.setObject("cfg.locale.ui","ger",is.STORAGE_VOLATILE);
-	}
-
-	if(SI[0]=="S28.2E") {
-	// Default on 28E English
-	is.setObject("cfg.locale.ui","eng",is.STORAGE_VOLATILE);
-	} 
-
-	if(SI[0]=="S42.0E") {
-	is.setObject("cfg.locale.ui","tur",is.STORAGE_VOLATILE);
-	} 
-
-	if(SI[0]=="S42.0E" && SI[3]=="3601") {
-	is.setObject("cfg.locale.ui","eng",is.STORAGE_VOLATILE);
-	} 
-
-	if(SI[1]=="133") {
-	//sky deutchland
-	is.setObject("cfg.locale.ui","DEU",is.STORAGE_VOLATILE);
-	}
-
-	if(SI[2]=="1107") {
-	//Sat1/pro7 deutchland
-	is.setObject("cfg.locale.ui","DEU",is.STORAGE_VOLATILE);
-	}
-
-//	if(SI[2]=="1057") {
-//	//RTL HD transponder
-//	is.setObject("cfg.locale.ui","GER",is.STORAGE_VOLATILE);
-//	}
-
-//	if(SI[2]=="1057" && SI[3]=="61204") {
-//	//Sport1 HD (daytime only?)
-//	is.setObject("cfg.locale.ui","DEU",is.STORAGE_VOLATILE);
-//	}
-
-	if(SI[2]=="1055" || SI[2]=="1053" || SI[2]=="1041" || SI[2]=="1017" || SI[2]=="1109") {
-	//HD+ transponder
-	is.setObject("cfg.locale.ui","DEU",is.STORAGE_VOLATILE);
-	}
-
-	if(SI[0]=="S13.0E" && (SI[2]=="1600" || SI[2]=="1000" || SI[2]=="1500" || SI[2]=="1300" || SI[2]=="300" || SI[2]=="1100" )) {
-	//NC+ (Polish)
-	is.setObject("cfg.locale.ui","pol",is.STORAGE_VOLATILE);
-	}
-
-	if(SI[0]=="S13.0E" && (SI[2]=="11200" || SI[2]=="400" || SI[2]=="12000" || SI[2]=="11400" || SI[2]=="11900" || SI[2]=="11600" )) {
-	//NC+ (Polish)
-	is.setObject("cfg.locale.ui","pol",is.STORAGE_VOLATILE);
-	}
-
-	if(SI[0]=="S13.0E" && (SI[2]=="11000" || SI[2]=="1400")) {
-	//NC+ (Polish)
-	is.setObject("cfg.locale.ui","pol",is.STORAGE_VOLATILE);
-	}
-
-	if(SI[1]=="113") {
-	//PolSat
-	is.setObject("cfg.locale.ui","pol",is.STORAGE_VOLATILE);
-	}
-
-	if((SI[0]=="S19.2E" && SI[2]=="1059") ) {
-		//TVP transponder
-		is.setObject("cfg.locale.ui","pol",is.STORAGE_VOLATILE);
-	}
-
-	if(SI[1]=="64511") {
-	//sky Italia
-	is.setObject("cfg.locale.ui","ita",is.STORAGE_VOLATILE);
-	}
-
-	if(SI[0]=="S13.0E" && (SI[2]=="5400" || SI[2]=="12400" || SI[2]=="65419" || SI[2]=="65417" )) {
-	//Rai Italia
-	is.setObject("cfg.locale.ui","ita",is.STORAGE_VOLATILE);
-	}
-
-	if(SI[1]=="53" ) {
-	//Canal Digitaal/ TV Vlaanderen 
-	is.setObject("cfg.locale.ui","dut",is.STORAGE_VOLATILE);
-	}
-
-	if(SI[0]=="S19.2E" && SI[2]=="1048" && SI[3]=="4320" ) {
-	//BVN
-	is.setObject("cfg.locale.ui","dut",is.STORAGE_VOLATILE);
-	}
-
-
-	if(SI[1]=="54") {
-	//ZON / 30W
-	is.setObject("cfg.locale.ui","eng",is.STORAGE_VOLATILE);
-	}
-
-	if(SI[1]=="83") {
-	//MEO / 30W
-	is.setObject("cfg.locale.ui","por",is.STORAGE_VOLATILE);
-	}
-
-	if(SI[1]=="49") {
-	//Digital 30W
-	is.setObject("cfg.locale.ui","spa",is.STORAGE_VOLATILE);
-	}
-
-	if(SI[1]=="3" && ( SI[2]=="3202" || SI[2]=="3208" || SI[2]=="3211" || SI[2]=="3222" || SI[2]=="3225") ) {
-	//Canal Digitaal/ TV Vlaanderen (NID:3 is used for more than only CDS/TVV on 23East)
-	is.setObject("cfg.locale.ui","dut",is.STORAGE_VOLATILE);
-	}
-
-	if(SI[1]=="3" && SI[2]=="3208" && SI[3]=="7037") {
-	// Some other EPG
-	is.setObject("cfg.locale.ui","eng",is.STORAGE_VOLATILE);
-	}
-
-	if(SI[1]=="3" && ( SI[2]=="3217") ) {
-	// 23E - Deluxe HD
-	is.setObject("cfg.locale.ui","DEU",is.STORAGE_VOLATILE);
-	}
-
-	if(SI[1]=="3" && SI[2]=="3212" && ( SI[3]=="14052" || SI[3]=="14055" ) ) {
-	is.setObject("cfg.locale.ui","eng",is.STORAGE_VOLATILE);
-	}
-
-	if(SI[1]=="3" && ( SI[2]=="3205" || SI[2]=="3209" || SI[2]=="3210" || SI[2]=="3221" || SI[2]=="3219" || SI[2]=="3226")) {
-	//Canal Digitaal/ TV Vlaanderen use CZE channels on 23East
-	// Strangly set filter to cze but epg is in Dutch. (But not for JimJam)
-	is.setObject("cfg.locale.ui","cze",is.STORAGE_VOLATILE);
-	}
-
-	if(SI[1]=="3" && SI[2]=="3211" && ( SI[3]=="20863" || SI[3]=="20865") ) {
-	//MGM & Film+ CZ
-	is.setObject("cfg.locale.ui","cze",is.STORAGE_VOLATILE);
-	}
-
-	if((SI[0]=="S13.0E" && SI[3]=="14003") || (SI[0]=="S13.0E" && SI[3]=="14009") || (SI[0]=="S13.0E" && SI[3]=="14051") || (SI[0]=="S13.0E" && SI[3]=="951")) {
-	//Swiss ITA channels
-		is.setObject("cfg.locale.ui","ita",is.STORAGE_VOLATILE);
-	}
-
-	if((SI[0]=="S13.0E" && SI[2]=="12800")) {
-		is.setObject("cfg.locale.ui","eng",is.STORAGE_VOLATILE);
-	}
-
-	if((SI[0]=="S13.0E" && SI[3]=="14002") || (SI[0]=="S13.0E" && SI[3]=="14008") || (SI[0]=="S13.0E" && SI[3]=="17203") || (SI[0]=="S13.0E" && SI[3]=="17204") ) {
-	//Swiss FRA channels
-		is.setObject("cfg.locale.ui","fra",is.STORAGE_VOLATILE);
-	}
-
-	if((SI[0]=="S13.0E" && SI[3]=="17201") || (SI[0]=="S13.0E" && SI[3]=="17202") || (SI[0]=="S13.0E" && SI[3]=="901") || (SI[0]=="S13.0E" && SI[3]=="907") || (SI[0]=="S13.0E" && SI[3]=="911") ) {
-	//Swiss GER channels
-		is.setObject("cfg.locale.ui","ger",is.STORAGE_VOLATILE);
-	}
-
-	if((SI[0]=="S19.2E" && SI[2]=="1111" && SI[3]=="7290") ) {
-		//Sky News on WDR HD transponder
-		is.setObject("cfg.locale.ui","eng",is.STORAGE_VOLATILE);
-	}
-
-	if(SI[0]=="S19.2E" && ( (SI[2]=="1018") || (SI[2]=="1020") || (SI[2]=="1022") || (SI[2]=="1024") || (SI[2]=="1026") || (SI[2]=="1068") || (SI[2]=="1070") || (SI[2]=="1072") || (SI[2]=="1074") || (SI[2]=="1076") || (SI[2]=="1080") || (SI[2]=="1084") || (SI[2]=="1086") || (SI[2]=="1090") || (SI[2]=="1092") || (SI[2]=="1094") || (SI[2]=="1096") || (SI[2]=="1100") || (SI[2]=="1102") || (SI[2]=="1106") || (SI[2]=="1110") || (SI[2]=="1112") || (SI[2]=="1114") || (SI[2]=="1116") || (SI[2]=="1118") || (SI[2]=="1120"))) {
-	//CanalSat S19.2
-		is.setObject("cfg.locale.ui","fra",is.STORAGE_VOLATILE);
-	}
-
-	// MTV transponder 1078 / 1066
-	if(SI[0]=="S19.2E" && SI[2]=="1078" && ( SI[3]=="28674" || SI[3]=="28675" || SI[3]=="28677" )) {
-	//Nick JR France
-		is.setObject("cfg.locale.ui","fra",is.STORAGE_VOLATILE);
-	}
-	if(SI[0]=="S19.2E" && SI[2]=="1078" && SI[3]=="28679") {
-	//Nick NL
-		is.setObject("cfg.locale.ui","dut",is.STORAGE_VOLATILE);
-	}
-	if(SI[0]=="S19.2E" && SI[2]=="1078" && ( SI[3]=="28673" || SI[3]=="28676" )) {
-	//Deutsch
-		is.setObject("cfg.locale.ui","ger",is.STORAGE_VOLATILE);
-	}
-
-	if(SI[0]=="S19.2E" && SI[2]=="1066") {
-		is.setObject("cfg.locale.ui","eng",is.STORAGE_VOLATILE);
-	}
-	if(SI[0]=="S19.2E" && SI[2]=="1066" && ( SI[3]=="28652" || SI[3]=="28661" )) {
-		is.setObject("cfg.locale.ui","fra",is.STORAGE_VOLATILE);
-	}
-
-	//Canal Sat 
-	if(SI[0]=="S19.2E" && SI[1]=="1" && SI[2]=="1088" ) {
-	is.setObject("cfg.locale.ui","fre",is.STORAGE_VOLATILE);
-	}
-
-	if(SI[0]=="S13.0E" && SI[1]=="319") {
-	is.setObject("cfg.locale.ui","fre",is.STORAGE_VOLATILE);
-	}
-
-	//Euronews / Eurosport
-	if(SI[0]=="S13.0E" && SI[1]=="318" && SI[2]=="200") {
-	is.setObject("cfg.locale.ui","fra",is.STORAGE_VOLATILE);
-	}
-
-	//bloomberg 19.2E
-	if(SI[0]=="S19.2E" && SI[2]=="1026" && SI[3]=="10067") {
-	is.setObject("cfg.locale.ui","eng",is.STORAGE_VOLATILE);
-	}
-
-	//Canal+
-	if(SI[0]=="S19.2E" && SI[1]=="1" && SI[2]=="1060" ) {
-	is.setObject("cfg.locale.ui","spa",is.STORAGE_VOLATILE);
-	}
-
-	//Russian
-	if(SI[0]=="S13.0E" && SI[2]=="8100") {
-		is.setObject("cfg.locale.ui","ger",is.STORAGE_VOLATILE);
-		//doesn't work but dvbsnoop does show 'ISO639_2_language_code:  ger' 
-	}
-
-
-}
-
-
-// End of EPG section
-
-
-// TeleTXT section
-
-function embedTeletextPlugin() {
-  teletext = document.createElement("embed");
-  teletext.id = "teletext";
-  teletext.type = "application/motorola-teletext-plugin";
-  teletext.style.position = "absolute";
-  teletext.style.width = "100%";
-  teletext.style.height = "100%";
-  teletext.style.top = "10px"; // has to be 1 rather than 0
-  teletext.style.left = "10px"; // has to be 1 rather than 0
-  teletext.style.zIndex = "501";
-  return teletext;
-}
-
-
-function setVisible(isVisible) {
-  if (isVisible) {
-    videoplane.style.width = "50%";
-    videoplane.style.left = "50%";
-    document.body.appendChild(teletext);
-    teletext.style.width = "50%";
-    teletext.style.visibility = "visible";
-    channellist.style.visibility = "hidden";
-    colorkeys.style.visibility = "hidden";
-  } else {
-    teletext.style.visibility = "hidden";
-    channellist.style.visibility = "visible";
-    colorkeys.style.visibility = "visible";
-  }
-}
-
-
-function onKeyTeletext(keyCode) {
-  switch(keyCode) {
-    case "Left":
-      teletext.api.gotoNextPage();
-    break;
-    case "Right":
-      teletext.api.gotoPreviousPage();
-    break;
-    case "Red":
-      teletext.api.inputRedKey();
-    break;
-    case "Green":
-      teletext.api.inputGreenKey();
-    break;
-    case "Yellow":
-      teletext.api.inputYellowKey();
-    break;
-    case "Blue":
-      teletext.api.inputCyanKey();
-    break;
-    case "MediaRewind":
-      teletext.api.gotoPreviousSubpage();
-    break;
-    case "MediaForward":
-      teletext.api.gotoNextSubpage();
-    break;
-    case "MediaStop":
-	teletext.style.width = "100%";
-	teletext.api.transparent = !teletext.api.transparent;
-	FullScreen();
-    break;
-    case "BrowserBack":
-    case "Teletext":
-	isVisible = 0;
-	FullScreen();
-	setVisible(isVisible);		
-    break;
-
-    case "TV":
-      teletext.api.gotoIndexPage();
-    break;
-
-	case KEY_0:
-	    teletext.api.inputDigit(0);
-	break;
-	case KEY_1:
-	    teletext.api.inputDigit(1);
-	break;
-	case KEY_2:
-	    teletext.api.inputDigit(2);
-	break;
-	case KEY_3:
-	    teletext.api.inputDigit(3);
-	break;
-	case KEY_4:
-	    teletext.api.inputDigit(4);
-	break;
-	case KEY_5:
-	    teletext.api.inputDigit(5);
-	break;
-	case KEY_6:
-	    teletext.api.inputDigit(6);
-	break;
-	case KEY_7:
-	    teletext.api.inputDigit(7);
-	break;
-	case KEY_8:
-	    teletext.api.inputDigit(8);
-	break;
-	case KEY_9:
-	    teletext.api.inputDigit(9);
-	break;
-
-
-
-  }
-}
-
-// end of TeleTXT section
-
-
-// Menu section
-
-function onKeyMenu(keyCode) {
-  switch(keyCode) {
-    case "BrowserBack":
-	if ((menu == 5 || menu == 7) && osdepginfo.style.opacity == 1) {
-		osdepginfo.style.opacity = 0;
-	} else if (menu == 10 || menu == MainMenu) {
-		isSetupMenu = 0;
-		mainmenu.style.opacity = 0;
-		osdepginfo.style.opacity = 0;
-	} else if (menu !== MainMenu) {
-		if (menu == 3 ) { isFullscreen = 0; play(channels[currChan]); isFullscreen = 1;MPDListener = 0;}
-		menu = MainMenu;
-		InitMenu(menu);
-	}
-	break;
-    case "Menu":
-	if (menu == 3 ) { play(channels[currChan]);MPDListener = 0;}
-	isSetupMenu = 0;
-	mainmenu.style.opacity = 0;
-	osdepginfo.style.opacity = 0;
-    break;
-
-    case "Left":
-    break;
-    case "Right":
-    break;
-    case "Up":
-	if (menu == 2) {
-	    timerID -= 1;
-		    if (timerID < 1) { timerID = 1; }
-	} else 	if (menu == 5 || menu == 7 || menu == 10) {
-	    timerID -= 1;
-		    if (timerID < 0) { timerID = 0; }
-	}
-		InitMenu(menu);
-    break;
-    case "Down":
-	if (menu == 2) {
-	    timerID += 1;
-		var x = ss.getBookingIds("*", 0, 0);
-		    if (timerID > x.length ) { timerID = x.length; }
-	} else 	if (menu == 5 || menu == 7 || menu == 10) {
-	    timerID += 1;
-			if (timerID > (maxTimers - 1) && maxTimers !== 0) { timerID = maxTimers - 1; }
-	}
-		InitMenu(menu);
-    break;
-    case KEY_OK:
-    	if (menu == 2 && isMediaMenu !== 1) {
-		var x = ss.getBookingIds("*", 0, 0);
-		try {
-			recLink[0] = ss.getParameter(x[timerID-1], "assetURI");
-			recGUID[0] = ss.getParameter(x[timerID-1], "assetId");
-			recChan[0] = ss.getParameter(x[timerID-1], "Channel");
-			recTitl[0] = ss.getParameter(x[timerID-1], "Title");
-			recDura[0] = ss.getBooking(x[timerID-1]).duration;// Is updated if real length is different
-			recStrt[0] = ss.getBooking(x[timerID-1]).start;
-			recDesc[0] = ss.getParameter(x[timerID-1], "Info");
-			recDummy[0] = x[timerID-1];
-			resume_position = Number(ss.getParameter(x[timerID-1], "resume"));
-			localRecording = 1;
-			currMed = 0;
-			getRecOK = 0;
-			LoadMediaSettings();
-			isSetupMenu = 0;
-			medialist.style.opacity = 0;
-			mainmenu.style.opacity = 0;
-			playRec(recLink[0],resume_position);
-			} catch(e) {
-				alert("error : " + e);
-			}
-	}
-	if (menu == 10) { 
-		GotoFav((timerID + Fav_base + 1));
-		isSetupMenu = 0;
-		mainmenu.style.opacity = 0;
-		osdepginfo.style.opacity = 0;
-	}
-	if (menu == 5) {
-		// Show EPG info Timer
-		osdepginfo.style.opacity = 1 - osdepginfo.style.opacity;
-		osdepginfo.innerHTML = "<pre class=epgtimerinfo>\n\n\n" + Lang[0] + "\n\n\n </pre>" ;
-		setTimeout("ShowTimerInfo();",100);
-	}
-	if (menu == 7) {
-		// Show more info Current SearchTimer
-		osdepginfo.style.opacity = 1 - osdepginfo.style.opacity;
-	       	osdepginfo.innerHTML = "<h1 class=mainmenu>" + searchtimersSearch[timerID] + "\n\n\n\n" + Lang[0] + "</h1>" ;
-		setTimeout("ShowSearchTimerInfo();",100);
-	}
-
-    break;
-    case "Red":
-
-    	if (menu == 1) {
-		if (subs_dyn < (subs_prio_dyn.length -1)) { subs_dyn += 1} else { subs_dyn = 0 }
-		if (subs_prio_dyn.length > 0) {
-			is.setObject("cfg.media.subtitling.languagepriority", (subs_prio_dyn[subs_dyn] + "," + subs_prio),is.STORAGE_PERMANENT);
-		} else {
-			is.setObject("cfg.media.subtitling.languagepriority",subs_prio,is.STORAGE_PERMANENT);
-		}
-		InitMenu(menu);
-		break;
-	} else if (menu == 2) {
-		var x = ss.getBookingIds("*", 0, 0);
-		if (x.length > 0) {
-			if (mediaRecorder) {
-			  try {
-				if (ss.getParameter(x[timerID-1], "active") == "True") {
-					ss.setParameter(x[timerID-1], "active", "False");
-					mediaRecorder.close();
-				}
-			  } catch (e) {
-				alert(e);
-			  }
-
-			  try {
-				ams.removeAsset(rma, ss.getParameter(x[timerID-1], "assetId"));
-			  } catch(e) {
-				alert("Error remove asset" + e);
-			  }
-			}
-
-			//Remove timer from schedule DB
-
-			ss.remove(x[timerID-1]);
-			timer[timerID] = "";
-			timerID -= 1; if (timerID < 1) { timerID = 1;}
-			LoadTimers();
-			//if (timer.length !== 0) { do { timerID = timerID + 1; } while (!timer[timerID] && (timerID < timer.length)) }
-			setOSDtimer();
-			InitMenu(menu);
-		}
-	} else 	if (menu == 5 && smartTVplugin) {
-		osdepginfo.style.opacity = 0;
-		mainmenu.innerHTML = "<h1 class=mainmenu>" + Lang[7] + "</h1><pre class=mainmenu>\n\n\n" + Lang[0] + "</pre>";
-		DeleteTimers();
-		setTimeout("LoadTimersServer();InitMenu(menu);",100);
-	} else 	if (menu == 10) {
-		channels[(timerID + Fav_base + 1)]="";
-		channelsnames[(timerID + Fav_base + 1)]="";
-		is.setObject(("vip.channelsnames." + (timerID + 1)),"",is.STORAGE_PERMANENT)
-		is.setObject(("vip.channels." + (timerID + 1)),"",is.STORAGE_PERMANENT)
-		if (Fav_max_channel == (timerID + 1)) { 
-			Fav_max_channel = timerID;
-			maxTimers = Fav_max_channel;
-			is.setObject("vip.fav_max_channel",Fav_max_channel.toString(),is.STORAGE_PERMANENT)
-			timerID -= 1; if (timerID < 0) {timerID = 0;}
-		}
-		setTimeout("InitMenu(menu);",100);
-	}
-    break;
-    case "Green":
-    	if (menu == 1) {
-		Set_Res = Set_Res + 1;
-		if (Set_Res > (VideoOutputModes.length-1)) { Set_Res = 0;}
-		// save the info
-		is.setObject("vip.resolution",Set_Res.toString(),is.STORAGE_PERMANENT)
-
-		VideoOutput();
-		InitMenu(menu);
-	} else if (menu == 2 && mediaRecorder) {
-		var x = ss.getBookingIds("*", 0, 0);
-		if (ss.getBooking(x[timerID-1]).category == "RecLocal") {
-			ss.reschedule(x[timerID-1],"SwitchOnly","notification",ss.getBooking(x[timerID-1]).start,ss.getBooking(x[timerID-1]).duration)
-		} else if (ss.getBooking(x[timerID-1]).category == "SwitchOnly") {
-			ss.reschedule(x[timerID-1],"RecLocal","record_hd_from_ip",ss.getBooking(x[timerID-1]).start,ss.getBooking(x[timerID-1]).duration)
-		}
-		LoadTimers();
-		InitMenu(menu);
-	} else 	if (menu == 5 && smartTVplugin) {
-		activate_timers(timerID);
-		InitMenu(menu);
-	} else 	if (menu == 10) {
-		//move up
-		if (timerID !== 0) {
-			x = timerID + Fav_base + 1;
-			x1 = channels[x];
-			y1 = channelsnames[x];
-			x2 = channels[(x - 1)];
-			y2 = channelsnames[(x - 1)];
-			is.setObject(("vip.channelsnames." + (timerID + 1)),y2,is.STORAGE_PERMANENT)
-			is.setObject(("vip.channels." + (timerID + 1)),x2,is.STORAGE_PERMANENT)
-			is.setObject(("vip.channelsnames." + timerID),y1,is.STORAGE_PERMANENT)
-			is.setObject(("vip.channels." + timerID),x1,is.STORAGE_PERMANENT)
-			channelsnames[x] = y2;
-			channels[x] = x2;
-			channelsnames[(x - 1)] = y1;
-			channels[(x - 1)] = x1;
-			timerID -= 1;
-			setTimeout("InitMenu(menu);",100);
-		}
-	} 
-    break;
-    case "Yellow":
-	if (menu == MainMenu) {
-		menu = 4; // INFO menu
-		InitMenu(menu);
-	} else 	if (menu == 1) {
-		menu = 9; // INFO2 menu
-		InitMenu(menu);
-	} else 	if (menu == 10) {
-		//move down
-		if (timerID !== (maxTimers - 1)) {
-			x = timerID + Fav_base + 1;
-			x1 = channels[x];
-			y1 = channelsnames[x];
-			x2 = channels[(x + 1)];
-			y2 = channelsnames[(x + 1)];
-			is.setObject(("vip.channelsnames." + (timerID + 1)),y2,is.STORAGE_PERMANENT)
-			is.setObject(("vip.channels." + (timerID + 1)),x2,is.STORAGE_PERMANENT)
-			is.setObject(("vip.channelsnames." + (timerID + 2)),y1,is.STORAGE_PERMANENT)
-			is.setObject(("vip.channels." + (timerID + 2)),x1,is.STORAGE_PERMANENT)
-			channelsnames[x] = y2;
-			channels[x] = x2;
-			channelsnames[(x + 1)] = y1;
-			channels[(x + 1)] = x1;
-			timerID += 1;
-			setTimeout("InitMenu(menu);",100);
-		}
-	}
-    break;
-    case "Blue":
-		if (menu == 0) {
-		RestartPortal();
-	} else if (menu == 1) {
-		css_nr += 1;
-		if (css_nr > (cssfile.length - 1)) { css_nr = 0;}
-		loadcss(cssfile[css_nr]);
-		alert(css_nr);
-		alert(cssfile[css_nr]);
-		is.setObject("vip.css_nr",css_nr.toString(),is.STORAGE_PERMANENT)
-		setTimeout("InitMenu(menu);",100);
-	} else if (menu == 2) {
-		// Show Info local timer/ recording
-		var x = ss.getBookingIds("*", 0, 0);
-		var y = Number(ss.getParameter(x[timerID-1], "Channel"));
-		osdepginfo.style.opacity = 1 - osdepginfo.style.opacity;
-	       	osdepginfo.innerHTML = "<pre class=epgtimerinfo>" + ss.getParameter(x[timerID-1], "Title") + "\n " + "\n" + y + " - " + channelsnames[y] + "(" + ss.getParameter(x[timerID-1], "Eventid") + ")" + "\n </pre><p class=epg_info>" + ss.getParameter(x[timerID-1], "Info") + "</p>" ;
-	} else 	if (menu == 5) {
-		// Show EPG info Timer
-		osdepginfo.style.opacity = 1 - osdepginfo.style.opacity;
-		osdepginfo.innerHTML = "<pre class=epgtimerinfo>\n\n\n" + Lang[0] + "\n\n\n </pre>" ;
-		setTimeout("ShowTimerInfo();",100);
-	} else 	if (menu == 7) {
-		// Show info SearchTimers
-	       	osdepginfo.innerHTML = SearchTimer[timerID] ;
-		osdepginfo.style.opacity = 1 - osdepginfo.style.opacity;
-	} else if (menu == 10) {
-		if (protChn[ChanGroup] !== 1 && ChanGroup !== Fav_group) {
-			AddtoFav();
-		}
-	}
-    break;
-    case "MediaRewind":
-	 if (menu == 1) {
-		if (experimental) { // mute output 0 (analog out), keep output 3 'decoder output' unmuted
-			aos.setVolume(0, 0); 
-			}
-	}
-    break;
-    case "MediaForward":
-	 if (menu == 1) {
-		if (experimental) { aos.setVolume(0, 100); }
-	}
-
-    break;
-    case "MediaStop":
-	if (menu == 1) {
-		//set sleep timer.
-		SleepTimer += 15;
-		if (SleepTimerID != -1) {
-		  clearTimeout(SleepTimerID);
-		  SleepTimerID = -1;
-		}
-		if (SleepTimer > 90) {
-			SleepTimer = 0;
-		} else {
-			SleepTimerID = setTimeout("SleepTimer = 0;toi.platformService.setStandby(true);", (SleepTimer * 60 * 1000));
-		}
-	} else if (menu == 2) {
-		var x = ss.getBookingIds("*", 0, 0);
-		var y = Number((new Date().getTime()/1000).toFixed(0)) + 2;
-		//stop current recording after 2 sec.
-		ss.reschedule(x[timerID-1],"RecLocal","record_hd_from_ip", y , 0)
-		ss.setParameter(x[timerID-1], "Type", "\uE01C");
-		LoadTimers();
-	}
-	InitMenu(menu);
-    break;
-    case "Teletext":
-    break;
-    case "TV":
-    break;
-	case KEY_1:
-		if (menu == MainMenu) {
-		menu = 1;
-		} else if (menu == 1) {
-		 ShowSubs = 1 - ShowSubs;
-		 videoplane.subtitles = Boolean(ShowSubs); // Enable subtitles or Disable subtitles
-		 is.setObject("vip.showsubs",ShowSubs.toString(),is.STORAGE_PERMANENT);
-		} else	if (menu == 8) {
-			SetGroup(1);
-		}
-
-	InitMenu(menu);
-	break;
-	case KEY_2:
-		if (menu == MainMenu) {
-			LoadTimers();
-			timerID = 1;
-				//if (timer.length !== 0) { do { timerID += 1; } while (!timer[timerID] && (timerID < timer.length)) }
-			menu = 2;
-		}
-
-		if (menu == 1) {
-			if(subsmode == 0 ) {	
-				is.setObject("cfg.media.subtitling.modepriority","Teletext,DVB",is.STORAGE_PERMANENT);
-				subsmode = 1;
-			} else {
-				is.setObject("cfg.media.subtitling.modepriority","DVB,Teletext",is.STORAGE_PERMANENT);
-				subsmode = 0;
-			}
-		}
-
-		if (menu == 8) {
-		SetGroup(2);
-		}
-		InitMenu(menu);
-	break;
-	case KEY_3:
-	if (menu == 0) {
-			isSetupMenu = 0;
-			medialist.style.opacity = 0.9;
-			mainmenu.style.opacity = 0;
-			setTimeout("getSchedule(currChan);LoadMediaSettings();",100);
-	} else	if (menu == 1) {
-			if (audio < (lang_prio.length -1)) { audio += 1} else { audio = 0 }
-				is.setObject("vip.languagepriority",audio.toString(),is.STORAGE_PERMANENT);
-				is.setObject("cfg.media.audio.languagepriority",lang_prio[audio],is.STORAGE_PERMANENT);
-		InitMenu(menu);
-	} else	if (menu == 8) {
-		SetGroup(3);
-		InitMenu(menu);
-	} 
-
-	break;
-	case KEY_4:
-		if (menu == 0) {
-			isSetupMenu = 0;
-			medialist.style.opacity = 0.9;
-			mainmenu.style.opacity = 0;
-			recPath = "/recordings.xml";
-			setTimeout("getRecList();LoadMediaSettings();",100);
-		} else if (menu == 1) {
-		//Init here. menu = 0 don't need init!
-		menu = 8;
-		InitMenu(menu);
-		} else if (menu == 8) {
-		SetGroup(4);
-		InitMenu(menu);
-		}
-
-	break;
-	case KEY_5:
-		if (menu == MainMenu && (Restfulapiplugin || smartTVplugin)) {
-			mainmenu.innerHTML = "<h1 class=mainmenu>" + Lang[7] + "</h1><pre class=mainmenu>\n\n\n" + Lang[0] + "</pre>";
-			timerID = 0;
-			menu = 5;
-			setTimeout("LoadTimersServer();InitMenu(menu);",200);
-		}
-
-	if (menu == 1) {
-		var x = is.getObject("vip.serveraddress");
-		x = Number(x);
-		if (x < (server_ip_array.length -1)) { x += 1} else { x = 0 }
-		is.setObject("vip.serveraddress",x.toString(),is.STORAGE_PERMANENT);
-
-		server_ip = server_ip_array[x];
-		for (var i=0;i<10;i++) {
-			if (ServerAdres[i] !== "FullURL" && ServerAdres[i] !== "MultiCast") {ServerAdres[i] = server_ip + StreamPort;}
-		}
-		InitMenu(menu);
-		}
-
-		if (menu == 8) {
-		SetGroup(5);
-		InitMenu(menu);
-		}
-	break;
-	case KEY_6:
-	if (menu == 0 && Restfulapiplugin) {
-			isSetupMenu = 0;
-			medialist.style.opacity = 0.9;
-			mainmenu.style.opacity = 0;
-			setTimeout("getServerSchedule();LoadMediaSettings();",100);
-			}
-
-	if (menu == 1) {
-		if(showClock == 0 )	{
-		 	showDisplay("", true, 80, 1 );
-			showClock = 1;
-		} else if(showClock == 1 ) {
-			showClock = 0;
-	 		showDisplay(currChan.toString(), false, 100, 0 );
-		}
-		InitMenu(menu);
-	}
-		if (menu == 8) {
-		SetGroup(6);
-		InitMenu(menu);
-		}
-
-	break;
-	case KEY_7:
-		if (menu == 0 && smartTVplugin) {
-			isSetupMenu = 0;
-			medialist.style.opacity = 0.9;
-			mainmenu.style.opacity = 0;
-			recPath = "/media.xml";
-			setTimeout("getRecList();LoadMediaSettings();",100);
-			}
-
-
-		if (menu == 1) {
-			ShowProtectedChannels = 1 - ShowProtectedChannels;
-			if (ProtectID) { clearTimeout(ProtectID); }
-			if (ShowProtectedChannels == 0 && ProtectTimeOut !== 0 ) {
-				ProtectID = setTimeout("ShowProtectedChannels = 1; if (protChn[ChanGroup] == 1) {ChanGroup = 0; currChan = defChan[ChanGroup]; play(currChan); }",ProtectTimeOut);
-				}
-			if (ShowProtectedChannels == 1 && protChn[ChanGroup] == 1) { ChanGroup = 0; currChan = defChan[ChanGroup]; play(currChan); }
-			isSetupMenu = 0;
-			mainmenu.style.opacity = 0;
-		}
-		if (menu == 8) {
-		SetGroup(7);
-		InitMenu(menu);
-		}
-
-	break;
-	case KEY_8:
-	if (menu == MainMenu && Restfulapiplugin) {
-			mainmenu.innerHTML = "<h1 class=mainmenu>" + Lang[8] + "</h1><pre class=mainmenu>\n\n\n" + Lang[0] + "</pre>";
-			timerID = 0;
-			menu = 7;
-			setTimeout("LoadSearchTimersServer();InitMenu(menu);",200);
-		}
-	if (menu == 1) {
-		if(SwitchGuide == 0 )	{
-			SwitchGuide = 1;
-		} else if(SwitchGuide == 1 ) {
-			SwitchGuide = 0;
-		}
-		InitMenu(menu);
-	}
-	if (menu == 8) {
-		SetGroup(8);
-		InitMenu(menu);
-	}
-
-
-	break;
-	case KEY_9:
-		if ((menu == 0 || menu == 3) && ShowMPD) {
-			menu = 3;
-			playMPD(server_ip + MPDAddress);
-		} else if (menu == 1) {
-			if (lang_nr < (OSDLang.length -1)) { lang_nr += 1} else { lang_nr = 0 }
-			is.setObject("vip.OSDlanguage",lang_nr.toString(),is.STORAGE_PERMANENT);
-			loadjs(langfile[lang_nr]);
-			setTimeout("InitMenu(menu);",100);
-		} else if (menu == 8) {
-			SetGroup(9);
-		}
-
-		InitMenu(menu);
-	break;
-	case KEY_0:
-		if (menu !== MainMenu && menu !== 8 ) {
-			if (menu == 3 ) { isFullscreen = 0; play(channels[currChan]); isFullscreen = 1; MPDListener = 0;}
-			menu = MainMenu;	
-			InitMenu(menu);
-		} else if (menu == 8) {
-			SetGroup(0);
-			InitMenu(menu);
-		} else if (menu == 0) {
-			timerID = 0; maxTimers = Fav_max_channel;
-			menu = 10; if (ChanGroup !== Fav_group) { Fav_key1 = Lang[86]; }
-			InitMenu(menu);
-		}
-
-	break;
-    case "VolumeMute":
-	VolumeMute();
-	break;
-    case "VolumeUp":
-	VolumeUp();
-	break;
-    case "VolumeDown":
-	VolumeDown();
-	break;
-    case KEY_A:// |> key on old long kpn 1710/1760 remote
-        break;
-    case KEY_B:// hh key on old long kpn 1710/1760 remote
-        break;
-    case KEY_C:// @ key on old long kpn 1710/1760 remote
-	if (menu == 10 ) {
-		isSetupMenu = 0;
-		mainmenu.style.opacity = 0;
-		osdepginfo.style.opacity = 0;
-	}
-        break;
-    case KEY_D:// >@ key on old long kpn 1710/1760 remote
-        break;
-
-	default:
-        break;
-  }
-}
-
-
-function InitMenu(menu) {
-
-// 0 = Main Menu
-// 1 = settings menu
-// 2 = Timers menu
-// 3 = MPD Menu
-// 4 = INFO Menu
-// 5 = Timers from Server
-// 6 = Main Menu (when watching recording)
-// 7 = SearchTimers from Server
-// 8 = ChannelGroups enable/disable
-// 9 = INFO2 menu
-// 10 = Favorite Edit menu
-
-osdepginfo.style.opacity = 0;
-
-if(menu == 0) { // Main Menu
-	MainMenu = 0;
-	var htmltext = "<h1 class=mainmenu>" + Lang[9] + "\n ( " + Version + " )</h1><pre class=mainmenu>   1 -" + Lang[10] + "\n   2 -" + Lang[7] + "\n   3 -" + Lang[11];
-	htmltext += "\n   4 -" + Lang[12]; 
-	if (Restfulapiplugin) { 
-		htmltext += "\n   5 -" + Lang[13]; 
-	} else { 
-		htmltext += "<span class=notset>" + "\n   5 -" + Lang[13] + "</span>" ;
-	}
-	if (Restfulapiplugin) { 
-		htmltext += "\n   6 -" + Lang[14]; 
-	} else {
-		htmltext += "<span class=notset>" + "\n   6 -" + Lang[14] + "</span>" ;  
-	}
-	if (smartTVplugin) { 
-		htmltext += "\n   7 -" + Lang[15]; 
-	} else { 
-		htmltext += "<span class=notset>" + "\n   7 -" + Lang[15] + "</span>" ; 
-	}
-	if (Restfulapiplugin) { 
-		htmltext += "\n   8 -" + Lang[16];
-	} else {
-		htmltext += "<span class=notset>" + "\n   8 -" + Lang[16] + "</span>" ;  
-	}
-	if (ShowMPD) { 
-		htmltext += "\n   9 -" + Lang[17]; 
-	} else { 
-		htmltext += "<span class=notset>" + "\n   9 -" + Lang[17] + "</span>" ; 
-	}
-
-	htmltext += "\n   0 - " + Lang[83] + "\n\n   <span class=redkey>\u25CF</span><span class=mainfont> -" + Lang[19] + "</span><span class=greenkey>\u25CF</span><span class=mainfont> -" + Lang[19] + "</span><span class=yellowkey>\u25CF</span><span class=mainfont> -" + Lang[35] + "   </span><span class=bluekey>\u25CF</span><span class=mainfont> -" + Lang[18] + "</pre>";
-	mainmenu.innerHTML = htmltext;
-}
-
-if(menu == 6) { // Main Menu when watching recording
-	MainMenu = 6;
-	mainmenu.innerHTML = "<h1 class=mainmenu>" + Lang[9] + "\n ( " + Version + " )</h1><pre class=mainmenu>   1 -" + Lang[10] + "\n   2 -" + Lang[7] + "\n\n\n   5 -" + Lang[13] + "\n\n\n   8 -" + Lang[16] + "\n\n\n\n   <span class=redkey>\u25CF</span><span class=mainfont> -" + Lang[19] + "</span><span class=greenkey>\u25CF</span><span class=mainfont> -" + Lang[19] + "</span><span class=yellowkey>\u25CF</span><span class=mainfont> -" + Lang[35] + "   </span><span class=bluekey>\u25CF</span><span class=mainfont> -" + Lang[19] + "</pre>";
-}
-
-
-if(menu == 1) { // settings menu
-	var htmltext = "<h1 class=mainmenu>" + Lang[10] + "</h1><pre class=mainmenu>   1 - ";
-	if (ShowSubs) { htmltext += "\uE017"; } else { htmltext += "\uE016"; }
-	htmltext += Lang[20] + ": " + (is.getObject("cfg.media.subtitling.languagepriority"));
-	if (subs_prio_dyn.length > 0) { htmltext += " (" + (subs_dyn + 1 ) + "/" + subs_prio_dyn.length + ") "; }
-	htmltext += "\n   2 - \uE003" + Lang[22] + (is.getObject("cfg.media.subtitling.modepriority"));
-	htmltext += "\n   3 - \uE003" + Lang[24] + (is.getObject("cfg.media.audio.languagepriority")); 
-	htmltext += "\n   4 - " + Lang[82] + "\n   5 - VDR : " + server_ip + "\n   6 - ";
-	if (showClock) { htmltext += "\uE017"; } else { htmltext += "\uE016"; }
-	htmltext += Lang[25] + "\n   7 - ";
-	if (ShowProtectedChannels) { htmltext += "\uE017"; } else { htmltext += "\uE016"; }
-	htmltext += Lang[26] + "\n   8 - ";
-	if (SwitchGuide) { htmltext += "\uE017"; } else { htmltext += "\uE016"; }
-	htmltext += Lang[27] + "\n   9 -" + Lang[23] + OSDLang[lang_nr] + "\n   \u25AA -" + Lang[29];
-
-	if (SleepTimer) { htmltext += SleepTimer + Lang[30]; } else { htmltext += Lang[31]; }
-
-	htmltext += "\n\n   <span class=redkey>\u25CF</span><span class=mainfont> -" + Lang[20];
-	htmltext += "</span><span class=greenkey>\u25CF</span><span class=mainfont> - " + VideoOutputModes_txt[VideoOutputModes[Set_Res]] + " ";  
-	htmltext += "</span><span class=yellowkey>\u25CF</span><span class=mainfont> -" + Lang[35];
-	htmltext += "</span><span class=bluekey>\u25CF</span><span class=mainfont> - " + Left(cssfile[css_nr].split(".")[0],8) +"</pre>";
-//	htmltext += "\n   0 -" + Lang[9] +"</pre>";
-	mainmenu.innerHTML = htmltext;
-}
-
-if(menu == 2) { // Timers menu
-	booking = "";
-	var x = timerID - 2;
-	var y = ss.getBookingIds("*", 0, 0);
-	if (y.length !== 0) {
-	for (var i=0;i<10;i++) {
-		if (timer.length !== 0) { do { x += 1; } while (!timer[x] && (x < timer.length)) }
-
-			if (i == 0) {
-			booking += "<span class=select>";
-			} else if (i == 1) {
-			booking += "</span>";
-			} 
-
-		if (timer.length > x) {
-			try {
-				if (ss.getParameter(y[x], "assetURI")) {
-				// test if there is a file with the timer if so more info is added
-					if (Number(ss.getParameter(y[x], "resume")) == 0 ) {
-						booking += "\uE003\uE010";
-					} else {
-						booking += "\uE003\uE003";
-					}			
-				}
-			} catch(e) {
-			    booking += "\uE003\uE003";
-			}
-			booking += ss.getParameter(y[x], "Type");
-			booking += timer[x];
-		} else {
-			booking += "\n";
-		}
-	}
-	}
-	if (mediaRecorder) { var x = NN[3]; } else { var x =  Lang[19]; }
-	mainmenu.innerHTML = "<h1 class=mainmenu>" + Lang[7] + "</h1><pre class=mainmenu>\n   0 -" + Lang[9] + "\n" + booking + "   <span class=redkey>\u25CF</span><span class=mainfont> -" + Lang[48] + "</span><span class=greenkey>\u25CF</span><span class=mainfont> - " + x + "  </span><span class=yellowkey>\u25CF</span><span class=mainfont> -" + Lang[19] + "</span><span class=bluekey>\u25CF</span><span class=mainfont> - " + NN[5] + "</pre>";
-}
-
-if(menu == 3) { // MPD Menu
-	mainmenu.innerHTML = "<h1 class=mainmenu>" + Lang[33] + "</h1><pre class=mainmenu>" + Lang[34] + "\n 0 -" + Lang[9] + "</pre>";
-}
-
-if(menu == 4) { // INFO Menu
-	var htmltext = "<h1 class=mainmenu>" + Lang[35] + "</h1><pre class=mainmenu>";
-	try {
-		htmltext += "\n   Product name: " + is.getObject("config.productdisplayname");
-		htmltext += "\n   Build date : " + is.getObject("config.build.date");
-		htmltext += "\n\n   IP address : " + is.getObject("config.ipaddress");
-
-		var x = is.getObject("cfg.ip.eth0.mode");
-		if (x == "DHCP") { htmltext += "\n \uE003\uE017 "; } else { htmltext += "\n \uE003\uE016 "; }
-		htmltext += "DHCP";
-		var x = is.getObject("var.capabilities.dvr");
-		if (x !== "FALSE") { htmltext += "\n \uE003\uE017 "; } else { htmltext += "\n \uE003\uE016 "; }
-		htmltext += "DVR \n";
-		htmltext += "\n   VDR address : " + server_ip;
-		htmltext += "\n   Vip Client\uE003\uE003\uE003: " + Version;
-		htmltext += "\n   Channel list\uE003: " + Chan_Ver;
-
-	} catch(e) {
-		alert("Error : " + e);
-	}
-	htmltext += "\n\n   0 -" + Lang[9] + "</pre>";
-	mainmenu.innerHTML = htmltext;
-
-}
-
-if(menu == 5) { // Timers from Server
-	if (timerOK) {
-	//	booking = "<center>" + Lang[32] + "</center>";
-	booking = "<span class=select>";
-	var x = timerID - 1;
-	for (var i=0;i<10;i++) {
-		if (maxTimers !== 0) { do { x += 1; } while (!timers[x] && (x < maxTimers)) }
-		if (maxTimers > x) { booking += timers[x]; } else { booking += "\n"; }
-		if (i == 0) { booking += "</span>"; } 
-	}
-	if (get_timer) {
-	mainmenu.innerHTML = "<h1 class=mainmenu>" + Lang[7] + "</h1><pre class=mainmenu>\n" + booking + "\n   <span class=redkey>\u25CF</span><span class=mainfont> -" + Lang[48] + "</span><span class=greenkey>\u25CF</span><span class=mainfont> -" + Lang[49] + "</span><span class=yellowkey>\u25CF</span><span class=mainfont> -" + Lang[19] + "   </span><span class=bluekey>\u25CF</span><span class=mainfont> -" + Lang[28] + "</pre>";
-	 } else {
-	mainmenu.innerHTML = "<h1 class=mainmenu>" + Lang[7] + "</h1><pre class=mainmenu>\n" + booking + "\n   <span class=redkey>\u25CF</span><span class=mainfont> -" + Lang[19] + "</span><span class=greenkey>\u25CF</span><span class=mainfont> -" + Lang[19] + "</span><span class=yellowkey>\u25CF</span><span class=mainfont> -" + Lang[19] + "   </span><span class=bluekey>\u25CF</span><span class=mainfont> -" + Lang[28] + "</pre>";
-	 }
-	}
-}
-
-
-if(menu == 7) { // SearchTimers from Server
-	if (timerOK) {
-	// 	booking = "<center>" + Lang[32] + "</center>";
-	booking = "<span class=select>";
-	var x = timerID - 1;
-	for (var i=0;i<10;i++) {
-		if (maxTimers !== 0) { do { x += 1; } while (!searchtimers[x] && (x < maxTimers)) }
-		if (maxTimers > x) { booking += searchtimers[x]; } else { booking += "\n"; }
-		if (i == 0) { booking += "</span>"; } 
-	}
-	mainmenu.innerHTML = "<h1 class=mainmenu>" + Lang[8] + "</h1><pre class=mainmenu>\n" + booking + "\n   <span class=redkey>\u25CF</span><span class=mainfont> -" + Lang[19] + "</span><span class=greenkey>\u25CF</span><span class=mainfont> -" + Lang[19] + "</span><span class=yellowkey>\u25CF</span><span class=mainfont> -" + Lang[19] + "   </span><span class=bluekey>\u25CF</span><span class=mainfont> -" + Lang[28] + "</pre>";
-
-	}
-}
-
-if(menu == 8) { // ChannelGroups enable/disable
-	var htmltext = "<h1 class=mainmenu>" + Lang[80] + "</h1><pre class=mainmenu>\n";
-	for (var i=0;i<10;i++) {
-		if (maxChan[i]) { } else { htmltext += "<span class=notset>"; }
-		htmltext += "\uE003" + i + "\uE003-\uE003";
-		if (is.getObject(("vip.group." + i)) == "1") { htmltext += "\uE017"; } else { htmltext += "\uE016"; }
-		htmltext += "\uE003" + Lang[81] + i + "\n";
-		if (maxChan[i]) { } else { htmltext += "</span>"; }
-	}
-	htmltext += "</pre>";
-	mainmenu.innerHTML = htmltext;
-	}
-
-if(menu == 9) { // INFO2 Menu
-	var htmltext = "<h1 class=mainmenu>" + Lang[35] + "</h1><pre class=mainmenu>";
-	try {
-		if (fullupdate !== 0) { htmltext += "\n \uE017 "; } else { htmltext += "\n \uE016 "; }
-		htmltext += "Full EPG Update ";
-
-		experimental = Number(is.getObject("vip.testing"));
-		if (experimental) { htmltext += "\n \uE017 "; } else { htmltext += "\n \uE016 "; }
-		htmltext += "Experimental";
-		if (Number(is.getObject("vip.testing2"))) { htmltext += "\n \uE017 "; } else { htmltext += "\n \uE016 "; }
-		htmltext += "Experimental 2 (Info box 'not in package')";
-		if (Restfulapiplugin) { htmltext += "\n \uE017 "; } else { htmltext += "\n \uE016 "; }
-		htmltext += "Has Restfulapiplugin"
-		if (smartTVplugin) { htmltext += "\n \uE017 "; } else { htmltext += "\n \uE016 "; }
-		htmltext += "Has smartTVplugin"
-		htmltext += "\n gettimers from";
-		if (get_timer == 1) { 
-			htmltext += " smarttvweb "; 
-		} else { 
-			htmltext += " restfulapi "; 
-		}
-
-		htmltext += "\n getmarks from";
-		if (get_marks == 1) { htmltext += " smarttvweb "; } else { htmltext += " restfulapi "; }
-		htmltext += "\n getrecordings from";
-		if (get_recordings == 1) { 
-			htmltext += " smarttvweb "; 
-		} else if (get_recordings == 0) { 
-			htmltext += " restfulapi "; 
-		} else {
-			htmltext += " streamdev "; 
-		}
-		htmltext += "\n EPGMode : "
-		if (EPGMode) { htmltext += "Full EPG"; } else { htmltext += "Now/Next Only"; }
-	} catch(e) {
-		alert("Error : " + e);
-	}
-	htmltext += "\n\n   0 -" + Lang[9] + "</pre>";
-	mainmenu.innerHTML = htmltext;
-
-}
-
-if(menu == 10) { // Favorite edit Menu
-	var htmltext = "<h1 class=mainmenu>" + Lang[83]
-	htmltext += "</h1><pre class=mainmenu>\n"
-	htmltext += "<span class=select>";
-	var x = timerID;
-	for (var i=0;i<10;i++) {
-		if (maxTimers !== 0) { x += 1;}
-		if (maxTimers >= x && x !== 0) { htmltext += " \u0003\u0003 " + x + " \u0003\u0003 " + channelsnames[(x + Fav_base)] + " \u0003\u0003\u0003 \n"; } else { htmltext += "\n"; }
-		if (i == 0) { htmltext += "</span>"; } 
-	}
-	htmltext += "\n   <span class=redkey>\u25CF</span><span class=mainfont> -" + Lang[87]; 
-	htmltext += "</span><span class=greenkey>\u25CF</span><span class=mainfont> -"
-	if (timerID == 0) { htmltext += Lang[19] } else { htmltext += Lang[84] } //no move up
-	htmltext += "</span><span class=yellowkey>\u25CF</span><span class=mainfont> -"
-	if (timerID == (maxTimers - 1) || x == 0) { htmltext += Lang[19] } else { htmltext += Lang[85] } //no move down
-	htmltext += "</span><span class=bluekey>\u25CF</span><span class=mainfont> -" + Fav_key1 + "</pre>";
-	mainmenu.innerHTML = htmltext;
-}
-
-} // end of initmenu
-
-function SetGroup(isgroup) {
-	is.setObject("vip.group." + isgroup,(1 - is.getObject("vip.group." + isgroup)).toString(),is.STORAGE_PERMANENT);
-	if (is.getObject("vip.group." + isgroup) == "0") { minChan[isgroup] = "";} else {minChan[isgroup] = minchan[isgroup];}
-}
-
-function LoadTimers() {
-		timer.length = 0;
-		var booking = "";
-		var x = ss.getBookingIds("*", 0, 0);
-			for (var i=0;i<x.length;i++) { 
-				var y = ss.getBooking(x[i]);
-				booking = " ID " + x[i];
-				booking += " " + Left(y.category,1);
-				tijd = y.start;
-				date = new Date(tijd*1000); 
-				tijd = date.toUTCString();
-				tijd = new Date(tijd);
-			        month = tijd.getMonth();
-			        d = tijd.getDate();
-		        	day = tijd.getDay();
-				var tm = tijd.getMinutes();
-				var th = tijd.getHours();
-				th=addzero(th);
-				tm=addzero(tm);
-
-//				booking += " Start " + Left(days[day],3) + " " + d + " " + Left(months[month],3) + " " + th + ":" + tm + "   " + (y.duration/60).toFixed(0) + " min";
-				booking += " " + d + " " + Left(months[month],3) + " " + th + ":" + tm + "   " + (y.duration/60).toFixed(0) + " min";
-
-				booking += " " + Left(channelsnames[ss.getParameter(x[i], "Channel")],8);
-				booking += "  " + Left(ss.getParameter(x[i], "Title"),15);
-				timer[i] = booking + "\n" ;
-
-				}
-}
-
-
-function LoadTimersServer() {
-try {
-
- if (get_timer==1) {
-   //Get timers from SmartTVweb
-   xmlhttp=new XMLHttpRequest();
-   xmlhttp.open("GET",(server_ip + recServ + "/timers.xml?" + new Date().getTime()),false);
-   xmlhttp.send();
-   xmlDoc=xmlhttp.responseXML; 
-   var x=xmlDoc.getElementsByTagName("timer");
-   maxTimers = x.length;
-   timers.length = 0; // clear timers[i] tries to clear crap if current x.length < previous x.length
-   if (x.length > 0) {
-    for (var i=0;i<x.length;i++)
-	  { 
-	  var fill = "\uE003\uE003\uE003\uE003\uE003\uE003\uE003\uE003\uE003\uE003";
-	  timersFlag[i] = x[i].getElementsByTagName("flags")[0].childNodes[0].nodeValue;
-	  timersStrt[i] = Right("000" + x[i].getElementsByTagName("start")[0].childNodes[0].nodeValue,4);
-	  timersStop[i] = Right("000" + x[i].getElementsByTagName("stop")[0].childNodes[0].nodeValue,4);
-
-	  timersEvnt[i] = x[i].getElementsByTagName("eventid")[0].childNodes[0].nodeValue; // event_id
-	  timersID[i] = x[i].getElementsByTagName("index")[0].childNodes[0].nodeValue; // index
-	  timersChan[i]  = x[i].getElementsByTagName("channelid")[0].childNodes[0].nodeValue; // channel_id
-	  timersName[i] = x[i].getElementsByTagName("channelname")[0].childNodes[0].nodeValue + fill;
-	  timersDay[i] = x[i].getElementsByTagName("day")[0].childNodes[0].nodeValue;
-	  timersDays[i] = new Date(timersDay[i]*1000);
-	  timersDays[i] = timersDays[i].getDate() + "\uE003" + Left(months[timersDays[i].getMonth()],4);
-	  timersFile[i] = x[i].getElementsByTagName("file")[0].childNodes[0].nodeValue + fill + fill;
-
-	  if (timersFlag[i] == "1") { 
-		timers[i] = "\uE003\uE00C\uE003";
-	  } else if (timersFlag[i] == "9" || timersFlag[i] == "11" ) { 
-		timers[i] = "\uE003\uE00B\uE003";
-	  } else if (timersFlag[i] == "0") { 
-		timers[i] = "\uE003\uE003\uE003";
-	  }  else { 
-		timers[i] = "\uE003?\uE003";
-	  }
-
-	  timers[i] += timersDays[i] + "\uE003" + timersStrt[i] + "\uE003" + timersStop[i] + "\uE003" + Left(timersName[i],8) + "\uE003" + Left(timersFile[i],15) + "\n" ;
-    }
-   }
-    timerOK = 1;
- } else if (get_timer == 0) {
-   xmlhttp=new XMLHttpRequest();
-   xmlhttp.open("GET",(server_ip + RestFulAPI + "/timers.xml"),false);  // ?" + new Date().getTime()),false);
-   xmlhttp.send();
-   xmlDoc=xmlhttp.responseXML; 
-   var x=xmlDoc.getElementsByTagName("timer");
-   maxTimers = x.length;
-   timers.length = 0; // clear timers[i] tries to clear crap if current x.length < previous x.length
-   if (x.length > 0) {
-    for (var i=0;i<x.length;i++)
-	  { 
-	  var fill = "\uE003\uE003\uE003\uE003\uE003\uE003\uE003\uE003\uE003\uE003";
-	  timersID[i] = x[i].getElementsByTagName("param")[0].childNodes[0].nodeValue;
-	  timersChan[i] = x[i].getElementsByTagName("param")[11].childNodes[0].nodeValue;
-	  timersFlag[i] = x[i].getElementsByTagName("param")[1].childNodes[0].nodeValue;
-	  timersStrt[i] = Right("00" + x[i].getElementsByTagName("param")[2].childNodes[0].nodeValue,4);
-	  timersStop[i] = Right("00" + x[i].getElementsByTagName("param")[3].childNodes[0].nodeValue,4);
-	  timersEvnt[i] = x[i].getElementsByTagName("param")[8].childNodes[0].nodeValue;
-	  timersDays[i] = x[i].getElementsByTagName("param")[9].childNodes[0].nodeValue;
-	  if (timersDays[i] == "-------" ) { 
-		timersDays[i] = x[i].getElementsByTagName("param")[10].childNodes[0].nodeValue;
-	  } else { 
-		timersDays[i] += "\uE003\uE003\uE003";
-	  }
-	  timersName[i] = x[i].getElementsByTagName("param")[15].childNodes[0].nodeValue + fill;
-	  timersFile[i] = x[i].getElementsByTagName("param")[14].childNodes[0].nodeValue + fill + fill;
-	  if (timersFlag[i] == "1") { 
-		timers[i] = "\uE003\uE00C\uE003";
-	  } else if (timersFlag[i] == "9") { 
-		timers[i] = "\uE003\uE00B\uE003";
-	  } else { 
-		timers[i] = "\uE003\uE003\uE003";
-	  }
-	  timers[i] += timersDays[i] + "\uE003" + timersStrt[i] + "\uE003" + timersStop[i] + "\uE003" + Left(timersName[i],8) + "\uE003" + Left(timersFile[i],15) + "\n" ;
-   } 
-  }
-   timerOK = 1;
- }
-  } catch(e) {
-    timerOK = 0;
-    alert("Get Timers problem: " + e);
-    mainmenu.innerHTML = "<h1 class=mainmenu>" + Lang[7] + "</h1><pre class=mainmenu>\n  " + Lang[36] + ": \n " + server_ip + "</pre>";
-  }
-}
-
-function DeleteTimers() {
-if (get_timer==1) {
- try {
-
-	xmlhttp=new XMLHttpRequest();
- //
- // SmartTVWeb
- //	xmlhttp.open("GET",(server_ip + recServ + "/deleteTimer?guid=" + timersChan[timerID] + "&dy=" + timersDay[timerID] 
- //			+ "&st=" + timersStrt[timerID] + "&sp=" + timersStop[timerID] + "&" + new Date().getTime()),false);
-	xmlhttp.open("GET",(server_ip + recServ + "/deleteTimer?index=" + timersID[timerID] + "&" + new Date().getTime()),false);
-	xmlhttp.send();
-
-  } catch(e) {
-    alert("Deleting Timers problem: " + e);
-  }
- }
-}
-
-function activate_timers(){
-if (get_timer==1) {
-	// (De)activate timers.
- try {
-
-	xmlhttp=new XMLHttpRequest();
-	if (timersFlag[timerID] == "0") { 
-	xmlhttp.open("GET",(server_ip + recServ + "/activateTimer?index=" + timersID[timerID] + "&activate=true&" + new Date().getTime()),false);
-	} else {
-	xmlhttp.open("GET",(server_ip + recServ + "/activateTimer?index=" + timersID[timerID] + "&activate=false&" + new Date().getTime()),false);
-	}
-	xmlhttp.send();
-
-	if (timersFlag[timerID] == "0") { 
-		timers[timerID] = timers[timerID].substr(0, 1) + "\uE00C" + timers[timerID].substr(2);
-		timersFlag[timerID] = "1"
-	} else {
-		timers[timerID] = timers[timerID].substr(0, 1) + "\uE003" + timers[timerID].substr(2);
-		timersFlag[timerID] = "0"
-	}
-  } catch(e) {
-    alert("(De)Activate Timers problem: " + e);
-  }
- }
-}
-
-
-function ShowTimerInfo() {
- if (osdepginfo.style.opacity == 1) {
-  //Like Show EPG Info
-  //setup some dummy vars
-  var info1 = ""; var info2 = ""; var info3 = ""; var info4="";
-  if (timersEvnt[timerID] > 0) {
-
-	try {
-	   xmlhttp=new XMLHttpRequest();
-	   xmlhttp.open("GET",(server_ip + RestFulAPI + "/events/" + timersChan[timerID] + "/" + timersEvnt[timerID] + ".xml?" + new Date().getTime()),false);  
-	   xmlhttp.send();
-	   xmlDoc=xmlhttp.responseXML;
-	   var x=xmlDoc.getElementsByTagName("event");
-		// x[0].getElementsByTagName("param")[1].childNodes[0].nodeValue --> Title
-		// x[0].getElementsByTagName("param")[2].childNodes[0].nodeValue --> Short_text
-		// x[0].getElementsByTagName("param")[3].childNodes[0].nodeValue --> Description
-		// x[0].getElementsByTagName("param")[5].childNodes[0].nodeValue --> ChannelsName
-
-		info1 = x[0].getElementsByTagName("param")[1].childNodes[0].nodeValue;
-		info2 = x[0].getElementsByTagName("param")[5].childNodes[0].nodeValue;
-		info4 = x[0].getElementsByTagName("param")[3].childNodes[0].nodeValue;
-		info3 = x[0].getElementsByTagName("param")[2].childNodes[0].nodeValue + "</p><p>";
-
-	  } catch(e) {
-	    alert("Get EPG problem: " + e);
-
-	  }
-  } else {
-	info3 = Lang[37];
-  }
-       	osdepginfo.innerHTML = "<pre class=epgtimerinfo>" + Left(info1,60) + "\n " + timersDays[timerID] + " " + 
-	timersStrt[timerID] + " - " + timersStop[timerID] + "\n" + info2 + "\n </pre><p class=epgtimerinfo>" + info3 + Left(info4,750) + "</p>" ;
- }
-}
-
-function LoadSearchTimersServer() {
-try {
-   xmlhttp=new XMLHttpRequest();
-   xmlhttp.open("GET",(server_ip + RestFulAPI + "/searchtimers.xml?" + new Date().getTime()),false); //"),false);  // 
-   xmlhttp.send();
-   xmlDoc=xmlhttp.responseXML; 
-   var x=xmlDoc.getElementsByTagName("searchtimer");
-   maxTimers = x.length;
-   searchtimers.length = 0; // clear timers[i] tries to clear crap if current x.length < previous x.length
-   if (x.length > 0) {
-     for (var i=0;i<x.length;i++)
-	  { 
-	  var fill = "\uE003\uE003\uE003\uE003\uE003\uE003\uE003\uE003\uE003\uE003";
-	  searchtimersID[i] = x[i].getElementsByTagName("id")[0].childNodes[0].nodeValue;
-	  searchtimersSearch[i] = x[i].getElementsByTagName("search")[0].childNodes[0].nodeValue;
-	  searchtimersFlag[i] = x[i].getElementsByTagName("use_as_searchtimer")[0].childNodes[0].nodeValue;
-	  if (searchtimersFlag[i] == "1") { 
-		searchtimers[i] = "\uE003\uE017\uE003";
-	  } else if (searchtimersFlag[i] == "0") { 
-		searchtimers[i] = "\uE003\uE016\uE003";
-	  }  else { 
-		searchtimers[i] = "\uE003?\uE003";
-	  }
-
-		// Extended INFO
-		SearchTimer[i] = "<pre class=mainhead>" + x[i].getElementsByTagName("search")[0].childNodes[0].nodeValue + "\n </pre><pre>";
-		if ((x[i].getElementsByTagName("use_as_searchtimer")[0].childNodes[0].nodeValue) == 0) {
-			SearchTimer[i]  += "\uE003\uE016\uE003" + Lang[40] + "\n";
-		} else {
-			SearchTimer[i]  += "\uE003\uE017\uE003" + Lang[40] + "\n";
-		}
-		SearchTimer[i] = SearchTimer[i] + "\uE003\uE003\uE003Mode :\uE003" + (searchmode[x[i].getElementsByTagName("mode")[0].childNodes[0].nodeValue]) + "\n";
-		if ((x[i].getElementsByTagName("use_time")[0].childNodes[0].nodeValue) == 1) {
-			SearchTimer[i]  += "\uE003\uE017\uE003" + Lang[41] + "\uE003" + 
-					x[i].getElementsByTagName("start_time")[0].childNodes[0].nodeValue + 
-					"\uE003-\uE003" + x[i].getElementsByTagName("stop_time")[0].childNodes[0].nodeValue  + "\n";
-		} else {
-			SearchTimer[i]  += "\uE003\uE016\uE003" + Lang[41] + "\uE003" + "\n";
-		}
-		if ((x[i].getElementsByTagName("use_dayofweek")[0].childNodes[0].nodeValue) == 0) {
-			SearchTimer[i] += "\uE003\uE016\uE003" + Lang[47] + "\uE003" + "\n";
-		} else {
-			//bit is used for dayofweek.
-			var dowx = x[i].getElementsByTagName("dayofweek")[0].childNodes[0].nodeValue;
-			var dow = "";
-			if (dowx > 0) { var y = 1;} else { var y = 0;}
-			dowx = Math.abs(dowx);
-			for (var dowi=0; dowi<7; dowi++)
-			{
-				var mask = 1 << dowi;
-				if ((dowx & mask) != 0) { dow += days[(dowi+y)] + "\uE003";}
-			}
-			SearchTimer[i] += "\uE003\uE017\uE003" + Lang[47] + "\uE003:\uE003" + dow + "\n";
-		}
-
-
-		if ((x[i].getElementsByTagName("use_channel")[0].childNodes[0].nodeValue) == 0) {
-			SearchTimer[i] += "\uE003\uE016\uE003" + Lang[42] + "\uE003" + "\n";
-		} else {
-			SearchTimer[i] += "\uE003\uE017\uE003" + Lang[42] + "\uE003:\uE003" + 
-					searchchan[(x[i].getElementsByTagName("use_channel")[0].childNodes[0].nodeValue)] + "\uE003" + 
-					x[i].getElementsByTagName("channels")[0].childNodes[0].nodeValue + "\n";
-		}
-
-		SearchTimer[i]  += "\n</pre>";
-		// End of Extended INFO
-
-
-	  searchtimers[i] += searchtimersSearch[i]  + "\uE003\uE003\n" ;
-    }
-	  timerOK = 1;
-   }
-  } catch(e) {
-    timerOK = 0;
-    alert("Get SearchTimers problem: " + e);
-    mainmenu.innerHTML = "<h1 class=mainmenu>" + Lang[8] + "</h1><pre class=mainmenu>\n  " + Lang[43] + ": \n " + server_ip + RestFulAPI + "</pre>";
-  }
-}
-
-function ShowSearchTimerInfo() {
-  // info about a search timer.
-  //Like Show EPG Info
-  //setup some dummy vars
-
-  var info1 = ""; var info2 = "";
-
-	try {
-	   xmlhttp=new XMLHttpRequest();
-	   xmlhttp.open("GET",(server_ip + RestFulAPI + "/searchtimers/search/" + searchtimersID[timerID] + ".xml?" + new Date().getTime()),false);  
-	   xmlhttp.send();
-	   xmlDoc=xmlhttp.responseXML;
-	   var x=xmlDoc.getElementsByTagName("event");
-	   var maxinfo = x.length; if (maxinfo > 15) { maxinfo = 15;}
-		
-	   for (var i=0;i<maxinfo;i++)
-		  { 
-			info2 = x[i].getElementsByTagName("param")[16].childNodes[0].nodeValue; // Timer exists
-			if (info2 == "true") {
-				info1 += "\uE003\uE00C\uE003";
-			} else {
-				info1 += "\uE003\uE003\uE003";
-			}
-			info2 = x[i].getElementsByTagName("param")[17].childNodes[0].nodeValue; // Timer active
-			if (info2 == "true") {
-				info1 += "\uE017\uE003";
-			} else {
-				info1 += "\uE016\uE003";
-			}
-
-			info2 = x[i].getElementsByTagName("param")[6].childNodes[0].nodeValue; // Time
-			        date = new Date(Number(info2)*1000);
-	        		month = date.getMonth();
-			        d = date.getDate();
-		        	day = date.getDay();
-			        h = date.getHours();
-			        m = date.getMinutes();
-				h=addzero(h);
-				m=addzero(m);
-			info2 = Left(days[day],3) + "\uE003" + d + "\uE003" + Left(months[month],3) + "\uE003" + h + ':' + m;
-			info1 += info2;
-			info2 = "\uE003\uE003" + x[i].getElementsByTagName("param")[7].childNodes[0].nodeValue/60 + "\uE003"; // Duration
-			info1 += "\uE003" + Right(info2,3) + Lang[56] + "\uE003" + x[i].getElementsByTagName("param")[5].childNodes[0].nodeValue + "\uE003"; // Channel
-			info1 += "\uE003" + Left(x[i].getElementsByTagName("param")[1].childNodes[0].nodeValue,25) + "\uE003"; // Programm Title
-			info1 += "\n";
-			
-		}
-
-	  } catch(e) {
-	    alert("Get SearchTimer INFO problem: " + e);
-
-	  }
-
-       	osdepginfo.innerHTML = "<pre class=mainhead>" + searchtimersSearch[timerID] + "\n </pre><pre>" + info1 + "</pre>" ;
-
-}
-
-// End of Menu section
-
-// MPD Section
-
-function MPD(ev) {
-//     alert("Media player state changed: " + ev);
-//     alert("Media player state changed: state=" + ev.state + ", reason=" + ev.reason + ", code=" + ev.code);
-//     alert("Media player error :" + mediaPlayer.getError().details);
-if (MPDListener == 0) {
-	if (ev.state == 6 ) { 
-		if (ev.reason == "CommandClose" && ErrorAgain == 0) {
-			setTimeout("mediaPlayer.open(URL);mediaPlayer.play(1000);GetEPG(currChan);ExtraStuff();",500);
-			ErrorAgain = 1;
-		} else {
-			ErrorAgain = 0;
-			alert("Media player state changed: state=" + ev.state + ", reason=" + ev.reason + ", code=" + ev.code);
-			showDisplay("ERRR", false, 100, 0 ); 
-			if (experimental) {
-				settimer(0,ev.reason,0,2,color_error);
-			} else {
-				settimer(0,Lang[67],0,2,color_error);
-			}
-		}
-	}
-	
-} else {
-	if ( ev.state == 6 && ev.reason == "HostUnreachable" ) {
-	    showDisplay("ERRR", false, 100, 0 );
-	mainmenu.innerHTML = "<h1 class=mainmenu>" + Lang[60] + "</h1><pre class=mainmenu>" + Lang[34] + "\n   0 -" + Lang[9] + "\n   9 -" + Lang[61] + "\n\n<pre class=mainhead>" + Lang[62] + ": \n" + server_ip + MPDAddress + "</pre></pre>";
-	  } else if ( ev.state == 2 ) { // && ev.reason == "PositionEnd" ) {
-	    showDisplay("STOP", false, 100, 0 );
-	mainmenu.innerHTML = "<h1 class=mainmenu>" + Lang[60] + "</h1><pre class=mainmenu>" + Lang[34] + "\n   0 -" + Lang[9] + "\n   9 -" + Lang[63] + "\n\n<pre class=mainhead>" + Lang[64] + ": \n" + server_ip + MPDAddress + "\n" + Lang[65] + "</pre></pre>";
-	  } else if ( ev.state == 3 && ev.reason == "CommandPlay" ) {
-	showDisplay("MPD", false, 100, 0 );
-	mainmenu.innerHTML = "<h1 class=mainmenu>" + Lang[60] + "</h1><pre class=mainmenu>" + Lang[34] + "\n   0 -" + Lang[9] + "\n\n\n<pre class =mainhead>" + Lang[64] + ": \n" + server_ip + MPDAddress + "</pre></pre>";
-	  } else {
-	    showDisplay("ERRR", false, 100, 0 );
-	mainmenu.innerHTML = "<h1 class=mainmenu>" + Lang[60] + "</h1><pre class=mainmenu>" + Lang[34] + "\n   0 -" + Lang[9] + "\n   9 -" + Lang[63] + "\n\n<pre class=main_head>Error : " + ev.state + "\n" + Lang[66] + ": " + ev.reason + "</pre></pre>";
-	}
-}
-
-}
-
-function playMPD(uri) {
-  try {
-    if (mediaPlayer.getState() != mediaPlayer.STATE_IDLE) {
-      mediaPlayer.close();
-    }
-	MPDListener = 1;
-	mediaPlayer.open(uri);
-	mediaPlayer.play(1000);
-  } catch (e) {
-    alert("Failed opening recording: " + e);
-    return;
-  }
-}
-
-
-// End of MPD Section
-
-// Media Player Section
-
-function LoadMediaSettings() {
-		subgroup = 0;
-		subsubgroup = 0;
-		isMediaMenu = 1;
-		isFullscreen = 0;
-		if (getRecOK !== 2) { showDisplay("STOP", false, 100, 0 ); }
-		currMed = 0;
-		if (getRecOK) { showMediaList();}
-		mediaPlayer.addEventListener(mediaPlayer.ON_POSITION_CHANGED, ShowMediaOSD);
-		mediaPlayer.addEventListener(mediaPlayer.ON_STATE_CHANGED, onStateChanged);
-}
-
-function UnloadMediaSettings() {
-	mediaPlayer.removeEventListener(mediaPlayer.ON_POSITION_CHANGED, ShowMediaOSD);
-	mediaPlayer.removeEventListener(mediaPlayer.ON_STATE_CHANGED, onStateChanged);
-	medialist.style.opacity = 0;
-	osdmedia.style.opacity = 0;
-	osdmediatime.style.opacity = 0;
-	osdepginfo.style.opacity = 0;
-	medialist.innerHTML = "<h1 class=mainmenu>" + Lang[0] + "</h1>";
-	showDisplay(currChan.toString(), false, 100, 0 );
-	isMediaMenu = 0;
-	isFullscreen = 1;
-	isPause = 0;
-	set_yellow_key = 0;
-	localRecording = 0;
-	if (mediaPlayer.getState() != mediaPlayer.STATE_PLAYING ) {
-        play(channels[currChan]);
-	}
-}
-
-
-
-function onKeyMedia(keyCode) {
-if (DelisOK) {
-	switch(keyCode) {
-	case KEY_OK:
-	  medialist.innerHTML = "<h1 class=mainmenu>" + Lang[0] + "</h1>";
-	  switchtimer.style.opacity = 0;
-	  setTimeout("DelRec2(); getRecList(); showMediaList();",100)
-	default:
-	  switchtimer.style.opacity = 0;
-	  DelisOK = 0;
-	break;
-  	} // end of switch
-} else if (medialist.style.opacity != 0) { 
-  switch(keyCode) {
-    case "BrowserBack":
-	if (subgroup && osdepginfo.style.opacity == 0) { 	
-		subgroup = 0;
-		subsubgroup = 0;
-		if (ShowSubDir) {
-			MakeRecList2();
-		} else {
-			MakeRecList();
-		}
-		setTimeout("showMediaList();",100)
-		break;
-	}
-	if (osdepginfo.style.opacity == 1) { osdepginfo.style.opacity = 0; break; }
-    case "TV":
-	UnloadMediaSettings();
-        break;
-    case "Yellow":
-	if (set_yellow_key) { 
-		//hide/display schedule with same button
-		UnloadMediaSettings();
-	}
-	break;
-    case "Right":
-	if (getRecOK !== 0) {
-           for (var i=0;i<10;i++) {
-		do
-		{
-		        incMed(1);
-		}
-	//	while (!recTitl[currMed]);
-		while (!recList[currMed]);
-	   }	
-	showMediaList();
-	}
-	break;
-    case "Left":
-	if (getRecOK !== 0) {
-           for (var i=0;i<10;i++) {
-		do
-		{
-		        decMed(1);
-		}
-	//	while (!recTitl[currMed]);
-		while (!recList[currMed]);
-	   }
-	showMediaList();
-	}
-	break;
-    case "Down":
-	if (getRecOK !== 0) {
-	do
-	{
-	        incMed(1);
-	}
-	//	while (!recTitl[currMed]);
-		while (!recList[currMed]);
-	showMediaList();
-	}
-        break;
-    case "Up":
-	if (getRecOK !== 0) {
-	do
-	{
-	        decMed(1);
-	}
-	//	while (!recTitl[currMed]);
-		while (!recList[currMed]);
-	showMediaList();
-	}
-	break;
-  case KEY_OK:
-  case "MediaPlayPause":
-	if (getRecOK == 2) {
-		ShowInfo();
-		osdepginfo.style.opacity = 1 - osdepginfo.style.opacity;
-	}
-	if (getRecOK == 1) {
-		if (recGroup[currMed] !== 0 && subgroup == 0 && ShowSubDir) {
-			if (subgroup_old) {
-			setTimeout("MakeRecList_sublevel(recGroup[currMed]); showMediaList();",100)
-			} else {
-			setTimeout("MakeRecList3(recGroup[currMed]); showMediaList();",100)
-			}
-			subgroup = 1;
-		} else if (recSubGroup[currMed] !== 0 && subgroup == 1 && subsubgroup == 0 && ShowSubDir && subgroup_old) {
-			setTimeout("MakeRecList_sublevel2(recGroup[currMed],recSubGroup[currMed]); showMediaList();",100)
-			subsubgroup = 1;
-		} else {
-			recList[currMed] = "\u0003" + recList[currMed].substring(1);
-			medialist.style.opacity = 0;
-			if (get_recordings == 1) {
-			setTimeout("GetMarks(); getResume(); playRec(recLink[currMed]+ '?mode=streamtoend&time=' + position);",100);
-			} else if (get_recordings == 2) {
-//			setTimeout("playRec(recLink[currMed]+ '?pos=resume');position = (mediaPlayer.getPosition()/1000);",100)
-			position = 0;
-			setTimeout("playRec(recLink[currMed]);",100)
-			}
-		}
-	}
-        break;
-    case "Red":
-	if (getRecOK == 1 && (recGroup[currMed] == 0 || subgroup == 1)) { 
-	   // Only delete item if it isn't a subdir marker
-	   DelRec(); 
-	}
-	if (getRecOK == 2) { //set timer
-			settimer(recStrt[currMed],recTitl[currMed],recDura[currMed],1,color_switchtimer,recDesc[currMed],recGUID[currMed].toString());
-	 }
-	break;
-    case "Blue":
-	// only show info if not a subdir marker or if in EPG mode
-	if ( (getRecOK == 1 && (recGroup[currMed] == 0 || subgroup == 1)) || getRecOK == 2) {
-	ShowInfo();
-	osdepginfo.style.opacity = 1 - osdepginfo.style.opacity;
-	}
-	break;
-    case "Green":
-	if (getRecOK == 2 && mediaRecorder) { //set timer only if mediaRecorder = 1, unit has harddisk
-			settimer(recStrt[currMed],recTitl[currMed],recDura[currMed],3,"",recDesc[currMed],recGUID[currMed].toString());
-	 }
-	break;
-
-    case "VolumeMute":
-	VolumeMute();
-	break;
-    case "VolumeUp":
-	VolumeUp();
-	break;
-    case "VolumeDown":
-	VolumeDown();
-	break;
-
-    case KEY_REC:
-    case KEY_REC2:
-	// make timer for recording
-	if (getRecOK == 2) { //set timer
-			settimer(recStrt[currMed],recTitl[currMed],recDura[currMed],2);
-			ServerTimer(channels[currChan],recGUID[currMed]);
-	 } 
-        break;
-   case KEY_0:
-	if (getRecOK == 1 && (recGroup[currMed] == 0 || recSubGroup[currMed] == 0 || subsubgroup == 1)) { 
-	// Only rewind file if it isn't a subdir marker
-	setResumeNull();
-	showMediaList();
-	}
-	break;
-   case KEY_1:
-	if (getRecOK == 1 && (recGroup[currMed] == 0 || recSubGroup[currMed] == 0 || subsubgroup == 1)) { 
-		// Only do reccmds if it isn't a subdir marker
-		reccmds(1);
-	}
-	break;
-   case KEY_2:
-	if (getRecOK == 1 && (recGroup[currMed] == 0 || recSubGroup[currMed] == 0 || subsubgroup == 1)) { 
-		// Only do reccmds if it isn't a subdir marker
-		reccmds(2);
-	}
-	break;
-   case KEY_3:
-	if (getRecOK == 1 && (recGroup[currMed] == 0 || recSubGroup[currMed] == 0 || subsubgroup == 1)) { 
-		// Only do reccmds if it isn't a subdir marker
-		reccmds(3);
-	}
-	break;
-   case KEY_4:
-	if (getRecOK == 1 && (recGroup[currMed] == 0 || recSubGroup[currMed] == 0 || subsubgroup == 1)) { 
-		// Only do reccmds if it isn't a subdir marker
-		reccmds(4);
-	}
-	break;
-   case KEY_5:
-	if (getRecOK == 1 && (recGroup[currMed] == 0 || recSubGroup[currMed] == 0 || subsubgroup == 1)) { 
-		// Only do reccmds if it isn't a subdir marker
-		reccmds(5);
-	}
-	break;
-   case KEY_6:
-	if (getRecOK == 1 && (recGroup[currMed] == 0 || recSubGroup[currMed] == 0 || subsubgroup == 1)) { 
-		// Only do reccmds if it isn't a subdir marker
-		reccmds(6);
-	}
-	break;
-   case KEY_7:
-	if (getRecOK == 1 && (recGroup[currMed] == 0 || recSubGroup[currMed] == 0 || subsubgroup == 1)) { 
-		// Only do reccmds if it isn't a subdir marker
-		reccmds(7);
-	}
-	break;
-   case KEY_8:
-	if (getRecOK == 1 && (recGroup[currMed] == 0 || recSubGroup[currMed] == 0 || subsubgroup == 1)) { 
-		// Only do reccmds if it isn't a subdir marker
-		reccmds(8);
-	}
-	break;
-   case KEY_9:
-	if (getRecOK == 1 && (recGroup[currMed] == 0 || recSubGroup[currMed] == 0 || subsubgroup == 1)) { 
-		// Only do reccmds if it isn't a subdir marker
-		reccmds(9);
-	}
-	break;
-
-
-
-	default:
-        break;
-  } // end of switch
-} else { 
-  switch(keyCode) {
-    case "BrowserBack":
-//		ShowInfo();
-//		osdepginfo.style.opacity = 1 - osdepginfo.style.opacity;
-		break;
-    case "TV":
-	setResume();
-	play(channels[currChan]);
-	UnloadMediaSettings();
-        break;
-    break;
-    case "Down":
-	if (mediaPlayer.getState() != mediaPlayer.STATE_PAUSED) {
-	      showDisplay("PAUS", false, 100, 0 );
-	      mediaPlayer.play(0);
-	}
-        break;
-    case "Up":
-	if (mediaPlayer.getState() != mediaPlayer.STATE_PLAYING) {
-		if (currMed == -1 || localRecording == 1 ) {
-		      showDisplay("PLAY", false, 100, 0 );
-		      mediaPlayer.play(1000);
-		} else {		
-		      position += (mediaPlayer.getPosition()/1000);
-			if (get_recordings == 1) {
-			      playRec((recLink[currMed] + "?mode=streamtoend&time=" + position));
-			} else if (get_recordings == 2) {
-			      playRec((recLink[currMed] + "?pos=time." + position));
-			}
-		}
-	}
-	break;
-  case KEY_OK:
-	osdmedia.style.opacity = 1 - osdmedia.style.opacity;
-	osdmediatime.style.opacity = osdmedia.style.opacity;
-	ShowMediaOSD();
-        break;
-   case "Green":
-	if (audio_dyn < (lang_prio_dyn.length -1)) { audio_dyn += 1} else { audio_dyn = 0 }
-	if (lang_prio_dyn.length > 1) {
-		is.setObject("cfg.media.audio.languagepriority",lang_prio_dyn[audio_dyn] + "," + lang_prio[audio],is.STORAGE_PERMANENT);
-		osdlang.style.opacity = 1;
-		osdlang.innerHTML = "<img src='unmute.png'> " + lang_prio_dyn[audio_dyn] + " ";
-		setTimeout("osdlang.style.opacity = 0; ", 3000);
-	}
-	break;
-    case "Yellow":
-	 ShowSubs = 1 - ShowSubs;
-	 videoplane.subtitles = Boolean(ShowSubs); // Enable subtitles or Disable subtitles
-	break;
-    case "Blue":
-	if ( isPause == 0 ) {
-		ShowInfo();
-		osdepginfo.style.opacity = 1 - osdepginfo.style.opacity;
-	}
-	break;
-    case "Red":
-	GetMarks();
-	ShowMediaOSD();
-	break;
-
-   case "Menu":
-	osdepginfo.style.opacity = 0;
-	osdepginfonext.style.opacity = 0;
-	isSetupMenu = 1;
-	mainmenu.style.opacity = 0.8;
-	menu = 6;
-	InitMenu(menu);
-	break;
-
-    case "VolumeMute":
-	VolumeMute();
-	break;
-    case "VolumeUp":
-	VolumeUp()
-	break;
-    case "VolumeDown":
-	VolumeDown();
-	break;
-
-
-    case KEY_REC:
-    case KEY_REC2:
-	break;
-    case "MediaRewind":
-	    if (mediaPlayer.getState() != mediaPlayer.STATE_IDLE) {
-	      mediaPlayer.play(-4000);
-	    showDisplay("REW", false, 100, 0 );
-	    }
-    break;
-    case "MediaForward":
-	    if (mediaPlayer.getState() != mediaPlayer.STATE_IDLE) {
-	      mediaPlayer.play(4000);
-	    showDisplay("FF", false, 100, 0 );
-	    }
-    break;
-    case "MediaStop":
-	    if (currMed == -1 || isPause == 1 || localRecording == 1) {
-		    if (localRecording == 1) { 
-			ss.setParameter(recDummy[0], "resume", mediaPlayer.getPosition().toString());
-		    }
-		    osdepginfo.style.opacity = 0;
-		    isFullscreen = 1; play(channels[currChan]); 
-		    UnloadMediaSettings();		
-	    } else {
-		    setResume();
-		    osdepginfo.style.opacity = 0;
-		    isFullscreen = 0; play(channels[currChan]); isFullscreen = 1;
-		    medialist.style.opacity = 0.9;
-		    showDisplay("STOP", false, 100, 0 );
-		    showMediaList();
-	    }
-    break;
-	case "MediaPlayPause":
-	    if (mediaPlayer.getState() != mediaPlayer.STATE_PAUSED) {
-	      showDisplay("PAUS", false, 100, 0 );
-	      mediaPlayer.play(0);
-	    } else {
-		if (currMed == -1 || localRecording == 1) {
-		      showDisplay("PLAY", false, 100, 0 );
-		      mediaPlayer.play(1000);
-		} else {		
-			position += (mediaPlayer.getPosition()/1000);
-			if (get_recordings == 1) {
-				playRec((recLink[currMed] + "?mode=streamtoend&time=" + position));
-			} else if (get_recordings == 2) {
-				playRec((recLink[currMed] + "?pos=time." + position));
-			}
-		}
-    	    }
-	break;
-    case KEY_1:
-	if (localRecording != 1 ) {
-		position += (mediaPlayer.getPosition()/1000) - 30;
-		if (position <= 0) { position = 0;} 
-			if (get_recordings == 1) {
-			      playRec((recLink[currMed] + "?mode=streamtoend&time=" + position));
-			} else if (get_recordings == 2) {
-			      playRec((recLink[currMed] + "?pos=time." + position));
-			}
-	} else {
-		mediaPlayer.playFromPosition((mediaPlayer.getPosition()-30000),1000);
-	}
-	break;
-    case KEY_4:
-	if (localRecording != 1 ) {
-		position += (mediaPlayer.getPosition()/1000) - 60;
-		if (position <= 0) { position = 0;} 
-			if (get_recordings == 1) {
-			      playRec((recLink[currMed] + "?mode=streamtoend&time=" + position));
-			} else if (get_recordings == 2) {
-			      playRec((recLink[currMed] + "?pos=time." + position));
-			}
-	} else {
-		mediaPlayer.playFromPosition((mediaPlayer.getPosition()-60000),1000);
-
-	}
-	break;
-    case KEY_7:
-	if (localRecording != 1 ) {
-		position += (mediaPlayer.getPosition()/1000) - 240;
-		if (position <= 0) { position = 0;} 
-			if (get_recordings == 1) {
-			      playRec((recLink[currMed] + "?mode=streamtoend&time=" + position));
-			} else if (get_recordings == 2) {
-			      playRec((recLink[currMed] + "?pos=time." + position));
-			}
-	} else {
-		mediaPlayer.playFromPosition((mediaPlayer.getPosition()-240000),1000);
-
-	}
-	break;
-
-    case KEY_5:
-	if (localRecording != 1 ) {
-	if (recMark.length>posMark && get_recordings == 1) {	
-		position = recMark[posMark]; 
-		playRec(recLink[currMed] + "?mode=streamtoend&time=" + position); 
-	}
-	}
-	break;
-    case KEY_2:
-	if (localRecording != 1 ) {
-	if (posMark>0 && get_recordings == 1) {	
-		posMark -= 1;
-		position = recMark[posMark]; 
-		playRec(recLink[currMed] + "?mode=streamtoend&time=" + position); 
-	}
-	}
-	break;
-    case KEY_8:
-	if (localRecording != 1 ) {
-	if (recMark[posMark+1] && get_recordings == 1) {	
-		posMark += 1;
-		position = recMark[posMark]; 
-		playRec(recLink[currMed] + "?mode=streamtoend&time=" + position); 
-	}
-	}
-	break;
-
-
-
-    case KEY_3:
-	if (localRecording != 1 ) {
-		position += (mediaPlayer.getPosition()/1000) + 30;
-		if (get_recordings == 1) {
-			if (position >= recDura[currMed]) {
-			 	BackToTV();
-			} else {
-				playRec((recLink[currMed] + "?mode=streamtoend&time=" + position));
-			}
-		} else if (get_recordings == 2) {
-			playRec((recLink[currMed] + "?pos=time." + position));
-		}
-	} else {
-		mediaPlayer.playFromPosition((mediaPlayer.getPosition()+30000),1000);
-	}
-	break;
-    case KEY_6:
-	if (localRecording != 1 ) {
-		position += (mediaPlayer.getPosition()/1000) + 60;
-		if (get_recordings == 1) {
-			if (position >= recDura[currMed]) {
-			 	BackToTV();
-			} else {
-				playRec((recLink[currMed] + "?mode=streamtoend&time=" + position));
-			}
-		} else if (get_recordings == 2) {
-			playRec((recLink[currMed] + "?pos=time." + position));
-		}
-	} else {
-		mediaPlayer.playFromPosition((mediaPlayer.getPosition()+60000),1000);
-	}
-	break;
-    case KEY_9:
-	if (localRecording != 1 ) {
-		position += (mediaPlayer.getPosition()/1000) + 240;
-		if (get_recordings == 1) {
-			if (position >= recDura[currMed]) {
-			 	BackToTV();
-			} else {
-				playRec((recLink[currMed] + "?mode=streamtoend&time=" + position));
-			}
-		} else if (get_recordings == 2) {
-			playRec((recLink[currMed] + "?pos=time." + position));
-		}
-	} else {
-		mediaPlayer.playFromPosition((mediaPlayer.getPosition()+240000),1000);
-	}
-	break;
-   case KEY_0:
-	if (localRecording != 1 ) {
-	position = 0; posMark = 0;
-			if (get_recordings == 1) {
-			      playRec((recLink[currMed] + "?mode=streamtoend&time=" + position));
-			} else if (get_recordings == 2) {
-			      playRec((recLink[currMed] + "?pos=time." + position));
-			}
-	} else {
-		mediaPlayer.playFromPosition(0,1000)
-	}
-	break;
-
-	default:
-        break;
-  } // end of switch
- } // end of if
-}
-
-function getRecList() {
-	getVDRstatus();
-	MaxInGroup = 14;
-	subgroup = 0;
-	subsubgroup = 0;
-try {
- if (get_recordings ==1) {
-	 // get recordings from smartTVWeb
-	  xmlhttp=new XMLHttpRequest();
-	   xmlhttp.open("GET",(server_ip + recServ + recPath + "?" + new Date().getTime()),false);
-	   xmlhttp.send();
-	   xmlDoc=xmlhttp.responseXML; 
-	   var x=xmlDoc.getElementsByTagName("item");
-	   nrMedia = x.length - 1;
-	   recTitl.length = 0;
-	   rec_lst.length = 0;
-
-	 if (recPath == "/recordings.xml") {
-	   for (var i=0;i<x.length;i++)
-		  { 
-			rec_lst[i] = new Array();
-			for (var yy=0;yy<9;yy++) { rec_lst[i][yy] = new Array(); }
-			  rec_lst[i][0] = (x[i].getElementsByTagName("title")[0].childNodes[0].nodeValue);
-			  rec_lst[i][0] = rec_lst[i][0].split("~");
-			  rec_lst[i][1] = (x[i].getElementsByTagName("enclosure")[0].getAttribute('url'));
-			  rec_lst[i][2] = (x[i].getElementsByTagName("description")[0].childNodes[0].nodeValue);
-			  rec_lst[i][3] = (x[i].getElementsByTagName("duration")[0].childNodes[0].nodeValue);
-			  rec_lst[i][4] = (x[i].getElementsByTagName("start")[0].childNodes[0].nodeValue);
-			  rec_lst[i][5] = (x[i].getElementsByTagName("isnew")[0].childNodes[0].nodeValue);
-			  rec_lst[i][6] = (x[i].getElementsByTagName("guid")[0].childNodes[0].nodeValue);
-			  //Get channel number from recordings, shows right names only if server & client use same channel order
-			  recDummy = rec_lst[i][6].split(".");
-			  recDummy = recDummy[(recDummy.length-2)].split("-");
-			  rec_lst[i][7] = recDummy[0] + "\uE003-\uE003" + channelsnames[(recDummy[0])];
-			  rec_lst[i][8] = protChn[Number(Left((recDummy[0] / 1000),1))];
-
-	 }
-
-	  //Get channel number from recordings
-		rec_lst.sort();
-	   	for (var i=0;i<x.length;i++) {
-			recTitl[i] = rec_lst[i][0];
-			recLink[i] = rec_lst[i][1];
-			recDesc[i] = rec_lst[i][2];
-			recDura[i] = rec_lst[i][3];
-			recStrt[i] = rec_lst[i][4];
-			rec_New[i] = rec_lst[i][5];
-			recGUID[i] = rec_lst[i][6];
-			recChan[i] = rec_lst[i][7];
-			recProt[i] = rec_lst[i][8];
-		}
-		recProt[i] = 1;
-	 } else {
-
-	 // old recordings list function
-	 // also used for media listing
-
-	   for (var i=0;i<x.length;i++) { 
-	          recTitl[i] = (x[i].getElementsByTagName("title")[0].childNodes[0].nodeValue);
-	          recTitl[i] = recTitl[i].split("~");
-	 //          recLink[i] = (x[i].getElementsByTagName("link")[0].childNodes[0].nodeValue);
-	          recLink[i] = (x[i].getElementsByTagName("enclosure")[0].getAttribute('url'));
-	          recDesc[i] = (x[i].getElementsByTagName("description")[0].childNodes[0].nodeValue);
-	          recDura[i] = (x[i].getElementsByTagName("duration")[0].childNodes[0].nodeValue);
-	          recStrt[i] = (x[i].getElementsByTagName("start")[0].childNodes[0].nodeValue);
-	          rec_New[i] = (x[i].getElementsByTagName("isnew")[0].childNodes[0].nodeValue);
-	          recGUID[i] = (x[i].getElementsByTagName("guid")[0].childNodes[0].nodeValue);
-                  //Media directory
-                  recChan[i] = "Media File";
-                  recProt[i] = 0; // No protection for Media Files.
-	         }
-	// try to fix display double entries in the last directory. (Only shown for some time after deleting files, should be fixed now)
-	recProt[i] = 1;
-   }
-} else if (get_recordings == 2) {
-//get recordings from streamdev
-//no media directory or delete support
-   xmlhttp=new XMLHttpRequest();
-   xmlhttp.open("GET",(server_ip + StreamPort + "recordings.rss?" + new Date().getTime()),false);
-   xmlhttp.send();
-   xmlDoc=xmlhttp.responseXML; 
-   var x=xmlDoc.getElementsByTagName("item");
-   nrMedia = x.length - 1;
-   recTitl.length = 0;
-
-   for (var i=0;i<x.length;i++)
-	  { 
-			  rec_lst[i] = new Array();
-			  for (var yy=0;yy<9;yy++) { rec_lst[i][yy] = new Array(); }
-			  rec_lst[i][0] = x[i].getElementsByTagName("title")[0].childNodes[0].nodeValue.split("  ");
-			  rec_lst[i][0] = rec_lst[i][0][1].split("~");
-			  rec_lst[i][1] = x[i].getElementsByTagName("enclosure")[0].getAttribute('url');
-			  rec_lst[i][2] = Lang[37];
-			  rec_lst[i][3] = Lang[37];
-			  rec_lst[i][4] = x[i].getElementsByTagName("title")[0].childNodes[0].nodeValue;
-			  rec_lst[i][4] = rec_lst[i][4].split(" ");
-			  rec_lst[i][4] = rec_lst[i][4][1] + " " + rec_lst[i][4][2];
-			  rec_lst[i][5] = Lang[37];
-			  rec_lst[i][6] = x[i].getElementsByTagName("link")[0].childNodes[0].nodeValue;
-			  rec_lst[i][7] = 0;
-			  rec_lst[i][8] = 0;
-	 }
-
-		rec_lst.sort();
-	   	for (var i=0;i<x.length;i++) {
-			recTitl[i] = rec_lst[i][0];
-			recLink[i] = rec_lst[i][1];
-			recDesc[i] = rec_lst[i][2];
-			recDura[i] = rec_lst[i][3];
-			recStrt[i] = rec_lst[i][4];
-			rec_New[i] = rec_lst[i][5];
-			recGUID[i] = rec_lst[i][6];
-			recChan[i] = rec_lst[i][7];
-			recProt[i] = rec_lst[i][8];
-		}
-
-
-	recProt[i] = 1;
-} else if (get_recordings == 0) {
-	 // get recordings from restfulapi
-	  xmlhttp=new XMLHttpRequest();
-	   xmlhttp.open("GET",(server_ip + RestFulAPI + "/recordings.xml?" + new Date().getTime()),false);
-	   xmlhttp.send();
-	   xmlDoc=xmlhttp.responseXML; 
-	   var x=xmlDoc.getElementsByTagName("recording");
-	   nrMedia = x.length - 1;
-	   recTitl.length = 0;
-	   rec_lst.length = 0;
-
-	   for (var i=0;i<x.length;i++)
-		  { 
-			rec_lst[i] = new Array();
-			for (var yy=0;yy<9;yy++) { rec_lst[i][yy] = new Array(); }
-			  rec_lst[i][0] = x[i].getElementsByTagName("param")[1].childNodes[0].nodeValue;
-			  rec_lst[i][0] = rec_lst[i][0].split("~");
-			  rec_lst[i][1] = x[i].getElementsByTagName("param")[2].childNodes[0].nodeValue;
-			  rec_lst[i][2] = x[i].getElementsByTagName("param")[13].textContent; 
-			  rec_lst[i][3] = x[i].getElementsByTagName("param")[8].childNodes[0].nodeValue;
-			  rec_lst[i][4] = x[i].getElementsByTagName("param")[14].childNodes[0].nodeValue;
-			  rec_lst[i][5] = x[i].getElementsByTagName("param")[4].childNodes[0].nodeValue;
-			  rec_lst[i][6] = x[i].getElementsByTagName("param")[0].childNodes[0].nodeValue;
-			  //Get channel number from recordings, shows right names only if server & client use same channel order
-			  recDummy = rec_lst[i][1].split(".");
-			  recDummy = recDummy[(recDummy.length-2)].split("-");
-			  rec_lst[i][7] = recDummy[0] + "\uE003-\uE003" + channelsnames[(recDummy[0])];
-			  rec_lst[i][8] = protChn[Number(Left((recDummy[0] / 1000),1))];
-
-	 }
-
-	  //Get channel number from recordings
-		rec_lst.sort();
-	   	for (var i=0;i<x.length;i++) {
-			recTitl[i] = rec_lst[i][0];
-			recLink[i] = rec_lst[i][1];
-			recDesc[i] = rec_lst[i][2];
-			recDura[i] = rec_lst[i][3];
-			recStrt[i] = rec_lst[i][4];
-			rec_New[i] = rec_lst[i][5];
-			recGUID[i] = rec_lst[i][6];
-			recChan[i] = rec_lst[i][7];
-			recProt[i] = rec_lst[i][8];
-		}
-		recProt[i] = 1;
-	// try to fix display double entries in the last directory. (Only shown for some time after deleting files, should be fixed now)
-}
-
-
-//end of get_recordings
-	if (ShowSubDir) {
-		MakeRecList2();
-	} else {
-		MakeRecList();
-	}
-	if (nrMedia!==0) { getRecOK = 1; } else {
-	getRecOK = 0;
-	medialist.innerHTML = "<h1 class=mainmenu>" + Lang[38] + "</center><pre>\n\n\n" + Lang[37] + "</pre></h1>";
-	}
-
-  } catch(e) {
-    alert("Get Recordings problem: " + e);
-	getRecOK = 0;
-	medialist.innerHTML = "<h1 class=mainmenu>" + Lang[38] + "</center><pre>\n\n\n" + Lang[39] + "</pre></h1>";
-  }
-}
-
-
-function GetMarks() {
-
-if (get_marks==1) {
- try {
-   posMark = 0;
-   xmlhttp=new XMLHttpRequest();
-   xmlhttp.open("GET",(server_ip + recServ + "/getMarks.xml?guid=" + recGUID[currMed] + "&" + new Date().getTime()),false);
-   xmlhttp.send();
-   xmlDoc=xmlhttp.responseXML;
-   recMark = [];
-   var x=xmlDoc.getElementsByTagName("mark");
-	   for (var i=0;i<x.length;i++)
-		{
-		var y = x[i].childNodes[0].nodeValue.split(",");
-		recMark[i] = Number(y[0]);
-		}
-  } catch(e) {
-    alert("Getting Marks problem: " + e);
-  }
- } else {
-  try {
-   posMark = 0;
-   xmlhttp=new XMLHttpRequest();
-   xmlhttp.open("GET",(server_ip + RestFulAPI + "/recordings/" + currMed + ".xml?marks=true&" + new Date().getTime()),false);
-   xmlhttp.send();
-   xmlDoc=xmlhttp.responseXML;
-   recMark = [];
-   var x=xmlDoc.getElementsByTagName("mark");
-	   for (var i=0;i<x.length;i++)
-		{
-		var y = x[i].childNodes[0].nodeValue.split(":");
-		recMark[i] = Number(y[0]*3600) + Number(y[1]*60) + Number(y[2]);
-		}
-  } catch(e) {
-    alert("Getting Marks problem: " + e);
-  }
- }
-}
-
-
-function setResume() {
-if (get_recordings == 1) {
-try {
-	position += (mediaPlayer.getPosition()/1000)
-        var xmlhttp = new XMLHttpRequest();
-        xmlhttp.open("POST", server_ip + recServ + "/setResume.xml?guid=" + recGUID[currMed] + "&resume=" + position, false);
-        xmlhttp.send();
-	recList[currMed] = "\uE003" + recList[currMed].substring(1);
-  } catch(e) {
-    alert("Setting Resume problem: " + e);
-  }
-}
-}
-
-function getResume() {
-position = 0;
-if (get_recordings == 1) {
-try {
-	  var xmlhttp = new XMLHttpRequest();
-	  var i = 0;
-	  xmlhttp.open("GET", server_ip + recServ + "/getResume.xml?guid=" + recGUID[currMed] + "&" + new Date().getTime(), false);
-	  xmlhttp.send();
-	  xmlDoc=xmlhttp.responseXML; 
-	  i = xmlDoc.getElementsByTagName("resume")[0].childNodes[0].nodeValue.split(",");
-	  position = Number(i[0]);
-  } catch(e) {
-    alert("Getting Resume problem: " + e);
-  }
-}
-}
-
-
-function setResumeNull() {
-if (get_recordings == 1) {
-try {
-        var xmlhttp = new XMLHttpRequest();
-        xmlhttp.open("POST", server_ip + recServ + "/setResume.xml?guid=" + recGUID[currMed] + "&resume=0", false);
-        xmlhttp.send();
-	recList[currMed] = "\uE010" + recList[currMed].substring(1);
-  } catch(e) {
-    alert("Setting Resume problem: " + e);
-  }
-}
-}
-
-function reccmds(option) {
-try {
-	option = Number(option);
-	if (RecCmds[option] > -1 ) {
-	        var xmlhttp = new XMLHttpRequest();
-	        xmlhttp.open("POST", server_ip + recServ + "/execreccmd?cmd=" + RecCmds[option] + "&guid=\"" + recGUID[currMed] + "\"", false);
-	        xmlhttp.send();
-		recList[currMed] = RecCmdsIcon[option] + recList[currMed].substring(1);
-		showMediaList();
-	}
-  } catch(e) {
-    alert("Execute reccmds problem: " + e);
-  }
-
-}
-
-
-
-function CheckPlugins() {
-try {
-   xmlhttp=new XMLHttpRequest();
-   xmlhttp.open("GET",(server_ip + recServ + "/vdrstatus.xml?" + new Date().getTime()),false);
-   xmlhttp.send();
-   xmlDoc=xmlhttp.responseXML; 
-	smartTVplugin = 1;
-  } catch(e) {
-    alert("NO smartTVplugin: " + e);
-	smartTVplugin = 0;
-  }
-
-//Check for Restfulapi
-
-try {
-   xmlhttp=new XMLHttpRequest();
-   xmlhttp.open("GET",(server_ip + RestFulAPI + "/info.xml?" + new Date().getTime()),false);
-   xmlhttp.send();
-   xmlDoc=xmlhttp.responseXML; 
-    Restfulapiplugin = 1;
-  } catch(e) {
-    alert("NO Restfulapiplugin: " + e);
-    Restfulapiplugin = 0;
-  }
-}
-
-function getVDRstatus() {
-if (smartTVplugin == 1) {
-try {
-   xmlhttp=new XMLHttpRequest();
-   xmlhttp.open("GET",(server_ip + recServ + "/vdrstatus.xml?" + new Date().getTime()),false);
-   xmlhttp.send();
-   xmlDoc=xmlhttp.responseXML; 
-//   var x=xmlDoc.getElementsByTagName("vdrstatus");
-   var x=xmlDoc.getElementsByTagName("diskspace");
-	  free_space = x[0].getElementsByTagName("free")[0].childNodes[0].nodeValue;
-	  perc_space = x[0].getElementsByTagName("percent")[0].childNodes[0].nodeValue;
-  } catch(e) {
-    alert("Get VDR Status problem: " + e);
-  }
-}
-if (smartTVplugin == 0 && Restfulapiplugin == 1) {
-try {
-   xmlhttp=new XMLHttpRequest();
-   xmlhttp.open("GET",(server_ip + RestFulAPI + "/info.xml?" + new Date().getTime()),false);
-   xmlhttp.send();
-   xmlDoc=xmlhttp.responseXML; 
-   var x=xmlDoc.getElementsByTagName("diskusage");
-	  free_space = x[0].getElementsByTagName("free_mb")[0].childNodes[0].nodeValue;
-	  perc_space = x[0].getElementsByTagName("used_percent")[0].childNodes[0].nodeValue;
-  } catch(e) {
-    alert("Get VDR Status problem: " + e);
-  }
- }
-}
-
-
-function DelRec() {
-	if (osdepginfo.style.opacity == 1) {osdepginfo.style.opacity = 0;}
-try {
-	//popup for confirm
-	switchtimer.style.background = "red";
-	switchtimer.style.opacity = 1;
-	switchtimer.innerHTML = "<pre class=deletefile>" + Lang[44] +"\n" + Lang[45] + "\n\n " + Left(recTitl[currMed],30) + "</pre>"; // Recording Name
-	DelisOK = 1
-  } catch(e) {
-    alert("Delete Recordings problem: " + e);
-  }
-}
-
-function DelRec2() {
-  if (get_recordings == 1) {
-	try {
-	   xmlhttp=new XMLHttpRequest();
-	   xmlhttp.open("POST",(server_ip + recServ + "/deleteRecording.xml?id=" + recGUID[currMed] ),false);
-	   xmlhttp.send();
-	   recList[currMed] = "";
-	   recGroup[currMed] = -1;
-	   recProt[currMed] = 0;
-	  } catch(e) {
-	    alert("Delete Recordings problem: " + e);
-	  }
-  } else if (get_recordings == 0) {
-//	try {
-//	   xmlhttp=new XMLHttpRequest();
-//	   xmlhttp.open("DELETE",(server_ip + RestFulAPI + "/recordings/" + recGUID[currMed] ),true);
-//	   xmlhttp.send();
-//	   recList[currMed] = "";
-//	   recGroup[currMed] = -1;
-//	   recProt[currMed] = 0;
-//	  } catch(e) {
-//	    alert("Delete Recordings problem: " + e);
-//	  }
-//
-  }
-}
-
-
-
-
-function MakeRecList() {
-//old style list
-   var x = "";
-   var xx = "";
-   for (var i=0;i<recTitl.length;i++)
-	{
-	if (recTitl[i][recMap + 2]) { 
-		if (recTitl[i][recMap + 1] != xx) {
-						var y = recTitl[i][recMap].length + 1;
-						if (recTitl[i][recMap] != x) {
-								recList[i] = "\uE002 " + recTitl[i][recMap] + " \uE002 " + String(recTitl[i]).substring(y);
-							} else {
-								recList[i] = "\uE003 " + new Array(y).join("\uE003") + " \uE002 " + String(recTitl[i]).substring(y);
-							}
-					} else {
-						var y = recTitl[i][recMap + 1].length + recTitl[i][recMap].length + 4;
-						recList[i] = new Array(y).join("\uE003") + String(recTitl[i]).substring(y - 2);
-						}
-	} else if (recTitl[i][recMap + 1]) { 
-					if (recTitl[i][recMap] != x) {
-						recList[i] = "\uE002" + recTitl[i];
-					} else {
-						var y = recTitl[i][recMap].length + 4;
-						recList[i] = new Array(y).join("\uE003") + String(recTitl[i]).substring(y - 3);
-					}
-				} else { 
-					recList[i] = "\uE003" + recTitl[i];
-				}
-	if (get_recordings == 2 ) {
-		result = recStrt[i];
-	} else{ 
-		AddInfo(i);
-	}
-
-	if (rec_New[i] == "true" ) 
-		{ 
-		recList[i] = "\uE010" + result + "\uE003" + recList[i]; 
-		} else { 
-		recList[i] = "\uE003" + result + "\uE003" + recList[i]; 
-		}
-	x = recTitl[i][recMap];
-	xx = recTitl[i][recMap + 1];
-	if ((recProt[i] == 1) && (ShowProtectedChannels == 1)) { recList[i] = "";}
-	}
-}
-
-function MakeRecList2() {
-//new style with sub maps
-   var x = "";
-   var xx = 0;
-   for (var i=0;i<recTitl.length;i++)
-	{
-	 if (recTitl[i][1]) { 
-					if (recTitl[i][0] != x) {
-						recList[i] = "\uE002\uE003" + recTitl[i][0];
-						xx += 1;
-					} else {
-						recList[i] = "" ; 
-					}
-					recGroup[i] = xx;
-				} else { 
-					recGroup[i] = 0;
-						if (get_recordings == 2 ) {
-							result = recStrt[i];
-						} else{ 
-							AddInfo(i);
-							if (recChan[i] !== "Media File") {result += "\uE003" + (recDura[i]/60).toFixed(0);}
-						}
-						if (rec_New[i] == "true" ) { 
-							recList[i] = "\uE010" + result + "\uE003" + recTitl[i]; 
-						} else { 
-							recList[i] = "\uE003" + result + "\uE003" + recTitl[i];
-						}
-				}
-
-	if ((recProt[i] == 1) && (ShowProtectedChannels == 1)) { recList[i] = "";}
-
-	x = recTitl[i][0];
-	}
-}
-
-function MakeRecList3(GroupID) {
-
-   MaxInGroup = -1;
-   for (var i=0;i<recTitl.length;i++)
-	{
-		if (recGroup[i] == GroupID) {
-			var tmp = "";
-			   for (var ii=1;ii<recTitl[i].length;ii++)
-				{
-				tmp += "\uE003" + recTitl[i][ii];
-				}
-			if (get_recordings == 2 ) {
-				result = recStrt[i];
-			} else{ 
-				AddInfo(i);
-				if (recChan[i] !== "Media File") {result += "\uE003" + (recDura[i]/60).toFixed(0);}
-			}
-			if (rec_New[i] == "true" ) { 
-				recList[i] = "\uE010" + result + tmp; // recTitl[i]; 
-			} else { 
-				recList[i] = "\uE003" + result + tmp; //recTitl[i]; 
-			}
-
-			MaxInGroup = MaxInGroup + 1;
-			if ((recProt[i] == 1) && (ShowProtectedChannels == 1)) { recList[i] = "";}
-
-		} else {
-			recList[i] = "" ; 
-		}
-	}
-}
-
-//
-//
-// sub-sublevel testing
-//
-//
-
-function MakeRecList_sublevel(GroupID) {
-//new style with sub maps on sub maps
-   var x = "";
-   var xx = 0;
-   recList.length = 0;
-   MaxInGroup = -1;
-   for (var i=0;i<recTitl.length;i++)
-	{
-	if (recGroup[i] == GroupID) {
-	 Group_Header[GroupID] = recTitl[i][0];
-		 if (recTitl[i][2]) { 
-					if (recTitl[i][1] != x) {
-						
-						recList[i] = "\uE002\uE003" + recTitl[i][1];
-						xx += 1;
-					} else {
-						recList[i] = "" ; 
-					}
-					recSubGroup[i] = xx;
-		} else { 
-					recSubGroup[i] = 0;
-					var tmp = "";
-					for (var ii=1;ii<recTitl[i].length;ii++)
-						{
-							tmp += "\uE003" + recTitl[i][ii];
-						}
-					if (get_recordings == 2 ) {
-						result = recStrt[i];
-					} else{ 
-						AddInfo(i);
-						if (recChan[i] !== "Media File") {result += "\uE003" + (recDura[i]/60).toFixed(0);}
-					}
-					if (rec_New[i] == "true" ) { 
-						recList[i] = "\uE010" + result + tmp; // recTitl[i]; 
-					} else { 
-						recList[i] = "\uE003" + result + tmp; //recTitl[i]; 
-					}
-		}
-		if ((recProt[i] == 1) && (ShowProtectedChannels == 1)) { recList[i] = "";}
-		if (recList[i] != "") { MaxInGroup = MaxInGroup + 1; }
-		x = recTitl[i][1];
-	}
-	}
-//MakeRecList_sublevel2(GroupID,0);
-}
-
-
-function MakeRecList_sublevel2(GroupID,SubGroupID) {
-   MaxInGroup = -1;
-   for (var i=0;i<recTitl.length;i++)
-	{
-		if (recGroup[i] == GroupID && recSubGroup[i] == SubGroupID) {
-			var tmp = ""; var xx = "\uE003";
-			   for (var ii=2;ii<recTitl[i].length;ii++)
-				{
-					if (recTitl[i][(ii+1)]) {
-						tmp += "\uE003\uE002" + recTitl[i][ii];
-						xx = "/";
-					} else {
-						tmp += xx + recTitl[i][ii];
-					}
-				}
-			if (get_recordings == 2 ) {
-				result = recStrt[i];
-			} else{ 
-				AddInfo(i);
-				if (recChan[i] !== "Media File") {result += "\uE003" + (recDura[i]/60).toFixed(0);}
-			}
-			if (rec_New[i] == "true" ) { 
-				recList[i] = "\uE010" + result + tmp; // recTitl[i]; 
-			} else { 
-				recList[i] = "\uE003" + result + tmp; //recTitl[i]; 
-			}
-
-			MaxInGroup = MaxInGroup + 1;
-			if ((recProt[i] == 1) && (ShowProtectedChannels == 1)) { recList[i] = "";}
-
-		} else {
-			recList[i] = "" ; 
-		}
-	}
-}
-
-//
-//
-// End of sub-sublevel testing
-//
-//
-
-function AddInfo(info) {
-//Add Date to item
-        date = new Date(Number(recStrt[info])*1000);
-        year = date.getFullYear();
-        month = date.getMonth();
-        d = date.getDate();
-        h = date.getHours();
-        m = date.getMinutes();
-	month=addzero(month + 1);
-	d=addzero(d);
-	h=addzero(h);
-	m=addzero(m);
-	if ( year==1970 ) { 
-		result = "\uE003";
-	} else {
-	        result = "\uE003" + d + '-' + month + '-' + year + ' ' + h + ':' + m;
-	}
-//
-}
-
-function showMediaList() {
-	if (osdepginfo.style.opacity == 1) {osdepginfo.style.opacity = 0;}
-	osdmedia.style.opacity = 0;
-	osdmediatime.style.opacity = 0;
-	var liststyle = "";
-	listMed = currMed - 1;
-	var MaxMed = -1;
-
-	if (getRecOK == 1) {
-		var htmlstring = "<h1 class=mainmenu>" + Lang[38] + "(" + Lang[46] + (100 - perc_space) + "%, " + (free_space/1024).toFixed(0) + " GB) </h1><pre class=mediamenu>";
-
-		if (subgroup) {
-			htmlstring = "<h1 class=mainmenu>" + Group_Header[Number(recGroup[currMed])] + "</h1><pre class=mediamenu>";
-			if (MaxInGroup < 14){ MaxMed = MaxInGroup; } else {MaxMed = 14; }
-		}
-		if (!subgroup) { 
-			for(var i=0; i<=nrMedia; i++) {
-				if (recList[i]) { MaxMed += 1;}
-			}
-		}
-
-	} else {
-
-		if (nrMedia < 14) {MaxMed = nrMedia; } else {MaxMed = 14; }
-		var htmlstring = "<h1 class=mainmenu>" + Lang[11] + channelsnames[currChan] + " </h1><pre class=mediamenu>";
-	}
-
-	if (MaxMed > 14) { MaxMed = 14; }
-	if (MaxMed < 0 ) { MaxMed = 0; }
-
-	for(var i=currMed; i<=currMed + MaxMed; i++) {
-		if (listMed>=nrMedia) { listMed= -1; }
-		if (listMed<-1) { listMed=nrMedia - 1; } 
-//		if (listMed>nrMedia) { listMed= -1; }
-
-		do
-			{
-				listMed += 1;
-			}
-		while (!recList[listMed] && (listMed<=nrMedia));
-
-		if (listMed > nrMedia) { recList[listMed] = ""; }
-
-		if (recList[listMed]) { //Solves empty string at the end.
-			if ( listMed == currMed) { htmlstring += "<span class=mediaselect>"; }
-			htmlstring += "\uE003" + Left(recList[listMed],60) + "\uE003\uE003\n";
-			if ( listMed == currMed) { htmlstring += "</span>";}
-		}
-
-	}
-	medialist.innerHTML = htmlstring + "</pre>";
-	//ShowInfo();
-}
-
-function getServerSchedule() {
-try {
-   xmlhttp=new XMLHttpRequest();
-   xmlhttp.open("GET",(server_ip + RestFulAPI + "/events/" + channels[currChan] + ".xml?timespan=" + serverEPGdays + "&" + new Date().getTime()),false);
-   xmlhttp.send();
-   xmlDoc=xmlhttp.responseXML; 
-   var x=xmlDoc.getElementsByTagName("event");
-   nrMedia = x.length - 1;
-   for (var i=0;i<x.length;i++)
-	  { 
-
-/*	// restful api layout dd 10/04/2013
-	// <event>
-	// 1 <param name="id">516</param>
-	// 2 <param name="title">Thuis</param>
-	// 3 <param name="short_text"/ >
-	// 4 <param name="description">Soapserie (BE).</param>
-	// 5 <param name="channel">S19.2E-53-1105-4016</param>
-	// 6 <param name="channel_name">BVN (S)</param>
-	// 7 <param name="start_time">1365608700</param>
-	// 8 <param name="duration">1500</param>
-	// 9 <param name="table_id">78</param>
-	// 10 <param name="version">7</param>
-	// 11 <param name="parental_rating">0</param>
-	// 12 <param name="vps">0</param>
-	// 13 <param name="images">0</param>
-	// 14 <param name="components">
-	//	<component stream="1" type="1" language="dut" description="4:3"/ >
-	//	<component stream="2" type="1" language="dut" description=""/ ></param>
-	// 15 <param name="contents">
-	// 16 <content name="Soap/Melodrama/Folkloric"/ ></param>
-	// 17 <param name="raw_contents"><raw_content name="21"/ ></param>
-	// 18 <param name="timer_exists">false</param>
-	// 19 <param name="timer_active">false</param>
-	// 20 <param name="timer_id"/ >
-	// </event>
-*/
-
-	recTitl[i] = x[i].getElementsByTagName("param")[1].childNodes[0].nodeValue;
-		try { 
-			recDesc[i] = x[i].getElementsByTagName("param")[3].childNodes[0].nodeValue; 
-		} catch(e) {
-			recDesc[i] = "";
-		}
-	recDura[i] = x[i].getElementsByTagName("param")[7].childNodes[0].nodeValue;
-	recStrt[i] = x[i].getElementsByTagName("param")[6].childNodes[0].nodeValue;
-	recChan[i] = currChan + "\uE003-\uE003" + channelsnames[currChan];
-	recGUID[i] = x[i].getElementsByTagName("param")[0].childNodes[0].nodeValue;
-
-        date = new Date(Number(recStrt[i])*1000);
-	        year = date.getFullYear();
-	        month = date.getMonth();
-	        d = date.getDate();
-        	day = date.getDay();
-	        h = date.getHours();
-	        m = date.getMinutes();
-		h=addzero(h);
-		m=addzero(m);
-	recList[i] = ''+days[day]+' '+d+' '+months[month]+' '+year+' '+h+':'+m + " " + recTitl[i];
-
-	  }
- 	getRecOK = 2;
-  } catch(e) {
-    alert("Get EPG problem: " + e);
-	getRecOK = 0;
-	medialist.innerHTML = "<h1 class=mainmenu>" + Lang[50] + "</center><pre>\n\n\n" + Lang[51] + "</pre></h1>";
-  }
-}
-
-function getSchedule(schchan){
-	SI = "";
-	recTitl.length = 0;
-	nrMedia = 0;
-  try {
-	 StreamInfo(schchan);
-
-	 eitService = toi.statics.ToiDvbEitCacheServiceItem.create(SI[1],SI[2],SI[3]);
-	 eitCache.addService(eitService);
-	 event = eitCache.getPresentEvent(eitService);
-	 events = eitCache.getEvents(eitService, (Math.round(new Date().getTime()/1000.0)), 2000000000);
-
-	if (event.name)	{
-	    if (events.more) {
-	      var t = eitCache.getEvents(eitService, (Math.round(new Date().getTime()/1000.0)), 2000000000);
-	      events.infoSequence.concat(t.infoSequence);
-	      events.more = t.more;
-	    }
-	    nrMedia = events.infoSequence.length - 1;
-	    for (var i = 0; i < events.infoSequence.length; i++) {
-
-		// Double info or scrollbar twice on the screen if nrMedia < 14
-		while ((i > 0) && (events.infoSequence[i].eventId == events.infoSequence[(i-1)].eventId) && (nrMedia > 14)) {
-			recList[i] = "";
-			i += 1;
-		}
-
-		recTitl[i] = events.infoSequence[i].name;
-		recDesc[i] = eitCache.getExtendedEventInfo(eitService,events.infoSequence[i].eventId).extendedInfo;
-		if (recDesc[i] == "" ) { recDesc[i] = eitCache.getExtendedEventInfo(eitService,events.infoSequence[i].eventId).shortInfo;}
-		recDura[i] = events.infoSequence[i].duration;
-		recStrt[i] = events.infoSequence[i].time;
-		recChan[i] = schchan + "\uE003-\uE003" + channelsnames[schchan];
-		recGUID[i] = events.infoSequence[i].eventId;
-
-	        date = new Date(Number(recStrt[i])*1000);
-		        year = date.getFullYear();
-		        month = date.getMonth();
-		        d = date.getDate();
-	        	day = date.getDay();
-		        h = date.getHours();
-		        m = date.getMinutes();
-			h=addzero(h);
-			m=addzero(m);
-			recList[i] = ' ' + days[day] + ' ' + d + ' ' + months[month] + ' ' + year + " " + h + ":" + m + " (" + (recDura[i]/60).toFixed(0) + ") " + Left(recTitl[i],30);
-		}
-	getRecOK = 2;
-	} else {
-	getRecOK = 0;
-
-	medialist.innerHTML = "<h1 class=mainmenu>" + Lang[11] + "</center><pre>\n\n\n" + Lang[52] + "</pre></h1>";
-
-	if (experimental) {
-	medialist.innerHTML += "<img src='" + channels[schchan] + ".jpg' style='width:100%; position:absolute; left:0%; top:-11%;'>";
-	}
-
-	}
-  } catch(e) {
-	getRecOK = 0;
-	medialist.innerHTML = "<h1 class=mainmenu>" + Lang[11] + "</center><pre>\n\n\n" + Lang[53] + "</pre></h1>";
-  }
-
-}
-
-
-
-function incMed(step) {
-    currMed += step;
-    if (currMed > nrMedia ) {
-        currMed = 0;
-    }
-}
-
-function decMed(step) {
-    currMed -= step;
-    if (currMed < 0) {
-        currMed = nrMedia;
-    }
-}
-
-function playRec(uri,posrec) {
-  try {
-    if (mediaPlayer.getState() != mediaPlayer.STATE_IDLE) {
-      mediaPlayer.close();
-    }
-	if (osdepginfo.style.opacity == 1) {osdepginfo.style.opacity = 0;}
-	mediaPlayer.open(uri);
-	if (posrec) {
-		mediaPlayer.playFromPosition(posrec,1000);
-	} else {
-		mediaPlayer.play(1000);
-	}
-	showDisplay("PLAY", false, 100, 0 );
-  } catch (e) {
-    alert("Failed opening recording: " + e);
-    return;
-  }
-}
-
-
-function pauseRec(uri) {
-  try {
-    if (mediaPlayer.getState() != mediaPlayer.STATE_IDLE) {
-      mediaPlayer.close();
-    }
-	if (osdepginfo.style.opacity == 1) {osdepginfo.style.opacity = 0;}
-	mediaPlayer.open(uri);
-	mediaPlayer.play(0);
-	showDisplay("PAUS", false, 100, 0 );
-  } catch (e) {
-    alert("Failed opening recording: " + e);
-    return;
-  }
-}
-
-
-
-function createNewAsset() {
-	try {
-		assetId = ams.createAsset(ams.ASSET_PVR);
-//		alert("Created " + assetId);
-	} catch(e) {
-		alert("Couldn't create asset: " + e);
-	}
-}
-
-function onStateChanged(ev) {
-//    alert("Media player state changed: state=" + ev.state + ", reason=" + ev.reason + ", code=" + ev.code);
-
-	if ( ( ev.state == 6 && ev.reason == "HostUnreachable" ) || ( ev.state == 2 && ev.reason == "PositionEnd" )) {
-	BackToTV();
-	}
-
-}
-
-// Start recording/ timeshift
-
-function ServerRecordStart() {
-//Record current program
-
-	try {
-	   xmlhttp=new XMLHttpRequest();
-	   xmlhttp.open("GET",(server_ip + recServ + "/addTimer?guid=" + channels[currChan] + "&" + new Date().getTime() ),false);
-	   xmlhttp.send();
-
-		if (xmlhttp.responseXML == null) {
-		    //settimer(EPG[NowNext][2][currChan],Lang[55],0,2);
-		    //Timer not set, try direct recording
-		    ServerRecord();
-		    settimer(0,Lang[57],0,2);
-		} else {
-		   settimer(EPG[NowNext][2][currChan],EPG[NowNext][1][currChan],0,2);
-		}
-
-	  } catch(e) {
-	    alert("Sending Timers to server problem: " + e);
-	    settimer(0,Lang[55],0,2,color_error);
-	  }
-
-}
-
-
-function ServerRecord() {
-//Instant record on server
-
-  try {
-	xmlhttp=new XMLHttpRequest();
-	//switch server to current channel
-	xmlhttp.open("POST",(server_ip + RestFulAPI + "/remote/switch/" + channels[currChan]),true);
-	xmlhttp.send();
-	//start recording
-	setTimeout("xmlhttp.open('POST',(server_ip + RestFulAPI + '/remote/Record'),false);xmlhttp.send();",5000);
-  } catch(e) {
-   alert("Sending key to server problem: " + e);
-   settimer(0,Lang[55],0,2,color_error);
-  }
-
-//end of function
-}
-
-
-
-function ServerPause() {
-//Instant pause on server
-	ServerRecord();
-	settimer(EPG[NowNext][2][currChan],Lang[70],0,2);
-	setTimeout("getPauseFile();",6000);
-//end of function
-}
-
-
-
-
-function getPauseFile() {
-
-try {
-   xmlhttp=new XMLHttpRequest();
-   xmlhttp.open("GET",(server_ip + RestFulAPI + "/recordings.xml?" + new Date().getTime()),false);
-   xmlhttp.send();
-   xmlDoc=xmlhttp.responseXML; 
-   var x=xmlDoc.getElementsByTagName("recording");
-   nrMedia = x.length - 1;
-   for (var i=0;i<x.length;i++)
-	  { 
-	var xx = x[i].getElementsByTagName("param")[2].childNodes[0].nodeValue.split(".");
-	xx = xx[(xx.length-2)].split("-");
-
-	if ( xx[0] == currChan ) {
-		recLink[0] = server_ip + recServ + x[i].getElementsByTagName("param")[2].childNodes[0].nodeValue;
-		}
-
-	 }
-
-  } catch(e) {
-    alert("Get Recordings problem: " + e);
-  }
-	getRecOK = 0;
-	recDura[0] = 0; // 3600;// set to 1 hour
-	LoadMediaSettings();// sets currMed to 0
-	recTitl[0] = "Time Shift File"
-	position = 0;
-	pauseRec(recLink[0]);
-
-}
-
-
-
-function ServerTimer(guid,evid) {
-
-try {
-   xmlhttp=new XMLHttpRequest();
-   xmlhttp.open("GET",(server_ip + recServ + "/addTimer?guid=" + guid + "&evid=" + evid + "&" + new Date().getTime() ),false);
-   xmlhttp.send();
-  } catch(e) {
-    alert("Sending Timers to server problem: " + e);
-  }
-
-
-}
-
-
-
-function BackToTV() {
-	    play(channels[currChan]);
-	    if (isPause == 1 || localRecording == 1) { 
-		UnloadMediaSettings(); 
-	    } else {
-	    	medialist.style.opacity = 0.9;
-	    	showDisplay("STOP", false, 100, 0 );
-	    	showMediaList();
-		AvInfo.length = 0;
-	    }
-}
-
-
-function onRecorderStateChanged(event) {
-//  alert("EVENT! " + event.reason + " *** " + event.state);
-  RECicon = "\uE003"; // 0xE003 0x83 Fixed width blank
-  switch (event.state) {
-    case mediaRecorder.STATE_IDLE:
-	//  "STATE_IDLE";
-      break;
-    case mediaRecorder.STATE_CONNECTING:
-	//  "STATE_CONNECTING";
-      break;
-    case mediaRecorder.STATE_PAUSED:
-	//  "STATE_PAUSED";
-      break;
-    case mediaRecorder.STATE_RECORDING:
-	//  "STATE_RECORDING";
-	RECicon = "\uE00B"; // 0xE00B 0x8B REC
-      break;
-    case mediaRecorder.STATE_FAILED:
-	//  "STATE_FAILED";
-	RECicon = "\uE01A"; // Bomb Icoon
-      break;
-  }
-
-}
-
-function ShowMediaOSD() {
-if (get_recordings == 1) {
-	// Display Name/ length 
-	var pos = position + (mediaPlayer.getPosition()/1000);
-	var pos2 = (pos / Number(recDura[currMed])) * 100;
-	if (pos2 < 1) { pos2 = 1;} 
-	if (pos2 >100) {pos2 = 100;} // in case of viewing while still recording.
-	if (pos>recMark[posMark] && recMark.length-1>posMark) { posMark += 1;}
-	pos2 = ((pos2 * 140) / 100).toFixed(0);  // make it 40% bigger
-	var pos5 = "\uE007" + new Array(pos2 - 1).join("\uE008") + new Array(140 - pos2).join("\uE009") + "\uE00A"
-	var pos4 = "";
-	var pos6 = pos5;
-	var fontc = color_progress1;
-	var x = 0;
-	  for (var i=0; i<recMark.length; i++) {
-		var pos3 = recMark[i] / Number(recDura[currMed]) * 100;
-		pos3 = ((pos3 * 140) / 100).toFixed(0); // make it 40% bigger
-		pos4 += fontc + Left(pos6,pos3 - x);
-		if (fontc == "</font>" + color_progress2) { fontc = "</font>" + color_progress1; } else { fontc = "</font>" + color_progress2;}
-		x = pos3;
-		pos6 = Right(pos5,140 - pos3);
-		}
-	pos4 += "</font>" + color_progress1 + pos6 + "</font>";
-	var x = (Number(recDura[currMed])/60).toFixed(0);
-	if (pos/60 > x) { x = (pos/60).toFixed(0);}
-	date_time();
-	osdmediatime.innerHTML = result;
-	date_time_rec();
-	osdmedia.innerHTML = "<pre class=media> \n  " + (pos/60).toFixed(0) + " / " + x + "  " + Left(recTitl[currMed],40) + "\n  " + pos4 + "\n " + result + " </pre>";
-} else if ( get_recordings == 2) {
-	var pos = position + (mediaPlayer.getPosition()/1000);
-	date_time();
-	osdmediatime.innerHTML = result;
-	osdmedia.innerHTML = "<pre class=media> \n  " + (pos/60).toFixed(0) + " \n " + Left(recTitl[currMed],40) + "\n  \n " + recStrt[currMed] + " </pre>";
-}
-}
-
-function ShowInfo() {
-//Like Show EPG Info
-  if ( medialist.style.opacity == 0 ) { updateStreamInfo(currMed);} else { AvInfo[currMed] = "";}
-  if (get_recordings == 2) {
-	result = recStrt[currMed]
-       	osdepginfo.innerHTML = "<p class=epg_head>" + Left(recTitl[currMed],60) 
-				+ "\n </p><p class=epg_avinfo>" + AvInfo[currMed] 
-				+ "</p><p class=epg_title> " + result + "\n " 
-				+ "???" + Lang[54]
-				+ "</p><p class=epg_info> Sorry STREAMDEV-plugin : " + Lang[37] + "</p></center>";
-  } else {
-        date = new Date(Number(recStrt[currMed])*1000);
-        year = date.getFullYear();
-        month = date.getMonth();
-        d = date.getDate();
-        day = date.getDay();
-        h = date.getHours();
-        m = date.getMinutes();
-	h = addzero(h);
-	m = addzero(m);
-        result = '' + days[day] + ' ' + d + ' ' + months[month] + ' ' + year + ' ' + h + ':' + m;
-
-	if (year!==1970) { 	
-       		osdepginfo.innerHTML = "<p class=epg_head>" + Left(recTitl[currMed],60) 
-					+ "</p><p class=epg_avinfo>" + AvInfo[currMed] 
-					+ "</p><p class=epg_title> " + result + "\n " 
-					+ (recDura[currMed] / 60).toFixed(0) + Lang[54] + "\n " + recChan[currMed] + "  "
-					+ "\n </p><p class=epg_info>" + Left(recDesc[currMed],750) + "</p></center>";
-	} else {
-		//info for non-vdr recordings
-	       	osdepginfo.innerHTML = "<p class=epg_head>" + Left(recTitl[currMed],60) 
-					+ "\n </p><p class=epg_avinfo>" + AvInfo[currMed] + " " + "\n \n </p></center>";
-	}
-  }
-}
-
-function onScheduledStart(event) {
-  // event is of type ToiSchedulerServiceBooking, see docs
-    var timertype = event.booking.category;
-
-  if ( timertype == "SwitchOnly") {
-	ClearScreen();
-	isFullscreen = 1; FullScreen(); 
-	isVisible = 0; setVisible(isVisible); 
-
-	//Switch from recordings
-	if (isMediaMenu) { 
-		if (medialist.style.opacity == 0) {setResume();} // No mediamenu on screen so set resume.
-		UnloadMediaSettings();
-	}
-
-	prevChan = currChan;
-	currChan = Number(ss.getParameter(event.booking.id, "Channel"));
-	ChanGroup = Number(Left((currChan / 1000),1));
-
-	// check if Group isn't protected
-	if ((protChn[ChanGroup] == 1) && (ShowProtectedChannels == 1)) {
-		currChan = prevChan;
-		ChanGroup = Number(Left((currChan / 1000),1));
-	}
-
-	// switch only if not already on that channel.
-	if (currChan !== prevChan) {
-		play(channels[currChan]);
-	} 
-	ss.remove(event.booking.id);
-	setOSDtimer();
-  } else {
-	  try {
-	    createNewAsset();
-
-		var recChannr = Number(ss.getParameter(event.booking.id, "Channel"));
-		var recGroup = Number(Left((recChannr / 1000),1));
-		var recChan = 0;
-		if (ServerAdres[recGroup] == "MultiCast" ) {
-		 	SI=channels[recChannr].split("-");
-			recChan = SI[4];
-		} else {
-			recChan = ServerAdres[recGroup] + channels[recChannr];
-		}
-
-	    mediaRecorder.open(recChan, assetId);
-
-	    var propList = new Array(ams.PROPERTY_SYSTEM_PLAYBACKURI);
-	    var properties = ams.getProperties(assetId, propList);
-	    var assetURI = properties[0].value;
-
-	    // save the assetId in the booking
-	    ss.setParameter(event.booking.id, "assetURI", assetURI);
-	    ss.setParameter(event.booking.id, "assetId", assetId);
-	    ss.setParameter(event.booking.id, "active", "True");
-	    ss.setParameter(event.booking.id, "Type", "\uE00B");
-
-	    mediaRecorder.record();
-//	    alert("Recording to " + assetURI);
-	  }
-	  catch (e) {
-	    alert(e);
-	  }
-	}
-}
-
-
-function onScheduledStop(event) {
-    var timertype = event.booking.category;
-	if ( timertype == "SwitchOnly") {
-	    ss.remove(event.booking.id);
-	    setOSDtimer();
-	} else {
-	  try {
-	    ss.setParameter(event.booking.id, "active", "False");
-	    ss.setParameter(event.booking.id, "Type", "\uE01C");
-	    mediaRecorder.close();
-	  }
-	  catch (e) {
-	    alert(e);
-	  }
-	} 
-
-}
-
-
-function ClearScreen() {
-	isSchedule = 0; schedule.style.opacity = 0;
-	isSetupMenu = 0;
-	epgactive = 0;
-	osdepginfonext.style.opacity = 0;
-	osdepginfo.style.opacity = 0;
-	mainmenu.style.opacity = 0;
-}
-
diff --git a/mute.png b/mute.png
deleted file mode 100644
index 44e9547..0000000
Binary files a/mute.png and /dev/null differ
diff --git a/settings.js b/settings.js
deleted file mode 100644
index 14ebf05..0000000
--- a/settings.js
+++ /dev/null
@@ -1,371 +0,0 @@
-// 
-// Default settings
-// 
-
-var Version = "0.26.4";
-
-server_ip_array = new Array("http://192.168.1.15","http://192.168.3.15","http://192.168.178.56","http://192.168.3.100","http://192.168.178.19","http://192.168.1.21","http://192.168.2.100","http://192.168.178.52");
-
-var server_ip = server_ip_array[0]; // default server
-var StartVolume = 15; // Volume on (re)start of the portal.
-var currChan = 10; // default channel
-
-OSDLang = new Array ("English", "Nederlands", "Deutsch");
-langfile = new Array ("lang_eng.js", "lang_dut.js","lang_ger.js");
-lang_prio = new Array("dut,eng,und","ger,deu,eng","eng,und","fre,fra,eng");
-
-cssfile = new Array ("blue.css","style_1.css");
-var css_nr;
-
-var subs_prio = "dut,eng"; //Subtitle prio
-
-var get_timer = 1; // gettimersserver 1 = smarttvweb, 0 = restfulapi
-var get_recordings = 1; // getrecordings 0 = restfulapi(only showing no play), 1 = smarttvweb, 2 = streamdev
-var get_marks = 1;// getmarks 1 = smarttvweb, 0 = restfulapi
-
-var subgroup_old = 1 ;// 0 = use old routine for sub group in recordings listing.
-
-var SortByDate = 1; //Sort recordings by date
-
-var ShowSubDir = 1 ; // 0 = no, 1 = yes (default) // show seperate maps for subdirs in menu recordings
-var showClock = 0;   // 0 = no, 1 = yes
-var SwitchGuide = 0; // 0 = no, 1 = yes
-var PipSwitchGuide = 0; // 0 = no, 1 = yes // use second/pip player for getting epg update in guide view // !!Unstable!! box might restart
-var TimeShift = 0;   // 0 = no, 1 = yes timeshift
-var KillStream = 1;  // 1 = Close stream on Standby
-var ShowProtectedChannels = 1; // 0 = yes show, 1 = don't show protected channels (default)
-var ProtectTimeOut = 60 * (60 * 1000); //time out in minutes (0 = no timeout)
-var ShowSource = 1; // show source in OSD
-var pipPlayer = 0; // 0 = no, 1 = yes Pip
-var mediaRecorder = 1; // 0 = no, 1 = yes local recording.
-var PauseOnServer = 0; // 0 = no pause on server, 1 = pause live TV on server
-var ShowMPD = 0; // 0 = don't use MPD, 1 = make use of MPD (http://www.musicpd.org/)
-
-var fullupdate = 1; // If guideview is too slow, set it to 0 (for 1910/1960), faster boxes can use 1
-// to force the use on boxes other then 19x3 use 2!!
-
-
-var ShowOsdTime = 5000; //Time to show OSD, in seconds * 1000
-var ShowSetTimer = 3000; //Time to show set timer popup, in seconds * 1000
-var ChangeTime = 2000; // Time before the channel change happens (was only with OK)
-
-var serverEPGdays = 3 * (60 * 60 * 24); // the higher the longer you wait while getting the epg info
-
-var VolumeStep = 5; // Steps the volume buttons make
-
-// Server for Recordings
-var recServ = ":" + "8000";
-var RestFulAPI = ":" + "8002";
-var MPDAddress = ":" + "8888";
-var StreamPort = ":" + "3000" + "/";
-//var StreamPort = ":" + "8000" + "/live/";
-
-var channeldigits = 2; // 0 - Max 9, 1 max 99, 2 max 999 or 3 max 9999 channels directly selectable by numbers
-
-var Fav_group = 10; // Favorite Group 10
-
-var EPGMode = 1; // 1 = FILTER_MODE_PF_AND_SCHEDULE 0 = FILTER_MODE_PF_ONLY
-
-var RecCmds = new Array(-1,1,-1,-1,-1,-1,-1,-1,-1,-1);
-var RecCmdsIcon = new Array("","\uE005","","","","","","","","");
-
-var preRecTime = 300 ;// for local recordings time before recording in seconds
-var afterRecTime = 600 ; // for local recordings time after recording in seconds
-
-
-//
-// No need to change anything from here on.
-//
-
-var experimental;// Use some experimental code
-var lang_nr;
-var testing2;
-var ShowSubs; //Flash stored
-
-VideoOutputModes = new Array(4,5,7); // Modes for the portal.
-VideoOutputModes_txt = new Array("NO_VIDEO_MODE","480I60","576I50","480P60","576P50","720P50","720P60","1080I50","1080I60","1080P23976","1080P24",
-				"1080P25","1080P29970","1080P30","1080P50","1080P59940","1080P60")
-
-// NO_VIDEO_MODE = 0
-// VIDEO_MODE_480I60 = 1
-// VIDEO_MODE_576I50 = 2
-// VIDEO_MODE_480P60 = 3
-// VIDEO_MODE_576P50 = 4 <--
-// VIDEO_MODE_720P50 = 5 <--
-// VIDEO_MODE_720P60 = 6
-// VIDEO_MODE_1080I50 = 7 <--
-// VIDEO_MODE_1080I60 = 8
-// VIDEO_MODE_1080P23976 = 9
-// VIDEO_MODE_1080P24 = 10
-// VIDEO_MODE_1080P25 = 11
-// VIDEO_MODE_1080P29970 = 12
-// VIDEO_MODE_1080P30 = 13
-// VIDEO_MODE_1080P50 = 14
-// VIDEO_MODE_1080P59940 = 15
-// VIDEO_MODE_1080P60 = 16
-
-var videoConfig;
-var Set_Res;
-var Xfactor = new Array();
-var Yfactor = new Array();
-
-// keep scale compliant with Videooutputmodes!!
-//  720x576
-Xfactor[0] = 720 / 720;
-Yfactor[0] = 576 / 576;
-// 1280x720
-Xfactor[1] = 1280 / 720; 
-Yfactor[1] = 720 / 576;
-// 1920x1080
-Xfactor[2] = 1920 / 720;
-Yfactor[2] = 1080 / 576;
-
-
-var audio = 0;
-var audio_dyn = 0;
-var subs_dyn = 0;
-
-
-var lang_prio_dyn = new Array(); //Used for dynamic audio track selection
-var subs_prio_dyn = new Array(); //Used for dynamic subs track selection
-
-
-var ChanGroup = Number(String((currChan / 1000)).substring(0,1)); // default group
-var minChan = new Array();var minchan = new Array(); var maxChan = new Array(); var defChan = new Array(); var baseChn = new Array(); var protChn = new Array(); var ServerAdres = new Array(); // Define settings for Channels.
-
-
-var NN = new Array();
-var Lang = new Array();
-var CLang = new Array();
-
-var isFullscreen = 1;
-var Volume = StartVolume;
-var AudioOut = 3; // AUDIO_CONNECTION_TYPE_ANALOG = 0; AUDIO_CONNECTION_TYPE_SPDIF = 1; AUDIO_CONNECTION_TYPE_HDMI = 2;AUDIO_CONNECTION_TYPE_DECODER = 3;AUDIO_CONNECTION_TYPE_BUFFER = 4;AUDIO_CONNECTION_TYPE_I2S = 5;
-
-var epgchan = currChan;
-var prevChan = currChan;
-
-var channels = new Array();
-var channelsnames = new Array();
-var channelsepglang = new Array();
-
-var currMed = 0;
-var listMed = 0;
-var DelisOK = 0;
-var recPath = "/recordings.xml";
-
-var menu = 0;
-var isMediaMenu = 0;
-var isVisible = 0;
-var isSetupMenu = 0;
-var isSchedule = 0;
-var MainMenu = 0;
-var mediaPlayer = null;
-var Change = 0;
-var ChangeOK = 0;
-var Extok = 0;
-var count = 0;
-
-//keys
-var KEY_0 = "U+0030";
-var KEY_1 = "U+0031";
-var KEY_2 = "U+0032";
-var KEY_3 = "U+0033";
-var KEY_4 = "U+0034";
-var KEY_5 = "U+0035";
-var KEY_6 = "U+0036";
-var KEY_7 = "U+0037";
-var KEY_8 = "U+0038";
-var KEY_9 = "U+0039";
-var KEY_REC = "U+00bd";
-var KEY_REC2 = "MediaRecord";
-var KEY_OK = "Accept";
-//Extra keys
-// Comhem Remote
-var KEY_FAV = "U+e0003";
-var KEY_FILM = "U+e0033";
-var KEY_HELP2 = "U+f0001";
-// old kpn (vip1710/1760)
-var KEY_OPNAMES = "U+0046";
-var KEY_HELP = "Info";
-var KEY_DIENSTEN = "Portal";
-var KEY_A = "U+0041";	// |>
-var KEY_B = "U+0042";	// hh
-var KEY_C = "U+0043";	// @
-var KEY_D = "U+0044";	// >@
-// Comx keyboard
-var KEY_DVR = "DVR";
-var KEY_WWW = "Web";
-var KEY_STOP = "U+001B";
-var KEY_EPG = "List";
-var KEY_MPT = "MediaPreviousTrack";
-var KEY_MNT = "MediaNextTrack";
-// Comx remote
-
-
-
-var eitCache = null;
-var events = null;
-var eitService = null;
-var EPGShortnext;
-var EPGShortnow;
-var listChan = 0;
-var NowNext = 0;
-var EpgInfo = new Array();
-var EpgExtInfo = new Array();
-var files = new Array();
-
-//
-//NowNext,	1 = programma naam	event.name			,currchan
-//0  1		2 = start		event.time
-//2 = schedule	3 = lengte		event.duration (/60 = minuten)
-//		4 = shortinfo
-//		5 = extinfo
-//		6 = eventid
-//		7 = EPGNow / EPGNext
-//		8 = ParentalRating
-//		9 = ContentNibbles
-var EPG = new Array();
-EPG[0] = new Array();
-EPG[1] = new Array();
-EPG[2] = new Array();
-EPG[0][1] = new Array();
-EPG[0][2] = new Array();
-EPG[0][3] = new Array();
-EPG[0][4] = new Array();
-EPG[0][5] = new Array();
-EPG[0][6] = new Array();
-EPG[0][7] = new Array();
-EPG[0][8] = new Array();
-EPG[0][9] = new Array();
-EPG[1][1] = new Array();
-EPG[1][2] = new Array();
-EPG[1][3] = new Array();
-EPG[1][4] = new Array();
-EPG[1][5] = new Array();
-EPG[1][6] = new Array();
-EPG[1][7] = new Array();
-EPG[1][8] = new Array();
-EPG[1][9] = new Array();
-EPG[2][1] = new Array();
-EPG[2][2] = new Array();
-EPG[2][3] = new Array();
-EPG[2][4] = new Array();
-EPG[2][5] = new Array();
-EPG[2][6] = new Array();
-EPG[2][7] = new Array();
-EPG[2][8] = new Array();
-EPG[2][9] = new Array();
-
-var content;
-var connib = 0x00000000;
-var osdtimeout = 0;
-var osdVolumetimeout = 0;
-var epgactive = 0;
-var preChan = 0;
-var preGrp = 0;
-var timerChan = 10;
-var TimerActions;
-var initialDelayID = 0;
-var CAdelayID = 0;
-var ProtectID = 0;
-var SleepTimer = 0;
-var SleepTimerID = -1;
-var initialDelayPlayID = -1;
-var TimedChangeID = -1;
-
-var instanttimer = new Array();
-var inst_timer = 0;
-
-var switchicon = "\uE003";
-var CAicon = "\uE00F";
-var RECicon = "\uE003";
-var Radioicon = "\uE003";
-
-var AvInfo = new Array();
-var xx = 0;
-
-var subsmode = 0;  // "cfg.media.subtitling.modepriority","Teletext,DVB"
-
-var rec_lst = new Array(); // Full recording list, used for sorting
-var recTitl = new Array(); // title of recording
-var recLink = new Array(); // link to get recording
-var recDesc = new Array(); // description of the recording
-var recDura = new Array(); // duration of the recording
-var recStrt = new Array(); // date of recording
-var recList = new Array(); // used to verify if the right recording is going to be deleted
-var recMark = new Array(); // marks made in the recording, eg by Noad, Markad
-var rec_New = new Array(); // Flag if recording is new (unseen)
-var recGUID = new Array(); // GUID of recording
-var recChan = new Array(); // Channel ID
-var recDummy= new Array(); //
-var recGroup= new Array(); // group index
-var recProt = new Array(); // protect recording based on channelgroup
-var recSubGroup = new Array(); // used for subgroups
-var subgroup= 0 ; // Used for subdirs in recording view
-var subsubgroup = 0;// Used for subdirs in recording view
-var MaxInGroup=14; // Used for subdirs in recording view
-var Group_Header = new Array(); // Header for submenu.
-
-var posMark = 0;
-var recMap = 0;
-
-var timersID = new Array();
-var timersFlag = new Array();
-var timersStrt = new Array();
-var timersStop = new Array();
-var timersDays = new Array();
-var timersDay  = new Array();
-var timersName = new Array();
-var timersFile = new Array();
-var timersEvnt = new Array();
-var timersChan = new Array();
-var maxTimers = 0;
-var timerOK = 0;
-
-var searchtimersID = new Array();
-var searchtimersSearch = new Array();
-var searchtimersFlag = new Array();
-var SearchTimer = new Array();
-
-var getRecOK = 0;
-var position = 0;
-
-var timer = new Array();
-var timers = new Array();
-var searchtimers = new Array();
-var getbookingID = 0;
-var timerID = 0;
-var nrMedia = 0;
-var MPDListener = 0;
-
-//vdr status
-var free_space = 0;
-var perc_space = 0;
-
-var isPause = 0; //used by pause routine.
-
-var Fav_base = Fav_group * 1000;
-var Fav_max_channel;
-baseChn[Fav_group] = Fav_base;
-defChan[Fav_group] = Fav_base + 1;
-minChan[Fav_group] = Fav_base + 1;
-//
-var Chan_Ver = "Not set";
-var Fav_key1; 
-var set_yellow_key = 0;
-var URL;
-var initialDelayPlay = 0; 
-var PlayDelayID;
-var PIPDelayID;
-var ErrorAgain = 0;
-var smartTVplugin; // Turn on or off the use of smartTVplugin
-var Restfulapiplugin; // Turn on or off the use of Restfulapiplugin
-var localRecording = 0;
-var box_ip; // Used for testing plugins
-var test_ip; // Used for testing plugins
-
-var color_switchtimer = "color_switchtimer";
-var color_default = "color_default";
-var color_error = "color_error";
-
diff --git a/settings2.js b/settings2.js
deleted file mode 100644
index 9348b31..0000000
--- a/settings2.js
+++ /dev/null
@@ -1,113 +0,0 @@
-
-var fsList; var fsSchedList; var fsSched;
-
-var color_bg = "#fc5";
-var color_sched_head = "color:white";
-var color_sched_font = "color:black";
-
-var color_progress1 = "<font color=red>";
-var color_progress2 = "<font color=white>";
-
-
-function setOSDscale() {
-	fsList = (18*Yfactor[Set_Res]) + "px"; //1080 = 34, 720 = 23, 576 = 18
-	fsSchedList = (18*Yfactor[Set_Res]) + "px"; //1080 = 34, 720 = 23, 576 = 18
-	fsSched = (26*Yfactor[Set_Res]) + "px"; //1080 = 49, 720 = 33, 576 = 26
-}
-
-function GetSchedule(schchan,tablelength){
-	//Old style Schedule, used in Guide View.
-	SI = "";
-  try {
-	 StreamInfo(schchan);
-
-	 eitService = toi.statics.ToiDvbEitCacheServiceItem.create(SI[1],SI[2],SI[3]);
-	 eitCache.addService(eitService);
-	 event = eitCache.getPresentEvent(eitService);
-	 events = eitCache.getEvents(eitService, (Math.round(new Date().getTime()/1000.0)), 2000000000);
-
-	if (event.name)	{
-	    if (events.more) {
-	      var t = eitCache.getEvents(eitService, (Math.round(new Date().getTime()/1000.0)), 2000000000);
-	      events.infoSequence.concat(t.infoSequence);
-	      events.more = t.more;
-	    }
-
-	    var txt = "<table><tr>";
-	    var i = 0;
-	    for (i = 0; i < events.infoSequence.length && i < tablelength; i++) {
-
-		while ((i > 0) && (events.infoSequence[i].eventId == events.infoSequence[(i-1)].eventId)) {
-			i = i + 1;
-		}
-
-		tijd = events.infoSequence[i].time;
-		date = new Date(tijd*1000); 
-		tijd = date.toUTCString();
-		tijd = new Date(tijd);
-		var tm = tijd.getMinutes();
-		var th = tijd.getHours();
-		th=addzero(th);
-		tm=addzero(tm);
-
-	      txt = txt + "<td style='font-size:" + fsSchedList + ";" + color_sched_font + ";'>\uE003\uE003\uE003\uE003\uE003" + th + ":" + tm + "     (" + (events.infoSequence[i].duration/60).toFixed(0) + ")  " + Left(events.infoSequence[i].name,30) + "</td></tr>";
-	    }
-	   txt = txt + "</table>";
-	   schedule.innerHTML = "<p style='" + color_sched_head + ";font-size:" + fsSched + ";'>" + "\uE003" + schchan + "\uE003" + channelsnames[schchan] + txt + "</p>";
-	} else {
-	  schedule.innerHTML = "<p style='" + color_sched_head + ";font-size:" + fsSched + ";'>" + "\uE003" + schchan + "\uE003" + channelsnames[schchan] + "</p>";
-	}
-
-  } catch(e) {
-    alert("Get EPG problem: " + e);
-    schedule.innerHTML = "<p style='" + color_sched_head + ";font-size:" + fsSched + ";'>" + "\uE003" + schchan + "\uE003" + channelsnames[schchan] + "</p><p>" + Lang[6] + "</p>";
-  }
-
-}
-
-
-// Channelslist / EPG Guide
-//
-// show currchan - 5
-// highlite currchan
-// show currchan + 5
-// 
-// check if chan is OK
-// 
-function showChannelList() {
-	var liststyle = "";
-	var htmlstring = "<table border='0'><tr>";
-	listChan = currChan-5;
-	for(var i=currChan-5; i<=currChan+5; i++) {
-		do
-			{
-				listChan += 1;
-				if (listChan<minChan[ChanGroup]) {
-					listChan=maxChan[ChanGroup];
-					}
-				if (listChan>maxChan[ChanGroup]) {
-					listChan=minChan[ChanGroup];
-				}
-			}
-
-		while (!channels[listChan] && (listChan<maxChan[ChanGroup]));
-		if (fullupdate) { GetEPG(listChan); }
-		if ( listChan == currChan) { 
-			if (!fullupdate) { GetEPG(listChan); }
-			liststyle = "background:" + color_bg + ";";
-		}  else {
-			liststyle = "";
-		}
-		EpgInfo[0] = EPG[0][7][listChan];
-		EpgInfo[1] = EPG[1][7][listChan];
-		htmlstring = htmlstring + "<td style='" + liststyle + "font-size:" + fsList + ";'>\uE003\uE003" + listChan + "\uE003</td><td style='" + liststyle + "font-size:" + fsList + ";'>" + Left(channelsnames[listChan],15) + "\uE003</td><td style='" + liststyle + "font-size:" + fsList + ";'>"  + Left(EpgInfo[NowNext],64) + "</td></tr>";
-	}
-	htmlstring = htmlstring + "</table>";
-	channellist.innerHTML = htmlstring;
-        chanlistepg.innerHTML = "<p class=epg>" + EPG[NowNext][1][currChan] + "</p><p class=list>" + Left(EPG[NowNext][4][currChan],250) + "</p>" ;
-
-}
-
-
-// END of Channelslist / EPG Guide
-
diff --git a/skins/black.css b/skins/black.css
new file mode 100644
index 0000000..cdaea62
--- /dev/null
+++ b/skins/black.css
@@ -0,0 +1,420 @@
+* {
+	margin: 0;
+	padding: 0;
+	border: 0;
+	vertical-align: baseline;
+}
+
+body {
+	background		: url(../images/background.png) repeat #000;
+	width			: 100%;
+	height			: 100%;
+	margin			: 0;
+	padding			: 0;
+	font-family		: 'Ubuntu', sans-serif;
+}
+
+videoplane#videoplane {
+	position	: absolute;
+	left		: 0px;
+	top			: 0px;
+	height		: 100%;
+	width		: 100%;
+	z-index		: 500;
+}
+
+/* OSD Bottom of Decorder */
+
+div#osdmain {
+	font-family		: 'Ubuntu', sans-serif;
+	font-weight		: 400;
+	position		: absolute;
+	z-index			: 505;
+	background		: url(../images/osd-bg.png) top center repeat-x rgba(0,0,0,0.8);
+	width			: 94%;
+	height			: 25%;
+	bottom			: 3%;
+	left			: 3%;
+	color			: #FFF;
+	overflow		: hidden;
+}
+
+	div#osdnr {
+		font-size		: 58px;
+		display			: table;
+		font-weight		: 700;
+		color			: #feb900;
+		position 		: absolute;
+		width 			: 8%;
+		height			: 100%;
+		left			: 0%;
+		top				: 0%;
+		text-align		: center;
+		border-right	: 1px solid #444;
+		background		: rgba(0,0,0,0.4);
+	}
+	
+		div#osdnr span {	
+			display			: table-cell;
+			vertical-align	: middle;
+		}
+		
+	div#osdname {
+		font-size		: 40px;
+		font-weight		: 700;
+		position		: absolute;
+		width			: 60%;
+		height			: 25%;
+		left			: 10%;
+		top 			: 15%;
+		border-bottom	: 1px solid #444;
+		white-space		: nowrap; 
+		overflow		: hidden;
+		text-overflow	: ellipsis; 
+	}
+
+	div#osdtimer {
+		color			: #feb900;
+		position		: absolute;
+		width			: auto;
+		text-align		: center;
+		left			: 10%;
+		top				: 45%;
+		border-radius	: 10px;
+		-webkit-border-radius: 10px;
+		background		: rgba(0,0,0,0.3);
+		padding			: 10px;
+		font-size		: 28px;
+	}
+	
+	div#osdepg {
+		position		: absolute;
+		width			: 50%;
+		height			: 55%;
+		left			: 20%;
+		top				: 45%;
+		line-height		: 28px;
+		white-space		: nowrap;
+		overflow		: hidden;
+		text-overflow	: ellipsis;
+		font-size		: 28px;
+	}
+	
+	div#osdtime {
+		font-size		: 28px;
+		line-height		: 45px;
+		color			: #FFF;
+		position		: absolute;
+		width			: 30%;
+		height			: 25%;
+		right			: 3%;
+		top				: 15%;
+		text-align		: right;
+		border-bottom	: 1px solid #444;
+		white-space		: nowrap;
+		overflow		: hidden;
+		text-overflow	: ellipsis;
+	}
+
+	div#osdca {
+		font-size		: 50px;
+		color			: #999;
+		position		: absolute;
+		width			: auto;
+		right			: 3%;
+		top				: 45%;
+		text-align		: right;
+		border-radius	: 10px;
+		-webkit-border-radius: 10px;
+		background		: rgba(0,0,0,0.3);
+		padding			: 10px;
+	}
+	
+/* END - OSD Bottom of Decorder */
+
+	.bluekey {
+	color	: blue;
+	}
+	.#ad0806key {
+	color	: #ad0806;
+	}
+	.yellowkey {
+	color	:yellow;
+	}
+	.greenkey {
+	color	:green;
+	}
+	.mainfont {
+	font-size:49px;
+	color:black;
+	}
+	
+	.notset {
+	color	:grey;
+	}
+
+	.select {
+	background	:#fc5;
+	-webkit-border-radius:25px;
+	color:black;
+	font-size:49px;
+	}
+
+	.mediaselect {
+	background	:#fc5;
+	-webkit-border-radius:25px;
+	color:black;
+	font-size:38px;
+	}
+
+	pre.mediamenu {
+	font-size:38px;
+	color:black;
+	}
+
+	p.epg_head { 
+	color:white;
+	text-align: center;
+	}
+
+	p.epg_avinfo {
+	color:black;
+	text-align: center;
+	}
+
+	p.epg_title {
+	color:white;
+	text-align: center;
+	}
+
+	p.epg_info {
+	color:yellow;
+	text-align: center;
+	}
+
+	pre.color_switchtimer {
+	background		: #660066;
+	}
+
+	pre.color_default {
+	background		: green;
+	}
+
+	pre.color_error {
+	background		: #ad0806;
+	}
+
+
+
+	videoplane#videoplane {
+		position:absolute;
+		left:0px;
+		top:0px;
+		height:100%;
+		width:100%;
+		z-index:500;
+	}
+
+	h1.mainmenu {
+	font-size:66px;
+	color:white;
+	text-align: center;
+	}
+
+	pre.mainmenu {
+	font-size:49px;
+	color:black;
+	}
+	pre.mainhead {
+	font-size:66px;
+	color:white;
+	text-align: center;
+	}
+
+	pre.media {
+	color:white;
+	font-size:49px;
+	}
+
+	pre.epgtimerinfo {
+	color:white;
+	text-align: center;
+	}
+
+	p.epgtimerinfo {
+	text-align: center;
+	}
+
+
+	p.epg {
+	font-size:36px;
+	color:black;
+	text-align: center;
+	}
+	
+	p.list {
+	font-size:34px;
+	color:black;
+	text-align: center;
+	}
+
+	p.osdtimer {
+	font-size:34px;
+	color:black;
+	}
+
+	div#channellist { 
+	z-index			: 400;
+		position	: absolute;
+		width		: 100%;
+		height		: 48%;
+		left		: 7%;
+		top		: 4%;
+	background		: #bbb;
+	}
+
+	div#colorkeys { 
+	z-index			: 401;
+		position	: absolute;
+		width		: 100%;
+		left		: 10%;
+		top		: 84%;
+		font-size:36px;
+	}
+
+	div#chanlistepg { 
+	z-index			: 402;
+		position	: absolute;
+		width		: 42%;
+		left		: 7%;
+		top		: 50%;
+	}
+
+	div#osdvolume { 
+	z-index			: 501;
+		position	: absolute;
+		width		: 63%;
+		left		: 10%;
+		top		: 80%;
+		opacity		: 0;
+		color		: green;
+		font-size:66px;
+	}
+
+	div#osdmedia { 
+		width		:80%;
+		position	:absolute;
+		left		:10%;
+		top		:60%;
+		z-index		:506;
+		opacity		:0;
+		-webkit-border-radius:50px;
+	background		: #3366ff;
+	}
+
+	div#osdmediatime {
+	z-index			: 506;
+		position	: absolute;
+		width		: 42%;
+		right		: 15%;
+		top		: 63%;
+		color		: white;
+		font-size:35px;
+		text-align: right;
+	}
+
+
+
+	div#schedule {
+	width		:50%;
+	height		:75%;
+	position	:absolute;
+	left		:25%;
+	top		:10%;
+	opacity		:0;
+	z-index		:510;
+	-webkit-border-radius:50px;
+	background		: #3366ff;
+	}
+
+	div#osdmute {
+	width		:7%; 
+	position	:absolute; 
+	left		:76%; 
+	top		:9%;
+	z-index		:515;
+	opacity		:0;
+	}
+
+	div#osdlang {
+	width		:7%;
+	position	:absolute;
+	left		:76%;
+	top		:9%;
+	z-index		:515;
+	opacity		:0;
+	color		:white;
+		font-size:30px;
+	}
+
+	div#mainmenu {
+		width		: 40%;
+		height		: 100%;
+		color		: #FFF;
+		text-align	: left;
+		position	: absolute;
+		left		: 3%;
+		top			: 3%;
+		z-index		: 520;
+		opacity		: 0;
+		background	: url(../images/osd-bg.png) top center repeat-x rgba(0,0,0,0.8);
+	}
+
+	div#medialist {
+		width		: 80%;
+		position	: absolute;
+		left		: 10%;
+		top			: 10%;
+		bottom		: 10%;
+		z-index		: 520;
+		opacity		: 0;
+		-webkit-border-radius:50px;
+		background	: #3366ff;
+	}
+
+	div#switchtimer {
+		width		: 45%;
+		position	: absolute;
+		left		: 21%;
+		top			: 26%;
+		z-index		: 530;
+		opacity		: 0;
+		-webkit-border-radius: 25px;
+		color		: white;
+		font-size 	: 36px;
+		background	: green;
+	}
+
+	div#osdepginfo {
+		width		: 80%;
+		position	: absolute;
+		left		: 10%;
+		top			: 10%;
+		z-index		: 525;
+		opacity		: 0;
+		-webkit-border-radius :0 25px 0 25px;
+		background	: #3366ff;
+		font-size	: 39px;
+	}
+
+	div#osdepginfonext {
+		width		: 80%;
+		position	: absolute;
+		left		: 10%;
+		top			: 10%;
+		z-index		: 525;
+		opacity		: 0;
+		-webkit-border-radius :0 25px 0 25px;
+		background	: #3366ff;
+		font-size	: 39px;
+	}
\ No newline at end of file
diff --git a/skins/blue.css b/skins/blue.css
new file mode 100644
index 0000000..b810e92
--- /dev/null
+++ b/skins/blue.css
@@ -0,0 +1,384 @@
+	body{
+	backgroundColor : #ccc;
+	}
+
+	.bluekey {
+	color	: blue;
+	}
+	.redkey {
+	color	: red;
+	}
+	.yellowkey {
+	color	:yellow;
+	}
+	.greenkey {
+	color	:green;
+	}
+	.mainfont {
+	font-size:49px;
+	color:black;
+	}
+	
+	.notset {
+	color	:grey;
+	}
+
+	.select {
+	background	:#fc5;
+	-webkit-border-radius:25px;
+	color:black;
+	font-size:49px;
+	}
+
+	.mediaselect {
+	background	:#fc5;
+	-webkit-border-radius:25px;
+	color:black;
+	font-size:38px;
+	}
+
+	pre.mediamenu {
+	font-size:38px;
+	color:black;
+	}
+
+	pre.deletefile {
+	text-align	: center;
+	color		:white;
+	font-size	:36px;
+	background	:red;
+	}
+
+	pre.nonfree {
+	text-align	: center;
+	color		:white;
+	font-size	:36px;
+	background	:red;
+	}
+
+
+	p.epg_head { 
+	color:white;
+	text-align: center;
+	}
+
+	p.epg_avinfo {
+	color:black;
+	text-align: center;
+	}
+
+	p.epg_title {
+	color:white;
+	text-align: center;
+	}
+
+	p.epg_info {
+	color:yellow;
+	text-align: center;
+	}
+
+	pre.color_switchtimer {
+	background		: #660066;
+	}
+
+	pre.color_default {
+	background		: green;
+	}
+
+	pre.color_error {
+	background		: red;
+	}
+
+
+
+	videoplane#videoplane {
+		position:absolute;
+		left:0px;
+		top:0px;
+		height:100%;
+		width:100%;
+		z-index:500;
+	}
+
+	h1.mainmenu {
+	font-size:66px;
+	color:white;
+	text-align: center;
+	}
+
+	pre.mainmenu {
+	font-size:49px;
+	color:black;
+	}
+	pre.mainhead {
+	font-size:66px;
+	color:white;
+	text-align: center;
+	}
+
+	pre.media {
+	color:white;
+	font-size:49px;
+	}
+
+	pre.epgtimerinfo {
+	color:white;
+	text-align: center;
+	}
+
+	p.epgtimerinfo {
+	text-align: center;
+	}
+
+
+	p.epg {
+	font-size:36px;
+	color:black;
+	text-align: center;
+	}
+	
+	p.list {
+	font-size:34px;
+	color:black;
+	text-align: center;
+	}
+
+	p.osdtimer {
+	font-size:34px;
+	color:black;
+	}
+
+
+	div#osdmain {
+	position		: absolute;
+	z-index			: 505;
+	width			: 80%;
+	top			: 60%;
+	bottom			: 9%;
+	left			: 10%;
+	-webkit-border-radius		: 50px;
+	background		: #3366ff;
+	}
+
+	div#osdnr {
+	position	 	: absolute;
+	z-index			: 505;
+	width 			: 13%;
+	height			: 30%;
+	left			: 3%;
+	top			: -15%;
+	-webkit-border-radius	: 25px;
+	background		: red;
+	color			: black;
+		font-size:81px;
+	text-align: center;
+	}
+	
+	div#osdname {
+	z-index			: 505;
+		position	: absolute;
+		width		: 69%;
+		height		: 4%;
+		left		: 3%;
+		top 		: 20%;
+		color		: black;
+		font-size:51px;
+	}
+
+
+	div#osdtimer {
+	z-index			: 505;
+		position		: absolute;
+		width			: 7%;
+		left			: 5%;
+		top			: 30%;
+	}
+
+	div#osdtime {
+	z-index			: 505;
+		position	: absolute;
+		width		: 42%;
+		right		: 5%;
+		top		: 7%;
+		color		: white;
+		font-size:35px;
+		text-align: right;
+	}
+
+	
+	div#osdepg {
+	z-index			: 505;
+		position	: absolute;
+		width		: 63%;
+		left		: 17%;
+		top		: 30%;
+		color		: white;
+		font-size:36px;
+	}
+	
+	div#osdca { 
+	z-index			: 505;
+		position	: absolute;
+		width		: 5%;
+		left		: 75%;
+		top		: 20%;
+		color		: black;
+		font-size:60px;
+	}
+
+
+	div#channellist { 
+	z-index			: 400;
+		position	: absolute;
+		width		: 100%;
+		height		: 48%;
+		left		: 7%;
+		top		: 4%;
+	background		: #bbb;
+	}
+
+	div#colorkeys { 
+	z-index			: 401;
+		position	: absolute;
+		width		: 100%;
+		left		: 10%;
+		top		: 84%;
+		font-size:36px;
+	}
+
+	div#chanlistepg { 
+	z-index			: 402;
+		position	: absolute;
+		width		: 42%;
+		left		: 7%;
+		top		: 50%;
+	}
+
+	div#osdvolume { 
+	z-index			: 501;
+		position	: absolute;
+		width		: 63%;
+		left		: 10%;
+		top		: 80%;
+		opacity		: 0;
+		color		: green;
+		font-size:66px;
+	}
+
+	div#osdmedia { 
+		width		:80%;
+		position	:absolute;
+		left		:10%;
+		top		:60%;
+		z-index		:506;
+		opacity		:0;
+		-webkit-border-radius:50px;
+	background		: #3366ff;
+	}
+
+	div#osdmediatime {
+	z-index			: 506;
+		position	: absolute;
+		width		: 42%;
+		right		: 15%;
+		top		: 63%;
+		color		: white;
+		font-size:35px;
+		text-align: right;
+	}
+
+
+
+	div#schedule {
+	width		:50%;
+	height		:75%;
+	position	:absolute;
+	left		:25%;
+	top		:10%;
+	opacity		:0;
+	z-index		:510;
+	-webkit-border-radius:50px;
+	background		: #3366ff;
+	}
+
+	div#osdmute {
+	width		:7%; 
+	position	:absolute; 
+	left		:76%; 
+	top		:9%;
+	z-index		:515;
+	opacity		:0;
+	}
+
+	div#osdlang {
+	width		:7%;
+	position	:absolute;
+	left		:76%;
+	top		:9%;
+	z-index		:515;
+	opacity		:0;
+	color		:white;
+		font-size:30px;
+	}
+
+	div#mainmenu {
+	width		:80%;
+	position	:absolute;
+	left		:10%;
+	top		:10%;
+	bottom		:10%;
+	z-index		:520;
+	opacity		:0;
+	-webkit-border-radius:50px;
+	background		: #3366ff;
+	}
+
+	div#medialist {
+	width		:80%;
+	position	:absolute;
+	left		:10%;
+	top		:10%;
+	bottom		:10%;
+	z-index		:520;
+	opacity		:0;
+	-webkit-border-radius:50px;
+	background		: #3366ff;
+	}
+
+	div#switchtimer {
+	width		:45%;
+	position	:absolute;
+	left		:21%;
+	top		:26%;
+	z-index		:530;
+	opacity		:0;
+	-webkit-border-radius:25px;
+	color		:white;
+		font-size:36px;
+	background	:green;
+	}
+
+	div#osdepginfo {
+	width		:80%;
+	position	:absolute;
+	left		:10%;
+	top		:10%;
+	z-index		:525;
+	opacity		:0;
+	-webkit-border-radius:50px;
+	background		: #3366ff;
+		font-size:39px;
+	}
+
+	div#osdepginfonext {
+	width		:80%;
+	position	:absolute;
+	left		:10%;
+	top		:10%;
+	z-index		:525;
+	opacity		:0;
+	-webkit-border-radius:50px;
+	background		: #3366ff;
+		font-size:39px;
+	}
+
diff --git a/style_1.css b/style_1.css
deleted file mode 100644
index 11bd43f..0000000
--- a/style_1.css
+++ /dev/null
@@ -1,104 +0,0 @@
-body {
-
-}
-div#osdmain {
-	font-family		: 'Ubuntu', sans-serif !important;
-	font-weight		: 400 !important;
-	position		: absolute !important;
-	z-index			: 505 !important;
-	background		: url(osd-bg.png) top center repeat-x rgba(0,0,0,0.8) !important;
-	width			: 100% !important;
-	height			: 25% !important;
-	bottom			: 0 !important;
-	left			: 0 !important;
-	color			: #FFF !important;
-	border-radius	: 0 30px 0 30px !important;
-	overflow		: hidden !important;
-}
-
-	div#osdnr {
-		font-size		: 40px !important;
-		display			: table !important;
-		font-weight		: 700 !important;
-		color			: #feb900 !important;
-		position 		: absolute !important;
-		width 			: 8% !important;
-		height			: 100% !important;
-		left			: 0% !important;
-		top				: 0% !important;
-		text-align		: center !important;
-		border-right	: 1px solid #444 !important;
-		background		: rgba(0,0,0,0.4) !important;
-	}
-	
-		div#osdnr span {	
-			display			: table-cell !important;
-			vertical-align	: middle !important;
-		}
-		
-	div#osdname {
-		font-size		: 22px !important;
-		font-weight		: 700 !important;
-		position		: absolute !important;
-		width			: 60% !important;
-		height			: 25% !important;
-		left			: 10% !important;
-		top 			: 15% !important;
-		border-bottom	: 1px solid #444 !important;
-		white-space		: nowrap !important; 
-		overflow		: hidden !important;
-		text-overflow	: ellipsis !important; 
-	}
-
-	div#osdtimer {
-		color			: #feb900 !important;
-		position		: absolute !important;
-		width			: auto !important;
-		text-align		: center !important;
-		left			: 10% !important;
-		top				: 45% !important;
-		border-radius	: 10px !important;
-		-webkit-border-radius: 10px !important;
-		background		: rgba(0,0,0,0.3) !important;
-		padding			: 10px !important;
-	}
-	
-	div#osdepg {
-		position		: absolute !important;
-		width			: 50% !important;
-		height			: 55% !important;
-		left			: 20% !important;
-		top				: 45% !important;
-		line-height		: 28px !important;
-		white-space		: nowrap !important;
-		overflow		: hidden !important;
-		text-overflow	: ellipsis !important;
-	}
-	
-	div#osdtime {
-		font-size		: 18px !important;
-		color			: #FFF !important;
-		position		: absolute !important;
-		width			: 30% !important;
-		height			: 25% !important;
-		right			: 3% !important;
-		top				: 15% !important;
-		text-align		: right !important;
-		border-bottom	: 1px solid #444 !important;
-		white-space		: nowrap !important;
-		overflow		: hidden !important;
-		text-overflow	: ellipsis !important;
-	}
-
-	div#osdca { 
-		color			: #999 !important;
-		position		: absolute !important;
-		width			: auto !important;
-		right			: 3% !important;
-		top				: 45% !important;
-		text-align		: right !important;
-		border-radius	: 10px !important;
-		-webkit-border-radius: 10px !important;
-		background		: rgba(0,0,0,0.3) !important;
-		padding			: 10px !important;
-	}
diff --git a/unmute.png b/unmute.png
deleted file mode 100644
index 70000a8..0000000
Binary files a/unmute.png and /dev/null differ
-- 
cgit v1.2.3