(function($) {
	
	$.fn.watermark = function(options) {
		
		var defaults = {};
		
		var options = $.extend(defaults, options);
		
		return this.each(function() {
		
			var input = $(this);
		
			switch(input.attr("type")) {
				
				case "password":
				
					input.before("<input type='text' id='" + input.attr("id") + "alt" + "' class='" + input.attr("class") + "' />")
					var inputalt = input.prev();
					
					if (input.val() == "") {
						inputalt.val(input.attr("title"));
						input.hide();
					} else {
						input.show();
						inputalt.hide();
					}
					
					inputalt.focus(function(evt) {
						var inputalt = $(this);
						var input = inputalt.next();
						
						inputalt.hide();
						input.show().focus();						
					});
					
					input.blur(function(evt) {
						var input = $(this);
						var inputalt = input.prev();
						
						if (input.val() == "") {
							input.hide();
							inputalt.show();
						}
					});
				
				break;
		
				default:
					if (input.val() == "")
						input.val(input.attr("title"));
						
					input.focus(function(evt) {
						var input = $(this);
						input.val() == input.attr("title") ? input.val("").addClass("active") : null;
					});
					
					input.blur(function(evt) {
						var input = $(this);
						input.val().trim() == "" ? input.val(input.attr("title")).removeClass("active") : input.val(input.val().trim());
					});
				
			}
		
		});
		
	};
	
	$.fn.textbox = function(options) {
	
		var defaults = {
			width: 135,
			height: 29,
			watermark: true
		};
		
		var options = $.extend(defaults, options);
		
		return this.each(function() {
			
			var input = $(this);
			
			var width = input.outerWidth();
			input.wrap("<div class='textbox'></div>");
			
			var wrapper = $(this).parent();
			wrapper.prepend("<div class='cleft'></div>").append("<div class='cright'></div><div class='cback'></div>");

			var cleft = wrapper.find(".cleft");
			var cright = wrapper.find(".cright");
			var cback = wrapper.find(".cback");
			
			wrapper.width(width);
			input.width(width - parseInt(input.css("padding-left")) - parseInt(input.css("padding-right")));
			
			if (options.watermark)
				input.watermark();
			
		});
		
	};
	
	$.fn.select = function(options) {
		
		var defaults = {};
		
		var options = $.extend(defaults, options);
		
		return this.each(function() {
			
			var select = $(this);
			var origwidth = select.width();
			
			select.wrap("<div class='select'></div>");
			
			var wrapper = select.parent();
			wrapper.width(select.width());
			
			wrapper.prepend("<div class='cleft'></div><span class='selected'>"+select.children(":selected").text()+"</span>").append("<div class='cright'></div><div class='cback'></div>");
			
			var cback = wrapper.find(".cback");
			
			cback.width(select.width() - parseInt(cback.css("margin-left")) - parseInt(cback.css("margin-right")));
			
			select.css("opacity",0).change(function(evt) {
				
				$(this).siblings("span").text($(this).children(":selected").text());
				
			});
			
			var autowidth = select.width("auto").width();
			
			if (origwidth > autowidth)
			    select.width(origwidth);
			
		});
		
	};
	
})(jQuery);

String.prototype.trim = function() {
	return this.replace(/^\s+|\s+$/g,"");
}