/**
 * Copy: http://kkaefer.com/blog/javascript-objekte-serialisieren
 */
	serialize = function(elem) {
	  if (elem == null || elem == undefined || elem.constructor == Function) return 'N;';
	
	  switch (elem.constructor) {
		case String:  return 's:' + elem.length + ':"' + elem + '";';
		case Number:  return (elem % 1 ? 'd:' : 'i:') + elem + ';';
		case Boolean: return 'b:' + (elem ? '1' : '0') + ';';     
		case Date:    return serialize(elem.getTime());
		case RegExp:  return serialize(elem.toSource());
		case Error:   return serialize(elem.message);
		case Array:
		case Object:
		  var content = '', i = 0;
		  for (var j in elem) { content += serialize(j) + serialize(elem[j]); i++; }
		  return 'a:' + i + ':{' + content + '}';
		default:
		  return serialize(elem.toString());
	  }
	}
