var MightyForm = new Class({
	Implements: Options,
	
	options: {
	},
	
	initialize: function(form_id){
		this.Form = $(form_id);
		this.overlayLabel.bind(this);
	},
	
	overlayLabel: function(input_id, options){
		var input_ids = [];
		this.setOptions(options);
		
		//alert($type(input_ids));
		
		if ($type(input_id) == 'string'){
			input_ids.extend([input_id]);
		}
		else {
			input_ids.extend(input_id);
		}
		
		//alert($type(this.Form.getElements('label')));
		
		//var labels = new Hash();
		this.Form.getElements('label.input').each(function(label, index){
			var field_id = label.get('for');
			
			//alert(field_id);
			//labels.include(field_id, label);
			var input = $(field_id);
			if (input){
				if (input.get('value') != ''){
					label.setStyle('opacity', 0);
				}
				
				//var labelFx = new Fx.Tween(label, {duration: 150});
				label.set('tween', {duration: 150});
				var fx_label_focus = function(){
					if (input.get('value') == ''){
						label.fade(0.3);
					}
				}
				
				label.addEvent('click', fx_label_focus);
				input.addEvents({
					'click': fx_label_focus,
					'focus': fx_label_focus,
					'keyup': function(){
						if (input.get('value').length > 0){
							label.fade('hide');
						}
						else {
							label.fade(0.3);
						}
					},
					'blur': function(){
						if (input.get('value') == ''){
							label.fade('in');
						}
					}
				});
			}
		});
	}
});
