]> jfr.im git - irc/quakenet/qwebirc.git/blobdiff - js/qwebircinterface.js
Missed one...
[irc/quakenet/qwebirc.git] / js / qwebircinterface.js
index 2ea6ac1a9bcf511f3535abd42869b7ed67c40571..5d5035b715d8ae5d09ad0dc83aea309ba327f730 100644 (file)
@@ -1,3 +1,11 @@
+function qwebirc_ui_onbeforeunload(e) { /* IE sucks */
+  var message = "This action will close all active IRC connections.";
+  var e = e || window.event;
+  if(e)
+    e.returnValue = message;
+  return message;
+}
+
 qwebirc.ui.Interface = new Class({
   Implements: [Options],
   options: {
@@ -10,16 +18,30 @@ qwebirc.ui.Interface = new Class({
     searchURL: true,
     theme: undefined,
     baseURL: null,
-    hue: null
+    hue: null,
+    saturation: null,
+    lightness: null,
+    uiOptionsArg: null,
+    nickValidation: null,
+    dynamicBaseURL: "/",
+    staticBaseURL: "/"
   },
   initialize: function(element, ui, options) {
     this.setOptions(options);
+    
+    /* HACK */
+    qwebirc.global = {
+      dynamicBaseURL: options.dynamicBaseURL,
+      staticBaseURL: options.staticBaseURL,
+      nicknameValidator: $defined(options.nickValidation) ? new qwebirc.irc.NicknameValidator(options.nickValidation) : new qwebirc.irc.DummyNicknameValidator()
+    };
 
     window.addEvent("domready", function() {
       var callback = function(options) {
         var IRC = new qwebirc.irc.IRCClient(options, ui_);
         IRC.connect();
-        window.addEvent("beforeunload", function() {
+        window.onbeforeunload = qwebirc_ui_onbeforeunload;
+        window.addEvent("unload", function() {
           IRC.quit("Page closed");
         });
       };
@@ -31,6 +53,12 @@ qwebirc.ui.Interface = new Class({
       if(this.options.searchURL) {
         var args = qwebirc.util.parseURI(String(document.location));
         this.options.hue = this.getHueArg(args);
+        this.options.saturation = this.getSaturationArg(args);
+        this.options.lightness = this.getLightnessArg(args);
+        
+        if($defined(args["uio"]))
+          this.options.uiOptionsArg = args["uio"];
+
         var url = args["url"];
         var chans, nick = args["nick"];
         
@@ -108,6 +136,24 @@ qwebirc.ui.Interface = new Class({
       return null;
     return hue;
   },
+  getSaturationArg: function(args) {
+    var saturation = args["saturation"];
+    if(!$defined(saturation))
+      return null;
+    saturation = parseInt(saturation);
+    if(saturation > 100 || saturation < -100)
+      return null;
+    return saturation;
+  },
+  getLightnessArg: function(args) {
+    var lightness = args["lightness"];
+    if(!$defined(lightness))
+      return null;
+    lightness = parseInt(lightness);
+    if(lightness > 100 || lightness < -100)
+      return null;
+    return lightness;
+  },
   randSub: function(nick) {
     var getDigit = function() { return Math.floor(Math.random() * 10); }