	function load_manufacturers() {
		var jSonRequestManufacturers = new Request.JSON({url: "includes/getManufacturers.php", 
		onComplete: function(summary) {
		    numberOfmanufacturers = summary.length;
		    for(_i=0; _i<numberOfmanufacturers; _i++) {
			    var manufacturerOption = new Element('option', {
				    'value': summary[_i]['id'],
				    'html': summary[_i]['name'],
				    'events': {
						'click': load_models.bindWithEvent(null, summary[_i]['id'])
					}
				});
				manufacturerOption.injectInside('manufacturer');
				
		    }
		    
		 }}).POST();
		
		$('manufacturer').addEvent('change', function() {
			load_models(null, $('manufacturer').value);
		});
	}

	function disable_ribbons() {
		$('wax_ribbon_info').empty();
		$('waxResin_ribbon_info').empty();
		$('resin_ribbon_info').empty();
	}
	
	function disable_models() {
		$('model').setProperty('disabled', 'disabled');
		$('model').empty();
		var modelOption = new Element('option', {
				    'value': '0',
				    'html': 'Select model...'
				});
				modelOption.injectInside('model');
			
		disable_ribbons();
	}
	
	function load_models(_obj, _manufacturer) {
		var jSonRequestManufacturers = new Request.JSON({url: "includes/getModels.php", 
		onComplete: function(summary) {
		    numberOfmanufacturers = summary.length;
		    $('model').setProperty('disabled');
		    $('model').empty();
		    var modelOption = new Element('option', {
				    'value': '0',
				    'html': 'Select model...'
				});
				modelOption.injectInside('model');
				
		    for(_i=0; _i<numberOfmanufacturers; _i++) {
			    var modelOption = new Element('option', {
				    'value': summary[_i]['id'],
				    'html': summary[_i]['name'],
				    'events': {
						'click': load_ribbons.bindWithEvent(null, summary[_i]['id'])			
					}
				});
				modelOption.injectInside('model');
		    }
		    $('model').removeProperty('disabled');
		
		 }}).POST({manufacturer: _manufacturer});
		
		$('model').addEvent('change', function() {
			load_ribbons(null, $('model').value);
		});
	}
	
	function load_ribbons(_obj, _modelId) {
		disable_ribbons();
		
		var jSonRequestManufacturers = new Request.JSON({url: "includes/getRibbons.php", 
		onComplete: function(summary) {
			_ribbon_types = new Array('wax', 'waxResin', 'resin');
			
			for (_j=0; _j < _ribbon_types.length; _j++) {
				_ribbon_type = _ribbon_types[_j];
				numberOfRibbons = summary[_ribbon_type].length;
			    
			    $(_ribbon_type + '_ribbon_info').empty();
					
			    for(_i=0; _i<numberOfRibbons; _i++) {
				    var ribbonOption = new Element('div', {
				    'class': ''
					});
				
				    if ($defined(summary[_ribbon_type][_i]['cost'])) {
				    	_class_extra = '_li';
				    } else { _class_extra = ''; }
				    
				    var ribbonName = new Element('div', {
				    	'class': 'ribbon_code_field' + _class_extra,
				    	'html': summary[_ribbon_type][_i]['name']
					});
					ribbonName.injectInside(ribbonOption);
					
				    
				    var ribbonName = new Element('div', {
				    	'class': 'ribbon_width_field' + _class_extra,
				    	'html': summary[_ribbon_type][_i]['width']
					});
					ribbonName.injectInside(ribbonOption);
					
					var ribbonName = new Element('div', {
				    	'class': 'ribbon_length_field' + _class_extra,
				    	'html': summary[_ribbon_type][_i]['length']
					});
					ribbonName.injectInside(ribbonOption);
					
					var ribbonName = new Element('div', {
				    	'class': 'ribbon_m2_field' + _class_extra,
				    	'html': summary[_ribbon_type][_i]['m2']
					});
					ribbonName.injectInside(ribbonOption);
					
					var ribbonName = new Element('div', {
				    	'class': 'ribbon_ink_field' + _class_extra,
				    	'html': summary[_ribbon_type][_i]['ink']
					});
					ribbonName.injectInside(ribbonOption);
					
					var ribbonName = new Element('div', {
				    	'class': 'ribbon_colour_field' + _class_extra,
				    	'html': summary[_ribbon_type][_i]['colour']
					});
					ribbonName.injectInside(ribbonOption);
					
					var ribbonName = new Element('div', {
				    	'class': 'ribbon_qty_field' + _class_extra,
				    	'html': summary[_ribbon_type][_i]['boxqty']
					});
					ribbonName.injectInside(ribbonOption);				
			    
					if ($defined(summary[_ribbon_type][_i]['cost'])) {
						var ribbonName = new Element('div', {
					    	'class': 'ribbon_cost_field' + _class_extra,
					    	'html': summary[_ribbon_type][_i]['cost']
						});
						ribbonName.injectInside(ribbonOption);				
				    
						var ribbonName = new Element('div', {
					    	'class': 'ribbon_price_field' + _class_extra,
					    	'html': summary[_ribbon_type][_i]['price']
						});
						ribbonName.injectInside(ribbonOption);				
				    
						var ribbonName = new Element('div', {
					    	'class': 'ribbon_supplier_field' + _class_extra,
					    	'html': summary[_ribbon_type][_i]['supplier']
						});
						ribbonName.injectInside(ribbonOption);				
					}
					
			    	ribbonOption.injectInside(_ribbon_type + '_ribbon_info');
			    }
			    
		    }		    
		    
		 }}).POST({model: _modelId});
	}