//******************************************************************************************************
//   ATTENTION: THIS FILE HEADER MUST REMAIN INTACT. DO NOT DELETE OR MODIFY THIS FILE HEADER.
//
//   Name: ubr_file_upload.js
//   Revision: 1.0
//   Date: 24/12/2007 12:18PM
//   Link: http://uber-uploader.sourceforge.net
//   Initial Developer: Peter Schmandra  http://www.webdice.org
//
//   Licence:
//   The contents of this file are subject to the Mozilla Public
//   License Version 1.1 (the "License"); you may not use this file
//   except in compliance with the License. You may obtain a copy of
//   the License at http://www.mozilla.org/MPL/
//
//   Software distributed under the License is distributed on an "AS
//   IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
//   implied. See the License for the specific language governing
//   rights and limitations under the License.
//
//***************************************************************************************************************
var myalertF=0;
var upload_range=1;var get_data_loop=false;var get_status_url;var seconds=0;var minutes=0;var hours=0;var info_width=0;var info_bytes=0;var info_time_width=500;var info_time_bytes=15;var cedric_hold=true;var total_upload_size=0;var total_Kbytes=0;var bytesID;var statusID;function checkFileNameFormat(){if(!check_file_name_format){return false}for(var i=0;i<upload_range;i++){if(document.form_upload.elements['upfile_'+i].value!=""){var string=document.form_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\.\-]{1,48}$/i;if(!re.test(file_name)){fileUploadAlert("Lo siento, pero alguno de los archivos que está intentando transferir no están permitidos. Por favor, asegúrate de que los nombres de tus archivos cumplen los siguientes criterios: \n\n1. El nombre completo del archivo no puede exceder los 48 caracteres\n2. El formato debe ser NombreArchivo.extension o NombreArchivo\n3. Los caracteres permitidos son 1-9, a-z, A-Z, '_', '-'\n");return true}}}return false}function isBlank(val){if(val==null){return true}for(var i=0;i<val.length;i++){if((val.charAt(i)!=' ')&&(val.charAt(i)!="\t")&&(val.charAt(i)!="\n")&&(val.charAt(i)!="\r")){return false}}return true}function checkFileTitle(){for(var i=0;i<upload_range;i++){if((document.form_upload.elements['upfile_title_'+i].value=="Título para el archivo adjunto"||isBlank(document.form_upload.elements['upfile_title_'+i].value))&&!isBlank(document.form_upload.elements['upfile_'+i].value)){fileUploadAlert("Por favor, añade un título para el archivo adjunto nº  "+(i+1));return true}}return false}function checkAllowFileExtensions(){if(!check_allow_extensions){return false}for(var i=0;i<upload_range;i++){if(document.form_upload.elements['upfile_'+i].value!=""){if((!document.form_upload.elements['upfile_'+i].value.match(allow_extensions)&&check_allow_extensions!=2)||(document.form_upload.elements['upfile_'+i].value.match(disallow_extensions)&&check_allow_extensions==2)){var string=document.form_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();fileUploadAlert('Lo siento, pero no está permitido subir archivos con la extensión: "'+file_extension+'".');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.form_upload.elements['upfile_'+i].value==""){null_file_count++}}if(null_file_count==upload_range){fileUploadAlert("Por favor, escoge al menos un archivo.");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="Se han detectado arhivos duplicados (con el mismo nombre).\n\n";var file_name_array=new Array();for(var i=0;i<upload_range;i++){if(document.form_upload.elements['upfile_'+i].value!=""){var string=document.form_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+='Archivo duplicado "'+file_name_array[i]+'" detectado en la posición '+(i+1)+".\n";duplicate_flag=true}file_count=0}if(duplicate_flag){fileUploadAlert(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(){get_data_loop=false}function iniFilePage(){resetProgressBar();for(var i=0;i<upload_range;i++){document.form_upload.elements['upfile_'+i].disabled=false;document.form_upload.elements['upfile_'+i].value="";if(document.form_upload.elements['upfile_image_'+i])document.form_upload.elements['upfile_image_'+i].checked=""}document.getElementById('upload_button').disabled=false;document.getElementById('progress_bar').style.display="none";document.getElementById("upload_slots").innerHTML="";upload_range=0;addUploadSlot(upload_range)}function check_files(){file_left="";for(var i=0;i<upload_range;i++){if(document.form_upload.elements['upfile_'+i])if(document.form_upload.elements['upfile_'+i].value!="")file_left="left"}if(file_left){fileUploadAlert('Para enviar los archivos adjuntos, tienes que pulsar el botón “Transferir” ');return false}return true}function resetProgressBar(){get_data_loop=false;seconds=0;minutes=0;hours=0;info_width=0;info_bytes=0;cedric_hold=true;total_upload_size=0;total_Kbytes=0;document.getElementById('upload_status').style.width='0px';if(show_percent_complete){document.getElementById('percent').innerHTML='0%'}if(show_files_uploaded){document.getElementById('uploaded_files').innerHTML=0}if(show_files_uploaded){document.getElementById('total_uploads').innerHTML=''}if(show_current_position){document.getElementById('current').innerHTML=0}if(show_current_position){document.getElementById('total_kbytes').innerHTML=''}if(show_elapsed_time){document.getElementById('time').innerHTML=0}if(show_est_time_left){document.getElementById('remain').innerHTML=0}if(show_est_speed){document.getElementById('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(checkFileTitle()){return false}if(checkFileNameFormat()){return false}if(checkAllowFileExtensions()){return false}if(checkNullFileCount()){return false}if(checkDuplicateFileCount()){return false} __$('#upload_button_container').hide(); if(show_files_uploaded){var total_uploads=0;for(var i=0;i<upload_range;i++){if(document.form_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=document.body;jsel.type='text/javascript';if(multi_configs_enabled){jsel.src=path_to_link_script+'?config_file='+config_file+'&rnd_id='+day.getTime()}else{jsel.src=path_to_link_script+'?rnd_id='+day.getTime()}dom.appendChild(jsel);dom=null;jsel=null;day=null}function file_removeTitle(et){if(et.value=="Título para el archivo adjunto")et.value="";return true}function startUpload(upload_id,debug_upload){document.getElementById('upload_button').disabled=true;document.form_upload.action=path_to_upload_script+'?upload_id='+upload_id;file_attached=1;document.form_upload.submit();for(var i=0;i<upload_range;i++){document.form_upload.elements['upfile_'+i].disabled=true;document.form_upload.elements['upfile_title_'+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=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;get_data_loop=true;document.getElementById('progress_bar').style.display="";showAlertMessage("Transfiriendo arhivos");if(show_current_position){document.getElementById('total_kbytes').innerHTML=total_Kbytes+" "}if(show_elapsed_time){getElapsedTime()}getProgressStatus();if(cedric_progress_bar==1){if(show_current_position){smoothCedricBytes()}smoothCedricStatus()}}function setProgressStatus(bytes_read,lapsed_time,uploaded_files){var byte_speed=0;var time_remaining=0;var dom;if(lapsed_time>0){byte_speed=bytes_read/lapsed_time}if(byte_speed>0){time_remaining=Math.round((total_upload_size-bytes_read)/byte_speed)}if(cedric_progress_bar==1){if(byte_speed!=0){info_time_width=Math.round(total_upload_size*1000/(byte_speed*progress_bar_width));info_time_bytes=Math.round(1024000/byte_speed)}else{info_time_width=500;info_time_bytes=15}}var percent_float=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(bytes_read/1024);if(cedric_progress_bar==1){cedric_hold=false;info_width=progress_bar_status;info_bytes=Kbytes_read}else{dom=document.getElementById('upload_status');dom.style.width=progress_bar_status+'px';if(show_current_position){dom=document.getElementById('current');dom.innerHTML=Kbytes_read}}if(show_percent_complete){dom=document.getElementById('percent');dom.innerHTML=percent+'%'}if(show_files_uploaded){dom=document.getElementById('uploaded_files');dom.innerHTML=uploaded_files}if(show_est_time_left){dom=document.getElementById('remain');dom.innerHTML=time_remaining_f}if(show_est_speed){dom=document.getElementById('speed');dom.innerHTML=Kbyte_speed}dom=null}function getProgressStatus(){var jsel=document.createElement('SCRIPT');var day=new Date;var 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('time');dom.innerHTML=hr+":"+min+":"+sec;dom=null;hr=null;min=null;sec=null;if(get_data_loop){setTimeout("getElapsedTime()",1000)}}function smoothCedricStatus(){if(info_width<progress_bar_width&&!cedric_hold){info_width++;var dom=document.getElementById('upload_status');dom.style.width=info_width+'px';dom=null}if(get_data_loop){clearTimeout(statusID);statusID=setTimeout("smoothCedricStatus()",info_time_width)}}function smoothCedricBytes(){if(info_bytes<total_Kbytes&&!cedric_hold){info_bytes++;var dom=document.getElementById('current');dom.innerHTML=info_bytes;dom=null}if(get_data_loop){clearTimeout(bytesID);bytesID=setTimeout("smoothCedricBytes()",info_time_bytes)}}function addUploadSlot(num){if (myalertF){__$("#err_buttons").html(""); __$("#err_file_attachment_div").html(""); if (upload_range>0){__$('#upload_button_container').show(); } else { __$('#upload_button_container').hide(); clearerralert("file_attachment_div");} } if(upload_range<max_upload_slots){if(num==upload_range){var up=document.getElementById('upload_slots');var dv=document.createElement("div");dv.innerHTML='<input type="file" name="upfile_'+upload_range+'" size="38" onChange="addUploadSlot('+(upload_range+1)+');" onKeypress="return handleKey(event)">&nbsp;&nbsp;<input name="upfile_title_'+upload_range+'" id="upfile_title_'+upload_range+'" type="text"  style="width:310px" value="Título para el archivo adjunto" onfocus="file_removeTitle(this); fileUploadFocus(this);" onblur="fileUploadBlur(this);" /> ';up.appendChild(dv);upload_range++;up=null;dv=null}}}
function fileUploadAlert(txt){
	if (myalertF){
		myerralert(txt+"<br/>","file_attachment_div","br");
	}else{
		alert(txt);
	}
}

function fileUploadBlur(dis){
	if (myalertF){
		__$(dis).removeClass("txt_selected_reduced");
	}
}

function fileUploadFocus(dis){
	if (myalertF){
		 __$(dis).addClass("txt_selected_reduced");
		 clearerralert(__$(this).attr('id'));
		 __$(dis).removeClass("txt_ok");
		 __$(dis).removeClass("txt_error_reduced");
		 __$(dis).removeClass("txt_error");
		 __$("#err_buttons").html("");
	}
}