diff -ur /home/2/v/venturas/adsense/adsense.module adsense/adsense.module
--- /home/2/v/venturas/adsense/adsense.module	2008-04-01 04:28:27.000000000 +0200
+++ adsense/adsense.module	2008-04-17 18:12:35.000000000 +0200
@@ -38,6 +38,7 @@
     '468x60'           =>  array('type' => ADSENSE_TYPE_AD,     'desc' => t('Banner'),                       'code' => '_as'),
     '728x15'           =>  array('type' => ADSENSE_TYPE_LINK,   'desc' => t('Wide banner ad links 4-links'), 'code' => '_0ads_al'),
     '728x90'           =>  array('type' => ADSENSE_TYPE_AD,     'desc' => t('Leaderboard'),                  'code' => '_as'),
+    'ref_text'         =>  array('type' => ADSENSE_TYPE_AD,     'desc' => t('Text referral'),                'code' => ''),
     ADSENSE_SEARCH_BOX =>  array('type' => ADSENSE_TYPE_SEARCH, 'desc' => t('AdSense for Search'),           'code' => '')
     );
 }
@@ -972,9 +973,16 @@
         if (_adsense_page_match()) {
           // Ad should be displayed
           // Check cache first
-          $ad = $format != ADSENSE_SEARCH_BOX
-              ? _adsense_get_ad($format, $group, $channel, $slot, $referral, $cpa)
-              : _adsense_get_searchbox($group, $channel, $slot, $referral, $cpa);
+          switch ($format) {
+          case ADSENSE_SEARCH_BOX:
+            $ad = _adsense_get_searchbox($group, $channel, $slot, $referral, $cpa);
+            break;
+          case "ref_text":
+            $ad = _adsense_get_reftext($channel, $slot, $cpa);
+            break;
+          default:
+            $ad = _adsense_get_ad($format, $group, $channel, $slot, $referral, $cpa);
+          }
         }
         else {
           $ad = '<!--adsense: page not in match list-->';
@@ -1207,6 +1215,40 @@
   return $output;
 }
 
+function _adsense_get_reftext($channel = 1, $slot = '', $cpa = '') {
+
+  $client = adsense_get_client_id();
+
+  $output .= _adsense_add_nl('');
+  $output .= _adsense_add_nl('<div class="adsense">');
+  $output .= _adsense_add_nl('<script type="text/javascript"><!--');
+  $output .= _adsense_add_nl('google_ad_client = "'. $client  .'";');
+
+  if (!empty($slot)) {
+    $output .= _adsense_add_nl('google_ad_slot = "'. $slot .'";');
+  }
+  else {
+    $output .= _adsense_add_nl('google_ad_channel = "'. $channel .'";');
+  }
+
+  $output .= _adsense_add_nl('google_ad_output = "textlink";');
+  $output .= _adsense_add_nl('google_ad_format = "ref_text";');
+  $output .= _adsense_add_nl('google_cpa_choice = "'. $cpa .'";');
+
+  $output .= _adsense_add_nl('//--></script>');
+  $output .= _adsense_add_nl('<script type="text/javascript"');
+  $output .= _adsense_add_nl(' src="http://pagead2.googlesyndication.com/pagead/show_ads.js">');
+  $output .= _adsense_add_nl('</script>');
+  $output .= _adsense_add_nl('</div>');
+
+  if (variable_get(ADSENSE_TEST_MODE, 0)) {
+    $text = "client=$client format=ref_text channel=$channel slot=$slot cpa=$cpa";
+    $output  = '<div style="border:solid 1px">'. $text .'</div>';
+  }
+
+  return $output;
+}
+
 function _adsense_add_nl($str) {
   return $str ."\n";
 }
