/**
 * @requires jQuery
 * Displays a hint text in text boxes (emulates the HTML5 placeholder attribute)
 */
netr.placeholder = function () {
	var options = {
		placeholderClass: 'placeholder', // Class name for input elements to add placeholder text to
		hiddenClass: 'structural', // Class name that gets assigned to placeholder text in label elements
		emptyClass: 'empty' // Class that is assigned to input fields with placeholder text
	};
	function init(opts) {
		for (var key in opts) {
			if (options.hasOwnProperty(key)) {
				options[key] = opts[key];
			}
		}
		$('input[type=text].' + options.placeholderClass + ', input[type=password].' + options.placeholderClass).each(function () {
			var $field = $(this);
			var $phContainer = $('label[for=' + $field.attr('id') + '] .' + options.placeholderClass);
			var $phText = $('span', $phContainer).text();
			if ($phText.length) {
				$phContainer.addClass(options.hiddenClass);
				if ($field.val() == '') {
					$field.val($phText);
					$field.addClass(options.emptyClass);
				}
				// Add event handlers for focus and blur
				$field.focus(function () {
					if ($field.val() == $phText) {
						$field.val('');
						$field.removeClass(options.emptyClass);
						$field.select(); // Make input caret visible in IE
					}
				});
				$field.blur(function () {
					if (!$field.val().length) {
						$field.addClass(options.emptyClass);
						$field.val($phText);
					}
				});
				$field.closest('form').submit(function (e) {
					if ($field.val() == $phText) {
						$field.val('');
					}
				});
			}
		});
	}
	return {
		init: init
	};
} ();
