//Uses functionality from lawdepot.js
var DELIM = '@';
var expDays = 365;
var exp = new Date(); 
exp.setTime(exp.getTime() + (expDays*24*60*60*1000));
var path = "/";
function getCookieVal (offset){  
var endstr = document.cookie.indexOf (";", offset);  
if (endstr == -1){ endstr = document.cookie.length; }
return unescape(document.cookie.substring(offset, endstr));
}
function GetCookie (name){  
var arg = name + "=";  
var alen = arg.length;  
var clen = document.cookie.length;  
var i = 0;  
while (i < clen){    
var j = i + alen;    
if (document.cookie.substring(i, j) == arg) return getCookieVal (j);    
i = document.cookie.indexOf(" ", i) + 1;    
if (i == 0) break;   
}  
return null;
}
function SetCookie (name, value){  
var argv = SetCookie.arguments;  
var argc = SetCookie.arguments.length;  
var expires = (argc > 2) ? argv[2] : null;  
var path = (argc > 3) ? argv[3] : null;  
var domain = (argc > 4) ? argv[4] : null;  
var secure = (argc > 5) ? argv[5] : false;  
document.cookie = name + "=" + escape(value,1) + 
((expires == null) ? "" : ("; expires=" + expires.toGMTString())) + 
((path == null) ? "" : ("; path=" + path)) +  
((domain == null) ? "" : ("; domain=" + domain)) +    
((secure == true) ? "; secure" : "");
}
function escapeAtChar(str){
var regexp = /@/g;
var trimregexp1 = /^\ */;
var trimregexp2 = /\ *$/;
return str.replace(regexp, "%!").replace(trimregexp1, "").replace(trimregexp2, "");
}
function unescapeAtChar(str){
var regexp = /%!/g;
return str.replace(regexp, "@");
}
function cookieForms(mode){  
var form;
for(f=1;f<cookieForms.arguments.length; f++){
formName=cookieForms.arguments[f];
form=getForm(formName);
if(form){
if(mode == 'open'){	
cookieValue = GetCookie('saved_'+formName);
if(cookieValue != null){
var cookieArray = cookieValue.split(DELIM);
form = getForm(formName);
if(cookieArray.length == form.elements.length){
for(i=0; i<form.elements.length; i++){
fieldType = form.elements[i].type;
if(fieldType == "select-one"){ form.elements[i].options.selectedIndex = cookieArray[i]; }
else if(fieldType == 'checkbox' || fieldType == 'radio'){ form.elements[i].checked = cookieArray[i]==""; }
else if(form.elements[i].name == "ViewResultsButton"){}
else{ form.elements[i].value = (cookieArray[i]) ? unescapeAtChar(cookieArray[i]) : ''; }
}}}}
if(mode == 'save'){	
cookieValue = '';
for(i=0; i<form.elements.length; i++){
fieldType = form.elements[i].type;
switch(fieldType){
case "password":
passValue = '';
break;
case "checkbox":
case "radio":
passValue = form.elements[i].checked?"":"F";
break;
case "select-one":
passValue = form.elements[i].options.selectedIndex;
break;
default:
passValue = escapeAtChar(form.elements[i].value);
break;
}
cookieValue = cookieValue + passValue + DELIM;
}
cookieValue = cookieValue.substring(0, cookieValue.length-DELIM.length);
if(cookieValue.length >= 3400)
alert("There may be too much information to save to your computer.  You can complete your document, but if you leave and come back to LawDepot, your information may not reappear.");
SetCookie('saved_'+formName, cookieValue, exp);
}	
}else{alert("No form "+formName);}}}

