public function signupAction()
 {
     $form = new Application_Form_SignUp();
     $request = $this->getRequest();
     if ($request->isPost()) {
         if ($form->isValid($request->getPost())) {
             $data = $form->getValues();
             $data['password'] = md5($data['password1']);
             // MD5
             unset($data['password1']);
             unset($data['password2']);
             $data['hash'] = md5(rand(1, 1000));
             $currencyMapper = new Application_Model_CurrencyMapper();
             $currency = $currencyMapper->findByCode($data['currency_code']);
             if (!$currency->id) {
                 $data['currency_id'] = $currencyMapper->getDefaultCurrency()->id;
             } else {
                 $data['currency_id'] = $currency->id;
             }
             $user = new Application_Model_User($data);
             $userMapper = new Application_Model_UserMapper();
             try {
                 $userMapper->insert($user);
                 $mailMapper = new Application_Model_MailsettingMapper();
                 $default_config_id = $mailMapper->getDefault();
                 $mailsetting = $mailMapper->getConfig($default_config_id);
                 $obj = new My_Class_Cript();
                 $config = array('auth' => 'login', 'username' => $mailsetting->email, 'password' => $obj->decript($mailsetting->password), 'ssl' => $mailsetting->stype, 'port' => $mailsetting->port);
                 $transport = new Zend_Mail_Transport_Smtp($mailsetting->host, $config);
                 $mail = new Zend_Mail();
                 $message = "<p>\n                                Thanks for signing up!\n                                Your account has been created, activate your account by pressing the url below.\n                            </p>\n                            <p>-----------------------</p>\n                            <p><a href='http://" . SITE_NAME . "/auth/verify?email=" . $user->email . "&hash=" . $user->hash . "'>Click Here</a> to activate your account</p>";
                 $mail->setBodyHtml($message);
                 $mail->setFrom('*****@*****.**', 'Products-Pilot');
                 $mail->addTo($data['email'], 'You');
                 $mail->setSubject('Account Validation');
                 if ($mail->send($transport)) {
                     $this->_helper->getHelper('FlashMessenger')->addMessage('Your account has been made please verify it by clicking the activation link that has been send to your email.', 'info');
                     return $this->_helper->redirector('login');
                 } else {
                     $userMapper->delete($user);
                 }
             } catch (Exception $e) {
                 $message = $e->getMessage();
                 if ($e instanceof Zend_Db_Statement_Mysqli_Exception) {
                     if ($e->getCode() == 1062) {
                         $message = 'This email is already registered';
                     } else {
                         $message = 'Something goes wrong';
                     }
                 } else {
                     $userMapper->delete($user);
                     $message = 'Mail service error: ' . $e->getMessage();
                 }
                 $this->_helper->getHelper('FlashMessenger')->addMessage($message, 'error');
                 $this->_helper->redirector('signup');
             }
         } else {
             foreach ($form->getMessages() as $error) {
                 $this->_helper->getHelper('FlashMessenger')->addMessage(array_shift(array_values($error)), 'error');
                 $this->_helper->redirector('signup');
                 //var_dump(array_shift(array_values($error)));
             }
         }
     }
     $this->view->form = $form;
 }