static function enableMaterialsRequest($forceReload = false)
 {
     if (MaterialsRequest::$materialsRequestEnabled != null && $forceReload == false) {
         return MaterialsRequest::$materialsRequestEnabled;
     }
     global $configArray;
     global $user;
     global $library;
     //First make sure we are enabled in the config file
     if (isset($configArray['MaterialsRequest']) && isset($configArray['MaterialsRequest']['enabled'])) {
         $enableMaterialsRequest = $configArray['MaterialsRequest']['enabled'];
         //Now check if the library allows material requests
         if ($enableMaterialsRequest) {
             if (isset($library) && $library->enableMaterialsRequest == 0) {
                 $enableMaterialsRequest = false;
             } else {
                 if ($user) {
                     $homeLibrary = Library::getPatronHomeLibrary();
                     if (is_null($homeLibrary)) {
                         $enableMaterialsRequest = false;
                     } else {
                         if ($homeLibrary->enableMaterialsRequest == 0) {
                             $enableMaterialsRequest = false;
                         } else {
                             if ($homeLibrary->libraryId != $library->libraryId) {
                                 $enableMaterialsRequest = false;
                             } else {
                                 if (isset($configArray['MaterialsRequest']['allowablePatronTypes'])) {
                                     //Check to see if we need to do additional restrictions by patron type
                                     $allowablePatronTypes = $configArray['MaterialsRequest']['allowablePatronTypes'];
                                     if (strlen($allowablePatronTypes) > 0) {
                                         if (!preg_match("/^{$allowablePatronTypes}\$/i", $user->patronType)) {
                                             $enableMaterialsRequest = false;
                                         }
                                     }
                                 }
                             }
                         }
                     }
                 }
             }
         }
     } else {
         $enableMaterialsRequest = false;
     }
     MaterialsRequest::$materialsRequestEnabled = $enableMaterialsRequest;
     return $enableMaterialsRequest;
 }