private static function getFrequencyMenu($index)
 {
     // Get the post variables
     $post = JFactory::getApplication()->input->post;
     $userFrequency = $post->get('frequency_' . $index, null, 'string');
     $html = '<select class="frequency" name="frequency_' . $index . '" id="frequency_' . $index . '">';
     $html .= '<option value=""' . (strcmp($userFrequency, '') == 0 ? ' selected' : '') . '>' . JText::_('PLG_ISSNREGISTRY_FORMS_SELECT') . '</option>';
     foreach (IssnregistryFormsHelper::getFrequencyList() as $frequency) {
         $html .= '<option value="' . $frequency . '"' . (strcmp($userFrequency, $frequency) == 0 ? ' selected' : '') . '>' . JText::_('PLG_ISSNREGISTRY_FORMS_FREQUENCY_' . strtoupper($frequency)) . '</option>';
     }
     $html .= '</select>';
     return $html;
 }
 public function onContentPrepare($context, &$row, &$params, $page = 0)
 {
     // Search in the article text the plugin code and exit if not found
     $regex = "%\\{serials_pub_form\\}%is";
     $found = preg_match_all($regex, $row->text, $matches);
     $count = 0;
     if ($found) {
         foreach ($matches[0] as $value) {
             $html = "";
             // Add plugin css
             $document = JFactory::getDocument();
             $document->addStyleSheet("plugins/content/issnregistry_forms/css/style.css");
             // Add plugin scripts
             JHtml::_('jquery.framework');
             JHtml::_('formbehavior.chosen');
             $document->addScript("plugins/content/issnregistry_forms/scripts/custom.js");
             // Email settings
             $email = $this->params->def('email', '');
             $notifyAdmin = $this->params->def('notify_admin', true);
             // Get max publications count
             $maxPublicationsCount = $this->params->def('max_publications_count', 1);
             // Language settings
             $lang = JFactory::getLanguage();
             // Load the language file in the current site language
             $lang->load('plg_content_issnregistry_forms', JPATH_ADMINISTRATOR, $lang->getTag(), true);
             // Get the post variables
             $post = JFactory::getApplication()->input->post;
             // Get submit button values
             $submitApplicationPt1 = $post->get('submit_application_pt1', null, 'string');
             $submitApplicationPt2 = $post->get('submit_application_pt2', null, 'string');
             $submitApplicationPt3 = $post->get('submit_application_pt3', null, 'string');
             // Get back button values
             $backApplicationPt3 = $post->get('back_application_pt3', null, 'string');
             // Get refresh button value
             $refreshApplicationPt2 = $post->get('refresh_application_pt2', null, 'string');
             // Process
             if (JSession::checkToken() && isset($submitApplicationPt1)) {
                 // Filter input data
                 IssnregistryFormsHelper::filterFields1();
                 // Validate input data
                 $errors = IssnregistryFormsHelper::validateApplicationFormPt1();
                 // If there are no errors, continue processing
                 if (empty($errors)) {
                     // Show the second page
                     $html .= IssnregistryFormsHtmlBuilder::getIssnApplicationFormPt2($maxPublicationsCount);
                 } else {
                     // Show the first page with error messages
                     $html .= IssnregistryFormsHtmlBuilder::getIssnApplicationFormPt1($errors);
                 }
             } else {
                 if (JSession::checkToken() && isset($submitApplicationPt2)) {
                     // Filter input data
                     IssnregistryFormsHelper::filterFields2($maxPublicationsCount);
                     // Validate input data
                     $errors = IssnregistryFormsHelper::validateApplicationFormPt2($maxPublicationsCount);
                     if (empty($errors)) {
                         // Show overview form
                         $html .= IssnregistryFormsHtmlBuilder::getIssnApplicationFormPt3($maxPublicationsCount);
                     } else {
                         // Show the second page with error messages
                         $html .= IssnregistryFormsHtmlBuilder::getIssnApplicationFormPt2($maxPublicationsCount, $errors);
                     }
                 } else {
                     if (JSession::checkToken() && isset($submitApplicationPt3)) {
                         // Validate input data
                         $errorsPt1 = IssnregistryFormsHelper::validateApplicationFormPt1();
                         $errorsPt2 = IssnregistryFormsHelper::validateApplicationFormPt2();
                         if (empty($errorsPt1) && empty($errorsPt2)) {
                             // Save to DB
                             $formId = IssnregistryFormsHelper::saveApplicationToDb($maxPublicationsCount);
                             // If formId is 0 saving donation to DB failed
                             if ($formId == 0) {
                                 // Return error page
                                 $html .= '<div>' . JText::_('PLG_ISSNREGISTRY_FORMS_APPLICATION_ERROR') . '</div>';
                             } else {
                                 // Return success page
                                 $html .= '<div>' . JText::_('PLG_ISSNREGISTRY_FORMS_APPLICATION_SUCCESS') . '</div>';
                                 // Notify admin if necessary
                                 if ($notifyAdmin) {
                                     IssnregistryFormsHelper::notifyAdmin($email, $formId);
                                 }
                             }
                         } else {
                             if (!empty($errorsPt1)) {
                                 // Show the first page with error messages
                                 $html .= IssnregistryFormsHtmlBuilder::getIssnApplicationFormPt1($errorsPt1);
                             } else {
                                 if (!empty($errorsPt2)) {
                                     // Show the second page with error messages
                                     $html .= IssnregistryFormsHtmlBuilder::getIssnApplicationFormPt2($maxPublicationsCount, $errorsPt2);
                                 }
                             }
                         }
                     } else {
                         if (JSession::checkToken() && isset($backApplicationPt3)) {
                             // Back button has been pressed - generate form
                             $html .= IssnregistryFormsHtmlBuilder::getIssnApplicationFormPt2($maxPublicationsCount);
                         } else {
                             if (JSession::checkToken() && isset($refreshApplicationPt2)) {
                                 // Show the second page
                                 $html .= IssnregistryFormsHtmlBuilder::getIssnApplicationFormPt2($maxPublicationsCount);
                             } else {
                                 // Generate form
                                 $html .= IssnregistryFormsHtmlBuilder::getIssnApplicationFormPt1();
                             }
                         }
                     }
                 }
             }
             // Add HTML code
             $replacement[$count] = $html;
             // Increase counter
             $count++;
         }
         for ($i = 0; $i < count($replacement); $i++) {
             $row->text = preg_replace($regex, $replacement[$i], $row->text, 1);
         }
     }
     return true;
 }