private function showEditRoomPage()
 {
     if (WebRequest::wasPosted()) {
         try {
             // get variables
             $rname = WebRequest::post("rname");
             $rtype = WebRequest::postInt("rtype");
             $rmin = WebRequest::postInt("rmin");
             $rmax = WebRequest::postInt("rmax");
             $rprice = WebRequest::postFloat("rprice");
             $id = WebRequest::getInt("id");
             // data validation
             if ($rname == "") {
                 throw new CreateRoomException("blank-roomname");
             }
             if ($rtype == 0) {
                 throw new CreateRoomException("blank-roomtype");
             }
             if ($rmax < 1 || $rmin < 0) {
                 throw new CreateRoomException("room-capacity-too-small");
             }
             if ($rmin > $rmax) {
                 throw new CreateRoomException("room-capacity-min-gt-max");
             }
             if ($rprice != abs($rprice)) {
                 throw new CreateRoomException("room-price-negative");
             }
             $room = Room::getById($id);
             if ($room == null) {
                 throw new Exception("Room does not exist");
             }
             // set values
             $room->setName($rname);
             $room->setType($rtype);
             $room->setMinPeople($rmin);
             $room->setMaxPeople($rmax);
             $room->setPrice($rprice);
             $room->save();
             global $cScriptPath;
             $this->mHeaders[] = "Location: {$cScriptPath}/Rooms";
         } catch (CreateRoomException $ex) {
             $this->mBasePage = "mgmt/roomEdit.tpl";
             $this->error($ex->getMessage());
         }
     } else {
         $this->mBasePage = "mgmt/roomEdit.tpl";
         $room = Room::getById(WebRequest::getInt("id"));
         if ($room == null) {
             throw new Exception("Room does not exist");
         }
         $this->mSmarty->assign("roomid", $room->getId());
         $this->mSmarty->assign("rname", $room->getName());
         $this->mSmarty->assign("rmin", $room->getMinPeople());
         $this->mSmarty->assign("rmax", $room->getMaxPeople());
         $this->mSmarty->assign("rprice", $room->getPrice());
         $this->mSmarty->assign("rtype", $room->getType()->getId());
     }
     $this->mSmarty->assign("rtlist", RoomType::$data);
 }