var request = null;

var ua = navigator.userAgent.toLowerCase();

var isIE = null

var fieldMakeId = 'make';
var fieldYearId = 'year';
var fieldModelId = 'model';
var fieldBookId = 'book';

if (ua.indexOf("msie") != -1 && ua.indexOf("opera") == -1 && ua.indexOf("webtv") == -1) {
    isIE = true;
  } else {
	isIE = false;
}

function createRequest(){
	try {
		request = new XMLHttpRequest();
	} catch (trymicrosoft) {
		try {
			request = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (othermicrosoft) {
			try {
				request = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (failed) {
				request = null;
			}
		}
	}
	if (request == null) {
		alert('error');
	}
}

function init_id(makeId, yearId, modelId, bookId) {
  fieldMakeId = makeId;
  fieldyearId = yearId;
  fieldModelId = modelId;
  fieldBookId = bookId;
}	

function getMakeByYear(year){
	createRequest();
	request.open("POST","ajax_search.php", true);
	request.onreadystatechange = updateFieldMake;
	request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	request.send('act=make&year=' + year);
}

function updateFieldMake(){
	if (request.readyState == 4) {
		if (request.status == 200) {
			document.getElementById(fieldMakeId).disabled = false;
			
			
			if (isIE){
				document.getElementById(fieldMakeId).outerHTML = '<select name="make" id="' + fieldMakeId + '" onchange="getModelByYearAndMake(getElementById(\'' + fieldYearId + '\').value, this.value);">' + request.responseText + '</select>';
				document.getElementById(fieldModelId).outerHTML = '<select name="model" id="' + fieldModelId + '"  onchange="getBook(getElementById(\'' + fieldYearId + '\').value, getElementById(\'' + fieldMakeId + '\').value, getElementById(\'' + fieldModelId + '\').value);"><option>Model</option></select>';
			} else {
				document.getElementById(fieldMakeId).innerHTML = request.responseText;
				document.getElementById(fieldModelId).innerHTML = '<option>Model</option>';
			}
			
			document.getElementById(fieldModelId).disabled = true;
		}
	}
}

function getModelByYearAndMake(year, make){
	createRequest();
	request.open("POST","ajax_search.php", true);
	request.onreadystatechange = updateFieldModel;
	request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	request.send('act=model&year=' + year + '&make=' + make);
}

function updateFieldModel(){
	if (request.readyState == 4) {
		if (request.status == 200) {
			document.getElementById(fieldModelId).disabled = false;
		
			if (isIE){
				document.getElementById(fieldModelId).outerHTML = '<select name="model" id="' + fieldModelId + '"  onchange="getBook(getElementById(\'' + fieldYearId + '\').value, getElementById(\'' + fieldMakeId + '\').value, getElementById(\'' + fieldModelId + '\').value);">' + request.responseText + '</select>';
			} else {
				document.getElementById(fieldModelId).innerHTML = request.responseText;
			}
		}
	}
}

function updateFieldModel1(){
	if (request.readyState == 4) {
		if (request.status == 200) {
			document.getElementById('model').disabled = false;
			document.getElementById('year').disabled = true;

			if (isIE){
				document.getElementById(fieldModelId).outerHTML = '<select name="model" id="' + fieldModelId + '" onchange="getYearByModelAndMake(this.value,getElementById(\'' + fieldMakeId + '\').value);">' + request.responseText + '</select>';
				document.getElementById(fieldYearId).outerHTML = '<select name="year" id="' + fieldYearId + '" onchange="getBook(getElementById(\'' + fieldYearId + '\').value, getElementById(\'' + fieldMakeId + '\').value, getElementById(\'' + fieldModelId + '\').value);" disabled><option>Year</option></select>';
			} else {
				document.getElementById(fieldModelId).innerHTML = request.responseText;
				document.getElementById(fieldYearId).innerHTML = '<option>Year</option>';
			}
		}
	}
}

function getModelByMake(make){
	createRequest();
	request.open("POST","ajax_search.php", true);
	request.onreadystatechange = updateFieldModel1;
	request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	request.send('act=modelmake&make=' + make);
}

function getYearByModelAndMake(model, make){
	createRequest();
	request.open("POST","ajax_search.php", true);
	request.onreadystatechange = updateFieldYear;
	request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	request.send('act=modelmakeyear&model=' + model + '&make=' + make);
}

function getBook(year, make, model){
	createRequest();
	request.open("POST","ajax_search.php", true);
	request.onreadystatechange = updateBook;
	request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	request.send('act=book&year=' + year + '&make=' + make + '&model=' +model);
}

function updateBook(){
	if (request.readyState == 4) {
		if (request.status == 200) {
			document.getElementById('ajax_search').disabled = false;
			document.getElementById(fieldBookId).value = request.responseText;
		}
	}
}

function updateFieldYear(){
	if (request.readyState == 4) {
		if (request.status == 200) {
			document.getElementById(fieldYearId).disabled = false;
			
			if (isIE){
				document.getElementById(fieldYearId).outerHTML = '<select name="year" id="' + fieldYearId + '" onchange="getBook(getElementById(\'' + fieldYearId + '\').value, getElementById(\'' + fieldMakeId + '\').value, getElementById(\'' + fieldModelId + '\').value);">' + request.responseText + '</select>';
			} else {
				document.getElementById(fieldYearId).innerHTML = request.responseText;
			}
		}
	}
}