
	// used by 'similar cars'
	var jsel_formnames = new Array(3);
	var jsel_buttonname = null;

	function jsel_onloadEvent()
	{
		// if when loaded there's a make selected, fix up dependent menus for that selection
		if ((document.proDep[jsel_formnames[1]].disabled) && (document.proDep[jsel_formnames[0]].selectedIndex != 0))
		{
			jsel_tcProcessBackSelect(0);
		}
	}
	// active code: attach to onload event
	jsel_addLoadEvent(jsel_onloadEvent);

	// creates variables (inc arrays) used to identify form fields
	function jsel_tcSetupForm( field_one, field_two, field_three, button_four)
	{	
		jsel_formnames[0] = field_one;
		jsel_formnames[1] = field_two;
		jsel_formnames[2] = field_three;
		jsel_buttonname = button_four;
		jsel_callbackInit(3);
	}

	function jsel_tcSetupMenuGen(arrayName, matchStr, level, skip, ignoreFirst)
	{
		// fml = first menu length - if 2 then only single make present in array, so drop down is hidden
		if (!ignoreFirst)
			fml = jsel_makeMenu(arrayName,document.proDep[jsel_formnames[level]],level+skip);
		if (fml == 2)
		{
			var scomp = document.proDep[jsel_formnames[0]];
			scomp.selectedIndex = 1;
			scomp.style.display = 'none';
			document.getElementById('sel_makelbl').style.display = 'none';
			jsel_tcProcessSelect( 1, scomp);
		}
		res = jsel_tcSetupMenusMatch( arrayName, matchStr, level);
		return(res);
	}
	
	function jsel_tcSetupMenus(arrayMake,matchMake)
	{
		// fml = first menu length - if 2 then only single make present in array, so drop down is hidden
		fml = jsel_makeMenu(arrayMake,document.proDep[jsel_formnames[0]],0+1);
		if (fml == 2)
		{
			var scomp = document.proDep[jsel_formnames[0]];
			scomp.selectedIndex = 1;
			scomp.style.display = 'none';
			document.getElementById('sel_makelbl').style.display = 'none';
			jsel_tcProcessSelect( 1, scomp);
		}
		jsel_tcSetupMenusMatch( arrayMake, matchMake, 0);
	}
	
	// returns option.index to be selected in make list
	function jsel_tcSetupMenusMatch(searchArray, matchstr, level)
	{
		var matchPos = -1;
		var matchlist = "";			
		if (matchstr == null)
			return;
		if (searchArray == null)
		{
			searchArray = document.proDep[jsel_formnames[level]].options;
			for (var i=0 ; i<searchArray.length ; ++i)
			{
				matchlist += searchArray[i].value + ", "; // debugging
				if (searchArray[i].value == matchstr)
				{
					matchPos = i;
					break;
				}
			}
		} else {
			for (var i=0 ; i<searchArray.length ; ++i)
			{
				matchlist += searchArray[i] + ", "; // debugging
				if (searchArray[i] == matchstr)
				{
					matchPos = i;
					break;
				}
			}
		}
		// alert(matchPos + ": " + matchlist + ", level:"+level);

		// action find/result
		var sdiff = 0;
		if (matchPos != -1)
		{
			
			var scomp = document.proDep[jsel_formnames[level]];
			if (level == 1)
			{
				sdiff = matchPos; // uncertain why this is an exception!
			} else {
				sdiff = matchPos - level;
			}
			scomp.selectedIndex = sdiff;
			jsel_tcProcessSelectDirect(level+1, matchPos);
		}
		return(matchPos-level);
	}

	// processes the click, enables and populates next menu 
	function jsel_tcProcessSelectDirect( num, ref)
	{
		// alert("a "+num);
		if (num == 1)
		{
			if (ref == 0)
			{
				jsel_blankMenu(document.proDep[jsel_formnames[1]]);
				jsel_blankMenu(document.proDep[jsel_formnames[2]]);
				bhv_dis(jsel_buttonname);
			} else {
				sml = jsel_makeMenu(arrayModel[ref],document.proDep[jsel_formnames[1]],1,null);
				if (sml == 2)
				{
					var scomp = document.proDep[jsel_formnames[1]];
					scomp.selectedIndex = 1;
					num = 2;
					ref = 1;
				} else {
					jsel_blankMenu(document.proDep[jsel_formnames[2]]);
					bhv_dis(jsel_buttonname);
				}
			}
		}
		if (num == 2)
		{
			if (ref == 0)
			{
				jsel_blankMenu(document.proDep[jsel_formnames[2]]);
				bhv_dis(jsel_buttonname);
			} else {
				var mak = document.proDep[jsel_formnames[0]].selectedIndex;
				var mod = document.proDep[jsel_formnames[1]].selectedIndex;
				bhv_en(jsel_buttonname);
				bhv_set('MakeModel', arrayMake[mak]+","+arrayModel[mak][mod]);
				// alert("mak["+mak+"] mod["+mod+"]:: {"+arrayDerv[mak][mod+1]+"}");
				tml = jsel_makeMenu(arrayDerv[mak][mod+1],document.proDep[jsel_formnames[2]],2,null);
				if (tml == 2)
				{
					var tcomp = document.proDep[jsel_formnames[2]];
					tcomp.selectedIndex = 1;
					num = 3;
					ref = 1;
				}
			}
		}
		if (num == 3)
		{
			if (ref == 0)
			{
				bhv_dis(jsel_buttonname);
			} else {
				var mak = document.proDep[jsel_formnames[0]].selectedIndex;
				var mod = document.proDep[jsel_formnames[1]].selectedIndex;

				bhv_en(jsel_buttonname);
				bhv_set('MakeModel', arrayMake[mak]+","+arrayModel[mak][mod]);
			}
		}
		jsel_callbackProcess(num);
	}
	

