diff -urpN render/plugins/jitr-README.txt render2/plugins/jitr-README.txt
--- render/plugins/jitr-README.txt	1970-01-01 12:00:00.000000000 +1200
+++ render2/plugins/jitr-README.txt	2008-05-23 15:30:24.919366700 +1200
@@ -0,0 +1,30 @@
+
+
+-- INSTALLATION --
+
+* Create a new directory sites/all/modules/render/jitr/
+
+* Copy the following files into sites/all/modules/render/jitr/:
+
+  * heading.php
+  * jquery.jitr.js
+  
+* Copy the following files into sites/all/modules/render/plugins/:
+
+  * jitr.inc
+  * jitr.png
+  * jitr-README.txt
+
+* Upload your .ttf or .otf font files at admin/settings/render/manage
+
+
+
+-- CREDITS --
+
+jitr plugin written by Patrick Harris (patrickpaganini at gmail)
+Uses 'Dynamic Text Replacement'
+  http://www.alistapart.com/articles/dynatext by Stewart Rosenberger
+and 'jitr' jQuery script by Jamie Thompson
+  http://jamazon.co.uk/projects/2008/03/17/jquery-image-text-replacement-work-in-progress
+
+
diff -urpN render/plugins/jitr.inc render2/plugins/jitr.inc
--- render/plugins/jitr.inc	1970-01-01 12:00:00.000000000 +1200
+++ render2/plugins/jitr.inc	2008-05-23 21:40:48.574566700 +1200
@@ -0,0 +1,256 @@
+<?php
+
+/**
+ * @file
+ * Dynamic Rendering plugin for jQuery and jitr.
+ * Based on 'Dynamic Text Replacement' http://www.alistapart.com/articles/dynatext by Stewart Rosenberger
+ * and 'jitr' jQuery script by Jamie Thompson http://jamazon.co.uk/projects/2008/03/17/jquery-image-text-replacement-work-in-progress
+ * Drupal plugin module by Patrick Harris patrickpaganini at gmail 
+ */
+
+/**
+ * Return plugin information.
+ * 
+ * @return array
+ *   An array containing the keys
+ *   - type: The type of this plugin. @see render_get_types().
+ *   - name: The filename of this plugin (internal). Also used to display a
+ *     plugin image in plugins/<name>.png.
+ *   - title: The official title of this plugin.
+ *   - url: An URI of the website of this plugin.
+ *   - dependencies: An array of filenames that have to exist in the plugin
+ *     folder.
+ *   - file_masks: An array containing regular expressions matching
+ *     corresponding font files.
+ *   - properties: An array of plugin-specific properties to store in the
+ *     database.
+ */
+function jitr_render_info() {
+  return array(
+    'type' => 'text',
+    'name' => 'jitr',
+    'title' => 'jitr',
+    'url' => 'http://drupal.org/project/render',
+    'dependencies' => array('jquery.jitr.js', 'heading.php'),
+    'file_masks' => array('.+\.ttf', '.+\.otf'),
+    'properties' => array('font', 'bgcolor'),
+  );
+}
+
+/**
+ * Return plugin help on render/manage.
+ * 
+ * @return string
+ *   A translatable string instructing the user how to use this plugin or
+ *   an empty string to hide plugin instructions.
+ */
+function jitr_render_help() {
+  return t('
+  <p>Upload any ttf or otf (True Type Font or Open Type Font) font file here.</p>'
+  );
+}
+
+/**
+ * Perform plugin installation checks executed on render/addrule.
+ */
+function jitr_render_setup() {
+  // Check or create working 'render' directory in files folder.
+  $dir = file_create_path('render');
+  if (!file_check_directory($dir, 1)) {
+    drupal_set_message(t('The jitr working directory !dir is not writable.', array('!dir' => $dir)), 'error');
+    return FALSE;
+  }
+  // Check to see if 'heading.php' exists in the jitr plugin folder
+  $plugindir = render_find_render('jitr').'/heading.php';
+  if (!file_exists($plugindir)) {
+    drupal_set_message(t('The file "heading.php" does not exist in the jitr module folder.'), 'error');
+    return FALSE;
+  }
+  // Check or create cache directory.
+  $dir = file_create_path('render/jitrcache');
+  if (!file_check_directory($dir, 1)) {
+    drupal_set_message(t('The jitr cache directory !dir is not writable.', array('!dir' => $dir)), 'error');
+    return FALSE;
+  }
+  
+  return TRUE;
+}
+
+/**
+ * Returns font(s) and colors of a text replacement rule.
+ * 
+ * @param array $rule
+ *   A text replacement rule.
+ * 
+ * @return array $fontstyle
+ *   An array containing the keys
+ *   - font
+ *   - bgcolor
+ */
+function jitr_render_rules($rule) {
+  $fontstyle = array();
+  $fontstyle['font'] =  $rule['font']; #substr($rule['font'], strrpos($rule['font'], '/') + 1);
+  $fontstyle['bgcolor'] = $rule['bgcolor'];
+  // necessary to add this line, or render module throws an error
+  $fontstyle['colors'] = array();
+
+  return $fontstyle;
+}
+
+/**
+ * Return custom rule properties.
+ * 
+ * @param array $form
+ *   A rule edit form, passed by reference.
+ * @param array $edit
+ *   User values for the form.
+ */
+function jitr_render_rule(&$form, $edit) {
+  $form['font'] = array(
+    '#type' => 'fieldset',
+    '#title' => t('Font'),
+  );
+  $form['font']['font'] = array(
+    '#title' => t('Font'),
+    '#type' => 'item',
+    '#description' => t("Select a font to use for this rule."),
+    '#required' => TRUE,
+  );
+  $form['font']['font']['fonts'] = render_font_select($edit, 'font');
+  
+  $form['color'] = array(
+    '#type' => 'fieldset',
+    '#title' => t('Colors'),
+    '#collapsible' => FALSE,
+    '#collapsed' => FALSE,
+    '#description' => t('Use a hexadecimal (CSS-style) color value preceeded by &quot;<code>#</code>&quot; to define background color. Text color will be set automatically.'),
+  );
+  $form['color']['bgcolor'] = array(
+    '#type' => 'textfield',
+    '#title' => t('Background Color'),
+    '#size' => 12,
+    '#default_value' => $edit['bgcolor'] ? $edit['bgcolor'] : '#ffffff',
+  );
+}
+
+/**
+ * Render a single Javascript text replacement rule.
+ * 
+ * @param array $rule
+ *   A user-generated rule either containing custom rule properties or
+ *   a default rule containing the keys selector, font, color, linkcolor,
+ *   hovercolor, bgcolor and fontsize as they are needed for font preview
+ *   in rule setup.
+ * @see render_edit_rule();
+ * 
+ * @return string
+ *   A single rendered JavaScript rule for this plugin.
+ */
+function jitr_render_render_rule_js($rule) {
+  
+  $properties = array();
+  // Convert spaces in filename.
+  $fontpath = base_path() . str_replace('%2F', '/', rawurlencode($rule['font']));
+  $properties['font']      = $fontpath;
+  $properties['bgcolor']     = $rule['bgcolor'];
+  // remove '#' from color
+  if(substr($properties['bgcolor'],0,1) == '#') {$properties['bgcolor'] = substr($properties['bgcolor'],1);}
+  $jitr_dir = render_find_render('jitr').'/heading.php';
+  $jitr_cache = file_directory_path().'/render/jitrcache';
+  $output = '$("'. $rule['selector'] .'").jitr("'. $properties['font'] .'", "'. $properties['bgcolor'] .'", "'.$jitr_dir.'", "'.$jitr_cache.'")';
+  
+  return $output;
+}
+
+/**
+ * Wrap execution handler around JavaScript rules.
+ * 
+ * @param array $rules
+ *   An array of all current rules for this plugin with already rendered
+ *   JavaScript string in each element.
+ * 
+ * @return string
+ *   A complete JavaScript to execute this plugin.
+ */
+function jitr_render_wrap_rules($rules) {
+  $output = '';
+  if (is_array($rules)) {
+    $output .= "jQuery(document).ready(function() {\n \n";
+    foreach ($rules as $rule) {
+      $output .= '  '. $rule ."\n";
+    }
+    $output .= "\n $('.content img').each(function(){
+      if($(this).attr('align')) $(this).addClass($(this).attr('align'));
+    });
+
+});\n";
+  }
+  
+  return $output;
+}
+
+/**
+ * Render a CSS file for this plugin.
+ * 
+ * @param array $rule
+ *   A user-generated rule either containing custom rule properties or
+ *   a default rule containing the keys selector, font, color, linkcolor,
+ *   hovercolor, bgcolor and fontsize as they are needed for font preview
+ *   in rule setup.
+ * @see render_edit_rule();
+ * 
+ * @return string
+ *   A stylesheet for this plugin.
+ */
+function jitr_render_css_screen($rules) {
+  $output = "
+/* These jitr \"decoy\" styles are used to hide the browser text before it is replaced. */ 
+";
+  $count=0;
+  foreach ($rules as $rule) {
+    if ($count) {$output.=', ';}
+    $output .= '.js '.$rule['selector'];
+    $count++;
+    }
+    $output .= " {
+  visibility: hidden; }
+";
+
+  
+  return $output;
+}
+
+/**
+ * Load plugin JavaScript and stylesheet files.
+ * 
+ * Perform all necessary actions to load this plugin on all pages.
+ */
+function jitr_render_load() {
+  $plugindir = render_find_render('jitr');
+  if (!$plugindir) {
+    $info = jitr_render_info();
+    $link_jitr   = l($info['title'], $info['url']);
+    $link_readme = l('jitr-README.txt', drupal_get_path('module', 'render') .'/plugins/jitr-README.txt');
+    drupal_set_message(t('The jitr library is not installed correctly. Please download it from !link and follow installation instructions in !readme.', array('!link' => $link_jitr, '!readme' => $link_readme)), 'error');
+  }
+  else {
+    drupal_add_js($plugindir .'/jquery.jitr.js');
+    #drupal_add_css($plugindir .'/sIFR-print.css', 'module', 'print');
+  }
+}
+
+
+/**
+ * delete all files in the jitr cache directory
+ * Note: Not sure where to put this yet, so at the moment it is not used.
+ */
+function _jitr_delete() {
+  $path = file_directory_path().'/render/jitrcache';
+  $listing = $path .'/*';
+  foreach (glob($listing) as $file) {
+    if (is_file($file) === TRUE) {
+      @unlink($file);
+    }
+  }
+  return;
+}
\ No newline at end of file
Files render/plugins/jitr.png and render2/plugins/jitr.png differ
