Y.use('node', function(Y) {
	Y.on('domready', function(o) {

		Y.on('contentready', function(o) {

			Y.all('#form input').each(function(node) {
				prepareField(node);
			});



		},'#form');

		function prepareField(node) {
			var labelNode = getLabelNode(node);

			if (labelNode == null) {
				return;
			}

			if (Y.Lang.trim(node.get('value')) != '') {
				hideLabel(labelNode);
			} else {
				showLabel(labelNode);
			}

			node.on('blur', function(){
				if (Y.Lang.trim(this.get('value')) == '') {
					this.set('value', '');
					showLabel(getLabelNode(this));
				}
			}, node);

			node.on('focus', function(){
				hideLabel(getLabelNode(this));
			}, node);

		}

		function hideLabel(labelNode) {
			labelNode.detach('click');
			labelNode.detach('mouseup');
			labelNode.setStyle('visibility', 'hidden');
		}

		function showLabel(labelNode) {
			labelNode.setStyle('visibility', 'visible');

			labelNode.on('click', handleLableTrigger, labelNode);
			labelNode.on('mouseup', handleLableTrigger, labelNode);

			function handleLableTrigger() {
				var inputNode = getInputNode(this);
				hideLabel(this);
				inputNode.focus();
			}
		}

		function getLabelNode(node) {
			return Y.one('#' + node.get('id') + '-label');
		}

		function getInputNode(labelNode) {
			return Y.one('#' + labelNode.get('id').substr(0, labelNode.get('id').length - 6));
		}



	});

});

