Htk.Spin = new Class
({
	Extends: Htk.Entry
	,Tag: 'htk-spin'

	,initialize: function (props)
	{
		this.parent (props);
		this.unit = null;
		this.digits = 0;
	}

	,changed: function ()
	{
		var newValue = (this.node.value == '') ? null : parseFloat (this.node.value);
		this.node.value = newValue;
		this.realValue = value;
		this.signalEmit ('changed');
	}

	,setEditable: function (editable)
	{
		if (editable)
		{
			var input = document.createElement ('input');
			input.style.textAlign = 'right';
			input.style.width = '100%';
			setInputTypeNumber (input);
			input.addEventListener ('change', this.changed.bind (this));
			this.node.appendChild (input);
			this.entry = input;
		}
		else
		{
			removeChilds (this.node);
			this.entry = null;
		}
	}

	,putValue: function (value)
	{
		var text;
		
		if (value != null)
		{
			text = (new Number (value)).toFixed (this.digits);
		
			if (this.unit != null)
				text += ' ' + this.unit;
		}
		else
			text = '';
	
		if (!this.editable)
			setText (this.node, text);
		else
			this.entry.value = text;
	}
});
