public function generateFormStart()
 {
     global $wgOut;
     $form = parent::generateBannerHeader();
     $form .= Xml::openElement('table', array('width' => '100%', 'cellspacing' => 0, 'cellpadding' => 0, 'border' => 0));
     $form .= Xml::openElement('tr');
     $form .= Xml::openElement('td', array('id' => 'appeal', 'valign' => 'top'));
     $template = self::generateTextTemplate();
     $form .= $template;
     $form .= Xml::closeElement('td');
     $form .= Xml::openElement('td', array('id' => 'donate', 'valign' => 'top'));
     // add noscript tags for javascript disabled browsers
     $form .= $this->getNoScript();
     $form .= Xml::tags('h2', array('id' => 'donate-head'), wfMsg('donate_interface-please-complete'));
     // provide a place at the top of the form for displaying general messages
     if ($this->form_errors['general']) {
         $form .= Xml::openElement('div', array('id' => 'mw-payflow-general-error'));
         if (is_array($this->form_errors['general'])) {
             foreach ($this->form_errors['general'] as $this->form_errors_msg) {
                 $form .= Xml::tags('p', array('class' => 'creditcard-error-msg'), $this->form_errors_msg);
             }
         } else {
             $form .= Xml::tags('p', array('class' => 'creditcard-error-msg'), $this->form_errors_msg);
         }
         $form .= Xml::closeElement('div');
         // close div#mw-payflow-general-error
     }
     // Xml::element seems to convert html to htmlentities
     $form .= "<p class='creditcard-error-msg'>" . $this->form_errors['retryMsg'] . "</p>";
     $form .= Xml::openElement('form', array('name' => 'payment', 'method' => 'post', 'action' => $this->getNoCacheAction(), 'onsubmit' => 'return formCheck(this)', 'autocomplete' => 'off'));
     $form .= $this->generateBillingContainer();
     return $form;
 }
 public function generateFormStart()
 {
     global $wgScriptPath;
     $form = parent::generateBannerHeader();
     $form .= Xml::openElement('table', array('width' => '100%', 'cellspacing' => 0, 'cellpadding' => 0, 'border' => 0));
     $form .= Xml::openElement('tr');
     $form .= Xml::openElement('td', array('id' => 'appeal', 'valign' => 'top'));
     $form .= Xml::openElement('div', array('id' => 'premium-confirmation'));
     $form .= Xml::tags('div', array('id' => 'premium-header'), wfMsg('donate_interface-tshirt-confirmation'));
     $form .= Xml::element('img', array('src' => $wgScriptPath . "/extensions/DonationInterface/gateway_forms/includes/wikipedia-ten-tshirt-front.png", 'width' => '300', 'height' => '280')) . "<br/>";
     $form .= Xml::openElement('div', array('id' => 'premium-values'));
     $form .= Xml::openElement('div', array('id' => 'premium-size'));
     $sizeDisplay = '<span id="size-display">' . $this->getEscapedValue('size') . '</span>';
     $form .= wfMsg('donate_interface-shirt-size-2', $sizeDisplay);
     $form .= Xml::closeElement('div');
     // close div#premium-size
     $form .= wfMsg('donate_interface-on-the-back') . "<br/>";
     $form .= Xml::openElement('div', array('id' => 'premium-language'));
     $form .= Xml::element('img', array('src' => $wgScriptPath . "/extensions/DonationInterface/gateway_forms/includes/wordmarks/" . $this->getEscapedValue('premium_language') . "-wordmark.png", 'width' => '200', 'height' => '92'));
     $form .= Xml::closeElement('div');
     // close div#premium-language
     $form .= Xml::closeElement('div');
     // close div#premium-values
     $form .= Xml::closeElement('div');
     // close div#premium-confirmation
     $form .= Xml::closeElement('td');
     $form .= Xml::openElement('td', array('id' => 'donate', 'valign' => 'top'));
     // add noscript tags for javascript disabled browsers
     $form .= $this->getNoScript();
     $form .= Xml::tags('h2', array('id' => 'donate-head'), wfMsg('donate_interface-please-complete'));
     // provide a place at the top of the form for displaying general messages
     if ($this->form_errors['general']) {
         $form .= Xml::openElement('div', array('id' => 'mw-payflow-general-error'));
         if (is_array($this->form_errors['general'])) {
             foreach ($this->form_errors['general'] as $this->form_errors_msg) {
                 $form .= Xml::tags('p', array('class' => 'creditcard-error-msg'), $this->form_errors_msg);
             }
         } else {
             $form .= Xml::tags('p', array('class' => 'creditcard-error-msg'), $this->form_errors_msg);
         }
         $form .= Xml::closeElement('div');
         // close div#mw-payflow-general-error
     }
     // Xml::element seems to convert html to htmlentities
     $form .= "<p class='creditcard-error-msg'>" . $this->form_errors['retryMsg'] . "</p>";
     $form .= Xml::openElement('form', array('name' => 'payment', 'method' => 'post', 'action' => $this->getNoCacheAction(), 'onsubmit' => 'return formCheck(this)', 'autocomplete' => 'off'));
     $form .= $this->generateBillingContainer();
     return $form;
 }