home *** CD-ROM | disk | FTP | other *** search
- /* You may find the license in the LICENSE file */
- /* ╨▐╕─╫╘dta╜┼▒╛ */
-
- var FlashGet_Cookie;
-
- var FG3_SaveAs = {
- init: function fg_init() {
-
- var basicBox = document.getElementById('basicBox');
- var normalBox = document.getElementById('normalBox');
- const doRevert = basicBox && (!basicBox.collapsed || (normalBox && normalBox.collapsed));
-
- if (doRevert) {
- this.revertUI();
- }
-
- this.normal = document.getElementById('FG3saveas');
- this.mode = document.getElementById('mode');
- this.remember = document.getElementById("rememberChoice");
- this.settingsChange = document.getElementById("settingsChange");
-
- document.getElementById('flashget3container').collapsed = false;
- this.normal.disabled = false;
-
- this.dialog = dialog;
- this.url = dialog.mLauncher.source.spec;
- try
- {
- this.referrer = dialog.mContext.QueryInterface(Components.interfaces.nsIWebNavigation).currentURI.spec;
- }
- catch(ex)
- {
- this.referrer = this.url;
- }
- try
- {
- var ios = Components.classes["@mozilla.org/network/io-service;1"].getService(Components.interfaces.nsIIOService);
- var uri = ios.newURI(this.url, null, null);
- var cookieSvc =Components.classes["@mozilla.org/cookieService;1"].getService(Components.interfaces.nsICookieService);
- FlashGet_Cookie = cookieSvc.getCookieString(uri, null);
-
- }
- catch (ex)
- {
- this.cookie = "";
- }
-
-
- var ml = FG_getLinkPrintMetalink(this.url);
- this.url = ml ? ml : this.url;
-
- // this.url = new DTA_URL(ml ? ml : this.url);
-
- this.mode.selectedItem = this.normal;
-
- document.documentElement.setAttribute(
- 'ondialogaccept',
- 'if(FG3_SaveAs.dialogAccepted()) { '
- + document.documentElement.getAttribute('ondialogaccept')
- + '}'
- );
-
- this.mode.addEventListener( 'select',
- function(evt) {
- FG3_SaveAs.select(evt);
- },
- false
- );
- },
-
- revertUI: function fg_revertUI() {
- ['open'].forEach(
- function(e) {
- e = document.getElementById(e);
- e.parentNode.collapsed = true;
- e.disabled = true;
- }
- );
- document.getElementById('normalBox').collapsed = false;
- var nodes = document.getElementById('normalBox')
- .getElementsByTagName('separator');
-
- for (var i = 0; i < nodes.length; ++i) {
- nodes[i].collapsed = true;
- }
-
- document.getElementById('basicBox').collapsed = true;
- document.getElementById('normalBox').collapsed = false;
-
- // take care of FlashGot... for now.
- // need to negotiate with the author (and possible other extension authors)
- try {
- gFlashGotDMDialog.init();
- document.getElementById("flashgot-basic").collapsed = true;
- }
- catch (ex) {
- // no op
- }
- this.sizeToContent();
-
- },
-
- // Workaround for bug 371508
- sizeToContent: function() {
- try {
- window.sizeToContent();
- }
- catch (ex) {
- FG_debug.dump("sizeToContent Bug: 371508", ex);
- try {
- var btn = document.documentElement.getButton('accept');
- window.innerHeight = btn.boxObject.y + 10;
- }
- catch (ex) {
- FG_debug.dump("setting height failed");
- }
- }
- },
- select: function fg_select(evt) {
- var mode = this.mode.selectedItem;
- this.remember.checked = false;
- if (this.normal == mode ) {
- this.remember.disabled = false;
- }
- },
-
- dialogAccepted: function fg_accept() {
- var mode = this.mode.selectedItem;
- if (mode == this.normal) {
- this.download();
- return false;
- }
- return true;
- },
-
- download: function()
- {
- // ╠φ╝╙╡╜Flashget┐═╗º╢╦╓╨
- //FG_alert( this.url, this.referrer );
- //FG_AddingFunctions.saveSingleLink(this.url, "", this.referrer, "FlashGet3", 0);
- //document.documentElement.cancelDialog();
-
- var obj
- try
- {
- const cid = "@flashget.com/FlashgetXpiEx;1";
- obj = Components.classes[cid].createInstance();
- obj = obj.QueryInterface(Components.interfaces.IFlashgetXpi);
- }
- catch (err)
- {
- return;
- }
-
- if (obj == null)
- {
- return;
- }
-
- obj.AddUrl(this.url, this.referrer, this.referrer, "FlashGet3",FlashGet_Cookie,0);
-
- document.documentElement.cancelDialog();
- }
- }
-
- addEventListener(
- "load",
- function(){ FG3_SaveAs.init(); },
- false
- );
-
- function FG_getLinkPrintMetalink(url, charset) {
- if (url instanceof Components.interfaces.nsIURL) {
- url = url.ref;
- }
- else if (url instanceof Components.interfaces.nsIURI) {
- url = url.spec;
- }
- else if (typeof(url) != 'string' && !(url instanceof String)) {
- return null;
- }
-
- var lp = url.match(/#!metalink3!((?:https?|ftp):.+)$/);
- if (lp) {
- var rv = lp[1];
- try {
- return DTA_AddingFunctions.ios.newURI(rv, charset, null).spec;
- }
- catch (ex) {
- // not a valid link, ignore it.
- }
- }
- return null;
- }