/*
 * searchCriteria.js
 * 
 * Dependent upon Rob Gonda's AJAXCFC (http://www.robgonda.com/blog/projects/ajaxcfc/)
 * 
 * Written by Neil Middleton
 * 
 */

function addOpt(thevalue, thetext, obj)	{
	// refactoring to add an item to a select.
	myOpt = new Option;
	myOpt.value = thevalue
	myOpt.text = thetext
	obj.options[obj.options.length] = myOpt;
}

function updateCount()	{
	if ($('mileage'))	{ // mileage only exists in advanced search, as does the count
		$('countBox').style.visibility = 'hidden';
		// check we are trying to return a count of all stock
		if (($('manufacturers').selectedIndex != 0) || ($('models').selectedIndex != 0) || ($('bodies').selectedIndex != 0) || ($('fuel').selectedIndex != 0) || 
			($('transmission').selectedIndex != 0) || ($('mileage').selectedIndex != 0) || ($('minprice').selectedIndex != 0) || ($('maxprice').selectedIndex != 0))	{	
			DWREngine._execute(_ajaxConfig._cfscriptLocation, null, 'getCount', $('manufacturers').value, $('models').value, $('bodies').value, $('fuel').value, $('transmission').value, $('mileage').value, $('minprice').value, $('maxprice').value, updateCount_response);	
		}
	}
}

function updateCount_response(response)	{
	// write the response to the page
	theOutput = 'We have<h1>' + response + '</h1>matching vehicle'
	if (response*1 != 1)  {theOutput = theOutput + 's';}
	$('countBox').innerHTML = theOutput;
	$('countBox').style.visibility = 'visible';
}

function getManufacturers_response(response)	{
	// handle the response from the manufaturers service.
	if ($('manufacturers_progress')) { $('manufacturers_progress').style.visibility = 'hidden'; }
	$('manufacturers').options.length = 0;
	for (i=0;i<response.getRowCount();i++)	{
		addOpt(response.manufacturer_code[i],response.manufacturer_desc[i],$('manufacturers'));
		if ((myMan_code != '') && (myMan_code != '|~any~|')) 	{
			if(myMan_code==response.manufacturer_code[i]){
				$('manufacturers').options[i].selected = true;
			}
		}
	}
	// if we have a repop value - use it, otherwise default to "Any"
	if ((myMan_code != '') && (myMan_code != '|~any~|')) 	{
		$('manufacturers').value = myMan_code;
	} else	{
		$('manufacturers').selectedIndex = 0;
	}
	if ($('models')) getModels();
}

function getModels_response(response)	{
	// handle the response from the models service.
	$('models').options.length = 0;
	for (i=0;i<response.getRowCount();i++)	{
		addOpt(response.range_code[i],response.range_desc[i],$('models'));
		if ((myModelID != '') && (myModelID != '|~any~|')) 	{
			if(myModelID==response.range_code[i]){
				$('models').options[i].selected = true;
			}
		}
	}
	$('models').disabled = false;
	// if we have a repop value - use it, otherwise default to "Any"
	if ((myModelID != '') && (myModelID != '|~any~|')) 	{
		$('models').value = myModelID;
	} else	{
		$('models').selectedIndex = 0;
	}
	if ($('models_progress')) { $('models_progress').style.visibility = 'hidden'; }
	if ($('bodies')) getBodies();
}

function getBodies_response(response)	{
	// handle the response from the models service.	
	$('bodies').options.length = 0;
	for (i=0;i<response.getRowCount();i++)	{
		addOpt(response.body_type_code[i],response.body_type_desc[i],$('bodies'));
		if ((myBodyID != '') && (myBodyID != '|~any~|')) 	{
			if(myBodyID==response.body_type_code[i]){
				$('bodies').options[i].selected = true;
			}
		}
	}
	$('bodies').disabled = false;
	// if we have a repop value - use it, otherwise default to "Any"	
	if (myBodyID != '') 	{
		$('bodies').value = myBodyID;
	} else	{
		$('bodies').selectedIndex = 0;
	}
	if ($('bodies_progress')) { $('bodies_progress').style.visibility = 'hidden'; }
}

function getModels()	{
	if ($('models_progress')) { $('models_progress').style.visibility = 'visible'; }
	$('models').disabled = true;
	$('models').selectedIndex = 0;
	DWREngine._execute(_ajaxConfig._cfscriptLocation, null, 'getModels', $('manufacturers').value, getModels_response);
}

function clearCache()	{
	// clear the re-pop values that we may have
	myMan_code = '';
	myModelID = '';
	myBodyID = '';
}

function resetOtherFields()	{
	if ($('models')) $('models').selectedIndex = 0;
	if ($('bodies')) $('bodies').selectedIndex = 0;
}

function getBodies()	{
	if ($('bodies_progress')) { $('bodies_progress').style.visibility = 'visible'; }
	$('bodies').disabled = true;
	$('bodies').selectedIndex = 0;
	DWREngine._execute(_ajaxConfig._cfscriptLocation, null, 'getBodies', $('manufacturers').value, getBodies_response);
}

function go()	{
	if ($('manufacturers_progress')) { $('manufacturers_progress').style.visibility = 'visible'; }
	DWREngine._execute(_ajaxConfig._cfscriptLocation, null, 'getManufacturers', getManufacturers_response);
}

function f_popAvVeh()	{ /* placeholder to support the legacy code */ }

go();