


function getClipboard(showerr) {
  if (window.clipboardData) return(window.clipboardData.getData('Text'));

  else if (window.netscape) {
    try {
      netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
      var clip = Components.classes['@mozilla.org/widget/clipboard;1'].createInstance(Components.interfaces.nsIClipboard);
      }
    catch (error) { return errClipboard(showerr) }
    if (!clip) return "";

    try {
      var trans = Components.classes['@mozilla.org/widget/transferable;1'].createInstance(Components.interfaces.nsITransferable);
      }
    catch (error) { return errClipboard(showerr) }
    if (!trans) return "";

    trans.addDataFlavor('text/unicode');
    clip.getData(trans,clip.kGlobalClipboard);
    var str = new Object();
    var len = new Object();

    try { trans.getTransferData('text/unicode',str,len); }
    catch(error) { return errClipboard(showerr); }

    if (str) {
      if (Components.interfaces.nsISupportsWString) str=str.value.QueryInterface(Components.interfaces.nsISupportsWString);
      else if (Components.interfaces.nsISupportsString) str=str.value.QueryInterface(Components.interfaces.nsISupportsString);
      else str = null;
      }
    if (str) return(str.data.substring(0,len.value / 2));
    else return ""
    }
  else return errClipboard(showerr);
  }

function setClipboard(meintext,showerr) {
  if (window.clipboardData) window.clipboardData.setData('Text',meintext);

  else if (window.netscape) {
   try {
     netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
     var clip = Components.classes['@mozilla.org/widget/clipboard;1'].createInstance(Components.interfaces.nsIClipboard);
     }
   catch (error) { return errClipboard(showerr) }
   if (!clip) return false;

   try {
     var trans = Components.classes['@mozilla.org/widget/transferable;1'].createInstance(Components.interfaces.nsITransferable);
     }
   catch (error) { return errClipboard(showerr) }
   if (!trans) return false;

   trans.addDataFlavor('text/unicode');
   var str = new Object();
   var len = new Object();
   var str = Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString);
   var copytext=meintext;
   str.data=copytext;
   trans.setTransferData("text/unicode",str,copytext.length*2);
   var clipid=Components.interfaces.nsIClipboard;
   if (!clip) return false;
   clip.setData(trans,null,clipid.kGlobalClipboard);
   return true;
   }
  else return errClipboard(showerr);
  }

function errClipboard(showerr) {
  if (showerr) alert('You have attempted to use the clipboard.  Your browser is not configured to support that.\n\nIf you are using FireFox:\n  1. Point your browser to url: about:config\n  2. Type into Filter box: applet\n  3. Double click "signed.applets.codebase_principal_support"\n  4. This will set it to "true"\n  5. Try your operation again.')
  return ''
  }
