/**
 *
 * Mechanismus prazdnych hodnot
 * @param  string prazdna hodnota, ktera se bude skryvat
 * @param  object barvy pisma, mezi kterymi se bude prepinat
 * @return this
 *
 */

(function ($) {

	$.fn.emptyValue = function (emptyValue, _colors) {
		var self = this;

		// jedna se o textove pole, pripadne o textareu?
		if (!self.is(':text, textarea'))
			return self;

		var colors = $.extend({
			primary: '#000',	// barva pri emptyValue hodnote
			secondary: '#000'	// barva pri manualnim vyplnovani
		}, _colors);

		// uvodni naplneni
		var value = self.val();
		if (value === '' || value === emptyValue) {
			self.css('color', colors.secondary).val(emptyValue);
		}

		// naveseni udalosti
		self.focus(function () {
			self.css('color', colors.primary);

			if (self.val() === emptyValue) {
				self.val('');
			}
		})
		.bind('blur change', function () {
			var value = self.val();
			if (value === '' || value === emptyValue) {
				self.css('color', colors.secondary).val(emptyValue);

			} else {
				self.css('color', colors.primary);
			}
		});

		// fluent interface
		return self;
	}

})(jQuery);