diff -upN ../scrolltext/scrolltext.info .//scrolltext.info
--- ../scrolltext/scrolltext.info	2009-06-12 09:36:05.000000000 +0300
+++ .//scrolltext.info	2010-01-21 17:41:53.000000000 +0200
@@ -5,7 +5,7 @@ package = "Easy Module"
 version = "6.x-1.0-ALPHA1"
 core = "6.x"
 project = "scrolltext"
-
+dependencies[] = libraries
 
 ; Information added by drupal.org packaging script on 2009-06-12
 version = "6.x-1.0-alpha1"
diff -upN ../scrolltext/scrolltext.module .//scrolltext.module
--- ../scrolltext/scrolltext.module	2009-06-12 09:26:30.000000000 +0300
+++ .//scrolltext.module	2010-01-22 17:12:07.000000000 +0200
@@ -76,7 +76,7 @@ function scrolltext_settings_form() {
     '#type' => 'select',
     '#title' => t('Scroll Type'),
     '#default_value' => variable_get('scrolltext_behavior', 'Scroll'),
-    '#options' => array('Scroll'=>'Scroll','Slide'=>'Slide','Alternate'=>'Bouncing'),
+    '#options' => array('Scroll'=>'Scroll','Alternate'=>'Bouncing'),
     '#description' => t('Bouncing will not run if scrol text wider than scroll width.')
   ); 
   $form['scrolltext_general']['scrolltext_speed'] = array(
@@ -86,8 +86,8 @@ function scrolltext_settings_form() {
   ); 
   $form['scrolltext_general']['scrolltext_delay'] = array(
     '#type' => 'textfield',
-    '#title' => t('Scroll Delay (milisecond)'),
-    '#default_value' => variable_get('scrolltext_delay', '100')
+    '#title' => t('Scroll Delay (seconds)'),
+    '#default_value' => variable_get('scrolltext_delay', '0')
   ); 
   
   $form['scrolltext_general']['scrolltext_width'] = array(
@@ -130,10 +130,40 @@ function scrolltext_settings_form() {
     '#description' => t('<p>How many new title would you like to scrol? NOTE: greater number will cause you website slowly!</p>')
   ); 
   
+  $form['scrolltext_source']['scrolltext_link'] = array(
+    '#type' => 'radios',
+    '#title' => t('Link Text properties'),
+    '#default_value' => variable_get('scrolltext_link', 0),
+    '#options' => array( 
+      0      => 'don\'t use links', 
+      'node' => t('link to node'),
+      'url'  => t('custom link, enter below')
+    ),
+  );
+  $form['scrolltext_source']['link_url'] = array(
+    '#type' => 'textfield',
+    '#checked_value' => 1,
+    '#title' => t('Custom link URL'),
+    '#default_value' => variable_get('link_url', '')
+  ); 
   return system_settings_form($form);
 }
 
 /**
+ * Validate the scrolltext settings form submission.
+ *
+ */
+function scrolltext_settings_form_validate($form, &$form_state) { 
+  $item = array();
+  if($form_state['values']['scrolltext_link'] == 'url') {
+    $item['link_path'] = $form_state['values']['link_url'];
+    if (!trim($item['link_path']) || !menu_valid_path($item)) {
+      form_set_error('link_url', t('You must enter a valid url.'));
+    }
+  }
+}
+
+/**
  * Implementation of hook_block().
  *
  */
@@ -142,7 +172,7 @@ global $user;
   if ($op == 'list') 
   {
     $blocks[0]['info'] = 'ScrollText';
-    
+    $blocks[0]['cache'] = BLOCK_NO_CACHE;
     
     return $blocks;
   }
@@ -151,48 +181,86 @@ global $user;
   {
     switch($delta) {
       case 0:
-        $block['subject'] = t('<none>');
+      $path = drupal_get_path('module', 'scrolltext');
+      $library_path = libraries_get_path('jscroller2');
+      $scrolltext_direction= variable_get('scrolltext_direction', 'Left');
+      $scrolltext_behavior = variable_get('scrolltext_behavior', 'Scroll');
+      $scrolltext_width    = variable_get('scrolltext_width', '100%');
+      $scrolltext_height   = variable_get('scrolltext_height', '0');
+      $scrolltext_format   = variable_get('scrolltext_format', '');
+      $scrolltext_speed    = variable_get('scrolltext_speed', '10');
+      $scrolltext_delay    = variable_get('scrolltext_delay', '0');
+
+      $scrolltext_nodetype = variable_get('scrolltext_nodetype', "'page','story'");
+      $scrolltext_count    = variable_get('scrolltext_count', '10');
+      $scrolltext_link_type    = variable_get('scrolltext_link', 0);
+
+      $sql = "SELECT n.title, n.nid FROM {node} n WHERE n.status = 1 and n.type IN ($scrolltext_nodetype) "
+        ."ORDER BY n.created DESC LIMIT $scrolltext_count";	
+      $results = db_query($sql);
+
+      if ($results)
+      {
+        drupal_add_js($library_path .'/jscroller2.js');
+        drupal_add_css($library_path .'/jscroller2.css');
+
+        $block['subject'] = t('<!-- none -->');
         $block['content'] = '';
-        
-		$scrolltext_direction= variable_get('scrolltext_direction', 'Left');
-		$scrolltext_behavior = variable_get('scrolltext_behavior', 'Scroll');
-		$scrolltext_width    = variable_get('scrolltext_width', '100%');
-		$scrolltext_height   = variable_get('scrolltext_height', '0');
-		$scrolltext_format   = variable_get('scrolltext_format', '');
-		$scrolltext_speed    = variable_get('scrolltext_speed', '10');
-		$scrolltext_delay    = variable_get('scrolltext_delay', '100');		
-		
-		$scrolltext_nodetype = variable_get('scrolltext_nodetype', "'page','story'");
-		$scrolltext_count    = variable_get('scrolltext_count', '10');
-		
-		$sql = "SELECT n.title, n.nid FROM {node} n WHERE n.status = 1 and n.type IN ($scrolltext_nodetype) "
-			."ORDER BY n.created DESC LIMIT $scrolltext_count";	
-		$results = db_query($sql);
-
-		if ($results)
-		{
-
-			$block['content']  = "<DIV ID='scrolltext'>"
-								."<MARQUEE DIRECTION='$scrolltext_direction' "
-								."BEHAVIOR='$scrolltext_behavior' "
-								."WIDTH='$scrolltext_width' ";
-			if (strcmp ($scrolltext_height, '0') !== 0) 
-			{
-				$block['content'] .= "HEIGHT='$scrolltext_height' ";
-			}
-			$block['content'] .= "SCROLLAMOUNT='$scrolltext_speed' "
-								."SCROLLDELAY='$scrolltext_delay' " 
-								.">";
-			while ( $data = db_fetch_object($results) ) 
-			{
-				$block['content'] .= "<font style='$scrolltext_format'>$data->title</font>";
-				$block['content'] .= l(" Read more","node/$data->nid"). str_repeat('&nbsp',5);
-				if ($scrolltext_direction == 'Up' or $scrolltext_direction == 'Down')  $block['content'] .= "<br />\n"; 
-			}
-
-			$block['content'] .= '</MARQUEE></DIV>';
-		}
-		break;
+        $scroll_text = '';
+        $scrolltext_link = false;
+        $link = '';
+        while ( $data = db_fetch_object($results) ) 
+        {
+          switch ($scrolltext_link_type) {
+            case 'node':
+              $scrolltext_link = true;
+              $link = "node/$data->nid";
+            break;
+            case 'url':
+              $scrolltext_link = true;
+              $link = variable_get('link_url', '#');
+            break;
+            case 0:
+              $scrolltext_link = false;
+            break;
+          }
+
+          if ($scrolltext_link) {
+            $scroll_text .= l("$data->title", $link, array('attributes' => array('style' => $scrolltext_format))) . str_repeat('&nbsp;',5);
+            if ($scrolltext_direction == 'Up' or $scrolltext_direction == 'Down')  $scroll_text .= "<br />\n"; 
+          } else {
+            $scroll_text .= "<font style='$scrolltext_format'>$data->title</font>";
+            $scroll_text .= l(" Read more","node/$data->nid"). str_repeat('&nbsp;',5);
+            if ($scrolltext_direction == 'Up' or $scrolltext_direction == 'Down')  $scroll_text .= "<br />\n"; 
+          }
+        }
+        if ($scrolltext_height == 0)
+          $scrolltext_height = '1.5em';
+        else
+          $scrolltext_height .= 'px';
+
+        if ($scrolltext_delay == 0)
+          $scrolltext_delay = '';
+        else
+          $scrolltext_delay = "jscroller2_delay-$scrolltext_delay";
+
+        $behavior = '';
+        switch($scrolltext_behavior) {
+          case 'Scroll':
+            $behavior = '';
+          break;
+          case 'Alternate':
+            $behavior = 'jscroller2_alternate';
+          break;
+        }
+        $block['content']  = 
+          "<div id='scrolltext' style='height: $scrolltext_height; width: $scrolltext_width'>"
+            ."<div id='scroller' class='jscroller2_" . strtolower($scrolltext_direction) . " jscroller2_speed-$scrolltext_speed" . 0 . " $scrolltext_delay $behavior'>"
+              .$scroll_text
+            ."</div>"
+          ."</div>";
+      }
+      break;
     }
     return $block;
   }

