// Binary: cache/js-dbg-32-30b481fd82f5-linux // Flags: -j // var Native = function(k) { var f = k.initialize; var d = f; var j = function(n, l, o, m) { n.prototype[l] = o; }; d.alias = function(n, l, o) { n = this.prototype[n] return j(this, l, n, o); }; d.implement = function(m, l, o) { for (var n in m) { j(this, n, m[n], l); } } return d; }; (function() { var a = { Array: Array, Function: Function, }; for (var h in a) { new Native({ initialize: a[h], }); } } ()); Array.alias("forEach", "each"); function $merge() { var a = Array.slice(arguments); a.unshift({}); return $mixin.apply(null, a); } function $mixin(e) { for (var d = 1, a = arguments.length; d < a; d++) { var b = arguments[d]; for (var c in b) { var g = b[c], f = e[c]; e[c] = f && $type(g) == "object" && $type(f) == "object" ? $mixin(f, g) : $unlink(g); } } } function $type(a) { if (a == undefined) { return false; } if (a.$family) { } return typeof a; } function $unlink(c) { if ($type(c) == "object") { b = {}; } return b; } var Window = new Native({ initialize: function(a) {}, }); Array.implement({ extend: function(c) { return this; } }); Function.implement({ extend: function(a) { for (var b in a) { this[b] = a[b]; } return this; }, run: function(a, b) { return this.apply(b, a); } }); function Class(b) { var a = function() { Object.reset(this); var c = this.initialize ? this.initialize.apply(this, arguments) : this; }.extend(this); a.implement(b); return a; } Object.reset = function(a, c) { if (c == null) { for (var e in a) { Object.reset(a, e); } } switch ($type(a[c])) { case "object": var d = function() {}; d.prototype = a[c]; var b = new d; a[c] = Object.reset(b); } return a; }; (new Native({initialize: Class})).extend({}); function wrap(a, b, c) { return function() { var d = c.apply(this, arguments); }.extend({}); } Class.implement({ implement: function(a, d) { if ($type(a) == "object") { for (var e in a) { this.implement(e, a[e]); } } var f = Class.Mutators[a]; if (f) { d = f.call(this, d); } var c = this.prototype; switch ($type(d)) { case "function": c[a] = wrap(this, a, d); break; case "object": var b = c[a]; if ($type(b) == "object") { $mixin(b, d); } else { c[a] = $unlink(d); } } } }); Class.Mutators = { Extends: function(a) { this.prototype = new a; }, Implements: function(a) { a.each(function(b) { b = new b; this.implement(b); }, this); } }; var Events = new Class({}); var Options = new Class({ setOptions: function() { this.options = $merge.run([this.options].extend(arguments)); } }); var Autocompleter = {}; Autocompleter.Base = new Class({ Implements: [Options, Events], options: {}, }); Autocompleter.Ajax = {}; Autocompleter.Ajax.Base = new Class({ Extends: Autocompleter.Base, options: { postVar: "value", onRequest: function(){}, } }); Autocompleter.Ajax.Json = new Class({ Extends: Autocompleter.Ajax.Base, }); Autocompleter.JsonP = new Class({ Extends: Autocompleter.Ajax.Json, options: { minLength: 1 }, initialize: function(el, url, options) { this.setOptions({}); } }); new Autocompleter.JsonP();