// functions for setting, getting and clearing values saved in cookies
// this is used for remembering values in forms when returning to the
// page after visiting another page where the original form-fields might get lost.
// by reading a cache, it automaticly clears the cookie !
// (18.9.2001), Jimsto/FRAMFAB & Janeng/FRAMFAB
var formlength;
var valueArray = new Array();
var retrieveArray = new Array();
function setCache(name, values) {
	var cookieString="";
	for (index=0; index<values.length; index++) 
		cookieString+=values[index]+"|£";
	var expiry= new Date();
	expiry.setTime(expiry.getTime()+45000);
	document.cookie=name+"="+escape(cookieString)+"; expires="+expiry.toGMTString();
}

function getCache(name) {
    var index=document.cookie.indexOf(name + "=");
    if (index==-1) {	
    }
    index=document.cookie.indexOf("=", index) + 1;
    var endstr=document.cookie.indexOf(";", index);
    if (endstr==-1) 
    	endstr=document.cookie.length;
	var cookieString=unescape(document.cookie.substring(index, endstr));
	var values=new Array();
	var lastIndex=0;
	var count=0;
	while ((index=cookieString.indexOf("|£", lastIndex))>-1) {
		values[count++]=cookieString.substring(lastIndex,index);
		lastIndex=index+2;
	}
	clearCache(name);
    return values;
}

function clearCache(name) {
	var expiry= new Date();
	expiry.setTime(expiry.getTime()-(31 * 24 * 3600 * 1000));
	document.cookie=name+"=dummy; expires="+expiry.toGMTString();
}

function gatherValues(formname, cacheName) {
	var elementtype; 
	formlength=eval('document.'+formname+'.length');
	for(i=0;i<formlength;i++)
	{
		elementtype=eval('document.'+formname+'[i].type');
		if(elementtype=="text" || elementtype=="hidden")
			valueArray[i]=eval('document.'+formname+'[i].value');
		else if(elementtype=="checkbox")
			valueArray[i]=eval('document.'+formname+'[i].checked');
		else if(elementtype=="radio")
			valueArray[i]=eval('document.'+formname+'[i].checked');
		else if(elementtype=="password")
			valueArray[i]="";
		else if(elementtype=="select-one")
			valueArray[i]=eval('document.'+formname+'[i].options[document.'+formname+'[i].selectedIndex].index');
	}
	setCache(cacheName,valueArray);
}

function retrieveValues(formname, cacheName) {
	var elementtype2;
	var temp;
	var arraylength;
	retrieveArray=getCache(cacheName);
	arraylength=retrieveArray.length;
	for(i=0;i<arraylength;i++)
	{
		elementtype2=eval('document.'+formname+'[i].type');
		temp=retrieveArray[i];
		if(elementtype2=="text" || elementtype2=="hidden")
			eval('document.'+formname+'[i].value="'+temp+'"');
		else if(elementtype2=="radio") {
			if(temp=="true")
				eval('document.'+formname+'[i].checked=true');
			else
				eval('document.'+formname+'[i].checked=false');
		}
		else if(elementtype2=="checkbox") {
			if(temp=="true") 
				eval('document.'+formname+'[i].checked=true');
			else
				eval('document.'+formname+'[i].checked=false');
		}
		else if(elementtype2=="password") {
			eval('document.'+formname+'[i].value=""');
		}
		else if(elementtype2=="select-one")
			eval('document.'+formname+'[i]['+temp+'].selected="1"');
	}
}

