2 <script type=
"text/javascript">
5 var prefs_last_updated =
0;
7 function param_escape(arg) {
8 if (typeof encodeURIComponent != 'undefined')
9 return encodeURIComponent(arg);
16 var login = localStorage[
"login"];
17 var single_user = localStorage[
"single_user"];
19 if (single_user ==
"1") login =
"admin";
21 var requestUrl = localStorage[
"site_url"] +
"/backend.php";
22 var params =
"op=getUnread&fresh=1&login=" + param_escape(login);
24 var xhr = new XMLHttpRequest();
27 xhr.open(
"POST", requestUrl, true);
28 xhr.setRequestHeader(
"Content-type",
"application/x-www-form-urlencoded");
31 xhr.onreadystatechange = function() {
32 if (xhr.readyState ==
4) {
34 var icon = new Object();
35 var title = new Object();
36 var badge = new Object();
37 var badge_color = new Object();
40 icon.path =
"images/normal.png";
43 badge_color.color = [
0,
0,
0,
0];
45 var show_badge = localStorage[
"show_badge"] ==
"1";
46 var show_fresh = localStorage[
"show_fresh"] ==
"1";
48 if (xhr.status ==
200) {
49 var response = xhr.responseText.split(
";");
51 var unread = parseInt(response[
0]);
53 if (isNaN(unread)) unread =
0;
57 if (response.length ==
2)
58 fresh = parseInt(response[
1]);
62 if (isNaN(fresh)) fresh =
0;
65 icon.path =
"images/alert.png";
66 title.title =
"You have %s unread articles.".replace(
"%s", unread);
68 if (show_fresh && fresh
> 0) {
69 badge.text = fresh +
"";
70 badge_color.color = [
0,
200,
0,
255];
72 badge.text = unread +
"";
73 badge_color.color = [
255,
0,
0,
255];
76 } else if (unread == -
1) {
77 icon.path =
"images/error.png";
79 var errorMsg = xhr.responseText.split(
";")[
1];
81 title.title =
"Error: %s.".replace(
"%s", errorMsg.trim());
84 title.title =
"You have no unread articles.";
87 localStorage[
"last_updated"] = d.getTime();
88 localStorage[
"last_error"] =
"";
90 localStorage[
"last_error"] = xhr.responseText;
92 icon.path =
"images/error.png";
93 title.title =
"Error (%s) while updating.".replace(
"%s", xhr.status);
96 if (!show_badge) badge.text =
"";
98 chrome.browserAction.setBadgeBackgroundColor(badge_color);
99 chrome.browserAction.setBadgeText(badge);
100 chrome.browserAction.setTitle(title);
101 chrome.browserAction.setIcon(icon);
113 if (localStorage[
"update_interval"])
114 update_interval = localStorage[
"update_interval"] *
60 *
1000;
116 update_interval =
15 *
60 *
1000;
118 if (localStorage[
"prefs_updated"])
119 prefs_updated = localStorage[
"prefs_updated"];
125 if (d.getTime()
> last_updated + update_interval ||
126 prefs_updated != prefs_last_updated) {
128 last_updated = d.getTime();
129 prefs_last_updated = prefs_updated;
137 window.setTimeout(
"timeout()",
1000);
142 chrome.browserAction.onClicked.addListener(function() {
143 var site_url = localStorage['site_url'];
146 var cp = new Object();
150 chrome.tabs.create(cp);
155 window.setTimeout(
"timeout()",
1000);
160 <body onload=
"init()"> </body>