<!--
/**
 * Lookup form functionality
 * Version: 12/03/2008 - SC
 */

var TIRE  = 1;
var WHEEL = 2;
var PART  = 3;
var typeIDs = [1, 2, 3];
var type_names = ['Tires', 'Wheels', 'Parts'];
var cur_type = 1;
var selImg = new Image(25, 21);
selImg.src = '/images/compare-sel.gif';

/**
* Change the type they are viewing
* @param	integer	view_type
*/
function viewType(view_type)
{
	cur_type = view_type;
	if (view_type == 1 || view_type == 2)
	{
		doVehicleChange(0, 'init');
	}
}

function changeTypeOnload(view_type)
{
	go('/index.php?type=' + view_type + '&onload_search=1');
}

/**
* Enable/disable the min qty box
* @param	boolean	set
*/
function setMinQty(set)
{
	$('minqty').disabled = !set;
}

/**
* Open the plus sizing window
*/
function doPlus()
{
	if (isLoading) { return; }
	var raw = $F('raw' + cur_type);
	if (raw.length != 7)
	{
		alert('Plus sizes can only be retrieved for 7-digit raw sizes (IE: 2357515)');
		Field.activate('raw' + cur_type);
		return;
	}

	Form.disable('lookForm' + cur_type);
	$('plus_orig').innerHTML = raw;
	var url = '/lookup/lookupUpdate.php';
	var params = 'act=plus_sizes&raw_size=' + raw;
	var ajax = new Ajax.Request(
		url,
		{
			method:'post',
			parameters:params,
			onLoading:showLoadPlus,
			onComplete:checkPlusSizeResult,
			onFailure:checkPlusSizeResult
		}
	);
	return false;
}

/**
* Plus size response handler
*/
function checkPlusSizeResult(req)
{
	var response = req.responseText;
	var res = boom(response);
	if (res.length)
	{
		if (res[0] == 0)
		{
			alert(res[1]);
			Form.enable('lookForm' + cur_type);
		}
		else if (res.length == 1)
		{
			alert('No plus sizes were found for the selected raw size.');
			Form.enable('lookForm' + cur_type);
		}
		else
		{
			var tbl = "<span class=\"note\"><b>Warning:</b> The following sizes are within .25&quot; of the original size. However, they may or may not be the correct application for the vehicle. Always refer to the vehicle owner's manual and vehicle tire information placard located on the glove box door, door edge, or doorpost for the correct tire size and inflation pressure. Preferably, replacement tires should be selected with the same size designation as shown on the vehicle tire information placard.</span><p />";
			tbl += '<table border="0">\n';
			var per_row = 6;

			if (res.length == 1)
			{
				tbl += '<tr><td align="center">- No plus sizes found for the selected raw size -</td></tr>';
				$('overall_diameter').innerHTML = 'N/A';
			}
			else
			{
				var od = res[1];
				$('overall_diameter').innerHTML = od + '&quot;';
			}

			for (var i=2; i<res.length; i++)
			{
				exp = res[i].split(',');
				rim = exp[0];

				tbl += '<tr><td align="center" colspan="' + per_row + '" style="border-bottom:solid 1px #DDDDDD"><b>' + rim + '&quot;</b></td></tr>\n';
				for (var j=1; j<exp.length; j++)
				{
					if (!((j - 1) % per_row))
					{
						if (j > (per_row + 1)) { tbl += '</tr>\n'; }
						tbl += '<tr>';
					}
					tbl += '<td><a href="javascript:void(0)" onclick="setRawSize(\'' + exp[j] + '\', 0)" style="text-decoration:none">' + exp[j] + '</a></td>\n';
				}

				for (; j<=per_row; j++)
				{
					tbl += '<td>&nbsp;</td>';
				}
				tbl += '</tr>\n';
			}

			tbl += '</table>';

			$('plus_sizes').innerHTML = tbl;
			centerDiv('plus_div');
			showVis('plus_div');
			hideLoadIcon();
			setSelectVis(false);
			return;
		}
	}
	else
	{
		alert('Unable to retrieve the raw sizes.\nPlease try again.');
	}

	hideLoadIcon();
}

/**
* Set the vehicle_raw variable
* @param string raw
*/
function setVehicleRaw(raw)
{
	if (typeof(vehicle_raw) != 'undefined')
	{
		// set the vehicle_raw variable
		vehicle_raw = raw;
	}
}

/**
* Select the plus size and close the plus sizing window
*/
function setRawSize(raw, packageID)
{
	setVehicleRaw(raw);
	$('raw' + cur_type).value = raw;
	$('packageID' + cur_type).value = (packageID ? packageID : 0);
}

function setRawSizeAdd(raw)
{
	setVehicleRaw(raw);
	$('rawAdd').value = raw;
}

/**
 * Perform a raw size lookup
 * @param string  raw_size
 * @param integer packageID
 */
function doRawSearch(raw_size, packageID)
{
	setRawSize(raw_size, packageID);
	handleLookupSubmit();
}

/**
 * Select the speed rating
 * @param string sr
 */
function setSpeedRating(sr)
{
	idx = select_search(sr, $('speed_rating'));
	if (idx != -1)
	{
		$('speed_rating').selectedIndex = idx;
	}
}

/**
 * Perform a wheel lookup
 * @param string rimsize
 * @param string holes
 * @param string diameter
 * @param string offst (no 'e' to avoid ID collisions)
 */
function doWheelSearch(rimsize, holes, diameter, offst)
{
	$('rim_size').selectedIndex = select_search(rimsize, $('rim_size'));
	$('bolt_pattern_lugs').selectedIndex = select_search(holes, $('bolt_pattern_lugs'));
	//$('offset').selectedIndex = select_search(offst, $('offset'));
	$('offset').selectedIndex = 0; // don't select the offset for now

	// search for the diameter
	obj = $('bolt_pattern_diameters');

	idx = 0;
	for (var i=0; i<obj.options.length; i++)
	{
		vals = obj.options[i].value.split('|');
		if (in_array(diameter, vals))
		{
			idx = i;
			break;
		}
	}
	obj.selectedIndex = idx;

	handleLookupSubmit();
}

/**
* Close the plus sizes div and show select boxes
*/
function hidePlusSizes()
{
	hideVis('plus_div');
	setSelectVis(true);
	Form.enable('lookForm' + cur_type);
	Form.focusFirstElement('lookForm' + cur_type);
}

/**
* Show/hide the groups table
* @param	integer	mfgID
*/
function showGroups(mfgID)
{

	if (mfgID == 0)
	{
		hideDisp('groupRow' + cur_type);
	}
	else
	{
		showDisp('groupRow' + cur_type);
	}
}

/**
* Show/hide the price options
* @param	boolean	sh
*/
function showPriceOptions(sh)
{
	if (sh)
	{
		showDisp('priceOptions' + cur_type, 'hidePrice' + cur_type);
		hideDisp('showPrice' + cur_type);
		if ($('cost_min' + cur_type).disabled == false)
		{
			Field.activate('cost_min' + cur_type);
		}
	}
	else
	{
		hideDisp('priceOptions' + cur_type, 'hidePrice' + cur_type)
		showDisp('showPrice' + cur_type);
		Field.clear(
			'cost_min' + cur_type,
			'cost_max' + cur_type,
			'sell_min' + cur_type,
			'sell_max' + cur_type
		);
	};
}

/**
* Update the customer's lookup settings/wheel criteria settings
*/
var settings_act = '';
function updateSettings(act)
{
	alert(act);
	return;
	if (isLoading) { return; }
	settings_act = act;
	var url = '/lookup/lookupUpdate.php';
	var params = 'act=' + act;
	var ajax = new Ajax.Request(
		url,
		{
			method:'post',
			parameters:params,
			onLoading:showLoadSettings,
			onComplete:checkSettingsResult,
			onFailure:checkSettingsResult
		}
	);

	if ($('lookForm' + cur_type))
	{
		Form.disable('lookForm' + cur_type);
	}

	return false;
}


/**
* Update the customer's lookup settings/wheel criteria settings
*/
var settings_act = '';
function updateSettingsAdd(act)
{
	if (isLoading) { return; }
	settings_act = act;
	var url = '/lookup/lookupUpdate.php';
	var params = 'act=' + act;
	var ajax = new Ajax.Request(
		url,
		{
			method:'post',
			parameters:params,
			onLoading:showLoadSettings,
			onComplete:checkSettingsResult,
			onFailure:checkSettingsResult
		}
	);

	if ($('lookFormAdd'))
	{
		Form.disable('lookFormAdd');
	}

	return false;
}
/**
* Settings update response handler
*/
function checkSettingsResult(req)
{
	var response = req.responseText;
	var res = boom(response);
	if (res.length)
	{
		if (res[0] == 0)
		{
			alert(res[1]);
		}
		else
		{
			if (settings_act == 'update_settings')
			{
				// settings updated - go to the lookup page
				go('../index.php');
			}
			else if (settings_act == 'wheel_criteria')
			{
				go('../index.php?type=2');
			}
		}
	}
	else
	{
		alert('Unable to update your lookup settings.');
	}

	hideLoadIcon();
}

/**
 * Return the selected raw size
 * @param boolean add_sep if true, adds a separator between the parts
 * @param boolean add_sr  append the speed rating?
 */
function getSelectedRawSize(add_sep, add_sr)
{
	if ($('lookForm' + cur_type).tread_width)
	{
		sep = (add_sep ? '|' : '');

		raw_size = $F('tread_width') + sep + $F('profile') + sep + $F('diameter');

		if (add_sr)
		{
			raw_size = raw_size + sep + $F('speed_rating');
		}

		return raw_size;
	}

	return '';
}

/**
 * Load a mfg
 * @param integer mfgID
 */
function loadMfg(mfgID)
{
	go('/groups.php?mfgID=' + mfgID + '&save_raw=' + getSelectedRawSize(true, true));
}

/**
 * Load the low cost radials page
 */
function loadLowCost()
{
	// if they have a size/vehicle selected, load the lookup results
	// otherwise load the group page
	check_size = getSelectedRawSize();
	save_size = getSelectedRawSize(true, true);

	if (check_size.length)
	{
		// they have selected a size
		// submit the lookup with low_cost=YES
		$('low_cost').value = YES;
		$('save_raw').value = save_size;
		submit_clicked = true;
		handleLookupSubmit();
	}
	else
	{
		// they don't have a size selected
		// show the low cost radial groups
		go('/groups.php?low_cost=' + YES + '&save_raw=' + save_size);
	}
}

/**
 * Handle the lookup form submit
 */
var submit_clicked = false;
function handleLookupSubmit()
{
	if (isLoading) { return; }

	if (submit_clicked && $('lookForm' + cur_type).tread_width)
	{
		// fill in the raw size
		$('lookForm' + cur_type).raw.value = getSelectedRawSize();
	}

	if (cur_type == WHEEL)
	{
		// check for either a raw size or one of the following: rim size, lug/bolt, diameter, offset
		if (
			!Field.present('raw' + WHEEL)
			&&
			!Field.present('rim_size')
			&&
			!Field.present('bolt_pattern_lugs')
			&&
			!Field.present('bolt_pattern_diameters')
			&&
			!Field.present('offset')
		)
		{
			alert('Please select some search criteria and try again.');
			return false;
		}
	}
	else if ($('lookForm' + cur_type).raw && $('lookForm' + cur_type).raw.value == '')
	{
		alert('No size has been selected. Please try again.');
		return false;
	}
	Form.disable('lookForm' + cur_type);

	var url = '/lookup/lookupUpdate.php';
	var params = Form.serialize('lookForm' + cur_type);
	var ajax = new Ajax.Request(
		url,
		{
			method:'post',
			parameters:params,
			onLoading:showLoadLookup,
			onComplete:checkLookupResult,
			onFailure:checkLookupResult
		}
	);
	return false;
} // end function handleLookupSubmit

/**
* Handle the vehicle add form submit
*/
function handleAddSubmit()
{

	if ($('lookFormAdd').rawAdd.value == '')
	{
		alert('No size has been selected');
		return false;
	}
	if (isLoading) { return; }
	Form.disable('lookFormAdd');
	var url = '/lookup/lookupUpdate.php';
	var params = Form.serialize('lookFormAdd');
	var ajax = new Ajax.Request(
		url,
		{
			method:'post',
			parameters:params,
			onLoading:showLoadLookup,
			onComplete:checkAddResult,
			onFailure:checkAddResult
		}
	);

	return false;
}
/**
* Lookup response handler
*/
function checkAddResult(req)
{
	var enable_hide = true;
	var response = req.responseText;
	var res = boom(response);
	if (res.length)
	{
		if ((res[0] == -1))
		{
			alert('Unable to add vehicle.');
		}
		else if (res[0] != 0)
		{
			go('account_info.php');
			enable_hide = false;
		}
		else
		{
			alert('There was an error adding the vehicle.');
			go(document.location);
			enable_hide = false;
		}
	}
	else
	{
		alert('Unable to add vehicle.');
		go(document.location);
		enable_hide = false;
	}

	if (enable_hide)
	{
		Form.enable('lookFormAdd');
		hideLoadIcon();
	}
}

/**
* Change pages
* @param	integer	page
* @param	integer	curpage
*/
function changePage(page,curpage)
{
	if (isLoading) { return; }
	if (page != curpage)
	{
		var url = '/lookup/lookupUpdate.php';
		var params = 'act=page&page=' + page;
		var ajax = new Ajax.Request(
			url,
			{
				method:'post',
				parameters:params,
				onLoading:showLoadPage,
				onComplete:checkLookupResult,
				onFailure:checkLookupResult
			}
		);
	}
}

/**
* Change sorting
* @param	string	sort_by
* @param	integer	sort_dir
*/
function changeSort(sort_by,sort_dir)
{
	if (isLoading) { return; }
	var url = '/lookup/lookupUpdate.php';
	var params = 'act=sort&sort_by=' + sort_by + '&sort_dir=' + sort_dir;
	var ajax = new Ajax.Request(
		url,
		{
			method:'post',
			parameters:params,
			onLoading:showLoadSort,
			onComplete:checkLookupResult,
			onFailure:checkLookupResult
		}
	);
}

/**
 * Change speed rating
 */
function changeSpeedRating()
{
	if (isLoading || !$('speed_rating')) { return; }

	var url = '/lookup/lookupUpdate.php';
	var params = 'act=change_speed_rating&speed_rating=' + $F('speed_rating');
	var ajax = new Ajax.Request(
		url,
		{
			method:'post',
			parameters:params,
			onLoading:showLoadLookup,
			onComplete:checkLookupResult,
			onFailure:checkLookupResult
		}
	);
}

/**
* Lookup response handler
*/
function checkLookupResult(req)
{
	var enable_hide = true;
	var response = req.responseText;
	var res = boom(response);

	if (res.length)
	{
		if (res[0] == -1)
		{
			alert('There were no results found that match your criteria.\nPlease try again.');
		}
		else if (res[0] != 0 && typeof(res[1]) != 'undefined')
		{
			// items found - go to the results
			go('results.php?page=' + res[1]);
			enable_hide = false;
		}
		else
		{
			alert('There was an error with your item lookup:\n' + res[1]);
			//alert('error:\n' + response);
			go(document.location);
			enable_hide = false;
		}
	}
	else
	{
		alert('Unable to perform your item lookup. Please try again.');
		go(document.location);
		enable_hide = false;
	}

	if (enable_hide)
	{
		if ($('lookForm' + cur_type))
		{
			Form.enable('lookForm' + cur_type);
		}
		hideLoadIcon();
	}
}

/**
* Check the results form and make sure that they've entered at least one quantity
*/
function verify()
{
	showLoadIcon('Updating Cart');
	return true;
}

/**
* Check the schedule form and make sure they've entered a day and time for service
*/
function scheduleVerify(obj,set2,set1)
{
	if (set2)
	{
		if (obj.date2x.value == "Select Day")
		{
			alert('Select a preferred day for the installation.');
			obj.date2x.click();
			return false;
		}
		else if (obj.preferred_time2.value == "")
		{
			alert('Select a preferred time for the installation.');
			return false;
		}
	}

	if (set1)
	{
		if (obj.date1x.value == "Select Day")
		{
			alert('Select a preferred day for the service.');
			obj.date1x.click();
			return false;
		}
		else if (obj.preferred_time1.value == "")
		{
			alert('Select a preferred time for the service.');
			return false;
		}
	}
	return true;
}

/**
*
*/
function doCategory(obj)
{
	showLoadIcon('Loading...');
	document.serviceForm.web_categoryID.value = obj;
	document.serviceForm.submit();
}

/**
* Check the schedule form and make sure they've entered a day and time for service
*/
function doWebCategory(obj)
{
	showLoadIcon('Loading...');
	document.packageForm.categoryID.value = obj;
	document.packageForm.submit();
}

var vehicle_object = 'vehLookup'; // the <span> id of the vehicle lookup container

/**
 * Set the vehicle lookup container object
 * @param string obj
 */
function setVehicleObject(obj)
{
	//window.status = 'vehicle_object now = ' + obj + ' (' + (new Date()).getTime() + ')';
	vehicle_object = obj;
}

/**
 * Return the vehicle lookup container object
 */
function getVehicleObject()
{
	return vehicle_object;
}

/**
* Handle the vehicle change
* @param	integer	id
* @param	string	change
*/
var keep_raw = '';
function doVehicleChange(id, change, year, make, model, type, packageID)
{
	if (isLoading) { return; }

	add = (typeof(vehicle_add)!='undefined');
	veh_obj = getVehicleObject();

	if ($('buttons'))
	{
		Form.disable('buttons');
	}

	if ($('vehForm'))
	{
		// get the field values
		var yearID = $F('yearID');
		var makeID = $F('makeID');
		var modelID = $F('modelID');
		var typeID = $F('typeID');
		var raw_size = $F('packageID');
		if (change != 'package')
		{
			hideDisp('vehicleSelected');
		}
	}
	else
	{
		// form doesn't exist
		var yearID = year || 0;
		var makeID = make || 0;
		var modelID = model || 0;
		var typeID = type || 0;
		var raw_size = packageID || '';
	}

	if (change == 'package')
	{
		// update the raw size
		if (raw_size)
		{
			if ($('buttons'))
			{
				Form.enable('buttons');
			}

			spl = raw_size.split('|');
			packageID = spl[0];
			raw_size = spl[1];

			switch (veh_obj)
			{
				case 'vehChange':
					new Ajax.Request(
						'/lookup/_vehicleUpdate.php',
						{
							parameters:'act=set&' + Form.serialize('vehForm'),
							onLoading:showLoadVehicle,
							onComplete:function()
							{
								selectedVehicleChanged(raw_size);
							}
						}
					);
					break;

				case 'vehLookup':
				default:
					if (add)
					{
						// on checkout or account info page
						setVehicleRaw(raw_size);

						if (typeof(fill_raw) == 'undefined' || !fill_raw.length)
						{
							if (!keep_raw.length || $F('rawAdd') != keep_raw)
							{
								// they've changed the raw size value from what it was originally
								// change it to the selected vehicle's raw size
								setRawSizeAdd(raw_size);
							}
							if ($('new_vehicle'))
							{
								$('new_vehicle').checked = true;
							}
						}

						fill_raw = '';
					}
					else
					{
						// for search
						setRawSize(raw_size, packageID);
						//Field.activate($('raw' + cur_type));
						showDisp('vehicleSelected');
						handleLookupSubmit();
					}

					break;
			}
		}
	}
	else
	{
		var params = 'act=get_vehicles&yearID=' + yearID + '&makeID=' + makeID + '&modelID=' + modelID + '&typeID=' + typeID + '&change=' + change + '&veh_obj=' + veh_obj;
		var ajax = new Ajax.Updater(
			veh_obj,
			'/lookup/_vehicleUpdate.php',
			{
				method:'post',
				parameters:params,
				onLoading:showLoadVehicle,
				onComplete:checkVehiclesResult,
				onFailure:checkVehiclesResult
			}
		);
	}
	return false;
}

/**
 * The selected vehicle was changed - act accordingly
 * @param string raw_size
 */
function selectedVehicleChanged(raw_size)
{
	if (has_post)
	{
		// go to the main page
		go('/index.php?vehicle_changed=' + YES + '&fill_raw=' + raw_size);
	}
	else if (typeof(on_vehicle_change) == 'object')
	{
		// run the function
		on_vehicle_change();
	}
	else
	{
		// reload the page
		document.location = document.location;
	}
}

/**
* Handle the vehicle change
* @param	integer	id
* @param	string	change
*/
function doVehicleChangeAdd(id,change,year,make,model,type,packageID)
{
	if (isLoading) { return; }

	if ($('vehForm'))
	{
		// get the field values
		var yearID   = $F('yearID');
		var makeID   = $F('makeID');
		var modelID  = $F('modelID');
		var typeID   = $F('typeID');
		var raw_size = $F('packageID');
		if (change != 'package')
		{
			hideDisp('vehicleSelected');
		}
	}
	else
	{
		// form doesn't exist
		var yearID = year || 0;
		var makeID = make || 0;
		var modelID = model || 0;
		var typeID = type || 0;
		var raw_size = packageID || 0;
		if (raw_size)
		{
			setRawSizeAdd(raw_size);
		}
	}

	if (change == 'package')
	{
		// update the raw size
		if (raw_size != '0')
		{
			setRawSizeAdd(raw_size);
			Field.activate($('rawAdd'));
			showDisp('vehicleSelected');
		}
	}
	else
	{
		var url = '/lookup/_vehicleUpdateAdd.php';
		var params = 'act=get_vehicles&yearID=' + yearID + '&makeID=' + makeID + '&modelID=' + modelID + '&typeID=' + typeID + '&change=' + change;
		var ajax = new Ajax.Updater(
			getVehicleObject(),
			url,
			{
				method:'post',
				parameters:params,
				onLoading:showLoadVehicle,
				onComplete:checkVehiclesResultAdd,
				onFailure:checkVehiclesResultAdd
			}
		);
	}

	runAfterVehicle();

	return false;
}

/**
* Vehicles response handler
*/
function checkVehiclesResult(req)
{
	if ($('buttons'))
	{
		Form.enable('buttons');
	}

	var response = req.responseText;
	if (!response.length)
	{
		alert('Unable to update your vehicle selection. Please try again.');
	}
	else
	{
		if ($('packageID').options.length == 2)
		{
			// select the only available package
			$('packageID').selectedIndex = 1;
			setTimeout("doVehicleChange(0, 'package')", 250);
		}
	}

	hideLoadIcon();
	runAfterVehicle();
}

/**
* Vehicles response handler
*/
function checkVehiclesResultAdd(req)
{
	var response = req.responseText;
	if (!response.length)
	{
		alert('Unable to update your vehicle selection. Please try again.');
	}
	else
	{
		if ($('packageID').options.length == 2)
		{
			// select the only available package
			$('packageID').selectedIndex = 1;
			setTimeout("doVehicleChangeAdd(0, 'package')", 250);
		}
	}

	hideLoadIcon();
}

/**
 * Clear vehicle selection
 */
function clearVehicle()
{
	if (!confirm('Are you sure that you would like to clear your current vehicle selection?'))
	{
		return;
	}
	new Ajax.Request(
		'/lookup/_vehicleUpdate.php',
		{
			parameters:'act=set&clear=' + YES,
			onLoading:showLoadVehicle,
			onComplete:function()
			{
				selectedVehicleChanged('');
			}
		}
	);
}

/**
 * If applicable, run the after_vehicle() function
 */
noreset_av = false;
function runAfterVehicle()
{
	if (typeof(after_vehicle) != 'undefined')
	{
		after_vehicle();
		if (!noreset_av)
		{
			after_vehicle = null;
		}
	}
}

/**
* Loading message functions
*/
function showLoadPlus() { showLoadIcon('Checking Plus Sizes'); }
function showLoadSettings() { showLoadIcon('Updating Settings'); }
function showLoadLookup() { showLoadIcon('Searching for Items'); }
function showLoadPage() { showLoadIcon('Loading Results'); }
function showLoadSort() { showLoadIcon('Sorting Results'); }
function showLoadVehicle() { showLoadIcon('Updating Vehicle Selections'); }

/**
* Select an item to compare
* Shows the DIV and updates the contents
* @param integer itemID
*/
var compare_itemIDs = [];
function addCompareItem(itemID)
{
	var in_compare = in_array(itemID,compare_itemIDs);
	var obj = $('compare' + itemID);

	if (in_compare)
	{
		// remove from the comparison
		compare_itemIDs = array_remove(itemID,compare_itemIDs);
		obj.src = './images/compare.gif';

		// check if all have been removed - if so, hide the DIV
		if (!compare_itemIDs.length)
		{
			showCompare(false);
		}
	}
	else
	{
		// add to the comparison (unless it's the 4th+ item clicked)
		if (compare_itemIDs.length == 3)
		{
			alert("You can only compare 3 items at a time.\nClick 'Compare' to compare the selected items.");
		}
		else
		{
			compare_itemIDs.push(itemID);
			obj.src = './images/compare-sel.gif';
			showCompare(true);
		}
	}

	$('compare_total').innerHTML = compare_itemIDs.length;
	$('compare_button').disabled = (compare_itemIDs.length==0);
}

/**
* Show/hide the comparison DIV
* @param boolean show
*/
function showCompare(show)
{
	if (!show) { compare_itemIDs = []; }
	else { moveComparison(); }
	$('item_compare').style.visibility = (show ? 'visible' : 'hidden');
}

/**
* Clear the comparison config
*/
function clearCompare()
{
	var cIDs = compare_itemIDs;
	for (var i=0; i<cIDs.length; i++)
	{
		addCompareItem(cIDs[i]);
	}
}

/**
* Load the item comparison page
*/
function doCompare()
{
	if (compare_itemIDs.length)
	{
		go('./item_info.php?itemIDs=' + compare_itemIDs.join('|')+'&levelID=' + cost_levelID, 'Loading Item Comparison');
		clearCompare();
	}
}

/**
* Move the item comparison window to the bottom-left of the screen
*/
function moveComparison()
{
	$('item_compare').style.top = (getScrollTop() + getBodyHeight() - Element.getHeight('item_compare') - 15) + 'px';
	$('item_compare').style.left = (10 + getScrollLeft()) + 'px';
}

/**
* Wheel lookup form functions
*/
var cur_os_type = 'ranges';
function setOffsetType(os_type)
{
	if (os_type == cur_os_type) { return; }

	if (os_type == 'ranges')
	{
		$('offset_numbers').selectedIndex = -1;
	}
	else if (os_type == 'numbers')
	{
		$('offset_ranges').selectedIndex = -1;
	}

	Element.toggle('offset_ranges');
	Element.toggle('offset_numbers');
	cur_os_type = os_type;
}

var cur_fin_type = 'barrel_center';
function setFinishType(fin_type)
{
	if (fin_type == cur_fin_type) { return; }

	if (fin_type == 'barrel_center')
	{
		$('finish_all').selectedIndex = -1;
	}
	else if (fin_type == 'all')
	{
		$('finish_barrelcenter').selectedIndex = -1;
	}

	Element.toggle('finish_all');
	Element.toggle('finish_barrelcenter');
	cur_fin_type = fin_type;
}

/**
* Check the wildcard field while typing - if it has length, disable all other fields and vice-versa
* @param	string	val
*/
function checkWildcard(val)
{
	var fields = [
		'prod_code' + cur_type,
		'desc' + cur_type,
		'inv_typeID' + cur_type,
		'rim_size',
		'bolt_pattern',
		'otr', 'otn', 'offset_ranges', 'offset_numbers',
		'ftcb', 'fta', 'finish_barrelcenter', 'finish_all',
		'cost_min' + cur_type, 'cost_max' + cur_type,
		'sell_min' + cur_type, 'sell_max' + cur_type
	];

	if (val.length)
	{
		Field.disable(fields);
		$('wc_clear').style.visibility = 'visible';
	}
	else
	{
		Field.enable(fields);
		$('wc_clear').style.visibility = 'hidden';
	}
} // end function checkWildcard

/**
* Clear the wildcard field and re-enable the fields
*/
function clearWildcard()
{
	$('wildcard').value = '';
	checkWildcard('');
}
// -->