public function generateFormStart()
 {
     $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-make-your-donation' ));
     // 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 __construct(&$gateway)
 {
     parent::__construct($gateway);
 }