I"(function() { var extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }, hasProp = {}.hasOwnProperty; App.Controllers.Base = (function(superClass) { extend(Base, superClass); function Base() { this.views = {}; this.receivers = {}; this.subController = null; this.superController = null; this.params = this.__fetchParams(); } Base.prototype.getViews = function() { return this.views; }; Base.prototype.setSubController = function(cntrlr) { return this.subController = cntrlr; }; Base.prototype.setSuperController = function(cntrlr) { return this.superController = cntrlr; }; Base.prototype.getSubController = function() { return this.subController; }; Base.prototype.getSuperController = function() { return this.superController; }; Base.prototype.__fetchParams = function() { var arr, i, id, key, len, match, params, paramsArray, paramsString, splitUrl, val; params = {}; match = /https?:\/\/.+\/\w+\/(\d+)/.exec(window.location.href); id = match != null ? match[1] : null; if (id != null) { params["id"] = parseInt(id); } splitUrl = window.location.href.split('?'); if (splitUrl.length === 1) { return params; } paramsString = _.last(splitUrl); paramsArray = _.map(paramsString.split('&'), function(s) { return s.split('='); }); for (i = 0, len = paramsArray.length; i < len; i++) { arr = paramsArray[i]; key = decodeURIComponent(arr[0]); val = decodeURIComponent(arr[1]); if (val != null) { val = val.replace("+", " "); } params[key] = val; } return params; }; return Base; })(App.Mix(App.Mixins.Connectivity)); }).call(this); :ET