| 
														
															@@ -1,6 +1,6 @@ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 /*! 
														 | 
														
														 | 
														
															 /*! 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  * @copyright Copyright © Kartik Visweswaran, Krajee.com, 2014 
														 | 
														
														 | 
														
															  * @copyright Copyright © Kartik Visweswaran, Krajee.com, 2014 
														 | 
													
												
											
												
													
														| 
														 | 
														
															- * @version 4.1.1 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ * @version 4.1.2 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  * 
														 | 
														
														 | 
														
															  * 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  * File input styled for Bootstrap 3.0 that utilizes HTML5 File Input's advanced  
														 | 
														
														 | 
														
															  * File input styled for Bootstrap 3.0 that utilizes HTML5 File Input's advanced  
														 | 
													
												
											
												
													
														| 
														 | 
														
															  * features including the FileReader API.  
														 | 
														
														 | 
														
															  * features including the FileReader API.  
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -389,7 +389,7 @@ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             if (self.showCancel) { 
														 | 
														
														 | 
														
															             if (self.showCancel) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 self.$container.find('.fileinput-cancel').removeClass('hide'); 
														 | 
														
														 | 
														
															                 self.$container.find('.fileinput-cancel').removeClass('hide'); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             } 
														 | 
														
														 | 
														
															             } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            self.$element.trigger('filelock', [self.filestack]); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            self.$element.trigger('filelock', [self.filestack, self.uploadExtraData]); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         }, 
														 | 
														
														 | 
														
															         }, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         unlock: function() { 
														 | 
														
														 | 
														
															         unlock: function() { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             var self = this; 
														 | 
														
														 | 
														
															             var self = this; 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -400,7 +400,7 @@ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             if (self.showRemove) { 
														 | 
														
														 | 
														
															             if (self.showRemove) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 self.$container.find('.fileinput-remove').removeClass('hide'); 
														 | 
														
														 | 
														
															                 self.$container.find('.fileinput-remove').removeClass('hide'); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             } 
														 | 
														
														 | 
														
															             } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            self.$element.trigger('fileunlock', [self.filestack]); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            self.$element.trigger('fileunlock', [self.filestack, self.uploadExtraData]); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         }, 
														 | 
														
														 | 
														
															         }, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         refresh: function (options) { 
														 | 
														
														 | 
														
															         refresh: function (options) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             var self = this, $el = self.$element, 
														 | 
														
														 | 
														
															             var self = this, $el = self.$element, 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -888,7 +888,7 @@ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                     if (!allFiles) { 
														 | 
														
														 | 
														
															                     if (!allFiles) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                         self.lock(); 
														 | 
														
														 | 
														
															                         self.lock(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                     } 
														 | 
														
														 | 
														
															                     } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                    self.$element.trigger('filepreupload', [formdata, previewId, i]) 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                    self.$element.trigger('filepreupload', [formdata, self.uploadExtraData, previewId, i]) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 }, 
														 | 
														
														 | 
														
															                 }, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 success: function(data, textStatus, jqXHR) { 
														 | 
														
														 | 
														
															                 success: function(data, textStatus, jqXHR) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                     setTimeout(function() { 
														 | 
														
														 | 
														
															                     setTimeout(function() { 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -897,10 +897,10 @@ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                             $btnUpload.hide(); 
														 | 
														
														 | 
														
															                             $btnUpload.hide(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                             $btnDelete.hide(); 
														 | 
														
														 | 
														
															                             $btnDelete.hide(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                             self.filestack[i] = undefined; 
														 | 
														
														 | 
														
															                             self.filestack[i] = undefined; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                            self.$element.trigger('fileuploaded', [formdata, previewId, i]); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                            self.$element.trigger('fileuploaded', [formdata, self.uploadExtraData, previewId, i]); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                         } else { 
														 | 
														
														 | 
														
															                         } else { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                             setIndicator('indicatorError', 'indicatorErrorTitle'); 
														 | 
														
														 | 
														
															                             setIndicator('indicatorError', 'indicatorErrorTitle'); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                            self.showUploadError(data.error, formdata, previewId, i, 'fileuploaderror'); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                            self.showUploadError(data.error, formdata, self.uploadExtraData, previewId, i); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                         } 
														 | 
														
														 | 
														
															                         } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                         updateProgress(); 
														 | 
														
														 | 
														
															                         updateProgress(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                         resetActions(); 
														 | 
														
														 | 
														
															                         resetActions(); 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -910,9 +910,9 @@ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                     setIndicator('indicatorError', 'indicatorErrorTitle'); 
														 | 
														
														 | 
														
															                     setIndicator('indicatorError', 'indicatorErrorTitle'); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                     if (allFiles) { 
														 | 
														
														 | 
														
															                     if (allFiles) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                         var cap = files[i].name; 
														 | 
														
														 | 
														
															                         var cap = files[i].name; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                        self.showUploadError('<b>' + cap + '</b>: ' + errorThrown, formdata, previewId, i, 'fileuploaderror'); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                        self.showUploadError('<b>' + cap + '</b>: ' + errorThrown, formdata, self.uploadExtraData, previewId, i); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                     } else { 
														 | 
														
														 | 
														
															                     } else { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                        self.showUploadError(errorThrown, formdata, previewId, i, 'fileuploaderror'); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                        self.showUploadError(errorThrown, formdata, self.uploadExtraData, previewId, i); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                     } 
														 | 
														
														 | 
														
															                     } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                     updateProgress(); 
														 | 
														
														 | 
														
															                     updateProgress(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                     resetActions(); 
														 | 
														
														 | 
														
															                     resetActions(); 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -970,6 +970,7 @@ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                             } else { 
														 | 
														
														 | 
														
															                             } else { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                                 self.reset(); 
														 | 
														
														 | 
														
															                                 self.reset(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                             } 
														 | 
														
														 | 
														
															                             } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                            self.$element.trigger('filebatchuploadsuccess', [self.filestack, self.uploadExtraData]); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                         } else { 
														 | 
														
														 | 
														
															                         } else { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                             self.$preview.find('.file-preview-frame').each(function() { 
														 | 
														
														 | 
														
															                             self.$preview.find('.file-preview-frame').each(function() { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                                 var $thumb = $(this), key = $thumb.attr('data-fileindex'); 
														 | 
														
														 | 
														
															                                 var $thumb = $(this), key = $thumb.attr('data-fileindex'); 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -991,16 +992,17 @@ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                                     self.filestack[key] = undefined; 
														 | 
														
														 | 
														
															                                     self.filestack[key] = undefined; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                                 } 
														 | 
														
														 | 
														
															                                 } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                             }); 
														 | 
														
														 | 
														
															                             }); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                            self.showUploadError(data.error, formdata, null, null, 'filebatchuploaderror'); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                            self.showUploadError(data.error, formdata, self.uploadExtraData, null, null, 'filebatchuploaderror'); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                         } 
														 | 
														
														 | 
														
															                         } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                     }, 100); 
														 | 
														
														 | 
														
															                     }, 100); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 }, 
														 | 
														
														 | 
														
															                 }, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 complete: function () { 
														 | 
														
														 | 
														
															                 complete: function () { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                     self.setProgress(100); 
														 | 
														
														 | 
														
															                     self.setProgress(100); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                     self.unlock(); 
														 | 
														
														 | 
														
															                     self.unlock(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                    self.$element.trigger('filebatchuploadcomplete', [self.filestack, self.uploadExtraData]); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 }, 
														 | 
														
														 | 
														
															                 }, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 error: function(jqXHR, textStatus, errorThrown) { 
														 | 
														
														 | 
														
															                 error: function(jqXHR, textStatus, errorThrown) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                    self.showUploadError(errorThrown, formdata, null, null, 'filebatchuploaderror'); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                    self.showUploadError(errorThrown, formdata, self.uploadExtraData, null, null, 'filebatchuploaderror'); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                     self.uploadFileCount = total - 1; 
														 | 
														
														 | 
														
															                     self.uploadFileCount = total - 1; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                     self.$preview.find('.file-preview-frame').removeClass('file-uploading'); 
														 | 
														
														 | 
														
															                     self.$preview.find('.file-preview-frame').removeClass('file-uploading'); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 } 
														 | 
														
														 | 
														
															                 } 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -1025,16 +1027,16 @@ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 $error.hide(); 
														 | 
														
														 | 
														
															                 $error.hide(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             } 
														 | 
														
														 | 
														
															             } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         }, 
														 | 
														
														 | 
														
															         }, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        showUploadError: function (msg, file, previewId, index) { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        showUploadError: function (msg, file, extraData, previewId, index) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             var self = this, $error = self.$errorContainer, $el = self.$element,  
														 | 
														
														 | 
														
															             var self = this, $error = self.$errorContainer, $el = self.$element,  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                ev = arguments.length > 4 ? arguments[4] : 'fileerror'; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                ev = arguments.length > 4 ? arguments[4] : 'fileuploaderror'; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             if ($error.find('ul').length == 0) { 
														 | 
														
														 | 
														
															             if ($error.find('ul').length == 0) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 $error.html('<ul class="text-left"><li>' + msg + '</li></ul>'); 
														 | 
														
														 | 
														
															                 $error.html('<ul class="text-left"><li>' + msg + '</li></ul>'); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             } else { 
														 | 
														
														 | 
														
															             } else { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 $error.find('ul').append('<li>' + msg + '</li>'); 
														 | 
														
														 | 
														
															                 $error.find('ul').append('<li>' + msg + '</li>'); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             } 
														 | 
														
														 | 
														
															             } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             $error.fadeIn(800); 
														 | 
														
														 | 
														
															             $error.fadeIn(800); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            $el.trigger(ev, [file, previewId, index]); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            $el.trigger(ev, [file, extraData, previewId, index]); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             addCss(self.$container, 'has-error'); 
														 | 
														
														 | 
														
															             addCss(self.$container, 'has-error'); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             return true; 
														 | 
														
														 | 
														
															             return true; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         }, 
														 | 
														
														 | 
														
															         }, 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -1178,7 +1180,7 @@ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 ctr = self.filestack.length, 
														 | 
														
														 | 
														
															                 ctr = self.filestack.length, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 throwError = function(msg, file, previewId, index) { 
														 | 
														
														 | 
														
															                 throwError = function(msg, file, previewId, index) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                     self.previewDefault(file, previewId, true); 
														 | 
														
														 | 
														
															                     self.previewDefault(file, previewId, true); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                    return self.isUploadable ? self.showUploadError(msg, file, previewId, index) : self.showError(msg, file, previewId, index); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                    return self.isUploadable ? self.showUploadError(msg, file, self.uploadExtraData, previewId, index) : self.showError(msg, file, previewId, index); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 }; 
														 | 
														
														 | 
														
															                 }; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             function readFile(i) { 
														 | 
														
														 | 
														
															             function readFile(i) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 if (isEmpty($el.attr('multiple'))) { 
														 | 
														
														 | 
														
															                 if (isEmpty($el.attr('multiple'))) { 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -1311,7 +1313,7 @@ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 numFiles = !isEmpty(files) ? (files.length + self.initialPreviewCount) : 1, tfiles, 
														 | 
														
														 | 
														
															                 numFiles = !isEmpty(files) ? (files.length + self.initialPreviewCount) : 1, tfiles, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 ctr = self.filestack.length, isAjaxUpload = (self.isUploadable && ctr != 0), 
														 | 
														
														 | 
														
															                 ctr = self.filestack.length, isAjaxUpload = (self.isUploadable && ctr != 0), 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 throwError = function(msg, file, previewId, index) { 
														 | 
														
														 | 
														
															                 throwError = function(msg, file, previewId, index) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                    return self.isUploadable ? self.showUploadError(msg, file, previewId, index) : self.showError(msg, file, previewId, index); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                    return self.isUploadable ? self.showUploadError(msg, file, self.uploadExtraData, previewId, index) : self.showError(msg, file, previewId, index); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 }; 
														 | 
														
														 | 
														
															                 }; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             self.resetUpload(); 
														 | 
														
														 | 
														
															             self.resetUpload(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															              
														 | 
														
														 | 
														
															              
														 |