diff --git a/files/js/files.js b/files/js/files.js
index d4191215972bb6dc7237505af63d9985c2a0445b..7750842dd5a151e12239fef20d34f72f35b381c2 100644
--- a/files/js/files.js
+++ b/files/js/files.js
@@ -108,11 +108,7 @@ $(document).ready(function() {
 	});
 	
 	$('.download').live('click',function(event) {
-		var files='';
-		$('td.selection input:checkbox:checked').parent().parent().each(function(i,element){
-			files+=';'+$(element).attr('data-file');
-		});
-		files=files.substr(1);//remove leading ;
+		var files=getSelectedFiles('name').join(';');
 		
 		//send the browser to the download location
 		var dir=$('#dir').val()||'/';
@@ -122,11 +118,7 @@ $(document).ready(function() {
 	});
 	
 	$('.delete').live('click',function(event) {
-		var files='';
-		$('td.selection input:checkbox:checked').parent().parent().each(function(i,element){
-			files+=';'+$(element).attr('data-file');
-		});
-		files=files.substr(1);//remove leading ;
+		var files=getSelectedFiles('name').join(';');
 		
 		$.ajax({
 			url: 'ajax/delete.php',
@@ -282,4 +274,30 @@ var folderDropOptions={
 		});}
 		});
 	}
+}
+
+/**
+ * @brief get a list of selected files
+ * @param string property (option) the property of the file requested
+ * @return array
+ *
+ * possible values for property: name, mime
+ * if property is set, an array with that property for each file is returnd
+ * if it's ommited an array of objects with all properties is returned
+ */
+function getSelectedFiles(property){
+	var elements=$('td.selection input:checkbox:checked').parent().parent();
+	var files=[];
+	elements.each(function(i,element){
+		var file={
+			name:$(element).attr('data-file'),
+				  mime:$(element).attr('data-mime')
+		};
+		if(property){
+			files.push(file[property]);
+		}else{
+			files.push();
+		}
+	});
+	return files;
 }
\ No newline at end of file