		/*
 * Password-fields
 */
 $(document).ready(function() {

	// check if browser has set password after text input
	$('input.ui-ctrl-input-text').blur(function()
	{
		$('input.ui-ctrl-input-password').each(function() {
			if ( true !== 0 < $(this).val().length ) {
				return;
			}

			$(this).trigger('ui.check-value');
		});
	});

	// password-fields
	$('input.ui-ctrl-input-password')
	.not('.ui-initialized')
	.addClass('ui-initialized')
	.each(function()
	{
		var
			$self = $(this),
			initialTitle = $(this).attr('title') || '';

		if ( true !== 0 < initialTitle.length ) {
			return;
		}

		var replacement = 
			$self
			.clone()
			.wrap('<div />')
			.parent()
			.html();

		replacement = replacement.replace(/type="?password"?/i, 'type="text"');

		var $replacement = $(replacement)
			.removeClass('ui-ctrl-input-password')
			.attr('name', 'replacement')
			.addClass('ui-ctrl-input-text')
			.addClass('ui-ctrl-input-password-replacement')
			.val($(this).attr('title'));

		$replacement
			.insertAfter($self)
			.css({
				'position': 'absolute', 
				'visibility': 'hidden',
				'display': 'none'
			});

		$self.blur(function(e)
		{
			if ( 0 < $self.val().length ) {
				return;
			}

			$(this)
			.css({
				'position': 'absolute', 
				'visibility': 'hidden',
				'display': 'none'
			});

			$replacement
			.css({
				'position': 'static', 
				'visibility': 'visible',
				'display': 'inline'
			});
		})
		.bind('ui.check-value', function()
		{
			if ( true !== 0 < $(this).val() ) { return; }
			
			$replacement.focus();
		})
		.blur();

		$replacement.focus(function()
		{
			$(this)
			.css({
				'position': 'absolute', 
				'visibility': 'hidden',
				'display': 'none'
			})
			.blur();

			$self
			.css({
				'position': 'static', 
				'visibility': 'visible',
				'display': 'inline'
			})
			.focus();
		});
	});

	$('input.ui-ctrl-input-text, textarea.ui-ctrl-input-textarea')
	.not('input.ui-ctrl-input-password-replacement')
	.not('.ui-initialized')
	.addClass('ui-initialized')
	.each(function()
	{
		var 
			initialTitle = $(this).attr('title') || '',
			initialValue = $(this).val();
		if ( true !== 0 < initialTitle.length ) {
			return;
		}

		$(this)
		.blur(function()
		{
			var val = $(this).val() || '';
			if ( 0 < val.length && $(this).val() != initialTitle ) {
				return;
			}

			$(this).val(initialTitle);
		})
		.focus(function()
		{
			if ( $(this).val() == initialTitle ) {
				$(this).val('');
			}
		}).blur();
	});

	$('form')
	.not('.ui-initialized')
	.addClass('ui-initialized')
	.each(function()
	{
		$(this).submit(function()
		{
			var $fields = $('input[type=text][class~=ui-ctrl-input-text], textarea[class~=ui-ctrl-input-textarea]', $(this));

			if ( true !== 0 < $fields.size() ) {
				return;
			}
			
			$fields.each(function()
			{
				if ( $(this).val() != $(this).attr('title') ) {
					return;
				}

				$(this).val('');
			});
		});
	});
});
