var widget_sms = {
	form: null,
	text: null,
	len: null,
	oper: null,
	num: null,
	maxlen:160,
	
	nums: {},
	
	addNum: function(id, text, pattern)
	{
		widget_sms.nums[id] = {pattern: pattern};
	},
	
	setHandlers: function(formid, textid, lenid, operid, numid)
	{
		widget_sms.form = $('#'+formid);
		widget_sms.text = $('#'+textid);
		widget_sms.len = $('#'+lenid);
		widget_sms.oper = $('#'+operid);
		widget_sms.num = $('#'+numid);
		
		widget_sms.form.submit(function(){widget_sms.fillLen();return true;});
		widget_sms.text.click(widget_sms.fillLen);
		widget_sms.text.keyup(widget_sms.fillLen);
		widget_sms.oper.keyup(widget_sms.changeNum);
		widget_sms.oper.select(widget_sms.changeNum);
		widget_sms.oper.change(widget_sms.changeNum);
	},
	
	fillLen: function()
	{
		var val = widget_sms.text.val();
		
		if(val.length > widget_sms.maxlen)
		{
			val = val.substr(0, 160);
			widget_sms.text.val(val);
		}
		
		widget_sms.len.val(val.length);
	},
	
	changeNum: function()
	{
		widget_sms.num.val(widget_sms.nums[widget_sms.oper.val()].pattern);
	},
	
	prepareToSend: function()
	{
		this.state = 'send'; // состояние отправки сообщения
		this.params.phone = widget_sms.num.val();
		this.params.message = widget_sms.text.val();
	},
	
	prepareToDefault: function()
	{
		this.state = 'default';
	}
};