anchor.diff:  */
   S3BrowserMultipart.prototype.partUploadProgress = function(arg){
     try{
  -    uploadInfo=S3BrowserMultipart.prototype.getCurrentUpload();
  +    var uploadInfo=S3BrowserMultipart.prototype.getCurrentUpload();
       currentByte = (uploadInfo.signData.chunk_size*(uploadInfo.partNumber-1))+arg.loaded; 
       if(currentByte > uploadInfo.file.size){
         currentByte = uploadInfo.file.size;
  
positive.code: 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);
  }
  
  /*
  
negative.code: 
  //reportUploadedPart Success, only after last part is
  S3BrowserMultipart.prototype.reportedUploadedPart = function(arg){
    var uploadInfo=S3BrowserMultipart.prototype.getCurrentUpload();
  
    slice = S3BrowserMultipart.prototype.calculateSlice(uploadInfo.partNumber, 
      uploadInfo.signData.chunk_size,uploadInfo.file.size);
  