function init(stage)
{
	// set up objects
	var make = new htmlSelect('make');	
	var range = new htmlSelect('range');
	var model = new htmlSelect('model');
	var fuel = new htmlRadio('fuel_diesel,fuel_petrol,fuel_hybrid');// fuel
	//var door = new htmlRadio('door_3,door_5,door_7');
	var door = new htmlRadio('door_3,door_5');
	var transmission = new htmlRadio('transmission_manual,transmission_automatic');
	var trim = new htmlSelect('trim');
	
	// if 'please selects, selected go up one level
	if(make.selectedId()==0 && stage=='make') stage='none';
	if(range.selectedId()==0 && stage=='range') stage='make';
	if(model.selectedId()==0 && stage=='model') stage='range';
	if(trim.selectedId()==0 && stage=='trim') stage='transmission';

	// clear dead fields
	switch (stage){
		case 'none':		make.resetField();
		case 'make': 		range.wipe(); range.disable();
		case 'range':		model.wipe(); model.disable();
		case 'model':		fuel.wipe(); fuel.disableAll();
		case 'fuel':		door.wipe(); door.disableAll();
		case 'door':		transmission.wipe(); transmission.disableAll();
		case 'transmission':trim.wipe(); trim.disable();
		break;
	}
	// load data
	switch (stage)
	{
		case 'none':
		break;
		case 'make':
		loadXMLDoc("http://"+document.domain+"/comms/range.comms.php?makeId="+make.getValue());
		break;
		case 'range':
		loadXMLDoc("http://"+document.domain+"/comms/model.comms.php?rangeId="+range.getValue());
		break;
		case 'model':
		loadXMLDoc("http://"+document.domain+"/comms/fuel.comms.php?modelId="+model.getValue());
		break;
		case 'fuel':
		loadXMLDoc("http://"+document.domain+"/comms/door.comms.php?modelId="+model.getValue()+"&fuel="+fuel.getValue());
		break;
		case 'door':
		loadXMLDoc("http://"+document.domain+"/comms/transmission.comms.php?modelId="+model.getValue()+"&fuel="+fuel.getValue()+"&door="+door.getValue());
		break;
		case 'transmission':
		loadXMLDoc("http://www.leasingquote.co.uk/comms/trim.comms.php?modelId="+model.getValue()+"&fuel="+fuel.getValue()+"&door="+door.getValue()+"&transmission="+transmission.getValue());
		break;
		case 'trim':
		break;
	}
	
	// enabling
}
