ΑΡΧΗ
	ΔΙΑΒΑΣΕ extras, πλήθοςΡαντεβούI, ΛίσταΡαντεβού[]
	bool = false
	
	ΑΝ (extras <> null) ΤΟΤΕ
		ΔΙΑΒΑΣΕ πληροφορίαΡαντεβού, θέσηΡαντεβού
		ΑΝ (πληροφορίαΡαντεβού <> null) ΤΟΤΕ
			ΔΙΑΒΑΣΕ πληροφορίαΡαντεβούSubject, πληροφορίαΡαντεβούDescription, πληροφορίαΡαντεβούLocation, πληροφορίαΡαντεβούDate, πληροφορίαΡαντεβούHour, πληροφορίαΡαντεβούMin
			ΕΜΦΑΝΙΣΕ πληροφορίαΡαντεβούSubject, πληροφορίαΡαντεβούDescription, πληροφορίαΡαντεβούLocation, πληροφορίαΡαντεβούDate, πληροφορίαΡαντεβούHour, πληροφορίαΡαντεβούMin
			ΕΜΦΑΝΙΣΕ deleteButton
		ΤΕΛΟΣ_ΑΝ
		bool = true
	ΑΛΛΙΩΣ
		ΕΜΦΑΝΙΣΕ τρέχουσα ημερομηνία και ώρα συστήματος
	ΤΕΛΟΣ_ΑΝ
	
	ΑΝ (cancelButton == pressed) ΤΟΤΕ
		Ανακατεύθυνση του χρήστη στη κλάση AppointmentActivity
	ΤΕΛΟΣ_ΑΝ
	
	ΑΝ (deleteButton == pressed) ΤΟΤΕ
		ΕΜΦΑΝΙΣΕ "Are you sure you want to delete this appointments?"
		ΑΝ (yesButton == pressed) ΤΟΤΕ
			θέσηI = θέσηΡαντεβού
			κατάσταση = "remove"
			extras = θέσηI + "" + κατάσταση
			ΑΠΟΘΗΚΕΥΣΕ extras
			Ανακατεύθυνση του χρήστη στη κλάση AppointmentActivity
		ΤΕΛΟΣ_ΑΝ
	ΤΕΛΟΣ_ΑΝ
	
	ΑΝ (doneButton == pressed) ΤΟΤΕ
		cancel = false
		
		ΑΝ (subjectText == null) ΤΟΤΕ
			ΕΜΦΑΝΙΣΕ "This field is required!"
			cancel = true
		ΤΕΛΟΣ_ΑΝ
		
		ΑΝ (locationText == null) ΤΟΤΕ
			ΕΜΦΑΝΙΣΕ "This field is required!"
			cancel = true
		ΤΕΛΟΣ_ΑΝ
		
		ΑΝ (selectedYear < currentYear) ΤΟΤΕ
			ΕΜΦΑΝΙΣΕ "Invalid year!"
			cancel = true
		ΤΕΛΟΣ_ΑΝ
		
		ΑΝ ((selectedYear == currentYear) && (selectedMonth < currentMonth)) ΤΟΤΕ
			ΕΜΦΑΝΙΣΕ "Invalid month!"
			cancel = true
		ΤΕΛΟΣ_ΑΝ
		
		ΑΝ ((selectedYear == currentYear) && (selectedMonth == selectedMonth) && (selectedDay < selectedDay)) ΤΟΤΕ
			ΕΜΦΑΝΙΣΕ "Invalid day!"
			cancel = true
		ΤΕΛΟΣ_ΑΝ
		
		ΑΝ ((selectedYear == currentYear) && (selectedMonth == selectedMonth) && (selectedDay == selectedDay) && (selectedHour < selectedHour)) ΤΟΤΕ
			ΕΜΦΑΝΙΣΕ "Invalid hour!"
			cancel = true
		ΤΕΛΟΣ_ΑΝ
		
		ΑΝ (πλήθοςΡαντεβούI >= 1) ΤΟΤΕ
			ΓΙΑ k ΑΠΟ 0 ΜΕΧΡΙ πλήθοςΡαντεβούI ΜΕ ΒΗΜΑ 1
			
				ΑΝ (ΛίσταΡαντεβού[k] <> "Your Appointments") ΤΟΤΕ
					ΔΙΑΒΑΣΕ ΛίσταΡαντεβού[k]
					ΔΙΑΒΑΣΕ curAppointHour, curAppointMin
					
					ΑΝ (bool == true) ΤΟΤΕ
						ΑΝ ((πληροφορίαΡαντεβούHour == curAppointHour) && (πληροφορίαΡαντεβούMin == curAppointMin)) ΤΟΤΕ
							continue
						ΤΕΛΟΣ_ΑΝ
					ΤΕΛΟΣ_ΑΝ
					
					ΑΝ ((selectedYear == currentYear) && (selectedMonth == selectedMonth) && (selectedDay == selectedDay)) ΤΟΤΕ
						diffHour = selectedHour - curAppointHour
						ΑΝ (diffHour == 0) ΤΟΤΕ
							diffMint = selectedMin - curAppointMin
							ΑΝ (((diffMint >= 0) && (diffMint <= 30)) || ((diffMint <= 0) && (diffMint >= -30))) ΤΟΤΕ
								ΕΜΦΑΝΙΣΕ "There is another appointment in the next 30 minutes, please change the start hour!"
								cancel = true
								break
							ΤΕΛΟΣ_ΑΝ
						ΑΛΛΙΩΣ ΑΝ (diffHour == 1) ΤΟΤΕ
							diffMint = (59 - curAppointMin) + selectedMin
							ΑΝ ((diffMint >= 0) && (diffMint <= 30)) ΤΟΤΕ
								ΕΜΦΑΝΙΣΕ "There is another appointment in the next 30 minutes, please change the start hour!"
								cancel = true
								break
							ΤΕΛΟΣ_ΑΝ
						ΑΛΛΙΩΣ ΑΝ (diffHour == -1) ΤΟΤΕ
							diffMint = (59 - selectedMin) + curAppointMin
							ΑΝ ((diffMint >= 0) && (diffMint <= 30)) ΤΟΤΕ
								ΕΜΦΑΝΙΣΕ "There is another appointment in the next 30 minutes, please change the start hour!"
								cancel = true
								break
							ΤΕΛΟΣ_ΑΝ
						ΤΕΛΟΣ_ΑΝ
					ΤΕΛΟΣ_ΑΝ
				ΤΕΛΟΣ_ΑΝ
			ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
		ΤΕΛΟΣ_ΑΝ
		
		ΑΝ (cancel == false) ΤΟΤΕ
			ΑΝ (extras <> null) ΤΟΤΕ
				θέσηI = θέσηΡαντεβού
				κατάσταση = "change"
				extras = θέσηI + "" + κατάσταση
				data = πλήθοςΡαντεβούI + "" + πληροφορίαΡαντεβού
				ΑΠΟΘΗΚΕΥΣΕ extras
			ΑΛΛΙΩΣ
				πλήθοςΡαντεβούI = πλήθοςΡαντεβούI + 1
				data = πλήθοςΡαντεβούI + "" + πληροφορίαΡαντεβού
				ΑΠΟΘΗΚΕΥΣΕ πλήθοςΡαντεβούI
			ΤΕΛΟΣ_ΑΝ
			ΑΠΟΘΗΚΕΥΣΕ data
			Ανακατεύθυνση του χρήστη στη κλάση AppointmentActivity
		ΤΕΛΟΣ_ΑΝ
	ΤΕΛΟΣ_ΑΝ	
ΤΕΛΟΣ