]> jfr.im git - irc/quakenet/qwebirc.git/blobdiff - js/qwebircinterface.js
Add configuration of dynamic and static base URLs.
[irc/quakenet/qwebirc.git] / js / qwebircinterface.js
index 82b8be81306a8fc90168fb4beb011deb8f76f906..381ecbd76a77b4f7e0af9721d42719f7b7be1c85 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: {
@@ -8,18 +16,23 @@ qwebirc.ui.Interface = new Class({
     loginRegex: null,
     appTitle: "ExampleNetwork Web IRC",
     searchURL: true,
-    theme: undefined
+    theme: undefined,
+    baseURL: null,
+    hue: null,
+    dynamicBaseURL: "/",
+    staticBaseURL: "/"
   },
   initialize: function(element, ui, options) {
+    qwebirc.global = {dynamicBaseURL: options.dynamicBaseURL, staticBaseURL: options.staticBaseURL}; /* HACK */
+
     this.setOptions(options);
 
     window.addEvent("domready", function() {
-      var ui_ = new ui($(element), new qwebirc.ui.Theme(this.options.theme), this.options);
-      
       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");
         });
       };
@@ -30,7 +43,7 @@ qwebirc.ui.Interface = new Class({
       
       if(this.options.searchURL) {
         var args = qwebirc.util.parseURI(String(document.location));
-        
+        this.options.hue = this.getHueArg(args);
         var url = args["url"];
         var chans, nick = args["nick"];
         
@@ -90,6 +103,8 @@ qwebirc.ui.Interface = new Class({
         }
       }
   
+      var ui_ = new ui($(element), new qwebirc.ui.Theme(this.options.theme), this.options);
+
       var usingAutoNick = !$defined(nick);
       if(usingAutoNick && autoConnect)
         inick = this.options.initialNickname;
@@ -97,6 +112,15 @@ qwebirc.ui.Interface = new Class({
       var details = ui_.loginBox(callback, inick, ichans, autoConnect, usingAutoNick);
     }.bind(this));
   },
+  getHueArg: function(args) {
+    var hue = args["hue"];
+    if(!$defined(hue))
+      return null;
+    hue = parseInt(hue);
+    if(hue > 360 || hue < 0)
+      return null;
+    return hue;
+  },
   randSub: function(nick) {
     var getDigit = function() { return Math.floor(Math.random() * 10); }