<html> <script type="text/javascript"> var last_updated = 0; var prefs_last_updated = 0; function param_escape(arg) { if (typeof encodeURIComponent != 'undefined') return encodeURIComponent(arg); else return escape(arg); } function update() { var d = new Date(); var login = localStorage["login"]; var single_user = localStorage["single_user"]; if (single_user == "1") login = "admin"; var requestUrl = localStorage["site_url"] + "/backend.php"; var params = "op=getUnread&fresh=1&login=" + param_escape(login); var xhr = new XMLHttpRequest(); xhr.open("POST", requestUrl, true); xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); xhr.send(params); xhr.onreadystatechange = function() { if (xhr.readyState == 4) { var icon = new Object(); var title = new Object(); var badge = new Object(); var badge_color = new Object(); // init stuff icon.path = "images/normal.png"; title.title = ""; badge.text = ""; badge_color.color = [0, 0, 0, 0]; var show_badge = localStorage["show_badge"] == "1"; var show_fresh = localStorage["show_fresh"] == "1"; if (xhr.status == 200) { var response = xhr.responseText.split(";"); var unread = parseInt(response[0]); if (isNaN(unread)) unread = 0; var fresh; if (response.length == 2) fresh = parseInt(response[1]); else fresh = 0; if (isNaN(fresh)) fresh = 0; if (unread > 0) { icon.path = "images/alert.png"; title.title = "You have %s unread articles.".replace("%s", unread); if (show_fresh && fresh > 0) { badge.text = fresh + ""; badge_color.color = [0, 200, 0, 255]; } else { badge.text = unread + ""; badge_color.color = [255, 0, 0, 255]; } } else if (unread == -1) { icon.path = "images/error.png"; var errorMsg = xhr.responseText.split(";")[1]; title.title = "Error: %s.".replace("%s", errorMsg.trim()); } else { title.title = "You have no unread articles."; } localStorage["last_updated"] = d.getTime(); localStorage["last_error"] = ""; } else { localStorage["last_error"] = xhr.responseText; icon.path = "images/error.png"; title.title = "Error (%s) while updating.".replace("%s", xhr.status); } if (!show_badge) badge.text = ""; chrome.browserAction.setBadgeBackgroundColor(badge_color); chrome.browserAction.setBadgeText(badge); chrome.browserAction.setTitle(title); chrome.browserAction.setIcon(icon); } }; } function timeout() { var update_interval; var prefs_updated; if (localStorage["update_interval"]) update_interval = localStorage["update_interval"] * 60 * 1000; else update_interval = 15 * 60 * 1000; if (localStorage["prefs_updated"]) prefs_updated = localStorage["prefs_updated"]; else prefs_updated = -1; var d = new Date(); if (d.getTime() > last_updated + update_interval || prefs_updated != prefs_last_updated) { last_updated = d.getTime(); prefs_last_updated = prefs_updated; try { update(); } catch (e) { // } } window.setTimeout("timeout()", 1000); } function init() { chrome.browserAction.onClicked.addListener(function() { var site_url = localStorage['site_url']; if (site_url) { var cp = new Object(); cp.url = site_url; chrome.tabs.create(cp); } }); window.setTimeout("timeout()", 1000); } </script> <body onload="init()"> </body> </html>