function $W(path){ // var path_parts = path.split('/'); // var wdgt; // for (var i=0; i < path_parts.length; i++){ // wdgt = $('.widget.id-'+path_parts[i]); // } if (Spider.widgets[path]) return Spider.widgets[path]; var wdgt_id = path.replace(/\//g, '-'); var wdgt = $('#'+wdgt_id); if (wdgt.length == 0) return null; return Spider.Widget.initFromEl(wdgt); } Spider = function(){}; Spider.widgets = {}; Widgets = function(){}; Spider.Widget = Class.extend({ init: function(container, path, config){ this.el = container; this.path = path; var pathParts = path.split('/'); this.widgetId = pathParts[pathParts.length - 1]; this.fullId = pathParts.join('_'); this.backend = new Spider.WidgetBackend(this); this.readyFunctions = []; config = $.extend({}, config); this.config = config; this.model = config.model; Spider.widgets[path] = this; this.events = []; this.onWidgetCallbacks = {}; this.widgets = {}; this.findWidgets(); this.startup(); this.ready(); this.applyReady(); this.plugins = []; if (this.includePlugins) for (var i=0; i -1 ) { var namespaces = eventName.split("."); eventName = namespaces.shift(); handleObj.namespace = namespaces.slice(0).sort().join("."); } if (!this.events[eventName]) this.events[eventName] = []; this.events[eventName].push(handleObj); }, on: function(eventName, callback){ return this.bind(eventName, callback); }, trigger: function(eventName){ if (!this.events) this.events = {}; if ( eventName.indexOf(".") > -1 ) { var namespaces = eventName.split("."); eventName = namespaces.shift(); namespace = namespaces.slice(0).sort().join("."); } if (!this.events[eventName]) return; var args = Array.prototype.slice.call(arguments, 1); for (var i=0; i < this.events[eventName].length; i++){ this.events[eventName][i].callback.apply(this, args); } }, unbind: function(eventName){ if (!this.events) this.events = {}; var namespace = null; if ( eventName.indexOf(".") > -1 ) { var namespaces = eventName.split("."); eventName = namespaces.shift(); namespace = namespaces.slice(0).sort().join("."); } if (namespace){ for (var i=0; i