module.exports = new Class
({
	Extends: Htk.Field
	,Tag: 'htk-radio-group'
	
	,radioLock: false

	,initialize: function (props)
	{
		this.clear ();
		this.on ('changed', this._onRadioGroupChange, this);
		this.parent (props);
	}
	
	,clear: function ()
	{
		this.name = Math.random ().toString ();
		this.buttons = [];
	}

	,_onRadioGroupChange: function ()
	{
		for (var i = 0; i < this.buttons.length; i++)
		if (this.buttons[i].value == this._value)
			this.buttons[i].checked = true;
	}
	
	,_onRadioChange: function (value)
	{
		if (this.radioLock)
			return;
	
		this.radioLock = true;
		this.value = value;
		this.radioLock = false;
	}
	
	,createButton: function (value)
	{
		var radio = Vn.Browser.createRadio (this.name, this.doc);
		radio.value = value;
		radio.checked = value == this.value;
		radio.addEventListener ('change', this._onRadioChange.bind (this, value));
		this.buttons.push (radio);
		
		return radio;
	}
});