    function trimString(s) {
        var m = s.match(/^\s*(\S+(\s+\S+)*)\s*$/);
        return (m == null) ? "" : m[1];
    }

   function setCookie(sName, sValue){
      document.cookie = sName + "=" + escape(sValue) + ";";
   }
        
   function getCookie(sName){
      var aCookie = document.cookie.split(";");
      for (var i=0; i < aCookie.length; i++){
         var aCrumb = aCookie[i].split("=");
        
         if (trimString(sName) == trimString(aCrumb[0])){
            return unescape(trimString(aCrumb[1]));
         }
      }
      return null;
   }

   function getDisplayCookie(sName){
      var cDisplay;
      cDisplay = getCookie("displaycookie");
      if(cDisplay==null){return null;}
      if(cDisplay.search("sName"+"|")<0){return null;}
      
      var aC = cDisplay.split("|");
      for (var i=0; i < aC.length; i++){
         var aCrumb = aC[i].split("~");
        
         if (trimString(sName) == trimString(aCrumb[0])){
            return unescape(trimString(aCrumb[1]));
         }
      }
      return null;
   }

   function setDisplayCookie(sName, sValue){

      var cDisplay = getCookie("displaycookie");

      if(cDisplay==null){
         setCookie("displaycookie",sName+"~"+sValue);
      
      }else if(getDisplayCookie(sName)==null){
         setCookie("displaycookie",cDisplay+"|"+sName+"~"+sValue);
      
      }else{
         var aC = cDisplay.split("|");
         cDisplay=""
         for (var i=0; i < aC.length; i++){
            var aCrumb = aC[i].split("~");
        
            if (trimString(sName) == trimString(aCrumb[0])){
               cDisplay+="|"+sName+"~"+sValue;
//alert("setting found: "+sName+"~"+sValue);
            }else if(aCrumb.length>1){
               cDisplay+="|"+trimString(aCrumb[0])+"~"+trimString(aCrumb[1]);
//alert("setting others: "+aCrumb[0].trim()+"~"+aCrumb[1].trim());
            }
         }
         setCookie("displaycookie",cDisplay);
      }
      
   }

