function forgot_password()
{
    global $Userservice;
    global $UserResetPassword;
    global $getRouter;
    global $language;
    global $getMailer;
    $app = \Slim\Slim::getInstance();
    $app->response->headers->set('Content-Type', 'application/json');
    $app->response->setStatus(200);
    //Lang Call Start
    $hammu_lang_id = $app->request()->params("lang_id");
    if (!empty($hammu_lang_id)) {
        getCurrentLanguages($hammu_lang_id);
    }
    //Lang Call end
    $email = $app->request()->params('email');
    $user = $Userservice->findByEmail($email);
    if (empty($user)) {
        $messages = $language->text("hammu", "forgot_no_user_with_email");
        //"There is no user with this email address";
        $return_data = array("response_status" => '0', "response_message" => $messages);
        $app->response->setBody(json_encode($return_data));
    } else {
        $resetPassword = $Userservice->findResetPasswordByUserId($user->getId());
        if ($resetPassword !== null) {
            if ($resetPassword->getUpdateTimeStamp() > time()) {
                $messages = $language->text("hammu", "forgot_reset_code_already_sent");
                //"Reset Code Already Sent.Please try again in 10 minutes.";
                $return_data = array("response_status" => '0', "response_message" => $messages);
                $app->response->setBody(json_encode($return_data));
            } else {
                $resetPassword->setUpdateTimeStamp($resetPassword->getUpdateTimeStamp() + 600);
                $UserResetPassword->save($resetPassword);
            }
        } else {
            $resetPassword = getNewResetPassword($user->getId());
        }
        $vars = array('code' => $resetPassword->getCode(), 'username' => $user->getUsername(), 'requestUrl' => $getRouter->urlForRoute('base.reset_user_password_request'), 'resetUrl' => $getRouter->urlForRoute('base.reset_user_password', array('code' => $resetPassword->getCode())));
        $mail = $getMailer->createMail();
        $mail->addRecipientEmail($email);
        $mail->setSubject($language->text('hammu', 'reset_password_mail_subject'));
        $mail->setTextContent($language->text('hammu', 'reset_password_mail_content_txt', $vars));
        $mail->setHtmlContent($language->text('hammu', 'reset_password_mail_content_html', $vars));
        $getMailer->send($mail);
        $messages = $language->text("hammu", "forgot_info_sent_to_your_email");
        //"The information on changing and confirming your new password sent to your email.";
        $return_data = array("response_status" => '1', "response_message" => $messages);
        $app->response->setBody(json_encode($return_data));
    }
}
function forgot_password()
{
    global $Userservice;
    global $UserResetPassword;
    global $getRouter;
    global $language;
    global $getMailer;
    $app = \Slim\Slim::getInstance();
    $app->response->headers->set('Content-Type', 'application/json');
    $app->response->setStatus(200);
    $email = $app->request()->params('email');
    $user = $Userservice->findByEmail($email);
    $lang_id = (int) $app->request()->params("lang_id");
    $currentLanguageId = getCurrentLanguages($lang_id);
    if (empty($user)) {
        if ($currentLanguageId == '32') {
            $messages = "Es gibt keinen Benutzer mit dieser Email-Adresse";
        } else {
            if ($currentLanguageId == '33') {
                $messages = "No hay ningún usuario con esta direccion de email";
            } else {
                $messages = "There is no user with this Email Address";
            }
        }
        $return_data = array("response_status" => '0', "response_message" => $messages);
        $app->response->setBody(json_encode($return_data));
    } else {
        $resetPassword = $Userservice->findResetPasswordByUserId($user->getId());
        if ($resetPassword !== null) {
            if ($resetPassword->getUpdateTimeStamp() > time()) {
                if ($currentLanguageId == '32') {
                    $messages = "Rückstellungscode bereits zugestellt. Bitte versuchen Sie es in 10 Minuten nochmals.";
                } else {
                    if ($currentLanguageId == '33') {
                        $messages = "Código de reseteo enviado. Vuelva a intentarlo en 10 minutos";
                    } else {
                        $messages = "Reset Code already sent. Please try again in 10 minutes";
                    }
                }
                $return_data = array("response_status" => '0', "response_message" => $messages);
                $app->response->setBody(json_encode($return_data));
            } else {
                $resetPassword->setUpdateTimeStamp($resetPassword->getUpdateTimeStamp() + 600);
                $UserResetPassword->save($resetPassword);
            }
        } else {
            $resetPassword = getNewResetPassword($user->getId());
        }
        $vars = array('code' => $resetPassword->getCode(), 'username' => $user->getUsername(), 'requestUrl' => $getRouter->urlForRoute('base.reset_user_password_request'), 'resetUrl' => $getRouter->urlForRoute('base.reset_user_password', array('code' => $resetPassword->getCode())));
        $mail = $getMailer->createMail();
        $mail->addRecipientEmail($email);
        $mail->setSubject($language->text('hammu', 'reset_password_mail_subject'));
        $mail->setTextContent($language->text('hammu', 'reset_password_mail_content_txt', $vars));
        $mail->setHtmlContent($language->text('hammu', 'reset_password_mail_content_html', $vars));
        $getMailer->send($mail);
        if ($currentLanguageId == '32') {
            $messages = "Eine Bestätigung für ihr neues Passwort wurde an ihre Email-Adresse gesandt.";
        } else {
            if ($currentLanguageId == '33') {
                $messages = "El cambio de información y nueva contraseña han sido enviadas a su email";
            } else {
                $messages = "Confirmation for your new Password sent to your Email Address";
            }
        }
        $return_data = array("response_status" => '1', "response_message" => $messages);
        $app->response->setBody(json_encode($return_data));
    }
}