public void actionPerformed(ActionEvent arg0) {
				//check that pet has been found after searching
				if(!(txtPetSize_Boarding.isEnabled() && txtPetType_Boarding.isEnabled())){
					JOptionPane.showMessageDialog(panelBoarding,
							"Valid pet has not been selected. Please search for a pet.",
							"Pet not selected", JOptionPane.INFORMATION_MESSAGE);
					return;
				}
				//check that other fields have been input
				if(((JDateChooser) dateChooserFrom_Boarding).getDate() == null || ((JDateChooser) dateChooserTo_Boarding).getDate() == null){
					JOptionPane.showMessageDialog(panelBoarding,
							"Please select a valid date range for the boarding session.",
							"Date not selected", JOptionPane.INFORMATION_MESSAGE);
				}
				
				//gather field info
				Date start = ((JDateChooser) dateChooserFrom_Boarding).getDate();
				Date end = ((JDateChooser) dateChooserTo_Boarding).getDate();
				String PetTypeString = txtPetType_Boarding.getText();
				String PetSizeString = txtPetSize_Boarding.getText();
				Pet.Type PetType = Pet.createType(PetTypeString);
				Pet.Size PetSize = Pet.createSize(PetSizeString);
				String ownerFirstName = txtFirstName_Boarding.getText();
				String ownerLastName = txtLastName_Boarding.getText();
				String petName = txtPetName_Boarding.getText();
				String Notes = editorPaneNotes_Boarding.getText();
				
				//create options
				Vector<Boarding.Options> Options = new Vector<Boarding.Options>();
				if(chckbxBathinggrooming_Boarding.isSelected())
					Options.add(Boarding.Options.bathgroom);
				if(chckbxAdditionalPlayTime_Boarding.isSelected())
					Options.add(Boarding.Options.addplaytime);
				if(chckbxDentalCleaning_Boarding.isSelected())
					Options.add(Boarding.Options.dentalcleaning);
				if(chckbxLowFatFood_Boarding.isSelected())
					Options.add(Boarding.Options.lowfatfood);
				
				//create kennel
				Boarding.Kennel kennel;
				if(PetType == Pet.Type.cat)
					kennel = Boarding.Kennel.cat;
				else if(PetSize == Pet.Size.small)
					kennel = Boarding.Kennel.smallDog;
				else
					kennel = Boarding.Kennel.largeDog;
				
				//create pet
				Owner owner = new Owner(ownerFirstName, ownerLastName, "", "", "", "",
						"");
				int nOwnerID = 0;
				try {
					nOwnerID = owner.getID();
				} catch (SQLException e) {
					JOptionPane.showMessageDialog(panelBoarding,
							"Owner not found.  Please create a new record.",
							"Not Found", JOptionPane.INFORMATION_MESSAGE);
					txtPetSize_Boarding.setEnabled(false);
					txtPetType_Boarding.setEnabled(false);
					txtPetSize_Boarding.setText("Size");
					txtPetType_Boarding.setText("Type");
					return;
				}
				Pet boardingPet = null;
				int nPetID = 0;
				if (nOwnerID != 0) {
					/*---- Get Pet ----*/
					Pet tempPet = new Pet(Pet.Type.cat, petName, null, null,
							null, null, null, null, null, null, null);
					try {
						nPetID = tempPet.getID(nOwnerID);
						boardingPet = Pet.getPetByID(nPetID);
					} catch (SQLException e1) {
						JOptionPane.showMessageDialog(panelBoarding,
								"Pet not found.  Please create a new record.",
								"Not Found", JOptionPane.INFORMATION_MESSAGE);
						txtPetSize_Boarding.setEnabled(false);
						txtPetType_Boarding.setEnabled(false);
						txtPetSize_Boarding.setText("Size");
						txtPetType_Boarding.setText("Type");
						return;
					}
				}
				
				//check if open kennels exist
				if(!Boarding.checkDateRange(start, end, PetType, PetSize)){
					JOptionPane.showMessageDialog(panelBoarding,
							"No open kennels are available for the selected pet during the given dates",
							"Kennels Unavailable", JOptionPane.INFORMATION_MESSAGE);
					return;
				}
					
				
				//create boarding session
				Boarding newBoarding = new Boarding(start, end, boardingPet, kennel, Notes, Options);
				
				//add to DB
				try {
					newBoarding.addToDB(nPetID);
					clearBoardingUI();
				} catch (SQLException e) {
					JOptionPane.showMessageDialog(panelBoarding,
							"Session could not be added at this time.",
							"Error", JOptionPane.ERROR_MESSAGE);
					return;
				}
				
				// Refresh the Boarding Calendar
				calendarViewBoarding.refreshBoardingCalendar();
			}