/*
 * Fill the price list with chosen pricelist
 */
function fillPriceList(_priceList, _selected) {
	if (!document.getElementById('ps') || !document.getElementById('pe')) return;

	var price_s = document.getElementById('ps');
	var price_e = document.getElementById('pe');

	// Selected from query string
	if (_selected) {
		price_s_selected = parseInt(queryString("ps"));
		price_e_selected = parseInt(queryString("pe"));
	} else {
		price_s_selected = price_e_selected = "";
	}

	// Reset the select options
	price_s.options.length = 1;
	price_e.options.length = 1;

	// Fill price list
	for(var i = 0; i < priceList[_priceList].length; i++) {
		// Start array
		if (i+1 < priceList[_priceList].length) {
			price_s.options[i+1] = new Option(priceList[_priceList][i], i);
			if (price_s_selected == i && price_s_selected != "") {
				price_s.options[i+1].selected = true;	
			} else {
				price_s.options[i+1].selected = false;	
			}
		}	
		// End array
		if (i > 0) {
			price_e.options[i] = new Option(priceList[_priceList][i], i, price_e_selected == i ? true : false);
			if (price_e_selected == i)
				price_e.options[i].selected = true;	
			else
				price_e.options[i].selected = false;	
		}	
	}
}

/*
 * Fill the adtypes
 */
function genSubTypes(_category, _adtypeId, _displayAll) {
	if (!document.getElementById(_adtypeId)) return;
	var adType = document.getElementById(_adtypeId);
	var inner_html = '';
	
	// If no types
	if (!categoryList[_category] || !categoryList[_category]['type']) return;

	// Selected from query string
	adtype_selected = queryString("st");

	adType.innerHTML = '';
	if (_displayAll) {
		if (adtype_selected == 'a' || adtype_selected == -1) {
			var inner_html = '<input type=radio name=st value=a checked onclick="SearchFeat();"> ' + typeList['a'] + '&nbsp;&nbsp;'; /* Due to bug in Internet explorer 5.2 for OS X */
		} else {
			var inner_html = '<input type=radio name=st value=a onclick="SearchFeat();"> ' + typeList['a'] + '&nbsp;&nbsp;'; /* Due to bug in Internet explorer 5.2 for OS X */
		}
	} else {
		if (adtype_selected == -1)
			adtype_selected = 's';	
	}	
		
	// Type array
	var typeArray = categoryList[_category]['type'].split(",");
	for (var t in typeArray) {
		if (t != 0)
			inner_html += "&nbsp;&nbsp;&nbsp;";	
		inner_html += "<input type=radio name=st value='" +typeArray[t]+ "' "+(typeArray[t]==adtype_selected?"checked":"")+" onclick=\"SearchFeat();\"> " + typeList[typeArray[t]];
	}

	adType.innerHTML = inner_html;
}

/*
 * Show/hide searchextras
 */
function SearchCrit(_checkCat) {
	/* Get selected values only if same category as in query string or called _checkCat */
	var get_selected = (_checkCat || queryString("c") == document.getElementById("cat").value)?true:false;
	var reset_values = 0;
	var displayTypes = false;
	var displayTinyLower = false;
	var watch_cmd = document.getElementById("cmd") != null ? true : false;

	//XXX FIX THIS
	var agt=navigator.userAgent.toLowerCase();
	var is_major = parseInt(navigator.appVersion);
	var is_ie     = ((agt.indexOf("msie") != -1) && (agt.indexOf("opera") == -1));
	var is_ie5 = (is_ie && (is_major == 4) && (agt.indexOf("msie 5.0")!=-1) );

	if (!_checkCat) {
		var Category = document.getElementById("cat").value ? document.getElementById("cat").value : queryString("c");
		// Using timeout instead of using setcookie, "rendering flash" fix in ie
		setTimeout("document.cookie='c="+Category+"'", 0);
		setTimeout("document.cookie='features=0'", 0);
		reset_values = 1;
	} else {
		var Category = (_checkCat > 0 || queryString("c") < 0) ? _checkCat : queryString("c");
		document.getElementById("cat").value = Category;
	}

	// XXX
	if (categoryHasNonDefaultTypes(Category))
		displayTypes = true;
	
	if (categoryHasFeature(Category, 'mileage')) {
		if (!reset_values) {
			setFeatureVal('ms');
			setFeatureVal('me');
		}	
		showField('mileage', 'block');
		//XXX Fix this
		if (!displayTinyLower)
			displayTinyLower = true;
		enable_field('ms');
		enable_field('me');
	} else {
		setValue('ms', "");
		setValue('me', "");
		disable_field('ms');
		disable_field('me');
		showField('mileage', 'none');
	}

	if (categoryHasFeature(Category, 'regdate')) {
		if (!reset_values) {
			setFeatureVal('rs');
			setFeatureVal('re');
		}
		showField('regdate', 'block');
		if (!displayTinyLower)
			displayTinyLower = true;
		enable_field('rs');
		enable_field('re');
	} else {
		setValue('rs', "");
		setValue('re', "");
		disable_field('rs');
		disable_field('re');
		showField('regdate', 'none');
	}

	var priceListId = categoryHasPriceList(Category);
	if (typeof(priceListId) == 'string') {
		fillPriceList(priceListId, get_selected);
		if (!reset_values) {
			setFeatureVal('ps');
			setFeatureVal('pe');
		}	
		showField('pricelist', 'block');
		if (!displayTinyLower)
			displayTinyLower = true;
		enable_field('ps');
		enable_field('pe');
	} else {
		setValue('ps', "");
		setValue('pe', "");
		disable_field('ps');
		disable_field('pe');
		showField('pricelist', 'none');
	}
	
	
	if (categoryHasNonDefaultTypes(Category) || watch_cmd) {
		genSubTypes(Category, "subtypes", displayTypes);
		if (!reset_values) {
			setRadioVal();
		}	
		showField('subtypes', 'block');
	} else {
		showField('subtypes', 'none');
	}

	if (document.getElementById("cat_warning")) {
		var warningMessage = categoryHasWarning(Category, 'cat_warning');
		if (warningMessage && !watch_cmd) {
			document.getElementById("cat_warning").innerHTML = warningMessage;
			showField('cat_warning', 'block');
			showField('subtypes', 'none');
		} else {
			showField('cat_warning', 'none');
		}
	}	
		
	if (displayTinyLower && !is_ie5)
		showField('tiny_lower', 'block');
	else
		showField('tiny_lower', 'none');
}

/*
 * Save extra features in cookie
 */

function SearchFeat() {
	var checkedButton = "";
	var searchfeatures = Array();

	searchfeatures[0] = "ps";
	searchfeatures[1] = "pe";
	searchfeatures[2] = "ms";
	searchfeatures[3] = "me";
	searchfeatures[4] = "rs";
	searchfeatures[5] = "re";
	
	var feat_str = "";
	
	for (var i = 0; i < searchfeatures.length; i++) {
		feat_str += searchfeatures[i] + ":" + document.getElementById(searchfeatures[i]).value + "&";
	}
	
	if (document.f.st) {
		for (var j = 0; j < document.f.st.length; j++) {
			if (document.f.st[j].checked == "1") {
				checkedButton=document.f.st[j].value;
	       	 	}
		}
		if (checkedButton) {
			feat_str += "st:" + checkedButton;
		}	
	}	

	setTimeout("document.cookie='features="+feat_str+"'", 0);
}

/*
 * Set category cookie, used by searchbox and reset the searchbox feature cookie
 */ 
function clearSearch(_category) {
	setCookie('c', _category);
	setCookie('features', '0');
}	
