  function Merkzettel_trim(text){
    var t=String(text).replace(/^ +/,'');
    t=t.replace(/ +$/,'');

    return t;
  }

  function Merkzettel_init(){
    var cs=document.cookie.split(';');

    var ret=new Array();
    for(var i=0;i<cs.length;i++){
      var c=cs[i].split("=");
      var name=this.trim(c[0]);
      var value=this.trim(c[1]);

      if(name.indexOf('merkzettel_')!=0){
        continue;
      }

      var id=name.substr(11);
      var vs=value.split('|');
      var title=vs[0];
      var time=vs[1];

      ret.push({id:id,title:title,time:time});
    }

    ret.sort(Merkzettel_cmp);

    this.data = ret;
  }

  function Merkzettel_cmp(a,b){
    return a.time-b.time;
  }

  function Merkzettel_getAll(){
    return this.data;
  }

  function Merkzettel_getIndex(id){
    for(var i=0;i<this.data.length;i++){
      if(this.data[i].id==id){
        return i;
      }
    }

    return -1;
  }

  function Merkzettel_add(id,title){
    var expiresdate = new Date();
    var nowtime=expiresdate.getTime();
    var expirestime = nowtime + (20 * 24 * 60 * 60 * 1000);
    expiresdate.setTime(expirestime);

    document.cookie='merkzettel_'+id+'='+title+'|'+nowtime+'; expires='+expiresdate.toGMTString()+'; path=/';

    var o={id:id,title:title,time:nowtime};
    var index=this.getIndex(id);
    if(index<0){
      this.data.push(o);

      if(this.data.length>this.maxsize){
        var diff=this.data.length-this.maxsize;
        var d=new Date();
        d.setFullYear(1970);
        for(var j=0;j<diff;j++){
          o=this.data.shift();

          document.cookie='merkzettel_'+o.id+'='+o.title+'|'+o.time+'; expires='+d.toGMTString()+'; path=/';
        }
      }
    }else{
      this.data[index]=o;
      this.data.sort(Merkzettel_cmp);
    }
  }

  function Merkzettel_remove(id){
    var index=this.getIndex(id);
    if(index>=0){
      var os=this.data.splice(index,1);
      var o=os[0];

      var d=new Date();
      d.setFullYear(1970);
      document.cookie='merkzettel_'+o.id+'='+o.title+'|'+o.time+'; expires='+d.toGMTString()+'; path=/';
    }
  }

  function Merkzettel(maxsize){
    this.data = new Array();
    this.maxsize = maxsize;

    this.trim=Merkzettel_trim;
    this.init=Merkzettel_init;
    this.getAll=Merkzettel_getAll;
    this.getIndex=Merkzettel_getIndex;
    this.add=Merkzettel_add;
    this.remove=Merkzettel_remove;

    this.init();
  }

  var mz=new Merkzettel(7);

  function showMerkzettel(){
    var mwindow=window.open('/merkzettel.php','Merkzettel','scrollbars=yes,resizable=yes,width=420,height=370,dependent=yes');
    mwindow.focus();
  }
  
  function addToMerkzettel(id,title){
    mz.add(id,title);
    var mwindow=window.open('/merkzettel.php','Merkzettel','width=420,height=370');
    mwindow.focus();
  }
