--- link.module	2010-06-14 21:14:11.000000000 +0300
+++ link_new.module	2010-07-06 11:58:31.161969527 +0300
@@ -68,6 +68,14 @@ function link_field_settings($op, $field
         '#description' => t('If checked, the URL field will be verified as a valid URL during validation.'),
       );

+      $form['only_external_link'] = array(
+        '#type' => 'checkbox',
+        '#title' => t('Only External Link'),
+        '#default_value' => $field['only_external_link'],
+        '#return_value' => 'optional',
+        '#description' => t('If checked, the URL field will be verified as a valid external URL during validation.'),
+      );
+
       $form['url'] = array(
         '#type' => 'checkbox',
         '#title' => t('Optional URL'),
@@ -177,7 +185,7 @@ function link_field_settings($op, $field
       break;

     case 'save':
-      return array('attributes', 'display', 'url', 'title', 'title_value', 'enable_tokens', 'validate_url');
+      return array('attributes', 'display', 'url', 'title', 'title_value', 'enable_tokens', 'validate_url', 'only_external_link');

     case 'database columns':
       return array(
@@ -310,6 +318,10 @@ function _link_process(&$item, $delta =

 function _link_validate(&$item, $delta, $field, $node, &$optional_field_found) {
   if ($item['url'] && !(isset($field['widget']['default_value'][$delta]['url']) && $item['url'] == $field['widget']['default_value'][$delta]['url'] && !$field['required'])) {
+    // Validate external link
+    if (isset($field['only_external_link']) && $field['only_external_link'] && valid_url($item['url'], true) == FALSE) {
+      form_set_error($field['field_name'] .']['. $delta .'][url', t('Not a valid URL.'));
+    }
     // Validate the link.
     if (link_validate_url(trim($item['url'])) == FALSE) {
       form_set_error($field['field_name'] .']['. $delta .'][url', t('Not a valid URL.'));
