

var ShadowInput = Class.create( {
  initialize: function(input_element, text) {
	input_element = $(input_element);
	if( input_element == null )
	{
		alert("Ett element anropat med ShadowInput() finns inte, eller har fel namn!");
		return false;
	}
	
	// Clear input if bad.
	if(input_element.value == text)
		input_element.value = "";
	
	// Create a hidden input that will get posted instead of this.
	var hidden_input = new Element("input", {"type" : "hidden", "name" : input_element.name, "value" : input_element.value});
	input_element.parentNode.appendChild(hidden_input);
	
	// Ignore the old one.
	input_element.name="";

	if(input_element.value == "")
	{
		input_element.value = text;
		input_element.setStyle({
			color: "#707070"		
		});
	}
	
	input_element.observe('change', function() {
		
			//console.info("change: " + hidden_input.name + " " + input_element.value);

			if(input_element.value != text)
				hidden_input.value = input_element.value; 			


			// Make sure its blactext
			input_element.setStyle({
				color: "#000000"	
			});
	});
	input_element.observe('focus', function() {
			//console.info("focus");
			if(input_element.value == text)
				input_element.value = "";

			if(input_element.value != text)
				hidden_input.value = input_element.value; 

			// Make sure its blactext
			input_element.setStyle({
				color: "#000000"				
			});
			
	});

	input_element.observe('keyup', function() {
	
		if(input_element.value == text)
			input_element.value = "";
			
		// Trasfer every keystroke to hidden_input.
		if(input_element.value != text)
			hidden_input.value = input_element.value;
	});
	
	input_element.observe('blur', function() {
		if(input_element.value != text)
			hidden_input.value = input_element.value;

		setTimeout( function() {
				if(input_element.value == "")
				{
					input_element.value = text;
					input_element.setStyle({
						color: "#000000"
					});				
				}
				if(input_element.value != text)
					hidden_input.value = input_element.value;
			
			}, 200);
	});
	return true;
	}
});