rendered paste body{ meta: { html: 'true', control_name: 'login', timecode: '1143199729' }, html : '<dl class=\"controls\"><dt class=\"title\">Login</dt><dd class=\"hide_menu\" id=\"login_area\"><ul><li><label for=\"username\">Username</label><input id=\"username\" type=\"text\" value=\"\" /></li><li><label for=\"password\">Password</label><input id=\"password\" type=\"password\" value=\"\" /></li><li><dl><dt class=\"title\">register</dt><dd class=\"hide_menu\"><ul><li><label for=\"email\">Email</label><input id=\"email\" /></li></ul></dd></dl></li><li><button type=\"button\" id=\"login_submit\" name=\"login_submit\">Login</button></li></ul></dd></dl>',insertion: function () { $('login_container').innerHTML = this.html;},control: { initialize : function (opts) { this.options = { username: 'username', password: 'password', email: 'email', button: 'login_submit' }; Object.extend(this.options, opts); $('login_submit').onclick = this.login.bindAsEventListener(this); Behaviour.apply(); }, login: function (event) { var query = 'username=' + escape($(this.options.username).value) + '&' + 'password=' + escape($(this.options.password).value); if($(this.options.email).value != '') { query += '&email=' + escape($(this.options.email).value) + '&action=createuser'; } else { query += '&action=auth'; } query += "&timekey=" + new Date().getTime(); var options = {method: 'post', parameters: query, onComplete: this.recieve_login.bind(this)}; new Ajax.Request(this.options.uri, options); }, recieve_login : function (request) { if(request.responseText) { var response; eval('response = ' + request.responseText + ';'); alert(response.information.message); if(parseInt(response.information.success) == 1) { Controls.release_control('login'); } } }, unload : function (controller) { controller.fetch_control('logout'); }}}