var VEHICLE_1 = 0;
var VEHICLE_2 = 0;
var VEHICLE_3 = 0;
var VEHICLE_4 = 0;

function init_vehicle_qty_select() {
	VEHICLE_1 = new generate_vehicle('1');
	VEHICLE_2 = new generate_vehicle('2');
	VEHICLE_3 = new generate_vehicle('3');
	VEHICLE_4 = new generate_vehicle('4');
	
	var vehicle_qty = document.getElementById('vehicle_qty');
	
	vehicle_qty.onchange = function () {
		switch(parseInt(this.value)) {
		case 1:
			VEHICLE_2.main_div.style.display = 'none';
			VEHICLE_3.main_div.style.display = 'none';
			VEHICLE_4.main_div.style.display = 'none';
			break;
		case 2:
			VEHICLE_2.main_div.style.display = 'block';
			VEHICLE_3.main_div.style.display = 'none';
			VEHICLE_4.main_div.style.display = 'none';
			break;
		case 3:
			VEHICLE_2.main_div.style.display = 'block';
			VEHICLE_3.main_div.style.display = 'block';
			VEHICLE_4.main_div.style.display = 'none';
			break;
		case 4:
			VEHICLE_2.main_div.style.display = 'block';
			VEHICLE_3.main_div.style.display = 'block';
			VEHICLE_4.main_div.style.display = 'block';
			break;
		}
		VEHICLE_1.cargo_category_id.onchange();
		VEHICLE_2.cargo_category_id.onchange();
		VEHICLE_3.cargo_category_id.onchange();
		VEHICLE_4.cargo_category_id.onchange();
	}
	
	vehicle_qty.onchange();
}

function generate_vehicle(value) {
	this.main_div = document.getElementById('vehicle_'+value);
	
	this.cargo_category_id = document.getElementById('vehicle_'+value+'_cargo_category_id');
	// Set cargo_category_id_div checking for field error div
	if (this.cargo_category_id.parentNode.className == 'fieldWithErrors')
		this.cargo_category_id_div = this.cargo_category_id.parentNode.parentNode.parentNode;
	else
		this.cargo_category_id_div = this.cargo_category_id.parentNode.parentNode;
	
	this.cargo_category_id.vehicle_object = this;
	this.cargo_category_id.onchange = function() {
		switch(parseInt(this.value)) {
		case 1:
			this.vehicle_object.select_year_div.style.display = 'block';
			this.vehicle_object.year_div.style.display = 'none';
			
			this.vehicle_object.select_make_div.style.display = 'block';
			this.vehicle_object.make_div.style.display = 'none';
			
			this.vehicle_object.select_model_div.style.display = 'block';
			this.vehicle_object.model_div.style.display = 'none';
			
			if (this.vehicle_object.select_year.value == 'Older' || this.vehicle_object.select_year.value == 'Newer') {
				this.vehicle_object.other_auto();
			} else {
				this.vehicle_object.db_auto();
			}
			break;
		case 2:
		case 3:
		case 4:
		case 6:
		case 8:
			this.vehicle_object.select_year_div.style.display = 'none';
			this.vehicle_object.year_div.style.display = 'block';
			
			this.vehicle_object.select_make_div.style.display = 'none';
			this.vehicle_object.make_div.style.display = 'block';
			
			this.vehicle_object.select_model_div.style.display = 'none';
			this.vehicle_object.model_div.style.display = 'block';
			break;
		default:
			this.vehicle_object.select_year_div.style.display = 'none';
			this.vehicle_object.year_div.style.display = 'none';
			
			this.vehicle_object.select_make_div.style.display = 'none';
			this.vehicle_object.make_div.style.display = 'none';
			
			this.vehicle_object.select_model_div.style.display = 'none';
			this.vehicle_object.model_div.style.display = 'none';
			break;
		}
	}
	
	this.select_year = document.getElementById('vehicle_'+value+'_select_year');
	this.select_year.vehicle_object = this;
	this.select_year.onchange = function () {
		if (this.value == 'Older' || this.value == 'Newer') {
			this.vehicle_object.other_auto();
		} else {
			this.vehicle_object.db_auto();
			
			new Ajax.Updater(this.vehicle_object.select_make.id, '/request_a_quote/get_makes', {
			  	method: 'get',
				parameters: { year: this.value }
			});
		}
	}
	this.year = document.getElementById('vehicle_'+value+'_year');
	
	// Set select_year_div checking for field error div
	if (this.select_year.parentNode.className == 'fieldWithErrors')
		this.select_year_div = this.select_year.parentNode.parentNode.parentNode;
	else
		this.select_year_div = this.select_year.parentNode.parentNode;
	
	// Set year_div checking for field error div
	if (this.year.parentNode.className == 'fieldWithErrors')
		this.year_div = this.year.parentNode.parentNode.parentNode;
	else
		this.year_div = this.year.parentNode.parentNode;
	
	this.select_make = document.getElementById('vehicle_'+value+'_select_make');
	this.select_make.vehicle_object = this;
	this.select_make.onchange = function () {
		new Ajax.Updater(this.vehicle_object.select_model.id, '/request_a_quote/get_models', {
		  	method: 'get',
			parameters: { year: this.vehicle_object.select_year.value, make: this.value }
		});
	}
	this.make = document.getElementById('vehicle_'+value+'_make');
	
	// Set select_make_div checking for field error div
	if (this.select_make.parentNode.className == 'fieldWithErrors')
		this.select_make_div = this.select_make.parentNode.parentNode.parentNode;
	else
		this.select_make_div = this.select_make.parentNode.parentNode;
	
	// Set make_div checking for field error div
	if (this.make.parentNode.className == 'fieldWithErrors')
		this.make_div = this.make.parentNode.parentNode.parentNode;
	else
		this.make_div = this.make.parentNode.parentNode;
	
	this.select_model = document.getElementById('vehicle_'+value+'_select_model');
	this.model = document.getElementById('vehicle_'+value+'_model');
	
	// Set select_model_div checking for field error div
	if (this.select_model.parentNode.className == 'fieldWithErrors')
		this.select_model_div = this.select_model.parentNode.parentNode.parentNode;
	else
		this.select_model_div = this.select_model.parentNode.parentNode;
	
	// Set model_div checking for field error div
	if (this.model.parentNode.className == 'fieldWithErrors')
		this.model_div = this.model.parentNode.parentNode.parentNode;
	else
		this.model_div = this.model.parentNode.parentNode;
	
	this.db_auto = function() {
		this.year_div.style.display = 'none';
		
		this.select_make_div.style.display = 'block';
		this.make_div.style.display = 'none';
		
		this.select_model_div.style.display = 'block';
		this.model_div.style.display = 'none';
	}
	
	this.other_auto = function() {
		this.year_div.style.display = 'block';
		
		this.select_make_div.style.display = 'none';
		this.make_div.style.display = 'block';
		
		this.select_model_div.style.display = 'none';
		this.model_div.style.display = 'block';
	}
}