diff -urp extlinkold/extlink.js extlink/extlink.js
--- extlinkold/extlink.js	2008-01-27 19:55:14.000000000 -0500
+++ extlink/extlink.js	2008-03-21 15:31:03.000000000 -0400
@@ -1,5 +1,39 @@
+
 if (Drupal.jsEnabled) {
-  $(document).ready(function() {
+  $(document).ready(function() {extlinks();});
+}
+
+function extlinks() {
+    //Get the window size
+    var myWidth = 0, myHeight = 0;
+    if( typeof( window.innerWidth ) == 'number' ) {
+      //Non-IE
+      myWidth = window.innerWidth;
+      myHeight = window.innerHeight;
+    } else if( document.documentElement 
+		&& ( document.documentElement.clientWidth 
+		|| document.documentElement.clientHeight ) ) {
+      //IE 6+ in 'standards compliant mode'
+      myWidth = document.documentElement.clientWidth;
+      myHeight = document.documentElement.clientHeight;
+    } else if( document.body 
+		&& ( document.body.clientWidth || document.body.clientHeight ) ) {
+      //IE 4 compatible
+      myWidth = document.body.clientWidth;
+      myHeight = document.body.clientHeight;
+    }
+    if(myWidth > 889) {
+	myWidth = 800;
+    } else {
+	myWidth = .9*myWidth;
+    }    
+
+    if(myHeight > 667) {
+	myHeight = 600;
+    } else {
+	myHeight = .9*myHeight;
+    }
+    
     // Strip the host name down, removing subdomains or www.
     var host = window.location.host.replace(/^(([^\/]+?\.)*)([^\.]{4,})((\.[a-z]{1,4})*)$/, '$3$4');
     var subdomain = window.location.host.replace(/^(([^\/]+?\.)*)([^\.]{4,})((\.[a-z]{1,4})*)$/, '$1');
@@ -22,51 +56,72 @@ if (Drupal.jsEnabled) {
     // to ftp://, javascript:, etc. other kinds of links.
     // When operating on the 'this' variable, the host has been appended to
     // all links by the browser, even local ones.
-    // In jQuery 1.1 and higher, we'd us a filter method here, but it is not
+    // In jQuery 1.1 and higher, we\'d us a filter method here, but it is not
     // available in jQuery 1.0 (Drupal 5 default).
     var external_links = new Array();
     var mailto_links = new Array();
-    $("a").each(function(el) {
+    $("a").not('.thickbox').each(function(el) {
       try {
+	var inner = this.innerHTML;
         var url = this.href.toLowerCase();
-        if (url.indexOf('http') == 0 && !url.match(internal_link)) {
-          external_links.push(this);
-        }
-        else if (url.indexOf('mailto:') == 0) {
-          mailto_links.push(this);
-        }
+	// If url ends with popup = true and does not end with popup = false
+        if (url.indexOf('http') == 0 && 
+		(!url.match(internal_link) || url.match('popup=true$')) 
+		&& !url.match('popup=false$')) {
+	  	//Url must be changed for thickbox popup
+	  	this.href = this.href.replace(/.popup=true$/,'');
+	
+    	  	if (Drupal.settings.extlink.extTarget == 'thickbox') {
+			if (this.href.indexOf('?') < 0) 
+			{
+				this.href = this.href + "?";
+			} else {
+				this.href = this.href + "&";
+			}
+			this.href = this.href + "KeepThis=true&TB_iframe=true&height=" + myHeight + "&width=" + myWidth;
+			this.innerHTML = inner;
+	  	}
+          	external_links.push(this);
+        } else if (url.indexOf('mailto:') == 0) {
+          	mailto_links.push(this);
+        } else this.href = this.href.replace(/.popup=false$/,'');
       }
       // IE7 throws errors often when dealing with irregular links, such as:
       // <a href="node/10"></a> Empty tags.
       // <a href="http://user:pass@example.com">example</a> User:pass syntax.
       catch(error) {
-        return false;
+        return false; 
       }
     });
 
-    if (Drupal.settings.extlink.extClass) {
-      // Apply the "ext" class to all links not containing images.
-      if (parseFloat($().jquery) < 1.2) {
-        $(external_links).not('[img]').addClass(Drupal.settings.extlink.extClass);
-      }
-      else {
-        $(external_links).not($(external_links).find('img').parents('a')).addClass(Drupal.settings.extlink.extClass);
-      }
-    }
-
-    if (Drupal.settings.extlink.mailtoClass) {
+    $links = $(external_links);
+    $mlinks = $(mailto_links);
+    if (Drupal.settings.extlink.extTarget == 'thickbox') {
+	// Thickbox requires a class, not a target
+	$links.addClass('thickbox');
+     } else {
+        // Apply the target attribute to all links.
+        $links.attr('target', Drupal.settings.extlink.extTarget);
+     }
+   
+     //This not must go after the previous set of ifs because the not removes the items and we want images to open with a target as well. 
+     if (Drupal.settings.extlink.extClass) {
+        // Apply the "ext" class to all links not containing images.
+       if (parseFloat($().jquery) < 1.2) {
+          $links.not('[img]').addClass(Drupal.settings.extlink.extClass);
+       }
+       else {
+         $links.not($(external_links).find('img').parents('a')).addClass(Drupal.settings.extlink.extClass);
+       }
+     }
+     if (Drupal.settings.extlink.mailtoClass) {
       // Apply the "mailto" class to all mailto links not containing images.
       if (parseFloat($().jquery) < 1.2) {
-        $(mailto_links).not('[img]').addClass(Drupal.settings.extlink.mailtoClass);
+        $mlinks.not('[img]').addClass(Drupal.settings.extlink.mailtoClass);
       }
       else {
-        $(mailto_links).not($(mailto_links).find('img').parents('a')).addClass(Drupal.settings.extlink.mailtoClass);
+        $mlinks.not($(mailto_links).find('img').parents('a')).addClass(Drupal.settings.extlink.mailtoClass);
       }
     }
 
-    if (Drupal.settings.extlink.extTarget) {
-      // Apply the target attribute to all links.
-      $(external_links).attr('target', Drupal.settings.extlink.extTarget);
-    }
-  });
-}
\ No newline at end of file
+}
diff -urp extlinkold/extlink.module extlink/extlink.module
--- extlinkold/extlink.module	2008-01-27 19:26:48.000000000 -0500
+++ extlink/extlink.module	2008-03-21 14:33:31.000000000 -0400
@@ -2,6 +2,7 @@
 // $Id: extlink.module,v 1.1.2.3 2008/01/28 00:26:48 quicksketch Exp $
 
 function extlink_menu($may_cache) {
+  global $base_url;
   $items = array();
   if ($may_cache) {
     $items[] = array(
@@ -16,10 +17,14 @@ function extlink_menu($may_cache) {
   else {
     $path = drupal_get_path('module', 'extlink');
     drupal_add_js($path .'/extlink.js');
-    drupal_add_js(array('extlink' => array('extTarget' => variable_get('extlink_target', 0), 'extClass' => variable_get('extlink_class', 'ext'), 'extSubdomains' => variable_get('extlink_subdomains', 1), 'mailtoClass' => variable_get('extlink_mailto_class', 'mailto'))), 'setting');
+    drupal_add_js(array('extlink' => array('extPath' => $base_url ."/". drupal_get_path('module', 'extlink'), 'extTarget' => variable_get('extlink_target', 0), 'extClass' => variable_get('extlink_class', 'ext'), 'extSubdomains' => variable_get('extlink_subdomains', 1), 'mailtoClass' => variable_get('extlink_mailto_class', 'mailto'))), 'setting');
     if (variable_get('extlink_class', 'ext') == 'ext' || variable_get('extlink_mailto_class', 'mailto') == 'mailto') {
       drupal_add_css($path .'/extlink.css');
     }
+    if (variable_get('extlink_class', 'thickbox')) {
+        drupal_add_js($path. '/thickbox/thickbox.js');
+        drupal_add_css($path. '/thickbox/thickbox.css');
+    }
   }
   return $items;
 }
@@ -51,12 +56,12 @@ function extlink_admin_settings() {
   );
 
   $form['extlink_target'] = array(
-    '#type' => 'checkbox',
-    '#title' => t('Open external links in a new window'),
-    '#return_value' => '_blank',
-    '#default_value' => variable_get('extlink_target', 0),
-    '#description' => t('Should all external links be opened in a new window?'),
+    '#type' => 'radios',
+    '#title' => t('Where external links should be opened.'),
+    '#options' => array(_self => 'The same window (_self)', _parent => 'The parent window (_parent)', _top => 'The topmost window (_top)', _blank => 'A new window (_blank)', thickbox=> 'A popup iframe'),
+    '#default_value' => variable_get('extlink_target', '_self'),
+    '#description' =>  t('Sets the target location for all external links.  _self is the default behavior. <br /><br /> The popup window uses <a href="http://jquery.com/demo/thickbox">Thickbox</a> and requires JQuery (already including in Drupal 5.x). If enabled, even internal links can be forced to popup by adding ?popup=true to the end of the url.'),
   );
-  
+
   return system_settings_form($form);
-}
\ No newline at end of file
+}
Only in extlink: thickbox
