[%# This Source Code Form is subject to the terms of the Mozilla Public
  # License, v. 2.0. If a copy of the MPL was not distributed with this
  # file, You can obtain one at http://mozilla.org/MPL/2.0/.
  #
  # This Source Code Form is "Incompatible With Secondary Licenses", as
  # defined by the Mozilla Public License, v. 2.0.
  #%]
[% PROCESS global/variables.none.tmpl %]

[% inline_style = BLOCK %]
#bounty_form {
  padding: 10px;
}
#bounty_form .required:after {
  content: " *";
  color: var(--required-label-color);
}
#bounty_form .field_label {
  font-weight: bold;
  display: block;
  text-align: left;
}
#bounty_form .field_desc {
  padding-bottom: 3px;
  width: 600px;
  word-wrap: normal;
}
#bounty_form .form_section {
  margin-bottom: 10px;
}
.yui-calcontainer {
  z-index: 2;
}
[% END %]

[% inline_javascript = BLOCK %]
var validateDate = /^(\d{4}-\d{2}-\d{2}|)$/;
var validators = {
  reporter_email: /^[^,]+$/,
  amount_paid:    /^[0-9]*[-+?]?$/,
  reported_date:  validateDate,
  fixed_date:     validateDate,
  awarded_date:   validateDate,
  publish:        /^(0|1)$/,
  credit_1:       /^([^,]+|)$/,
  credit_2:       /^([^,]+|)$/,
  credit_3:       /^([^,]+|)$/
};

function validateAndSubmit() {
  'use strict';
  var alert_text = '';
  var requiredLabels = YAHOO.util.Selector.query('label.required');
  var skip = {};

  if (requiredLabels) {
    requiredLabels.forEach(function (label) {
      var name = label.getAttribute('for');
      var ids = YAHOO.util.Selector.query(
        '#bounty_form *[name="' + name + '"]'
      ).map(function (e) {
        return e.id
      });

      if (ids && ids[0]) {
        var id = ids[0];
        var desc = label.textContent || name;
        if (!isFilledOut(id)) {
          alert_text +=
            "Please enter a value for " +
            desc.replace(/[\r\n]+/, "").replace(/\s+/g, " ") +
            "\n";
          skip[id] = true;
        }
      }
    });
    for (var id in validators) {
      if (skip[id]) continue;
      var el = document.getElementById(id);
      if (validators[id] && !validators[id].test( el.value )) {
        var labels = YAHOO.util.Selector.query('label[for="' + id + '"]');
        var desc;
        if (labels && labels[0]) {
          desc = labels[0].textContent;
        }
        else {
          desc = id;
        }
        alert_text +=
          "Invalid value for " +
          desc.replace(/[\r\n]+/, "").replace(/\s+/g, " ") +
          "\n";
      }
    }

  }

  if (alert_text != '') {
    alert(alert_text);
    return false;
  }
  return true;
}
[% END %]

[% PROCESS global/header.html.tmpl
   title = "Bounty Attachment Form"
   generate_api_token = 1
   style = inline_style
   javascript = inline_javascript
   javascript_urls = [ 'extensions/BMO/web/js/form_validate.js',
                       'js/field.js' ]
%]

[% USE Bugzilla %]
[% cgi = Bugzilla.cgi %]

<form id="bounty_form" method="post" action="[% basepath FILTER none %]page.cgi"
  enctype="multipart/form-data" onSubmit="return validateAndSubmit();">

  <input type="hidden" name="bug_id" value="[% bug.id FILTER html %]">
  <input type="hidden" name="id" value="attachment_bounty_form.html">
  <input type="hidden" name="token" value="[% form.token FILTER html %]">
  <input type="hidden" name="submit" value="1">

  <h1>Bounty Attachment for [% "$terms.Bug $bug.id" FILTER bug_link(bug.id) FILTER none %]</h1>

  <div class="form_section">
    <label for="reporter_email" class="field_label required">Reporter's Email</label>
    <input type="text" name="reporter_email" id="reporter_email" size="80"
      value="[% form.reporter_email FILTER html %]">
  </div>

  <div class="form_section">
    <label for="amount_paid" class="field_label">Amount Paid</label>
    <input type="text" name="amount_paid" id="amount_paid" size="80" value="[% form.amount_paid FILTER html %]">
  </div>

  <div class="form_section">
    <label for="reported_date" class="field_label">Reported Date</label>
    <input name="reported_date" size="20" id="reported_date" value="[% form.reported_date FILTER html %]"
      onchange="updateCalendarFromField(this)">
    <button type="button" class="calendar_button"
      id="button_calendar_reported_date"
      onclick="showCalendar('reported_date')">
      <span>Calendar</span>
    </button>
    <div id="con_calendar_reported_date"></div>
    <script [% script_nonce FILTER none %]>
      createCalendar('reported_date')
    </script>
  </div>

  <div class="form_section">
    <label for="fixed_date" class="field_label">Fixed Date</label>
    <input name="fixed_date" size="20" id="fixed_date" value="[% form.fixed_date FILTER html %]"
      onchange="updateCalendarFromField(this)">
    <button type="button" class="calendar_button"
      id="button_calendar_fixed_date"
      onclick="showCalendar('fixed_date')">
      <span>Calendar</span>
    </button>
    <div id="con_calendar_fixed_date"></div>
    <script [% script_nonce FILTER none %]>
      createCalendar('fixed_date')
    </script>
  </div>

  <div class="form_section">
    <label for="awarded_date" class="field_label">Awarded Date</label>
    <input name="awarded_date" size="20" id="awarded_date" value="[% form.awarded_date FILTER html %]"
      onchange="updateCalendarFromField(this)">
    <button type="button" class="calendar_button"
      id="button_calendar_awarded_date"
      onclick="showCalendar('awarded_date')">
      <span>Calendar</span>
    </button>
    <div id="con_calendar_awarded_date"></div>
    <script [% script_nonce FILTER none %]>
      createCalendar('awarded_date')
    </script>
  </div>

  <div class="form_section">
    <label for="publish" class="field_label">Publish</label>
    <select name="publish" id="publish">
        <option value="1"[% IF form.publish %]selected[% END %]>Yes</option>
        <option value="0"[% UNLESS form.publish %]selected[% END %]>No</option>
    </select>
  </div>

  <div class="form_section">
    <label for="credit_1" class="field_label">Credit</label>
    <input type="text" name="credit_1" id="credit_1" size="80" value="[% form.credit.0 FILTER html %]">
  </div>

  <div class="form_section">
    <label for="credit_2" class="field_label">Credit Twitter</label>
    <input type="text" name="credit_2" id="credit_2" size="80" value="[% form.credit.1 FILTER html %]">
  </div>

  <div class="form_section">
    <label for="credit_3" class="field_label">Credit URL</label>
    <input type="text" name="credit_3" id="credit_3" size="80" value="[% form.credit.2 FILTER html %]">
  </div>

  <input type="submit" id="commit" value="Submit">

  <p>
    [ <span class="required_star">*</span> <span class="required_explanation">
      Required Field</span> ]
  </p>
</form>

[% PROCESS global/footer.html.tmpl %]
