/* twill.js */ /* The main namespace: */ twill = {}; twill.activate = function() { twill.loadScript(_twill_script); }; twill.loadScript = function(scriptHref) { var d = MochiKit.Async.doSimpleXMLHttpRequest(scriptHref); d.addCallback(function (data) { var pre = MochiKit.DOM.PRE(); var lines = data.responseText.split('\n'); var domLines = []; for (var i=0; i\n'); v.innerHTML = msg; if (bgcolor) { v.style.backgroundColor = bgcolor; } div.appendChild(v); div.appendChild(MochiKit.DOM.BR()); }; twill.Runner.prototype.form = function (n) { var index = parseInt(n); if (index === NaN) { index = n; } var forms = this.doc().forms; var form = forms[index]; if (! form) { throw('No form by index: '+repr(index) + '\nForms: '+stringJoin(keys(forms), ', ') + '; indexes: '+ forms.length); } return form; } twill.Runner.prototype.go = function (uri) { var doc = this.doc(); var orig = doc.location.href; if (orig == uri) { doc.location.reload(); return; } doc.location.href = uri; _waitCondition = function () { return doc.location.href != orig; } } /* Commands: */ twill.Runner.prototype.commands = {}; twill.Runner.prototype.commands['go'] = function (uri) { this.go(uri); }; twill.Runner.prototype.commands['back'] = function () { this.doc().history.go(-1); }; twill.Runner.prototype.commands['reload'] = function () { this.doc().reload(); }; twill.Runner.prototype.commands['follow'] = function (pattern) { var regex = RegExp(pattern); var els = this.doc().getElementsByTagName('a'); for (var i=0; i