summaryrefslogtreecommitdiffstats
path: root/extensions/BMO/template/en/default/bug/create/create-swag.html.tmpl
diff options
context:
space:
mode:
Diffstat (limited to 'extensions/BMO/template/en/default/bug/create/create-swag.html.tmpl')
-rw-r--r--extensions/BMO/template/en/default/bug/create/create-swag.html.tmpl904
1 files changed, 904 insertions, 0 deletions
diff --git a/extensions/BMO/template/en/default/bug/create/create-swag.html.tmpl b/extensions/BMO/template/en/default/bug/create/create-swag.html.tmpl
new file mode 100644
index 000000000..90f50a089
--- /dev/null
+++ b/extensions/BMO/template/en/default/bug/create/create-swag.html.tmpl
@@ -0,0 +1,904 @@
+[%# 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 %]
+
+[%
+items = [
+ { id => '' , name => 'Splendidest Gear' },
+ { id => '#155752' , name => 'Moleskine Notebook' },
+ { id => '#155749' , name => 'Rickshaw Messenger Bag' },
+ { id => '#155415S', name => 'Champion Hooded Sweatshirt S' },
+ { id => '#155415M', name => 'Champion Hooded Sweatshirt M' },
+ { id => '#155415L', name => 'Champion Hooded Sweatshirt L' },
+ { id => '#155415X', name => 'Champion Hooded Sweatshirt XL' },
+ { id => '#1554152', name => 'Champion Hooded Sweatshirt 2XL' },
+ { id => '#157454S', name => 'Very Splendid Package, Men\'s S' },
+ { id => '#157454M', name => 'Very Splendid Package, Men\'s M' },
+ { id => '#157454L', name => 'Very Splendid Package, Men\'s L' },
+ { id => '#157454X', name => 'Very Splendid Package, Men\'s XL' },
+ { id => '#157452S', name => 'Very Splendid Package, Ladies S' },
+ { id => '#157452M', name => 'Very Splendid Package, Ladies M' },
+ { id => '#157452L', name => 'Very Splendid Package, Ladies L' },
+ { id => '#157452X', name => 'Very Splendid Package, Ladies XL' },
+ { id => '#157451S', name => 'Most Splendid Package, S' },
+ { id => '#157451M', name => 'Most Splendid Package, M' },
+ { id => '#157451L', name => 'Most Splendid Package, L' },
+ { id => '#157451X', name => 'Most Splendid Package, XL' },
+ { id => '' , name => 'Splendider' },
+ { id => '#155341S', name => 'Unisex T-shirt Poppy S' },
+ { id => '#155341M', name => 'Unisex T-shirt Poppy M' },
+ { id => '#155341X', name => 'Unisex T-shirt Poppy XL' },
+ { id => '#1553412', name => 'Unisex T-shirt Poppy 2XL' },
+ { id => '#155344S', name => 'Ladies\' T-shirt Poppy S' },
+ { id => '#155344M', name => 'Ladies\' T-shirt Poppy M' },
+ { id => '#155344L', name => 'Ladies\' T-shirt Poppy L' },
+ { id => '#190928S', name => 'Unisex T-shirt Navy S' },
+ { id => '#190928M', name => 'Unisex T-shirt Navy M' },
+ { id => '#190928L', name => 'Unisex T-shirt Navy L' },
+ { id => '#190928X', name => 'Unisex T-shirt Navy XL' },
+ { id => '#1553422', name => 'Unisex T-shirt Navy 2XL' },
+ { id => '#1553423', name => 'Unisex T-shirt Navy 3XL' },
+ { id => '#155413S', name => 'Ladies\' T-shirt Navy S' },
+ { id => '#155413M', name => 'Ladies\' T-shirt Navy M' },
+ { id => '#155413L', name => 'Ladies\' T-shirt Navy L' },
+ { id => '#155413X', name => 'Ladies\' T-shirt Navy XL' },
+ { id => '#155343M', name => 'Unisex T-shirt Lapis M' },
+ { id => '#155343L', name => 'Unisex T-shirt Lapis L' },
+ { id => '#155343X', name => 'Unisex T-shirt Lapis XL' },
+ { id => '#155414S', name => 'Ladies\' T-shirt Lapis S' },
+ { id => '#155414M', name => 'Ladies\' T-shirt Lapis M' },
+ { id => '#155414L', name => 'Ladies\' T-shirt Lapis L' },
+ { id => '#155339' , name => 'Black Cap with Tote' },
+ { id => '#155340' , name => 'Beanie' },
+ { id => '#155751' , name => 'Drawstring Tote' },
+ { id => '#155758' , name => 'Glossy Finish Ceramic Mug' },
+ { id => '' , name => 'Splendid' },
+ { id => '#155753' , name => '3" Round Sticker, Firefox logo' },
+ { id => '#155754' , name => 'Mozilla Lanyard with Bulldog Clip' },
+ { id => '#155755' , name => 'Vertical Laminated Badge' },
+ { id => '#155756' , name => 'Silicone Wristband' },
+ { id => '#155757' , name => 'Custom Tattoos - Pkg50' },
+ { id => '#192150' , name => '1.25" Firefox Button-PKG25' },
+ { id => '' , name => 'Firefox OS items' },
+ { id => '#185686' , name => '3" Firefox OS Sticker Look Ahead' },
+ { id => '#189674' , name => '3" Firefox OS Mobilizer' },
+ { id => '#187062' , name => 'OS Lanyard w/ Bulldog Clip' },
+ { id => '#180589' , name => 'Sunglasses Firefox OS' },
+ { id => '#180595' , name => 'Rubber Grip Pens Firefox OS' },
+ { id => '#180593' , name => 'Firefox OS Moleskine Notebook' },
+]
+
+mozspaces = [
+ {
+ name => 'Beijing',
+ address1 => 'Mozilla Online Ltd, International Club Office Tower 800A',
+ address2 => '21 Jian Guo Men Wai Avenue',
+ city => 'Beijing',
+ state => 'Chaoyang District',
+ country => 'China',
+ postcode => '100020',
+ },
+ {
+ name => 'Berlin',
+ address1 => 'MZ Denmark ApS - Germany',
+ address2 => 'Rungestrasse 22 - 24',
+ city => 'Berlin',
+ state => 'Germany',
+ country => 'Germany',
+ postcode => '10179',
+ },
+ {
+ name => 'London',
+ address1 => 'Mozilla London',
+ address2 => '101 St. Martin\'s Lane, 3rd Floor',
+ city => 'London',
+ state => 'Greater London',
+ country => 'UK',
+ postcode => 'WC2N 4AZ',
+ },
+ {
+ name => 'Mountain View',
+ address1 => 'Mozilla',
+ address2 => '650 Castro St., Suite 300',
+ city => 'Mountain View',
+ state => 'CA',
+ country => 'USA',
+ postcode => '94041-2072',
+ },
+ {
+ name => 'Paris',
+ address1 => 'Mozilla',
+ address2 => '16 bis Boulevard Montmartre',
+ city => 'Paris',
+ state => 'Paris',
+ country => 'France',
+ postcode => '75009',
+ },
+ {
+ name => 'Portland',
+ address1 => 'Mozilla Portland',
+ address2 => 'Brewery Block 2, 1120 NW Couch St. Suite 320',
+ city => 'Portland',
+ state => 'OR',
+ country => 'USA',
+ postcode => '97209',
+ },
+ {
+ name => 'San Francisco',
+ address1 => 'Mozilla',
+ address2 => '2 Harrison Street, Suite 175',
+ city => 'San Francisco',
+ state => 'CA',
+ country => 'USA',
+ postcode => '94105',
+ },
+ {
+ name => 'Taipei',
+ address1 => '4F-A1, No. 106, Sec.5, Xinyi Rd',
+ address2 => '',
+ city => 'Taipei City',
+ state => 'Xinyi District',
+ country => 'Taiwan',
+ postcode => '11047',
+ },
+ {
+ name => 'Tokyo',
+ address1 => '7-5-6 Roppongi',
+ address2 => '',
+ city => 'Minato-ku',
+ state => 'Tokyo',
+ country => 'Japan',
+ postcode => '106-0032',
+ },
+ {
+ name => 'Toronto',
+ address1 => 'Mozilla Canada',
+ address2 => '366 Adelaide Street W, Suite 500',
+ city => 'Toronto',
+ state => 'Ontario',
+ country => 'Canada',
+ postcode => 'M5V 1R9',
+ },
+ {
+ name => 'Vancouver',
+ address1 => 'Mozilla Canada',
+ address2 => '163 West Hastings Street, Suite 209',
+ city => 'Vancouver',
+ state => 'BC',
+ country => 'Canada',
+ postcode => 'V6B 1H5',
+ },
+]
+
+cost_centers = [
+ 'Accounting (1210)',
+ 'Add Ons (7500)',
+ 'Advanced Techology Lab (6400)',
+ 'Brand Engagement (2400)',
+ 'Business Affairs (1100)',
+ 'Business Development (1150)',
+ 'Business Development Programs (7700)',
+ 'Business Support Services (1000)',
+ 'Cloud & Services (3000)',
+ 'Community Engagement (2300)',
+ 'Design (4400)',
+ 'Dev Infra (3130)',
+ 'Engagement (2000)',
+ 'Engineering Platform (8000)',
+ 'Engineering Program Management (8300)',
+ 'Facilities (1250)',
+ 'Finance Planning & Analysis (1211)',
+ 'Firefox (5000)',
+ 'Firefox Android Engineering (5310)',
+ 'Firefox Android Product Management (5330)',
+ 'Firefox Android UX (5320)',
+ 'Firefox Desktop (5200)',
+ 'Firefox Desktop Engineering (5210)',
+ 'Firefox Desktop Platform Integration (5240)',
+ 'Firefox Desktop Product Management (5230)',
+ 'Firefox Desktop UX (5220)',
+ 'Firefox Dev Tools (5400)',
+ 'Firefox Mobile (5300)',
+ 'Firefox OS Engineering I (6110)',
+ 'Firefox OS Engineering II (6120)',
+ 'Firefox OS Product Management (6200)',
+ 'Firefox OS UX (6300)',
+ 'Identity Eng (3210)',
+ 'Identity Infra (3110)',
+ 'Infrastructure (servers) (3100)',
+ 'Insights and Strategy (4000)',
+ 'IT & Network (1400)',
+ 'Labs (7600)',
+ 'Legal (1120)',
+ 'Localization (L10n) (5100)',
+ 'Location Engineering (3230)',
+ 'Location Infra (3150)',
+ 'Marketplace (7000)',
+ 'Marketplace Apps Engineering (7110)',
+ 'Marketplace Bus. Development (7400)',
+ 'Marketplace Engineering / AMO (7120)',
+ 'Marketplace Engineering /Dev Ecosystem (7130)',
+ 'Marketplace Product Management (7200)',
+ 'Marketplace UX (7300)',
+ 'Market Strategy (4200)',
+ 'Metrics (4300)',
+ 'Misc Infra (3160)',
+ 'Mobile (6000)',
+ 'Mobile Business Development (1130)',
+ 'Mobile Engineering (6130)',
+ 'Operations (3600)',
+ 'People (1340)',
+ 'People Ops (1320)',
+ 'Platform Accessibility (8490)',
+ 'Platform Content (8440)',
+ 'Platform Integration (8480)',
+ 'Platform Network (8410)',
+ 'Platform Network & Security (8400)',
+ 'Platform Performance (8470)',
+ 'Platform Rendering & Media (8450)',
+ 'Platform Security (8420)',
+ 'Platform Security Assurance (8430)',
+ 'Platform Stability & Plugin (8460)',
+ 'PR (2200)',
+ 'Product Marketing (2100)',
+ 'QA (8500)',
+ 'QA Android (8550)',
+ 'QA Automation (8520)',
+ 'QA Firefox Desktop (8510)',
+ 'QA FirefoxOS (8560)',
+ 'QA Mobile (8540)',
+ 'QA Services (8570)',
+ 'QA Web (8530)',
+ 'Release Engineering (8100)',
+ 'Release Management (5010)',
+ 'Research (6900)',
+ 'Services Engineering (3200)',
+ 'Services Product Management (3400)',
+ 'Services UX (3300)',
+ 'SUMO (2600)',
+ 'Sync Engineering (3220)',
+ 'Sync Infra (3120)',
+ 'UP (5500)',
+ 'User Research (4100)',
+ 'Web Engineering (8200)',
+ 'WebRTC (1160)',
+ 'WebRTC Infra (3140)',
+ 'Web Security and Security Automation (3500)',
+ 'Websites & Developer Engagement (2500)',
+]
+
+%]
+
+[% inline_style = BLOCK %]
+#gear_form th {
+ text-align: right;
+ font-weight: normal;
+}
+
+#gear_form .heading {
+ text-align: left;
+ font-weight: bold;
+ border-top: 2px dotted #969696;
+}
+
+.mandatory {
+ color: red;
+}
+[% END %]
+
+[% inline_javascript = BLOCK %]
+var Dom = YAHOO.util.Dom;
+var needed = {
+[% FOREACH item = items %]
+ [% NEXT UNLESS item.id %]
+ '[% item.id FILTER js %]': 0[% ',' UNLESS loop.last %]
+[% END %]
+};
+var needed_freeform = [];
+
+var gear = [
+[% FOREACH item = items %]
+ { id: '[% item.id FILTER js %]', name: '[% item.name FILTER js %]' }
+ [% ',' UNLESS loop.last %]
+[% END %]
+];
+
+var mozspaces = {
+[% FOREACH space = mozspaces %]
+ '[% space.name FILTER js %]': {
+ [% FOREACH key = space.keys.sort %]
+ '[% key FILTER js %]': '[% space.$key FILTER js %]'[% ',' UNLESS loop.last %]
+ [% END %]
+ }[% ',' UNLESS loop.last %]
+[% END %]
+};
+
+[%# implemented this way to allow for dynamic updating of mandatory fields #%]
+var fields = [
+ { id: 'firstname', mandatory: true },
+ { id: 'lastname', mandatory: true },
+ { id: 'email', mandatory: true },
+ { id: 'mozspace', mandatory: false },
+ { id: 'teamcode', mandatory: true },
+ { id: 'purpose', mandatory: true },
+ { id: 'purpose_other', mandatory: false },
+ { id: 'date_required', mandatory: false },
+ { id: 'items', mandatory: true },
+ { id: 'shiptofirstname', mandatory: true },
+ { id: 'shiptolastname', mandatory: true },
+ { id: 'shiptoemail', mandatory: true },
+ { id: 'shiptoaddress1', mandatory: true },
+ { id: 'shiptoaddress2', mandatory: false },
+ { id: 'shiptocity', mandatory: true },
+ { id: 'shiptostate', mandatory: true },
+ { id: 'shiptocountry', mandatory: true },
+ { id: 'shiptopostcode', mandatory: true },
+ { id: 'shiptophone', mandatory: true },
+ { id: 'shiptoidrut', mandatory: false },
+ { id: 'comment', mandatory: false }
+];
+
+function initFields() {
+ [%# find fields in the form, and update the fields array #%]
+ var rows = Dom.get('gear_form').getElementsByTagName('TR');
+ for (var i = 0, l = rows.length; i < l; i++) {
+ var row = rows[i];
+ var field = firstChild(row, 'INPUT') || firstChild(row, 'SELECT') || firstChild(row, 'TEXTAREA');
+ if (!field || field.type == 'submit') continue;
+ var id = field.id;
+ var label = firstChild(row, 'TH');
+ for (var j = 0, m = fields.length; j < m; j++) {
+ if (fields[j].id == id) {
+ fields[j].field = field;
+ fields[j].label = label;
+ fields[j].caption = label.textContent;
+ break;
+ }
+ }
+ }
+ createCalendar('date_required');
+}
+
+function tagMandatoryFields() {
+ [%# add or remove the "* mandatory" marker from fields #%]
+ for (var i = 0, l = fields.length; i < l; i++) {
+ var f = fields[i];
+ if (!f.label) continue;
+ var caption = f.caption;
+ if (f.mandatory)
+ caption = caption + '&nbsp;<span class="mandatory">*</span>';
+ f.label.innerHTML = caption;
+ }
+}
+
+function validateAndSubmit() {
+ var alert_text = '';
+ for(var i = 0, l = fields.length; i < l; i++) {
+ var f = fields[i];
+ if (f.mandatory && !isFilledOut(f.id))
+ if (f.field.nodeName == 'SELECT') {
+ alert_text += 'Please select the ' + f.caption + ".\n";
+ } else {
+ alert_text += 'Please enter the ' + f.caption + ".\n";
+ }
+ }
+ if (isFilledOut('email') && !isValidEmail(Dom.get('email').value))
+ alert_text += "Please enter a valid Email Address.\n";
+ if (isFilledOut('shiptoemail') && !isValidEmail(Dom.get('shiptoemail').value))
+ alert_text += "Please enter a valid Shipping Email Address.\n";
+
+ if (alert_text != '') {
+ alert(alert_text);
+ return false;
+ }
+
+ Dom.get('short_desc').value = 'Mozilla Gear - ' + Dom.get('firstname').value + ' ' + Dom.get('lastname').value;
+ return true;
+}
+
+function onPurposeChange() {
+ var value = Dom.get('purpose').value;
+ var other = Dom.get('purpose_other');
+
+ if (value == 'Event') {
+ getField('purpose_other').mandatory = true;
+ other.placeholder = 'link to wiki'
+ Dom.removeClass('purpose_other_row', 'bz_default_hidden');
+ Dom.addClass('recognition_row', 'bz_default_hidden');
+
+ } else if (value == 'Gear Space Stock') {
+ getField('purpose_other').mandatory = true;
+ other.placeholder = 'indicate space'
+ Dom.removeClass('purpose_other_row', 'bz_default_hidden');
+ Dom.addClass('recognition_row', 'bz_default_hidden');
+
+ } else if (value == 'Other') {
+ getField('purpose_other').mandatory = true;
+ other.placeholder = 'more information';
+ Dom.removeClass('purpose_other_row', 'bz_default_hidden');
+ Dom.addClass('recognition_row', 'bz_default_hidden');
+
+ } else if (value == 'Mozillian Recognition') {
+ getField('purpose_other').mandatory = false;
+ Dom.addClass('purpose_other_row', 'bz_default_hidden');
+ Dom.removeClass('recognition_row', 'bz_default_hidden');
+ onRecognitionChange();
+
+ } else {
+ getField('purpose_other').mandatory = false;
+ Dom.addClass('purpose_other_row', 'bz_default_hidden');
+ Dom.addClass('recognition_row', 'bz_default_hidden');
+ }
+
+ onRecognitionChange();
+}
+
+function onRecognitionChange() {
+ var mandatory = Dom.get('purpose').value != 'Mozillian Recognition'
+ || !Dom.get('recognition_shipping').checked;
+ getField('shiptoaddress1').mandatory = mandatory;
+ getField('shiptocity').mandatory = mandatory;
+ getField('shiptostate').mandatory = mandatory;
+ getField('shiptocountry').mandatory = mandatory;
+ getField('shiptopostcode').mandatory = mandatory;
+ getField('shiptophone').mandatory = mandatory;
+ tagMandatoryFields();
+}
+
+function onMozSpaceChange() {
+ if (Dom.get('mozspace').value) {
+ Dom.removeClass('shipto_mozspace_container', 'bz_default_hidden');
+ } else {
+ Dom.addClass('shipto_mozspace_container', 'bz_default_hidden');
+ }
+ onShipToMozSpaceClick();
+}
+
+function onShipToMozSpaceClick() {
+ var address1 = address2 = city = state = country = postcode = '';
+ if (Dom.get('shipto_mozspace').checked) {
+ var space = Dom.get('mozspace').value;
+ address1 = mozspaces[space].address1;
+ address2 = mozspaces[space].address2;
+ city = mozspaces[space].city;
+ state = mozspaces[space].state;
+ country = mozspaces[space].country;
+ postcode = mozspaces[space].postcode;
+ }
+ Dom.get('shiptoaddress1').value = address1;
+ Dom.get('shiptoaddress2').value = address2;
+ Dom.get('shiptocity').value = city;
+ Dom.get('shiptostate').value = state;
+ Dom.get('shiptocountry').value = country;
+ Dom.get('shiptopostcode').value = postcode;
+ Dom.get('shiptophone').value = '';
+ Dom.get('shiptoidrut').value = '';
+ onRecognitionChange();
+}
+
+function onAddGearChange(focusInput) {
+ var add_gear = Dom.get('add_gear').value;
+ var isFreeform = add_gear == 'custom' || add_gear == 'other';
+ if (isFreeform) {
+ Dom.addClass('quantity', 'bz_default_hidden');
+ resetFreeform();
+ Dom.get('freeform_quantity').value = Dom.get('quantity').value;
+ Dom.removeClass('freeform_quantity', 'bz_default_hidden');
+ Dom.removeClass('add_freeform', 'bz_default_hidden');
+ if (focusInput)
+ Dom.get('freeform_add').focus();
+ } else {
+ Dom.get('quantity').value = Dom.get('freeform_quantity').value;
+ Dom.removeClass('quantity', 'bz_default_hidden');
+ Dom.addClass('freeform_quantity', 'bz_default_hidden');
+ Dom.addClass('add_freeform', 'bz_default_hidden');
+ }
+}
+
+function firstChild(parent, name) {
+ var a = parent.getElementsByTagName(name);
+ return a.length == 0 ? false : a[0];
+}
+
+function getField(id) {
+ for(var i = 0, l = fields.length; i < l; i++) {
+ if (fields[i].id == id)
+ return fields[i];
+ }
+ return false;
+}
+
+function addGear() {
+ var id = Dom.get('add_gear').value;
+ if (id == 'custom' || id == 'other') {
+ var quantity = parseInt(Dom.get('freeform_quantity').value, 10);
+ var name = Dom.get('freeform_add').value;
+ if (!quantity || !name) return;
+ needed_freeform.push({ 'type': id, 'quantity': quantity, 'name': name });
+ Dom.get('add_gear').value = '';
+ resetFreeform();
+ onAddGearChange();
+ } else {
+ var quantity = parseInt(Dom.get('quantity').value, 10);
+ if (!quantity || !id) return;
+ needed[id] += quantity;
+ }
+ showGear();
+}
+
+function resetFreeform() {
+ Dom.get('freeform_quantity').value = '1';
+ Dom.get('freeform_add').value = '';
+}
+
+function removeGear(id) {
+ if (!id) return;
+ needed[id] = 0;
+ showGear();
+}
+
+function removeFreeform(index) {
+ needed_freeform.splice(index, 1);
+ showGear();
+}
+
+function showGear() {
+ var html = '<table border="0" cellpadding="2" cellspacing="0">';
+ var text = '';
+ var count = 0;
+ for (var i = 0, l = gear.length; i < l; i++) {
+ var item = gear[i];
+ var id = item.id;
+ if (!id) continue;
+ if (!needed[id]) continue;
+ count += needed[id];
+ html += '<tr>' +
+ '<td>' + needed[id] + ' x&nbsp;</td>' +
+ '<td>' + YAHOO.lang.escapeHTML(item.name) + '</td>' +
+ '<td><button onclick="removeGear(\'' + id + '\');return false">Remove</button></td>' +
+ '</tr>';
+ text += needed[id] + ' x ' + id + ' ' + item.name + "\n";
+ }
+ for (var i = 0, l = needed_freeform.length; i < l; i++) {
+ var item = needed_freeform[i];
+ count += item.quantity;
+ html += '<tr>' +
+ '<td>' + item.quantity + ' x&nbsp;</td>' +
+ '<td>(' + item.type + ') ' + YAHOO.lang.escapeHTML(item.name) + '</td>' +
+ '<td><button onclick="removeFreeform(\'' + i + '\');return false">Remove</button></td>' +
+ '</tr>';
+ text += item.quantity + ' x (' + item.type + ') ' + item.name + "\n";
+ }
+ if (!count)
+ html += '<tr><td><i>No gear selected.</i></td></tr>';
+ html += '</table>';
+ Dom.get('gear_container').innerHTML = html;
+ Dom.get('items').value = text;
+}
+
+[% END %]
+
+[% PROCESS global/header.html.tmpl
+ title = "Mozilla Gear"
+ style = inline_style
+ javascript = inline_javascript
+ javascript_urls = [ 'extensions/BMO/web/js/form_validate.js',
+ 'js/field.js', 'js/util.js' ]
+ yui = [ 'autocomplete', 'calendar' ]
+%]
+
+<h1>Mozilla Gear</h1>
+
+<p>
+ Want gear? Follow the steps below and click Submit Request.
+</p>
+<p>
+ Requests are reviewed and processed on Monday morning (US/Pacific). Any
+ requests received after 9am Monday will be processed the following week.
+</p>
+<ul>
+ <li>
+ If approved, your request will either be sent to our gear partner, Staples,
+ for shipment or it will be available for pick-up from your Mozilla space.
+ </li>
+ <li>
+ If your request is not approved, we will let you know why or possibly ask
+ for more information.
+ </li>
+</ul>
+
+<p>
+ Check <a href="https://wiki.mozilla.org/GearStore" target="_blank">the gear
+ wiki</a> for more information about gear, including approved uses and the
+ list of available gear.
+</p>
+
+<p>
+ Gear requests for Rep-driven events and campaigns should continue to be
+ submitted through <a href="https://wiki.mozilla.org/ReMo/Tools_and_Resources"
+ target="_blank">their existing process</a>.
+</p>
+
+<form method="post" action="post_bug.cgi" id="swagRequestForm" enctype="multipart/form-data"
+ onSubmit="return validateAndSubmit();">
+ <input type="hidden" name="format" value="swag">
+ <input type="hidden" name="product" value="Marketing">
+ <input type="hidden" name="component" value="Swag Requests">
+ <input type="hidden" name="rep_platform" value="All">
+ <input type="hidden" name="op_sys" value="Other">
+ <input type="hidden" name="priority" value="--">
+ <input type="hidden" name="version" value="unspecified">
+ <input type="hidden" name="bug_severity" id="bug_severity" value="normal">
+ <input type="hidden" name="short_desc" id="short_desc" value="">
+ <input type="hidden" name="groups" value="mozilla-engagement">
+ <input type="hidden" name="token" value="[% token FILTER html %]">
+
+<table id="gear_form">
+
+<tr>
+ <td>&nbsp;</td>
+</tr>
+<tr>
+ <th class="heading" colspan="2">Tell Us What You Want</th>
+</tr>
+
+<tr>
+ <th>Purpose of Gear</th>
+ <td>
+ <select name="purpose" id="purpose" onchange="onPurposeChange()">
+ <option value="">Please select..</option>
+ <option value="Campaign">Campaign</option>
+ <option value="Event">Event</option>
+ <option value="Gear Space Stock">Gear Space Stock</option>
+ <option value="Mozillian Recognition">Mozillian Recognition</option>
+ <option value="Onboarding">Onboarding</option>
+ <option value="Press">Press</option>
+ <option value="Recruiting">Recruiting</option>
+ <option value="VIP">VIP</option>
+ <option value="Other">Other</option>
+ </select>
+ </td>
+</tr>
+
+<tr id="purpose_other_row" class="bz_default_hidden">
+ <th>Purpose Text</th>
+ <td>
+ <input name="purpose_other" id="purpose_other" size="50">
+ </td>
+</tr>
+
+<tr id="recognition_row" class="bz_default_hidden">
+ <th>&nbsp;</th>
+ <td>
+ <input type="checkbox" name="recognition_shipping" id="recognition_shipping" value="Yes"
+ onclick="onRecognitionChange()">
+ <label for="recognition_shipping">
+ This [% terms.bug %] needs recipient shipping information
+ </label><br>
+ <input type="checkbox" name="recognition_sizing" id="recognition_sizing" value="Yes">
+ <label for="recognition_sizing">
+ This [% terms.bug %] needs recipient size information
+ </label><br>
+ </td>
+</tr>
+
+<tr>
+ <th>Date Required</th>
+ <td>
+ <input name="date_required" id="date_required" size="25"
+ onchange="updateCalendarFromField(this)">
+ <button type="button" class="calendar_button" id="button_calendar_date_required"
+ onclick="showCalendar('date_required')"><span>cal</span></button>
+ <div id="con_calendar_date_required"></div>
+ </td>
+</tr>
+
+<tr>
+ <th>Gear Needed</th>
+ <td>
+ <input type="hidden" name="items" id="items" value="">
+ <a href="https://wiki.mozilla.org/GearStore/Gearavailable" target="_blank">
+ View the current inventory</a>, then add your selection(s):<br>
+
+ <input type="text" size="2" id="quantity" value="1"
+ onblur="this.value = parseInt(this.value, 10) ? Math.floor(parseInt(this.value, 10)) : 1">
+ <select id="add_gear" onChange="onAddGearChange(true)">
+ <option value="">Please select..</option>
+ [% first_group = 1 %]
+ [% FOREACH item = items %]
+ [% IF item.id == "" %]
+ [% "</optgroup>" UNLESS first_group %]
+ [% first_group = 0 %]
+ <optgroup label="[% item.name FILTER html %]">
+ [% ELSE %]
+ <option value="[% item.id FILTER html %]">[% item.name FILTER html %]</option>
+ [% END %]
+ [% END %]
+ [% "</optgroup>" UNLESS first_group %]
+ <optgroup label="otherwise">
+ <option value="custom">custom</option>
+ <option value="other">other</option>
+ </optgroup>
+ </select>
+ <span id="add_freeform" class="bz_default_hidden">
+ <br>
+ Tell us how many and what you are looking for here. Add details in the
+ comments field below.
+ <br>
+ <input type="text" size="2" id="freeform_quantity" value="1"
+ onblur="this.value = parseInt(this.value, 10) ? Math.floor(parseInt(this.value, 10)) : 1">
+ <input type="text" id="freeform_add" size="40">
+ </span>
+ <button onclick="addGear();return false">Add</button>
+ <br>
+
+ <div id="gear_container"></div>
+ </td>
+</tr>
+
+<tr>
+ <td>&nbsp;</td>
+</tr>
+<tr>
+ <th class="heading" colspan="2">Tell Us About You</th>
+</tr>
+
+<tr>
+ <th>First Name</th>
+ <td><input name="firstname" id="firstname" size="50" maxlength="30"></td>
+</tr>
+
+<tr>
+ <th>Last Name</th>
+ <td><input name="lastname" id="lastname" size="50" maxlength="30"></td>
+</tr>
+
+<tr>
+ <th>Email Address</th>
+ <td><input name="email" id="email" size="50" maxlength="50"></td>
+</tr>
+
+<tr>
+ <th>My Mozilla Space</th>
+ <td>
+ <select name="mozspace" id="mozspace" onchange="onMozSpaceChange()">
+ <option value="">Please select..</option>
+ [% FOREACH space = mozspaces %]
+ <option value="[% space.name FILTER html %]">[% space.name FILTER html %]</option>
+ [% END %]
+ </select>
+ <i>(if applicable)</i>
+ <div id="shipto_mozspace_container" class="bz_default_hidden">
+ <input type="checkbox" id="shipto_mozspace" onclick="onShipToMozSpaceClick()">
+ <label for="shipto_mozspace">Ship to this address</label>
+ </div>
+</tr>
+
+<tr>
+ <th>Team + Department Code</th>
+ <td>
+ <select name="teamcode" id="teamcode">
+ <option value="">Please select..</option>
+ [% FOREACH cost IN cost_centers %]
+ <option value="[% cost FILTER html %]">[% cost FILTER html %]</option>
+ [% END %]
+ </select>
+ </td>
+</tr>
+
+<tr>
+ <td>&nbsp;</td>
+</tr>
+<tr>
+ <th class="heading" colspan="2">Tell Us Where To Send It</th>
+</tr>
+
+<tr>
+ <td colspan="2">
+ Please be aware that shipping can cost as much as, if not more than, your
+ item. And, items shipped internationally incur customs fees that can be
+ 100%+ the cost of the package. When possible, requests will be filled from
+ gear at your Mozilla space.
+ </td>
+</tr>
+
+<tr>
+ <th>First Name</th>
+ <td><input name="shiptofirstname" id="shiptofirstname" size="50" maxlength="50"></td>
+</tr>
+<tr>
+ <th>Last Name</th>
+ <td><input name="shiptolastname" id="shiptolastname" size="50" maxlength="50"></td>
+</tr>
+<tr>
+ <th>Email Address</th>
+ <td><input name="shiptoemail" id="shiptoemail" size="50" maxlength="50"></td>
+</tr>
+<tr>
+ <th>Address</th>
+ <td><input name="shiptoaddress1" id="shiptoaddress1" size="50" maxlength="50"></td>
+</tr>
+<tr>
+ <th>Address 2</th>
+ <td><input name="shiptoaddress2" id="shiptoaddress2" size="50" maxlength="50"></td>
+</tr>
+<tr>
+ <th>City</th>
+ <td><input name="shiptocity" id="shiptocity" size="50" maxlength="50"></td>
+</tr>
+<tr>
+ <th>State</th>
+ <td><input name="shiptostate" id="shiptostate" size="50" maxlength="50"></td>
+</tr>
+<tr>
+ <th>Country</th>
+ <td><input name="shiptocountry" id="shiptocountry" size="50" maxlength="50"></td>
+</tr>
+<tr>
+ <th>Postal Code</th>
+ <td><input name="shiptopostcode" id="shiptopostcode" size="50" maxlength="50"></td>
+</tr>
+<tr>
+ <th>Recipient Telephone</th>
+ <td>
+ <input name="shiptophone" id="shiptophone" size="50" maxlength="50">
+ <i>(include country code if outside of the US)</i>
+ </td>
+</tr>
+<tr>
+ <th>Personal ID/RUT</th>
+ <td>
+ <input name="shiptoidrut" id="shiptoidrut" size="50" maxlength="50">
+ <i>(if your country requires this)</i>
+ </td>
+</tr>
+
+<tr>
+ <td>&nbsp;</td>
+</tr>
+<tr>
+ <th class="heading" colspan="2">Tell Us Anything Else</th>
+</tr>
+
+<tr>
+ <th>Additional Comments</th>
+ <td><textarea id="comment" name="comment" rows="5" cols="50"></textarea></td>
+</tr>
+
+<tr>
+ <td>&nbsp;</td>
+</tr>
+
+<tr>
+ <td>&nbsp;</td>
+ <td><input type="submit" id="commit" value="Submit Request"></td>
+</tr>
+
+</table>
+</form>
+
+<p>
+ <span class="mandatory">*</span> Required Field
+</p>
+
+<p>
+ Requests will only be visible to the person who submitted it, authorized
+ members of the Mozilla Engagement team, and our Staples Customer Service rep.
+ We do this to help protect the personal identifying information in this [% terms.bugs %].
+</p>
+
+<script>
+ initFields();
+ onPurposeChange();
+ onAddGearChange();
+ tagMandatoryFields();
+ showGear();
+</script>
+
+[% PROCESS global/footer.html.tmpl %]