anchor.diff:  partNumber can be 1 up to 10000
   */
   S3BrowserMultipart.prototype.uploadPart = function (partNumber, signData, file){
  -  uploadInfo = S3BrowserMultipart.prototype.getCurrentUploads(signData, file)
  -  uploadInfo['partNumber']=partNumber;
  -  slice = S3BrowserMultipart.prototype.calculateSlice(partNumber, signData.chunk_size, file.size)
  -  
  -  var formData = new FormData();
  -  partFields = {};
  -  jQuery.extend(partFields, signData.upload.fields,
  -    {key: signData.upload.part_prefix+partNumber});
  -  for(var field in partFields){
  -    formData.append(field, partFields[field]);
  -  }
  -  formData.append('file',file.slice(slice.start,slice.end));
  -  jQuery.support.cors = true;
  -  $.ajax({
  -      url: signData.upload.url,  //Server script to process data
  -      type: 'POST',
  -      xhr: function() {  
  -          var myXhr = $.ajaxSettings.xhr();
  -          if(myXhr.upload){ 
  -              myXhr.upload.addEventListener('progress',
  -                S3BrowserMultipart.prototype.partUploadProgress, false); 
  -          }
  -          return myXhr;
  -      },
  -      //Ajax events
  -      //beforeSend: beforeSendHandler,
  -      success: S3BrowserMultipart.prototype.partUploaded,
  -      error: S3BrowserMultipart.prototype.partUploadFail,
  -      // Form data
  -      data: formData,
  -      //Options to tell jQuery not to process data or worry about content-type.
  -      cache: false,
  -      contentType: false,
  -      processData: false
  -  });
  -  $('.file_progress .message').html('Uploading part: '+partNumber);
  +  var uploadInfo = S3BrowserMultipart.prototype.getCurrentUploads(signData, file);
  +  if(uploadInfo!==undefined){
  +    uploadInfo['partNumber']=partNumber;
  +    slice = S3BrowserMultipart.prototype.calculateSlice(partNumber, signData.chunk_size, file.size)
  +    
  +    var formData = new FormData();
  +    partFields = {};
  +    jQuery.extend(partFields, signData.upload.fields,
  +      {key: signData.upload.part_prefix+partNumber});
  +    for(var field in partFields){
  +      formData.append(field, partFields[field]);
  +    }
  +    formData.append('file',file.slice(slice.start,slice.end));
  +    jQuery.support.cors = true;
  +    $.ajax({
  +        url: signData.upload.url,  //Server script to process data
  +        type: 'POST',
  +        xhr: function() {  
  +            var myXhr = $.ajaxSettings.xhr();
  +            if(myXhr.upload){ 
  +                myXhr.upload.addEventListener('progress'
  +  ,                S3BrowserMultipart.prototype.partUploadProgress, false); 
  +            }
  +            return myXhr;
  +        },
  +        //Ajax events
  +        //beforeSend: beforeSendHandler,
  +        success: S3BrowserMultipart.prototype.partUploaded,
  +        error: S3BrowserMultipart.prototype.partUploadFail,
  +        // Form data
  +        data: formData,
  +        //Options to tell jQuery not to process data or worry about content-type.
  +        cache: false,
  +        contentType: false,
  +        processData: false
  +    });
  +    $('.file_progress .message').html('Uploading part: '+partNumber);
  +  }else{
  +    S3BrowserMultipart.prototype.
  +      alertFunction("Pudo presentarse un error subiendo el archivo por problemas de conexión. Por favor guarde el borrador y recargue la página para verificar.")
  +  }
   }
   
   /*
  
positive.code: */
  S3BrowserMultipart.prototype.partUploadProgress = function(arg){
    try{
      uploadInfo=S3BrowserMultipart.prototype.getCurrentUpload();
      currentByte = (uploadInfo.signData.chunk_size*(uploadInfo.partNumber-1))+arg.loaded; 
      if(currentByte > uploadInfo.file.size){
        currentByte = uploadInfo.file.size;
  
negative.code: At the moment only support 1 upload at the same time
  */
  S3BrowserMultipart.prototype.partUploaded = function (s3Data){
    var file_key=s3Data.getElementsByTagName("Key")[0];
    var uploadInfo=S3BrowserMultipart.prototype.getCurrentUpload();
    if(uploadInfo!==undefined){
      var slice = S3BrowserMultipart.prototype.calculateSlice(uploadInfo.partNumber, 
        uploadInfo.signData.chunk_size,uploadInfo.file.size);
      S3BrowserMultipart.prototype.reportUploadedPart(uploadInfo,file_key);
  
      S3BrowserMultipart.prototype.showProgressUploadedPart({partNumber: uploadInfo.partNumber,
        partCount: slice.partCount, s3Data: s3Data});
      //More parts ?
      if(uploadInfo.partNumber < slice.partCount){
        //Call next file upload
        S3BrowserMultipart.prototype.uploadPart(uploadInfo.partNumber+1,
          uploadInfo.signData,uploadInfo.file);
      }
    }else{
      S3BrowserMultipart.prototype.alertFunction("Pudo presentarse un error subiendo el archivo por problemas de conexión. Por favor guarde el borrador y recargue la página para verificar.")
    }
  }
  
  