function DoCalc() {
   /* convert file size to bits */
   converted_size = size * 1024;
   if(unit == 'mb') {
      converted_size = converted_size * 1024;
   }
   converted_size = converted_size * 8;  /* convert to bytes */
   switch(document.form1.speed.value) {
      case '28k':
         speed = 28800;
         break;
      case '56k':
         speed = 56000;
         break;
      case 'isdn':
         speed = 128000;
         break;
      case 'dsl':
         speed = 750000;
         break;
      case 't1':
         speed = 1544000;
         break;
      case 'cab':
         speed = 3000000;
         break;
      case 'cab2':
         speed = 5000000;
         break;
      case 't3':
         speed = 45000000;
         break;
      default:
         alert('Invalid download speed specified.');
         return;
   }
   /* zero out the download units */
   var hours = '00';
   var minutes = '00';
   var seconds = '00';
   
   /* calc download time in seconds*/
   dltime = converted_size / speed;
   if(dltime > 60) {
      if(dltime > 3600) { /* we have more than an hour */
         var hours = '' + (dltime / 3600);
         var pos = hours.indexOf('.');
         if(pos != -1) {
            hours = hours.substring(0,pos);
         }
         var leftovers = '' + dltime % 3600;
         minutes = '' + (leftovers / 60);
         pos = minutes.indexOf('.');
         if(pos != -1) {
            minutes = minutes.substring(0,pos);
         }
         if(minutes < 10) {
            minutes = '0' + minutes;
         }
         /* calc the seconds */
         if(leftovers % 60 != 0) {
            seconds = Math.round(leftovers % 60);
            if(seconds < 9) {
               seconds = '0' + seconds;
            }
         } 
      
      } else {
         var temp = '' + (dltime / 60);
         minutes = temp;
         var pos = minutes.indexOf('.');
         if(pos != -1) {
            minutes = minutes.substring(0,pos);
         }
         if(minutes < 10) {
            minutes = '0' + minutes;
         }
         /* calc the seconds */
         if(dltime % 60 != 0) {
            seconds = Math.round(dltime % 60);
            if(seconds < 9) {
               seconds = '0' + seconds;
            }
         }
      }
   } else {
      seconds = Math.round(dltime);
      if(seconds < 10) { /* pad if necessary */
         seconds = '0' + seconds;
      }
   }
   /* format output */
   var output_time = '';
   if(hours != '00') {
      output_time = hours + " hr ";
   }
   if(minutes != '00') {
      output_time += minutes + " min ";
   }
   output_time += seconds + " sec";
   document.form1.time.value = ' ' + output_time;
}
