//	Constants
var BUTTON_FOCUS_STATE = 'focus_state';
var BUTTON_FOCUS_STATE_FOCUSED = 'focused';
var BUTTON_FOCUS_STATE_BLURRED = 'blurred';
var BUTTON_FOCUS_CLASS = 'focused';

(function( $ ) {
	
	$.fn.roundedButton = function(settings) {
		
		settings = $.extend({}, $.fn.roundedButton.defaults, settings);
		
		return this.each(
				function()
				{
					$left = $('<span></span>').addClass(settings.leftClass);
					$center = $('<span></span>').addClass(settings.centerClass);
					$right = $('<span></span>').addClass(settings.rightClass);
					
					if(settings.textPadding != "") {
						$center.css("padding", settings.textPadding);
					}
					
					if(settings.centerHeight != "") {
						$center.css("height", settings.centerHeight);
					}
					
					$center.append($(this).html());
					$(this).empty();
					
					$(this).append($left);
					$(this).append($center);
					$(this).append($right);
					
					//	Handle focus and blur manually for older browsers
					
					//	Default state is blurred
					$(this).data(BUTTON_FOCUS_STATE, BUTTON_FOCUS_STATE_BLURRED);
					
					$(this).focus(function () {
						if ($(this).data(BUTTON_FOCUS_STATE) == BUTTON_FOCUS_STATE_BLURRED) {
							$(this).data(BUTTON_FOCUS_STATE, BUTTON_FOCUS_STATE_FOCUSED);
							$(this).addClass(BUTTON_FOCUS_CLASS);
						}
					});
					$(this).blur(function () {
						if ($(this).data(BUTTON_FOCUS_STATE) == BUTTON_FOCUS_STATE_FOCUSED) {
							$(this).data(BUTTON_FOCUS_STATE, BUTTON_FOCUS_STATE_BLURRED);
							$(this).removeClass(BUTTON_FOCUS_CLASS);
						}
					});
				}
			);
		
	};
	
	$.fn.roundedButton.defaults = {
			leftClass : "flexible_button_left_chrome",
			centerClass : "flexible_button_center",
			rightClass : "flexible_button_right_chrome",
			textPadding : "",
			centerHeight : ""
	};
	
})( jQuery );
