/**
 * Add the discount button immediately before the price set.
 *
 * @param CRM_Contribute_Form_Contribution_Main $form
 */
function _cividiscount_add_button_before_priceSet(&$form)
{
    CRM_Core_Region::instance('price-set-1')->add(array('template' => 'CRM/CiviDiscount/discountButton.tpl', 'weight' => -1, 'type' => 'template', 'name' => 'discount_code'));
    $form->add('text', 'discountcode', ts('If you have a discount code, enter it here'), array('class' => 'description'));
    $errorMessage = $form->get('discountCodeErrorMsg');
    if ($errorMessage) {
        $form->setElementError('discountcode', $errorMessage);
    }
    $form->set('discountCodeErrorMsg', null);
    $buttonName = $form->getButtonName('reload');
    $form->addElement('submit', $buttonName, ts('Apply'), array('formnovalidate' => 1));
    $form->assign('discountElements', array('discountcode', $buttonName));
}