var MAG = Object.extend({}, MAG || {});
MAG.Devices = {
	Init: function(options)
	{
		this.options = {};
		Object.extend(this.options, options || {});
		$('devices_trademark_id').observe('change', this.changeTrademark.bind(this));
		$$('p.submit a').each(function(elm)
		{
			elm.observe('click', function()
			{
				//require at least one checkbox to be selected
				if(elm.id == 'option1' && !($$('input.checkbox').any(function(el){return el.checked;}))) {
					alert(this.options.select_checkbox_label);
					return;
				}
				else if(elm.id == 'option2' && $F('devices_trademark_id') == 0)	{
					alert(this.options.choose_trademark_label);
					return;
				}
				else {
					//find the parent form
					current_form = elm.ancestors().find(function(s){if(s.tagName.toLowerCase() == 'form'){return s}});
					setTimeout(function(){current_form.submit();}, 0);
				}
			}.bind(this));
		}.bind(this));
	},

	changeTrademark: function() {
		trademark_id = $F('devices_trademark_id');
		type_id = $F('devices_type_id');

		new Ajax.Request( this.options.url, {
			method: 'get',
			parameters: {trademark_id: trademark_id, type_id: type_id, method: 'get_devices_by_trademark_and_type'},
			onComplete: this.reloadDevices.bind(this)
		});
	},

	reloadDevices: function(req)
	{
		var json = req.responseText.evalJSON();
		devices = $('device_id');

		devices.options.length = 0;

		if (json.length) {
			devices.options[0] = new Option(this.options.choose_model_label, 0);
			for(i = 1; i < json.length + 1; i++) {
				devices.options[i] = new Option(json[i-1]['title'], json[i-1]['id']);
			}
		}
		else {
			devices.options[0] = new Option(this.options.no_records_label, 0);
		}

		MAG.select_device_id.reSet();
	}
};