document.getElementsByTagName("head")[0].appendChild(script);
}
-qwebirc.util.createInput = function(type, parent, name, selected) {
+qwebirc.util.createInput = function(type, parent, name, selected, id) {
var r;
if(Browser.Engine.trident) {
if(name) {
} else {
name = "";
}
- r = $(document.createElement("<input type=\"" + type + "\"" + name + " " + (selected?" checked":"") + "/>"));
+ if(id) {
+ id = " id=\"" + escape(id) + "\"";
+ } else {
+ id = "";
+ }
+ r = $(document.createElement("<input type=\"" + type + "\"" + name + id + " " + (selected?" checked":"") + "/>"));
} else {
r = new Element("input");
r.type = type;
if(name)
r.name = name;
+ if(id)
+ r.id = id;
if(selected)
r.checked = true;
return v;
}
+
+qwebirc.util.generateID_ID = 0;
+qwebirc.util.generateID = function() {
+ return "qqa-" + qwebirc.util.generateID_ID++;
+}
\ No newline at end of file
this.options.uiOptions = options.uiOptions;
this.options.baseURL = options.baseURL;
this.options.optionsCallback = options.optionsCallback;
-
this.create(parent);
this.addSteps();
},
var p = new Element("div");
parent.appendChild(p);
- var r = qwebirc.util.createInput("radio", p, name, selected);
- p.appendChild(document.createTextNode(text));
+ var id = qwebirc.util.generateID();
+ var r = qwebirc.util.createInput("radio", p, name, selected, id);
+
+ var label = new Element("label", {"for": id});
+ label.appendChild(document.createTextNode(text));
+ p.appendChild(label);
return r;
},
var customnickDiv = new Element("div");
this.customnick = this.newStep({
- "title": "Nickname mode",
+ "title": "Choose a nickname mode",
"first": "At startup would you like the client to use a random nickname, a preset nickname or a nickname of the users choice?",
"hint": "It is recommended that you only use a preset nickname if the client is for your own personal use.",
middle: customnickDiv
"hint": "You need to display the dialog if you want the user to be able to set their nickname before connecting."
});
- var changeOptions = new Element("input");
- changeOptions.type = "submit";
- changeOptions.value = "Alter current look and feel";
- changeOptions.addEvent("click", this.options.optionsCallback);
+ var changeOptions = new Element("div");
+ this.currentLF = this.newRadio(changeOptions, "Use the current look and feel (", "lookandfeel", true);
+ var alterButton = new Element("input");
+ alterButton.type = "submit";
+ alterButton.value = "alter";
+ alterButton.addEvent("click", this.options.optionsCallback);
+ changeOptions.firstChild.appendChild(alterButton);
+ changeOptions.firstChild.appendChild(document.createTextNode(")."));
+
+ this.defaultLF = this.newRadio(changeOptions, "Use the default look and feel.", "lookandfeel");
+
this.lookandfeel = this.newStep({
- "title": "Alter look and feel?",
+ "title": "Configure look and feel",
"first": "The look and feel will be copied from the current settings.",
middle: changeOptions
});
this.nicknameBox.addClass("text");
this.nickname = this.newStep({
"title": "Set nickname",
- "first": "Enter the nickname you would like the client to use by default (use a . for a random number):",
+ "first": "Enter the nickname you would like the client to use by default:",
"premove": function() {
if(this.nicknameBox.value == "") {
alert("You must supply a nickname.");
}
return true;
}.bind(this),
- middle: this.nicknameBox
+ middle: this.nicknameBox,
+ hint: "If you use a . (dot/period) then it will be substituted with a random number."
}).addEvent("show", af.bind(this.nicknameBox));
var codeDiv = new Element("div");
if(connectdialog)
URL.push("prompt=1");
- var uioptions = this.options.uiOptions.serialise();
- if(uioptions != "")
- URL.push("uio=" + uioptions);
-
+ if(this.currentLF.checked) {
+ var uioptions = this.options.uiOptions.serialise();
+ if(uioptions != "")
+ URL.push("uio=" + uioptions);
+ }
+
return this.options.baseURL + (URL.length>0?"?":"") + URL.join("&");
}
});
this.render();
},
- createInput: function(type, parent, name, selected) {
+ createInput: function(type, parent, name, selected, id) {
if(!$defined(parent))
parent = this.parentElement;
- return qwebirc.util.createInput(type, parent, name, selected);
+ return qwebirc.util.createInput(type, parent, name, selected, this.option.id);
},
FE: function(element, parent) {
var n = new Element(element);
qwebirc.config.CheckInput = new Class({
Extends: qwebirc.config.Input,
render: function() {
- var i = this.createInput("checkbox");
+ var i = this.createInput("checkbox", null, null, null, this.id);
this.mainElement = i;
i.checked = this.value;
var row = FE("tr", tb);
var cella = FE("td", row);
- cella.set("text", x.label + ":");
+
+ x.id = qwebirc.util.generateID();
+ var label = new Element("label", {"for": x.id});
+ cella.appendChild(label);
+ label.set("text", x.label + ":");
var cellb = FE("td", row);
this.boxList.push([x, new x.Element(cellb, x, i, this)]);