public ActionResult LoginAction(string email, string password)
        {
            userLoginStruct u = null;

            u = CRUDuser.LoginFunc(email, password);
            //store session info after login
            if (u.ret != 0 && u.ret != -1)
            {
                Session["uId"]   = u.id;
                Session["uType"] = u.type;
                if (Session["Redirect"] != null)//goto prev page login or signup called from
                {
                    return(RedirectToAction(Session["Redirect"].ToString()));
                }
                else//goto homepage if not redirect availabe
                {
                    return(RedirectToAction("Index"));
                }
            }
            else if (u.ret == -1)//DB connection failed
            {
                return(RedirectToAction("Error", new { param = -1 }));
            }
            else
            {
                return(RedirectToAction("Error", new { param = 4 }));
            }
        }
        //ActionResult without Views
        public ActionResult SignupAction(string email, string name, string usertype, string dateOfBirth, string password)
        {
            int ret;

            ret = CRUDuser.SignupFunc(email, name, usertype, dateOfBirth, password);
            if (ret == 1)//user signed up successfully, goto login page
            {
                return(RedirectToAction("Login"));
            }
            else if (ret == -1)//DB connection failed
            {
                return(RedirectToAction("Error", new { param = -1 }));
            }
            else
            {
                return(RedirectToAction("Error", new { param = 3 }));
            }
        }
        //JsonResults
        public JsonResult CheckEmailAvailable(string email)
        {
            int ret = CRUDuser.EmailAvailableFunc(email);

            return(Json(ret));
        }