var GhostLabel = Class.create();
Object.extend(GhostLabel.prototype, {
	initialize: function() {
		var inputFields = $$('form input[type="text"], form input[type="password"], textarea');
		for(var i=0, field; field = inputFields[i]; i++) {
/*
			if (field.hasClassName('filled') || field.type == "password") {
				field.value = field.value;
				field.defaultInputValue = field.parentNode.down('label').innerHTML;
			} else {
				field.defaultInputValue = field.value;
			}
*/
			if (field.dataset) {
				field.dataset['defaultType'] = field.type;


/*
			if (field.type == 'password') {
				field.dataset.defaultType = 'password';
			}
*/
			
				field.dataset['defaultValue'] = field.parentNode.down('label').innerHTML;
			
			
				Event.observe(field, 'focus', this.focusField.bindAsEventListener(this));
				Event.observe(field, 'blur', this.blurField.bindAsEventListener(this));
				
				this.addDefaultValue(field);
			}	
		}
	},
	
	removeDefaultValue: function(field) {
		if (field.value === field.dataset['defaultValue']) {
			field.value = (field.hasClassName('website')) ? 'http://' : '';
			field.addClassName('filled');
			
			if (field.dataset['defaultType'] === 'password') {
				field.setAttribute('type', 'password');
			}
		}
	},
	
	addDefaultValue: function(field) {
		if (field.value === '') {
			field.value = field.dataset['defaultValue'];
			field.removeClassName('filled');
			
			if (field.dataset['defaultType'] === 'password') {
				field.setAttribute('type', 'text');
			}
		}
	},

	focusField: function(evt) {
		var field = Event.element(evt);
		
/*
		if(field.value === field.defaultInputValue) {
			field.value = (field.hasClassName('website')) ? 'http://' : '';
			field.addClassName('filled');
		
			if(field.hasClassName('password')) {
				field.setAttribute('type', 'password');	
			}
		}
*/
		this.removeDefaultValue(field);
		field.addClassName('selected');
		field.style.color = '#111';
	},

	blurField: function(evt) {
		var field = Event.element(evt);
/*
		if (field.value == '') {
			field.value = field.defaultInputValue;
			field.removeClassName('filled');

                	if(field.hasClassName('password')) {
				field.setAttribute('type', 'text');
			}
		}
*/
		this.addDefaultValue(field);
		field.removeClassName('selected');
		field.style.color = '#AAA';
	}

});

new GhostLabel();

