(function($){

	$.DeviceChecker = {};
	$.DeviceChecker.List = {};

	$.fn.DeviceChecker = function() {
		return this.each(function() {
			var checker = $(this);
			var button = checker.find('input[type=submit]');
			var input = checker.find('input[type=text]');
			var output = checker.find('.output');
			var error = checker.find('.error');
			var hidden = $('#DC');
			button.unselectable();

			button.click(function(event) {
				event.preventDefault();
				event.stopPropagation();

				var serial = input.val().substr(0,2).toUpperCase();
				var list = jQuery.DeviceChecker.List;
				var devices = list[serial];

				if(devices) {
					var html = '';

					for(var i = 0, length = devices.length; i < length; i++) {
						if(i>0) html += '<br/>';
						html += devices[i].device + (devices[i].size ? '<br/>' + devices[i].size : '');
					}

					output.html(html).css('display','inline');
					error.css('display','none');
					hidden.attr('value',serial);
				} else {
					output.css('display','none');
					error.css('display','inline');
				}

				return false;
			});

			if(hidden.val()) {
				input.attr('value',hidden.val());
				button.click();
			}
		});
	};

	$(function(){
		$('#device-checker').DeviceChecker();
	});

})(jQuery);