--- project_release.module.orig	Thu Jan 18 15:30:46 2007
+++ project_release.module	Wed Mar 28 19:36:25 2007
@@ -1531,3 +1531,55 @@
     return l($link_text, $link_path);
   }
 }
+
+function project_release_file_download($filename)
+{
+	$fn = $filename;
+	$file = file_create_path($filename);
+	$result = db_query("SELECT f.* FROM {project_release_nodes} f WHERE file_path = '%s'", $file);
+	if($file = db_fetch_object($result))
+	{
+		if(user_access('view uploaded files'))
+		{
+			$node = node_load($file->nid);
+			if(node_access('view', $node))
+			{
+			
+				//Download Count
+				
+			  $message = t('%file was downloaded', array('%file' => $fn));
+		      watchdog('download', $message, WATCHDOG_NOTICE);		
+		      // If the file is already added, just increment the count, 
+		      // otherwise add the file with count 1
+		      if(db_result(db_query("SELECT filename FROM {file_downloads} WHERE filename = '%s'", $fn))) {
+		        db_query("UPDATE {file_downloads} SET count = count+1, timestamp = %d  WHERE filename = '%s'", time(), $fn);
+		      } 
+			  else {
+		        db_query("INSERT INTO {file_downloads} (filename, count, timestamp) VALUES ('%s', 1,%d)", $fn, time());
+			  }			
+				
+				//End Download Count
+			
+				$type = mime_header_encode($file->filemime);
+				return array(
+					'Content-Type: '. $type,
+					'Content-Length: '. $file->filesize,
+					'Content-disposition: filename="' . $fn . '"'
+				);
+			}	
+		
+			else
+			{
+				$message = t('Failed to download %file', array('%file' => $file)); 	
+				watchdog('download', $message, WATCHDOG_WARNING);
+				return -1;
+			}
+		}
+		else
+		{
+			$message = t('Failed to download %file', array('%file' => $file)); 	
+		    watchdog('download', $message, WATCHDOG_WARNING);
+			return -1;
+		}
+	}
+}
