Index: web/conf/config.ini
===================================================================
--- web/conf/config.ini	(revision 4029)
+++ web/conf/config.ini	(working copy)
@@ -574,4 +574,14 @@
 ; to prevent users from tampering with certain URLs (for example, "place hold" form
 ; submissions)
 [Security]
-HMACkey = mySuperSecretValue
\ No newline at end of file
+HMACkey = mySuperSecretValue
+
+; These values are used for the library selection drop-down.  "All" is a special
+; default value indicating that no special facet is applied.  Other values
+; correspond with the building facet of the Solr index -- the left side before the
+; = is the facet value, the right side is the text to display on screen.
+[Locations]
+All = "All Libraries"
+MyLib1 = "My Library 1"
+MyLib2 = "My Library 2"
+; etc...
\ No newline at end of file
Index: web/conf/facets.ini
===================================================================
--- web/conf/facets.ini	(revision 4029)
+++ web/conf/facets.ini	(working copy)
@@ -2,8 +2,8 @@
 ; The name of the index field is on the left
 ; The display name of the field is on the right
 [Results]
-institution        = Institution
-building           = Library
+;institution        = Institution
+;building           = Library
 format             = Format
 
 ; Use callnumber-first for LC call numbers, dewey-hundreds for Dewey Decimal:
Index: web/index.php
===================================================================
--- web/index.php	(revision 4029)
+++ web/index.php	(working copy)
@@ -115,6 +115,22 @@
     $language = (isset($_COOKIE['language'])) ? $_COOKIE['language'] :
                     $configArray['Site']['language'];
 }
+
+$interface->assign('locationList', $configArray['Locations']);
+
+// Setup Location
+if (isset($_POST['mylocn'])) {
+    $location = $_POST['mylocn'];
+    if ($location == 'All') {
+        setcookie('location', "", 1, '/');
+        unset($_COOKIE['location']);
+    } else {
+        setcookie('location', $location, null, '/');
+        $_COOKIE['location'] = $location;
+    }
+}
+
+$interface->assign('userLocn', isset($_COOKIE['location']) ? $_COOKIE['location'] : '');
 // Make sure language code is valid, reset to default if bad:
 $validLanguages = array_keys($configArray['Languages']);
 if (!in_array($language, $validLanguages)) {
Index: web/interface/themes/default/layout.tpl
===================================================================
--- web/interface/themes/default/layout.tpl	(revision 4029)
+++ web/interface/themes/default/layout.tpl	(working copy)
@@ -65,6 +65,16 @@
               <noscript><input type="submit" value="{translate text="Set"}" /></noscript>
             </form>
           {/if}
+          Select a location: 
+          <form method="post" name="locnForm" action="">
+            <div class="hiddenLabel"><label for="mylocn">{translate text="Location"}:</label></div>
+            <select id="mylocn" name="mylocn" onChange="document.locnForm.submit();">
+            {foreach from=$locationList key=locnCode item=locnName}
+              <option value="{$locnCode}"{if $userLocn == $locnCode} selected{/if}>{translate text=$locnName}</option>
+            {/foreach}
+            </select>
+            <noscript><input type="submit" value="{translate text="Set"}" /></noscript>
+          </form>
         </div>
 
         {if $showTopSearchBox}
Index: web/services/Search/Home.php
===================================================================
--- web/services/Search/Home.php	(revision 4029)
+++ web/services/Search/Home.php	(working copy)
@@ -57,7 +57,9 @@
             (UserAccount::isLoggedIn() ? '1' : '0') . '|' .
             (isset($_SESSION['lastUserLimit']) ? $_SESSION['lastUserLimit'] : '') .
             '|' .
-            (isset($_SESSION['lastUserSort']) ? $_SESSION['lastUserSort'] : '');
+            (isset($_SESSION['lastUserSort']) ? $_SESSION['lastUserSort'] : '') .
+            '|' .
+            isset ($_COOKIE['location']) ? $_COOKIE['location'] : '';
         if (!$interface->is_cached('layout.tpl', $cacheId)) {
             $interface->setPageTitle('Search Home');
             $interface->assign('searchTemplate', 'search.tpl');
Index: web/sys/SearchObject/Solr.php
===================================================================
--- web/sys/SearchObject/Solr.php	(revision 4029)
+++ web/sys/SearchObject/Solr.php	(working copy)
@@ -199,6 +199,9 @@
                 $this->addFilter('illustrated:"Not Illustrated"');
             }
         }
+        if (!empty($_COOKIE['location'])) {
+            $this->addHiddenFilter('building:"' . $_COOKIE['location'] .'"');
+        }
     }
 
     /**

