 

 var SIDs;
 var slW;
 var slH;
 var anzRows;
 var anzCols;
 var startCol=0;
 var startRow=0;
 var SL;
 var storeSID;
 var showSenderLogo=0;
 var gSender=new Array();
 var fName;
 var showHelp;
 var SLSize='big'; 
gSender.push(new Array(37,'ARD','ARD / ZDF'));
gSender.push(new Array(36,'ZDF','ARD / ZDF'));
gSender.push(new Array(6,'BR','Dritte'));
gSender.push(new Array(11,'HR','Dritte'));
gSender.push(new Array(14,'MDR','Dritte'));
gSender.push(new Array(15,'NDR','Dritte'));
gSender.push(new Array(5,'RBB','Dritte'));
gSender.push(new Array(44,'SWR','Dritte'));
gSender.push(new Array(35,'WDR','Dritte'));
gSender.push(new Array(210,'Das Vierte','Private'));
gSender.push(new Array(12,'Kabel1','Private'));
gSender.push(new Array(22,'Pro7','Private'));
gSender.push(new Array(23,'RTL','Private'));
gSender.push(new Array(24,'RTL2','Private'));
gSender.push(new Array(25,'SRTL','Private'));
gSender.push(new Array(38,'Sat1','Private'));
gSender.push(new Array(152,'Tele 5','Private'));
gSender.push(new Array(34,'VOX','Private'));
gSender.push(new Array(111,'EinsExtra','Digital'));
gSender.push(new Array(8,'EinsFestival','Digital'));
gSender.push(new Array(9,'EinsPlus','Digital'));
gSender.push(new Array(91,'ZDF Kultur','Digital'));
gSender.push(new Array(133,'ZDFinfokanal','Digital'));
gSender.push(new Array(51,'ZDFneo','Digital'));
gSender.push(new Array(52,'13th Street','Sparte'));
gSender.push(new Array(2,'3sat','Sparte'));
gSender.push(new Array(193,'Animal Planet','Sparte'));
gSender.push(new Array(3,'BR-alpha','Sparte'));
gSender.push(new Array(315,'Biography Channel','Sparte'));
gSender.push(new Array(235,'Cartoon Network','Sparte'));
gSender.push(new Array(58,'Classica','Sparte'));
gSender.push(new Array(226,'Comedy Central','Sparte'));
gSender.push(new Array(231,'DMAX','Sparte'));
gSender.push(new Array(100,'DW-tv','Sparte'));
gSender.push(new Array(359,'Deutsches Wetterfernsehen','Sparte'));
gSender.push(new Array(60,'Discovery Channel','Sparte'));
gSender.push(new Array(219,'Discovery HD','Sparte'));
gSender.push(new Array(61,'Disney Channel','Sparte'));
gSender.push(new Array(300,'Disney Cinemagic','Sparte'));
gSender.push(new Array(10,'Eurosport','Sparte'));
gSender.push(new Array(234,'Eurosport 2','Sparte'));
gSender.push(new Array(237,'FOX','Sparte'));
gSender.push(new Array(361,'Fashion TV','Sparte'));
gSender.push(new Array(172,'Heimatkanal','Sparte'));
gSender.push(new Array(318,'History Channel','Sparte'));
gSender.push(new Array(304,'Kabel1 Classics','Sparte'));
gSender.push(new Array(13,'Ki.Ka','Sparte'));
gSender.push(new Array(46,'MTV','Sparte'));
gSender.push(new Array(356,'MTV Dance','Sparte'));
gSender.push(new Array(309,'MTV Entertainment','Sparte'));
gSender.push(new Array(355,'MTV Hits','Sparte'));
gSender.push(new Array(20,'Phoenix','Sparte'));
gSender.push(new Array(311,'RTL Crime','Sparte'));
gSender.push(new Array(314,'Sat.1 comedy','Sparte'));
gSender.push(new Array(303,'Spiegel Geschichte','Sparte'));
gSender.push(new Array(360,'Spiegel TV','Sparte'));
gSender.push(new Array(455,'Spiegel TV Wissen','Sparte'));
gSender.push(new Array(370,'TIMM TV','Sparte'));
gSender.push(new Array(306,'VH-1 Classic','Sparte'));
gSender.push(new Array(32,'VIVA','Sparte'));
gSender.push(new Array(4,'arte','Sparte'));
gSender.push(new Array(323,'sixx','Sparte'));
gSender.push(new Array(123,'BBC','News'));
gSender.push(new Array(98,'BloombergTV','News'));
gSender.push(new Array(93,'CNN','News'));
gSender.push(new Array(94,'EuroNews','News'));
gSender.push(new Array(40,'N24','News'));
gSender.push(new Array(81,'n-tv','News'));
gSender.push(new Array(113,'HH1','Lokale'));
gSender.push(new Array(350,'NRW TV','Lokale'));
gSender.push(new Array(218,'OTV','Lokale'));
gSender.push(new Array(203,'RNFplus','Lokale'));
gSender.push(new Array(145,'Spreekanal','Lokale'));
gSender.push(new Array(216,'TIDE','Lokale'));
gSender.push(new Array(186,'TV Franken','Lokale'));
gSender.push(new Array(182,'TVBerlin','Lokale'));
gSender.push(new Array(229,'intv','Lokale'));
gSender.push(new Array(232,'münchen 2','Lokale'));
gSender.push(new Array(31,'münchen.tv','Lokale'));
gSender.push(new Array(192,'rheinmaintv','Lokale'));
gSender.push(new Array(108,'ATV','Ausland'));
gSender.push(new Array(441,'ATV2','Ausland'));
gSender.push(new Array(185,'Belgien 1','Ausland'));
gSender.push(new Array(183,'CNBC','Ausland'));
gSender.push(new Array(109,'DR1','Ausland'));
gSender.push(new Array(110,'DR2','Ausland'));
gSender.push(new Array(376,'E! Entertainment','Ausland'));
gSender.push(new Array(354,'HD Suisse','Ausland'));
gSender.push(new Array(365,'K TV','Ausland'));
gSender.push(new Array(103,'NL 1','Ausland'));
gSender.push(new Array(104,'NL 2','Ausland'));
gSender.push(new Array(105,'NL 3','Ausland'));
gSender.push(new Array(449,'ORF 3','Ausland'));
gSender.push(new Array(451,'ORF Sport Plus','Ausland'));
gSender.push(new Array(17,'ORF1','Ausland'));
gSender.push(new Array(18,'ORF2','Ausland'));
gSender.push(new Array(372,'Okto.TV','Ausland'));
gSender.push(new Array(102,'RTL Lux','Ausland'));
gSender.push(new Array(369,'RTL TVI','Ausland'));
gSender.push(new Array(41,'SF1','Ausland'));
gSender.push(new Array(42,'SF2','Ausland'));
gSender.push(new Array(322,'ServusTV','Ausland'));
gSender.push(new Array(371,'Super RTL CH','Ausland'));
gSender.push(new Array(206,'TSI1','Ausland'));
gSender.push(new Array(207,'TSI2','Ausland'));
gSender.push(new Array(27,'TSR1','Ausland'));
gSender.push(new Array(28,'TSR2','Ausland'));
gSender.push(new Array(208,'TV 2','Ausland'));
gSender.push(new Array(146,'TV Slovenija 1','Ausland'));
gSender.push(new Array(147,'TV Slovenija 2','Ausland'));
gSender.push(new Array(29,'TV5','Ausland'));
gSender.push(new Array(136,'TW1','Ausland'));
gSender.push(new Array(134,'9 Live','Sparte 2'));
gSender.push(new Array(307,'AXN','Sparte 2'));
gSender.push(new Array(230,'Anixe HD','Sparte 2'));
gSender.push(new Array(435,'BBC entertainment','Sparte 2'));
gSender.push(new Array(106,'Beate Uhse TV','Sparte 2'));
gSender.push(new Array(191,'Bibel TV','Sparte 2'));
gSender.push(new Array(270,'Big Brother','Sparte 2'));
gSender.push(new Array(196,'Blue Movie 1','Sparte 2'));
gSender.push(new Array(377,'Blue Movie 3','Sparte 2'));
gSender.push(new Array(373,'Blue Movie2','Sparte 2'));
gSender.push(new Array(440,'BonGusto','Sparte 2'));
gSender.push(new Array(308,'Boomerang','Sparte 2'));
gSender.push(new Array(368,'DMC.TV','Sparte 2'));
gSender.push(new Array(445,'E! Entertainment (deu)','Sparte 2'));
gSender.push(new Array(319,'ESPN Amerika','Sparte 2'));
gSender.push(new Array(375,'ESPN Classic Sport','Sparte 2'));
gSender.push(new Array(405,'Eurosport HD','Sparte 2'));
gSender.push(new Array(189,'Extreme Sports Channel','Sparte 2'));
gSender.push(new Array(214,'Focus Gesundheit','Sparte 2'));
gSender.push(new Array(68,'Goldstar TV','Sparte 2'));
gSender.push(new Array(362,'Gute Laune TV','Sparte 2'));
gSender.push(new Array(70,'Junior','Sparte 2'));
gSender.push(new Array(321,'LIGATOTAL','Sparte 2'));
gSender.push(new Array(181,'MGM','Sparte 2'));
gSender.push(new Array(301,'Motor Vision TV','Sparte 2'));
gSender.push(new Array(363,'Motors TV','Sparte 2'));
gSender.push(new Array(401,'NAT GEO WILD','Sparte 2'));
gSender.push(new Array(402,'National Geographic Channel','Sparte 2'));
gSender.push(new Array(406,'National Geographic HD','Sparte 2'));
gSender.push(new Array(352,'Nautical Channel','Sparte 2'));
gSender.push(new Array(217,'Nick','Sparte 2'));
gSender.push(new Array(310,'Nick Premium','Sparte 2'));
gSender.push(new Array(317,'PASSION','Sparte 2'));
gSender.push(new Array(202,'PULS4','Sparte 2'));
gSender.push(new Array(73,'Planet','Sparte 2'));
gSender.push(new Array(366,'Playboy TV','Sparte 2'));
gSender.push(new Array(367,'Playhouse Disney','Sparte 2'));
gSender.push(new Array(312,'RTL Living','Sparte 2'));
gSender.push(new Array(313,'Romance TV','Sparte 2'));
gSender.push(new Array(364,'Silverline','Sparte 2'));
gSender.push(new Array(357,'Sonnenklar TV','Sparte 2'));
gSender.push(new Array(320,'Sport1','Sparte 2'));
gSender.push(new Array(188,'Syfy','Sparte 2'));
gSender.push(new Array(316,'TNT Film','Sparte 2'));
gSender.push(new Array(305,'TNT Serie','Sparte 2'));
gSender.push(new Array(353,'Trace TV','Sparte 2'));
gSender.push(new Array(176,'gotv','Sparte 2'));
gSender.push(new Array(430,'nicktoons','Sparte 2'));
gSender.push(new Array(351,'Channel 21','Shopping-TV'));
gSender.push(new Array(131,'Home Shopping Europe','Shopping-TV'));
gSender.push(new Array(132,'QVC','Shopping-TV'));
gSender.push(new Array(443,'Disney Junior','Sky'));
gSender.push(new Array(408,'Disney XD','Sky'));
gSender.push(new Array(238,'FOX Sky','Sky'));
gSender.push(new Array(302,'History HD','Sky'));
gSender.push(new Array(447,'Kinowelt TV','Sky'));
gSender.push(new Array(453,'Playboy TV Europe','Sky'));
gSender.push(new Array(266,'SKY SPORT HD 2','Sky'));
gSender.push(new Array(239,'Sky Action','Sky'));
gSender.push(new Array(241,'Sky Cinema','Sky'));
gSender.push(new Array(243,'Sky Cinema +1','Sky'));
gSender.push(new Array(245,'Sky Cinema +24','Sky'));
gSender.push(new Array(247,'Sky Cinema Hits','Sky'));
gSender.push(new Array(249,'Sky Comedy','Sky'));
gSender.push(new Array(251,'Sky Emotion','Sky'));
gSender.push(new Array(253,'Sky Fussball Bundesliga','Sky'));
gSender.push(new Array(255,'Sky Krimi','Sky'));
gSender.push(new Array(257,'Sky Nostalgie','Sky'));
gSender.push(new Array(264,'Sky Select','Sky'));
gSender.push(new Array(259,'Sky Sport 1','Sky'));
gSender.push(new Array(261,'Sky Sport 2','Sky'));
gSender.push(new Array(263,'Sky Sport Austria','Sky'));
gSender.push(new Array(265,'Sky Sport HD','Sky'));
 
 function storeSIDs(){
 fOBJ=document.forms[fName];
 fOBJ.elements['broadcastsList'].value=SIDs;
 fOBJ.submit();
 }
 function setCB(status){
 document.forms['cb1'].showSL.checked=status;
 document.forms['cb2'].showSL.checked=status;
 document.forms['fSID'].elements['showSenderLogo'].value=document.forms['cb1'].showSL.checked?1:0;
 }
 
 function initSenderOrder(slWidth,slHeight,anzR,anzC,myFName,myShowHelp){
 fName=myFName;
 slW=slWidth;
 slH =slHeight;
 if(slW==57 && slH==27) SLSize='57x27';
 if(slW==38 && slH==18) SLSize='38x18';
 anzRows=anzR;
 anzCols=anzC;
 if(typeof(myShowHelp)=='undefined'){ showHelp=true;}
 updateList();
 }
 
 function begin (element, x, y) {
 setElemCSS(element,true);
 var startX=element.mouseX;
 var startY=element.mouseY;
 var TMP=getID(element);
 var myPos=TMP[0];
 storeSID=TMP[1];
 startCol=myPos%anzCols;
 startRow=Math.floor(myPos/anzCols);
 var SID1=SIDs.slice(0,myPos);
 var SID2=SIDs.slice(myPos+1);
 SIDs=SID1.concat(SID2); 
 }

 function drag (element, x, y) {
 var TMP=getColRow(x,y);
 var myPos=TMP[2];
 var infoTxt='Position: '+(myPos+1);
 if(myPos>SIDs.length) infoTxt=REMOVETXT;
 updateInfo(infoTxt);
 }

 function end (element, x, y) {
 var TMP=getColRow(x,y);
 if(TMP[2]> SIDs.length || TMP[1] >anzRows){
 }else{
 SIDs.splice(TMP[2],0,storeSID);
 }
 setElemCSS(element,false);
 updateList();
 }
 
 function getID(element){
 var TMP=element.id.split('-');
 var myPos=Math.round(TMP[0].substr(1,TMP[0].length));
 var storeSID=Math.round(TMP[1]);
 return new Array(myPos,storeSID);
 }
 function setElemCSS(element,active){
 element.style.zIndex=active? 10000:10;
 element.style.border=active? '1px solid #cc0033':'1px solid #dde9f9';
 }
 
 function getColRow(x,y){
 anzRows=Math.ceil(storeSID.length/anzCols);
 var myCol=startCol+Math.round(x/slW);
 if(myCol<0) myCol=0;
 if(myCol >=anzCols) myCol=anzCols-1;
 var myRow=startRow+Math.round(y/slH);
 if(myRow <0) myRow=0;
 var myPos=myRow*anzCols+myCol;
 return new Array(myCol,myRow,myPos);
 }
 
 function updateInfo(s) {
 document.getElementById('info').style.display=s==''?'none':'block';
 document.getElementById('info').innerHTML=s;
 }

 function getSenderNameById(SID){
 for(i=0; i<gSender.length; i++){
 if(gSender[i][0]==SID){
 return gSender[i][1];
 break;
 }
 }
 }
 function chkIsUserSID(SID){
 var OK=false;
 for(x=0;x<SIDs.length; x++){
 if(SIDs[x]==SID){
 OK=true;
 break;
 }
 }
 return OK;
 }
 
 function retSIDPos(SID){
 var SIDpos =0;
 for(x=0;x<SIDs.length; x++){
 if(SIDs[x]==SID){
 SIDpos=x;
 break;
 }
 }
 return SIDpos;
 }
 
 function initDrag(){
 SL=new Array();
 for(n=0; n<SIDs.length; n++){
 SL[n]=DragHandler.attach(document.getElementById('s'+n+'-'+SIDs[n]));
 SL[n].dragBegin=begin;
 SL[n].drag=drag;
 SL[n].dragEnd=end;
 }
 }
 
 function addSender(sid){
 SIDs.push(sid);
 updateList();
 }
 
 function addDelGroup(senderGroup,addDel){
 var TMP_SIDs=new Array();
 for(n=0; n <gSender.length; n++){
 if(gSender[n][2]==senderGroup) TMP_SIDs.push(gSender[n][0]);
 }
 if(addDel==1){
 for(n=0; n<TMP_SIDs.length; n++){
 if(! chkIsUserSID(TMP_SIDs[n])) SIDs.push(TMP_SIDs[n]);
 }
 }
 if(addDel==0){
 for(n=0; n<TMP_SIDs.length; n++){
 if(chkIsUserSID(TMP_SIDs[n])){
 SIDs.splice(retSIDPos(TMP_SIDs[n]),1);
 }
 }
 }
 updateList();
 }

 var SAVEFORM='<a href="javascript:storeSIDs();" class="but_xxl_orange normal" >Einstellungen Speichern</a>';
 var HIDESL1 ='';
 var HIDESL2 =''; var REMOVETXT='Sender aus Meine Sender entfernen?<br/><span class="bold">JA:</span> Maus Loslassen<br/><span class="bold">NEIN:</span> Zurückschieben'
 var HELPTXT='Sie können die <b>Senderreihenfolge durch Drag & Drop umsortieren</b> (Senderlogo mit der Maus anklicken, Maustaste gedrückt halten, auf eine neue Position verschieben und die Maustaste loslassen). Um einen Sender zu entfernen, ziehen Sie das Senderlogo auf den Papierkorb. Nach Abschluss Ihrer Auswahl und Sortierung bitte zur dauerhaften Übernahme auf <a href="javascript:storeSIDs()" title="Einstellungen speichern"><b>Einstellungen speichern</b></a> klicken.';
 if(showHelp==false){
 REMOVETXT='';
 HELPTXT='';
 }
 
 function updateList(){
 updateInfo('');
 var HTML='';
 HTML +='<p class="tMediumBlue">'+HELPTXT+'</p>';
 for(n=0; n<SIDs.length; n++){
 var senderName=getSenderNameById(SIDs[n]);
 HTML += '<div id="s'+n+'-'+SIDs[n]+'" class="sl"><img src="http://sl.media.tvinfo.de/sl/20101220/'+SLSize+'/'+SIDs[n]+'.gif" alt="'+senderName+'" title="'+senderName+'" border="0" /></div>';
 }
 HTML +='<div class="ssl"><img src="/common/img/css/sl_delete.gif" border="0" alt="Ziehen Sie ein Sendersymbol auf dieses Feld, um es aus meine Sender zu entfernen" title="Ziehen Sie ein Sendersymbol auf dieses Feld, um es aus meine Sender zu entfernen" /></div>';
 HTML += '<div class="clear"></div>';
 HTML += HIDESL1;
 HTML += SAVEFORM;
 document.getElementById('userSender').innerHTML=HTML;
 var storeGroup='';
 var HTML='<div>';
 for(i=0; i<gSender.length; i++){
 var SID=gSender[i][0];
 var senderName=gSender[i][1];
 var senderGroup= gSender[i][2];
 if(senderGroup!=storeGroup){
 HTML += '</div><div class="clear"></div>';
 if(storeGroup!='') HTML +='<div class="w799 line darkBlue"></div>';
 HTML +='<div class="clearLeft"></div>';
 HTML += '<div class="w100 floatLeft"><h3 class="tMediumBlue">'+senderGroup+'</h3></div>';
 HTML += '<div class="floatRight"><a href="javascript:addDelGroup(\''+senderGroup+'\',1)" class="but_s_blue" title="Alle hinzufügen" alt="Alle hinzufügen">+</a></div>';
 HTML += '<div class="floatRight"><a href="javascript:addDelGroup(\''+senderGroup+'\',0)" class="but_s_blue" title="Alle entfernen" alt="Alle entfernen">-</a></div>';
 HTML += '<div style="float:left;left:100px;padding-top:5px;width:580px;">';
 storeGroup=senderGroup;
 }
 if(! chkIsUserSID(SID)){
 //HTML += '<div class="ssl"><a href="javascript:addSender('+SID+')"><img src="http://sl.media.tvinfo.de/sl/20101220/small/'+SID+'.gif" alt="'+senderName+'" title="'+senderName+'" border="0" /></a></div>';
 HTML += '<div class="sName"><a href="javascript:addSender('+SID+')">'+senderName+'</a></div>';
 }else{
 //HTML += '<div class="ssl"><img src="http://sl.media.tvinfo.de/sl/20101220/bin/'+SID+'.gif" alt="'+senderName+'" title="'+senderName+'" border="0" /></div>';
 HTML += '<div class="sName"><a class="active">'+senderName+'</a></div>';
 }
 }
 HTML += '</div><div class="clear h20"></div>';
 HTML += HIDESL2;
 HTML += SAVEFORM;
 document.getElementById('noUserSender').innerHTML=HTML;
 initDrag();
 }
