Reorganize to reduce number of variables used
When formatting days in iCal, do so in the user's timezone
ballard has its own msie6.css
css fixes for ie6

the main concern here is to make RT work and not so ugly on ie6.
most changes are plain position fixes, but here is the weird one:

though we hide ".message-stanza.closed" in history-folding.css,
ie6 hides "Show quoted text" span too, which is actually
".message-stanza-folder.closed", so I had to force the display
in msie6.css like:

    span.message-stanza-folder {
        display: inline !important;
    }
CSS fix that lets Firefox flow the data table below the chart

This is necessary on dashboards (or the homepage) when a chart gets
squeezed into a titlebox in a column.
web2 and ballard don't have the same titlebox margins as aileron

This prevents chart images from running up against the titlebox title.
css fix to make extra buttons visible on ie6

this includes "Clear All", "Check All" buttons in /Search/Bulk.html
Advise about GPG configuration in GPG error message

When logging error messages from GPG, also provide a pointer to
RT_Config.pm to help the user configure or disable GPG support.
Remove and re-add the site CSS element instead of updating it in-place

Not all browsers support updating the innerHTML/children of <style>
elements, notably IE 8.  Arguably we could use the standard DOM's
insertRule and IE's addRule to manage the content of <style> elements,
but it's simpler and more straight-forward to remove and recreate the
<style> element each time.
Add eval to trap fatal on scrip condition lookup when the condition id is 0.
Liberally handle email addresses surrounded by single quotes in incoming headers

Outlook is known to produce mail headers like so:

    Cc: "John Smith" <'jsmith@example.com'>

While Mr. Smith won't have received the original mail Cc'd to him and
RT, RT can at least notify him of future mail on the ticket if
$ParseNewMessageForTicketCcs is enabled.

This commit handles incoming mail.  There are still many places that
directly parse mail headers from the database and don't strip
surrounding single quotes.  For example, headers like the above will
still produce incorrect suggestions for the "One-time Cc/Bcc" fields on
ticket reply/comment pages.  To fix this for good, we need to first
consolidate all email address/header parsing into RT::EmailParser and
then fix the problem in a single place.
text/plain can also contain invalid utf8 data

so don't test mimetype, but check if it's pure ascii instead

see issue #20191
Clean up a warning when iterating large search results.

If you do a search that returns more results than your
$TicketsItemMapSize then Tickets->ItemMap sets the last link to 'undef'
because it doesn't know the last result in the set (it only knows the
subset).  Unfortunately, this caused warnings in two places that were
only checking for 'next' and assuming 'last' would be defined.
Create fresh MySQL databases with a default charset of UTF8

MySQL databases upgraded from < 3.8.0 to >= 3.8.0 run an ALTER DATABASE
command which sets the default character set to utf8 (via 947937e in
upgrade-mysql-schema.pl).  Fresh databases never set a default, but
always created tables as UTF8.  A consistent set of defaults between
upgraded and fresh DBs will help prevent bugs in the future.

Pointed out by Christian Loos in [rt3 #21773].
keep cf select values as an arrayref if there are multiple values in ticket clone

otherwise those values won't be able to cloned correctly.

btw the ticket clone code is used when creating a new link ticket on ticket
display page.

see also #20400
Support displaying the Extra Info box on users

Mostly useful if you're using MoreAboutRequestorExtraInfo
update mysql schema for email fields to utf8

utf8 data is valid nowadays.
Remove the local-install Makefile target

The local-install target was added in 578192f, but there was never a
shipped set of local/{etc,html,po} directories to install from (as far
back as we can reasonably go in svn history).  Thus the target always
errored out, although the errors were intentionally ignored.  Creation
of the local/ hierarchy in /opt/rt4 is handled by the "dirs" target.

The best guess is that this supported bundling of customizations when
building custom tarballs.  These days we have installable extensions.
show customized rights below their _corresponding_ categories

before, if people add new rights(with new categories) by calling
RT::System::AddRights and RT::System::AddRightCategories, all of them would be
listed below 'Miscellaneous' tab, which is not right.

new right categories will be listed alphbetically after core categories but
before 'Miscellaneous'

uninitialized warnings are also fixed.

see also #23158
Fix eroneous "<blank>" display in default searchbuilder format