- var EPG =
- {
- selected_program: 0,
- selected_page: 0,
- epg_array_index: 0,
- date: null,
- program_pages: 0,
- last_page_programs_counter: 0,
- epg_array : [ ],
- epg_day : 0,
- from_uts : 0,
- come_from: 0
- }
- EPG.show = function()
- {
- KeyHandler.setFocus(Main.EpgMenu_ID);
- if(EPG.come_from==2)
- document.getElementById("ch_list").style.display="block";
- else
- document.getElementById("ch_list").style.display="none";
- document.getElementById("help_navi_epg").style.display="block";
- document.getElementById("help_navi_menu").style.display="none";
- document.getElementById("help_navi_vod").style.display="none";
- if( true == EPG.getEPG() ){
- EPG.last_page_programs_counter = RTV_API.last_page_programs_counter;
- EPG.setProgramList();
- }
- }
- EPG.setProgramList = function()
- {
- var chan = Array();
- var time = 0;
- var pr_on_page = 10;
- for (var index = 0; index < 10; index++)
- {
- document.getElementById("ch"+index).style.display="";
- widgetAPI.putInnerHTML(document.getElementById("time"+index), "");
- widgetAPI.putInnerHTML(document.getElementById("number"+index), "");
- widgetAPI.putInnerHTML(document.getElementById("progress"+index), "");
- document.getElementById("percent"+index).style.width= "0%";
- widgetAPI.putInnerHTML(document.getElementById("title"+index), "");
- document.getElementById("title"+index).style.width= "400px";
- document.getElementById("descr"+index).style.display="none";
- document.getElementById("img"+index).src="";
- document.getElementById("record"+index).style.backgroundImage= "";
- document.getElementById("number"+index).style.backgroundImage = "";
- }
- alert("EPG.last_page_programs_counter: " + EPG.last_page_programs_counter );
- if(EPG.selected_page > EPG.program_pages-1)
- EPG.selected_page = 0;
- if(EPG.selected_page < 0)
- EPG.selected_page = EPG.program_pages-1;
- if(EPG.selected_page == EPG.program_pages-1)
- {
- pr_on_page = EPG.last_page_programs_counter;
- for (var index = pr_on_page; index < 10; index++)
- {
- document.getElementById("ch"+index).style.display="none";
- }
- if(EPG.selected_program > EPG.last_page_programs_counter-1)
- EPG.selected_program = EPG.last_page_programs_counter-1;
- }
- for (var index = 0; index < pr_on_page; index++)
- {
- var pr_array_index = 10*EPG.selected_page + index;
- chan[index] = document.getElementById("chan"+index);
- chan[index].style.backgroundImage= "url(img/menu.png)";
- if ( 0 < EPG.epg_array.length ){
- time = EPG.epg_array[pr_array_index].begin;
- if(time)
- {
- var Time = RTV_API.timeToString(time)
- widgetAPI.putInnerHTML(document.getElementById("time"+index), Time);
- }
- if(RTV_API.channels[Main.chan_array_index].has_archive && ( time < (RTV_API.servertime - 15*60)))
- { document.getElementById("img"+index).src='img/rec.png';
- document.getElementById("percent"+index).style.width="100%";
- }
- else
- document.getElementById("img"+index).src='img/clock.png';
- if(EPG.epg_array[pr_array_index].info)
- {
- var percent = (RTV_API.channels[Main.chan_array_index].end - RTV_API.channels[Main.chan_array_index].begin)/100;
- var elapsed_time = (RTV_API.servertime - RTV_API.channels[Main.chan_array_index].begin);
- if(percent)
- {
- percent = (elapsed_time/percent);
- if(percent>100)
- percent = 100;
- widgetAPI.putInnerHTML(document.getElementById("progress"+index), parseInt(percent)+"%");
- document.getElementById("percent"+index).style.width= parseInt(percent)+"%";
- }
- }
- widgetAPI.putInnerHTML(document.getElementById("title"+index), EPG.epg_array[pr_array_index].title);
- widgetAPI.putInnerHTML(document.getElementById("descr"+index), EPG.epg_array[pr_array_index].info);
- }
- }
- EPG.epg_array_index = 10*EPG.selected_page + EPG.selected_program;
- alert( EPG.selected_program );
- if( chan[EPG.selected_program] ){
- chan[EPG.selected_program].style.backgroundImage= "url(img/menu_act.png)";
- //document.getElementById("number"+EPG.selected_program).style.backgroundImage= "url(img/menu_act.png)";
- }
- EPG.updateCurrentChannelEPG();
- }
- EPG.updateCurrentChannelEPG = function()
- {
- if ( EPG.epg_array.length ){
- unix = EPG.epg_array[EPG.epg_array_index].begin;
- epg_date = RTV_API.DateMenu(unix);
- server_date = RTV_API.DateMenu(RTV_API.servertime);
- if(epg_date==server_date)
- epg_date = "СЕГОДНЯ ";
- widgetAPI.putInnerHTML(document.getElementById("infoList"), "");
- var epg = '<div><div id="epg_date_style">' + epg_date + '</div><div id="epg_img"> <img src="' + RTV_API.RODNOE_ICON + RTV_API.channels[Main.chan_array_index].icon + '.gif"></div><div id="epg_channel_name">'+RTV_API.channels[Main.chan_array_index].name+'</div></div><br><br><br>' + EPG.epg_array[EPG.epg_array_index].title+'<br><br>'+EPG.epg_array[EPG.epg_array_index].info;
- if(EPG.epg_array[EPG.epg_array_index].title)
- widgetAPI.putInnerHTML(document.getElementById("infoList"), epg);
- if(RTV_API.channels[Main.chan_array_index].end && ( EPG.epg_array[EPG.epg_array_index].begin < (RTV_API.servertime - 15*60)))
- document.getElementById("archive_play").style.display="block";
- else
- document.getElementById("archive_play").style.display="none";
- }else{
- widgetAPI.putInnerHTML(document.getElementById("infoList"), "");
- }
- }
- EPG.getEPG = function()
- {
- if(!this.date)
- date = EPG.timeToDate(RTV_API.servertime);
- else
- date = this.date;
- this.epg_array = RTV_API.getEPG(Main.ch_id_selected, EPG.from_uts, RTV_API.channels[Main.chan_array_index].begin);
- if( 0 == this.epg_array.length ){
- if( 0 < EPG.epg_day) EPG.prevDay();
- else EPG.nextDay();
- return false;
- }
- this.program_counter = this.epg_array.length;
- this.program_pages = this.program_counter;
- this.last_page_programs_counter = this.program_counter % 10;
- if ( this.last_page_programs_counter > 0 && this.last_page_programs_counter < 5)
- this.program_pages = Math.round(this.program_pages / 10) + 1;
- else
- this.program_pages = Math.round(this.program_pages / 10);
- return true;
- }
- EPG.selectNextProgram = function()
- {
- EPG.selected_program++;
- if(EPG.selected_program>=10 || (EPG.selected_page == EPG.program_pages-1 && EPG.selected_program==EPG.last_page_programs_counter))
- {
- EPG.selected_program = 0;
- EPG.selected_page++;
- }
- EPG.setProgramList();
- }
- EPG.selectPrevProgram = function()
- {
- EPG.selected_program--;
- if(EPG.selected_page == 0 && EPG.selected_program<0)
- {
- EPG.selected_program = EPG.last_page_programs_counter- 1;
- EPG.selected_page = EPG.program_pages-1;
- }
- if(EPG.selected_program<0)
- {
- EPG.selected_program = 9;
- EPG.selected_page--;
- }
- EPG.setProgramList();
- }
- EPG.selectPrevPage = function()
- {
- EPG.selected_page--;
- EPG.setProgramList();
- }
- EPG.selectNextPage = function()
- {
- EPG.selected_page++;
- EPG.setProgramList();
- }
- EPG.PlayChannel = function()
- {
- if(RTV_API.channels[Main.chan_array_index].end && ( EPG.epg_array[EPG.epg_array_index].begin < (RTV_API.servertime - 15*60)))
- {
- RTV_API.getChannel_url(Main.ch_id_selected, EPG.epg_array[EPG.epg_array_index].begin);
- ArchivePlayer.current_archive_time = parseInt(EPG.epg_array[EPG.epg_array_index].begin);
- //alert("EPG.PlayChannel ArchivePlayer.current_archive_time: " + ArchivePlayer.current_archive_time + "EPG.from_uts: " + EPG.from_uts );
- var next_day_date = EPG.timeToDate(parseInt(EPG.epg_array[0].begin) + 24*60*60);
- ArchivePlayer.last_program_end_time = EPG.epg_array[EPG.epg_array.length-1].end;//parseInt(RTV_API.getEPGnextDAYstart(Main.ch_id_selected, next_day_date)); // TODO
- Player.setVideoURL(RTV_API.url);
- ArchivePlayer.statusmessage = "запуск передачи из архива";
- ArchivePlayer.playVideo();
- KeyHandler.setFocus(Main.ArchivePlayer_ID);
- }
- }
- EPG.timeToDate = function(time)
- {
- if(!time)
- return ""
- var mmToMonth = new Array("01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12");
- var Unixtime = new Date(time* 1000);
- var Day = Unixtime.getDate();
- if(Day<10)
- Day = '0' + Day;
- var Month = mmToMonth[Unixtime.getMonth()];
- var Year = Unixtime.getFullYear();
- Year = Year.toString();
- Year = Year.substring(2,4);
- return Day+Month+Year
- }
- EPG.prevDay = function()
- {
- EPG.epg_day -= 1;
- EPG.setDate();
- }
- EPG.nextDay = function()
- {
- EPG.epg_day += 1;
- EPG.setDate();
- }
- EPG.setDate = function()
- {
- EPG.from_uts = parseInt(RTV_API.servertime) + EPG.epg_day*24*60*60;
- EPG.date = EPG.timeToDate(EPG.from_uts);
- EPG.show();
- }