(function() {

	var jQ = typeof jQuery == 'function';
	var _listenObjects = {};
	var _temp = 'temp';
	var _group;
	var _i ;

		
		jQuery.fn.addEar = function( eType, eMethod, eGroup ) 
		{
			//alert(eGroup.attr( 'id' ) )
			_group = ( eGroup ) ? (  ( typeof eGroup == 'object' ) ? eGroup.attr( 'id' ) : eGroup ) :  _temp;
			if( !_listenObjects[ _group ] ) _listenObjects[ _group ] = [];
			_listenObjects[ _group ].push( [ this, eType ] );
//alert(' || addear '+($(this).attr('id') )+', '+eType+', '+_listenObjects[ _group ].length+', '+_group)
			if( typeof eMethod =='object' )
			{
				$(this)[  eType ]( eMethod[ 0 ], eMethod[ 1 ] );	
			}
			else
			{
				$(this)[  eType ]( eMethod );	
			}
			return ;
		}
		
		jQuery.fn.clearEars = function( eGroup ) 
		{
		//	_group = ( this ) ? this.attr( 'id' ) :  _temp;
			_group = ( eGroup ) ? (  ( typeof eGroup == 'object' ) ? eGroup.attr( 'id' ) : eGroup ) :  _temp;
//			_group = ( this ) ? (  ( typeof this == 'object' ) ? this.attr( 'id' ) : this ) :  _temp;
//			jQuery( '#alert').html(jQuery( '#alert').html()+' || clearears '+_group)
			var l = _listenObjects[ _group ].length - 1;
			for( var i = l; i >= 0; i-- )
			{
				$( _listenObjects[ _group ][ i ][ 0 ] )[ _listenObjects[ _group ][ i ][ 1 ] ] = null;
//			jQuery( '#alert').html(jQuery( '#alert').html()+' || clearears '+( (_listenObjects[ _group ].length)?_listenObjects[ _group ].length:'0')+' obj:  '+$( _listenObjects[ _group ][ i ][ 0 ] ).attr('id')+' group:  '+_group)
				_listenObjects[ _group ][ i ][ 0 ] = null;
				_listenObjects[ _group ].pop();
			}
		//	alert('post '+_listenObjects[ _group ].length )
			return ;
		}

		jQuery.fn.clearEar = function( eType, eGroup ) 
		{
			_group = ( eGroup ) ? (  ( typeof eGroup == 'object' ) ? eGroup.attr( 'id' ) : eGroup ) :  _temp;
			if( _listenObjects[ _group ] && _listenObjects[ _group ].length )
			{
			var l = _listenObjects[ _group ].length - 1;
			for( var i = l; i >= 0; i-- )
			{
		//		alert(_listenObjects[ _group ][ i ][ 1 ] )
				if( $(_listenObjects[ _group ][ i ][ 0 ]).attr('id') == $(this).attr('id') && _listenObjects[ _group ][ i ][ 1 ] ==eType )
				{
					$( _listenObjects[ _group ][ i ][ 0 ] )[ _listenObjects[ _group ][ i ][ 1 ] ] = null;
					_listenObjects[ _group ].pop();
//			jQuery( '#alert').html(jQuery( '#alert').html()+' || clearear '+($(this).attr('id') )+', '+eType+', '+(_listenObjects[ _group ].length))
					return
				}
			}
			}
			//alert('post '+_listenObjects[ _group ].length )
			return ;
		}
		jQuery.fn.hasEars = function(  ) 
		{
			return ( _listenObjects[ this.attr( 'id' ) ] && _listenObjects[ this.attr( 'id' ) ].length > 0 ) ? true : null;
		}
		
/*		function checkArray(  arr, obj, clear )
		{
			var l = arr.length;
			for( var i = 0; i < l; i++ )
			{
				if( arr[ i ][ 0 ] = obj ) return ( clear ) ? _clearEar( i;
			}
			return null;
		}*/
/*		_clearEar = function( eType, eMethod, eGroup ) 
		{
			_group = ( eGroup ) ? eGroup :  _temp;
			var l = _listenObjects[ _group ].length - 1;
			for( var i = l; i >= 0; i-- )
			{
				$( _listenObjects[ _group ][ i ][ 0 ] )[ _listenObjects[ _group ][ i ][ 1 ] ] = null;
				_listenObjects[ _group ].pop();
			}
			return ;
		}*/


})();

