X-Git-Url: https://jfr.im/git/irc/quakenet/qwebirc.git/blobdiff_plain/8d2bf7d06e14cdc822340b169dcab2088b25c8b9..0fc80ad2b9b14a97062e2a7eca6117f09f3234d2:/js/jslib.js
diff --git a/js/jslib.js b/js/jslib.js
index aeef5ee..89f64ec 100644
--- a/js/jslib.js
+++ b/js/jslib.js
@@ -223,6 +223,10 @@ String.prototype.startsWith = function(what) {
return this.substring(0, what.length) == what;
}
+String.prototype.endsWith = function(what) {
+ return this.substring(this.length - what.length, this.length) == what;
+};
+
/* NOT cryptographically secure! */
qwebirc.util.randHexString = function(numBytes) {
var getByte = function() {
@@ -260,12 +264,12 @@ qwebirc.util.importJS = function(name, watchFor, onload) {
qwebirc.util.createInput = function(type, parent, name, selected, id) {
var created = false;
var r;
- if(name)
+ if (name)
name = "__input" + name;
- if(Browser.Engine.trident) {
+ if (Browser.Engine.trident) {
var name2;
- if(name) {
+ if (name) {
name2 = " name=\"" + escape(name) + "\"";
} else {
name2 = "";
@@ -274,8 +278,8 @@ qwebirc.util.createInput = function(type, parent, name, selected, id) {
var h = "";
r = $(document.createElement(h));
if (type == "radio") {
- r.addEvent("click", function() {
- $(document.body).getElements("input[name=" + name + "]").forEach(function(x) {
+ r.addEvent("click", function () {
+ $(document.body).getElements("input[name=" + name + "]").forEach(function (x) {
x.setAttribute("defaultChecked", x.checked ? "defaultChecked" : "");
});
});
@@ -285,10 +289,11 @@ qwebirc.util.createInput = function(type, parent, name, selected, id) {
/* fallthough, trying it the proper way... */
}
}
- if(!created)
- r = new Element("input");
- r.setAttribute("type", type);
+ if(!created) {
+ r = new Element("input");
+ r.setAttribute("type", type);
+ }
if(name)
r.setAttribute("name", name);
if(id)
@@ -303,63 +308,6 @@ qwebirc.util.createInput = function(type, parent, name, selected, id) {
return r;
}
-/* From: www.webtoolkit.info */
-qwebirc.util.b64Table = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
-qwebirc.util.b64Encode = function(data) {
- var output = [];
- var table = qwebirc.util.b64Table;
- for(var i=0;i> 2;
- var enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
- var enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
- var enc4 = chr3 & 63;
-
- if(isNaN(chr2)) {
- enc3 = enc4 = 64;
- } else if(isNaN(chr3)) {
- enc4 = 64;
- }
-
- output.push(table.charAt(enc1) + table.charAt(enc2) + table.charAt(enc3) + table.charAt(enc4));
- }
- return output.join("");
-}
-
-/* From: www.webtoolkit.info */
-qwebirc.util.b64Decode = function(data) {
- data = data.replace(/[^A-Za-z0-9\+\/\=]/g, "");
-
- var output = [];
- var table = qwebirc.util.b64Table;
-
- /* grossly inefficient... so sue me */
- while(data.length % 4 != 0)
- data = data + "=";
-
- for(var i=0;i> 4);
- var chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
- var chr3 = ((enc3 & 3) << 6) | enc4;
-
- output.push(String.fromCharCode(chr1));
- if (enc3 != 64)
- output.push(String.fromCharCode(chr2));
- if (enc4 != 64)
- output.push(String.fromCharCode(chr3));
- }
-
- return output.join("");
-}
-
qwebirc.util.composeAnd = function() {
var xargs = arguments;
@@ -415,4 +363,38 @@ qwebirc.util.deviceHasKeyboard = function() {
qwebirc.util.generateID_ID = 0;
qwebirc.util.generateID = function() {
return "qqa-" + qwebirc.util.generateID_ID++;
-}
\ No newline at end of file
+};
+
+qwebirc.util.arrayCmp = function(a, b) {
+ for(var p=0;p