
(function($) {

	$.fn.button = function (options, callback) {
				
		if ( options != undefined && options.buttonStyle == "default" ) {
						
			var settings = $.extend({
		       	leftClass:"aristo-button-left-cap-default",
				leftHoverClass:"aristo-button-left-cap-default-hover",
				leftActiveClass:"aristo-button-left-cap-default-active",
				middleClass:"aristo-button-center-default",
				middleHoverClass:"aristo-button-center-default-hover",
				middleActiveClass:"aristo-button-center-default-active",
				rightClass:"aristo-button-right-cap-default",
				rightHoverClass:"aristo-button-right-cap-default-hover",
				rightActiveClass:"aristo-button-right-cap-default-active",
				wrapperClass:"aristo-button-wrapper"
		    }, options);
			
		} else {
	   
		 	var settings = $.extend({
		       	leftClass:"aristo-button-left-cap",
				leftHoverClass:"aristo-button-left-cap-hover",
				leftActiveClass:"aristo-button-left-cap-active",
				middleClass:"aristo-button-center",
				middleHoverClass:"aristo-button-center-hover",
				middleActiveClass:"aristo-button-center-active",
				rightClass:"aristo-button-right-cap",
				rightHoverClass:"aristo-button-right-cap-hover",
				rightActiveClass:"aristo-button-right-cap-active",
				wrapperClass:"aristo-button-wrapper"
		    }, options);
		
		}
		
		
		$('.'+settings.wrapperClass)
			.live('mousedown', _buttonDown)
			.live('mouseup', _buttonUp)
			.live('mouseleave', _buttonUp);
				
		var elements = this;
		return elements.each(function(index, element) {
			
			var btn = $(this);
			
			btn.css("cursor", "inherit");
			btn.wrap('<div class="'+settings.wrapperClass+'"></div>');
			
			elements[index] = btn.closest("."+settings.wrapperClass).get(0);	// Returning array of wrapped elements, instead of just the raw original element
						
			if ( !btn.hasClass(settings.middleClass) ) btn.addClass(settings.middleClass);
			
			$('<div class="'+settings.leftClass+'"></div>')
				.css("cursor", "inherit")
				.insertBefore(btn);
				
			$('<div class="'+settings.rightClass+'"></div>')
				.css("cursor", "inherit")
				.insertAfter(btn);		

	    });
	
		function _buttonDown(e) {
			var $this = $(this);
			$this.find("."+settings.leftClass).addClass(settings.leftActiveClass);
			$this.find("."+settings.middleClass).addClass(settings.middleActiveClass);
			$this.find("."+settings.rightClass).addClass(settings.rightActiveClass);
		}	
			
		function _buttonUp(e) {
			var $this = $(this);		
			$this.find("."+settings.leftClass).removeClass(settings.leftActiveClass);
			$this.find("."+settings.middleClass).removeClass(settings.middleActiveClass);
			$this.find("."+settings.rightClass).removeClass(settings.rightActiveClass);
		}
		
		function _buttonHoverIn() {
			var $this = $(this);
			$this.find("."+settings.leftClass).addClass(settings.leftHoverClass);
			$this.find("."+settings.middleClass).addClass(settings.middleHoverClass);
			$this.find("."+settings.rightClass).addClass(settings.rightHoverClass);
		}
		
		function _buttonHoverOut() {
			var $this = $(this);
			$this.find("."+settings.leftClass).removeClass(settings.leftHoverClass);
			$this.find("."+settings.middleClass).removeClass(settings.middleHoverClass);
			$this.find("."+settings.rightClass).removeClass(settings.rightHoverClass);
		}
	
	}
	
	
})(jQuery);