All pastes #1221092 Raw Edit

Miscellany

public javascript v1 · immutable
#1221092 ·published 2008-10-06 21:45 UTC
rendered paste body
// Initiate a new preference instance.var gPref = Components.classes['@mozilla.org/preferences-service;1'].getService(Components.interfaces.nsIPrefBranch);// Elements of the windowsvar userName;var timer;// Create a variable for the timer process.var gTimerID;// Create a variable for HTTP requests.var gXMLHttpRequest;function caggInit(){  // Initial update of notifier icon.  window.setTimeout(updateGet,1000);}function processClick(event){  // Right-click event  if (event.button == 2)  {    var windowFeatures = "chrome,modal=yes,resizable=no";    window.openDialog('chrome://comic-aggregator-notifier/content/preferences.xul','PrefWindow',windowFeatures,'browser');    return;  }  // Left-click event (also single click, like Mac)  if (event.button == 0)  {    updateGet();  }}function updateGet(){  // Cancel previously submitted notifier job.  window.clearTimeout(gTimerID);  // Load the notifier poll timer.  try      { timer = gPref.getIntPref('cagg.time'); }  catch(e) { timer = 180; }  // Re-submit with the appropriate poll timer.  gTimerID = window.setTimeout(updateGet,timer * 1000);  // Load the notifier email address.  try	   { userName = gPref.getCharPref('cagg.user'); }  catch(e) { return; }  gXMLHttpRequest = new XMLHttpRequest();  gXMLHttpRequest.onload = updateSet;  gXMLHttpRequest.open('GET','http://comics.proyectoanonimo.com/ws/' + userName + '/unread');  gXMLHttpRequest.setRequestHeader('User-Agent','ComicAggregatorNotifier/Comic Aggregator Notifier for Mozilla/1.0');  gXMLHttpRequest.send(null);}function updateSet(){  var icon = document.getElementById('cagg.icon');  var unreadComic = getElementsByTagNames("unread_comic",gXMLHttpRequest.responseText);  var count = unreadComic[0].getAttribute("count");  switch(count)  {    case '0':      icon.setAttribute("src","chrome://comic-aggregator-notifier/content/off.png");      break;    default:      icon.setAttribute("src","chrome://comic-aggregator-notifier/content/on.png");      break;  }  var number = document.getElementById('cagg.number');  number.setAttribute("value",count);}function getElementsByTagNames(list,obj) {	if (!obj) var obj = document;	var tagNames = list.split(',');	var resultArray = new Array();	for (var i=0;i<tagNames.length;i++) {		var tags = obj.getElementsByTagName(tagNames[i]);		for (var j=0;j<tags.length;j++) {			resultArray.push(tags[j]);		}	}	var testNode = resultArray[0];	if (!testNode) return [];	if (testNode.sourceIndex) {		resultArray.sort(function (a,b) {				return a.sourceIndex - b.sourceIndex;		});	}	else if (testNode.compareDocumentPosition) {		resultArray.sort(function (a,b) {				return 3 - (a.compareDocumentPosition(b) & 6);		});	}	return resultArray;}function preferencesInit(){  userName = document.getElementById('cagg.user');  timer = document.getElementById('cagg.time');  try { userName.value = gPref.getCharPref('cagg.user'); }  catch(e) { userName.value = ''; }  try { timer.value = gPref.getIntPref('cagg.time'); }  catch(e) { timer.value = 15; }}function savePreferences(){  userName = document.getElementById('cagg.user');  gPref.setCharPref('cagg.user', userName.value);  timer = document.getElementById('cagg.time');  var bOkay = true;  var cPref = '';  var sPref = timer.value.replace(/^[0]*/);  var sWork = "0123456789";  for (j = 0; j < sPref.length; j++)  {    if (sWork.indexOf(sPref.charAt(j)) == -1) bOkay = false;    else cPref = cPref + sPref.charAt(j);  }  if (cPref.length == 0 ) cPref = '0';  var iPref = parseInt(cPref);  if (iPref < 15) iPref = 15;  gPref.setIntPref('cagg.time', iPref);}