[3]: custombutton://Backup%20custom%20buttons%5D%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACq0lEQVR4Xm2PzWtcVRiHn/fce2Ymk8ykk9YkpTWkCyvYVBvpImQhhdCYbgRdSYMLd5K0qaj0L2jpF+3GpVChGNSNllYMCn5uulEKJiGEiCQm1TSTTmYmmXvnfp1j6wwdAn3ggXPg/b0fYj4CLJg6+B67UIarQQyJ4TxNRMGff4HnQxiDookIOIoWll72qHHyatwYerGNmmoV4qTxBlC0QDlgAWshqTOWGj28v230xf31bcb8EMpV2CiCNbQyPAMTk5G8e1od3xQ9tCOS06dDn4zvt7bd3cA2TRrGNQb1sa4TstdDPVciPbjvhFdiMPAA09zAthoMI7wFTErGvSTZzLTu677lDKFRHiif7GuubjvUfUt3ZKadJzXC5P8Zy7CYc8zyUvcAx/KQqWG1Qnq6obAKdhMApAe7cZD6yhqRbwjWAta/8Vi7H8+JeZ/DJtsxLW+0H5fBIoQGIsCwGxdIAbFQ+tJh7tPkt1rJjov5AKIKL4SWjzOn1OvOEQNx60YUoJv/LQhmSO7d5vtanXOOZkkhoFIsmZC3K7fNnegXoNh0E5aXFBe/znHtqxzX7xY4+4NjKxETnZqlNKCSCJIErKJc3+Gi/wdb/ANsAI9gftFSLEzR/+YFgndG+LFfux8mRJMKphS4D1Z4ShKzN6/JswWYhoWyJf/KOrVDs2wvz5GKIlag6goAuMbQAo464FBqTL8ZtvNTlOKIttSDgKCeIEpICV+48BnwuTIJPDGJcVzFq+kqhIvw9wKe/t3/ZCnQiwNHewniAFccDgy3keTo9Aw/+wKyMEYTutJwP2vpe+jxaxhzpWb59t2Yg3teTs+MnDkwsLrq8+/l9WjfQ9trNCUAmT8JAAJ91nIvjLhhDTdJ2CpbeM+B7YDnpUu+66/Y/MQK5R6XUyGsAvwHk/0n+0qkvkwAAAAASUVORK5CYII%3D%5D%5B%5D%5Bthis.onLeftClick%3Dfunction%28%29%0A%7B%0A%09var%20bNum%20%3D%20custombuttons.getButtonsNumbers%28%29%3B%0Avar%20dataURL%3D%22%3Ctitle%3ECustom%20Buttons%3C/title%3E%3Ch2%3ECustom%20Buttons%3C/h2%3E%5Cn%3Col%3E%5Cn%22%3B%0A%20function%20getHyperlink%28num%29%20%7B%0A%20%20%20%20var%20values%20%3D%20custombuttons.getButtonParameters%28num%29%3B%0A%20var%20uri%3D%27custombutton%3A//%27+escape%28values.name+%27%5D%27+%27%5B%27+values.image+%27%5D%27+%27%5B%27+values.code+%27%5D%27+%27%5B%27+values.initCode%29%3B%0A%0A%20var%20link%20%3D%20%22%3Ca%20href%3D%27%22%20+%20uri%20+%20%22%27%3E%5Cn%3Cimg%20src%3D%5C%22%22%20+%20unescape%28values.image%29%20+%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22%5C%22%20border%3D0%20height%3D16px%3E%5Cn%22%20+%20unescape%28values.name%29%20+%20%22%3C/a%3E%22%3B%0A%09return%20link%3B%0A%20%20%7D%0Afor%28var%20i%3D0%3Bi%3CbNum.length%3Bi++%29%0A%7B%0A%09dataURL+%3D%22%3Cli%3E%22+getHyperlink%28bNum%5Bi%5D%29+%22%3Cbr%3E%5Cn%22%3B%0A%7D%0AdataURL+%3D%22%3C/ol%3E%22%0A%0AwriteFile%28dataURL%29%3B%0A%0Afunction%20writeFile%20%28%20str%20%29%20%7B%0Avar%20nsIFilePicker%20%3D%20Components.interfaces.nsIFilePicker%3B%0Avar%20fp%20%3D%20Components.classes%5B%[email protected]/filepicker%3B1%22%5D%0A%20%20%20%20%20%20%20%20.createInstance%28nsIFilePicker%29%3B%0Afp.init%28window%2C%20%22Save%20CB%20backup%20as%20%22%2C%20nsIFilePicker.modeSave%29%3B%0A%20%20%20%20fp.defaultString%20%3D%20%22custombuttons.htm%22%3B%0A%20%20%20%20fp.appendFilters%28fp.filterHTML%29%3B%0A%20%20%20%20fp.appendFilters%28fp.filterAll%29%3B%0A%20%20%20%20//%20other%20filters%0A%20%20%20%20var%20res%3Dfp.show%28%29%3B%0A%20%20%20%20if%20%28%20res%20%3D%3D%20nsIFilePicker.returnOK%20%7C%7C%20res%3D%3DnsIFilePicker.returnReplace%29%20%7B%0A%20%20%20%20%20%20%20%20var%20outputStream%20%3D%0A%20%20%20%20%20%20%20%20%20%20Components.classes%5B%[email protected]/network/file-output-stream%3B1%22%5D.%0A%20%20%20%20%20%20%20%20%20%20%20%20createInstance%28%20Components.interfaces.nsIFileOutputStream%20%29%3B%0A%20%20%20%20%20%20%20%20outputStream.init%28%20fp.file%2C%200x04%20%7C%200x08%2C777%2C%200%20%29%3B%0A%20%20%20%20%20%20%20%20var%20result%20%3D%20outputStream.write%28%20str%2C%20str.length%20%29%3B%0A%20%20%20%20%20%20%20%20outputStream.close%28%29%3B%0A%20%20%20%20%7D%0A%7D%0A%0A%7D%0A%0Athis.onMiddleClick%3Dfunction%28%29%0A%7B%0A%0A%7D%0A%0Athis.onRightClick%3Dfunction%28%29%0A%7B%0A%09this.showPopup%28this%29%3B%0A%7D%0A%0A//*******%20No%20need%20to%20make%20any%20changes%20to%20below%20code%20***********%0Athis.execute%3D%20function%28evt%29%0A%7B%0A%0A%09if%28evt.shiftKey%29%20%7B%0A%09%09this.showPopup%28this%29%3B%0A%09%09return%3B%0A%09%7D%0A%0A%09switch%28evt.button%29%20%0A%09%7B%0A%09%09case%200%3A%0A%09%09%09this.onLeftClick%28%29%3B%0A%09%09%09break%3B%0A%09%09case%201%3A%0A%09%09%09this.onMiddleClick%28%29%3B%0A%09%09%09break%3B%0A%09%09case%202%3A%0A%09%09%09this.onRightClick%28%29%3B%0A%09%09%09break%3B%0A%09%7D%0A%7D%0A%0A%0Athis.showPopup%20%3D%20function%28node%29%20%7B%0A%20%20var%20popup%20%3D%20document.getElementById%28%22custombuttons-contextpopup%22%29%3B%0A%20%20var%20x%20%3D%20node.boxObject.x%3B%0A%20%20var%20y%20%3D%20node.boxObject.y%20+%20node.boxObject.height%3B%0A%20%20document.popupNode%20%3D%20node%3B%0A%20%20popup.showPopup%28node%2C%20x%2C%20y%2C%20%22popup%22%2C%20null%2C%20null%29%3B%0A%7D%0A%0Athis.setAttribute%28%22onclick%22%2C%20%22this.execute%28event%29%3B%22%29%3B%0Athis.setAttribute%28%22context%22%2C%20%22%22%29%3B%0Athis.tooltipText%20%3D%20%22%5BL%3DLeft%20Click%20%7C%20M%3DMiddle%20Click%20%7C%20R%3DContext%20Menu%5D%22%3B%0A