// JavaScript Document

var xmlHttp

function GetXmlHttpObject() {			//working
var xmlHttp=null;
try
 {
 // Firefox, Opera 8.0+, Safari
 xmlHttp=new XMLHttpRequest();
 }
catch (e)
 {
 // Internet Explorer
 try
  {
  xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
  }
 catch (e)
  {
  xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
 }
return xmlHttp;
}



function session_test() {
xmlHttp=GetXmlHttpObject();
	if(xmlHttp == null)
		{
			alert("Your browser does not support HTTP Request which is needed to run Parts Finder.");
			return;
		}
	
	//wait(true, 'make_choice');
	
	var url="partsfinder/pf_session_test.php";
		url=url+"?sid="+Math.random();
		xmlHttp.onreadystatechange=function(){
			if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete") {

				if(xmlHttp.responseText == "false") {
					showMake();
				}
				/*
				else {
					var details = xmlHttp.responseText.split("^");
					
					showMake();
					/*
					showModel(details[0]);
					showSubModel(details[0],details[1]);
					showEngine(details[0],details[1],details[2]);
					showYear(details[0],details[1],details[2],details[3]);
					$showFuel();
					*/
				//}
			}
		}; 
		xmlHttp.open("GET",url,true);
		xmlHttp.send(null);
}



function showMake() {		//working
xmlHttp=GetXmlHttpObject();
	if(xmlHttp == null)
		{
			alert("Your browser does not support HTTP Request which is needed to run Parts Finder.");
			return;
		}
	
	//wait(true, 'pf_make_holder');
	//document.getElementById('pf_make_holder').style.background = '#FFC488';
	
	//document.getElementById('pf_make_holder').style.backgroundPosition="0px -53px";
	document.getElementById("pf_make").innerHTML = "Make:<span class=\"green\"> Please select</span>";
	//set string for the file thats going to be loaded
	var url="/partsfinder/pf_vehicle_process.php";
		url=url+"?action=make";
		url=url+"&sid="+Math.random();
		
		//this is what is going to happern once the file is loaded
		xmlHttp.onreadystatechange=function(){
			
			if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete") {
					stateChange('pf_make_select');
			}
		
		};
		
		//open the file
		xmlHttp.open("GET",url,true);
		xmlHttp.send(null);
}



function showModel(make) {			//working
reset_fields(1);
xmlHttp=GetXmlHttpObject();
	if(xmlHttp == null)
		{
			alert("Your browser does not support HTTP Request which is needed to run Parts Finder.");
			return;
		}
	
	//wait(true, 'model_choice');
	//document.getElementById("model_choice").innerHTML = "<img src=wait_1_3.gif /><select disabled><option>Loading...</option></select>";
	
	//document.getElementById('pf_model_holder').style.backgroundPosition="0px -53px";
	//document.getElementById('pf_make_holder').style.backgroundPosition="0px -106px";
	
	document.getElementById("pf_make").innerHTML = "Make:";
	document.getElementById('pf_model').innerHTML = "Model: <span class=\"red\">Loading...</span>";
	document.getElementById('pf_model_select').innerHTML = "<select disabled><option>Loading...</option></select>";
	
	var url="/partsfinder/pf_vehicle_process.php";
		url=url+"?action=model";
		url=url+"&make="+make;
		url=url+"&sid="+Math.random();
		xmlHttp.onreadystatechange=function(){
											if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete") {
					
					document.getElementById('pf_model').innerHTML = "Model:<span class=\"green\"> Please select</span>";
					stateChange('pf_model_select');
											
											}
		};  
		xmlHttp.open("GET",url,true);
		xmlHttp.send(null);
}


//this is the first part of checking the engine sizes to see if a sub model has to be chosen
function showSubModel(make, model) {			//working
reset_fields(2);
check_xmlHttp=GetXmlHttpObject();
	if(xmlHttp == null)
		{
			alert("Your browser does not support HTTP Request which is needed to run Parts Finder.");
			return;
		}
		
	//wait(true, 'submodel_choice');
	//document.getElementById('submodel_choice').style.visibility = 'visible';

	//document.getElementById("submodel_choice").innerHTML = "<img src=wait_1_3.gif />"+
	 //                                                     "<select disabled><option>Loading...</option></select>";
	
	//document.getElementById('pf_sub_model_holder').style.backgroundPosition="0px -53px";
	//document.getElementById('pf_model_holder').style.backgroundPosition="0px -106px";
	
	document.getElementById('pf_model').innerHTML = "Model:";
	document.getElementById('pf_sub_model').innerHTML = "Sub Model: <span class=\"red\">Loading...</span>";
	document.getElementById("pf_sub_model_select").innerHTML = "<select disabled><option>Loading...</option></select>";
	
	continue_status = "";
	var url="/partsfinder/pf_engine_check.php";
		url=url+"?make="+make;
		url=url+"&model="+model;
		url=url+"&sid="+Math.random();
	
		check_xmlHttp.onreadystatechange=function(){
			if (check_xmlHttp.readyState==4 || check_xmlHttp.readyState=="complete") {
			
			//document.getElementById("parts").innerHTML=xmlHttp.responseText;
			continue_status = check_xmlHttp.responseText;
			continue_subModel(make,model,continue_status);
			//alert("First part complete");
			
			}
		}
		check_xmlHttp.open("GET",url,true);
		check_xmlHttp.send(null);
}

//this function is to carry on with showing the submodel after the engine sizes have been checked
function continue_subModel(make,model,continue_status) {
xmlHttp=GetXmlHttpObject();	
	
	var url="/partsfinder/pf_vehicle_process.php";
		url=url+"?action=submodel";
		url=url+"&make="+make;
		url=url+"&model="+model;
		url=url+"&continue_status="+continue_status;
		url=url+"&sid="+Math.random();
		
		xmlHttp.onreadystatechange=function(){
					
			if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete") {
				document.getElementById('pf_sub_model').innerHTML = "Sub Model:<span class=\"green\"> Please select</span>";
				stateChange('pf_sub_model_select');					
				//alert("Second part complete");
			}
					
		}

		xmlHttp.open("GET",url,true);
		xmlHttp.send(null);

}



function showEngine(make, model, submodel) {			//working
reset_fields(3);
xmlHttp=GetXmlHttpObject();
	if(xmlHttp == null)
		{
			alert("Your browser does not support HTTP Request which is needed to run Parts Finder.");
			return;
		}
	
	//wait(true, 'engine_choice');
	//document.getElementById('engine_choice').style.visibility = 'visible';

	//document.getElementById("engine_choice").innerHTML = "<img src=wait_1_3.gif />"+
	//                                                     "<select disabled><option>Loading...</option></select>";
	
	//document.getElementById('pf_engine_holder').style.backgroundPosition="0px -53px";
	//document.getElementById('pf_sub_model_holder').style.backgroundPosition="0px -106px";
	
	document.getElementById('pf_sub_model').innerHTML = "Sub Model:";
	document.getElementById('pf_engine').innerHTML = "Engine: <span class=\"red\">Loading...</span>";
	document.getElementById("pf_engine_select").innerHTML = "<select disabled><option>Loading...</option></select>";
	
	
	if(submodel=="N/A"||!submodel) {
		submodel = "";
	}
	
	var url="/partsfinder/pf_vehicle_process.php";
		url=url+"?action=engine";
		url=url+"&make="+make;
		url=url+"&model="+model;
		url=url+"&submodel="+submodel;
		url=url+"&sid="+Math.random();
		
		
		xmlHttp.onreadystatechange=function(){
											if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete") {
					document.getElementById('pf_engine').innerHTML = "Engine:<span class=\"green\"> Please select</span>";
					stateChange('pf_engine_select');
											
											}
		};  
		xmlHttp.open("GET",url,true);
		xmlHttp.send(null);
		
}



function showYears(make, model, submodel, engine) {			//working
reset_fields(4);
xmlHttp=GetXmlHttpObject();
	if(xmlHttp == null)
		{
			alert("Your browser does not support HTTP Request which is needed to run Parts Finder.");
			return;
		}
	
	//wait(true, 'year_choice');

	//document.getElementById("year_choice").innerHTML = "<img src=wait_1_3.gif />"+
	//                                                   "<select disabled><option>Loading...</option></select>";
	
	//document.getElementById('pf_year_holder').style.backgroundPosition="0px -53px";
	//document.getElementById('pf_engine_holder').style.backgroundPosition="0px -106px";	
	
	document.getElementById('pf_engine').innerHTML = "Engine:";
	document.getElementById("pf_year").innerHTML = "Year: <span class=\"red\">Loading...</span>";
	document.getElementById("pf_year_select").innerHTML = "<select disabled><option>Loading...</option></select>";
	
	
	var url="partsfinder/pf_vehicle_process.php";
		url=url+"?action=year";
		url=url+"&make="+make;
		url=url+"&model="+model;
		url=url+"&submodel="+submodel;
		url=url+"&engine="+engine;
		url=url+"&sid="+Math.random();
		xmlHttp.onreadystatechange=function(){
											if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete") {
					document.getElementById("pf_year").innerHTML = "Year:<span class=\"green\"> Please select</span>";
					stateChange('pf_year_select');
											
											}
		};
		xmlHttp.open("GET",url,true);
		xmlHttp.send(null);
		
}



function showFuel() {			//working
reset_fields(5);
xmlHttp=GetXmlHttpObject();
	if(xmlHttp == null)
		{
			alert("Your browser does not support HTTP Request which is needed to run Parts Finder.");
			return;
		}
	
	//wait(true, 'year_choice');

	//document.getElementById("fuel_choice").innerHTML = "<img src=wait_1_3.gif />"+
	//                                                   "<select disabled><option>Loading...</option></select>";
	
	//document.getElementById('pf_fuel_holder').style.backgroundPosition="0px -53px";
	//document.getElementById('pf_year_holder').style.backgroundPosition="0px -106px";		
	
	document.getElementById("pf_year").innerHTML = "Year:";
	document.getElementById("pf_fuel").innerHTML = "Fuel: <span class=\"red\">Loading...</span>";
	document.getElementById("pf_fuel_select").innerHTML = "<select disabled><option>Loading...</option></select>";
	
	
	var url="partsfinder/pf_vehicle_process.php";
		url=url+"?action=fuel";
		url=url+"&sid="+Math.random();
		xmlHttp.onreadystatechange=function(){
											if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete") {
					
					//wait(false, 'fuel_choice');
					document.getElementById("pf_fuel").innerHTML = "Fuel:<span class=\"green\"> Please select</span>";
					document.getElementById('pf_fuel_select').innerHTML = xmlHttp.responseText;
					
											}
		};
		xmlHttp.open("GET",url,true);
		xmlHttp.send(null);
		
}


function lock_details() {
xmlHttp=GetXmlHttpObject();

document.getElementById("pf_fuel").innerHTML = "Fuel:";

var make = document.getElementById("make_select").value;
var model = document.getElementById("model_select").value;
var submodel = document.getElementById("submodel_select").value;
var engine = document.getElementById("engine_select").value;
var year = document.getElementById("year_select").value;
var fuel = document.getElementById("fuel_select").value;


var url="partsfinder/pf_lock_details.php";
	url=url+"?make="+make;
	url=url+"&model="+model;
	url=url+"&submodel="+submodel;
	url=url+"&engine="+engine;
	url=url+"&year="+year;
	url=url+"&fuel="+fuel;


	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}


/*
function beginLookup(selection_title, selection_options, title_text){		//working
document.getElementById(selection_title).innerHTML = title_text;
document.getElementById(selection_options).innerHTML = xmlHttp.responseText;


document.getElementById("model_title").innerHTML = "Model:";
document.getElementById("submodel_title").innerHTML = "Sub Model:";
document.getElementById("engine_title").innerHTML = "Engine Size:";
document.getElementById("year_title").innerHTML = "Year:";
document.getElementById("fuel_title").innerHTML = "Fuel Type:";
	
document.getElementById("model_choice").innerHTML = "<select name=holder style=width:50px; disabled></select>";
document.getElementById("submodel_choice").innerHTML = "<select name=holder style=width:50px; disabled></select>";
document.getElementById("engine_choice").innerHTML = "<select name=holder style=width:50px; disabled></select>";
document.getElementById("year_choice").innerHTML = "<select name=holder style=width:50px; disabled></select>";
document.getElementById("fuel_choice").innerHTML = "<select name=holder style=width:50px; disabled></select>";

document.getElementById("groups").innerHTML = "<select size=10 style=width:190px; disabled><option>Select Vehicle First</option>"+
											  "</select><select size=10 style=width:190px; disabled></select>";

document.getElementById("subgroups").innerHTML = "<select size=10 style=width:240px; disabled><option>Select Vehicle First"+
												  "</option></select>";
												  
wait(false, selection_options);
}
*/


function stateChange(selection_options) {		//working
//wait(false, selection_options);
//var title_div = document.getElementById(selection_title);
var options_div = document.getElementById(selection_options);
	//title_div.innerHTML = title_text;
	options_div.innerHTML = xmlHttp.responseText;

	if(options_div.innerHTML == "No Records" && selection_options != "pf_sub_model_select") {
		
		//add code here to handle connection problems. something like retry the show function?
		alert("Add code to deal with connection problems to MAM");
	
	} else if(options_div.innerHTML == "No Records") {
		var make = document.getElementById("make_select").value;
		var model = document.getElementById("model_select").value;
		
		options_div.innerHTML = '<select id=submodel_select><option>N/A&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</option></select>';
		
		showEngine(make,model);
	}
	
	//if(title_text == "Sub Model:" && options_div.innerHTML != "N/A") {
		//document.getElementById("submodel_info").innerHTML = "Select a submodel only if it applies to your vehicle";
		//document.getElementById("submodel_info").style.display = "inline";
	//}

}



function stateSubModel(selection_options, title_text) {	//working
var options_div = document.getElementById(selection_options);
//var submodel_title = document.getElementById(selection_title);

//wait(false, selection_options);
//submodel_title.style.visibility = 'visible';

//submodel_title.innerHTML = title_text;
options_div.innerHTML = xmlHttp.responseText;

if(options_div.innerHTML == "No Records"){
	options_div.innerHTML = "N/A";
	//submodel_title.innerHTML = title_text;
	//wait(true, 'engine_choice');
	document.getElementById('pf_engine_select').innerHTML = "<img src=wait_1_3.gif />"+
	                                                     "<select disabled><option>Loading...</option></select>";
	//document.getElementById('engine_choice').style.visibility = 'visible';
}

//checkEngine(make_selected,model_selected,'');
}



function stateEngine(selection_options, title_text) {		//working
//wait(false, selection_options);
//document.getElementById(selection_title).innerHTML = title_text;
document.getElementById(selection_options).innerHTML = xmlHttp.responseText;
//document.getElementById(selection_title).style.visibility = 'visible';
//document.getElementById(selection_options).style.visibility = 'visible';
}



function stateCheckEngine(selection_options, title_text) {		//working
//wait(false, selection_options);
//document.getElementById('submodel_choice').style.visibility = 'hidden';
var submodel_options = document.getElementById("pf_sub_model_select");
//var submodel_title = document.getElementById("submodel_title");
var engine_options = document.getElementById(selection_options);
//var engine_title = document.getElementById(selection_title);

//engine_title.innerHTML = title_text;
engine_options.innerHTML = xmlHttp.responseText;

var engine_results = document.getElementById("control_engine_select");

//add conditioning here to handle what fields to show
if(submodel_options.innerHTML == "N/A") {
	//submodel_title.style.visibility = 'visible';
	//submodel_options.style.visibility = 'visible';
	//engine_title.style.visibility = 'visible';
	//engine_options.style.visibility = 'visible';

	} else if(engine_results) {
		//submodel_title.style.visibility = 'visible';
		//submodel_options.style.visibility = 'visible';
		//document.getElementById('submodel_info').innerHTML = "Please select a submodel only if it applies to your vehicle";
		//document.getElementById('submodel_info').style.display = 'inline';
		//engine_title.style.visibility = 'visible';
		//engine_options.style.visibility = 'visible';
		
		} else {
			
			//submodel_title.style.visibility = 'visible';
			//submodel_options.style.visibility = 'visible';
	}

}



function reset_fields(start_point) {		//working
var option_tags = new Array("pf_make_select","pf_model_select","pf_sub_model_select","pf_engine_select",
							"pf_year_select","pf_fuel_select");

var option_title_id = new Array("pf_make","pf_model","pf_sub_model","pf_engine","pf_year","pf_fuel");
var option_titles = new Array("Make:","Model:","Sub Model:","Engine:","Year:","Petrol:");

for (i=start_point; i<6; i++) {
		document.getElementById(option_tags[i]).innerHTML="<select name=holder disabled><option>Select...</option></select>";
		document.getElementById(option_title_id[i]).innerHTML=option_titles[i];
	}

}


function check_details(fuel) {
	if(!fuel) {
		alert("Please select your vehicle details before continuing\n" + fuel);
	} else {
		alert(fuel);
	}
}


function wait(status, position) {			//working
var element_id = document.getElementById(position);
if (status) {
	element_id.style.background = "url(wait_1_2.gif)";
	element_id.style.backgroundRepeat = "no-repeat";
} else {
	element_id.style.background = 'none';
}
}
