var upload_range=1;var get_status_url;var seconds=0;var minutes=0;var hours=0;var total_upload_size=0;var total_Kbytes=0;var CPB_loop=false;var CPB_width=0;var CPB_bytes=0;var CPB_time_width=500;var CPB_time_bytes=15;var CPB_hold=true;var CPB_byte_timer;var CPB_status_timer;var BPB_width_inc=0;var BPB_width_new=0;var BPB_width_old=0;var BPB_timer;var UP_timer;function checkFileNameFormat(){if(!check_file_name_format){return false;}
for(var i=0;i<upload_range;i++){if(document.uu_upload.elements['upfile_'+i].value!=""){var string=document.uu_upload.elements['upfile_'+i].value;var num_of_last_slash=string.lastIndexOf("\\");if(num_of_last_slash<1){num_of_last_slash=string.lastIndexOf("/");}
var file_name=string.slice(num_of_last_slash+1,string.length);var re=/^[\w][\w\.\-\s]{1,48}$/i;if(!re.test(file_name)){alert("Sorry, uploading files in this format is not allowed. Please ensure your file names follow this format. \n\n1. Entire file cannot exceed 48 characters\n2. Format should be filename.extension or filename\n3. Legal characters are 1-9, a-z, A-Z, _, -, space\n");return true;}}}
return false;}
function checkAllowFileExtensions(){if(!check_allow_extensions_on_client){return false;}
for(var i=0;i<upload_range;i++){if(document.uu_upload.elements['upfile_'+i].value!=""){if(!document.uu_upload.elements['upfile_'+i].value.match(allow_extensions)){var string=document.uu_upload.elements['upfile_'+i].value;var num_of_last_slash=string.lastIndexOf("\\");if(num_of_last_slash<1){num_of_last_slash=string.lastIndexOf("/");}
var file_name=string.slice(num_of_last_slash+1,string.length);var file_extension=file_name.slice(file_name.indexOf(".")).toLowerCase();alert('Sorry, uploading a file with the extension "'+file_extension+'" is not allowed.');return true;}}}
return false;}
function checkDisallowFileExtensions(){if(!check_disallow_extensions_on_client){return false;}
for(var i=0;i<upload_range;i++){if(document.uu_upload.elements['upfile_'+i].value!=""){if(document.uu_upload.elements['upfile_'+i].value.match(disallow_extensions)){var string=document.uu_upload.elements['upfile_'+i].value;var num_of_last_slash=string.lastIndexOf("\\");if(num_of_last_slash<1){num_of_last_slash=string.lastIndexOf("/");}
var file_name=string.slice(num_of_last_slash+1,string.length);var file_extension=file_name.slice(file_name.indexOf(".")).toLowerCase();alert('Sorry, uploading a file with the extension "'+file_extension+'" is not allowed.');return true;}}}
return false;}
function checkNullFileCount(){if(!check_null_file_count){return false;}
var null_file_count=0;for(var i=0;i<upload_range;i++){if(document.uu_upload.elements['upfile_'+i].value==""){null_file_count++;}}
if(null_file_count==upload_range){alert("Please Choose A File To Upload.");return true;}
else{return false;}}
function checkDuplicateFileCount(){if(!check_duplicate_file_count){return false;}
var duplicate_flag=false;var file_count=0;var duplicate_msg="Duplicate Upload Files Detected.\n\n";var file_name_array=new Array();for(var i=0;i<upload_range;i++){if(document.uu_upload.elements['upfile_'+i].value!=""){var string=document.uu_upload.elements['upfile_'+i].value;var num_of_last_slash=string.lastIndexOf("\\");if(num_of_last_slash<1){num_of_last_slash=string.lastIndexOf("/");}
var file_name=string.slice(num_of_last_slash+1,string.length);file_name_array[i]=file_name;}}
var num_files=file_name_array.length;for(var i=0;i<num_files;i++){for(var j=0;j<num_files;j++){if(file_name_array[i]==file_name_array[j]&&file_name_array[i]!=null){file_count++;}}
if(file_count>1){duplicate_msg+='Duplicate file "'+file_name_array[i]+'" detected in slot '+(i+1)+".\n";duplicate_flag=true;}
file_count=0;}
if(duplicate_flag){alert(duplicate_msg);return true;}
else{return false;}}
function resetForm(){location.href=self.location;}
function hideProgressBar(){document.getElementById('progress_bar').style.display="none";}
function showDebugMessage(message){document.getElementById('ubr_debug').innerHTML+=message+'<br>';}
function clearDebugMessage(){document.getElementById('ubr_debug').innerHTML='';}
function showAlertMessage(message){document.getElementById('ubr_alert').innerHTML=message;}
function clearAlertMessage(){document.getElementById('ubr_alert').innerHTML='';}
function stopDataLoop(){clearInterval(UP_timer);clearInterval(BPB_timer);CPB_loop=false;}
function iniFilePage(){resetProgressBar();clearAlertMessage();for(var i=0;i<upload_range;i++){document.uu_upload.elements['upfile_'+i].disabled=false;document.uu_upload.elements['upfile_'+i].value="";}
document.getElementById('upload_button').disabled=false;document.getElementById('progress_bar').style.display="none";document.uu_upload.reset();}
function resetProgressBar(){CPB_loop=false;clearInterval(BPB_timer);clearInterval(UP_timer);seconds=0;minutes=0;hours=0;CPB_width=0;CPB_bytes=0;CPB_hold=true;total_upload_size=0;total_Kbytes=0;document.getElementById('upload_status').style.width='0px';if(show_percent_complete){document.getElementById('percent_complete').innerHTML='0%';}
if(show_files_uploaded){document.getElementById('files_uploaded').innerHTML=0;}
if(show_files_uploaded){document.getElementById('total_uploads').innerHTML='';}
if(show_current_position){document.getElementById('current_position').innerHTML=0;}
if(show_current_position){document.getElementById('total_kbytes').innerHTML='';}
if(show_elapsed_time){document.getElementById('elapsed_time').innerHTML=0;}
if(show_est_time_left){document.getElementById('est_time_left').innerHTML=0;}
if(show_est_speed){document.getElementById('est_speed').innerHTML=0;}}
function handleKey(event){if(document.all){if(window.event.keyCode==13){return false;}}
else{if(event&&event.which==13){return false;}}}
function linkUpload(){if(checkFileNameFormat()){return false;}
if(checkAllowFileExtensions()){return false;}
if(checkDisallowFileExtensions()){return false;}
if(checkNullFileCount()){return false;}
if(checkDuplicateFileCount()){return false;}
document.getElementById('upload_button').disabled=true;if(show_files_uploaded){var total_uploads=0;for(var i=0;i<upload_range;i++){if(document.uu_upload.elements['upfile_'+i].value!=""){total_uploads++;}}
document.getElementById('total_uploads').innerHTML=total_uploads;}
var jsel=document.createElement('SCRIPT');var day=new Date;var dom;if(document.getElementById('ajax_div')){dom=document.getElementById('ajax_div');}
else{dom=document.body;}
jsel.type='text/javascript';jsel.src=path_to_link_script+'?rnd_id='+day.getTime();dom.appendChild(jsel);dom=null;jsel=null;day=null;}
function startUpload(upload_id,debug_upload){document.uu_upload.action=path_to_upload_script+'?upload_id='+upload_id;document.uu_upload.submit();for(var i=0;i<upload_range;i++){document.uu_upload.elements['upfile_'+i].disabled=true;}
if(document.getElementById('upload_div')){document.getElementById('upload_div').style.display="none";}
if(!debug_upload){initializeProgressBar(upload_id);}}
function initializeProgressBar(upload_id){var jsel=document.createElement('SCRIPT');var dom;if(document.getElementById('ajax_div')){dom=document.getElementById('ajax_div');}
else{dom=document.body;}
jsel.type='text/javascript';jsel.src=path_to_set_progress_script+'?upload_id='+upload_id;dom.appendChild(jsel);dom=null;jsel=null;day=null;}
function stopUpload(){try{window.stop();}
catch(e){try{document.execCommand('Stop');}
catch(e){}}}
function startProgressBar(upload_id,upload_size,start_time){total_upload_size=upload_size;total_Kbytes=Math.round(total_upload_size/1024);get_status_url=path_to_get_progress_script+'?upload_id='+upload_id+'&start_time='+start_time+'&total_upload_size='+total_upload_size;CPB_loop=true;document.getElementById('progress_bar').style.display="";showAlertMessage("Upload In Progress");if(show_current_position){document.getElementById('total_kbytes').innerHTML=total_Kbytes+" ";}
if(show_elapsed_time){UP_timer=setInterval("getElapsedTime()",1000);}
getProgressStatus();if(cedric_progress_bar==1){if(show_current_position){smoothCedricBytes();}
smoothCedricStatus();}}
function setProgressStatus(total_bytes_read,files_uploaded,current_filename,bytes_read,lapsed_time){var byte_speed=0;var time_remaining=0;var dom;if(lapsed_time>0){byte_speed=total_bytes_read/lapsed_time;}
if(byte_speed>0){time_remaining=Math.round((total_upload_size-total_bytes_read)/byte_speed);}
if(cedric_progress_bar==1){if(byte_speed!=0){var temp_CPB_time_width=Math.round(total_upload_size*1000/(byte_speed*progress_bar_width));var temp_CPB_time_bytes=Math.round(1024000/byte_speed);if(temp_CPB_time_width<5001){CPB_time_width=temp_CPB_time_width;}
if(temp_CPB_time_bytes<5001){CPB_time_bytes=temp_CPB_time_bytes;}}
else{CPB_time_width=500;CPB_time_bytes=15;}}
var percent_float=total_bytes_read/total_upload_size;var percent=Math.round(percent_float*100);var progress_bar_status=Math.round(percent_float*progress_bar_width);var remaining_sec=(time_remaining%60);var remaining_min=(((time_remaining-remaining_sec)%3600)/60);var remaining_hours=((((time_remaining-remaining_sec)-(remaining_min*60))%86400)/3600);if(remaining_sec<10){remaining_sec='0'+remaining_sec;}
if(remaining_min<10){remaining_min='0'+remaining_min;}
if(remaining_hours<10){remaining_hours='0'+remaining_hours;}
var time_remaining_f=remaining_hours+':'+remaining_min+':'+remaining_sec;var Kbyte_speed=Math.round(byte_speed/1024);var Kbytes_read=Math.round(total_bytes_read/1024);if(cedric_progress_bar==1){if(cedric_hold_to_sync){if(progress_bar_status<CPB_width){CPB_hold=true;}
else{CPB_hold=false;CPB_width=progress_bar_status;CPB_bytes=Kbytes_read;}}
else{CPB_hold=false;CPB_width=progress_bar_status;CPB_bytes=Kbytes_read;}
dom=document.getElementById('upload_status');dom.style.width=progress_bar_status+'px';}
else if(bucket_progress_bar==1){BPB_width_old=BPB_width_new;BPB_width_new=progress_bar_status;if((BPB_width_inc<BPB_width_old)&&(BPB_width_new>BPB_width_old)){BPB_width_inc=BPB_width_old;}
clearInterval(BPB_timer);BPB_timer=setInterval("incrementProgressBar()",10);}
else{dom=document.getElementById('upload_status');dom.style.width=progress_bar_status+'px';}
if(show_current_position){dom=document.getElementById('current_position');dom.innerHTML=Kbytes_read;}
if(show_current_file){dom=document.getElementById('current_file');dom.innerHTML=current_filename;}
if(show_percent_complete){dom=document.getElementById('percent_complete')
dom.innerHTML=percent+'%';}
if(show_files_uploaded){dom=document.getElementById('files_uploaded');dom.innerHTML=files_uploaded;}
if(show_est_time_left){dom=document.getElementById('est_time_left');dom.innerHTML=time_remaining_f;}
if(show_est_speed){dom=document.getElementById('est_speed');dom.innerHTML=Kbyte_speed;}
dom=null;}
function incrementProgressBar(){var PB_dom=document.getElementById('upload_status');if(BPB_width_inc<BPB_width_new){BPB_width_inc++;PB_dom.style.width=BPB_width_inc+'px';}}
function getProgressStatus(){var jsel=document.createElement('SCRIPT');var day=new Date;var dom;if(document.getElementById('ajax_div')){dom=document.getElementById('ajax_div');dom.innerHTML='';}
else{dom=document.body;}
jsel.type='text/javascript';jsel.src=get_status_url+"&rnd_id="+day.getTime();dom.appendChild(jsel);dom=null;jsel=null;day=null;}
function getElapsedTime(){seconds++;if(seconds==60){seconds=0;minutes++;}
if(minutes==60){minutes=0;hours++;}
var hr=""+((hours<10)?"0":"")+hours;var min=""+((minutes<10)?"0":"")+minutes;var sec=""+((seconds<10)?"0":"")+seconds;var dom=document.getElementById('elapsed_time')
dom.innerHTML=hr+":"+min+":"+sec;dom=null;hr=null;min=null;sec=null;}
function smoothCedricStatus(){if(CPB_width<progress_bar_width&&!CPB_hold){CPB_width++;var dom=document.getElementById('upload_status');dom.style.width=CPB_width+'px';dom=null;}
if(CPB_loop){clearTimeout(CPB_status_timer);CPB_status_timer=setTimeout("smoothCedricStatus()",CPB_time_width);}}
function smoothCedricBytes(){if(CPB_bytes<total_Kbytes&&!CPB_hold){CPB_bytes++;var dom=document.getElementById('current_position');dom.innerHTML=CPB_bytes;dom=null;}
if(CPB_loop){clearTimeout(CPB_byte_timer);CPB_byte_timer=setTimeout("smoothCedricBytes()",CPB_time_bytes);}}
function addUploadSlot(num){if(upload_range<max_upload_slots){if(num==upload_range){var up=document.getElementById('upload_slots');var dv=document.createElement("div");dv.innerHTML='<input class="ubrUploadSlot" type="file" name="upfile_'+upload_range+'" size="90" onChange="addUploadSlot('+(upload_range+1)+')" onKeypress="return handleKey(event)">';up.appendChild(dv);upload_range++;up=null;dv=null;}}}