/**
 * @author ne0n
 */

var inputs = new Array(); // массив элементов котрый будем "блокировать"
inputs.push('makers');
inputs.push('models');
inputs.push('years');
inputs.push('mods');

// блокируем или разблокируем элементы
function calc_disable(val) {
	var i, el;
	for (i=0; i<inputs.length; i++) {
		el = document.getElementById(inputs[i]);
		if (el) el.disabled = val;
	}
	
}

// загружаем список моделей с сервера
function loadModels() {
	var params = new Array(); // параметры для запроса
	var makers = document.getElementById('makers'); // ссылка на список моделей
	var models = document.getElementById('models');
	var years = document.getElementById('years');
	var mods = document.getElementById('mods');
	var o;
	
	var maker = makers.options[makers.selectedIndex].value;
	
	o = document.createElement('OPTION');
	o.appendChild(document.createTextNode('Загружаем...'));
	
	while (models.firstChild) {
		models.removeChild(models.firstChild);
	}
	
	while (years.firstChild) {
		years.removeChild(years.firstChild);
	}
	
	while (mods.firstChild) {
		mods.removeChild(mods.firstChild);
	}

	models.appendChild(o);
	
	o = document.createElement('OPTION');
	o.appendChild(document.createTextNode('Загружаем...'));
	years.appendChild(o);
	
	o = document.createElement('OPTION');
	o.appendChild(document.createTextNode('Загружаем...'));
	mods.appendChild(o);
	
	params['maker'] = maker;
	
	calc_disable(true); // блокируем элементы
	
	sendRequest('http://texasauto.ru/calc/models.html', params, 'POST', updateModels);
}

// обновляем список моделей
function updateModels(items) {
	var models = document.getElementById('models');
	
	while (models.firstChild) {
		models.removeChild(models.firstChild);
	}
	
		var i, o, fm = 0;
	for(i=0; i<items.length; i++)
	{
		if (fm == 0) fm = items[i]['id'];
		o = document.createElement('OPTION');
		o.appendChild(document.createTextNode(items[i]['name']));
		o.setAttribute('value', items[i]['id']);
		models.appendChild(o);
	}
	
	loadYears(); // загружаем года
}

function loadYears() {
	var params = new Array();
	var models = document.getElementById('models');
	
	params['model'] = models.options[models.selectedIndex].value;
	
	calc_disable(true); // блокируем элементы
	
	sendRequest('http://texasauto.ru/calc/years.html', params, 'POST', updateYears);
}

function updateYears(items) {
	var years = document.getElementById('years');
	
	while (years.firstChild) {
		years.removeChild(years.firstChild);
	}
	
	var i, o, fm = 0;
	for(i=0; i<items.length; i++) {
		o = document.createElement('OPTION');
		o.appendChild(document.createTextNode(items[i]['title']));
		o.setAttribute('value', items[i]['year'] + ":" + items[i]['old']);
		years.appendChild(o);
	}
	loadMods();
}

function loadMods() {
	var params = new Array();
	var years = document.getElementById('years');
	var models = document.getElementById('models');
	var old = document.getElementsByName('old');
	
	var year_value = years.options[years.selectedIndex].value.split(':');
	
	params['model'] = models.options[models.selectedIndex].value;
	params['year'] = year_value[0];
	
	old[0].value = year_value[1]; 
	
	calc_disable(true); // блокируем элементы
	
	sendRequest('http://texasauto.ru/calc/mods.html', params, 'POST', updateMods);
}

function updateMods(items) {
	var mods = document.getElementById('mods');
	
	while (mods.firstChild) {
		mods.removeChild(mods.firstChild);
	}
	
	var i, o, fm = 0;
	for(i=0; i<items.length; i++) {
		o = document.createElement('OPTION');
		o.appendChild(document.createTextNode(items[i]['title']));
		o.setAttribute('value', items[i]['id'] + ":" + items[i]['engine_volume'] + ":" + items[i]['engine_power'] + ":" + items[i]['fuel']);
		mods.appendChild(o);
	}
	
	updateAdditionals();
	
	calc_disable(false);
}

function updateAdditionals() {
	var power = document.getElementById('engine_power');
	var volume = document.getElementById('engine_volume');
	var fuel_g = document.getElementById('fuel_g');
	var fuel_d = document.getElementById('fuel_d');
	var mods = document.getElementById('mods');
	
	if (mods.options.length > 0) {
		var mod = mods.options[mods.selectedIndex].value.split(":");
		
		power.value = mod[2];
		volume.value = mod[1];
		
		if (mod[3] == "G") {
			fuel_g.checked = true;
		}
		else {
			fuel_d.checked = true;
		}
	}
}

function additionalInput() {
	var types = document.getElementById('types');
	var parent = types.parentNode;
	if (types.options[types.selectedIndex].value == 0) {
		types.style.display = "none";
		var other = document.createElement('input');
		other.type = 'text';
		other.name = 'other';
		other.className = 'text';
		parent.appendChild(other);
	}
}
