2 // store all objects here
6 // parsing values from xml-element
7 //debug('init EPGList'+xml);
9 this.xmlitems = xml.getElementsByTagName("e2eventlist").item(0).getElementsByTagName("e2event");
10 } catch (e) { debug("[EPGList] parsing Error");}
12 this.getArray = function(sortbytime){
13 debug("[EPGList] Sort by time "+sortbytime);
14 if (sortbytime === true){
16 for(var i=0;i<this.xmlitems.length;i++){
17 var xv = new EPGEvent(this.xmlitems.item(i));
18 sort1.push( [xv.startTime, xv] );
20 sort1.sort(this.sortFunction);
22 for(i=0;i<sort1.length;i++){
23 sort2.push(sort1[i][1]);
28 for (i=0;i<this.xmlitems.length;i++){
29 xv = new EPGEvent(this.xmlitems.item(i));
35 this.sortFunction = function(a,b){
41 //START class EPGEvent
42 function EPGEvent(xml){
43 // parsing values from xml-element
45 this.eventID = xml.getElementsByTagName('e2eventid').item(0).firstChild.data;
46 this.startTime = xml.getElementsByTagName('e2eventstart').item(0).firstChild.data;
47 this.duration = xml.getElementsByTagName('e2eventduration').item(0).firstChild.data;
48 this.title = xml.getElementsByTagName('e2eventtitle').item(0).firstChild.data;
49 this.serviceRef = xml.getElementsByTagName('e2eventservicereference').item(0).firstChild.data;
50 this.serviceName = xml.getElementsByTagName('e2eventservicename').item(0).firstChild.data;
51 this.fileName = xml.getElementsByTagName('e2filename').item(0).firstChild.data;
55 this.description = xml.getElementsByTagName('e2eventdescription').item(0).firstChild.data;
56 } catch (e) { this.description= 'N/A'; }
59 this.descriptionE = xml.getElementsByTagName('e2eventdescriptionextended').item(0).firstChild.data;
60 } catch (e) { this.descriptionE = 'N/A'; }
62 this.getFilename = function (){
65 this.getEventId = function (){
68 this.getTimeStart = function (){
69 var date = new Date(parseInt(this.startTime, 10)*1000);
72 this.getTimeStartString = function (){
73 var h = this.getTimeStart().getHours();
74 var m = this.getTimeStart().getMinutes();
80 this.getTimeDay = function (){
81 var Wochentag = ["So", "Mo", "Di", "Mi", "Do", "Fr", "Sa"];
82 var wday = Wochentag[this.getTimeStart().getDay()];
83 var day = this.getTimeStart().getDate();
84 var month = this.getTimeStart().getMonth()+1;
85 var year = this.getTimeStart().getFullYear();
87 return wday+". "+day+"."+month+"."+year;
89 this.getTimeBegin = function(){
90 return this.getTimeStart().getTime()/1000;
92 this.getTimeEnd = function (){
93 var date = new Date((parseInt(this.startTime, 10)+parseInt(this.duration, 10))*1000);
94 return date.getTime()/1000;
96 this.getTimeEndString = function (){
97 var date = new Date((parseInt(this.startTime, 10)+parseInt(this.duration, 10))*1000);
98 var h = date.getHours();
99 var m = date.getMinutes();
105 this.getDuration = function (){
106 return new Date(parseInt(this.duration, 10)*1000);
108 this.getTitle = function (){
111 this.getDescription = function (){
112 return this.description;
114 this.getDescriptionExtended = function (){
115 return this.descriptionE;
117 this.getServiceReference = function (){
118 return encodeURIComponent(this.serviceRef);
120 this.getServiceName = function (){
121 return this.serviceName.replace(" "," ");
126 //START class Service
127 function ServiceReference(xml){
128 // parsing values from xml-element
129 //debug('init ServiceReference'+xml);
131 this.servicereference = xml.getElementsByTagName('e2servicereference').item(0).firstChild.data;
132 this.servicename = xml.getElementsByTagName('e2servicename').item(0).firstChild.data;
134 //debug("Service parsing Error "+e);
137 this.getServiceReference = function(){
138 return encodeURIComponent(this.servicereference);
141 this.getClearServiceReference = function(){
142 return this.servicereference;
145 this.getServiceName = function(){
146 return this.servicename.replace('"', '"');
149 this.setServiceReference = function(toInsert){
150 this.servicereference = toInsert;
153 this.setServiceName = function(toInsert){
154 this.servicename = toInsert.replace('"', '"');
159 //START class ServiceList
160 function ServiceList(xml){
161 // parsing values from xml-element
162 //debug('init ServiceList'+xml);
164 this.xmlitems = xml.getElementsByTagName("e2servicelist").item(0).getElementsByTagName("e2service");
166 //debug("Service parsing Error");
168 this.getArray = function(){
171 for (var i=0;i<this.xmlitems.length;i++){
172 var xv = new ServiceReference(this.xmlitems.item(i));
180 //END class ServiceList
182 //START class MovieList
183 function MovieList(xml){
184 // parsing values from xml-element
185 debug('[MovieList] init: ' + xml);
187 this.xmlitems = xml.getElementsByTagName("e2movielist").item(0).getElementsByTagName("e2movie");
189 debug("[MovieList] parsing Error");
191 this.getArray = function(){
193 for(var i=0;i<this.xmlitems.length;i++){
194 //debug("parsing movie "+i+" of "+this.xmlitems.length);
195 var xv = new Movie(this.xmlitems.item(i));
201 //END class MovieList
205 // parsing values from xml-element
206 //debug('init Movie');
208 this.servicereference = xml.getElementsByTagName('e2servicereference').item(0).firstChild.data;
210 this.servicereference = "N/A";
213 this.servicename = xml.getElementsByTagName('e2servicename').item(0).firstChild.data;
215 this.servicename = "N/A";
218 this.title = xml.getElementsByTagName('e2title').item(0).firstChild.data;
223 this.descriptionextended = xml.getElementsByTagName('e2descriptionextended').item(0).firstChild.data;
225 this.descriptionextended = "N/A";
228 this.description = xml.getElementsByTagName('e2description').item(0).firstChild.data;
230 this.description = "N/A";
233 this.tags = xml.getElementsByTagName('e2tags').item(0).firstChild.data;
235 this.tags = "no tags"; // no whitespaces... tags will be splittet later
238 this.filename = xml.getElementsByTagName('e2filename').item(0).firstChild.data;
240 this.filename = "n/a";
243 this.filesize = xml.getElementsByTagName('e2filesize').item(0).firstChild.data;
248 this.startTime = xml.getElementsByTagName('e2time').item(0).firstChild.data;
250 this.startTime = "0";
253 this.length = xml.getElementsByTagName('e2length').item(0).firstChild.data;
261 this.getLength = function (){
265 this.getTimeStart = function (){
266 var date = new Date(parseInt(this.startTime, 10)*1000);
270 this.getTimeStartString = function (){
271 var h = this.getTimeStart().getHours();
272 var m = this.getTimeStart().getMinutes();
279 this.getTimeDay = function (){
280 var Wochentag = ["So", "Mo", "Di", "Mi", "Do", "Fr", "Sa"];
281 var wday = Wochentag[this.getTimeStart().getDay()];
282 var day = this.getTimeStart().getDate();
283 var month = this.getTimeStart().getMonth()+1;
284 var year = this.getTimeStart().getFullYear();
286 return wday+". "+day+"."+month+"."+year;
289 this.getServiceReference = function(){
290 return encodeURIComponent(this.servicereference);
292 this.getServiceName = function(){
293 return this.servicename.replace('"', '"');
296 this.getTitle = function(){
300 this.getDescription = function(){
301 return this.description;
304 this.getDescriptionExtended = function(){
305 return this.descriptionextended;
308 this.getTags = function(){
309 return this.tags.split(" ");
312 this.getFilename = function(){
313 return encodeURIComponent(this.filename);
316 this.getFilesizeMB = function(){
317 return Math.round((parseInt(this.filesize, 10)/1024)/1024)+"MB";
322 //START class TimerList
323 function TimerList(xml){
324 // parsing values from xml-element
326 this.xmlitems = xml.getElementsByTagName("e2timerlist").item(0).getElementsByTagName("e2timer");
328 debug("[TimerList] parsing Error");
330 this.getArray = function(){
332 for(var i=0;i<this.xmlitems.length;i++){
333 //debug("parsing timer "+i+" of "+this.xmlitems.length);
334 var xv = new Timer(this.xmlitems.item(i));
340 //END class TimerList
344 // parsing values from xml-element
345 //debug('init Timer');
347 this.servicereference = xml.getElementsByTagName('e2servicereference').item(0).firstChild.data;
349 this.servicereference = "N/A";
352 this.servicename = xml.getElementsByTagName('e2servicename').item(0).firstChild.data;
354 this.servicename = "N/A";
357 this.eventid = xml.getElementsByTagName('e2eit').item(0).firstChild.data;
359 this.eventid = "N/A";
362 this.name = xml.getElementsByTagName('e2name').item(0).firstChild.data;
367 this.description = xml.getElementsByTagName('e2description').item(0).firstChild.data;
369 this.description = "N/A";
372 this.descriptionextended = xml.getElementsByTagName('e2descriptionextended').item(0).firstChild.data;
374 this.descriptionextended = "N/A";
377 this.disabled = xml.getElementsByTagName('e2disabled').item(0).firstChild.data;
382 this.timebegin = xml.getElementsByTagName('e2timebegin').item(0).firstChild.data;
384 this.timebegin = "N/A";
387 this.timeend = xml.getElementsByTagName('e2timeend').item(0).firstChild.data;
389 this.timeend = "N/A";
392 this.duration = xml.getElementsByTagName('e2duration').item(0).firstChild.data;
397 this.startprepare = xml.getElementsByTagName('e2startprepare').item(0).firstChild.data;
399 this.startprepare = "N/A";
402 this.justplay = xml.getElementsByTagName('e2justplay').item(0).firstChild.data;
407 this.afterevent = xml.getElementsByTagName('e2afterevent').item(0).firstChild.data;
409 this.afterevent = "0";
412 this.logentries = xml.getElementsByTagName('e2logentries').item(0).firstChild.data;
414 this.logentries = "N/A";
417 this.tfilename = xml.getElementsByTagName('e2filename').item(0).firstChild.data;
419 this.tfilename = "N/A";
422 this.backoff = xml.getElementsByTagName('e2backoff').item(0).firstChild.data;
424 this.backoff = "N/A";
427 this.nextactivation = xml.getElementsByTagName('e2nextactivation').item(0).firstChild.data;
429 this.nextactivation = "N/A";
432 this.firsttryprepare = xml.getElementsByTagName('e2firsttryprepare').item(0).firstChild.data;
434 this.firsttryprepare = "N/A";
437 this.state = xml.getElementsByTagName('e2state').item(0).firstChild.data;
442 this.repeated = xml.getElementsByTagName('e2repeated').item(0).firstChild.data;
447 this.dontsave = xml.getElementsByTagName('e2dontsave').item(0).firstChild.data;
449 this.dontsave = "N/A";
452 this.cancled = xml.getElementsByTagName('e2cancled').item(0).firstChild.data;
454 this.cancled = "N/A";
457 this.color = xml.getElementsByTagName('e2color').item(0).firstChild.data;
462 this.toggledisabled = xml.getElementsByTagName('e2toggledisabled').item(0).firstChild.data;
464 this.toggledisabled = "N/A";
467 this.toggledisabledimg = xml.getElementsByTagName('e2toggledisabledimg').item(0).firstChild.data;
469 this.toggledisabledimg = "N/A";
472 this.getColor = function(){
476 this.getToggleDisabled = function(){
477 return this.toggledisabled;
480 this.getToggleDisabledIMG = function(){
481 return this.toggledisabledimg;
484 this.getToggleDisabledText = function(){
485 var retVal = this.toggledisabled == "0" ? "Enable timer" : "Disable timer";
489 this.getServiceReference = function(){
490 return encodeURIComponent(this.servicereference);
493 this.getServiceName = function(){
494 return this.servicename.replace('"', '"');
497 this.getEventID = function(){
501 this.getName = function(){
505 this.getDescription = function(){
506 return this.description;
509 this.getDescriptionExtended = function(){
510 return this.descriptionextended;
513 this.getDisabled = function(){
514 return this.disabled;
517 this.getTimeBegin = function(){
518 return this.timebegin;
521 this.getTimeEnd = function(){
525 this.getDuration = function(){
526 return parseInt(this.duration, 10);
529 this.getStartPrepare = function(){
530 return this.startprepare;
533 this.getJustplay = function(){
534 return this.justplay;
537 this.getAfterevent = function(){
538 return this.afterevent;
541 this.getLogentries = function(){
542 return this.logentries;
545 this.getFilename = function(){
546 return this.tfilename;
549 this.getBackoff = function(){
553 this.getNextActivation = function(){
554 return this.nextactivation;
557 this.getFirsttryprepare = function(){
558 return this.firsttryprepare;
561 this.getState = function(){
565 this.getRepeated = function(){
566 return this.repeated;
569 this.getDontSave = function(){
570 return this.dontsave;
573 this.isCancled = function(){
577 // START SimpleXMLResult ehemals TimerAddResult
578 function SimpleXMLResult(xml){
579 // parsing values from xml-element
580 debug('[SimpleXMLResult] init: '+xml);
582 this.xmlitems = xml.getElementsByTagName("e2simplexmlresult").item(0);
583 debug("[SimpleXMLResult] count: " + xml.getElementsByTagName("e2simplexmlresult").length);
585 debug("[SimpleXMLResult] parsing e2simplexmlresult"+e);
588 this.state = this.xmlitems.getElementsByTagName("e2state").item(0).firstChild.data;
590 debug("[SimpleXMLResult] parsing e2state"+e);
593 this.statetext = this.xmlitems.getElementsByTagName("e2statetext").item(0).firstChild.data;
595 debug("[SimpleXMLResult] parsing e2statetext"+e);
598 this.getState = function(){
599 if(this.state == 'True'){
605 this.getStateText = function(){
606 return this.statetext;
609 // END SimpleXMLResult
611 //START class Settings
612 function Settings(xml){
613 // parsing values from xml-element
614 //debug('init ServiceList'+xml);
616 this.xmlitems = xml.getElementsByTagName("e2settings").item(0).getElementsByTagName("e2setting");
617 debug("[Settings] Number of items: " + this.xmlitems);
619 //debug("Service parsing Error");
621 this.getArray = function(){
623 for (var i=0;i<this.xmlitems.length;i++){
624 var xv = new Setting(this.xmlitems.item(i));
632 //START class Setting
633 function Setting(xml){
634 // parsing values from xml-element
635 //debug('init ServiceReference'+xml);
637 this.settingvalue = xml.getElementsByTagName('e2settingvalue').item(0).firstChild.data;
638 this.settingname = xml.getElementsByTagName('e2settingname').item(0).firstChild.data;
641 //debug("Service parsing Error "+e);
644 this.getSettingValue = function(){
645 return this.settingvalue;
648 this.getSettingName = function(){
649 return this.settingname;
653 //START class FileList
654 function FileList(xml){
655 // parsing values from xml-element
656 debug('[FileList] init: ' + xml);
658 this.xmlitems = xml.getElementsByTagName("e2filelist").item(0).getElementsByTagName("e2file");
660 debug("[FileList] parsing Error");
662 this.getArray = function(){
664 for(var i=0;i<this.xmlitems.length;i++){
665 //debug("parsing File "+i+" of "+this.xmlitems.length);
666 var xv = new File(this.xmlitems.item(i));
676 // parsing values from xml-element
677 //debug('init Movie');
679 this.servicereference = xml.getElementsByTagName('e2servicereference').item(0).firstChild.data;
681 this.servicereference = "N/A";
683 this.getServiceReference = function(){
684 return this.servicereference;
687 this.getNameOnly = function(){
688 if(this.root == '/') {
689 return this.servicereference;
691 return this.servicereference.replace(new RegExp('.*'+this.root, "i"), '');
696 this.isdirectory = xml.getElementsByTagName('e2isdirectory').item(0).firstChild.data;
698 this.isdirectory = "N/A";
701 this.getIsDirectory = function(){
702 return this.isdirectory;
706 this.root = xml.getElementsByTagName('e2root').item(0).firstChild.data;
711 this.getRoot = function(){
719 //START class NoteList
720 function NoteList(xml){
721 // parsing values from xml-element
723 this.xmlitems = xml.getElementsByTagName("e2noteslist").item(0).getElementsByTagName("e2note");
725 debug("[NoteList] parsing Error");
727 this.getArray = function(){
729 for(var i=0;i<this.xmlitems.length;i++){
730 var xv = new Note(this.xmlitems.item(i));
741 this.filename = xml.getElementsByTagName('e2notename').item(0).firstChild.data;
743 this.filename = "N/A";
746 this.saved = xml.getElementsByTagName('e2notesaved').item(0).firstChild.data;
751 this.nameold = xml.getElementsByTagName('e2notenameold').item(0).firstChild.data;
753 this.nameold = "False";
756 this.content = xml.getElementsByTagName('e2notecontent').item(0).firstChild.data;
761 this.size = xml.getElementsByTagName('e2notesize').item(0).firstChild.data;
766 this.mtime = new Date(parseInt(xml.getElementsByTagName('e2notemtime').item(0).firstChild.data, 10)*1000);
771 this.ctime = new Date(parseInt(xml.getElementsByTagName('e2notectime').item(0).firstChild.data, 10)*1000);
776 this.getMTime = function(){
777 var Wochentag = ["So", "Mo", "Di", "Mi", "Do", "Fr", "Sa"];
778 var wday = Wochentag[this.mtime.getDay()];
779 var day = this.mtime.getDate();
780 var month = this.mtime.getMonth()+1;
781 var year = this.mtime.getFullYear();
782 return wday+". "+day+"."+month+"."+year+" "+this.mtime.getHours()+":"+this.mtime.getMinutes();
785 this.getCTime = function(){
786 var Wochentag = ["So", "Mo", "Di", "Mi", "Do", "Fr", "Sa"];
787 var wday = Wochentag[this.ctime.getDay()];
788 var day = this.ctime.getDate();
789 var month = this.ctime.getMonth()+1;
790 var year = this.ctime.getFullYear();
791 return wday+". "+day+"."+month+"."+year+" "+this.ctime.getHours()+":"+this.ctime.getMinutes();