
if(typeof CHANNEL=="undefined"){var CHANNEL={};}
document.onkeyup=KeyCheck;function KeyCheck(e){var KeyID=(window.event)?event.keyCode:e.keyCode;switch(KeyID){case 27:hideProgram();break;}}
CHANNEL.helper=function(){var weekDays=new Array('Søndag','Mandag','Tirsdag','Onsdag','Torsdag','Fredag','Lørdag');var months=new Array('januar','februar','marts','april','maj','juni','juli','august','september','oktober','november','december');var loading=false;return{disableElementSelection:function(elm){elm.onselectstart=function(){return false;};elm.unselectable="on";elm.style.MozUserSelect="none";},isLeaveOrEnter:function(e,handler){var reltg=e.relatedTarget?e.relatedTarget:e.type=='mouseout'?e.toElement:e.fromElement;while(reltg&&reltg!=handler)
reltg=reltg.parentNode;return(reltg!=handler);},toggleDayChooserClassName:function(elm,day){if(loading)return;var root=document.getElementById('day-chooser-content');var dcChilds=YAHOO.util.Dom.getElementsByClassName('dayEntry chosen','div',root);if(dcChilds.length<=0){dcChilds=YAHOO.util.Dom.getElementsByClassName('dayEntry last chosen','div',root);}
if(dcChilds.length>0){dcChilds[0].className='dayEntry';var tvtidDate=document.getElementById('tvtid-date');tvtidDate.innerHTML=day;}
if(elm!=null){elm.className+=' chosen';}},reloadSlider:function(timestamp){if(loading){return;}
loading=true;var guideDiv=document.getElementById('tv-guide-program');var tvGuide=document.getElementById('tv-guide');var guideLoader=document.getElementById('guide-loader');CHANNEL.guideloader.show();if(tvGuide){guideDiv.removeChild(tvGuide);}
var max=1329605999;var min=1328914800;var onComplete=function(){var s=new CHANNEL.Slider(guideDiv,timestamp,[min,max]);}
var anim=new YAHOO.util.Anim(guideLoader,{opacity:{to:1}},0.8,YAHOO.util.Easing.easeOut);anim.onComplete.subscribe(onComplete);anim.animate();},reloadSliderLong:function(filter){var grouping=filter.getSelectedCh();var day=parseInt(filter.getSelectedDay());var hour=parseInt(filter.getSelectedStart());var category=filter.getSelectedLimit();day-=10*CHANNEL.Slider.ONE_HOUR_SECS;if(hour<=5){hour+=24;}
var starttime=day+hour*CHANNEL.Slider.ONE_HOUR_SECS;if(category!=0){CHANNEL.HTML.disableCheckBoxes();CHANNEL.HTML.setShowCheckBoxes(false);}else{CHANNEL.HTML.setShowCheckBoxes(true);}
CHANNEL.filter.setGrouping(grouping);CHANNEL.filter.setCategory(category);CHANNEL.user.loadUser();if(grouping!='user'){CHANNEL.user.setUserId(null);}
this.reloadSlider(starttime);var date=new Date(starttime*1000);var d=date.getDate();var wd=date.getDay();var m=date.getMonth();var newDate=weekDays[wd]+' d. '+d+' '+months[m];searchIndex=weekDays[wd]+' '+(d<=9?'0':'')+d+'/'+(m<=9?'0':'')+(m+1);var elm=null;var root=document.getElementById('day-chooser-content');var childs=YAHOO.util.Dom.getElementsByClassName('dayEntry','div',root);for(var i=0,length=childs.length;i<length;i++){var atag=childs[i].getElementsByTagName('a');if(atag[0].innerHTML==searchIndex){elm=childs[i];break;}}
this.toggleDayChooserClassName(elm,newDate);var dc=document.getElementById('day-chooser-content');var width=105;if(i<length-7){dc.style.left='-'+(i*width)+'px';var dcl=document.getElementById('day-chooser-right-btn');YAHOO.util.Dom.removeClass(dcl,'disabled');if(i==0){var dcl=document.getElementById('day-chooser-left-btn');YAHOO.util.Dom.addClass(dcl,'disabled');}}else{dc.style.left='-'+((length-7)*width)+'px';var dcl=document.getElementById('day-chooser-left-btn');YAHOO.util.Dom.removeClass(dcl,'disabled');var dcl=document.getElementById('day-chooser-right-btn');YAHOO.util.Dom.addClass(dcl,'disabled');}},setLoading:function(flag){loading=flag;}};}();CHANNEL.Anim=function(){var HORIZONTAL_SPEED=0.75;var FORWARD=1;var BACKWARD=2;var DAY_ENTRY_WIDTH=105;var daysAnimating=false;var slideHorizontaly=function(slider,dir){var page=slider.currPage;var offset=slider.hOfset;var elm=slider.contentElement;switch(dir){case FORWARD:var onComplete=function(){slider.currPage=page+1;slider.loadingPage=false;slider.setDate();};slide(elm,-(offset*(page+1)),HORIZONTAL_SPEED,onComplete);break;case BACKWARD:var onComplete=function(){slider.currPage=page-1;slider.loadingPage=false;slider.setDate();}
slide(elm,-(offset*(page-1)),HORIZONTAL_SPEED,onComplete);break;default:}};var slide=function(e,offset,speed,onComplete){var anim=new YAHOO.util.Anim(e,{left:{to:offset}},speed,YAHOO.util.Easing.easeOut);if(typeof onComplete!="undefined"){anim.onComplete.subscribe(onComplete);}
anim.animate();};return{slideBackward:function(e,slider){if(slider.loadingPage==true)return;slider.loadingPage=true;if(slider.buttons.next.enabled){slider.setSliderButton(CHANNEL.Slider.NEXT,true);}
var ofset=CHANNEL.Slider.ONE_HOUR_SECS*CHANNEL.Slider.HOURS_PR_PAGE;var from=slider.startTime-slider.backCount*ofset+slider.currPage*ofset;if(from<slider.limits.min){slider.loadingPage=false;return;}
if(from-ofset<slider.limits.min){slider.setSliderButton(CHANNEL.Slider.PREV,false);}
if(slider.currPage<=0){slider.currPage=1;slider.backCount=slider.backCount+1;var callback=function(){slideHorizontaly(slider,BACKWARD);};slider.fetchPage(CHANNEL.Slider.PREV,callback);return;}
slideHorizontaly(slider,BACKWARD);},slideForward:function(e,slider){if(slider.loadingPage==true)return;slider.loadingPage=true;if(slider.buttons.prev.enabled){slider.setSliderButton(CHANNEL.Slider.PREV,true);}
var ofset=CHANNEL.Slider.ONE_HOUR_SECS*CHANNEL.Slider.HOURS_PR_PAGE;var to=slider.startTime+slider.currPage*ofset-slider.backCount*ofset;if(to>slider.limits.max){slider.loadingPage=false;return;}
if(to+ofset>slider.limits.max){slider.setSliderButton(CHANNEL.Slider.NEXT,false);}
if(slider.currPage>=slider.pageCount-1){slider.frontCount=slider.frontCount+1;var callback=function(){slideHorizontaly(slider,FORWARD);};slider.fetchPage(CHANNEL.Slider.NEXT,callback);return;}
slideHorizontaly(slider,FORWARD);},dayChooserLeft:function(e){if(daysAnimating)return;var dc=document.getElementById('day-chooser-content');var currLeft=parseInt(dc.style.left.replace(/px/,""));var offset=currLeft+DAY_ENTRY_WIDTH;var dcr=document.getElementById('day-chooser-right-btn');YAHOO.util.Dom.removeClass(dcr,'disabled');if(offset<=0){daysAnimating=true;slide('day-chooser-content',offset,0.10,function(){daysAnimating=false;});}
if(offset>=0){var dcl=document.getElementById('day-chooser-left-btn');YAHOO.util.Dom.addClass(dcl,'disabled');}},dayChooserRight:function(e){if(daysAnimating)return;var dc=document.getElementById('day-chooser-content');var currLeft=parseInt(dc.style.left.replace(/px/,""));var offset=currLeft-DAY_ENTRY_WIDTH;var nrChilds=dc.getElementsByTagName('div').length;var dcl=document.getElementById('day-chooser-left-btn');YAHOO.util.Dom.removeClass(dcl,'disabled');if(offset>=-(nrChilds-7)*DAY_ENTRY_WIDTH){daysAnimating=true;slide('day-chooser-content',offset,0.10,function(){daysAnimating=false;});}
if(offset<-(nrChilds-8)*DAY_ENTRY_WIDTH){var dcr=document.getElementById('day-chooser-right-btn');YAHOO.util.Dom.addClass(dcr,'disabled');}}};}();CHANNEL.Loader=function(){this.loader=null;return{init:function(id){loader=document.getElementById(id);},show:function(){loader.style.display='block';},hide:function(){loader.style.display='none';}}}();CHANNEL.Tooltip=function(){var BOX_WIDTH=207;var BOX_HEIGHT=110;var DIST_OFFSET=10;var toolTip=null;var tooltipContent=null;var container=null;var createEmptyTooltip=function(){var tt=document.createElement('div');var ttTop=document.createElement('div');var ttBottom=document.createElement('div');var ttContent=document.createElement('div');tt.className='programTooltip';tt.style.width=(BOX_WIDTH)+'px';tt.style.height=(BOX_HEIGHT)+'px';tt.style.display='none';ttTop.className='tooltipTop';ttBottom.className='tooltipBottom';ttContent.className='tooltipContent';tt.appendChild(ttTop);tt.appendChild(ttContent);tt.appendChild(ttBottom);tooltipContent=ttContent;return tt;};var getContainerBounds=function(){var bounds=YAHOO.util.Dom.getRegion(container.id);return bounds;};var setMouseCoords=function(e){var x=YAHOO.util.Event.getPageX(e);var y=YAHOO.util.Event.getPageY(e);positionBox(x,y);};var positionBox=function(x,y){var bounds=getContainerBounds();var boxLeft,boxTop;if(x<bounds.right-BOX_WIDTH-DIST_OFFSET-10){boxLeft=x-bounds.left+DIST_OFFSET+10;}else{boxLeft=x-bounds.left-BOX_WIDTH-DIST_OFFSET-10;}
if(y<bounds.bottom-BOX_HEIGHT-DIST_OFFSET-6){boxTop=y-bounds.top+DIST_OFFSET;}else{boxTop=y-bounds.top-BOX_HEIGHT-DIST_OFFSET;}
if(boxTop<5){boxTop=5;}
toolTip.style.left=boxLeft+'px';toolTip.style.top=boxTop+'px';};return{init:function(id){container=document.getElementById(id);toolTip=createEmptyTooltip();container.appendChild(toolTip);YAHOO.util.Event.addListener(container,'mousemove',setMouseCoords);},show:function(cfg,channelName){tooltipContent.innerHTML=CHANNEL.HTML.getTooltipHTML(cfg,channelName);toolTip.style.display='block';},hide:function(){toolTip.style.display='none';}}}();CHANNEL.TeaserLoop=function(){this.FRONTPAGE_TEASER_HEIGHT=275;this.FRONTPAGE_TEXT_MARGIN=220;this.TIME_OUT=8000;this.FADE_SPEED=0.4;this.ROLL_SPEED=0.4;this.isRunning=false;this.currIndex=0;this.btnContainer=null;this.buttons=null;var timeOut=8000;var showText=function(show){var marginTo=show?FRONTPAGE_TEXT_MARGIN:FRONTPAGE_TEASER_HEIGHT;var teaserBottom=document.getElementById('teaser-bottom');var anim=new YAHOO.util.Anim(teaserBottom,{marginTop:{to:marginTo}},ROLL_SPEED,YAHOO.util.Easing.easeOut);anim.animate();};return{startLoop:function(){btnContainer=document.getElementById('teaser-button-list');buttons=btnContainer.getElementsByTagName('a');this.loopTeaser();},loopTeaser:function(){clearTimeout(timeOut);if(isRunning){currIndex=(currIndex+1)%buttons.length;buttons[currIndex].onclick();}else{isRunning=true;}
if(isRunning)timeOut=setTimeout(CHANNEL.TeaserLoop.loopTeaser,TIME_OUT);},toggleFrontpageTeaser:function(index,text,link,atag){var teaserImage=document.getElementById('frontpage-inner-teaser');var teaserText=document.getElementById('teaser-bottom-text');var tvNytTeaser=document.getElementById('tv-nyt-teaser');var selected=YAHOO.util.Dom.getElementsByClassName('selected','a',btnContainer);if(selected.length>0){selected[0].className='';}
atag.className='selected';var onclick=function(){window.location.href=link;};tvNytTeaser.onclick=onclick;var fadeIn=function(){teaserImage.style.top='-'+(index*FRONTPAGE_TEASER_HEIGHT)+'px';teaserText.innerHTML=text;var fadeIn=new YAHOO.util.Anim(teaserImage,{opacity:{to:1.0}},FADE_SPEED,YAHOO.util.Easing.easeOut);fadeIn.animate();showText(true);};var fadeOut=new YAHOO.util.Anim(teaserImage,{opacity:{to:.01}},FADE_SPEED,YAHOO.util.Easing.easeOut);fadeOut.onComplete.subscribe(fadeIn);fadeOut.animate();showText(false);},stopLoop:function(){if(!isRunning)return;isRunning=false;clearTimeout(timeOut);}}}();CHANNEL.Slider=function(div,starttime,limits){this.init(div,starttime,limits);};CHANNEL.Slider.NEXT=1;CHANNEL.Slider.PREV=2;CHANNEL.Slider.ONE_HOUR_SECS=3600;CHANNEL.Slider.DEFAULT_CONTENT_WIDTH=840;CHANNEL.Slider.HOURS_PR_PAGE=4;CHANNEL.Slider.prototype={currPage:0,pageCount:0,backCount:0,frontCount:0,loadingPage:true,pageDates:Array(),init:function(div,starttime,limits){this.startTime=starttime;this.limits={'min':limits[0],'max':limits[1]};this.hOfset=CHANNEL.Slider.DEFAULT_CONTENT_WIDTH;this.divContainer=div;CHANNEL.HTML.init(div);CHANNEL.data.fetchDefault(this);},initButtons:function(){var prevBtn=document.getElementById('slide-prev');var nextBtn=document.getElementById('slide-next');this.buttons={'prev':{'elm':prevBtn,'enabled':false},'next':{'elm':nextBtn,'enabled':false}};CHANNEL.helper.disableElementSelection(prevBtn);CHANNEL.helper.disableElementSelection(nextBtn);YAHOO.util.Event.addListener(prevBtn,'click',CHANNEL.Anim.slideBackward,this);YAHOO.util.Event.addListener(nextBtn,'click',CHANNEL.Anim.slideForward,this);var tt1=new YAHOO.widget.Tooltip('tt1',{context:'slide-prev',text:'Spol 4 timer tilbage'});var tt2=new YAHOO.widget.Tooltip('tt2',{context:'slide-next',text:'Spol 4 timer frem'});},initDefault:function(config,height){this.enableDayChooser();this.pageDates=Array();var elm=CHANNEL.HTML.getHTML(config);this.divContainer.appendChild(elm);this.contentElement=document.getElementById('slide-content');this.tvtidDate=document.getElementById('tvtid-date');CHANNEL.Loader.init('guide-loader-anim');CHANNEL.Tooltip.init('channel-tooltip-container');CHANNEL.guideloader.init('guide-loader');var pageElements=CHANNEL.HTML.getPageElements(config);this.addPage(pageElements,CHANNEL.Slider.NEXT);this.initButtons();var isFP=CHANNEL.data.getIsFrontpage();var guide=document.getElementById('tv-guide');CHANNEL.guideloader.hide();var h=CHANNEL.HTML.getContentHeight();YAHOO.util.Dom.setStyle(guide,'opacity',0);var anim=new YAHOO.util.Anim(guide,{opacity:{to:1}},0.9,YAHOO.util.Easing.easeOut);var anim2=new YAHOO.util.Anim(guide,{height:{to:h}},0.9,YAHOO.util.Easing.easeOut);anim.onComplete.subscribe(function(){YAHOO.util.Dom.setStyle(guide,'filter','');CHANNEL.helper.setLoading(false);});anim.animate();anim2.animate();CHANNEL.helper.disableElementSelection(document.getElementById('guide-loader-anim'));if(isFP){CHANNEL.TeaserLoop.startLoop();}
this.loadingPage=false;},enableDayChooser:function(){var dc=document.getElementById('day-chooser');dc.style.display='block';var dcl=document.getElementById('day-chooser-left-btn');dcl.style.display='block';var dcr=document.getElementById('day-chooser-right-btn');dcr.style.display='block';this.dayChooserContent=document.getElementById('day-chooser-content');},setSliderButton:function(type,enabled){var btn=(type==CHANNEL.Slider.NEXT?this.buttons.next:this.buttons.prev);btn.enabled=!enabled;YAHOO.util.Dom.setStyle(btn.elm,'opacity',(enabled?1.0:0.5));btn.elm.style.cursor=(enabled?'pointer':'default');},setDate:function(){this.tvtidDate.innerHTML=this.pageDates[this.currPage][0];var chosen=YAHOO.util.Dom.getElementsByClassName('dayEntry chosen','div',this.dayChooserContent);if(chosen[0])chosen[0].className='dayEntry';var allElements=YAHOO.util.Dom.getElementsByClassName('dayEntry','div',this.dayChooserContent);for(var i=0,len=allElements.length;i<len;i++){var link=allElements[i].getElementsByTagName('a');if(link[0].innerHTML==this.pageDates[this.currPage][1]){allElements[i].className='dayEntry chosen';}}},getLoadingPage:function(){return this.loadingPage;},fetchPage:function(type,callback){CHANNEL.data.fetchPage(type,callback,this);},addPage:function(pageElements,type){var elm=document.createElement('div');elm.className='guideContentPage';elm.style.width=this.hOfset+'px';elm.appendChild(pageElements[0]);elm.appendChild(pageElements[1]);if(pageElements[4]){var ti=document.createElement('div');ti.className='timeIndicator';ti.style.marginLeft=pageElements[4]+'px';elm.appendChild(ti);}
this.pageCount++;var dateInfo=[pageElements[2],pageElements[3]];if(type==CHANNEL.Slider.NEXT){this.contentElement.appendChild(elm);this.pageDates.push(dateInfo);}else if(type==CHANNEL.Slider.PREV){this.contentElement.insertBefore(elm,this.contentElement.firstChild);if(this.currPage==1){this.contentElement.style.left=(-CHANNEL.Slider.DEFAULT_CONTENT_WIDTH)+'px';}
this.pageDates.splice(0,0,dateInfo);}
this.contentElement.style.width=(this.hOfset*this.pageCount)+'px';}};CHANNEL.HTML=function(){this.CLASS_NAME='tvGuide';this.LOGO_HEIGHT=38;this.LOGO_WIDTH=95;this.HEADER_HEIGHT=20;this.BUTTON_ARROW_HEIGHT=33;this.ROW_COUNT=10;this.guide=null;this.categories=null;this.isLongList=false;this.showCheckBoxes=true;this.checkBoxes={'nyheder':{'pos':0,'checked':false},'film':{'pos':-14,'checked':false},'sport':{'pos':-28,'checked':false},'serier':{'pos':-42,'checked':false},'livsstil':{'pos':-56,'checked':false},'boern':{'pos':-70,'checked':false},'underholdning':{'pos':-84,'checked':false}};var getLogos=function(cfg){var elm=document.createElement('div'),img;elm.className='tvLogos';html='    <div class="header">TV-kanaler</div>'+"\n";for(var i=0,len=cfg.length;i<len;i++){if(i%ROW_COUNT==0&&i!=0){html+='<div class="header repeat">TV-kanaler</div>'+"\n";}
img='<a href="/kanal/index.php/id-'+cfg[i]['id']+'.html"><img border="0" width="'+LOGO_WIDTH+'" height="'+LOGO_HEIGHT+'" alt="'+cfg[i]['name']+'" src="'+cfg[i]['logo']+'" /></a>';html+='<div class="logo">'+img+'</div>'+"\n";}
elm.innerHTML=html;return elm;};var getNavi=function(cfg){var elm=document.createElement('div');elm.className='channelNavi';var html='';html+='<div class="naviButtons">'+"\n";html+='  <div id="slide-prev" class="tvButton left">'+"\n";if(this.isLongList){html+=getLongListArrows(cfg.length,'/img/buttons/piltilbage.gif');}else{var topMargin=(HEADER_HEIGHT+cfg.length*(LOGO_HEIGHT+1)-BUTTON_ARROW_HEIGHT)/2;html+='    <img style="margin-top: '+topMargin+'px" width="9" height="33" border="0" alt="Forrige" src="/img/buttons/piltilbage.gif" />'+"\n";}
html+='  </div>'+"\n";html+='</div>'+"\n";html+='<div id="channel-tooltip-container" class="tooltipContainer">'+"\n";html+='  <div id="slide-content-outer" class="slideContentOuter">';html+='    <div id="slide-content" class="slideContent" style="left: 0px;"></div>'+"\n";html+='  </div>';html+='</div>'+"\n";html+='<div class="naviButtons">'+"\n";html+='  <div id="slide-next" class="tvButton right">'+"\n";if(this.isLongList){html+=getLongListArrows(cfg.length,'/img/buttons/pilfrem.gif');}else{var topMargin=(HEADER_HEIGHT+cfg.length*(LOGO_HEIGHT+1)-BUTTON_ARROW_HEIGHT)/2;html+='    <img style="margin-top: '+topMargin+'px" width="9" height="33" border="0" alt="Næste" src="/img/buttons/pilfrem.gif" />'+"\n";}
html+='  </div>'+"\n";html+='</div>'+"\n";elm.innerHTML=html;return elm;};var getLongListArrows=function(length,img){var topMargin,height;var html='';for(var i=0;i<length;i++){if(i%ROW_COUNT==0&&i!=0){height=(LOGO_HEIGHT+1)*ROW_COUNT+HEADER_HEIGHT+1;topMargin=(height-BUTTON_ARROW_HEIGHT)/2;html+='<div style="height: '+(height-1)+'px; border-bottom: 1px solid #B2AE9A; background: transparent url('+img+') 7px '+topMargin+'px no-repeat;"></div>';}
if(i==length-1){height=(LOGO_HEIGHT+1)*(i%ROW_COUNT+1)+HEADER_HEIGHT+1;topMargin=(height-BUTTON_ARROW_HEIGHT)/2;html+='<div style="height: '+(height-1)+'px; border-bottom: 1px solid #B2AE9A; background: transparent url('+img+') 7px '+topMargin+'px no-repeat;"></div>';}}
return html;};var getGenres=function(){var entry,color,text,align;var elm=document.createElement('div');var header=document.createElement('span');elm.className='programGenres';header.className='genresHeader';header.innerHTML='Genre:';elm.appendChild(header);for(var i=0,len=categories.length;i<len;i++){entry=document.createElement('div');entry.className='genresEntry '+categories[i]['class'];color=document.createElement('div');color.className='genresColor';align=checkBoxes[categories[i]['class']]['checked']==true?'-14px':'0px';color.style.backgroundPosition=checkBoxes[categories[i]['class']]['pos']+'px '+align;checkBoxes[categories[i]['class']]['elm']=color;text=document.createElement('div');text.className='genresText ';text.innerHTML=categories[i]['name'];CHANNEL.helper.disableElementSelection(text);entry.appendChild(color);entry.appendChild(text);elm.appendChild(entry);var click=function(e,cClass){categoryClickHandler(cClass);};YAHOO.util.Event.addListener(text.parentNode,'click',click,categories[i]['class']);}
return elm;};var categoryClickHandler=function(categoryClass){var root=document.getElementById('slide-content');var prgEntries=YAHOO.util.Dom.getElementsByClassName('programEntry '+categoryClass,'div',root);for(var i=0,len=prgEntries.length;i<len;i++){if(YAHOO.util.Dom.hasClass(prgEntries[i],'disableCategory')){YAHOO.util.Dom.removeClass(prgEntries[i],'disableCategory');}
else{YAHOO.util.Dom.addClass(prgEntries[i],'disableCategory');}}
if(checkBoxes[categoryClass]['checked']){checkBoxes[categoryClass]['elm'].style.backgroundPosition=checkBoxes[categoryClass]['pos']+'px 0px';}else{checkBoxes[categoryClass]['elm'].style.backgroundPosition=checkBoxes[categoryClass]['pos']+'px -14px';}
checkBoxes[categoryClass]['checked']=!checkBoxes[categoryClass]['checked'];};var getButtons=function(){var elm=document.createElement('div');elm.className='channelButtons';var html='';html+='<a class="moreChannelsLink" href="/tvligenu/">Vis flere kanaler</a>';elm.innerHTML=html;return elm;};var getTop=function(cfg){var height=HEADER_HEIGHT+cfg.length*(LOGO_HEIGHT+1);if(isLongList){height+=Math.floor(cfg.length/ROW_COUNT)*(HEADER_HEIGHT+1);}
var elm=document.createElement('div');elm.className=CLASS_NAME+'Top';elm.style.height=height+'px';elm.appendChild(getLogos(cfg));elm.appendChild(getNavi(cfg));elm.appendChild(getLoader(cfg.length));return elm;};var getBottom=function(){var elm=document.createElement('div');elm.className=CLASS_NAME+'Bottom';elm.appendChild(getGenres());elm.appendChild(getButtons());return elm;};var getHeader=function(headers){var h,att;var elm=document.createElement('div');elm.className='channelHeader';for(var i=0;i<CHANNEL.Slider.HOURS_PR_PAGE;i++){h=document.createElement('div');h.className='headerEntry'+(i==CHANNEL.Slider.HOURS_PR_PAGE-1?' last':'');h.innerHTML=headers[i];elm.appendChild(h);}
return elm;};var getPrograms=function(cfg){var channels=cfg['channels'];var from=cfg['page_time']['start'];var to=cfg['page_time']['end'];var length=CHANNEL.Slider.DEFAULT_CONTENT_WIDTH;var secs=CHANNEL.Slider.ONE_HOUR_SECS*CHANNEL.Slider.HOURS_PR_PAGE;var elm=document.createElement('div');var cnt=0;elm.className='channelPrograms';addTooltipListener(elm);var programEntry,html;for(var i=0,len=channels.length;i<len;i++){if(i%ROW_COUNT==0&&i!=0){var headers=document.createElement('div');headers.className='channelHeaderRepeat';headers.appendChild(getHeader(cfg['headers']));addEmptySpaceListener(headers);elm.appendChild(headers);}
var width;var program=channels[i]['program'];var widthCredit=length;var programRow=document.createElement('div');programRow.className='programRow';if(program.length>0&&program[0]['start_timestamp']>from){width=Math.ceil(((program[0]['start_timestamp']-from)/secs)*length)-2;widthCredit-=width+2;programEntry=getProgramEntry('programEntry empty',width,false,false,false);programRow.appendChild(programEntry);}
for(var j=0,jlen=program.length;j<jlen;j++){cnt++;var prgFrom=Math.max(from,program[j]['start_timestamp']);var prgTo=Math.min(to,program[j]['end_timestamp']);width=Math.ceil(((prgTo-prgFrom)/secs)*length)-2;widthCredit-=width+2;if(program[j]['end_timestamp']>=to){width+=widthCredit+1;widthCredit=0;}
programEntry=getProgramEntry('programEntry',width,program[j],widthCredit<=0,channels[i]['name']);programRow.appendChild(programEntry);if(j<program.length-1){var space=program[j+1]['start_timestamp']-program[j]['end_timestamp'];if(space>0){var width2=Math.ceil((space/secs)*length)-2;widthCredit-=width2+2;programEntry=getProgramEntry('programEntry empty',width2,false,false,false);programRow.appendChild(programEntry);}}}
if(widthCredit>0){programEntry=getProgramEntry('programEntry empty emptyRight',widthCredit-1,false,true,false);programRow.appendChild(programEntry);}
elm.appendChild(programRow);}
if(cnt==0&&this.isLongList){var i=0,len=elm.childNodes.length;var text='Der er ingen programmer på de valgte kanaler for i dag fra<br/> kl '+cfg.time_slice+' i kategorien '+filter.getSelectedLimitStr();var info='<div class="noProgramData">'+text+'</div>';var index;while(i<len){if(i+ROW_COUNT<len){index=i+Math.floor(ROW_COUNT/2-1);i+=ROW_COUNT+1;}else{index=i+Math.floor((len-i)/2);i+=len-i;}
elm.childNodes[index].childNodes[0].innerHTML=info;}}
return elm;};var getProgramEntry=function(className,width,cfg,borderRightDisable,channelName){var pe=document.createElement('div');width=Math.max(0,width);pe.className=className;pe.style.width=width+'px';if(!cfg){addEmptySpaceListener(pe);}else{var html='<h2 class="programText">'+cfg['title']+'</h2>'+"\n";html+='<p class="programTime">'+cfg['start']+' - '+cfg['end']+'</p>'+"\n";pe.innerHTML=html;pe.className+=' '+getProgramGradientClass(cfg['category_id']);addProgramEntryListener(pe,cfg,channelName);}
if(borderRightDisable){pe.style.marginRight='0px';}
return pe;};var getProgramGradientClass=function(categoryId){var gClass='standard'
for(var i=0,len=categories.length;i<len;i++){for(var j=0,jlen=categories[i]['node_ids'].length;j<jlen;j++){if(categoryId==categories[i]['node_ids'][j]){gClass=categories[i]['class'];if(!checkBoxes[categories[i]['class']]['checked']||!showCheckBoxes){gClass+=' disableCategory';}
break;}}}
return gClass;};var getLoader=function(length){var elm=document.createElement('div');elm.className='guideLoaderAnim';elm.id='guide-loader-anim';elm.style.display='none';if(isLongList){var html='',i=0;var topMargin;do{if(i+ROW_COUNT<length){topMargin=((LOGO_HEIGHT+1)*ROW_COUNT+HEADER_HEIGHT+1-32)/2;}else{topMargin=((LOGO_HEIGHT+1)*(length-i)+HEADER_HEIGHT+1-32)/2;}
elm.innerHTML+='<img style="margin-top: '+topMargin+'px; margin-bottom: '+topMargin+'px" width="32" height="32" alt="Loader..." src="/img/ajax-loader.gif" />';i+=ROW_COUNT;}while(i<length);}else{elm.innerHTML='<img width="32" height="32" alt="Loader..." src="/img/ajax-loader.gif" />';}
return elm;};var addTooltipListener=function(elm){var over=function(e){if(CHANNEL.helper.isLeaveOrEnter(e,elm)){CHANNEL.Tooltip.hide();}};YAHOO.util.Event.addListener(elm,'mouseout',over);};var addEmptySpaceListener=function(programEntry){YAHOO.util.Event.addListener(programEntry,'mouseover',CHANNEL.Tooltip.hide);};var addProgramEntryListener=function(programEntry,cfg,channelName){var over=function(e){if(CHANNEL.helper.isLeaveOrEnter(e,programEntry)){YAHOO.util.Dom.addClass(programEntry,'hover');CHANNEL.Tooltip.show(cfg,channelName);}};var out=function(e){if(CHANNEL.helper.isLeaveOrEnter(e,programEntry)){YAHOO.util.Dom.removeClass(programEntry,'hover');}};var onClick=function(){popUpProgram(cfg['program_id']);};YAHOO.util.Event.addListener(programEntry,'mouseover',over);YAHOO.util.Event.addListener(programEntry,'mouseout',out);YAHOO.util.Event.addListener(programEntry,'click',onClick);};var getTooltip=function(cfg,channelName){var star='';if(typeof userPrograms!='undefined'){for(var i=0,length=userPrograms.length;i<length;i++){if(cfg.i2_prg_id==userPrograms[i]){star='<img width="12" height="12" border="0" alt="Star" src="/img/vert/stjerne.gif" />';}}}
var html='';html+='<h2>'+cfg['title']+' '+star+'</h2>'+"\n";html+='<p class="tooltipTime">'+cfg['start']+' - '+cfg['end']+' | '+channelName+"\n";html+='<p class="tooltipDescription">'+cfg['short_description']+'</p>';return html;};return{guideHeight:0,init:function(elm){this.guide=elm;},getHTML:function(cfg){categories=cfg['categories'];var elm=document.createElement('div');elm.className=CLASS_NAME;elm.id='tv-guide';elm.appendChild(getTop(cfg['channels']));if(!isLongList){elm.appendChild(getBottom());var btm=document.createElement('div');btm.className='roundedCorners';btm.innerHTML='<div class="rcLeft"></div><div class="rcCenter"></div><div class="rcRight"></div>';elm.appendChild(btm);elm.style.height='324px';}
this.guideHeight=HEADER_HEIGHT+cfg['channels'].length*(LOGO_HEIGHT+1)+31;if(isLongList){this.guideHeight+=Math.floor(cfg['channels'].length/ROW_COUNT)*(HEADER_HEIGHT+1)-29;if(showCheckBoxes){var cbDiv=document.getElementById("genres-checkboxes");if(!cbDiv.hasChildNodes()){cbDiv.appendChild(getGenres());}}
elm.style.height=this.guideHeight+'px';}
return elm;},disableCheckBoxes:function(){var container=document.getElementById('genres-checkboxes');if(container)container.innerHTML='';},setShowCheckBoxes:function(flag){showCheckBoxes=flag;},getPageElements:function(cfg){var timeIndicator=null;var curr_time=((new Date()).getTime()/1000)|0;if(curr_time>=cfg.page_time.start&&curr_time<=cfg.page_time.end){timeIndicator=((curr_time-cfg.page_time.start)/(CHANNEL.Slider.ONE_HOUR_SECS*CHANNEL.Slider.HOURS_PR_PAGE))*CHANNEL.Slider.DEFAULT_CONTENT_WIDTH-2;}
return[getHeader(cfg['headers']),getPrograms(cfg),cfg['page_date'],cfg['day_chooser_id'],timeIndicator];},getTooltipHTML:function(cfg,channelName){return getTooltip(cfg,channelName);},getContentHeight:function(){return this.guideHeight;},setIsLongList:function(value){isLongList=value;}}}();CHANNEL.data=function(){this.fetchURL='/js/fetch.js.php/';this.isFrontpage=false;var getConfig=function(o){var config=eval('('+o.responseText+')');CHANNEL.filter.init(config);if(isFrontpage){CHANNEL.filter.defaultFPFilter(config);}else{CHANNEL.filter.longListFilter(config);}
return config;};return{fetchDefault:function(slider){var callback={success:function(o){var config=getConfig(o);var init=function(){slider.initDefault(config)};var anim=new YAHOO.util.Anim('guide-loader',{opacity:{to:0}},0.8,YAHOO.util.Easing.easeOut);anim.onComplete.subscribe(init);anim.animate();},failure:function(o){},argument:[]};var from=slider.startTime;var url=fetchURL+'from-'+from+'.js';var transaction=YAHOO.util.Connect.asyncRequest('GET',url,callback,null);},fetchPage:function(type,animCallback,slider){CHANNEL.Loader.show();var from;var callback={success:function(o){var config=getConfig(o);var pageElements=CHANNEL.HTML.getPageElements(config);slider.addPage(pageElements,type);CHANNEL.Loader.hide();animCallback();},failure:function(o){},argument:[]};var ofset=CHANNEL.Slider.ONE_HOUR_SECS*CHANNEL.Slider.HOURS_PR_PAGE;if(type==CHANNEL.Slider.PREV){from=slider.startTime-slider.backCount*ofset;}else if(type==CHANNEL.Slider.NEXT){from=slider.startTime+slider.frontCount*ofset;}
var url=fetchURL+'from-'+from+'.js';var transaction=YAHOO.util.Connect.asyncRequest('GET',url,callback,null);},setFetchURL:function(url){fetchURL=url;},setIsFrontpage:function(flag){isFrontpage=flag;},getIsFrontpage:function(){return isFrontpage;}}}();CHANNEL.filter=function(){this.DEFAULT_GROUPING='danske';this.MAX_FP_CHANNELS=7;this.defaultChannelIds=null;this.grouping=null;this.category=null;this.groupingMap=null;var groupingFilter=function(cfg){var newChannels=Array();for(var i=0,length=cfg.channels.length;i<length;i++){if(groupingMap[grouping]==cfg.channels[i].grouping){newChannels.push(cfg.channels[i]);}}
cfg.channels=newChannels;};var categoryFilter=function(cfg){var newPrograms;for(var i=0,length=cfg.channels.length;i<length;i++){newPrograms=Array();for(var j=0,length2=cfg.channels[i].program.length;j<length2;j++){if(category==cfg.channels[i].program[j].category_id){newPrograms.push(cfg.channels[i].program[j]);}}
cfg.channels[i].program=newPrograms;}};return{init:function(cfg){groupingMap=cfg.groupings;defaultChannelIds=cfg.def_channel_ids;},userFilter:function(cfg){var newChannels=Array();var cnt=0;for(var i=0,length2=userChannels.length;i<length2;i++){for(var j=0,length=cfg.channels.length;j<length;j++){if(userChannels[i]==cfg.channels[j].id){newChannels.push(cfg.channels[j]);break;}}
if(newChannels.length==MAX_FP_CHANNELS&&CHANNEL.data.getIsFrontpage())
break;}
cfg.channels=newChannels;},defaultFPFilter:function(cfg){var newChannels=Array();if(CHANNEL.user.getUserId()&&!(typeof userChannels=='undefined')&&userChannels.length>0){this.userFilter(cfg);return;}
for(var i=0,length2=defaultChannelIds.length;i<length2;i++){for(var j=0,length=cfg.channels.length;j<length;j++){if(cfg.channels[j].id==defaultChannelIds[i]){newChannels.push(cfg.channels[j]);}}}
cfg.channels=newChannels;},longListFilter:function(cfg){if(CHANNEL.user.getUserId()){if(!(typeof userChannels=='undefined')&&userChannels.length>0){this.userFilter(cfg);}else{this.setGrouping(DEFAULT_GROUPING);groupingFilter(cfg);}}else{groupingFilter(cfg);}
if(category&&category!=0){categoryFilter(cfg);}},setGrouping:function(g){grouping=g;},setCategory:function(c){category=c;}}}();CHANNEL.user=function(){this.user_id=null;return{loadUser:function(){var c=getCookie('tv2login');if(c==null){return;}
var parts=c.split('&');for(var i=0;i<parts.length;i++){var els=parts[i].split('=');if(els[0]=='id'){user_id=els[1];break;}}},setUserId:function(id){user_id=id;},getUserId:function(){return user_id;}}}();CHANNEL.guideloader=function(){var HEIGHT=224;var PADDING_TOP=100;var loader=null;return{init:function(id){loader=document.getElementById(id);},show:function(){loader.style.height=HEIGHT+'px';loader.style.paddingTop=PADDING_TOP+'px';},hide:function(){loader.style.height='0px';loader.style.paddingTop='0px';}}}();
