
jQuery.fn.dbssprite = function(options)
{
	var object = $(this);
	var className = object.attr('class');
	var actions;
	var actionArray = new Array();
	
	var down = options.down;
	var up = options.up;
	var enter = options.enter;
	var leave = options.leave;

	if (down.length > 0 ) {
		actionArray.push('mousedown');
	}
	if (up.length > 0 ) {
		actionArray.push('mouseup');
	}
	if (enter.length > 0 ) {
		actionArray.push('mouseenter');
		actionArray.push('mouseleave');
	}
	
	actions = actionArray.toString();
	actEvents = actions.replace(',',' ');
	actEvents = actEvents.replace(',',' ');
	actEvents = actEvents.replace(',',' ');
	actEvents = actEvents.replace(',',' ');
	object.bind(actEvents, bindButtonActionsClass);
	
	function bindButtonActionsClass(event)
	{
		if (options.disabled != undefined) {
			if ($(this).hasClass(options.disabled)) {
				return false;
			}
		}
		
		switch (event.type) {
			case 'mousedown':
				$(this).removeClass(options.enter);
				$(this).addClass(options.down);
				break;
				
			case 'mouseup':
				$(this).removeClass(options.down);
				$(this).addClass(options.up);
				break;
				
			case 'mouseleave':
				$(this).removeClass(options.enter);
				break;
				
			case 'mouseenter':
				$(this).addClass(options.enter);
				break;
		}
	}
}
