home *** CD-ROM | disk | FTP | other *** search
/ Windows News 2005 February / WN_129_CD.iso / Windows / Extensions Firefox / FlashGot / flashgot-0.5.3.xpi / chrome / flashgot.jar / content / flashgot / flashgotDMOverlay.js < prev    next >
Encoding:
Text File  |  2004-11-14  |  2.8 KB  |  118 lines

  1. function FlashGotDMDialog() {
  2.   flashGotDMDialog=this;
  3.  
  4.   this.url=dialog.mLauncher.source.spec;
  5.  
  6.   setTimeout(
  7.     function() {
  8.       flashGotDMDialog.init(); 
  9.     },0);
  10. }
  11.  
  12. FlashGotDMDialog.prototype = {
  13.   get choosen() {
  14.     return g_flashGotService.getPref("dmchoice");
  15.   }
  16.   set choosen(v) {
  17.     g_flashGotService.setPref("dmchoice",v);
  18.     return v;
  19. }
  20. ,
  21.   init: function() {
  22.     
  23.     try {
  24.       this.referrer=dialog.mContext.QueryInterface(
  25.         Components.interfaces.nsIWebNavigation).currentURI.spec;
  26.     } catch(ex) {
  27.       this.referrer=this.url;
  28.     }
  29.     this.dialog=dialog;
  30.     this.choice=document.getElementById("flashgot-dmradio");
  31.  
  32.     this.fname=dialog.mLauncher.suggestedFileName;
  33.     var ext=this.fname.split('.');
  34.     this.ext=ext.length>0?ext[ext.length-1]:"";
  35.  
  36.     if(g_flashGotService.getPref("dmchoice."+this.ext)) {
  37.       this.download();
  38.       return;
  39.     }
  40.     
  41.     document.getElementById('mode').addEventListener(
  42.     "select", function(event) {
  43.       flashGotDMDialog.toggleChoice(event)
  44.     },true);
  45.     
  46.     if(this.choosen) {
  47.       document.getElementById("mode").selectedItem=this.choice;
  48.     }
  49.     
  50.     document.documentElement.setAttribute('ondialogaccept',
  51.       'if(flashGotDMDialog.dialogAccepted()) { '
  52.       + document.documentElement.getAttribute('ondialogaccept')
  53.       +'}');
  54.           
  55.   }
  56. ,
  57.   toggleChoice: function() {
  58.     var mode=document.getElementById("mode");
  59.     var dmchoice= mode.selectedItem == this.choice;
  60.     
  61.     this.choosen=dmchoice;
  62.     var remember=document.getElementById("rememberChoice");
  63.     if(!remember) {
  64.       remember=document.getElementById("alwaysHandle");
  65.     }
  66.     if(dmchoice) {
  67.       window.setTimeout(
  68.         function() { 
  69.           document.documentElement.getButton('accept').removeAttribute('disabled');
  70.         },0);
  71.       if(remember) {
  72.           this.lastRememberChecked=remember.checked;
  73.           remember.setAttribute("disabled","true");
  74.           remember.checked=false;
  75.       }
  76.     } else {
  77.       if(remember) { 
  78.         remember.removeAttribute("disabled");
  79.         if(this.lastRememberChecked) remember.checked=this.lastRememberChecked;
  80.       }
  81.     }
  82.   }
  83. ,
  84.    dialogAccepted: function() {
  85.     if(this.choosen) {
  86.       var remember=document.getElementById("rememberChoice");
  87.       if(remember && remember.checked) {
  88.         // g_flashGotService.setPref("dmchoice."+this.ext,true);
  89.       }
  90.       this.download();
  91.       return false;
  92.     } else {
  93.       return true;
  94.     }
  95.   }
  96. ,
  97.   download: function() {
  98.     var links=[ {
  99.        href: this.url, 
  100.        title: this.fname
  101.     } ];
  102.     links.referrer=this.referrer;
  103.     g_flashGotService.download(links);
  104.       
  105.     document.documentElement.removeAttribute('ondialogaccept');
  106.     document.documentElement.cancelDialog();
  107.   }
  108. }
  109.  
  110. window.addEventListener("load",  
  111.   function(loadEv) {
  112.     new FlashGotDMDialog();
  113.   }, false);
  114.  
  115.  
  116.  
  117.