rem: /*	behavior objects are specified in the following format: * *	{ *	 	"#id": { *			"found": function(element){ * *			}, * *			"onblah": {targetObj: foo, targetFunc: "bar"}, * *			"onblarg": "/foo/bar/baz/blarg", * *			"onevent": function(evt){ *			}, * *			"onotherevent: function(evt){ * *			} *		}, * *		"#id2": { * *		}, * *		"#id3": function(element){ * *		}, * * *		"#id4": "/found/topic/name", * * *		"#id4 > *": function(element){ * *		}, * * *		"#id4 > :first-child": { ... }, * * *		"#id4 > :last-child":  { ... }, * * *		"tagname": { * *		}, * *		"tagname1 tagname2 tagname3": { * *		}, * *		".classname": { * *		}, * *		"tagname.classname": { * *		}, *	} * *	The "found" method is a generalized handler that's called as soon *	as the node matches the selector. Rules for values that follow also *	apply to the "found" key. * *	The "on*" handlers are attached with dojo.connect(). * *	If the value corresponding to the ID key is a function and not a *	list, it's treated as though it was the value of "found". * */ 
context: 	this.add = function(behaviorObj){		/*	behavior objects are specified in the following format:		 *		 *	{ 		 *	 	"#id": {		 *			"found": function(element){		 *				// ...		 *			},		 *		 *			"onblah": {targetObj: foo, targetFunc: "bar"},		 *		 *			"onblarg": "/foo/bar/baz/blarg",		 *		 *			"onevent": function(evt){		 *			},		 *		 *			"onotherevent: function(evt){		 *				// ...		 *			}		 *		},		 *		 *		"#id2": {		 *			// ...		 *		},		 *		 *		"#id3": function(element){		 *			// ...		 *		},		 *		 *		// publish the match on a topic		 *		"#id4": "/found/topic/name",		 *		 *		// match all direct descendants		 *		"#id4 > *": function(element){		 *			// ...		 *		},		 *		 *		// match the first child node that's an element		 *		"#id4 > :first-child": { ... },		 *		 *		// match the last child node that's an element		 *		"#id4 > :last-child":  { ... },		 *		 *		// all elements of type tagname		 *		"tagname": {		 *			// ...		 *		},		 *		 *		"tagname1 tagname2 tagname3": {		 *			// ...		 *		},		 *		 *		".classname": {		 *			// ...		 *		},		 *		 *		"tagname.classname": {		 *			// ...		 *		},		 *	}		 *		 *	The "found" method is a generalized handler that's called as soon		 *	as the node matches the selector. Rules for values that follow also		 *	apply to the "found" key.		 *			 *	The "on*" handlers are attached with dojo.connect(). 		 *		 *	If the value corresponding to the ID key is a function and not a		 *	list, it's treated as though it was the value of "found".		 *		 */		var tmpObj = {};		forIn(behaviorObj, this, function(behavior, name){			var tBehavior = arrIn(this.behaviors, name);			if(typeof tBehavior["id"] != "number"){				tBehavior.id = _inc++;			}			var cversion = [];			tBehavior.push(cversion);			if((dojo.isString(behavior))||(dojo.isFunction(behavior))){				behavior = { found: behavior };			}			forIn(behavior, function(rule, ruleName){				arrIn(cversion, ruleName).push(rule);			});		});	}
meta: 4497	/local1/tlutelli/issta_data/temp/all_js/javascript/2007_temp/2007/4497/b873d724c50c73b072de8a24186adef518c80989/behavior.js/clean/behavior.js