var labelizerItems = {};

fastTrim = function (str) {
	var whitespace = ' \n\r\t\f\x0b\xa0\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u200b\u2028\u2029\u3000';
	for (var i = 0; i < str.length; i++) {
		if (whitespace.indexOf(str.charAt(i)) === -1) {
			str = str.substring(i);
			break;
		}
	}
	for (i = str.length - 1; i >= 0; i--) {
		if (whitespace.indexOf(str.charAt(i)) === -1) {
			str = str.substring(0, i + 1);
			break;
		}
	}
	return whitespace.indexOf(str.charAt(0)) === -1 ? str : '';
};

jQuery.fn.labelize = function(options) {
	var settings = jQuery.extend({
	     label: "<Your label here>",
	     initialize: true
	}, options);
	
	var obj = jQuery(this);

	if (settings.initialize) {
		obj.val(settings.label);
	}
	
	labelizerItems[obj] = '';	
	obj.focus(function() {
		obj.val(labelizerItems[obj]);
	}); 
	obj.blur(function() {
		if (fastTrim(obj.val()) != '') {
			labelizerItems[obj] = obj.val();
		} else {
			labelizerItems[obj] = '';
		}
		obj.val(fastTrim(obj.val()) != '' ? obj.val() : settings.label);
	});
};
