diff -urpw op_video/actions.inc /home/jonny/Desktop/op_video/actions.inc
--- op_video/actions.inc	2008-04-06 23:06:40.000000000 +0100
+++ /home/jonny/Desktop/op_video/actions.inc	2008-07-19 21:41:36.000000000 +0100
@@ -1,5 +1,5 @@
 <?php
-// $Id: actions.inc,v 1.1.2.4 2008/04/06 22:06:40 jbrown Exp $
+// $Id: actions.inc,v 1.1 2008-07-19 19:41:37 volker Exp $
 
 // Copyright 2008 Jonathan Brown
 
diff -urpw op_video/db.inc /home/jonny/Desktop/op_video/db.inc
--- op_video/db.inc	2008-06-21 15:32:56.000000000 +0100
+++ /home/jonny/Desktop/op_video/db.inc	2008-07-22 06:18:00.000000000 +0100
@@ -1,5 +1,5 @@
 <?php
-// $Id: db.inc,v 1.2.2.1 2008/06/21 14:32:56 jbrown Exp $
+// $Id: db.inc,v 1.3 2008-07-22 04:18:00 volker Exp $
 
 // Copyright 2007 Jonathan Brown
 
@@ -11,28 +11,33 @@ function _op_video_db_insert_id() {
 			return mysql_insert_id($active_db);
 		case 'mysqli':
 			return mysqli_insert_id($active_db);
+		case 'pgsql' :
+			return db_result(db_query("SELECT LASTVAL()"));
 	}
 }
 
 
 function _op_video_db_insert($table, $fields = NULL, $data = NULL) {
 
+	// changed insert styles from mysql specific to common sql
 	if(is_array($fields)) {
 		foreach($fields as $field => $format) {
 			if(isset($data[$field])) {
-				$sql_params[] = $field . ' = ' . $format;
+			  	$sql_fields[] = $field;
+				$sql_params[] = $format;
 				$sql_values[] = $data[$field];
 			}
 		}
 	}
 
 	if(count($sql_params)) {
-		$sql_params = 'SET ' . implode(',', $sql_params);
+		$sql_fields = implode(", ", $sql_fields);
+		$sql_params = implode(", ", $sql_params);
 
 		db_query("
 			INSERT INTO {{$table}}
-			$sql_params
-		",
+			($sql_fields)
+			VALUES ($sql_params)",
 			$sql_values
 		);
 	}
diff -urpw op_video/embed.inc /home/jonny/Desktop/op_video/embed.inc
--- op_video/embed.inc	2008-01-22 05:03:58.000000000 +0000
+++ /home/jonny/Desktop/op_video/embed.inc	2008-07-19 21:41:36.000000000 +0100
@@ -1,5 +1,5 @@
 <?php
-// $Id: embed.inc,v 1.1.2.1 2008/01/22 05:03:58 jbrown Exp $
+// $Id: embed.inc,v 1.1 2008-07-19 19:41:37 volker Exp $
 
 // Copyright 2007-2008 Jonathan Brown
 
diff -urpw op_video/feedapi_mapper.inc /home/jonny/Desktop/op_video/feedapi_mapper.inc
--- op_video/feedapi_mapper.inc	2008-07-03 20:29:02.000000000 +0100
+++ /home/jonny/Desktop/op_video/feedapi_mapper.inc	2008-07-19 21:41:36.000000000 +0100
@@ -1,5 +1,5 @@
 <?php
-// $Id: feedapi_mapper.inc,v 1.1.2.3 2008/07/03 19:29:02 jbrown Exp $
+// $Id: feedapi_mapper.inc,v 1.1 2008-07-19 19:41:37 volker Exp $
 
 // Copyright 2007-2008 Jonathan Brown
 
diff -urpw op_video/ffmpeg.inc /home/jonny/Desktop/op_video/ffmpeg.inc
--- op_video/ffmpeg.inc	2008-07-13 21:18:58.000000000 +0100
+++ /home/jonny/Desktop/op_video/ffmpeg.inc	2008-07-19 21:41:36.000000000 +0100
@@ -1,5 +1,5 @@
 <?php
-// $Id: ffmpeg.inc,v 1.3.2.15 2008/07/13 20:18:58 jbrown Exp $
+// $Id: ffmpeg.inc,v 1.2 2008-07-19 19:41:37 volker Exp $
 
 // Copyright 2007 Jonathan Brown
 
diff -urpw op_video/field.inc /home/jonny/Desktop/op_video/field.inc
--- op_video/field.inc	2008-06-23 17:18:19.000000000 +0100
+++ /home/jonny/Desktop/op_video/field.inc	2008-07-19 21:41:36.000000000 +0100
@@ -1,5 +1,5 @@
 <?php
-// $Id: field.inc,v 1.1.2.22 2008/06/23 16:18:19 jbrown Exp $
+// $Id: field.inc,v 1.1 2008-07-19 19:41:37 volker Exp $
 
 // Copyright 2007-2008 Jonathan Brown
 
diff -urpw op_video/file.inc /home/jonny/Desktop/op_video/file.inc
--- op_video/file.inc	2008-07-13 21:24:11.000000000 +0100
+++ /home/jonny/Desktop/op_video/file.inc	2008-07-22 06:18:00.000000000 +0100
@@ -1,5 +1,5 @@
 <?php
-// $Id: file.inc,v 1.3.2.20 2008/07/13 20:24:11 jbrown Exp $
+// $Id: file.inc,v 1.3 2008-07-22 04:18:00 volker Exp $
 
 // Copyright 2007-2008 Jonathan Brown
 
@@ -160,11 +160,10 @@ function _op_video_insert_file_acquire_u
     $filename = basename($components['path']);
   }
 
+  // changed from mysql specific to common sql
   db_query("
     INSERT INTO {op_video_files}
-    SET filename = '%s',
-      acquire_url = '%s'
-  ",
+    (filename, acquire_url) VALUES ('%s', '%s')",
     $filename,
     $acquire_url
   );
diff -urpw op_video/image_cache.inc /home/jonny/Desktop/op_video/image_cache.inc
--- op_video/image_cache.inc	2008-04-06 23:06:42.000000000 +0100
+++ /home/jonny/Desktop/op_video/image_cache.inc	2008-07-19 21:41:36.000000000 +0100
@@ -1,5 +1,5 @@
 <?php
-// $Id: image_cache.inc,v 1.1.2.5 2008/04/06 22:06:42 jbrown Exp $
+// $Id: image_cache.inc,v 1.1 2008-07-19 19:41:37 volker Exp $
 
 // Copyright 2007-2008 Jonathan Brown
 
@@ -72,16 +72,7 @@ function _op_video_render_image($video, 
 
 	$file_id = _op_video_insert_filepath($filepath);
 	
-	db_query("
-		INSERT INTO {op_video_image_cache}
-		SET video_id = %d,
-			image = '%s',
-			width = %d,
-			height = %d,
-			file_id = %d
-	",
-		$video['video_id'], $image, $width, $height, $file_id
-	);
+	db_query("INSERT INTO {op_video_image_cache} (video_id, image, width, height, file_id) VALUES (%d, '%s', %d, %d, %d)", $video['video_id'], $image, $width, $height, $file_id);
 	
 	return $filepath;
 }
diff -urpw op_video/jcarousel.inc /home/jonny/Desktop/op_video/jcarousel.inc
--- op_video/jcarousel.inc	2008-03-11 22:50:45.000000000 +0000
+++ /home/jonny/Desktop/op_video/jcarousel.inc	2008-07-19 21:41:36.000000000 +0100
@@ -1,5 +1,5 @@
 <?php
-// $Id: jcarousel.inc,v 1.1.2.2 2008/03/11 22:50:45 jbrown Exp $
+// $Id: jcarousel.inc,v 1.1 2008-07-19 19:41:37 volker Exp $
 
 // Copyright 2007 Jonathan Brown
 
diff -urpw op_video/layer.js /home/jonny/Desktop/op_video/layer.js
--- op_video/layer.js	2007-08-18 16:20:28.000000000 +0100
+++ /home/jonny/Desktop/op_video/layer.js	2008-07-19 21:41:36.000000000 +0100
@@ -1,4 +1,4 @@
-// $Id: layer.js,v 1.1 2007/08/18 15:20:28 jbrown Exp $
+// $Id: layer.js,v 1.2 2008-07-19 19:41:37 volker Exp $
 
 // Copyright 2007 Jonathan Brown
 
diff -urpw op_video/node_import.inc /home/jonny/Desktop/op_video/node_import.inc
--- op_video/node_import.inc	2008-02-03 15:55:05.000000000 +0000
+++ /home/jonny/Desktop/op_video/node_import.inc	2008-07-19 21:41:36.000000000 +0100
@@ -1,5 +1,5 @@
 <?php
-// $Id: node_import.inc,v 1.1.2.3 2008/02/03 15:55:05 jbrown Exp $
+// $Id: node_import.inc,v 1.1 2008-07-19 19:41:37 volker Exp $
 
 // Copyright 2007-2008 Jonathan Brown
 
diff -urpw op_video/openpackage.inc /home/jonny/Desktop/op_video/openpackage.inc
--- op_video/openpackage.inc	2008-07-10 17:49:42.000000000 +0100
+++ /home/jonny/Desktop/op_video/openpackage.inc	2008-07-19 21:41:36.000000000 +0100
@@ -1,5 +1,5 @@
 <?php
-// $Id: openpackage.inc,v 1.2.2.12 2008/07/10 16:49:42 jbrown Exp $
+// $Id: openpackage.inc,v 1.2 2008-07-19 19:41:37 volker Exp $
 
 // Copyright 2007 Jonathan Brown
 
diff -urpw op_video/op_video.info /home/jonny/Desktop/op_video/op_video.info
--- op_video/op_video.info	2008-07-14 00:45:12.000000000 +0100
+++ /home/jonny/Desktop/op_video/op_video.info	2008-07-19 21:41:36.000000000 +0100
@@ -1,11 +1,11 @@
-; $Id: op_video.info,v 1.2.4.1 2007/12/11 20:35:02 jbrown Exp $
+; $Id: op_video.info,v 1.2 2008-07-19 19:41:37 volker Exp $
 name = OpenPackage Video
-description = "General purpose video module."
+description = "General purpose video module. (Patched for PostgreSQL-Support)"
 package = Video
 dependencies = content
 
 ; Information added by drupal.org packaging script on 2008-07-13
-version = "5.x-3.11"
+version = "5.x-3.11.1"
 project = "op_video"
 datestamp = "1215992712"
 
diff -urpw op_video/op_video.install /home/jonny/Desktop/op_video/op_video.install
--- op_video/op_video.install	2008-06-21 00:07:21.000000000 +0100
+++ /home/jonny/Desktop/op_video/op_video.install	2008-07-22 06:17:58.000000000 +0100
@@ -1,5 +1,6 @@
 <?php
-// $Id: op_video.install,v 1.2.2.13 2008/06/20 23:07:21 jbrown Exp $
+
+// $Id: op_video.install,v 1.3 2008-07-22 04:17:59 volker Exp $
 
 // Copyright 2007-2008 Jonathan Brown
 
@@ -60,7 +61,7 @@ function op_video_install() {
 					dirty TINYINT(1) UNSIGNED NOT NULL DEFAULT '0',
 					obtained INT(10) UNSIGNED NOT NULL DEFAULT '0',
 					deleted INT(10) UNSIGNED NOT NULL DEFAULT '0',
-					acquire_url VARCHAR(255) NOT NULL,
+								acquire_url VARCHAR(255),
 					PRIMARY KEY (file_id),
 					KEY obtained (obtained),
 					KEY filesize (filesize),
@@ -114,13 +115,111 @@ function op_video_install() {
 			break;
 
 		case 'pgsql':
-			return;
+			db_query("
+				CREATE TABLE {op_videos} (
+					video_id serial,
+					duration int NOT NULL DEFAULT '0',
+					secret char(32) NOT NULL DEFAULT '',
+					source_file_id int NULL DEFAULT NULL,
+					flv_file_id int NULL DEFAULT NULL,
+					start_image_file_id int NULL DEFAULT NULL,
+					third_image_file_id int NULL DEFAULT NULL,
+					custom_image_file_id int NULL DEFAULT NULL,
+					preview_image text CHECK (preview_image IN ('start','third','custom')) NOT NULL DEFAULT 'third',
+					current_params_id int NOT NULL DEFAULT '0',
+					dirty_params_id int NOT NULL DEFAULT '0',
+					status text CHECK (status IN ('dirty','uploaded','idle')) NOT NULL DEFAULT 'dirty',
+					error text CHECK (error IN ('none','file not found','connection error','invalid credentials','insufficient credit','transcoding failed')) NOT NULL DEFAULT 'none',
+					upload_failed int NOT NULL DEFAULT '0',
+					uploaded int NOT NULL DEFAULT '0',
+					transcoder_version int NOT NULL DEFAULT '0',
+					nid int NOT NULL DEFAULT '0',
+					views int NOT NULL DEFAULT '0',
+					views_completed int NOT NULL DEFAULT '0',
+					downloads int NOT NULL DEFAULT '0',
+					PRIMARY KEY (video_id)
+				)
+			");
+			db_query("CREATE INDEX {op_videos}_status_idx ON {op_videos} (status)");
+			db_query("CREATE INDEX {op_videos}_transcoder_version_idx ON {op_videos} (transcoder_version)");
+			db_query("CREATE INDEX {op_videos}_views_idx ON {op_videos} (views)");
+			db_query("CREATE INDEX {op_videos}_downloads_idx ON {op_videos} (downloads)");
+			db_query("CREATE INDEX {op_videos}_error_idx ON {op_videos} (error)");
+			db_query("CREATE INDEX {op_videos}_nid_idx ON {op_videos} (nid)");
+			db_query("CREATE INDEX {op_videos}_secret_idx ON {op_videos} (secret)");
+			db_query("CREATE INDEX {op_videos}_views_completed_idx ON {op_videos} (views_completed)");
+			db_query("CREATE INDEX {op_videos}_duration_idx ON {op_videos} (duration)");
+			
+			db_query("
+				CREATE TABLE {op_video_files} (
+					file_id serial,
+					filename varchar(255) NOT NULL,
+					filepath varchar(255) NOT NULL,
+					filemime varchar(255) NOT NULL,
+					filesize int NOT NULL DEFAULT '0',
+					keepme int NOT NULL DEFAULT '0',
+					dirty int NOT NULL DEFAULT '0',
+					obtained int NOT NULL DEFAULT '0',
+					deleted int NOT NULL DEFAULT '0',
+					acquire_url varchar(255)NOT NULL DEFAULT '',
+					PRIMARY KEY (file_id)
+				)
+			");
+			db_query("CREATE INDEX {op_video_files}_obtained_idx ON {op_video_files} (obtained)");
+			db_query("CREATE INDEX {op_video_files}_filesize_idx ON {op_video_files} (filesize)");
+			db_query("CREATE INDEX {op_video_files}_filepath_idx ON {op_video_files} (filepath)");
+			db_query("CREATE INDEX {op_video_files}_deleted_idx ON {op_video_files} (deleted)");
+			
+			db_query("
+				CREATE TABLE {op_video_params} (
+					params_id serial,
+					width int NOT NULL DEFAULT '0',
+					frame_rate int NOT NULL DEFAULT '0',
+					key_interval NUMERIC(3,1) NOT NULL DEFAULT '0.0',
+					video_bitrate int NOT NULL DEFAULT '0',
+					audio_channels text CHECK (audio_channels IN ('0','1','2')) NOT NULL DEFAULT '0',
+					audio_sample_rate text CHECK (audio_sample_rate IN ('11025','22050','44100')) NOT NULL DEFAULT '11025',
+					audio_bitrate int NOT NULL DEFAULT '0',
+					max_duration int NOT NULL DEFAULT '0',
+					keep_source_file int NOT NULL DEFAULT '0',
+					PRIMARY KEY (params_id)
+				)
+			");
+			
+			db_query("
+				CREATE TABLE {op_video_image_cache} (
+					video_id int NOT NULL,
+					image text CHECK (image IN ('start','third','custom')) NOT NULL,
+					width int NOT NULL,
+					height int NOT NULL,
+					file_id int NOT NULL,
+					PRIMARY KEY (video_id, image, width, height)
+				)
+			");
+			
+			db_query("
+				CREATE TABLE {op_video_stats} (
+					type text CHECK (type IN ('view', 'view completed', 'download')) NOT NULL,
+					video_id int NOT NULL,
+					uid int NOT NULL,
+					sid char(32) NOT NULL,
+					ip_addr int NOT NULL,
+					timestamp int NOT NULL
+				)
+			");
+			db_query("CREATE INDEX {op_video_stats}_video_id_idx ON {op_video_stats} (video_id)");
+			db_query("CREATE INDEX {op_video_stats}_timestamp_idx ON {op_video_stats} (timestamp)");
+			db_query("CREATE INDEX {op_video_stats}_uid_idx ON {op_video_stats} (uid)");
+			db_query("CREATE INDEX {op_video_stats}_type_idx ON {op_video_stats} (type)");
+			break;
 	}
 }
 
-
 function _op_video_convert_timestamp_to_int(&$ret, $table, $field) {
 
+	switch ($GLOBALS['db_type']) {
+		case 'mysql' :
+		case 'mysqli' :
 	$ret[] = update_sql("
 		ALTER TABLE {{$table}}
 		ADD temp INT(10) UNSIGNED NOT NULL
@@ -145,8 +244,20 @@ function _op_video_convert_timestamp_to_
 		ALTER TABLE {{$table}}
 		DROP temp
 	");
-}
+		break;
+	case 'pgsql' :
+			$ret[] = update_sql("ALTER TABLE {{$table}} ADD temp int NOT NULL");
 
+			$ret[] = update_sql("UPDATE {{$table}} SET temp = " . strtotime($field));
+		
+			$ret[] = update_sql("ALTER TABLE {{$table}} CHANGE $field $field int NOT NULL DEFAULT '0'");
+		
+			$ret[] = update_sql("UPDATE {{$table}} SET $field = temp");
+		
+			$ret[] = update_sql("ALTER TABLE {{$table}} DROP temp");
+		break;
+	}
+}
 
 function op_video_update_1() {
 	$ret = array();
@@ -154,7 +265,6 @@ function op_video_update_1() {
 	switch($GLOBALS['db_type']) {
 		case 'mysql':
 		case 'mysqli':
-		
 			$ret[] = update_sql("
 				ALTER TABLE {op_videos}
 				CHANGE duration duration INT(10) UNSIGNED NOT NULL DEFAULT '0',
@@ -202,21 +312,67 @@ function op_video_update_1() {
 			");
 			
 			_op_video_convert_timestamp_to_int($ret, 'op_video_stats', 'timestamp');
+			break;
+		case 'pgsql' :
+			$ret[] = update_sql("
+							ALTER TABLE {op_videos}
+							CHANGE duration duration int NOT NULL DEFAULT '0',
+							CHANGE source_file_id source_file_id int NOT NULL,
+							CHANGE flv_file_id flv_file_id int NULL DEFAULT NULL,
+							CHANGE raw_image_1_file_id raw_image_1_file_id int NULL DEFAULT NULL,
+							CHANGE raw_image_2_file_id raw_image_2_file_id int NULL DEFAULT NULL,
+							CHANGE splash_file_id splash_file_id int NULL DEFAULT NULL,
+							CHANGE thumb_file_id thumb_file_id int NULL DEFAULT NULL,
+							CHANGE current_params_id current_params_id int NOT NULL DEFAULT '0',
+							CHANGE dirty_params_id dirty_params_id int NOT NULL DEFAULT '0',
+							CHANGE transcoder_version transcoder_version int NOT NULL DEFAULT '0',
+							CHANGE views views int NOT NULL DEFAULT '0',
+							CHANGE views_completed views_completed int NOT NULL DEFAULT '0',
+							CHANGE downloads downloads int NOT NULL DEFAULT '0'
+						");
+
+			_op_video_convert_timestamp_to_int($ret, 'op_videos', 'upload_failed');
+			_op_video_convert_timestamp_to_int($ret, 'op_videos', 'uploaded');
 
+			$ret[] = update_sql("
+							ALTER TABLE {op_video_files}
+							CHANGE filesize filesize int NOT NULL DEFAULT '0',
+							CHANGE keepme keepme int NOT NULL DEFAULT '0',
+							CHANGE dirty dirty int NOT NULL DEFAULT '0'
+						");
+
+			_op_video_convert_timestamp_to_int($ret, 'op_video_files', 'obtained');
+			_op_video_convert_timestamp_to_int($ret, 'op_video_files', 'deleted');
+
+			$ret[] = update_sql("
+							ALTER TABLE {op_video_params}
+							CHANGE width width int NOT NULL DEFAULT '0',
+							CHANGE frame_rate frame_rate int NOT NULL DEFAULT '0',
+							CHANGE key_interval key_interval NUMERIC(3, 1) NOT NULL DEFAULT '0.0',
+							CHANGE video_bitrate video_bitrate int NOT NULL DEFAULT '0',
+							CHANGE audio_bitrate audio_bitrate int NOT NULL DEFAULT '0',
+							CHANGE keep_source_file keep_source_file int NOT NULL DEFAULT '0',
+							ADD max_duration int NOT NULL DEFAULT '0'
+						");
+
+			$ret[] = update_sql("
+							ALTER TABLE {op_video_stats}
+							CHANGE type type text CHECK (type IN('view', 'view completed', 'download')) NOT NULL
+						");
+
+			_op_video_convert_timestamp_to_int($ret, 'op_video_stats', 'timestamp');
 			break;
 	}
 
 	return $ret;
 }
 
-
 function op_video_update_2() {
 	$ret = array();
 
 	switch($GLOBALS['db_type']) {
 		case 'mysql':
 		case 'mysqli':
-		
 			$ret[] = update_sql("
 				ALTER TABLE {op_videos}
 				CHANGE raw_image_1_file_id start_image_file_id INT(10) UNSIGNED NULL DEFAULT NULL,
@@ -239,38 +395,62 @@ function op_video_update_2() {
 			");
 
 			break;
+		case 'pgsql' :
+			$ret[] = update_sql("
+							ALTER TABLE {op_videos}
+							CHANGE raw_image_1_file_id start_image_file_id int NULL DEFAULT NULL,
+							CHANGE raw_image_2_file_id third_image_file_id int NULL DEFAULT NULL,
+							DROP splash_file_id,
+							DROP thumb_file_id,
+							ADD custom_image_file_id int DEFAULT NULL,
+							ADD preview_image text CHECK (preview_image IN ('start','third','custom')) NOT NULL DEFAULT 'third'
+						");
+
+			$ret[] = update_sql("
+							CREATE TABLE {op_video_image_cache} (
+								video_id int NOT NULL,
+								image text CHECK (image IN ('start','third','custom')) NOT NULL,
+								width int NOT NULL,
+								height int NOT NULL,
+								file_id int NOT NULL,
+								PRIMARY KEY (video_id, image, width, height)
+							)
+						");
+			break;
 	}
 	
 	return $ret;
 }
 
-
 function op_video_update_3() {
 	$ret = array();
 
 	switch($GLOBALS['db_type']) {
 		case 'mysql':
 		case 'mysqli':
-		
 			$ret[] = update_sql("
 				ALTER TABLE {op_videos}
 				CHANGE source_file_id source_file_id INT(10) UNSIGNED NULL DEFAULT NULL
 			");
 
 			break;
+		case 'pgsql' :
+			$ret[] = update_sql("
+							ALTER TABLE {op_videos}
+							CHANGE source_file_id source_file_id int NULL DEFAULT NULL
+						");
+			break;
 	}
 	
 	return $ret;
 }
 
-
 function op_video_update_4() {
 	$ret = array();
 
 	switch($GLOBALS['db_type']) {
 		case 'mysql':
 		case 'mysqli':
-		
 			$ret[] = update_sql("
 				ALTER TABLE {op_video_files}
 				CHANGE filesize filesize BIGINT(20) UNSIGNED NOT NULL DEFAULT '0',
@@ -281,19 +461,27 @@ function op_video_update_4() {
 			");
 
 			break;
+		case 'pgsql' :
+			$ret[] = update_sql("
+							ALTER TABLE {op_video_files}
+							CHANGE filesize filesize int NOT NULL DEFAULT '0',
+							CHANGE keepme keepme int NOT NULL DEFAULT '0',
+							CHANGE dirty dirty int NOT NULL DEFAULT '0',
+							CHANGE obtained obtained int NOT NULL DEFAULT '0',
+							CHANGE deleted deleted int NOT NULL DEFAULT '0'
+						");
+			break;
 	}
 	
 	return $ret;
 }
 
-
 function op_video_update_5() {
 	$ret = array();
 
 	switch($GLOBALS['db_type']) {
 		case 'mysql':
 		case 'mysqli':
-		
 			$ret[] = update_sql("
 				ALTER TABLE {op_videos}
 				ADD nid INT(10) UNSIGNED NOT NULL DEFAULT '0' AFTER transcoder_version
@@ -305,12 +493,16 @@ function op_video_update_5() {
 			");
 
 			break;
+		case 'pgsql' :
+			$ret[] = update_sql("ALTER TABLE {op_videos} ADD nid int NOT NULL DEFAULT '0'");
+
+			$ret[] = update_sql("CREATE INDEX {op_videos}_nid_idx ON {op_videos} (nid)");
+			break;
 	}
 	
 	return $ret;
 }
 
-
 function op_video_update_6() {
 
 	$result = db_query("
@@ -326,7 +518,6 @@ function op_video_update_6() {
 	
 	variable_set('op_video_field_params_ids', $params_ids);
 	
-	
 	$result = db_query("
 		SELECT name, value
 		FROM {variable}
@@ -343,26 +534,29 @@ function op_video_update_6() {
 	return array();
 }
 
-
 function op_video_update_7() {
 	$ret = array();
 
 	switch($GLOBALS['db_type']) {
 		case 'mysql':
 		case 'mysqli':
-		
 			$ret[] = update_sql("
         ALTER TABLE {op_video_files}
         ADD acquire_url VARCHAR(255) NOT NULL
       ");
 
 			break;
+		case 'pgsql' :
+			$ret[] = update_sql("
+			        ALTER TABLE {op_video_files}
+			        ADD acquire_url varchar(255) NOT NULL DEFAULT ''
+			      ");
+			break;
 	}
 	
 	return $ret;
 }
 
-
 function op_video_uninstall() {
 	variable_del('op_video_openpackage_url');
 	variable_del('op_video_dirs_configured');
@@ -382,3 +576,4 @@ function op_video_uninstall() {
   db_query('DROP TABLE {op_video_stats}');
 }
 
+
diff -urpw op_video/op_video.module /home/jonny/Desktop/op_video/op_video.module
--- op_video/op_video.module	2008-06-25 20:21:49.000000000 +0100
+++ /home/jonny/Desktop/op_video/op_video.module	2008-07-22 06:18:00.000000000 +0100
@@ -1,8 +1,8 @@
 <?php
-// $Id: op_video.module,v 1.2.2.34 2008/06/25 19:21:49 jbrown Exp $
 
-// Copyright 2007-2008 Jonathan Brown
+// $Id: op_video.module,v 1.3 2008-07-22 04:18:00 volker Exp $
 
+// Copyright 2007-2008 Jonathan Brown
 
 define("OP_VIDEO_DEFAULT_TRANSCODER", 'ffmpeg');
 
@@ -18,7 +18,14 @@ _op_video_require('transcoder.inc');
 _op_video_require('field.inc');
 _op_video_require('embed.inc');
 
-$modules = array('views', 'actions', 'token', 'node_import', 'services', 'feedapi_mapper');
+$modules = array (
+	'views',
+	'actions',
+	'token',
+	'node_import',
+	'services',
+	'feedapi_mapper'
+);
 
 foreach($modules as $module) {
 	if(module_exists($module)) {
@@ -26,13 +33,11 @@ foreach($modules as $module) {
 	}
 }
 
-
 function _op_video_require($filename) {
 	$path = drupal_get_path('module', 'op_video');
 	require_once './' . $path . '/' . $filename;
 }
 
-
 function op_video_perm() {
 
 	return array(
@@ -40,19 +45,15 @@ function op_video_perm() {
 	);
 }
 
-
 function op_video_menu($may_cache) {
 
 	if($may_cache) {
 		$items[] = array(
 			'path' => 'admin/settings/op_video',
-			'title' => t('Video'),
-			'description' => t('Video settings.'),
-			'callback' => 'drupal_get_form',
-			'callback arguments' => array('_op_video_admin_settings'),
-			'access' => user_access('administer video'),
-			'type' => MENU_NORMAL_ITEM
-		);
+			'title' => t('Video'
+		), 'description' => t('Video settings.'), 'callback' => 'drupal_get_form', 'callback arguments' => array (
+			'_op_video_admin_settings'
+		), 'access' => user_access('administer video'), 'type' => MENU_NORMAL_ITEM);
 
 		$items[] = array(
 			'path' => 'op_video/stream',
@@ -77,34 +78,18 @@ function op_video_menu($may_cache) {
 
     $items[] = array(
       'path' => 'op_video/path_autocomplete', 
-      'title' => t('File autocomplete'),
-      'callback' => '_op_video_path_autocomplete', 
-      'access' => TRUE, 
-      'type' => MENU_CALLBACK
-    );
-	}
-	else {
+			'title' => t('File autocomplete'
+		), 'callback' => '_op_video_path_autocomplete', 'access' => TRUE, 'type' => MENU_CALLBACK);
+	} else {
 		$items[] = array(
-			'path' => 'op_video/download/' . arg(2),
-			'callback' => '_op_video_download',
-			'callback arguments' => arg(2),
-			'access' => TRUE,
-			'type' => MENU_CALLBACK
-		);
+			'path' => 'op_video/download/' . arg(2
+		), 'callback' => '_op_video_download', 'callback arguments' => arg(2), 'access' => TRUE, 'type' => MENU_CALLBACK);
 		$items[] = array(
-			'path' => 'op_video/download/' . arg(2) . '/' . arg(3),
-			'callback' => '_op_video_download',
-			'callback arguments' => arg(2),
-			'access' => TRUE,
-			'type' => MENU_CALLBACK
-		);
+			'path' => 'op_video/download/' . arg(2
+		) . '/' . arg(3), 'callback' => '_op_video_download', 'callback arguments' => arg(2), 'access' => TRUE, 'type' => MENU_CALLBACK);
 		$items[] = array(
-			'path' => 'op_video/' . arg(1) . '/embed',
-			'callback' => '_op_video_embed',
-			'callback arguments' => arg(1),
-			'access' => TRUE,
-			'type' => MENU_CALLBACK
-		);
+			'path' => 'op_video/' . arg(1
+		) . '/embed', 'callback' => '_op_video_embed', 'callback arguments' => arg(1), 'access' => TRUE, 'type' => MENU_CALLBACK);
 		
 	  if(arg(0) == 'node' && arg(1) != 0) {
 
@@ -113,18 +98,17 @@ function op_video_menu($may_cache) {
 			$field = _op_video_get_first_video_field($node);
 			
 			if($field) {
-				$video = _op_video_load($node->{$field}[0]['video_id']);
+				$video = _op_video_load($node-> {
+					$field }
+				[0]['video_id']);
 
-				if($video && 
-					$content_type_info['fields'][$field]['allow_embed'])
-				{
+				if ($video && $content_type_info['fields'][$field]['allow_embed']) {
 					$items[] = array(
-						'path' => 'node/' . arg(1) . '/embed', 
-						'title' => t('Embed'),
-						'type' => MENU_LOCAL_TASK,
-						'callback' => '_op_video_embed_tab',
-						'callback arguments' => array($node, $video['video_id'])
-					);
+						'path' => 'node/' . arg(1
+					) . '/embed', 'title' => t('Embed'), 'type' => MENU_LOCAL_TASK, 'callback' => '_op_video_embed_tab', 'callback arguments' => array (
+						$node,
+						$video['video_id']
+					));
 				}
 			}
 	  }
@@ -133,7 +117,6 @@ function op_video_menu($may_cache) {
 	return $items;
 }
 
-
 function _op_video_admin_settings() {
 	_op_video_create_dirs();
 
@@ -145,14 +128,11 @@ function _op_video_admin_settings() {
 
 	$form['op_video_transcoder'] = array(
 		'#type' => 'radios',
-		'#title' => t('Transcoder'),
-		'#default_value' => $transcoder,
-		'#options' => array(
+		'#title' => t('Transcoder'
+	), '#default_value' => $transcoder, '#options' => array (
 			'ffmpeg' => 'Local FFmpeg installation', 
 			'openpackage.biz' => 'OpenPackage Media'
-		),
-    '#description' => t($description)
-	);
+	), '#description' => t($description));
 	
 	$form['ffmpeg'] = _op_video_ffmpeg_settings_fieldset($transcoder == 'ffmpeg');
 	$form['openpackage'] = _op_video_openpackage_settings_fieldset($transcoder == 'openpackage.biz');
@@ -160,7 +140,6 @@ function _op_video_admin_settings() {
 	return system_settings_form($form);
 }
 
-
 function _op_video_admin_settings_submit($form_id, $form_values) {
 
 	_op_video_openpackage_settings_form_submit($form_values);
@@ -168,9 +147,7 @@ function _op_video_admin_settings_submit
 	system_settings_form_submit($form_id, $form_values);
 }
 
-
-function _op_video_create_video($source_file_id = NULL, $dirty_params_id, $preview_image = 'third', 
-	$custom_image_file_id = NULL, $nid = NULL, $flv_file_id = NULL, $duration = NULL) {
+function _op_video_create_video($source_file_id = NULL, $dirty_params_id, $preview_image = 'third', $custom_image_file_id = NULL, $nid = NULL, $flv_file_id = NULL, $duration = NULL) {
 
 	if(!$source_file_id && !$flv_file_id)
 		return NULL;
@@ -182,10 +159,7 @@ function _op_video_create_video($source_
 	);
 
 	$data = array(
-		'secret' => md5(user_password()),
-		'dirty_params_id' => $dirty_params_id,
-		'preview_image' => $preview_image
-	);
+	'secret' => md5(user_password()), 'dirty_params_id' => $dirty_params_id, 'preview_image' => $preview_image);
 	
 	if($source_file_id) {
 		$fields['source_file_id'] = "%d";
@@ -218,7 +192,6 @@ function _op_video_create_video($source_
 	return _op_video_db_insert('op_videos', $fields, $data);
 }
 
-
 function _op_video_load($video) {
 
 	if(!is_array($video)) {
@@ -226,9 +199,7 @@ function _op_video_load($video) {
 		 	SELECT *
 			FROM {op_videos}
 			WHERE video_id = %d
-		",
-			$video
-		));
+				", $video));
 	}
 
 	if(!$video)
@@ -246,17 +217,13 @@ function _op_video_load($video) {
 	return $video;
 }
 
-
 function _op_video_update_custom_image($video, $file_id) {
 	
 	db_query("
   	UPDATE {op_videos}
 		SET custom_image_file_id = %d
 		WHERE video_id = %d
-	",
-		$file_id,
-		$video['video_id']
-	);
+		", $file_id, $video['video_id']);
 
 	if($video['custom_image_file_id'])
 		_op_video_delete_file_row($video['custom_image_file']);
@@ -264,7 +231,6 @@ function _op_video_update_custom_image($
 	_op_video_purge_image_cache($video['video_id']);
 }
 
-
 function _op_video_delete($video) {
 
 	if(!is_object($video))
@@ -276,9 +242,7 @@ function _op_video_delete($video) {
 	db_query("
 		DELETE FROM {op_videos}
 		WHERE video_id = %d
-	",
-		$video['video_id']
-	);
+		", $video['video_id']);
 
 	_op_video_delete_file_row($video['source_file']);
 	_op_video_delete_file_row($video['flv_file']);
@@ -291,40 +255,32 @@ function _op_video_delete($video) {
 	db_query("
 		DELETE FROM {op_video_stats}
 		WHERE video_id = %d
-	",
-		$video['video_id']
-	);
+		", $video['video_id']);
 	
 	_op_video_purge_image_cache($video['video_id']);
 }
 
-
 function _op_video_check_video_id($video_id) {
 	
 	return db_result(db_query("
 		SELECT COUNT(*)
 		FROM {op_videos}
 		WHERE video_id = %d
-	",
-		$video_id
-	));
+		", $video_id));
 }
 
-
 function _op_video_set_render_settings($settings = NULL) {
 	global $_op_video_render_settings;
 
 	$_op_video_render_settings = $settings;
 }
 
-
 function _op_video_get_render_setting($setting, $default) {
 	global $_op_video_render_settings;
 		
 	return isset($_op_video_render_settings[$setting]) ? $_op_video_render_settings[$setting] : $default;
 }
 
-
 function _op_video_render_video($video, $formatter, $nid = 0, $autostart = NULL) {
 
 	if($video['flv_file']) {
@@ -341,10 +297,8 @@ function _op_video_render_video($video, 
 				$output = _op_video_render_preview_image_layer($video);
 				break;
 		}
-	}
-	else if(variable_get('op_video_transcoder', OP_VIDEO_DEFAULT_TRANSCODER) == 'openpackage.biz' && 
-		user_access('administer video'))
-	{
+	} else
+		if (variable_get('op_video_transcoder', OP_VIDEO_DEFAULT_TRANSCODER) == 'openpackage.biz' && user_access('administer video')) {
 		switch($video['error']) {
 		
 			case 'none':
@@ -362,26 +316,31 @@ function _op_video_render_video($video, 
 				break;
 
 			case 'invalid credentials':
-				$output = '<p>' . t('Your credentials are invalid. Please enter your correct openpackage.biz !credlink.', 
-					array('!credlink' => l('credentials', 'admin/settings/op_video'))) . '</p>';
+					$output = '<p>' . t('Your credentials are invalid. Please enter your correct openpackage.biz !credlink.', array (
+						'!credlink' => l('credentials',
+						'admin/settings/op_video'
+					))) . '</p>';
 				break;
 
 			case 'insufficient credit':
-				$output = '<p>' . t('There was insufficient credit at the time of uploading to transcode this video. Please purchase more credit at !bizlink.', 
-					array('!bizlink' => l('openpackage.biz', 'http://openpackage.biz/'))) . '</p>';
+					$output = '<p>' . t('There was insufficient credit at the time of uploading to transcode this video. Please purchase more credit at !bizlink.', array (
+						'!bizlink' => l('openpackage.biz',
+						'http://openpackage.biz/'
+					))) . '</p>';
 				break;
 
 			case 'transcoding failed':
 				$output = '<p>' . t('Transcoding failed. Please try another video.') . '</p>';
 				break;
 		}
-	}
-	else {
+		} else {
 		switch($video['status']) {
 			case 'dirty':
 			case 'uploaded':
-				$output = '<p>' . t('Processing video... This may take a few minutes. Please !refreshlink.', 
-					array('!refreshlink'=> l('refresh', $_GET['q']))) . '</p>';
+					$output = '<p>' . t('Processing video... This may take a few minutes. Please !refreshlink.', array (
+						'!refreshlink' => l('refresh',
+						$_GET['q']
+					))) . '</p>';
 				break;
 
 			case 'idle':
@@ -393,7 +352,6 @@ function _op_video_render_video($video, 
 	return $output;
 }
 
-
 function rsi($parts, $glue = '') {
 	
 	if(!is_array($parts))
@@ -406,7 +364,6 @@ function rsi($parts, $glue = '') {
 	return implode($glue, $parts);
 }
 
-
 function _op_video_exec($command, &$output, &$result, $mode = 0) {
 
 	if($mode & OP_VIDEO_EXEC_MODE_TIME)
@@ -434,36 +391,30 @@ function _op_video_exec($command, &$outp
 			ob_flush();
 			flush();
 */
-		}
-		else {
+		} else {
 			system($command, $result);
 		}
-	}
-	else {
+	} else {
 		if(is_array($output)) {
 			$output[] = $command;
 			exec($command, $output, $result);
-		}
-		else {
+		} else {
 			exec($command, $notoutput, $result);
 		}
 	}
 }
 
-
 function op_video_cron() {
 
   _op_video_acquire_files();
 
-	if(variable_get('op_video_transcoder', OP_VIDEO_DEFAULT_TRANSCODER) == 'openpackage.biz' &&
-		variable_get('op_video_openpackage_return_method', OP_VIDEO_DEFAULT_OPENPACKAGE_RETURN_METHOD) == 'poll') {
+	if (variable_get('op_video_transcoder', OP_VIDEO_DEFAULT_TRANSCODER) == 'openpackage.biz' && variable_get('op_video_openpackage_return_method', OP_VIDEO_DEFAULT_OPENPACKAGE_RETURN_METHOD) == 'poll') {
 		_op_video_retrieve_videos();
 	}
 
 	_op_video_transcode_videos();
 }
 
-
 function _op_video_reset_cron() {
 	
 	if(variable_get('cron_semaphore', FALSE)) {
@@ -471,7 +422,6 @@ function _op_video_reset_cron() {
 	}
 }
 
-
 function _op_video_stream() {
 	$video = _op_video_load($_GET['file']);
 	$pos = (int)$_GET['pos'];
@@ -501,11 +451,9 @@ function _op_video_stream() {
 */
 }
 
-
 function _op_video_log($type, $video_id) {
 	global $user;
 
-
 	switch($type) {
 	
 		case 'view':
@@ -525,33 +473,19 @@ function _op_video_log($type, $video_id)
 		UPDATE {op_videos}
 		SET $field = $field + 1
 		WHERE video_id = %d
-	",
-		$video_id
-	);
+		", $video_id);
 
 	if(!db_affected_rows())
 		return;
 
-
+	// changed from mysql specific to common sql
 	db_query("
 		INSERT INTO {op_video_stats}
-		SET type = '%s',
-			video_id = %d,
-			uid = %d,
-			sid = '%s',
-			ip_addr = %d,
-			timestamp = %d
-	",
-		$type,
-		$video_id,
-		$user->uid,
-		session_id(),
-		ip2long($_SERVER['REMOTE_ADDR']),
-		time()
-	);
+			(type, video_id, uid, sid, ip_addr, timestamp) 
+			VALUES ('%s', %d, %d, '%s', %d, %d)
+			", $type, $video_id, $user->uid, session_id(), ip2long($_SERVER['REMOTE_ADDR']), time());
 }
 
-
 function _op_video_callback() {
 
 	switch($_POST['state']) {
@@ -571,7 +505,6 @@ function _op_video_callback() {
 	_op_video_log($type, $_POST['id']);
 }
 
-
 function _op_video_stat_count($type, $duration, $video_id) {
 
 	$count = (int)db_result(db_query("
@@ -581,16 +514,11 @@ function _op_video_stat_count($type, $du
 			video_id = %d AND
 			timestamp > %d
 		GROUP BY video_id
-	",
-		$type,
-		$video_id,
-		time() - $duration
-	));
+		", $type, $video_id, time() - $duration));
 	
 	return $count;
 }
 
-
 function _op_video_download_path($video) {
 	global $base_url;
 	
@@ -602,7 +530,6 @@ function _op_video_download_path($video)
 		return $path;
 }
 
-
 function _op_video_download($video_id) {
 	$video = _op_video_load($video_id);
 	
@@ -620,7 +547,6 @@ function _op_video_download($video_id) {
   file_transfer($video['source_file']['filepath'], $headers);
 }
 
-
 function _op_video_path_autocomplete() {
 	$args = func_get_args();
 	$path = implode('/', $args);
@@ -640,12 +566,10 @@ function _op_video_path_autocomplete() {
 	exit();
 }
 
-
 function _op_video_jpeg_quality_change($form_id, $form_values) {
 	_op_video_purge_image_cache();	// must be called with no args
 }
 
-
 function op_video_form_alter($form_id, &$form) {
 
 	switch($form_id) {
@@ -671,20 +595,18 @@ function op_video_form_alter($form_id, &
 	}
 }
 
-
 function op_video_node_operations() {
 
   $operations = array(
     'retranscode' => array(
-      'label' => t('Retranscode videos'),
+			'label' => t('Retranscode videos'
+		),
       'callback' => '_op_video_operations_retranscode'
-    )
-  );
+	));
   
   return $operations;
 }
 
-
 function _op_video_operations_retranscode($nodes) {
   
   foreach($nodes as $nid) {
@@ -695,18 +617,17 @@ function _op_video_operations_retranscod
 	  foreach($fields as $field) {
 	
 	    if($field)
-	     	_op_video_retranscode_video($node->{$field}[0]['video_id']);
+				_op_video_retranscode_video($node-> {
+				$field }
+			[0]['video_id']);
 	  }
   }
 }
 
-
 function theme_op_video_preview_image($image) {
 	return $image;
 }
 
-
 function theme_op_video_player($player) {
 	return $player;
 }
-
diff -urpw op_video/player.inc /home/jonny/Desktop/op_video/player.inc
--- op_video/player.inc	2008-04-06 23:06:42.000000000 +0100
+++ /home/jonny/Desktop/op_video/player.inc	2008-07-19 21:41:36.000000000 +0100
@@ -1,5 +1,5 @@
 <?php
-// $Id: player.inc,v 1.2.2.6 2008/04/06 22:06:42 jbrown Exp $
+// $Id: player.inc,v 1.2 2008-07-19 19:41:37 volker Exp $
 
 // Copyright 2007 Jonathan Brown
 
diff -urpw op_video/preview_image.inc /home/jonny/Desktop/op_video/preview_image.inc
--- op_video/preview_image.inc	2008-04-02 13:51:54.000000000 +0100
+++ /home/jonny/Desktop/op_video/preview_image.inc	2008-07-19 21:41:36.000000000 +0100
@@ -1,5 +1,5 @@
 <?php
-// $Id: preview_image.inc,v 1.1.2.3 2008/04/02 12:51:54 jbrown Exp $
+// $Id: preview_image.inc,v 1.1 2008-07-19 19:41:37 volker Exp $
 
 // Copyright 2007-2008 Jonathan Brown
 
diff -urpw op_video/services.inc /home/jonny/Desktop/op_video/services.inc
--- op_video/services.inc	2008-01-20 03:16:20.000000000 +0000
+++ /home/jonny/Desktop/op_video/services.inc	2008-07-19 21:41:36.000000000 +0100
@@ -1,5 +1,5 @@
 <?php
-// $Id: services.inc,v 1.1.2.1 2008/01/20 03:16:20 jbrown Exp $
+// $Id: services.inc,v 1.1 2008-07-19 19:41:37 volker Exp $
 
 /**
  * Implementation of hook_service().
diff -urpw op_video/token.inc /home/jonny/Desktop/op_video/token.inc
--- op_video/token.inc	2008-01-23 15:26:19.000000000 +0000
+++ /home/jonny/Desktop/op_video/token.inc	2008-07-19 21:41:36.000000000 +0100
@@ -1,5 +1,5 @@
 <?php
-// $Id: token.inc,v 1.1.2.4 2008/01/23 15:26:19 jbrown Exp $
+// $Id: token.inc,v 1.1 2008-07-19 19:41:37 volker Exp $
 
 // Copyright 2007-2008 Jonathan Brown
 
diff -urpw op_video/transcoder.inc /home/jonny/Desktop/op_video/transcoder.inc
--- op_video/transcoder.inc	2008-06-16 22:33:19.000000000 +0100
+++ /home/jonny/Desktop/op_video/transcoder.inc	2008-07-22 06:18:00.000000000 +0100
@@ -1,5 +1,5 @@
 <?php
-// $Id: transcoder.inc,v 1.2.2.6 2008/06/16 21:33:19 jbrown Exp $
+// $Id: transcoder.inc,v 1.3 2008-07-22 04:18:00 volker Exp $
 
 // Copyright 2007-2008 Jonathan Brown
 
@@ -311,16 +311,10 @@ function _op_video_transcode_videos() {
 
 	$transcoder = variable_get('op_video_transcoder', OP_VIDEO_DEFAULT_TRANSCODER);
 
-	$videos_result = db_query("
-  	SELECT *
-  	FROM {op_videos}
-  	INNER JOIN {op_video_files}
-  	  ON {op_videos}.source_file_id = {op_video_files}.file_id
-  	WHERE status = 'dirty'
-  	  AND acquire_url = ''
-		ORDER BY video_id
-		LIMIT 1
-	");
+	// added "OR" statement, because aquire could be NULL
+	$videos_result = db_query("SELECT * FROM {op_videos} " .
+			"INNER JOIN {op_video_files} ON {op_videos}.source_file_id = {op_video_files}.file_id " .
+			"WHERE status = 'dirty' AND (acquire_url = '' OR acquire_url IS NULL) ORDER BY video_id LIMIT 1");
 
 	while($video = db_fetch_array($videos_result)) {
 	
diff -urpw op_video/ufo.js /home/jonny/Desktop/op_video/ufo.js
--- op_video/ufo.js	2007-08-18 16:20:28.000000000 +0100
+++ /home/jonny/Desktop/op_video/ufo.js	2008-07-19 21:41:36.000000000 +0100
@@ -1,4 +1,4 @@
-// $Id: ufo.js,v 1.1 2007/08/18 15:20:28 jbrown Exp $
+// $Id: ufo.js,v 1.2 2008-07-19 19:41:37 volker Exp $
 
 /*	Unobtrusive Flash Objects (UFO) v3.21 <http://www.bobbyvandersluis.com/ufo/>
 	Copyright 2005, 2006 Bobby van der Sluis
diff -urpw op_video/views.inc /home/jonny/Desktop/op_video/views.inc
--- op_video/views.inc	2008-06-23 17:18:19.000000000 +0100
+++ /home/jonny/Desktop/op_video/views.inc	2008-07-19 21:41:36.000000000 +0100
@@ -1,5 +1,5 @@
 <?php
-// $Id: views.inc,v 1.1.2.7 2008/06/23 16:18:19 jbrown Exp $
+// $Id: views.inc,v 1.1 2008-07-19 19:41:37 volker Exp $
 
 // Copyright 2007-2008 Jonathan Brown
 
