public void createPanel() {
		setTitle("New Counselor...");
		setIconImage(Images.ADD_COUNS_ICON);
		setSize(Constants.STD_DIALOG_WIDTH, Constants.STD_DIALOG_HEIGHT);
		setLocationRelativeTo(getParent());
		contentPanel.setLayout(null);
		
		txtName = new JTextField();
		txtName.setBounds(32, 50, Constants.TEXT_FIELD_WIDTH, 20);
		txtName.setToolTipText("New counselor's name");
		contentPanel.add(txtName);
		txtName.setColumns(10);
		lblName.setBounds(32, 34, 46, 14);
		contentPanel.add(lblName);
		
		lblCabinName.setBounds(32, 81, 61, 14);
		lblCabinName.setToolTipText("Counselor's cabin name");
		contentPanel.add(lblCabinName);
		txtCabinName = new JTextField();
		txtCabinName.addFocusListener(new FocusAdapter() {
			@Override
			public void focusLost(FocusEvent e) {
				for(int i = 0; i < pv.counselors.size(); i++) {
					Counselor c = pv.counselors.get(i);
					if(c.getCabinName().equals(txtCabinName.getText()) && c.getPartner() == null) {
						partnerChooser.setSelectedItem(c);
						break;
					}
				}					
			}
		});
		txtCabinName.setBounds(32, 97, Constants.TEXT_FIELD_WIDTH, 20);
		txtCabinName.setToolTipText("Counselor's cabin name");
		contentPanel.add(txtCabinName);
		txtCabinName.setColumns(10);
		
		lblTeam.setBounds(32, 128, 46, 14);
		contentPanel.add(lblTeam);
		
		teamChooser.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {				
				Team team = (Team) teamChooser.getSelectedItem();
				
				if(team != null) teamColor.setBackground(team.getColor());
				
				updatePartnerChooser(team);
			}
		});
		teamChooser.setBounds(32, 145, Constants.TEXT_FIELD_WIDTH, 20);
		teamChooser.setToolTipText("Choose counselor's team");
		contentPanel.add(teamChooser);
		
		btnAddTeam.setToolTipText("Add team");
		btnAddTeam.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				mainFrame.addTeam.setVisible();
			}
		});
		btnAddTeam.setBounds(169, 144, 89, 23);
		contentPanel.add(btnAddTeam);
		
		lblPartner.setBounds(32, 203, 46, 14);
		contentPanel.add(lblPartner);
		partnerChooser.setBounds(32, 220, Constants.TEXT_FIELD_WIDTH, 20);
		contentPanel.add(partnerChooser);
		
		teamColor.setBorder(BorderFactory.createLineBorder(Color.BLACK));
		teamColor.setToolTipText("Team's color");
		teamColor.setEditable(false);
		teamColor.setBounds(201, 170, 20, 20);
		contentPanel.add(teamColor);
		
		img.setBounds(190, 60, 50, 50);
		contentPanel.add(img);
		
		okButton.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				String name = txtName.getText();
				String cabinName = txtCabinName.getText();
				Team team = (Team) teamChooser.getSelectedItem();
				Counselor partner = (Counselor) partnerChooser.getSelectedItem();
				
				if(name.equals("") || name.trim().equals("") || name == null) {
					JOptionPane.showMessageDialog(AddCounselor.this, "Name cannot be empty.");
				} else if(!StringUtil.isValidString(name)) {
					JOptionPane.showMessageDialog(AddCounselor.this, "Name" + Constants.INVALID_CHAR_SEQ_MSG);
				} else if(!StringUtil.isValidString(cabinName)) {
					JOptionPane.showMessageDialog(AddCounselor.this, "Cabin Name" + Constants.INVALID_CHAR_SEQ_MSG);
				} else {
					Counselor newCounselor = new Counselor(name, cabinName, team, partner);
					
					if(partner != null) {
						if(partner.getTeam() == null && team != null) {
							partner.setTeam(team);
						} else if(team == null && partner.getTeam() != null) {
							newCounselor.setTeam(partner.getTeam());
						}
						
						partner.setPartner(newCounselor);
					}
					
					pv.counselors.add(newCounselor);
					
					pv.sortLists();
					
					System.out.println("Successfully added " + newCounselor.superToString() + ": " + newCounselor.getName());
					
					resetAndDispose();
				}
			}
		});
		
		cancelButton.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				resetAndDispose();
			}
		});
		
		setBackgroundColor(Constants.BACKGROUND);
		setFontColor(Constants.FONT_COLOR);
	}