(function( $ ) {
	
	var customTextInputSettings = {};
	
	$.fn.customTextInput = function(settings) {
		
		customTextInputSettings = $.extend({}, $.fn.customTextInput.defaults, settings);
		var settings = customTextInputSettings;
		
		return this.each(function() {
			
			//add styles
			$container = $("<div></div>").addClass(settings.wrapperClass);
			$(this).wrap($container);
			$container = $(this).parent();
			if(settings.useIcon) {
				$icon = $("<span></span>").addClass(settings.iconClass);
				$container.prepend($icon);
			}
			if(settings.useClearIcon) {
				$clearIcon = $("<span></span>").addClass(settings.clearIconClass).hide();
				$container.append($clearIcon);
			}
			if(settings.useChrome) {
				$leftChrome = $("<span></span>").addClass(settings.leftChromeClass);
				$container.prepend($leftChrome);
			}
			if(settings.useChrome) {
				$centerChrome = $("<span></span>").addClass(settings.centerChromeClass);
				$(this).wrap($centerChrome);
			}
			if(settings.useChrome) {
				$rightChrome = $("<span></span>").addClass(settings.rightChromeClass);
				$container.append($rightChrome);
			}
			$clearer = $("<div></div>").addClass(settings.clearerClass);
			$container.append($clearer);
			
			if(settings.defaultText && settings.defaultText != "") {
				$(this).updateDefaultText(settings.defaultText);
			}
			
		});
		//return $(this);
		
	};
	
	$.fn.updateDefaultText = function(newDefaultText) {
		customTextInputSettings.defaultText = newDefaultText;
		var settings = customTextInputSettings;
		
		//setup
		if($(this).val() == settings.emptyText || $(this).val() == settings.defaultText) {
			$(this).val(settings.defaultText);
			$(this).css("color",settings.deselectedTextColor);
		}
		
		//add/remove default text on click/blur
		$(this).click(function() {
			if($(this).val() == settings.defaultText) {
				$(this).val(settings.emptyText);
				$(this).css("color",settings.standardTextColor);
			}
		});
		$(this).blur(function() {
			if($(this).val() == settings.emptyText) {
				$(this).val(settings.defaultText);
				$(this).css("color",settings.deselectedTextColor);
			}
		});
	};
	
	$.fn.customTextInput.defaults = {
			defaultText : "Enter a value",
			emptyText : "",
			deselectedTextColor : "#929292",
			standardTextColor : "#000000",
			wrapperClass : "search_box_wrapper",
			useIcon : false,
			iconClass : "search_box_icon",
			useClearIcon : false,
			clearIconClass : "search_box_clear_icon",
			useChrome : false,
			leftChromeClass : "",
			centerChromeClass : "",
			rightChromeClass : "",
			clearerClass : "clearer"
	};
	
})( jQuery );
