public JsonResult Login(loginItem item)
        {
            System.Threading.Thread.Sleep(1500);

            string html = "";
            string msg = "";
            string redirectPage = "";
            userShared us = new userShared(db);
            pageShared ps = new pageShared(db);

            // forget Password Link
            var forgetPasswordPage = ps.getPageByType(pageType.forgetPassword, langId);
            if (forgetPasswordPage != null)
            {
                item.forgetPasswordUrl = langCode + "/" + forgetPasswordPage.url + ".html";
            }

            var enCulture = System.Globalization.CultureInfo.CreateSpecificCulture("en-US");
            var trCulture = System.Globalization.CultureInfo.CreateSpecificCulture("tr-TR");

            item.email = item.email.ToLower(enCulture);

            if (ModelState.IsValid)
            {
                var statuItem = us.getUserRegisterStatuByEmail(item.email);
                switch (statuItem)
                {
                    case registerStatu.registered:

                        var userItem = us.getUserItemByEmailAndPassword(item.email, MD5(item.password));

                        if (userItem != null)
                        {
                            msg = App_GlobalResources.lang.loginSuccess;

                            // Set UserId, User Role , CheckoutProcess
                            setLoginSession(userItem);

                            // Switch Guest to Basket && Redirect
                            redirectPage = basketSwitchAndRedirect(userItem);

                            // Add Cookie
                            if (item.isRememberMe)
                            {
                                HttpCookie myCookie = new HttpCookie("userCookie");
                                myCookie["userHashVal"] = MD5(userItem.email).Substring(0, 7);
                                myCookie["userHashValTwo"] = userItem.password.Substring(0, 7);
                                myCookie.Expires = DateTime.Now.AddMonths(9);
                                Response.Cookies.Add(myCookie);
                            }

                            msg = App_GlobalResources.lang.loginSuccess;
                            msg = getSuccesMessage(msg);

                        }
                        else
                        {
                            msg = App_GlobalResources.lang.loginUnregisteredOrPassword;
                            msg = getErrorMessage(msg);
                        }

                        break;
                    case registerStatu.waitingActivation:

                        var pageMailResent = ps.getPageByType(pageType.activationResent, langId);

                        msg = App_GlobalResources.lang.activationNoApprove;
                        msg = msg.Replace("[email]", item.email);
                        if (pageMailResent != null)
                        {
                            msg = msg.Replace("[activationResent]", (Url.Content("~/") + langCode + "/" + pageMailResent.url + ".html"));
                        }

                        msg = getErrorMessage(msg);

                        break;
                    case registerStatu.ban:

                        msg = getErrorMessage(App_GlobalResources.lang.loginUnregisteredOrPassword);

                        break;
                    case registerStatu.unregistered:
                        msg = getErrorMessage(App_GlobalResources.lang.loginUnregisteredOrPassword);

                        break;

                }

                item.message = msg;
                item.isMessageExist = true;
            }

            html = RenderRazorViewToString("Login", item);
            return Json(new { htmlText = html, redirectPage = redirectPage });
        }