--- ../cvs/HEAD/contributions/modules/glossary/glossary.module	Sun Nov 14 20:47:46 2004
+++ modules/glossary/glossary.module	Wed Nov 17 20:48:34 2004
@@ -1,4 +1,4 @@
 <?php
-// $Id: glossary.module,v 1.77 2004/11/14 19:47:46 frodo Exp $
+// $Id: glossary.module,v 1.71 2004/11/07 17:32:41 frodo Exp $
 
 function glossary_help($section = "admin/help#glossary") {
@@ -243,10 +243,22 @@ function glossary_page() {
 }
 
-function _glossary_alphabar($vid) {
-  $output = "\n<div class=\"glossary-links\">";
-  foreach (range('a', 'z') as $letter) {
-    $letters[] = l($letter, 'glossary/'.$vid, NULL, NULL, 'letter' . $letter);
+function _glossary_alphabar($vid,&$tree) {
+  $found = array();
+  foreach ($tree as $key=>$term) {
+    if ($term->depth == 0) {
+      $firstletter = strtolower($term->name[0]);
+      if (! array_key_exists($firstletter,$found)) {
+        $found[$firstletter] = 1;
+        $tree[$key]->firstletter = $firstletter;
+      }
+    }
   }
-  $output .= theme_links($letters);
+  $output = "\n<div class=\"glossary-links\">";   
+  $letters = array_keys($found);
+  sort($letters);
+  foreach ($letters as $letter) {
+    $links[] = l($letter, 'glossary/'.$vid, NULL, NULL, 'letter' . $letter);
+  }
+  $output .= theme_links($links);
   $output .= "</div>\n";
   return $output;
@@ -254,23 +266,12 @@ function _glossary_alphabar($vid) {
 
 
-function _glossary_anchor($lower, $upper) {
-  foreach (range($lower, $upper) as $letter) {
-    $output .= "<a id=\"letter$letter\"></a>\n";
-  }
-  return $output;
-}
-
 function glossary_overview($vid) {
-  global $tree;
-
-  $output = _glossary_alphabar($vid);
   $tree = taxonomy_get_tree($vid);
+  $output = _glossary_alphabar($vid,$tree);
   if ($tree) {
-    $output .= _glossary_anchor('a', strtolower($tree[0]->name[0]));
     foreach ($tree as $term) {
       // skip this on first iteration since was already outputted above
-      if (isset($lastletter)) {
-        $firstletter = strtolower($term->name[0]);
-        $output .= _glossary_anchor(chr(ord($lastletter) + 1) , $firstletter);
+      if (isset($term->firstletter)) {
+          $output .= "<a id=\"letter".$term->firstletter."\"></a>\n";
       }
       $output .= "<a id=\"term{$term->tid}\"></a>\n". 
@@ -293,7 +294,5 @@ function glossary_overview($vid) {
       }
       $output .= "</dd></dl>\n";
-      $lastletter = strtolower($term->name[0]);
     }
-    $output .= _glossary_anchor(chr(ord($lastletter) + 1), 'z');
   }
   if (user_access('administer taxonomy')) {
