var myCookies = document.cookie;
var rx_cookie = /(^)?\s*([^;= ]*)=\s*([^;]*)(;)?/g;
var rx_attribute = /\{\s*([^}= ]*)\s*:\s*([^}]*)\}/g;

function getCookie(name, attr) {	
	var r;	
	rx_cookie.lastIndex = 0;
	while (r = rx_cookie.exec(myCookies)) {
		if(r[2] == name) {
			if(attr == undefined || !attr) return r[3];
			else {
				var s;
				rx_attribute.lastIndex = 0;
				while (s = rx_attribute.exec(r[3])) {
					if(s[1] == attr) return s[2];
				}
				
				//alert('attr not found: '+attr);
				//alert(r[3]);
	
				return null;
			}
		}
	}
	
	//alert('cookie not found: '+name);
	//alert(myCookies);

	return null;
}

function setCookieAttr(name, attr, value) {		
	var oldC = getCookie(name);
	var newC = name+'=';
		
	var s;
	rx_attribute.lastIndex = 0;
	while(s = rx_attribute.exec(oldC)) {
		//alert(s[0]);
		if(s[1] != attr) newC += s[0];
	}
	
	newC += '{'+attr+':'+value+'}';
	
	//alert(newC);
	document.cookie = newC;
	
	//Damit wir da schon waehrend der Laufzeit drankommen
	var myCookiesNew = '';
	
	var r;	
	rx_cookie.lastIndex = 0;
	while (r = rx_cookie.exec(myCookies)) {
		if(r[2] != name) {
			myCookiesNew += r[0];
		}
	}
	myCookies = myCookiesNew + ';' + newC;
}
