function copyToClipboardSFW(content) {
	var flashcopier = 'flashcopier';
	if (!document.getElementById(flashcopier)) {
		var divholder = document.createElement('div');
		divholder.id = flashcopier;
		eval("document.body.appendChild(divholder);");
	}
	document.getElementById(flashcopier).innerHTML = '';
	var divinfo = '<embed src="/clipboard.swf" FlashVars="clipboard=' + escape(content) + '" width="0" height="0" type="application/x-shockwave-flash"></embed>';
	document.getElementById(flashcopier).innerHTML = unescape(divinfo);
	return true;
}

function copyToClipboard(content) {
	// for IE
	if (window.clipboardData && window.clipboardData.setData) {
		return (window.clipboardData.setData("Text", content) || copyToClipboardSFW(content));
	} else {
		// for not IE
		try {
			// Просим разрешений
			netscape.security.PrivilegeManager
					.enablePrivilege("UniversalXPConnect");
		} catch (e) {
			// Если не дали, то копируем через флешку
			return copyToClipboardSFW(content);
		}

		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) {
			var textObj = new Object();
			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;
	}
}