4
flashblockBundle = document.getElementById("bundle_flashblock");
5
var isJSDisabled = !FBlockUtils.isJavascriptEnabled();
6
document.getElementById("fb_enableCheckbox").checked = FBlockUtils.isEnabled();
7
var pref = document.getElementById("flashblock_enableToggleBtn");
9
pref.checked = FBlockUtils.isButtonEnabled();
10
pref.disabled = isJSDisabled;
12
document.getElementById("fb_enableCheckbox").disabled = isJSDisabled;
13
document.getElementById("fb_siteTextbox").disabled = isJSDisabled;
14
document.getElementById("fb_sitelist").disabled = isJSDisabled;
15
document.getElementById("fb_btnRemoveAll").disabled = isJSDisabled;
20
popWhitelist: function() {
21
var prefStr = FBlockUtils.getWhitelist();
23
var siteList = document.getElementById("fb_sitelist");
24
while(siteList.getRowCount() > 0)
25
siteList.removeItemAt(0);
28
var array = prefStr.split(",");
29
array.sort(perDomainComparison);
30
for (var i = 0; i < array.length; i++) {
31
siteList.ensureElementIsVisible(siteList.appendItem(array[i]));
36
getVersion: function() {
37
if ("@mozilla.org/extensions/manager;1" in Components.classes) {
38
var flashblockID = "{3d7eb24f-2740-49df-8937-200b1cc08f8a}";
39
var em = Components.classes["@mozilla.org/extensions/manager;1"]
40
.getService(Components.interfaces.nsIExtensionManager);
41
if (!("getItemForID" in em))
43
var version = em.getItemForID(flashblockID).version;
44
var display = document.getElementById("flashblockVersion");
45
if (display && version)
46
display.value = version;
52
function checkSiteName(siteName) {
53
//var regex = /^[\w\-\.\*]+(\:\d{1,5}){0,1}(\/[^ \t\v\n\r\f\\]*)*$/;
54
var regex = /^[\w\-\.\*]+(\:\d{1,5}){0,1}\/*.*/;
55
return regex.test(siteName);
58
function listContainsSite(site) {
59
var siteList = document.getElementById("fb_sitelist");
60
var numRows = siteList.getRowCount();
62
for(i = 0; i < numRows; i++) {
63
if(siteList.getItemAtIndex(i).label == site)
69
function listFindIndex(site) {
70
var siteList = document.getElementById("fb_sitelist");
71
var numRows = siteList.getRowCount();
73
for(i = 0; i < numRows; i++) {
74
if(perDomainComparison(siteList.getItemAtIndex(i).label, site) > 0)
80
// To sort the whitelist array.
81
function perDomainComparison(host1, host2) {
83
return (a < b) ? a : b;
85
// Split on domain boundaries and reverse.
86
components1 = host1.split(".").reverse();
87
components2 = host2.split(".").reverse();
88
// Compare element by element until a difference is found
89
for (i = 0; i < min(components1.length, components2.length); i++) {
90
if (components1[i] < components2[i])
92
if (components1[i] > components2[i])
95
// If all components so far are the same, the shorter name comes first
96
if (components1.length > components2.length)
98
if (components2.length > components1.length)
103
function addOnKeypress(event) {
104
if(event && event.type == "keypress" && event.keyCode != KeyEvent.DOM_VK_RETURN)
106
event.preventDefault();
111
var textbox = document.getElementById("fb_siteTextbox");
112
var siteName = textbox.value;
114
if(siteName.length == 0)
117
if(! checkSiteName(siteName)) {
118
var msg = flashblockBundle.getString("invalidCharsInSiteName");
123
var siteList = document.getElementById("fb_sitelist");
124
if(! listContainsSite(siteName)) {
125
var numRows = siteList.getRowCount();
126
var index = listFindIndex(siteName);
129
newElement = siteList.insertItemAt(index, siteName, "");
131
newElement = siteList.appendItem(siteName, "");
133
//use ensureElementIsVisible due to mozilla bug id 250123
134
siteList.ensureElementIsVisible(newElement);
142
function removeSite() {
143
var siteList = document.getElementById("fb_sitelist");
144
var index = siteList.selectedIndex;
146
siteList.removeItemAt(index);
147
document.getElementById("fb_btnRemove").disabled = true;
151
function removeAllSites() {
152
var siteList = document.getElementById("fb_sitelist");
153
var msg = flashblockBundle.getString("confirmClearWhitelist");
156
while(siteList.getRowCount() > 0)
157
siteList.removeItemAt(0);
162
var prefStr = sitelistToString();
163
FBlockUtils.setWhitelist(prefStr);
165
FBlockUtils.setEnabled(document.getElementById("fb_enableCheckbox").checked);
170
function doCancel() {
174
function siteInput(siteField) {
175
document.getElementById("btnAdd").disabled = !siteField.value;
178
function siteSelected(siteList) {
179
document.getElementById("fb_btnRemove").disabled = (siteList.selectedIndex == -1);
182
function sitelistToString() {
183
var siteList = document.getElementById("fb_sitelist");
184
var numRows = siteList.getRowCount();
187
for(i = 0; i < numRows; i++) {
188
if(i != 0) prefStr += ",";
189
prefStr += siteList.getItemAtIndex(i).label;
194
var flashblockBundle;