lib/abaaso.js
function ( obj, event ) {
		var quit = false,
		    a    = array.remove( array.cast( arguments ), 0, 1 ),
		    o, s, log, list;

		if ( observer.ignore ) {
			return obj;
		}

		o = observer.id( obj );

		if ( o === undefined || event === undefined ) {
			throw new Error( label.error.invalidArguments );
		}

		if ( observer.silent ) {
			observer.queue.push( {obj: obj, event: event} );
		}
		else {
			s   = state.getCurrent();
			log = $.logging;

			array.each( string.explode( event ), function ( e ) {
				if ( log ) {
					utility.log(o + " firing " + e );
				}

				list = observer.list( obj, e, observer.alisteners );

				if ( list.all !== undefined ) {
					array.each( list.all, function ( i ) {
						var result = i.fn.apply( i.scope, a );

						if ( result === false ) {
							quit = true;

							return result;
						}
					});
				}

				if ( !quit && s !== "all" && list[s] !== undefined ) {
					array.each( list[s], function ( i ) {
						return i.fn.apply( i.scope, a );
					});
				}
			});
		}

		return obj;
	}
function ( obj, event ) {
		var quit = false,
		    a    = array.remove( array.cast( arguments ), 0, 1 ),
		    o, s, log, list;

		if ( observer.ignore ) {
			return obj;
		}

		o = observer.id( obj );

		if ( o === undefined || event === undefined ) {
			throw new Error( label.error.invalidArguments );
		}

		if ( observer.silent ) {
			observer.queue.push( {obj: obj, event: event} );
		}
		else {
			s   = state.getCurrent();
			log = $.logging;

			array.each( string.explode( event ), function ( e ) {
				if ( log ) {
					utility.log(o + " firing " + e );
				}

				list = observer.list( obj, e, observer.alisteners );

				if ( list.all !== undefined ) {
					array.each( list.all, function ( i ) {
						var result = i.fn.apply( i.scope, a );

						if ( result === false ) {
							quit = true;

							return result;
						}
					});
				}

				if ( !quit && s !== "all" && list[s] !== undefined ) {
					array.each( list[s], function ( i ) {
						return i.fn.apply( i.scope, a );
					});
				}
			});
		}

		return obj;
	}
function ( obj , event ) { var quit = false , a = array . remove ( array . cast ( arguments ) , 0 , 1 ) , o , s , log , list ; if ( observer . ignore ) { return obj ; } o = observer . id ( obj ) ; if ( o === undefined || event === undefined ) { throw new Error ( label . error . invalidArguments ) ; } if ( observer . silent ) { observer . queue . push ( { obj : obj , event : event } ) ; } else { s = state . getCurrent ( ) ; log = $ . logging ; array . each ( string . explode ( event ) , function ( e ) { if ( log ) { utility . log ( o + " firing " + e ) ; } list = observer . list ( obj , e , observer . alisteners ) ; if ( list . all !== undefined ) { array . each ( list . all , function ( i ) { var result = i . fn . apply ( i . scope , a ) ; if ( result === false ) { quit = true ; return result ; } } ) ; } if ( ! quit && s !== "all" && list [ s ] !== undefined ) { array . each ( list [ s ] , function ( i ) { return i . fn . apply ( i . scope , a ) ; } ) ; } } ) ; } return obj ; }
Fires an event

@method fire
@param  {Mixed}  obj   Primitive
@param  {String} event Event, or Events being fired ( comma delimited supported )
@return {Mixed}        Primitive
Fires an event