// Control display from URL passed parameters
//
// Special parameters are:
// form        = formname -> changes the form name
// errorname   = ename -> changes the default error location
// error       = error message -> places into default error location element
// layer       = layer name    -> switches this layer on
// tabs        = tab plinth name -> Toggles to this tab
// focus       = form element  -> places focus on this element of the form
// Other parameters are:
// form element= value  -> sets form element to this value
//
function parameters(formname) {
// Has any parameters been passed in URL
var fobj = null;
var currentform = formname;
var defaulterror = "errormessage";
var getdata = new Array();
var getstr = window.location.search;

if (getstr) {	 // If there are parameters then extract them
	getstr = getstr.substr(1);
	var getpairs = getstr.split("&");
	for (var i = 0; i < getpairs.length; i++) {
		var getnv = getpairs[i].split("=");
		var getname = getnv[0];
		var getvalue = getnv[1];
switch (getname) {
case "form":
currentform = getvalue;
break;
case "errorname":
defaulterror = getvalue;
break;
case "error":
if(obj=document.getElementById(defaulterror)) {obj.innerHTML = clean(getvalue);}
break;
case "layer":
complinkOn(getvalue);
break;
case "tabs":
toggleTab(at,nt);
break;
case "focus":
fobj=eval('document.forms.'+currentform+'.'+getvalue);
break;
// fill form fields if specified
default:
if(obj=eval('document.forms.'+currentform+'.'+getname)) {
switch (obj.type) {
case "text":
   obj.value = clean(getvalue);
   obj.select();
   obj.blur();
break;
case "textarea":
   obj.value = clean(getvalue);
   obj.select();
   obj.blur();
break;
case "checkbox":
obj.checked = tick(getvalue);
break;
case "radio":
obj.checked = tick(getvalue);
break;
case "select-one":
var n=numeral(getvalue);
if (n > obj.length-1){ n = obj.length-1;}
obj.selectedIndex = n;
break;
} }
}
}}
if (fobj) {fobj.focus();}
}
function clean(string) {
var cleaned;
cleaned = string.replace(/\%20/g," ");
cleaned = cleaned.replace(/\*ln\*/g,"\n");
cleaned = cleaned.replace(/\*nd\*/g,"&");
cleaned = cleaned.replace(/\*eq\*/g,"=");
return cleaned;
}
function tick(string) {
if (string == "false") {return false;}
else {return true;}
}
function numeral(string) {
var n = Number(string);
if (n == "NaN") {n = 0;}
return n;
}

