<html> <head> <title>Baixando -FILENAME- (-FILESIZE- bytes)</title> <script language="javascript"> <!-- var scanned = 1; var fs = -FILESIZE-; function timestring(seconds) { var hours = Math.floor(seconds/3600); var minutes = Math.floor((seconds/60) - (hours*3600)); var seconds = seconds - (minutes*60) - (hours*3600); var string = ""; if (hours > 0) { if (hours < 10) string = "0"+hours; else string = hours; string += ":"; } if (minutes > 0) { if (minutes < 10) string += "0"+minutes; else string += minutes; } else { string += "00"; } string += ":"; if (seconds > 0) { if (seconds < 10) string += "0"+seconds; else string += seconds; } else { string += "00"; } return string; } function filesizestring(bytes) { var gb = Math.floor(bytes/1073741824); if (gb > 0) return gb.toString()+" Gb"; var mb = Math.floor(bytes/1048576); if (mb > 0) return mb.toString()+" Mb"; var kb = Math.floor(bytes/1024); if (kb > 0) return kb.toString()+" Kb"; return bytes.toString()+" bytes"; } function progressupdate(got, speed) { var msg; if (fs > 0) { var sofar = (got/fs)*16; for (var i = 1; i <=sofar; i++) document.getElementById('progress'+i).style.backgroundColor = 'blue'; msg = Math.round((got/-FILESIZE-)*100)+"%, tempo restante: "+timestring(Math.round((fs-got)/speed))+"; "+filesizestring(speed)+"/s; total baixado: "+filesizestring(got); } else { msg = "Tempo restante: desconhecido; "+filesizestring(speed)+"/s; total baixado: "+filesizestring(got); } document.getElementById('message1').innerHTML = msg; } function nowscanning() { for (var i = 1; i <=16; i++) document.getElementById('progress'+i).style.backgroundColor = 'blue'; if (scanned == 1) { var msg = "Download efetuado com sucesso! Verificando..."; document.getElementById('message1').innerHTML = msg; } } function downloadlink(rawlink, prettylink, type) { if (type == 0) var msg = "Arquivo verificado"; else if (type == 1) var msg = "Arquivo baixado, mas não verificado, devido ao seu tamanho"; else if (type == 2) var msg = "Arquivo muito grande para o cache, por favor, faça o download direto."; document.getElementById('message1').innerHTML = msg; if (type != 2) document.getElementById('message2').innerHTML = "<a href='"+rawlink+"'>"+prettylink+"</a>"; else document.getElementById('message2').innerHTML = "<a href='"+prettylink+"'>"+prettylink+"</a>"; document.write("</body></html>"); } function downloadwarning(sizelimit) { scanned = 0; document.getElementById('message2').innerHTML = "Aviso: arquivo muito grande para ser verificado. Se você suspeita que este arquivo é maior que "+filesizestring(sizelimit)+", recarregue esta página para baixar diretamente."; } //--> </script> </head> <body> <script language="javascript"> <!-- document.write( unescape( "\ <table align='center'><tr><td>\ <div style='font-size:8pt;padding:2px;border:solid black 1px'>\ <span id='progress1'>%26nbsp; %26nbsp;</span> \ <span id='progress2'>%26nbsp; %26nbsp;</span> \ <span id='progress3'>%26nbsp; %26nbsp;</span> \ <span id='progress4'>%26nbsp; %26nbsp;</span> \ <span id='progress5'>%26nbsp; %26nbsp;</span> \ <span id='progress6'>%26nbsp; %26nbsp;</span> \ <span id='progress7'>%26nbsp; %26nbsp;</span> \ <span id='progress8'>%26nbsp; %26nbsp;</span> \ <span id='progress9'>%26nbsp; %26nbsp;</span> \ <span id='progress10'>%26nbsp; %26nbsp;</span> \ <span id='progress11'>%26nbsp; %26nbsp;</span> \ <span id='progress12'>%26nbsp; %26nbsp;</span> \ <span id='progress13'>%26nbsp; %26nbsp;</span> \ <span id='progress14'>%26nbsp; %26nbsp;</span> \ <span id='progress15'>%26nbsp; %26nbsp;</span> \ <span id='progress16'>%26nbsp; %26nbsp;</span> \ </div>\ </td></tr></table>\ <center><p><tt id='message1'></tt></p><p id='message2' style='color: #600;'></p></center>" ) ); //--> </script> <!-- As seguintes variáveis possíveis são: - FILENAME- informa o nome do arquivo que está sendo baixado - FILESIZE- informa o tamanho do arquivo em bytes - FILESIZE- de zero indica que o tamanho do arquivo é desconhecido É necessário remover o espaço entre o hífen e a variável para usá-las no seu código HTML. Eles já estão disponíveis, não há a necessidade de processamento extra. s seguintes funções em JavaScript devem ser definidas: progressupdate(got, speed) É chamado quando a página é inicialmente apresentada (exemplo: após initialtrickledelay tiver sido executado), e periodicamente após o progresso de atualização (a cada trickledelay de segundos). Parâmetros: got - quanto que o arquivo já foi baixado, em bytes. speed - velocidade estimada atual do download, em bytes por segundo. nowscanning() É chamado quando o download está completo, e a verificação já foi iniciada. (Obs.: a verificação não começou de fato se downloadwarning() tenha sido chamado em um determinado ponto.) downloadlink(rawlink, prettylink, type) É chamado logo quando a verificação acabar e o arquivo estiver pronto para ser enviado ao usuário. Parâmetros: rawlink - a URL pelo qual o arquivo verificado pode ser capturado prettylink - a URL original que disparou o fancy download manager type - o estado do download/verificação: 0 - baixado e verificado 1 - baixado, mas muito grande para ser verificado 2 - muito grande para ser completamente baixado códigos 1 e 2 podem ser encontrados apenas em arquivos do qual o tamanho do conteúdo é desconhecido antecipadamente. "rawlink" deve ser ignorado para o código 2. downloadwarning(sizelimit) É chamado quando um arquivo com o conteúdo-tamanho desconhecido excedeu o maxcontentfilecachescansize configurado. Usado para alertar o usuário que o fancy DM pode não estar apto a obter todo o arquivo, e que devem baixar diretamente (recarregue a página; a URL será adicionada ao cache do e2guardian) se eles souberem que pode ser maior que o sizelimit. sizelimit - o valor do maxdownloadsize do fancy DM. Se um arquivo exceder este limite também, o fancy DM não pode continuar (irá disparar o estado tipo 2 em downloadlink) Por favor, note que o fancy download manager também informa o conteúdo contido nas tags <noscript>, para navegadores que desabilitam ou não suportam JavaScript. Se você personalizar esta amostra, talvez queira testar seu comportamento e aparência em certas circunstâncias. --> </body> </html>