function cookie_setzen() {
   var anzParameter = cookie_setzen.arguments.length;
   var parameter = cookie_setzen.arguments;
   // 1. Cookie-Name
   var name = parameter[0];
   // 2. Cookie-Wert
   var value = (anzParameter >= 2) ? parameter[1] : "";
   value = escape(value); // URL-Codierung
   // 3. Haltbarkeitsdatum
   var expires = (anzParameter >= 3) ? parameter[2] : null;
   if (expires != null) {
      if (expires.toGMTString) {
         expires = expires.toGMTString();
      }
   }
   // 4. Domain
   var domain = (anzParameter >= 4) ? parameter[3] : null;

   // 5. Pfad
   var path = (anzParameter >= 5) ? parameter[4] : null;

   if (path != null) {
      path = escape(path); // Sonderzeichen umwandeln
   }
   // 6. Sicherheitsstufe
   var secure = (anzParameter >= 6) ? parameter[5] : null;
   // Zusammensetzen des Cookies
   var c = name + "=" + escape(value);
   if (expires != null) {
      c += "; expires=" + expires;
   }
   if (domain != null) {
      c += "; domain=" + domain;
   }
   if (path != null) {
      c += "; path=" + path;
   }
   if (secure) {
      c += "; secure";
   }
   // Cookie setzen
   // zuerst altes löschen
   var date = new Date();
   date.setTime(date.getTime()-3600);
   
   document.cookie = name + "=;expires=" + date.toGMTString();
   // dann neues setzen
   document.cookie = c;
}

function cookie_lesen(name) {
   var i = document.cookie.indexOf(name + "=");
   var c = "";
   if (i > -1) {
      var ende = document.cookie.indexOf("; ",
                 i+name.length+1);
      if (ende == -1) {
         ende = document.cookie.length;
      }
      c = document.cookie.substring(i+name.length+1, ende);
   }
   return unescape(c);
}

function laden_collection(portletid) {
   var str = cookie_lesen("daten" + portletid);
   str = unescape(str);
   var temp = new Array();
   // Daten aus dem Cookie in ein Array umwandeln
   if (str != "") {
      str = str.replace(/,/g, "\",\"");
      str = "\"" + str + "\""
      eval("temp = [" + str + "]");
   }
   // assoziatives Array erstellen
   var c = new Array();
   for (var i=0; i<temp.length; i+=2) {
     c[temp[i]] = temp[i+1];
   }
   // Array zurückgeben
   return c;
}

function lesen_collection(name) {
   var c = laden_collection();
   return c[name];
}

function speichern_collection(portletid, c, dauer) {
   var temp = new Array();
   for (var e in c) {
      temp[temp.length]=e;
      temp[temp.length]=c[e];
   }
   var date = new Date();
   if (dauer != null) {
	   date.setTime(date.getTime()+1000*60*60*24*10);
	   cookie_setzen("daten" + portletid, temp.toString(), date);
	} else {
	  cookie_setzen("daten" + portletid, temp.toString());
	}
}

function schreiben_collection(portletid, sessionid, contentid, dauer) {
   var c = laden_collection(portletid);
   if (sessionid != null)
	   c["session"] = sessionid;
	if (contentid != null)	   
	   c["content"] = contentid;
   speichern_collection(portletid, c, dauer);
}
