blob: 9fb39c55ebb0424068610d4b3d3ced6b8407ddff (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
|
var Server =
{
dataReceivedCallback : null,
errorCallback : null,
doSort : false,
retries : 0,
XHRObj : null
};
Server.init = function()
{
var success = true;
if (this.XHRObj) {
this.XHRObj.destroy();
this.XHRObj = null;
}
return success;
};
Server.setSort = function (val) {
this.doSort = val;
};
Server.fetchVideoList = function(url) {
if (this.XHRObj == null) {
this.XHRObj = new XMLHttpRequest();
}
if (this.XHRObj) {
this.XHRObj.onreadystatechange = function()
{
var splashElement = document.getElementById("splashStatus");
if (Server.XHRObj.readyState == 4) {
Server.createVideoList();
}
};
this.XHRObj.open("GET", url, true);
this.XHRObj.send(null);
}
else {
console.log("Failed to create XHR");
if (this.errorCallback != null) {
this.errorCallback("ServerError");
}
}
};
Server.createVideoList = function() {
console.log ("creating Video list now");
if (this.XHRObj.status != 200) {
if (this.errorCallback != null) {
this.errorCallback("ServerError");
}
}
else
{
var xmlResponse = this.XHRObj.responseXML;
if (xmlResponse == null) {
if (this.errorCallback != null) {
this.errorCallback("XmlError");
}
return;
}
var xmlElement = xmlResponse.documentElement;
if (!xmlElement) {
console.log("Failed to get valid XML");
return;
}
else
{
var items = xmlElement.getElementsByTagName("item");
if (items.length == 0) {
console.log("Something wrong. Response does not contain any item");
};
for (var index = 0; index < items.length; index++) {
var titleElement = items[index].getElementsByTagName("title")[0];
var progElement = items[index].getElementsByTagName("programme")[0];
var descriptionElement = items[index].getElementsByTagName("description")[0];
var linkElement = items[index].getElementsByTagName("link")[0];
var startVal =0;
var durVal =0;
try {
startVal = parseInt(items[index].getElementsByTagName("start")[0].firstChild.data);
durVal = parseInt(items[index].getElementsByTagName("duration")[0].firstChild.data);
}
catch (e) {
console.log("ERROR: "+e);
}
var desc = descriptionElement.firstChild.data;
if (titleElement && linkElement) {
var title_list = titleElement.firstChild.data.split("~");
Data.addItem( title_list, {link : linkElement.firstChild.data,
prog: progElement.firstChild.data,
desc: desc,
start: startVal,
dur: durVal});
}
}
Data.completed(this.doSort);
if (this.dataReceivedCallback)
{
this.dataReceivedCallback(); /* Notify all data is received and stored */
}
}
}
};
|