;(function($) {
$.mmds = {};
$.mmds.defaults = {
	model: '#modelName',
	year: '#dvlaYear',
	subset: '#subset',
	urlParams: {},
	command: ''
};

$.fn.mmdsMake = function(parameters) {
	defaults = $.mmds.defaults;
	jQuery.extend(defaults,parameters);
	this.change(function() {
		defaults.urlParams.make = $(this).attr('value');
		$(defaults.model).find('option').remove();
		$(defaults.year).find('option').remove();
		$(defaults.subset).find('option').remove();
		if (defaults.urlParams.make == -1) return;
		$.getJSON(defaults.command + '?action=getCarModel', defaults.urlParams, function(data) {
			var options = '<option value="-1" selected="selected">choose model</option>';
			for (i = 0; i < data.length; i++) {
				options += '<option value="' + data[i].modelNumber + '">' + data[i].modelName + '</option>';
			}
			$(defaults.model).html(options);
		});
		$(defaults.subset).trigger('change');
		return this;
	});
};

$.fn.mmdsModel = function(parameters) {
	defaults = $.mmds.defaults;
	jQuery.extend(defaults,parameters);
	this.change(function() {
		defaults.urlParams.model = $(this).attr('value');
		$(defaults.year).find('option').remove();
		$(defaults.subset).find('option').remove();
		
		if (defaults.urlParams.model == -1) return;
		// if the actions is 'getCarVariants' there is no year selector so return subsets via the passed in command name
		$.getJSON(defaults.command + '?action=getDvlaYear', defaults.urlParams, function(data) {
			var options = '<option value="-1" selected="selected">choose year</option>';
			for (i = 0; i < data.length; i++) {
				options += '<option value="' + data[i].registrationId + '">' + data[i].registrationMark + '</option>';
			}
			$(defaults.year).html(options);
		});
		$(defaults.subset).trigger('change');
		return this;
	});
};


$.fn.mmdsModelNoYear = function(parameters) {
	defaults = $.mmds.defaults;
	jQuery.extend(defaults,parameters);
	this.change(function() {
		defaults.urlParams.model = $(this).attr('value');
		$(defaults.year).find('option').remove();
		$(defaults.subset).find('option').remove();
		
		if (defaults.urlParams.model == -1) return;
		$.getJSON(defaults.command + '?action=getCarVariants', defaults.urlParams, function(data) {
			var options = '<option value="-1" selected="selected">choose variant</option>';
			for (i = 0; i < data.length; i++) {
				options += '<option value="' + data[i].subsetNumber + '">' + data[i].subsetName + '</option>';
			}
			$(defaults.subset).html(options);
			$('#engineInd').attr('value',data.length > 0 ? data[0].engineInd : '');
		});		

		$(defaults.subset).trigger('change');
		return this;
	});
};


$.fn.mmdsYear = function(parameters) {
	defaults = $.mmds.defaults;
	jQuery.extend(defaults,parameters);
	this.change(function() {
		defaults.urlParams.dvlaYear = $(this).attr('value');
		$(defaults.subset).find('option').remove();
		
		if (defaults.urlParams.dvlaYear == -1) return;
		
		$.getJSON(defaults.command + '?action=getSubset', defaults.urlParams, function(data) {
			var options = '<option value="-1" selected="selected">choose variant</option>';
			for (i = 0; i < data.length; i++) {
				options += '<option value="' + data[i].subsetNumber + '">' + data[i].subsetName + '</option>';
			}
			$(defaults.subset).html(options);
			$('#engineInd').attr('value',data.length > 0 ? data[0].engineInd : '');
		});
		$(defaults.subset).trigger('change');
		return this;
	});
};
})(jQuery);	

