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.dirname = xml.getElementsByTagName('e2dirname').item(0).firstChild.data;
414 this.dirname = "/hdd/movie/";
417 this.tags = xml.getElementsByTagName('e2tags').item(0).firstChild.data;
422 this.logentries = xml.getElementsByTagName('e2logentries').item(0).firstChild.data;
424 this.logentries = "N/A";
427 this.tfilename = xml.getElementsByTagName('e2filename').item(0).firstChild.data;
429 this.tfilename = "N/A";
432 this.backoff = xml.getElementsByTagName('e2backoff').item(0).firstChild.data;
434 this.backoff = "N/A";
437 this.nextactivation = xml.getElementsByTagName('e2nextactivation').item(0).firstChild.data;
439 this.nextactivation = "N/A";
442 this.firsttryprepare = xml.getElementsByTagName('e2firsttryprepare').item(0).firstChild.data;
444 this.firsttryprepare = "N/A";
447 this.state = xml.getElementsByTagName('e2state').item(0).firstChild.data;
452 this.repeated = xml.getElementsByTagName('e2repeated').item(0).firstChild.data;
457 this.dontsave = xml.getElementsByTagName('e2dontsave').item(0).firstChild.data;
459 this.dontsave = "N/A";
462 this.cancled = xml.getElementsByTagName('e2cancled').item(0).firstChild.data;
464 this.cancled = "N/A";
467 this.color = xml.getElementsByTagName('e2color').item(0).firstChild.data;
472 this.toggledisabled = xml.getElementsByTagName('e2toggledisabled').item(0).firstChild.data;
474 this.toggledisabled = "N/A";
477 this.toggledisabledimg = xml.getElementsByTagName('e2toggledisabledimg').item(0).firstChild.data;
479 this.toggledisabledimg = "N/A";
482 this.getColor = function(){
486 this.getToggleDisabled = function(){
487 return this.toggledisabled;
490 this.getToggleDisabledIMG = function(){
491 return this.toggledisabledimg;
494 this.getToggleDisabledText = function(){
495 var retVal = this.toggledisabled == "0" ? "Enable timer" : "Disable timer";
499 this.getServiceReference = function(){
500 return encodeURIComponent(this.servicereference);
503 this.getServiceName = function(){
504 return this.servicename.replace('"', '"');
507 this.getEventID = function(){
511 this.getName = function(){
515 this.getDescription = function(){
516 return this.description;
519 this.getDescriptionExtended = function(){
520 return this.descriptionextended;
523 this.getDisabled = function(){
524 return this.disabled;
527 this.getTimeBegin = function(){
528 return this.timebegin;
531 this.getTimeEnd = function(){
535 this.getDuration = function(){
536 return parseInt(this.duration, 10);
539 this.getStartPrepare = function(){
540 return this.startprepare;
543 this.getJustplay = function(){
544 return this.justplay;
547 this.getAfterevent = function(){
548 return this.afterevent;
551 this.getDirname = function(){
555 this.getTags = function(){
559 this.getLogentries = function(){
560 return this.logentries;
563 this.getFilename = function(){
564 return this.tfilename;
567 this.getBackoff = function(){
571 this.getNextActivation = function(){
572 return this.nextactivation;
575 this.getFirsttryprepare = function(){
576 return this.firsttryprepare;
579 this.getState = function(){
583 this.getRepeated = function(){
584 return this.repeated;
587 this.getDontSave = function(){
588 return this.dontsave;
591 this.isCancled = function(){
595 // START SimpleXMLResult ehemals TimerAddResult
596 function SimpleXMLResult(xml){
597 // parsing values from xml-element
598 debug('[SimpleXMLResult] init: '+xml);
600 this.xmlitems = xml.getElementsByTagName("e2simplexmlresult").item(0);
601 debug("[SimpleXMLResult] count: " + xml.getElementsByTagName("e2simplexmlresult").length);
603 debug("[SimpleXMLResult] parsing e2simplexmlresult"+e);
606 this.state = this.xmlitems.getElementsByTagName("e2state").item(0).firstChild.data;
608 debug("[SimpleXMLResult] parsing e2state"+e);
611 this.statetext = this.xmlitems.getElementsByTagName("e2statetext").item(0).firstChild.data;
613 debug("[SimpleXMLResult] parsing e2statetext"+e);
616 this.getState = function(){
617 if(this.state == 'True'){
623 this.getStateText = function(){
624 return this.statetext;
627 // END SimpleXMLResult
629 //START class Settings
630 function Settings(xml){
631 // parsing values from xml-element
632 //debug('init ServiceList'+xml);
634 this.xmlitems = xml.getElementsByTagName("e2settings").item(0).getElementsByTagName("e2setting");
635 debug("[Settings] Number of items: " + this.xmlitems);
637 //debug("Service parsing Error");
639 this.getArray = function(){
641 for (var i=0;i<this.xmlitems.length;i++){
642 var xv = new Setting(this.xmlitems.item(i));
650 //START class Setting
651 function Setting(xml){
652 // parsing values from xml-element
653 //debug('init ServiceReference'+xml);
655 this.settingvalue = xml.getElementsByTagName('e2settingvalue').item(0).firstChild.data;
656 this.settingname = xml.getElementsByTagName('e2settingname').item(0).firstChild.data;
659 //debug("Service parsing Error "+e);
662 this.getSettingValue = function(){
663 return this.settingvalue;
666 this.getSettingName = function(){
667 return this.settingname;
671 //START class FileList
672 function FileList(xml){
673 // parsing values from xml-element
674 debug('[FileList] init: ' + xml);
676 this.xmlitems = xml.getElementsByTagName("e2filelist").item(0).getElementsByTagName("e2file");
678 debug("[FileList] parsing Error");
680 this.getArray = function(){
682 for(var i=0;i<this.xmlitems.length;i++){
683 //debug("parsing File "+i+" of "+this.xmlitems.length);
684 var xv = new File(this.xmlitems.item(i));
694 // parsing values from xml-element
695 //debug('init Movie');
697 this.servicereference = xml.getElementsByTagName('e2servicereference').item(0).firstChild.data;
699 this.servicereference = "N/A";
701 this.getServiceReference = function(){
702 return this.servicereference;
705 this.getNameOnly = function(){
706 if(this.root == '/') {
707 return this.servicereference;
709 return this.servicereference.replace(new RegExp('.*'+this.root, "i"), '');
714 this.isdirectory = xml.getElementsByTagName('e2isdirectory').item(0).firstChild.data;
716 this.isdirectory = "N/A";
719 this.getIsDirectory = function(){
720 return this.isdirectory;
724 this.root = xml.getElementsByTagName('e2root').item(0).firstChild.data;
729 this.getRoot = function(){
737 //START class NoteList
738 function NoteList(xml){
739 // parsing values from xml-element
741 this.xmlitems = xml.getElementsByTagName("e2noteslist").item(0).getElementsByTagName("e2note");
743 debug("[NoteList] parsing Error");
745 this.getArray = function(){
747 for(var i=0;i<this.xmlitems.length;i++){
748 var xv = new Note(this.xmlitems.item(i));
759 this.filename = xml.getElementsByTagName('e2notename').item(0).firstChild.data;
761 this.filename = "N/A";
764 this.saved = xml.getElementsByTagName('e2notesaved').item(0).firstChild.data;
769 this.nameold = xml.getElementsByTagName('e2notenameold').item(0).firstChild.data;
771 this.nameold = "False";
774 this.content = xml.getElementsByTagName('e2notecontent').item(0).firstChild.data;
779 this.size = xml.getElementsByTagName('e2notesize').item(0).firstChild.data;
784 this.mtime = new Date(parseInt(xml.getElementsByTagName('e2notemtime').item(0).firstChild.data, 10)*1000);
789 this.ctime = new Date(parseInt(xml.getElementsByTagName('e2notectime').item(0).firstChild.data, 10)*1000);
794 this.getMTime = function(){
795 var Wochentag = ["So", "Mo", "Di", "Mi", "Do", "Fr", "Sa"];
796 var wday = Wochentag[this.mtime.getDay()];
797 var day = this.mtime.getDate();
798 var month = this.mtime.getMonth()+1;
799 var year = this.mtime.getFullYear();
800 return wday+". "+day+"."+month+"."+year+" "+this.mtime.getHours()+":"+this.mtime.getMinutes();
803 this.getCTime = function(){
804 var Wochentag = ["So", "Mo", "Di", "Mi", "Do", "Fr", "Sa"];
805 var wday = Wochentag[this.ctime.getDay()];
806 var day = this.ctime.getDate();
807 var month = this.ctime.getMonth()+1;
808 var year = this.ctime.getFullYear();
809 return wday+". "+day+"."+month+"."+year+" "+this.ctime.getHours()+":"+this.ctime.getMinutes();