Index: includes/images.php
===================================================================
--- includes/images.php	(revision 0)
+++ includes/images.php	(revision 0)
@@ -0,0 +1,135 @@
+<?php
+
+class Image {
+
+    function Image( $_class,$_subtype,$_filename ) {
+        $this->class = $_class;
+        $thumb_max_w = 600;
+        $thumb_max_h = 120;
+        $full_max_w = 600;
+        $full_max_h = 550;
+        $icon_max_w = 32;
+        $icon_max_h = 44;
+        $video_max_h = 100;
+        $video_max_w = 100;
+        $path = 'data/gallery/';
+        $missing = skin_url."img/missing.gif";
+        $missing_cache = "data/cache/gallery/other/missing.gif";
+
+        switch($_class) {
+            case "gallery-thumb":
+                $file = basename($_filename);
+                $outfile = 'data/cache/gallery/'.$_subtype.'/'.$file;
+                $max_w = $thumb_max_w;
+                $max_h = $thumb_max_h;
+                $this->uri = '?show_image='.urldecode($file.'&amp;moverse='.$_subtype);
+                $this->src = urldecode($outfile);
+                $this->alt = $file;
+                break;
+            case "gallery-folder":
+                $file = basename($_filename);
+                $outfile='data/cache/gallery/'.$_subtype.'/'.$file.'.jpg';
+                $max_w = $thumb_max_w;
+                $max_h = $thumb_max_h;
+                if ($_subtype=="") {$uri = $file;}
+                  else {$uri = $_subtype.'/'.$file;}
+                $this->uri = '?moverse='.urldecode($uri);
+                $this->alt = $file.'.jpg';
+                $thumbfile = $path.'/'.$_subtype.'/.thumbcache/'.$file;
+                if ( !file_exists( $thumbfile ) ) {
+                    $_filename = $missing;
+                    $this->src = $missing_cache;
+                    $outfile = $missing_cache;
+                    $_subtype = "other";
+                } else {
+                    $_filename = $thumbfile;
+                    $this->src = urldecode($outfile);
+                }
+                break;
+            case "gallery-fullsize":
+                $file = basename($_filename);
+                $outfile = 'data/cache/gallery/'.$_subtype.'/fullsize/'.$file;
+                $this->src = urldecode($outfile);
+                $this->alt = $file;
+                #uri points to raw (real full size) image for save as link
+                $this->uri = $path.$_subtype.'/'.$file;
+                $max_w = $full_max_w;
+                $max_h = $full_max_h;
+                break;
+            case "gallery-video":
+                $file = basename($_filename);
+                $outfile = 'data/cache/gallery/'.$_subtype.'/'.$file;
+                copy($_filename,$outfile);		#Block attempting a cache
+                $this->uri = urldecode('data/cache/gallery/'.$_subtype.'/'.$file);
+                $this->alt = $file;
+                $this->src = skin_url.'img/video.png';
+                $max_w = $video_max_w;
+                $max_h = $video_max_h;
+                break;
+            case "icon":
+                $outfile = 'data/cache/icons/'.basename($_filename);
+                $max_w = $icon_max_w;
+                $max_h = $icon_max_h;
+                break;
+            case "video":
+                $outfile = 'data/cache/video/'.basename($_filename);
+                $max_w = $video_max_w;
+                $max_h = $video_max_h;
+                break;
+        }
+        if (!file_exists($outfile)) $this->cache_image($outfile,$max_w,$max_h,$_filename);
+    }
+
+
+    function cache_image($_outfile, $max_w, $max_h, $_infile) {
+        list($width, $height, $imgtype, $attr) = getimagesize($_infile);
+
+        if (($imgtype==2) || ($imgtype==1) || ($imgtype==3) || ($imgtype==6))
+        {
+            if ($imgtype == 6)$im = @imagecreatefrombmp($_infile); 
+            if ($imgtype == 3)$im = @imagecreatefrompng($_infile); 
+            if ($imgtype == 2)$im = @imagecreatefromjpeg($_infile); 
+            if ($imgtype == 1)$im = @imagecreatefromgif($_infile);
+            if (!$im) { /* See if it failed */
+                $im  = imagecreate($max_w, $max_h); /* Create a blank image */
+                $bgc = imagecolorallocate($im, 255, 255, 255);
+                $tc  = imagecolorallocate($im, 0, 0, 0);
+                imagefilledrectangle($im, 0, 0, 150, 30, $bgc);
+                imagestring($im, 1, 5, 5, "Error opening image!", $tc);
+            }
+            else
+                {
+                if (($height/$width)<($max_h/$max_w)){
+                    // constrain by width
+                    $new_height = $height*$max_w/$width;
+                    $new_width = $max_w;
+                } else {
+                    $new_width = $width*$max_h/$height;
+                    $new_height = $max_h;
+                }
+                $tim = imagecreatetruecolor($new_width,$new_height);
+            }
+            imagecopyresampled($tim,$im,0,0,0,0,$new_width,$new_height,$width,$height);
+            $directory = dirname($_outfile);
+            if (!is_dir(dirname($_outfile))) mkdir(dirname($_outfile));
+            switch ($imgtype) {
+                case 2:
+                    imagejpeg($tim,$_outfile,100);
+                    break;
+                case 1:
+                    imagegif($tim,$_outfile,100);
+                    break;
+                case 3:
+                    imagepng($tim,$_outfile,100);
+                    break;
+                case 6:
+                    imagebmp($tim,$_outfile,100);
+                break;
+            }
+            imagedestroy($tim);
+            imagedestroy($im);
+        }
+    }
+}
+
+?>

Property changes on: includes/images.php
___________________________________________________________________
Name: svn:executable
   + *

Index: skins/default/gallery.css
===================================================================
--- skins/default/gallery.css	(revision 0)
+++ skins/default/gallery.css	(revision 0)
@@ -0,0 +1,162 @@
+.gallery-folder {
+    float: left;
+    margin:             9px;
+    padding:            16px;
+    border:             3px outset black;
+    -moz-border-radius: 9px;
+    background:         #347;
+    text-align:         center;
+    font-size:          10pt;
+    font-weight: bold;
+}
+.gallery-folder a {
+    border:   none;
+}
+.gallery-folder a:hover {
+    background-color:   #458;
+}
+
+.gallery-thumb {
+    float: left;
+    margin:             9px;
+    padding:            18px;
+    border:             1px outset black;
+    -moz-border-radius: 9px;
+    background:         #347;
+    text-align:         center;
+    font-size:          10pt;
+}
+
+.gallery-fullsize {
+
+    margin:             14px;
+    padding:            20px;
+    text-align:         center;
+    font-size:          12pt;
+}
+.gallery-video {
+    float: left;
+    margin:             9px;
+    padding:            18px;
+    border:             1px outset black;
+    -moz-border-radius: 9px;
+    background:         #347;
+    text-align:         center;
+    font-size:          10pt;
+}
+.image img {
+    border: 2px solid black;
+    display: inline !important;
+}
+
+div.clearer {clear: left; line-height: 0; height: 0;}
+
+.page_start { }
+
+#page_content {
+    margin-left:      15px;
+    margin-right:     15px;
+    margin-bottom:    15px;
+    background-color: #002030;
+    border-top:       2px solid #002520;
+    border-right:     2px solid #002520;
+    border-bottom:    2px solid #002630;
+    border-left:      2px solid #002630;
+    padding:          10px;
+    font-size:        8pt;
+    min-width:        800px;
+    color:      white;
+}
+
+
+#images {
+    margin:             0px 10px;
+    padding:            10px;
+    white-space: nowrap;
+}
+#images a {
+    float:              left;
+    margin:             0px 5px;
+    padding:            5px;
+    background-color:   #347;
+    border-top:         1px solid #999;
+    border-right:       1px solid #003;
+    border-bottom:      1px solid #000;
+    border-left:        1px solid #AAA;
+    -moz-border-radius: 8px;
+    text-align:         center;
+}
+#images a:hover {
+    background-color:   #458;
+}
+#mainimg {
+    display: inline !important;
+    margin:             0px 2px;
+    padding:            17px;
+    -moz-border-radius: 9px;
+    background-color:   #236;
+}
+#images img {
+    border: none;
+    display: inline !important;
+}
+
+.toolbar {
+    border:     none;
+    padding:    0px;
+    margin:     0px;
+    font-size:  10pt;
+    min-width:  786px;
+    vertical-align: top;
+    color:      white;
+}
+.toolbar a {
+    border:     none;
+    padding:    0px;
+    margin:     0px;
+    font-size:  10pt;
+    color:      white;
+    vertical-align: top;
+}
+
+.toolbar img {
+    border: none;
+    padding:    0px;
+    margin:     0px;
+    vertical-align: top;
+    behavior: url("js/pngbehavior.htc"); 
+}
+
+.toolbar-up {
+    float: left;
+    border:     none;
+    padding:    0px;
+    margin:     0px;
+    font-size:  10pt;
+    color:      white;
+    min-width:  16px;
+    vertical-align: top;
+}
+
+.toolbar-mid {
+    float: left;
+    border:     none;
+    padding:    0px;
+    margin:     0px;
+    font-size:  10pt;
+    vertical-align: top;
+    width: 70%;
+    text-align:         center;
+}
+
+.toolbar-spacer {
+    float: left;
+    border:     none;
+    border-color: white;
+    padding:    0px;
+    margin:     0px;
+    font-size:  10pt;
+    color:      white;
+    vertical-align: top;
+    width: 14%;
+}
Index: skins/grey/gallery.css
===================================================================
--- skins/grey/gallery.css	(revision 0)
+++ skins/grey/gallery.css	(revision 0)
@@ -0,0 +1,162 @@
+.gallery-folder {
+    float: left;
+    margin:             9px;
+    padding:            16px;
+    border:             3px outset black;
+    -moz-border-radius: 9px;
+    background:         #555;
+    text-align:         center;
+    font-size:          10pt;
+    font-weight: bold;
+}
+.gallery-folder a {
+    border:   none;
+}
+.gallery-folder a:hover {
+    background-color:   #555;
+}
+
+.gallery-thumb {
+    float: left;
+    margin:             9px;
+    padding:            18px;
+    border:             1px outset black;
+    -moz-border-radius: 9px;
+    background:         #555;
+    text-align:         center;
+    font-size:          10pt;
+}
+
+.gallery-fullsize {
+
+    margin:             14px;
+    padding:            20px;
+    text-align:         center;
+    font-size:          12pt;
+}
+.gallery-video {
+    float: left;
+    margin:             9px;
+    padding:            18px;
+    border:             1px outset black;
+    -moz-border-radius: 9px;
+    background:         #555;
+    text-align:         center;
+    font-size:          10pt;
+}
+.image img {
+    border: 2px solid black;
+    display: inline !important;
+}
+
+div.clearer {clear: left; line-height: 0; height: 0;}
+
+.page_start { }
+
+#page_content {
+    margin-left:      15px;
+    margin-right:     15px;
+    margin-bottom:    15px;
+    background-color: #222;
+    border-top:       2px solid #333222;
+    border-right:     2px solid #333222;
+    border-bottom:    2px solid #333333;
+    border-left:      2px solid #333333;
+    padding:          10px;
+    font-size:        8pt;
+    min-width:        800px;
+    color:      white;
+}
+
+
+#images {
+    margin:             0px 10px;
+    padding:            10px;
+    white-space: nowrap;
+}
+#images a {
+    float:              left;
+    margin:             0px 5px;
+    padding:            5px;
+    background-color:   #444;
+    border-top:         1px solid #999;
+    border-right:       1px solid #003;
+    border-bottom:      1px solid #000;
+    border-left:        1px solid #AAA;
+    -moz-border-radius: 8px;
+    text-align:         center;
+}
+#images a:hover {
+    background-color:   #666;
+}
+#mainimg {
+    display: inline !important;
+    margin:             0px 2px;
+    padding:            17px;
+    -moz-border-radius: 9px;
+    background-color:   #444;
+}
+#images img {
+    border: none;
+    display: inline !important;
+}
+
+.toolbar {
+    border:     none;
+    padding:    0px;
+    margin:     0px;
+    font-size:  10pt;
+    min-width:  786px;
+    vertical-align: top;
+    color:      white;
+}
+.toolbar a {
+    border:     none;
+    padding:    0px;
+    margin:     0px;
+    font-size:  10pt;
+    color:      white;
+    vertical-align: top;
+}
+
+.toolbar img {
+    border: none;
+    padding:    0px;
+    margin:     0px;
+    vertical-align: top;
+    behavior: url("js/pngbehavior.htc"); 
+}
+
+.toolbar-up {
+    float: left;
+    border:     none;
+    padding:    0px;
+    margin:     0px;
+    font-size:  10pt;
+    color:      white;
+    min-width:  16px;
+    vertical-align: top;
+}
+
+.toolbar-mid {
+    float: left;
+    border:     none;
+    padding:    0px;
+    margin:     0px;
+    font-size:  10pt;
+    vertical-align: top;
+    width: 70%;
+    text-align:         center;
+}
+
+.toolbar-spacer {
+    float: left;
+    border:     none;
+    border-color: white;
+    padding:    0px;
+    margin:     0px;
+    font-size:  10pt;
+    color:      white;
+    vertical-align: top;
+    width: 14%;
+}
\ No newline at end of file
Index: modules/gallery/handler.php
===================================================================
--- modules/gallery/handler.php	(revision 0)
+++ modules/gallery/handler.php	(revision 0)
@@ -0,0 +1,88 @@
+<?php
+/***                                                                        ***\
+   mythgalley.php                            Last Updated: 2005.03.01 (sg_m_dev)
+
+    main configuration index
+\***                                                                        ***/
+
+// Which section are we in?
+    define('section', 'gallery');
+
+// Initialize the script, database, etc.
+//require_once "includes/init.php";
+require_once "includes/images.php";
+
+$path = "data/gallery";
+
+// Symlink to mythgallery photo storage directory
+
+if ( ! file_exists($path)) {
+    $gallery_dir = get_backend_setting('GalleryDir');
+    custom_error('Error: before using please run this in your mythweb directory: ln -s '.$gallery_dir.' '.$path);
+    }
+
+    
+$moverse = $_GET['moverse'];
+$show_image = $_GET['show_image'];
+
+$realpath = realpath($path.'/'.$moverse);
+$moverse = str_replace($realpath,'',$moverse);
+
+if($moverse) {
+    if (strpos($moverse,"\'")) { // This corrects a uri that includes single quote(s), which I think gets messed up by GET
+        $moverse = str_replace("\'","'",$moverse);
+        }
+    }
+
+$handle=opendir($path.'/'.$moverse);
+$Images = array();
+
+while ($file = readdir($handle)) {
+    if(is_dir($path.'/'.$moverse.'/'.$file) && $file != ".") {
+        // A directory
+        if (($file == ".." && $moverse == "") || $file == ".thumbcache" || $file == "." ) {
+            // Skip directory 
+        } else {
+            if ( $file == ".." ) {
+                // Do nothing
+            } else {
+                if ($moverse!="") {
+                     $fullfile=$path.'/'.$moverse.'/'.$file;
+                } else {
+                     $fullfile=$path.'/'.$file;
+                }
+                $entery = new Image('gallery-folder',$moverse,$fullfile);
+                $Images[] = &$entery;
+                unset($entery);
+            }
+        }
+    } else if ($file != "." && $file != "index.php" && ( ("jpg"==substr($file,-3)) || ("JPG"==substr($file,-3)) ) ) {
+        if (isset($show_image)) {
+             $entery = new Image('gallery-fullsize',$moverse,$path.'/'.$moverse.'/'.$file);
+            $Images[] = &$entery;
+            unset($entery);
+        } else {
+             $entery = new Image('gallery-thumb',$moverse,$path.'/'.$moverse.'/'.$file);
+            $Images[] = &$entery;
+            unset($entery);
+        }
+    } else if ($file != "." && $file != "index.php" && ( ("avi"==substr($file,-3)) || ("AVI"==substr($file,-3)) ) ) {
+        if (!isset($show_image)) {
+            $entery = new Image('gallery-video',$moverse,$path.'/'.$moverse.'/'.$file);
+            $Images[] = &$entery;
+            unset($entery);
+        }
+    }
+}
+
+array_multisort( $Images );
+
+// Print the status page template
+    require_once tmpl_dir.'gallery.php';;
+
+
+unset($Images);
+// Exit
+exit;
+
+?>
Index: modules/gallery/init.php
===================================================================
--- modules/gallery/init.php	(revision 0)
+++ modules/gallery/init.php	(revision 0)
@@ -0,0 +1,24 @@
+<?php
+/**
+ * Initialization routines for the MythWeb Gallery module
+ *
+ * @url         $URL: http://svn.mythtv.org/svn/trunk/mythplugins/mythweb/modules/gallery/init.php $
+ * @date        $Date: 2005-12-22 05:13:45 +0000 (Thu, 22 Dec 2005) $
+ * @version     $Revision: 8344 $
+ * @author      $Author: irish $
+ * @license     GPL
+ *
+ * @package     MythWeb
+ * @subpackage  Gallery
+ *
+/**/
+
+// If video is enabled, add it to the list.
+//    if ($has_gallery)
+        $Modules['gallery'] = array('path'        => 'gallery',
+                                  'sort'        => 5,
+                                  'name'        => t('Gallery'),
+                                  'description' => t('')
+                                 );
+
+
Index: modules/gallery/tmpl/default/welcome.php
===================================================================
--- modules/gallery/tmpl/default/welcome.php	(revision 0)
+++ modules/gallery/tmpl/default/welcome.php	(revision 0)
@@ -0,0 +1,14 @@
+<?php
+
+// Open with a div and an image
+    echo '<div id="info_gallery" class="hidden">',
+         '<img src="', skin_url, '/img/gallery.png" class="module_icon" />',
+
+// Print a basic overview of what this module does
+         t('welcome: gallery'),
+
+// Next, print a list of possible subsectons
+    ####
+
+// Close the div
+         "</div>\n";

Property changes on: modules/gallery/tmpl/default/welcome.php
___________________________________________________________________
Name: svn:executable
   + *

Index: modules/gallery/tmpl/default/gallery.php
===================================================================
--- modules/gallery/tmpl/default/gallery.php	(revision 0)
+++ modules/gallery/tmpl/default/gallery.php	(revision 0)
@@ -0,0 +1,124 @@
+<?php
+/***                                                                        ***\
+    mythgalley.php                            Last Updated: 2006.03.22 (irish)
+
+    gallery default theme
+\***                                                                        ***/
+    
+    $curr_image;
+
+    // Set the desired page title
+        $page_title = 'MythWeb - ' . t('Gallery') . ' - Folder: /'.$moverse;
+
+    // Load this page's custom stylesheet
+        $headers[] = '<link rel="stylesheet" type="text/css" href="'.skin_url.'/gallery.css" />';
+    // Print the page header
+    require 'modules/_shared/tmpl/'.tmpl.'/header.php';
+    require_once "includes/css.php";
+    require_once "includes/mouseovers.php";
+
+    print_menu_content();
+?>
+
+<div id="page_content" class="clearfix">
+  <div id="images">
+
+    <?php 
+        $found=0;
+
+        if (isset($show_image)){
+
+            echo '        <div class="'.$curr_image->class.'">';
+            $img_name = str_replace(".jpg","",$curr_image->alt);
+            $img_name = str_replace(".JPG","",$img_name);
+            $img_name = str_replace(".gif","",$img_name);
+            $img_name = str_replace(".GIF","",$img_name);
+            echo '<img id="mainimg" alt="'.$curr_image->alt.'" src="'.$curr_image->src.'">';
+            echo "</div></div>\n";
+            echo '<div><a href="'.$curr_image->uri.'">Download full size image (warning: VERY large!) Right click and select \'save as\' </a>';
+            echo number_format(filesize($curr_image->uri)/1000).' KBytes</a></div>';
+        } else {
+            foreach( $Images as $image ) {
+                echo '<div class="'.$image->class.'">';
+                $img_name = str_replace(".jpg","",$image->alt);
+                $img_name = str_replace(".JPG","",$img_name);
+                $img_name = str_replace(".gif","",$img_name);
+                $img_name = str_replace(".GIF","",$img_name);
+                echo ' '.$img_name.' <br>';
+                if ($image->uri) echo '<a href="'.$image->uri.'">';
+                if ($image->src) echo '<img alt="'.$image->alt.'" src="'.$image->src.'">';
+                echo "</a></div>\n";
+            }
+        }
+        echo "  </div>\n";
+        echo "</div>\n";
+        // Print the page footer
+        require 'modules/_shared/tmpl/'.tmpl.'/footer.php';
+
+    function print_menu_content() {
+
+        global $show_image;
+        global $moverse;
+        global $Images;
+        global $curr_image;
+
+
+        if ($moverse) {
+            $header = '<div class="toolbar">';
+//            $header += '<table border="0" cellspacing="0" cellpadding="0"><tr><td width="1%"><div class="toolbar">';
+            $header .= '<div class="toolbar-up">';
+            if ($show_image) {
+                $header .= '<a href="?moverse='.$moverse.'">';
+                $header .= '<img alt="Up" src="'.skin_dir.'/img/up.png" height="16">';
+                $header .= '</a></div>';
+                $header .= '<div class="toolbar-spacer">&nbsp</div>';
+//</td><td width="99%" align="center"><div class="toolbar">';
+                $header .= '<div class="toolbar-mid">';
+                $found=0;
+                foreach( $Images as $image ) {
+                    if ($found>0){
+                        $header .= '<a href="?show_image='.$image->alt.'&amp;moverse='.$moverse.'">';
+                        $header .= '<img alt="Next" src="'.skin_dir.'/img/next.png" height="16"></a></div>';
+//                        $header .= '</div><div class="toolbar-spacer">&nbsp</div>';
+                        break;
+                    }
+                    if ($image->alt===$show_image) {
+                        $curr_image = $image;
+                        $found=1;
+                        if ($myprev){
+                            $header .= '<a href="?show_image='.$myprev->alt.'&amp;moverse='.$moverse.'">';
+                            $header .= '<img alt="Prev" src="'.skin_dir.'/img/previous.png" height="16"></a>            ';
+                        }
+                        $header .= '<b>Image: ';
+                        $parts = explode('/', $moverse);
+                        $rebuilt_path = '';
+                        $header .= '<a href="?moverse=">/</a>';
+                        foreach ($parts as $part) {
+                            $header .= '<a href="?moverse='.$rebuilt_path.$part.'">'.$part.'/</a>';
+                            $rebuilt_path .= $part.'/';
+                        }
+                        $header .= $image->alt.'</b>&nbsp';
+                        continue;
+                    } else {
+                        $myprev = $image;
+                        continue;
+                    }
+                }
+                echo $header.'&nbsp</div>';
+            } else {
+                $header .= '<a href="?moverse=';
+                $dir_up = dirname($moverse);
+                if ($dir_up!=".") $header .= $dir_up;
+                $header .= '">';
+                $header .= '<img alt="Up" src="'.skin_dir.'/img/up.png" height="16">';
+                $header .= "</a>";
+                $header .= '</div><div class="toolbar-spacer">&nbsp';
+                echo $header.'</div><div class="toolbar-mid"><b>Folder: /'.$moverse.'</b></div>&nbsp</div>';
+            }
+
+        } else {
+            echo '<div class="toolbar-up">&nbsp;</div><div class="toolbar-spacer">&nbsp</div><div class="toolbar-mid"><b>Folder: /'.$moverse.'</b></div>&nbsp';
+        }
+    }
+
+?>

Property changes on: modules/gallery/tmpl/default/gallery.php
___________________________________________________________________
Name: svn:executable
   + *

Index: modules/_shared/lang/English_GB.lang
===================================================================
--- modules/_shared/lang/English_GB.lang	(revision 11015)
+++ modules/_shared/lang/English_GB.lang	(working copy)
@@ -218,6 +218,7 @@
 "MythVideo Artwork Dir"
 "MythVideo Dir"
 "MythVideo on the web."
+"MythWeb Gallery."
 "MythWeb Global Defaults"
 "MythWeb session settings"
 "MythWeb Session Settings"
@@ -494,6 +495,7 @@
 "Video URL"
 "videofilters"
 "Videos"
+"Gallery"
 "Visibility"
 "visible"
 "Visit $1"
@@ -512,6 +514,8 @@
     See what's on tv, schedule recordings and manage shows that you've already recorded.  Please see the following choices:
 "welcome: video"
     Browse your video collection.
+"welcome: gallery"
+    Browse the image gallery.
 "welcome: weather"
     Get the local weather forecast.
 "What else is on at this time?"
Index: modules/_shared/lang/English.lang
===================================================================
--- modules/_shared/lang/English.lang	(revision 11015)
+++ modules/_shared/lang/English.lang	(working copy)
@@ -209,6 +209,7 @@
 "MythVideo Artwork Dir"
 "MythVideo Dir"
 "MythVideo on the web."
+"MythWeb Gallery."
 "MythWeb Global Defaults"
 "MythWeb session settings"
 "MythWeb Session Settings"
@@ -473,6 +474,7 @@
 "Video URL"
 "videofilters"
 "Videos"
+"Gallery"
 "Visibility"
 "visible"
 "Visit $1"
@@ -493,6 +495,8 @@
     recorded.  Please see the following choices:
 "welcome: video"
     Browse your video collection.
+"welcome: gallery"
+    Browse the image gallery.
 "welcome: weather"
     Get the local weather forecast.
 "What else is on at this time?"
Index: modules/_shared/tmpl/default/header.php
===================================================================
--- modules/_shared/tmpl/default/header.php	(revision 11015)
+++ modules/_shared/tmpl/default/header.php	(working copy)
@@ -80,7 +80,14 @@
         </a>
 <?php
       }
+      if ($Modules['gallery']) {
 ?>
+        <a id="gallery_link"<?php if ($Path[0] == 'gallery') echo ' class="current_section"' ?> href="<?php echo root ?>gallery" onmouseover="return help_text('<?php echo str_replace("'", "\\'", t('MythWeb Gallery.')) ?>')" onmouseout="return help_text()">
+            <img src="<?php echo skin_url ?>img/gallery.png" width="48" height="48" class="alpha_png" alt="MythGallery" />
+        </a>
+<?php
+      }
+?>
         <a id="settings_link"<?php if ($Path[0] == 'settings') echo ' class="current_section"' ?> href="<?php echo root ?>settings" onmouseover="return help_text('<?php echo str_replace("'", "\\'", t('Edit MythWeb and some MythTV settings.')) ?>')" onmouseout="return help_text()">
             <img src="<?php echo skin_url ?>img/settings.png" width="48" height="48" class="alpha_png" alt="<?php echo t('Settings') ?>" />
         </a>
@@ -115,7 +122,7 @@
     <td colspan="2" class="menu menu_border_t menu_border_b"><table class="body" width="100%" border="0" cellspacing="2" cellpadding="2">
         <tr>
             <td><div id="command_choices">
-                    <a href="<?php echo root ?>" id="category_legend" onmouseover="popup('category_legend'); return true;">MythTV:</a> &nbsp; &nbsp;
+                    <a href="<?php echo root ?>" id="category_legend" onmouseover="popup('category_legend'); return true;">Key</a></td><td align=center>
                     <a href="<?php echo root ?>tv/list"><?php echo t('Listings') ?></a>
                     &nbsp; | &nbsp;
                     <a href="<?php echo root ?>tv/searches"><?php echo t('Searches') ?></a>
