/* Configuration */

var _formname = 'proposal'; // Enter Form name
var _cookiename = '_mlasspapp'; // Enter unique Cookie name
var frm = "";

window.onload = init;
//window.onunload = recordform;

function init(){
	frm = document.getElementById(_formname);
	var output = "";
	
	for(i=0;i<frm.length;i++){
		output += frm[i].name + ": " + frm[i].value + "\n";
	}
	populateForm();
}

function recordform(){
  frm = document.getElementById(_formname);
  var changed = 1;
  var _output = "";
  var _output2 = "";
  var _output3 = "";
  var part1 = "";
  var partsep = "|^^|";
  
  var expdate = new Date();
  expdate.setTime (expdate.getTime() +  (24 * 60 * 60 * 1000 * 365)); 

  for(i=0;i<frm.length;i++){
	if(frm[i].name){
	  
	  switch(frm[i].type){
	  	case "checkbox": 
	  	   part1 += ((frm[i].checked == true)?1:0) + partsep; 
	  	   _output3 += frm[i].name + ": " + frm[i].checked + ";" + ((frm[i].checked == true)?"Y":"N") + " |||| \n";
	  	   break;
	  	case "radio": 
	  	   _tmp = ""; n = 0;
	  	   _len = document[_formname][frm[i].name].length;
	  	   for (n=0;n<_len;n++){
	  	     if(document[_formname][frm[i].name][n].checked == true){
	  	     	_tmp = ((n)?n:"O");
	  	     }
	  	   }
	  	   part1 += 
	  	   _tmp + partsep;
	  	   _output3 += '{' + frm[i].type + '/' + _len + '}' + frm[i].name + ':[' + n + "/" + _tmp + ']' +  '\n';
	  	   break;
	  	case "select-one": 
	  	   part1 += ((frm[i].selectedIndex != undefined)?frm[i].selectedIndex:"") + partsep; 
	  	   break;
	  	default: 
	  	   part1 += frm[i].value + partsep; 
	  	   break;
	  }
	}
  }

  var testArray1 = new setCookieArray(_cookiename, part1);
  
}

function clear_form() {
  frm.reset();
}

function populateForm(){

    var count = 0;
    var savedData = new getCookieArray(_cookiename);
		
    if(savedData.length > 0){
      var part1arr = savedData[1].split("|^^|");
      
    for(i=0;i<frm.length;i++){
	  if(frm[i].name){
	    switch(frm[i].type){
	    	case "checkbox":if(part1arr[i] == 1)frm[i].checked = true; break;
	    	case "radio": 
	    		if(part1arr[i]){
	    			if(part1arr[i]=="O")part1arr[i] = 0;
	    			eval("document[_formname][frm[i].name][part1arr[" + count + "]].checked = true; "); 
	    		}
	    	break;
	    	case "select-one": eval("frm." + frm[i].name + ".selectedIndex = ((part1arr[" + count + "])?part1arr[" + count + "]:0); "); break;
	    	default: eval("frm." + frm[i].name + ".value = part1arr[" + count + "]; "); break;
	    }
	    count++;
	  }
    }

      
   }else{

  for(i=0;i<frm.length;i++){
	if(frm[i].name){
	  frm[i].value = '';
	}
  }

   }
}

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;
}

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

function deleteCookie(name, path, domain) {
  if (getCookie(name)) {
    document.cookie = name + "=" +
    ((path) ? "; path=" + path : "") +
    ((domain) ? "; domain=" + domain : "") +
    "; expires=Thu, 01-Jan-70 00:00:01 GMT";
  }
}

function fixDate(date) {
  var base = new Date(0);
  var skew = base.getTime();
  if (skew > 0)
    date.setTime(date.getTime() - skew);
}

function setCookieArray(name){
    this.length = setCookieArray.arguments.length - 1;

    var expdate = new Date();
    expdate.setTime (expdate.getTime() +  (24 * 60 * 60 * 1000 * 365)); 

    for (var i = 0; i < this.length; i++) {
    data = setCookieArray.arguments[i + 1]
    setCookie (name + i, data, expdate);
    }        
}

function getCookieArray(name){
var i = 0;
    while (getCookie(name + i) != null) {
    this[i + 1] = getCookie(name + i);
    i++; this.length = i; 
    }
}

