// runs through all of the form inputs and if a cookie matches that name, it will set the value of the form element from the cookie.
function rememberFormVars(){
	var currentElement;
	var currentValue;
	var currentName;
	for(i=0;i<document.forms.length;i++){
		for(j=0;j<document.forms[i].elements.length;j++){
			currentElement = document.forms[i].elements[j];
			if(currentElement.type == "text"){
				currentName = "SACS_" + currentElement.name;
				currentValue = getCookie(currentName);
				
				// find one?
				if(currentValue != ""){
					currentElement.value = currentValue;
				}				
			}
		}
	}
}

// runs through all form inputs and stores a cookie for each name/value
function storeFormVars(){
	var currentElement;
	var currentValue;
	var currentName;
	var today = new Date();
	var expires = new Date();
	var counter = 0;

	expires.setTime(today.getTime() + 1000*60*60*24*365);
	
	clearFormMemory();
	
	for(i=0;i<document.forms.length;i++){
		for(j=0;j<document.forms[i].elements.length;j++){
			currentElement = document.forms[i].elements[j];
			
			// only store the first 15 text or text area fields
			if((currentElement.type == "text") && counter < 15){
				currentName = "SACS_" + currentElement.name;
				currentValue = currentElement.value;
				
				// keep cookies to shorter than 4 kb
				if(currentValue.length > 3500){
					currentValue = currentValue.substring(0,3500);
				}
				
				setCookie(currentName, currentValue, expires, "/", "");
				counter++;
			}
		}
	}
	
	return true;
}

// delete the existing cookies, before setting them again
function clearFormMemory(){
	var dc = document.cookie;
	var pos1 = -1;
	var pos2 = 0;
	var thisCookie;
	var name;
	do{
		pos2 = pos1 + 1;
		pos1 = dc.indexOf(";", pos2);
		
		if(pos1 > 0){
			thisCookie = dc.substring(pos1,pos2);
			name = thisCookie.substring(0,thisCookie.indexOf("="));
			if(name.indexOf("SACS_") != -1){
				setCookie(name, "", 0, "/", "");
			}			
		}
	}while(pos1 != -1);
}

// retrieve a cookie
function getCookie(name) {
	var dc = document.cookie;
	var prefix = name + "=";
	var begin = 0 + dc.indexOf(prefix);
	if (begin == -1){
		return 0;
	}
	begin += prefix.length;
	var end = 0 + dc.indexOf(";", begin);
	if (end == -1){
		end = dc.length;
	}
	return unescape(dc.substring(begin, end));
}	

// set a cookie
function setCookie(name, value, expires, path, domain, secure){
	var curCookie = name + "=" + escape(value) +
			((expires) ? "; expires=" + expires.toGMTString() : "") +
			((path) ? "; path=" + path : "") +
			((domain) ? "; domain=" + domain : "") +
			((secure) ? "; secure" : "");
	document.cookie = curCookie;
}


