function insertCopyToClipboardButton(wrapper_id) {
 if (!document.getElementById || !document.getElementById(wrapper_id)) {
 // Браузер не поддерживает необходимые нам функции return false;
 }
 else {
 var wrapper = document.getElementById(wrapper_id);
 }

 if (wrapper) {
	 wrapper.title = "Скопировать в буфер";
	 wrapper.onclick = function() {
	 result = copyToClipboard(innerText(wrapper));
	 return false;
 }
 }
 else {
	 return false
 }
}


function innerText(node) {
 // @author Dethe Elza
 // @article "XML Matters: Beyond the DOM. Tips and tricks for a friendlier DOM"
 // @url http://www-128.ibm.com/developerworks/xml/library/x-matters41.html
 if (node.nodeType == 3 || node.nodeType == 4) {
 return node.data;
 }

 var i;
 var returnValue = [];
 for (i = 0; i < node.childNodes.length; i++) {
 returnValue.push(innerText(node.childNodes[i]));
 }

 return returnValue.join('');
}


function copyToClipboard(content) {
 if (window.clipboardData && window.clipboardData.setData) {
 window.clipboardData.setData("Text", content);
 return true;
 }
 else {
 try {
 netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
 }
 catch (e) {
 return false;
 }

 var clipboard = Components.classes["@mozilla.org/widget/clipboard;1"].getService();
 if (clipboard) {
 clipboard = clipboard.QueryInterface(Components.interfaces.nsIClipboard);
 }

 var transferable = Components.classes["@mozilla.org/widget/transferable;1"].createInstance();
 if (transferable) {
 transferable = transferable.QueryInterface(Components.interfaces.nsITransferable);
 }

 if (clipboard && transferable) {
 // тип передаваемых данных transferable.addDataFlavor("text/unicode");
 var textObj = new Object();
 var textObj = Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString);
 if (textObj) {
 textObj.data = content;
 // Упаковываем данные в контейнер
 transferable.setTransferData("text/unicode", textObj, content.length*2);
 var clipid=Components.interfaces.nsIClipboard;
 clipboard.setData(transferable,null,clipid.kGlobalClipboard);

 return true;
 }
 }

 return false;
 }
}

