var fancyLabels=function()
	{
		var initLabel=function(span)
		{
			span.style.display='none';
			var lbl=span.getElementsByTagName('label')[0];
			var input=document.getElementById(lbl.htmlFor);
			input._label=lbl.firstChild.nodeValue;
			//eEvent.observe(input, 'click',focusedLabel);
			Event.observe(input, 'focus',focusedLabel);
			Event.observe(input, 'blur',blurredLabel);
			if(input.value=='')	showLabel(input);
		}
		
		var wipeLabels=function(div)
		{
			var inputs=getElementsByTagNames('input,textarea',div);
			for(var i=0;i<inputs.length;i++)
			{
				if(inputs[i].value==inputs[i]._label)
				{
					hideLabel(inputs[i]);
				}
			}
		}
		
		var focusedLabel=function(e)
		{
			var input=window.event?window.event.srcElement:e?e.target:null;
			if(input.value==input._label)hideLabel(input);
		}

		var blurredLabel=function(e)
		{
			var input=window.event?window.event.srcElement:e?e.target:null;
			if(input.value=='')showLabel(input);
		}

		var hideLabel=function(el){
			$(el).value='';
			$(el).removeClassName('hint');
		}
		
		var showLabel=function(el){
			$(el).value=$(el)._label;
			$(el).addClassName('hint');
		}

		return{
			init:function(id,fancyLabel)
			{
				if(!document.getElementById(id))return;
				var div=document.getElementById(id);
				
				var form=$(id).getElementsByTagName('form')[0];
				if(!form) var form=div
				Event.observe(form,'submit',function(){wipeLabels(div);});
				if(fancyLabel) {
					formId = form.identify();
					//alert(formId);
					$$("#"+formId+" label").each(function(el){
						if($(el.htmlFor) && ($(el.htmlFor).type =='text' || $(el.htmlFor).type =='textarea')) {
					        var span = new Element('span', { 'class': 'lbl' });
					        el.wrap(span);
				        }
					});
				}
				
				var lbls=$$('#'+id+' span.lbl').each(function(el){
				        initLabel(el);
				    });
			}
		}
	}();