function GetOptionFromUrl (optionName)
{
	var str = window.location.href;
	var ind = str.indexOf (optionName + '=');
	if (ind != -1)
	{
		var optEnd = str.indexOf ('&', ind + optionName.length + 1);
		if (optEnd == -1)
		{
			return unescape (str.substr (ind + optionName.length + 1));
		}
		else
		{
			return unescape (str.substring (ind + optionName.length + 1, optEnd));
		}
	}
	return 0;
}

function ReplaceAll (str, src, trg)
{
	var s = str;
	var start = 0;
	while(true)
	{
		var ind = s.indexOf(src, start);
		if (ind == -1)
		{
			break;
		}
		s = s.substring (0, ind) + trg + s.substr (ind + src.length);
		start = ind + trg.length;
	}
	return s;
}

function FindAllFormItems (form)
{
	var els = new Array ();
	if (form)
	{
		var ar = form.elements;
		var i;
		for(i=0;ar && i<ar.length;i++)
		{
			if (ar [i].name)
			{
				els [els.length] = ar [i].name;
			}
		}
	}
	return els;
}

function ConvertUtf8 (input)
{
	var output = '';
	for (n = 0; n < input.length; n++)
	{
		var c = input.charCodeAt (n);
		if (c < 128) output += String.fromCharCode (c);
		else if ((c > 191) && (c < 224))
		{
			output += String.fromCharCode (((c & 31) << 6) | (input.charCodeAt (n + 1) & 63));
			n++;
		}
		else
		{
			output += String.fromCharCode (((c & 15) << 12) | ((input.charCodeAt (n + 1) & 63) << 6) | (input.charCodeAt (n + 2) & 63));
			n+=2;
		}
	}
	return output;
}

function UrlToFormItems (form)
{
	var els = FindAllFormItems (form);
	var i;
	var bUTF8 = true;
	for (i = 0; els && i < els.length; i++)
	{
		var nm = els [i];
		var val = GetOptionFromUrl (nm);
		if (form)
		{
			if (val)
			{
				if(nm && (nm.substr (0,1) == 'q' || nm.substr (0,2) == 'fq')) val = ReplaceAll (val, '+', ' ');
				else if(nm == 'enc' && val.toLowerCase() == 'iso-8859-1') bUTF8 = false;
				else if(nm == 'ae' && val.charCodeAt(0) == 223) {bUTF8 = false;continue;}
			}
			var el = form.elements [nm];
			if (el && val)
			{
				if (el.type == 'checkbox') el.checked = val;
				else if (el.type == 'select-one')
				{
					for (option = 0; option < el.options.length; option++) if (el.options [option].value == val) el.options [option].selected = 1;
				}
				else if (el.length)
				{
					for (j = 0; j < el.length; j++) if (el [j].value == val) el [j].checked = true;
				}
				else
				{
					if(nm == 'enc') el.value = 'utf-8';
					else el.value = (bUTF8 ? ConvertUtf8 (val) : val);
				}
			}
		}
	}
	document.bAnsi = !bUTF8;
}

function ClearSearchResults (resultsCodePart)
{	
	document.searchResultCode = '';
}

function AddToSearchResults (resultsCodePart)
{
	document.searchResultCode = document.searchResultCode + resultsCodePart;	
}

function ApplySearchResultsCode ()
{
	var resultsDiv = document.getElementById ('SearchResults');

	if (resultsDiv && document.searchResultCode)
	{
		resultsDiv.innerHTML = document.searchResultCode;
	}
}
UrlToFormItems (document.forms ['SearchForm']);