/** Author: Draco Chan < draco.chan@butterflyinternet.com.au / im@dracochan.com >
 * Used to hide label for input field, i.e. text, password
 * Version: 1
 * Known issue: jQuery toggle effect might looks incorrect, better to set line-height for the input field
 * Requirement: jQuery 1.4.2
 * Usage:
jQuery(document).ready(function(){
	function getLabel(element){
		return element.attr('alt');
	}
	jQuery('input[type=text]').each( function() {
		hideLable(jQuery(this), getLabel);
	});
});
 **/

/* element: jQuery object, input element
 * getLabelFunction: a function to get label Text
 * color: color for text, e.g. '#fff'. no required
 */
function hideLable(element, getLabelFunction, color){
	if(!element || !getLabelFunction) /*important parameter*/
		return;
	var text = getLabelFunction(element);
	if(element.prev("span:contains('"+text+"')").length!=0) /*label exists*/
		return; 
	var label = jQuery(document.createElement('span'));
	element.before(label);
	label.html(text);
	label.css('position', 'absolute');
	label.css('padding-left', element.css('padding-left'));
	label.css('padding-right', element.css('padding-right'));
	label.css('padding-top', element.css('padding-top'));
	label.css('padding-bottom', element.css('padding-bottom'));
	label.css('line-height', element.css('line-height'));
	label.css('z-index', element.css('z-index'));
	if(color)
		label.css('color', color);
	label.click(function(){
		element.trigger('focus');
	});
	element.blur(function(){
		if(element.attr('value')==''){
			label.fadeIn(200);
			label.css('display', 'inline');
		} else
			label.fadeOut(200);
	});
	element.focus(function(){
		label.fadeOut(200);
	});
	element.trigger('blur'); /*init it*/
}

