protected void btnUpdateProfile_Click(object sender, EventArgs e)
        {
            int memberID = 0;
            try
            {
                memberID = Convert.ToInt32(Request.QueryString["id"]);
            }
            catch (NullReferenceException)
            {

            }
            MemberHandler memberHandler = new MemberHandler();
            Member member = new Member();
            member = memberHandler.GetMemberDetails(memberID);

            member.MemberID = memberID;
            member.FirstName = txtFirstName.Text;
            member.Surname = txtSurname.Text;
            member.AddressLine1 = txtAddressLine1.Text;
            member.AddressLine2 = txtAddressLine2.Text;
            member.Suburb = txtSuburb.Text;
            member.PostalCode = txtPostalCode.Text;
            member.City = txtCity.Text;
            member.PhoneNo = txtPhoneNo.Text;
            member.Email = txtEmail.Text;
            member.Password = txtPassword.Text;
            member.Role = Convert.ToInt32(ddlRole.SelectedValue);

            if (txtPassword.Text == "")
                memberHandler.UpdateMember(member);
            else if (txtPassword.Text != "")
                memberHandler.UpdateMemberWithPassword(member);

            Response.Redirect("Profile.aspx?id=" + memberID.ToString());
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            int myRole = 1;
            bool loggedIn = false;
            int memberID = 0;
            bool intTest = false;
            intTest = int.TryParse(Request.QueryString["id"], out memberID);

            if (memberID == 0)
                Response.Redirect("Default.aspx");

            if (Session["MemberID"] != null)
                loggedIn = true;

            if (loggedIn == false)
                Response.Redirect("Login.aspx");

            MemberHandler memberHandler = new MemberHandler();
            Member member = new Member();
            member = memberHandler.GetMemberDetails(memberID);

            //Begin check to see if this is a members own profile or if owner is viewing it
            myRole = memberHandler.GetRole((int)Session["MemberID"]);
            if (myRole != 3 && (int)Session["MemberID"] != memberID)
            {
                Response.Redirect("Default.aspx");
            }
            //End check

            if (loggedIn == true)
            {
                try
                {
                    Page.Title = "EASiBOOK :: Profile for " + member.FirstName + " " + member.Surname;
                }
                catch (NullReferenceException)
                {
                    Response.Redirect("Default.aspx");
                }
                litCustomerName.Text = "Profile for " + member.FirstName + " " + member.Surname;

                lblFirstName.Text = member.FirstName;
                lblSurname.Text = member.Surname;
                lblAddressLine1.Text = member.AddressLine1;
                lblAddressLine2.Text = member.AddressLine2;
                lblSuburb.Text = member.Suburb;
                lblPostalCode.Text = member.PostalCode;
                lblCity.Text = member.City;
                lblPhoneNo.Text = member.PhoneNo;
                lblEmail.Text = member.Email;

                if (member.Role == 1)
                    lblRole.Text = "Customer";
                else if (member.Role == 2)
                    lblRole.Text = "Booking Admin";
                if (member.Role == 3)
                    lblRole.Text = "Owner";
            }
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            int myRole = 1;
            bool loggedIn = false;
            int memberID = 0;
            bool intTest = false;
            intTest = int.TryParse(Request.QueryString["id"], out memberID);

            if (memberID == 0)
                Response.Redirect("Default.aspx");
            if (Session["MemberID"] != null)
                loggedIn = true;
            if (loggedIn == false)
                Response.Redirect("Login.aspx");

            MemberHandler memberHandler = new MemberHandler();
            Member member = new Member();
            member = memberHandler.GetMemberDetails(memberID);

            //Begin check to see if this is a members own profile or if owner is viewing it
            myRole = memberHandler.GetRole((int)Session["MemberID"]);
            if (myRole != 3 && (int)Session["MemberID"] != memberID)
            {
                Response.Redirect("Default.aspx");
            }
            //End check

            if (myRole >= 3 && memberID != (int)Session["MemberID"])
                ddlRole.Enabled = true;

            if (!IsPostBack)
            {
                try
                {
                    txtEmail.Text = member.Email;
                    txtFirstName.Text = member.FirstName;
                    txtSurname.Text = member.Surname;
                    txtAddressLine1.Text = member.AddressLine1;
                    txtAddressLine2.Text = member.AddressLine2;
                    txtSuburb.Text = member.Suburb;
                    txtPostalCode.Text = member.PostalCode;
                    txtCity.Text = member.City;
                    txtPhoneNo.Text = member.PhoneNo;
                    if (member.Role == 1)
                        ddlRole.SelectedIndex = 0;
                    else if (member.Role == 2)
                        ddlRole.SelectedIndex = 1;
                    else if (member.Role == 3)
                        ddlRole.SelectedIndex = 2;
                }
                catch (NullReferenceException)
                {
                    Response.Redirect("Default.aspx");
                }

            }
        }
        protected void SendMail(int bookingID, bool confirmed)
        {
            //get member who created the booking
            BookingHandler bookingHandler = new BookingHandler();
            int memberID = bookingHandler.GetBookingOwner(bookingID);

            //the get members email
            MemberHandler memberHandler = new MemberHandler();
            Member member = new Member();
            member = memberHandler.GetMemberDetails(memberID);

            BusinessHandler businessHandler = null;
            Business business = null;

            //get business email and password
            string businessName, businessEmail, businessPassword, emailServer;
            int port;

            businessHandler = new BusinessHandler();
            business = new Business();
            business = businessHandler.GetBusinessDetails();

            businessName = business.Name;
            businessEmail = business.Email;
            businessPassword = business.EmailPassword;
            emailServer = business.EmailServer;
            port = business.EmailPort;

            //send email
            MailMessage mail = new MailMessage();
            SmtpClient smtpClient = new SmtpClient(emailServer);
            mail.From = new MailAddress(businessEmail);
            mail.To.Add(member.Email);

            if (confirmed)
            {
                mail.Subject = businessName + " Booking Confirmed";
                mail.Body = "We are pleased to inform you, your booking at " + businessName + " has been confirmed. Please supply the following booking referance number when checking in: " + bookingID.ToString();
            }
            else
            {
                mail.Subject = businessName + " Booking Declined";
                mail.Body = "We are sad to inform you, your booking at " + businessName + " has been declined. If you have any queries please contact us for assistance.";
            }

            smtpClient.Port = port;
            smtpClient.Credentials = new NetworkCredential(businessEmail, businessPassword);
            smtpClient.EnableSsl = true;

            smtpClient.Send(mail);
            memberHandler.UpdateMemberPassword(member);

                /*
                lblProgress.CssClass = "label label-success";
                lblProgress.Text = "An email was sent, check you email for your new password.";

                //delay redirect to alert user of page change
                lblRedirect.Text = "Redirecting to log in, in 5 seconds.";
                Response.Write("<script type=\"text/javascript\">setTimeout(function () { window.location.href = \"Login.aspx\"; }, 5000);</script>");
            */
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            int myRole = 1;
            bool loggedIn = false;
            int memberID = 0;
            bool intTest = false;
            intTest = int.TryParse(Request.QueryString["id"], out memberID);
            if (memberID == 0)
                Response.Redirect("Default.aspx");
            //Checks for a login
            if (Session["MemberID"] != null)
                loggedIn = true;
            if (loggedIn == false)
            {
                Session["LoginRedirect"] = "BookingHistory.aspx?id=";
                Response.Redirect("Login.aspx");
            }
            //End of login check
            MemberHandler memberHandler = new MemberHandler();
            Member member = memberHandler.GetMemberDetails(memberID);
            try
            {
                litMemberName.Text = member.FirstName + ' ' + member.Surname;
            }
            catch (NullReferenceException)
            {
                Response.Redirect("Default.aspx");
            }
            //Checks if role is high enough
            myRole = memberHandler.GetRole((int)Session["MemberID"]);
            if (myRole != 3 && (int)Session["MemberID"] != memberID)
            {
                Response.Redirect("Default.aspx");
            }
            //End check for role

            BookingHandler bookingHandler = new BookingHandler();
            List<Booking> bookingHistory = bookingHandler.GetBookingHistory(memberID);
            if (bookingHistory == null)
                litError.Text = "<h3 style=\"color:red\">There are no previous or current bookings</h3><br />";
            else
            {
                int bookingID = 0;
                string htmlOutput = "";
                string proofOfPayment = "No";
                string arriveDate = "";
                string departDate = "";
                string uploadProofText = "Upload";
                string colour = "blue";
                string status = "";
                string cancelButton = "";
                for (int i = 0; i < bookingHistory.Count; i++)
                {
                    bookingID = bookingHistory[i].BookingID;
                    arriveDate = bookingHistory[i].ArriveDate.Year.ToString() + '-' + bookingHistory[i].ArriveDate.Month.ToString() + '-' + bookingHistory[i].ArriveDate.Day.ToString();
                    departDate = bookingHistory[i].DepartDate.Year.ToString() + '-' + bookingHistory[i].DepartDate.Month.ToString() + '-' + bookingHistory[i].DepartDate.Day.ToString();
                    if (bookingHistory[i].ProofOfPayment == null || bookingHistory[i].ProofOfPayment == "")
                    {
                        proofOfPayment = "No";
                        uploadProofText = "Upload";
                    }
                    else
                    {
                        proofOfPayment = "Yes";
                        uploadProofText = "Re-Upload";
                    }
                    switch (bookingHistory[i].Status)
                    {
                        case "P": colour = "#FF6600";
                            status = "Provisional";
                            break;
                        case "C": colour = "#00C0FF";
                            status = "Cancelled";
                            break;
                        case "D": colour = "#FF3300";
                            status = "Declined";
                            break;
                        case "A": colour = "#66FF66";
                            status = "Confirmed";
                            break;
                        default: colour = "#66CCFF";
                            break;
                    }
                    if (bookingHistory[i].Status != "C" && bookingHistory[i].Status != "D" && bookingHistory[i].ArriveDate > DateTime.Now.AddDays(-1))
                        cancelButton = "<a class=\"btn btn-danger\" style=\"width:130px;height:30px;\" href=\"CancelBooking.aspx?id=" + bookingID.ToString() + "&return=" + memberID.ToString() + "\">Cancel Booking</a>";
                    else
                        cancelButton = "<strong>Unavailable</strong>";

                    htmlOutput += "<tr style=\"background-color:" + colour + "\"><td>" + bookingID.ToString() + "</td><td>" + arriveDate + "</td><td>" + departDate + "</td><td>" + status + "</td><td>" + proofOfPayment + "</td><td>" + "<a class=\"btn btn-success\" style=\"width:100px;height:30px;\" href=\"UploadProof.aspx?id=" + bookingID.ToString() + "\">" + uploadProofText + "</a>" + "</td><td><a class=\"btn btn-warning\" style=\"width:100px;height:30px;\" href=\"Invoice.aspx?id=" + bookingID.ToString() + "\">Invoice</a></td><td>" + cancelButton + "</td></tr>\n";
                }
                litBookingHistory.Text = htmlOutput;
            }
        }