//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;
					 alert(fieldType);
                     if(fieldType == "select-one"){ 
                        form.elements[i].options.selectedIndex = cookieArray[i];

                        if(form.elements[i].name == "roommatesSigned") {
									afterLoading = true;
									roommatesSignedChanged(); // Sets lease agreement drop down options
									setRoommateNames(); // by this time, the # and names of roommates are set
								}
                     } 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);}}}