function products_filter_submit(FormName, FieldType, FieldValue)
{
	if(!document.forms[FormName])
		return;
	var currRequest = window.location.search;
	if(currRequest=="" && FieldType!=null) document.forms[FormName].submit();
	else {	
		var newRequestArray = get_request_vars();
		
		var requestStr = "?";
		var found = false;
		var paramType = "";
		var valueIncluded = false;
		var paramTypeShown = false;
		//if(product_filters_form['showAllFields'].checked) product_filters_form['showAllFileds'].checked = false;
		for (var i=0; i<newRequestArray.length; i++) {
			firstValue = true;
			paramTypeShown = false;
			paramType = newRequestArray[i][0];
			
			// ParamType already exists -> add new value here or remove it
			if(FieldType==paramType) {
				found = true;
				for(var j=0; j<newRequestArray[i][1].length; j++) {
					// Do not add the value to new URL
					if(newRequestArray[i][1][j]==FieldValue) {
						valueIncluded = true;
					}
					else {
						if(!paramTypeShown) {
							requestStr += "&" + paramType + "=";
							paramTypeShown = true;
						}
						if(firstValue) {
							firstValue = false;
						}
						else requestStr += ",";
						requestStr += newRequestArray[i][1][j];
					}
				}
				
				if(!valueIncluded) {
					if(!paramTypeShown) {
						requestStr += "&" + paramType + "=";
						paramTypeShown = true;
					}
					if(firstValue) {
						firstValue = false;
					}
					else requestStr += ",";
					requestStr += FieldValue;
				}
			}
			// Just write everything for this param type
			else {
				// Always a new parameter
				requestStr += "&" + paramType + "=";
				firstValue = true;
				for(var j=0; j<newRequestArray[i][1].length; j++) {
					if(firstValue) firstValue = false;
					else requestStr += ",";
					requestStr += newRequestArray[i][1][j];
				}
			}
		}
		if(!found) requestStr += "&" + FieldType + "=" + FieldValue;
		
		window.location.assign(requestStr);
	}
}
/*
function showAll(form)
{
	var currRequest = window.location.search;
	with(form)	{
		if(form['showAllFields'].checked) {
			if(currRequest == "") currRequest += "?";
			else currRequest += "&";
			currRequest += "showAll";
		}
		else currRequest = currRequest.substring(0, currRequest.indexOf('showAll'));
	}
	window.location.assign(currRequest);
}
*/

function get_request_vars() {
	var x = location.search.substr(1).split("&")
	var params = new Array(x.length);
	for (var i=0; i<x.length; i++)
	{
		var y = x[i].split("=");
		params[i] = new Array(2);
		params[i][0] = y[0];
				
		var values = y[1].split(",");
		params[i][1] = new Array(values.length);
		
		for (var j=0; j<values.length; j++) {
			params[i][1][j] = values[j];
		}
	}
	return params;
}
