function writeXMLStateCookie(appletname) {
	document.cookie = appletname+"appletstatexml="+escape(document.getElementById(appletname).getXML());
}

function readXMLStateCookie(appletname) {
	var nameEQ = appletname + "appletstatexml=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) document.getElementById(appletname).setXML(unescape(c.substring(nameEQ.length,c.length)));
	}
}
function addLoadEvent(func) { 
	  var oldonload = window.onload; 
	  if (typeof window.onload != 'function') { 
	    window.onload = func; 
	  } else { 
	    window.onload = function() { 
	      if (oldonload) { 
	        oldonload(); 
	      } 
	      func(); 
	    } 
	  } 
	}
	
function addUnloadEvent(func) { 
	  var oldunonload = window.onunload; 
	  if (typeof window.onunload != 'function') { 
	    window.onunload = func; 
	  } else { 
	    window.onunload = function() { 
	      if (oldonunload) { 
	        oldonunload(); 
	      } 
	      func(); 
	    } 
	  } 
	} 

var addlink = true;
addLoadEvent(function() {
  if (addlink) document.body.innerHTML += "<br><a href=\"javascript:document.getElementsByTagName('applet')[0].getAppletDescrHTML()\">Applet info</a>";
  alist = document.getElementsByTagName("applet");
  for (i=0; i<alist.length; i++) {
    if (alist[i].hasAttribute("archive") && alist[i].setJARname)
      alist[i].setJARname(alist[i].getAttribute("archive").split(',')[0]);
    if (alist[i].hasAttribute("name") && !alist[i].hasAttribute("id"))
      alist[i].setAttribute("id",alist[i].getAttribute("name"));
    if (alist[i].hasAttribute("id") && alist[i].getXML) 
      readXMLStateCookie(alist[i].getAttribute("id"));
  }
});

addUnloadEvent(function() {
  alist = document.getElementsByTagName("applet");
  for (i=0; i<alist.length; i++) {
    if (alist[i].hasAttribute("id") && alist[i].getXML) 
      writeXMLStateCookie(alist[i].getAttribute("id"));
  }
});



