X-Git-Url: https://jfr.im/git/irc/quakenet/qwebirc.git/blobdiff_plain/531be34e3f78dae7c41592da98c0a2adeaf68c79..015ab79ac65cca3c99282e6c735412131f92e4f9:/js/qwebircinterface.js diff --git a/js/qwebircinterface.js b/js/qwebircinterface.js index c451287..4655e0f 100644 --- a/js/qwebircinterface.js +++ b/js/qwebircinterface.js @@ -29,20 +29,47 @@ qwebirc.ui.Interface = new Class({ uiOptionsArg: null, nickValidation: null, dynamicBaseURL: "/", - staticBaseURL: "/" + staticBaseURL: "/", + cloak: false, + logoURL: null, + accountWhoisCommand: null }, initialize: function(element, ui, options) { this.setOptions(options); + var extractHost = function() { + var uri = document.location.href; + + /* IE6 doesn't have document.origin ... */ + var start = uri.indexOf('?'); + if(start != -1) + uri = uri.substring(0, start); + var start = uri.indexOf('#'); + if(start != -1) + uri = uri.substring(0, start); + + if(QWEBIRC_DEBUG && uri.endsWith(".html")) { + var last = uri.lastIndexOf("/"); + uri = uri.substring(0, last + 1); + } + if(uri.substr(uri.length - 1) != "/") + uri = uri + "/"; + + return uri; + }; + + options.baseURL = extractHost(); /* HACK */ qwebirc.global = { dynamicBaseURL: options.dynamicBaseURL, staticBaseURL: options.staticBaseURL, + baseURL: options.baseURL, nicknameValidator: $defined(options.nickValidation) ? new qwebirc.irc.NicknameValidator(options.nickValidation) : new qwebirc.irc.DummyNicknameValidator() }; window.addEvent("domready", function() { var callback = function(options) { + options.cloak = ui_.options.cloak; var IRC = new qwebirc.irc.IRCClient(options, ui_); IRC.connect(); window.onbeforeunload = qwebirc_ui_onbeforeunload; @@ -65,18 +92,18 @@ qwebirc.ui.Interface = new Class({ this.options.tsaturation = this.getSaturationArg(args, "t"); this.options.tlightness = this.getLightnessArg(args, "t"); - if($defined(args["uio"])) - this.options.uiOptionsArg = args["uio"]; + if(args.contains("uio")) + this.options.uiOptionsArg = args.get("uio"); - var url = args["url"]; - var chans, nick = args["nick"]; + var url = args.get("url"); + var chans, nick = args.get("nick"); if($defined(url)) { ichans = this.parseIRCURL(url); if($defined(chans) && chans != "") canAutoConnect = true; } else { - chans = args["channels"]; + chans = args.get("channels"); var canAutoConnect = false; @@ -102,12 +129,15 @@ qwebirc.ui.Interface = new Class({ if($defined(nick)) inick = this.randSub(nick); - if(args["randomnick"] && args["randomnick"] == 1) + if(args.contains("randomnick") && args.get("randomnick") == 1) inick = this.options.initialNickname; - + + if(args.contains("cloak") && args.get("cloak") == 1) + this.options.cloak = true; + /* we only consider autoconnecting if the nick hasn't been supplied, or it has and it's not "" */ if(canAutoConnect && (!$defined(inick) || ($defined(inick) && (inick != "")))) { - var p = args["prompt"]; + var p = args.get("prompt"); var pdefault = false; if(!$defined(p) || p == "") { @@ -138,7 +168,7 @@ qwebirc.ui.Interface = new Class({ }.bind(this)); }, getHueArg: function(args, t) { - var hue = args[t + "hue"]; + var hue = args.get(t + "hue"); if(!$defined(hue)) return null; hue = parseInt(hue); @@ -147,7 +177,7 @@ qwebirc.ui.Interface = new Class({ return hue; }, getSaturationArg: function(args, t) { - var saturation = args[t + "saturation"]; + var saturation = args.get(t + "saturation"); if(!$defined(saturation)) return null; saturation = parseInt(saturation); @@ -156,7 +186,7 @@ qwebirc.ui.Interface = new Class({ return saturation; }, getLightnessArg: function(args, t) { - var lightness = args[t + "lightness"]; + var lightness = args.get(t + "lightness"); if(!$defined(lightness)) return null; lightness = parseInt(lightness); @@ -220,16 +250,14 @@ qwebirc.ui.Interface = new Class({ } if($defined(queryArgs)) { - for(var key_ in queryArgs) { - var value = queryArgs[key_]; - + queryArgs.each(function(key_, value) { if(key_ == "key") { key = value; needkey = true; } else { not_supported.push(key_); } - } + }); } if(needkey) {