
/*
 * .ui-visual-noticeable
 */
n$.on('dom.reset, dom.load', function()
{
	$('.ui-visual-noticeable')
	.not('.ui-initialized')
	.addClass('ui-initialized')
	.each(function()
	{
		var $form = $(this);
	
		$form.fadeTo('fast', 0.7);
		$form.hover(
		function(e)
		{
			$form.fadeTo('slow', 1, function()
			{
				$form.addClass('ui-visual-noticeable-visual');
			});
		},
		function(e) {
			if ( $form.hasClass('ui-visual-noticeable-active') ) {
				return;
			}
			$form.fadeTo('slow', 0.7, function() {
				$form.removeClass('ui-visual-noticeable-visual');
			});
		}).find('input').each(function() {
			$(this)
			.focus(function()
			{
				$form.addClass('ui-visual-noticeable-active');
				$form.fadeTo('fast', 1);
			})
			.blur(function()
			{
				$form.removeClass('ui-visual-noticeable-active');
				$form.fadeTo('slow', 0.7);
			});
		});
	});
});


/*
 * Password-fields
 */
n$.on('dom.reset, dom.load', 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'
			});

		$self.blur(function(e)
		{
			if ( 0 < $self.val().length ) {
				return;
			}

			$(this)
			.css({
				'position': 'absolute', 
				'visibility': 'hidden'
			});

			$replacement
			.css({
				'position': 'static', 
				'visibility': 'visible'
			});
		})
		.bind('ui.check-value', function()
		{
			if ( true !== 0 < $(this).val() ) { return; }
			
			$replacement.focus();
		})
		.blur();

		$replacement.focus(function()
		{
			$(this)
			.css({
				'position': 'absolute', 
				'visibility': 'hidden'
			})
			.blur();

			$self
			.css({
				'position': 'static', 
				'visibility': 'visible'
			})
			.focus();
		});
	});
});


/*
 * Text-Fields
 */
n$.on('dom.reset, dom.load', function()
{
	$('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('');
			});
		});
	});
});





/*
	$('a.ui-ctrl-open-dialog').bind('live', function(e)
	{
		e.preventDefault();

		var 
			$block = 
				$('<div class="ui-helper-block"></div>')
				.fadeTo(0, 0)
				.appendTo('body')
				.fadeTo('slow', 0.7)
				.mousemove(function(e)
				{
					// $(this).css('background-position', (e.pageX-30)+'px '+(e.pageY-30)+'px');
					$loadIndicator
						.css({
							'top': (e.pageY-30)+'px',
							'left': (e.pageX-30)+'px'
						});
				}),
			$loadIndicator = $('<img style="position: absolute; top: 15em; left: 50%;" alt="" src="static/shared/css/images/load-indicator-000.gif" />')
				.appendTo($block);

		var 
			$iframe = $('<iframe style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border: none;" width="100%" height="100%" src="'+$(this).attr('href')+'"></iframe>')
			.css({
				'visibility': 'hidden',
				'display': 'block',
				'z-index': '3'
			})
			.appendTo('body');

		$iframe
			.load(function()
			{
				var $self = $(this);
				setTimeout(function()
				{
					$self
						.css('visibility', 'visible');
						// .fadeTo('slow', 1);
					$block.fadeTo('fast', 0, function()
					{
						$block.remove();
					});
				}, 2000);
			})
			.bind('ui.dialog-close', function()
			{
				$(this).remove();
			});
	});
*/

