* Filters/FilterTiff.cs: Compilation fix for 1.1.14
[beagle.git] / mozilla-extension / content / beaglePrefs.js
bloba7f941ca49f26636b761cdfeee42f5fbc98d8809
1 /*\r
2  * Beagle Extension: Index webpages you visit using the Beagle Indexing Engine.\r
3  * An Extension for the Firefox (and Mozilla?) Browser.\r
4  */\r
5 \r
6 // Initiate a new preference instance.\r
7 var gPref = Components.classes['@mozilla.org/preferences-service;1'].getService(Components.interfaces.nsIPrefBranch);\r
8 \r
9 // Declare form variables.\r
10 var _elementIDs = [\r
11   'beagle.context.active',\r
12   'beagle.security.active',\r
13   'beagle.security.filters'
14 ];\r
16 function beaglePrefsInit()\r
17 {\r
18   for( var i = 0; i < _elementIDs.length; i++ )\r
19   {\r
20     var elementID = _elementIDs[i];\r
21     var element = document.getElementById(elementID);\r
23     if (!element)\r
24     {\r
25       continue;\r
26     }\r
27     else if (element.localName == 'checkbox')\r
28     {\r
29       try { element.checked = gPref.getBoolPref(elementID); }\r
30       catch(e) { element.checked = false; }\r
31     }\r
32     else if (element.localName == 'radiogroup')\r
33     {\r
34       try { element.selectedItem = element.childNodes[gPref.getIntPref(elementID)]; }\r
35       catch(e) { element.selectedItem = element.childNodes[0]; }\r
36     }\r
37     else if (element.localName == 'textbox')\r
38     {\r
39       if (element.getAttribute('preftype') == 'int')\r
40       {\r
41         try { element.value = gPref.getIntPref(elementID); }\r
42         catch(e) { element.value = 180; }\r
43       }\r
44       else\r
45       {\r
46         try { element.value = gPref.getCharPref(elementID); }\r
47         catch(e) { element.value = ''; }\r
48       }\r
49     }\r
50     else if (element.id == 'beagle.security.filters')
51     {
52       try {
53         var val = gPref.getCharPref("beagle.security.filters");
54         var items = val.split(';');
55         var listbox = document.getElementById('beagle.security.filters');
57         for (var j = 0; j < items.length; j++){
58           if(items[j] != ''){
59             var item = listbox.appendItem(items[j], items[j]);
60           }
61         }
62       } catch(e) {
63           // We don't seem to care about this.
64       }
65     }
66   }\r
68 }\r
70 function beaglePrefsSave()\r
71 {\r
72   for( var i = 0; i < _elementIDs.length; i++ )\r
73   {\r
74     var elementID = _elementIDs[i];\r
75     var element = document.getElementById(elementID);\r
77     if (!element)\r
78     {\r
79       continue;\r
80     }\r
81     else if (element.localName == 'checkbox')\r
82     {\r
83       gPref.setBoolPref(elementID, element.checked);\r
84     }\r
85     else if (element.localName == 'radiogroup')\r
86     {\r
87       gPref.setIntPref(elementID, parseInt(element.value));\r
88     }\r
89     else if (element.localName == 'textbox')\r
90     {\r
91       if (element.getAttribute('preftype') == 'int')\r
92       {\r
93         var bOkay = true;\r
94         var cPref = '';\r
95         var sPref = element.value.replace(/^[0]*/);\r
96         var sWork = "0123456789";\r
98         for (var j = 0; j < sPref.length; j++)\r
99         {\r
100           if (sWork.indexOf(sPref.charAt(j)) == -1) bOkay = false;\r
101           else cPref = cPref + sPref.charAt(j);\r
102         }\r
104         if (cPref.length == 0 ) cPref = '0';\r
105         var iPref = parseInt(cPref);\r
106         if (iPref < 180) iPref = 180;\r
107         gPref.setIntPref(elementID, iPref);\r
108       }\r
109       else\r
110       {\r
111         gPref.setCharPref(elementID, element.value);\r
112       }\r
113     }\r
114     else if (element.id == 'beagle.security.filters')
115     {
116       var val = "";
117       for (var j = 0; j < element.getRowCount(); j++){
118         var listitem = element.getItemAtIndex(j);
119         val += listitem.value + ";";
120       }
121       gPref.setCharPref(element.id, val);
122     }
123   }\r
126 function beaglePrefsAddFilter() {
127   window.openDialog('chrome://beagle/content/beagleAddDomainDialog.xul', 'Add Domain', 'chrome, modal');
130 function beaglePrefsRemoveFilter() {
131   var listbox = document.getElementById('beagle.security.filters');
132   listbox.removeItemAt(listbox.selectedIndex);
135 function updateFilterAddButton() {
136   var button = document.getElementById('beagle.filter.add');
137   var filter = document.getElementById('beagle.filter');
139   if (filter.value != ''){
140     button.disabled = false;
141   } else {
142     button.disabled = true;
143   }
146 function updateFilterRemoveButton() {
147   var button = document.getElementById('beagle.filter.remove');
148   var listbox = document.getElementById('beagle.security.filters');
150   if (listbox.selectedCount > 0){
151     button.disabled = false;
152   } else {
153     button.disabled = true;
154   }