/**
function setFormElem
@author Stefan Spier

*/
function setFormElem(Formname, ElemName, Value)
{
	var i=0;
	var x=0;
	var tp;
	var elems = document.all ? document.all[Formname].elements : document.forms[Formname].elements;

	for(i=0;i<elems.length;i++)
	{
		if(elems[i].name == ElemName)
		{
                  //alert("Found elem " + ElemName);
			tp = elems[i].type;
			if(tp == "select-multiple")
			{
				for(x=0;x<elems[i].children.length;x++) if(elems[i].children[x].text == Value) elems[i].children[x].selected = true;
			}
			else if(tp == "select-one")
			{
				for(x=0;x<elems[i].options.length;x++) if(elems[i].options[x].value == Value) elems[i].options[x].selected = true;
			}
			else if(tp == "checkbox" || tp == "radio")
			{
				if(elems[i].value == Value)
				{
					elems[i].checked = true;
				}
			}
			else //Text und Textarea ==>simply set'n exit !
			{
				elems[i].value = Value;
			}
		}
	}
}
function restoreForm(val, formname)
{
	var JSSEPERATOR = 'z';
	var ERR_INVALIDFORMAT  = "Invalid format";
	var i=-1;
	var x;
	var pos = 0;
	var cnt;
	var paramname;
	var paramvalue;
	var paramcnt;

	while((i = val.indexOf(JSSEPERATOR, pos)) != -1)
	{
		//Read paramname
		cnt = parseInt(val.substring(pos,i), 16);
		i++; //char after seperator
		cnt += i; //convert to index
		paramname = unescape(val.substring(i, cnt));
		//Index cnt should now contain the first digit of the parameter count
		//==>retrieve parameter count
		if((i = val.indexOf(JSSEPERATOR, cnt)) == -1)
		{
			alert(ERR_INVALIDFORMAT);
			break;
		}
		paramcnt = parseInt(val.substring(cnt,i), 16);
		pos = ++i; //char after seperator
		for(x=0;x<paramcnt;x++)
		{
			if((i = val.indexOf(JSSEPERATOR, pos)) == -1)
			{
				alert(ERR_INVALIDFORMAT);
				break;
			}
			cnt = parseInt(val.substring(pos,i), 16);
			i++;
			cnt+=i;
			paramvalue = unescape(val.substring(i, cnt));
			//==>now got name and value
			setFormElem(formname, paramname, paramvalue);
			pos = cnt;
		}
	}
}
