/*******************************************************************************
 *
 * Leiden Open source Variation Database (LOVD) 3.0 Changelog
 *
 *************/

/***************************
 * 3.0 Build 29 (tag:3.0-29)
 * 2023-02-22
 *********/
 * Greatly improved the variant information and validation functions,
   lovd_getVariantInfo() and lovd_fixHGVS().
 * Applied some fixes after syncing the API code with the LOVD3 code; Fixed URL
   parsing issues with URL encoded '?' and arguments with '../'; Fixed
   lovd_arrayInsertAfter(), which contained an error; Moved the submission API's
   jsonDecode() method to the LOVD_API object; Fixed variants with an incorrect
   order in their inserted sequence.
 * Added an visual HGVS syntax checker tool using lovd_getVariantInfo() and
   lovd_fixHGVS(). This is an online form that takes a variant and finds out
   whether it seems to be described following the HGVS nomenclature. The form
   accepts either a single variant input, or a batch variant input, where a list
   of variants can be pasted into the input form. In both cases, it checks the
   variants' syntax and suggests a correction when possible. It also allows to
   validate variants using the VariantValidator service. When generating a sug-
   gested fix ourselves, we express our level of confidence that this correction
   is indeed as intended, in the text of the suggestion.
   The interface shows all results below the input, allows a quick method to
   accept corrections of either lovd_fixHGVS() or the VariantValidator service,
   and allows downloading the results to a text file so that the user can store
   the result of the analysis.
 * Several fixes in and improvements to the VariantValidator library.
   Closes #575: "Batch syntax / variant checker on LOVD.nl".
 * Fixed issue with the LOVD2-style API not fully working.
 * Fixed issue with incorrectly cased URLs.
 * Mutalyzer changed its URL, therefore breaking all interactions with its ser-
   vices. Updated the URL to v2.mutalyzer.nl which still runs the old software.
 * Fixed some notices and warnings in the code.
 * Changed the last references to document.location to window.location.
 * Some small textual fixes and updates.
 * Fixed errors in coding styles and old implode() syntax.
 * Fixed several issues running on PHP8.1.
   Closes #618: "LOVD is not compatible with PHP 8.1".
 * Updated the dbSNP URLs since they changed their URLs.
 * Fixed several javascript-related issues; Upgraded jQuery to v3.6.3 and
   jQueryUI to v1.13.2; Removed deprecated :first and :last selectors; Removed
   deprecated :eq() selector; Removed deprecated .size(); Removed deprecated
   $.isArray(); Removed deprecated jQuery.trim(); Removed deprecated
   jQuery.get().error().
 * Had real numeric values handled in checkFields(). Numeric strings were al-
   ready handled, but real numbers were not. This also means their length wasn't
   checked. Made sure we check the variant's positions to prevent a query error.
   Closes #526: "Query error: 'Out of range value for column "position_c_start"
   at row 1'".
 * Also made sure select fields are now properly checked; their values also have
   lengths.
 * Added several improvements and fixes to the GA4GH Data Connect API.
 * Added several fixes to the position fixing script.
 * When submitting a new genomic variant, the default chromosome is no longer
   set to "1". Force the user to make a choice, as they would sometimes forget
   to change the value.


/***************************
 * 3.0 Build 28 (tag:3.0-28)
 * 2022-07-18
 *********/
 * Applied several fixes to the LOVD2-style API. There was a problem with
   searching and the unique variant view didn't always show the variant descrip-
   tion on the alternative genome build. Also, removed a gene's MIM accession
   when it's empty.
   Closes #548: "LOVD2-style API showing unique variant view with JSON output
   picks random entries for alternative genome build".
 * Several internal XSS issues were fixed, adding protection against stored XSS.
 * Fixed not updating a gene's timestamp when an Individual is deleted.
 * Fixed variants linked to multiple individuals getting deleted when one of the
   individuals would be deleted. Note that normally, variants cannot be linked
   to multiple individuals.
 * Fixed warning shown when editing somebody else's data.
 * Fixed several PHP warnings and notices throughout the code.
 * Remove graphs from LOVD light.
   Closes #564: "LOVD light's status page crashes".
 * Allow passing the classification method to the submission API using the
   pathogenicity's @source value. Allowed values for @source are currently;
   "ACMG", "ACGS", "EAHAD-CFDB", "ENIGMA", "IARC", "InSiGHT", "kConFab", and
   "other".
   Closes #568: "Make it easier to provide the classification method when using
   the submission API".
 * Improve lovd_getVariantInfo() and lovd_fixHGVS(). Added functionality to deal
   with repeats, fixed bugs in the interpretation of positions, cleaned up the
   way wildtypes and '?' types were handled, made even more specific warning and
   error messages, implemented decisions on how to handle uncertain variants,
   expanded the test cases.
   Closes #566: "Improve lovd_getVariantInfo() and lovd_fixHGVS()".
 * Fix LOVD for PHP8. LOVD was incompatible with PHP8 due to the removal of
   curly braces as a string access operator.
   Closes #571: "LOVD incompatible with PHP8".
 * Multiple-selection lists didn't show pre-selected values on Windows browsers
   when the field itself didn't have focus, due to a styling issue. This problem
   does not exist on Linux. Removed some styling of the lists, so all users can
   see the pre-selected items.
   Closes #570: "Pre-selected items are not visible in multiple-selection list
   when list is not in focus".
 * Updated the copyright statement to 2022.
 * Completely rebuilt the URL validation on the system settings form.
   Closes #577: "Blind SSRF vulnerability on lovd3 database url".
 * Corrected grammar in code of conduct, and fixed link to code of conduct from
   the readme.
 * Fixed bug in generating page titles, improved generated page titles, and let
   more pages use generated page titles.
 * Don't needlessly show VLs on the user's unfinished submission page.
 * Fixed row link when viewing other user's unfinished submissions.
 * Enable the "Your submissions" link that was defined but not enabled.
 * Removed hidden curators from the LOVD2-style API, genes output.
   Closes #590: "REST JSON API includes hidden curator names".
 * Fixed link to LRGs.
   Closes #599: "LOVD uses wrong protocol to open LRG web pages".
 * Added a /diseases/[OMIMID] redirect. This makes it easier to check if a
   disease with a certain OMIMID is configured in an LOVD instance.
   Closes #591: "Allow for /diseases/[OMIMID] forwards".
 * Fixed several issues in our Variant Validator library. Small changes like
   delA to del were misinterpreted as a WROLLFORWARD, caused by a change on our
   side. Properly store warnings as one list, not a list within lists.
   Restructure the filtering of the warnings a bit. Catch IREFSEQUPDATED
   messages, alerting us about updated refseqs. Silently remove LRG-related
   errors when running verifyVariant(). Also let verifyVariant() ignore
   "RefSeqGene record not available". Throw WALIGNMENTGAPS when necessary, and
   hide VV's warnings. Fix recognizing WROLLFORWARD. Sync LOVD with VV endpoint
   and replace WGAP by WALIGNMENTGAPS. Clarify that verifyGenomic() needs an NC
   (not an LRG or so). Also, just return false if we have no build, so we don't
   need to call VV and handle the output. We know it'll fail. Ignore slow
   Ensembl transcripts when using verifyGenomic(). Also use the new VV warning
   code in the variant fixing script. Handle out of range errors for variants
   close to the ends of the NCs.
   Closes #583: "Adapt VV library for recent change that throws warnings for
   silent corrections".


/***************************
 * 3.0 Build 27 (tag:3.0-27)
 * 2021-08-17
 *********/
 * Redefined all FLOAT UNSIGNED columns as FLOAT, since MySQL 8 has deprecated
   FLOAT UNSIGNED columns.
 * Fixed bug in page titles when creating a new variant for a screening.
   Closes #505: "Page titles not always correct".
 * Fixed bugs in the password reset feature. The password reset didn't work well
   when the email address was used to reset the password.
   Closes #507: "Resetting password doesn't unlock account".
 * Fixed problems with genes not supported by Mutalyzer by using VV as a backup.
   Prevent notices when Mutalyzer doesn't recognize a gene. Started the
   migration by using VV as a backup for Mutalyzer when creating genes and
   adding transcripts to existing genes. There are too many "unsupported" genes
   right now, that have changed their symbol and therefore are no longer
   supported by Mutalyzer. VV can handle them just fine. For now, call VV only
   when Mutalyzer fails to generate a UD or when Mutalyzer fails to find
   transcripts at all.
   Closes #513: "Invalid transcripts for G6PC1".
 * When creating a gene by its symbol, recheck if we don't already have it. When
   creating a gene by its HGNC ID, LOVD checks if we already have that HGNC ID
   in the database. LOVD didn't do that if you use the symbol, it only checked
   if we have that symbol already. So for genes who've changed symbol, it was
   possible to open the create gene form using its new symbol, after which you
   would get a query error.
   Closes #515: "Creating a gene that already exists under a different symbol
   can cause a query error".
 * Implemented data licensing. Data submissions can now be licensed by data
   owners, so it is clear for every user of LOVD what can, and what can not, be
   done with the data deposited in LOVD.
   Closes #502: "Allow submitters to choose license applying to their data".
 * Removed all gender-specific pronouns and replaced them with "they", "them",
   or "their". Fixed both the documentation as well as the software.
   Part of #97: "Use singular 'they' everywhere instead of 'he', or 'he/she'".
 * Fixed various security issues. After running a "bug bounty program" for a
   week, several minor and a two major possible security vulnerabilities have
   been identified in the LOVD website and the LOVD software. Amongst others,
   vulnerabilities were reported by Preet Bhoir, Chirag Mistry, K0t, Taha Smily,
   Vijay Farswan, and Warbid. They have all been fixed.
 * Added the GA4GH Data Discovery API to LOVD3. This is a full LOVD3-specific
   implementation of the GA4GH Data Discovery standards without the use of other
   libraries. This endpoint currently requires authorization. The data is shared
   using the VarioML aggregated variant format, which was developed in parallel
   to the development of this API. No other format is available or supported.
   This format allows for the export of virtually all standard fields in LOVD.
   Closes #518: "Build GA4GH Data Connect API".
 * Fix several errors collected from the system logs.
   Closes #527: "Query error: 'Invalid parameter number: number of bound
   variables does not match number of tokens'".
 * Improved security in various ways. Improved URL parsing. Sleep for one second
   when resetting a password. Also synced the two different messages printed to
   the screen when resetting a password.
 * Fixed display of LOVD owned records. The owner field was displayed as empty
   for data owned by LOVD.
   Closes #533: "Entries owned by LOVD don't show an owner".
 * Explain inheritance codes on the Diseases detailed view, instead of showing
   the abbreviations only. Also add Digenic as an inheritance mode for Diseases.
   Closes #537: "Improve the inheritance in the Diseases VE".
 * Fixed issues with importing data.
   Closes #539: "Selection list values surrounded with spaces are not cleaned
   when importing".
 * Don't allow Curators and up to publish Variants without effects.
   Closes #484: "Curators and up can create variant submissions without
   classification".
 * Warn users when editing other user's data.
   Closes #542: "Warn Curators not to overwrite data from Submitters".


/***************************
 * 3.0 Build 26 (tag:3.0-26)
 * 2021-02-22
 *********/
 * Changed rules when variant ID columns are shown, and restyled them a bit.
 * Added an "LOVD light" switch, allowing large databases to easily enable
   database optimizations. An "LOVD light" database will perform much faster
   than a regular LOVD instance, because it disables some features that cost a
   lot of CPU power on large databases.
 * Improved imported frequencies; the "average frequency (large NGS studies)"
   field now imports gnomAD v.2.1.1 frequencies, and also links to the variant
   location in gnomAD.
 * Removed the "Conversion" variant type. The HGVS nomenclature will remove it
   from their nomenclature pages, this variant type will now be described as a
   deletion-insertion.
 * Fixed missing checks on selection field values; semicolons are now disallowed
   in values.
   Closes #480: "Disallow semicolons to be used as a selection option for
   fields".
 * Improved the automated tests.
   Closes #482: "Fix randomly failing tests".
 * LOVD will now automatically add the Entrez ID and OMIM ID to genes that don't
   have these IDs filled in, when any user edits the gene.
   Closes #483: "Not all information can be added to a gene once created".
 * Fixed query error when creating or editing an entry and leaving a decimal
   field empty.
   Closes #489: "Query error upon editing an entry while leaving a decimal field
   empty".
 * Updated the upstream URL to prevent redirect issues. We now require HTTPS on
   our website.
 * Added an option to add links to Orphanet from the gene homepages.
   Closes #488: "Add links to Orphanet from the gene home pages".
 * Fixed bug; HGNC IDs weren't handled well in the submission API.
   Closes #492: "Submission API: Providing HGNC IDs as integers causes
   unpredictable results".
 * Fixed the link from the Diseases detailed view to HPO.
 * Added the genomic DNA description(s) to the LOVD2-style API's JSON output.
 * Fixed reCAPTCHA for users in China by using a different domain. Google.com is
   blocked, but Rechaptcha.net is not.
   Closes #495: "Can't add or register new user account".
 * Fixed hard-coded table name in the API, which disabled part of the API if the
   table prefix was not "lovd_v3".
   Closes #497: "'lovd3_whole_genome.lovd_v3_variants_on_transcripts' doesn't
   exist".
 * Added an optional donation request dialog. When enabled, this shows a dialog
   requesting for a donation. The dialog will be hidden for a chosen amount of
   time.
 * Fixed problems with MySQL 8.0.x.
 * Fixed how the input for numeric columns are checked; minimum and maximum
   values weren't checked properly.


/***************************
 * 3.0 Build 25 (tag:3.0-25)
 * 2020-10-22
 *********/
 * Added the possibility to download an entire submission from the Individuals
   detailed view.
   Closes #436: "Add feature to download single submission in the LOVD3 format".
 * Improved the Variant Validation script - reduced the number of failures,
   improved errors handling, fixed display of errors, improved autonomous
   decision making and error recognition, improved protein predictions, fixed
   bug where the script could empty DNA, RNA, and protein fields.
 * Fixed link to the Ensembl and NCBI genome browsers. The link to the Ensembl
   genome browser had to be changed because their API changed; the link to the
   NCBI sequence viewer failed because of an additional request coming from
   their server that LOVD didn't handle.
   Closes #435: "Graphical display links don't work".
   Closes #438: "Fix link to Ensembl genome browser".
   Closes #439: "Fix link to NCBI sequence viewer".
 * Fixed bug; The feature to map a variant to the genome didn't always work.
   Closes #444: "Mapping transcript to genome doesn't work if you empty the
   genomic field first".
 * Updated the LOVD2 to LOVD3 converter script; added support for the DbSNP
   column, and added support for multiple diseases per individual, if separated
   by a semicolon.
   Closes #437: "LOVD2 converter: Warning: linked Variant/DbSNP to non-existing
   column VariantOnTranscript/DbSNP in output section Variants_On_Transcripts".
   Closes #454: "LOVD2 Converter: LOVD2 records with multiple disease values do
   not get disease values converted individually".
 * Improved the "forgot your password" feature.
   Closes #448: "Add username to password reset email".
 * Added feature to merge entries (Individuals, Screenings). The merge is only
   processed in case there are no conflicts in values between the two entries.
   For Screenings, safely merge differences in Template and Technique. The log
   entry that is generated by the merge is used to redirect users who use the ID
   that has been merged into the other.
   Closes #450: "Add feature to merge entries".
 * Fixed incomplete grouping of variants in the unique variants view for large
   data sets.
   Closes #457: "Fix MySQL weirdness in grouping variants".
 * Improved page titles by adding details to them.
   Closes #452: "Improve variant page's titles with variant information".
 * Fixed the generation of DBIDs, in some cases DBIDs were generated that were
   already in use.
   Closes #460: "LOVD generates DBIDs that are already in use under certain
   circumstances".
 * Improved the submission API to allow variant-only submissions and to directly
   process submissions if configured to do so. Also, HGNC IDs can be used
   instead of gene symbols.
   Closes #462: "Allow processing variant-only submissions through the API".
   Closes #466: "Add the option for submitting HGNC IDs instead of gene symbols
   for the submission API".
 * Extended search capabilities by allowing searching for prefix or suffix.
   Closes #464: "Extend search capabilities".
 * Added a link to MobiDetails, an annotation platform dedicated to the
   interpretation of DNA variants. You can have MobiDetails analyze a variant in
   LOVD and see all generated predictions on their platform.
   Closes #455: "Add a link to MobiDetails".
   Closes #471: "Improve link to MobiDetails".
 * Added a "how to query" information dialog above data listings.
 * Improved the communication with the Variant Validator service.
   Closes #469: "Selectively send the NC to VV whenever using the transcript-
   based nomenclature".
 * Several other small fixes.


/***************************
 * 3.0 Build 24 (tag:3.0-24)
 * 2020-07-13
 *********/
 * Fixed bug; The entered IP value to restrict an account was not validated when
   registering a new submitter account.
 * Added new features to allow Curators and up to more quickly curate new data;
   the "Curate (publish) selected entries" feature and the "Publish (curate)
   entire submission" feature.
   Closes #225: "Allow multiple entries to be published (curated) at the same
   time".
 * Fixed bug; The JSON variant API wasn't selecting data properly.
 * APIs and views now sort transcripts based on the number of variants they
   contain.
   Closes #420: "API not returning EXT2 result for primary transcript that is
   present in UI".
 * Fixed notices and deprecated function calls.
 * Improved handling of OMIM IDs and HPO terms in submission API.
 * Rebuilt all automated tests.
   Closes #113: "Improve tests to be less cluttered".
   Closes #284: "Upgrade Travis environment and simplify setup".
 * Created an object for communicating to the Variant Validator service, and
   created a variant verification script. The variant verification script checks
   all variants in the database using the Variant Validator service.
 * Added support for clinical classification columns in the submission API.
   These columns will become the new defaults to store clinical classification.
 * Removed additional variant effect values that were added in 3.0-20. They will
   be replaced by the new clinical classification columns.
 * Fixed bug; When creating or editing a custom column, the example width bar
   didn't change anymore when you set the column's width.
 * Fixed bug; The registration spam filter rejected too many real registrations.
   Closes #428: "Spam registration filter is too strict".
 * Fixed several issues with custom links.
   Closes #430: "Custom links on the gene homepage are hard coded".
 * Improved the "forgot my password" feature.
   Closes #432: "Improve the 'forgot my password' feature".


/***************************
 * 3.0 Build 23 (tag:3.0-23)
 * 2020-02-19
 *********/
 * Removed the reference field from the user data entry form.
 * Fixed potential XSS risk in combination with the gene switcher.
 * Fixed potential XSS risk in combination with the updater.
 * Links to variant pages from the Individuals or Screenings detailed views,
   were malformed and didn't fully work.
 * Updated copyright notice in the page footer to 2020.
 * Added some LOVD2 columns to the LOVD2 to LOVD3 converter script.
 * Added timezone indicators to all printed timestamps in LOVD (currently: the
   system's time zone).
 * Opened up the variant Options menu for the public, to have links to the
   genome browsers.
 * Removed the WikiProfessional feature.
 * Data owner information is now not only shown in the data listings, but also
   on the data detailed views.
 * Make adding a disease or phenotype to an individual mandatory for the data
   entry forms as well as the submission API.


/***************************
 * 3.0 Build 22 (tag:3.0-22)
 * 2019-10-02
 *********/
 * Fixed bug; Curators were no longer able to see non-public individuals in the
   gene-specific Individual view.
 * Fixed bug; Submitters could submit data without a variant effect by disabling
   all transcripts of the gene they selected.
 * Sending format=application/json in GET queries to the LOVD2-style API will
   make the API return JSON.
   Closes #348: "Make current REST API reply in JSON, too".
 * Included version 3.0-22 of the official LOVD Reference Sequence Parser
   script.
   - Updated the script to only show transcripts of the gene passed to it.
     Closes #314: "Refseq parser widget hangs in Firefox 57".
 * Fixed bug; When confirming variants with a different screening, but not
   selecting any variants, a query error occured.
   - Also, when confirming variants with another screening, clicking the row no
     longer forwards to that variant. It now captures the click and switches the
     row's checkbox.
   Closes #289: "Improve confirming a variant with a screening".
 * Fixed bug; Incomplete custom links could break the unique variant view's
   HTML.
 * Various improvements to the submission API.
   - Added support for dbSNP IDs, PubMed links, Genetic origin and Pathogenicity
     and Variant comments.
   - Fixed a minor data formatting bug in HPO terms.
   - Added some automated data formatting for RNA and protein fields.
   - If a gene is given for a variant, and it exists in LOVD, it must match with
     the given transcript.
 * Fix broken links to the gene pages on the HGNC website after their updates.
 * Made several improvements to the speed of LOVD. Improved the speed of the
   update import, the Individual listings on Disease pages, and complex Variant
   listings.
   Closes #386: "The variants/in_gene page is extremely slow on the GV shared".
 * Fix username field to also allow for an email address.
 * Fixed bug in Find & Replace; Selection lists were not compared correctly.
 * Fixed bug; Delins variants were recognized as deletions in the statistics.
 * Allow some support for JSON data in LOVD3 data fields. If the fields contain
   JSON data, LOVD will format the data nicely and will not display the full
   contents in data listings.
 * Included version 3.0-22 of the official LOVD Reading Frame Checker.
   - Updated the HGVS description of the DNA change to the new HGVS format.
 * Fixed bug; The variant mapper didn't fill in the variant effect on the new
   transcript mappings, but left it at its default.
 * Several improvements to the download feature.
   - The public gene-specific downloads had some system columns included.
   - A download will now no longer show inactive Phenotype and
     VariantOnTranscript columns, if filters are active for Diseases or Genes,
     respectively.
 * When creating a transcript without selecting a gene first, LOVD no longer
   uses a dropdown but instead uses a more efficient data listing.
 * Enlarge the DNA and protein fields to support longer insertions.
   Closes #251: "VariantOnGenome/DNA field in lovd_variants table too small by
   default".
 * Allow for publisher and journal-specific queries using the DOI reference
   search.
   Closes #257: "Make DOI reference search be partial if requested".
 * Updated the LOVD2 to LOVD3 converter; It can now also handle DOIs, updated
   column mappings and handling, added support for converting phenotype OMIM IDs
   to LOVD3 Diseases.
 * Changed the icon of the update checker when there are no updates available,
   and added Alt and Title tags.
 * Fixed security issue in loading the authorization for ViewLists, which
   allowed Curators to craft special requests to load data listings with
   non-public data of other genes.
 * Fixed bug; Some data listings were not authorized for Curators at all, which
   hid non-public data from them that they should have been able to see.
 * Allow Curators to download more data listings.
 * Fixed bug; When importing, LOVD could use the wrong data for checking the
   panelid, fatherid and motherid links.
 * Added inheritance field for diseases.
   Closes #275: "Copy the inheritance field feature from LOVD+".
 * Upgraded jQuery, jQuery UI and the cupertino theme.
 * Fixed bug; Deleting a single log entry didn't load the next page's first log
   entry anymore.


/***************************
 * 3.0 Build 21 (tag:3.0-21)
 * 2018-03-14
 *********/
 * Many changes to the submission API.
   - Display the admin's email address better when it's multiple addresses.
   - Added LSDB ID to Admin's Auth Token dialog, so the Admin can find out which
     ID the clients need to use to start submitting data into the LOVD.
   - Fixed bug; 3'UTR variants were not accepted.
   - Built scheduling interface for importing files submitted through the API.
     Files submitted through the API are displayed and ranked, showing
     information on the file and possible import errors, and action handles to
     download the file or to (re/un)schedule it for import or set the priority.
   - Various improvements to the import script, allowing automation of importing
     new data into LOVD3.
   - Fixed bug; The LOVD receiving a submission might have more custom columns
     that are mandatory. Try to predict the default values for those, and fill
     those in.
   - Fixed bug; API submissions had their screenings set to "no variants found".
   - Keep the JSON file for each API submission.
   - Imports can be run manually or run automatically.
   - Documented the automation in INSTALL.txt.
   - The autoimporter sends an email to every curator (or the managers in case
     of intragenic data) that is affected by the imported data, in case
     non-public data was included (which is the default).
   - Added a section in the manual on the submission API.
   Closes #149: "Create API to submit data into".
 * Fixed bug; The LOVD2 to LOVD3 converter script caused some problems with
   other data views.
   Closes #313: "Cannot click through on transcripts viewlist".
 * Fixed bug; The data status color coding was visible to the public, which
   caused confusion with users.
 * Fixed bug; The Owner field didn't always show a tooltip in data listings.
   Closes #307: "Owner field doesn't always show tooltip".
 * Allow genes to be viewed by their HGNC ID.
   Closes #270: "Redirect genes/HGNC_ID to genes/SYMBOL".
 * The concluded variant effect is renamed to "by curator".
 * The Phenotype/Additional column will now be added to the Individuals data
   listing, if it's available.
   Closes #327: "Create new view: Individuals and Phenotypes".
 * Fixed bug; Fields edited through the Find & Replace feature will now actually
   be checked, and some other minor changes.
   Closes #127: "Find & Replace improvements".
   Closes #214: "Custom links not shown properly during find & replace".
 * The variant effect fields for the genomic level will now only show on the
   data entry form, now when there is more than one transcript associated with
   the variant, or when there is a conflict between the variant effect on the
   genomic and transcript level.
   Closes #305: "Don't duplicate the "Variant effect" fields unnecessarily".
 * Updated the ORCID API from v.1.2 to v.2.1; users could no longer register
   with their ORCID.
   Closes #340: "ORCID returning ID not found error when creating new user".
 * Rewrote communication with Mutalyzer to use a more stable method.
 * Fixed bug; In the grouped views, data owners were not shown when the
   department field was empty.
 * Fixed bug; The "variants affecting transcripts" view didn't show all
   transcripts associated with each variant, but only each gene. This
   resulted in unpredictable sorting and the not showing of transcripts that did
   have variants.


/***************************************
 * 3.0 Build 20a (patch 01) (tag:3.0-20)
 * 2017-10-17
 ***********/
 * Fixed bug; Internet Explorer users could no longer operate any of the data
   listings.


/***************************
 * 3.0 Build 20
 * 2017-10-10
 *********/
 * Fixed bug; The link to the Reading Frame Checker was a bit malformed when the
   gene had no variants to show.
   Closes #237: "Link to reading frame checker improperly displayed for some
   genes".
 * Fixed bug; The LOVD2 to LOVD3 converter script did not translate submitter
   IDs properly.
   Closes #238: "Submitter IDs not translated in LOVD2 conversion".
 * Fixed bug; variants_found field was missing in LOVD2 to LOVD3 conversion
   output for the section screenings. Now defaults to "1".
   Closes #243: "variants_found missing in LOVD2 to LOVD3 conversion output"
 * On user's account pages, the number of phenotype entries owned is now also
   mentioned. We can't link to it however, because there is no system-wide
   phenotype data listing, but only gene-specific listings.
   Closes #59: "Add phenotype entries to list of 'Data owner for...'
   information".
 * Show link to HPO on disease page.
   Closes #107: "Link on disease page to HPO".
 * Added feature; if there is only a single gene present in the database,
   visitors to the homepage will be redirected to that gene's page instead of
   the gene list.
   Closes #98: "Configurable homepage".
 * Fixed bug; The variant mapper gets stuck when encountering variants with no
   position set.
 * Improved message that the curator sees, when they try to disable a custom
   column that has already been disabled for all their genes.
   Closes #162: "Confusing message when curator disables custom column".
 * Added links to overviews of created entries on user page.
   Closes #190: "Add links to records created by user on user's profile page".
 * The "Panel size" and "ID of panel this entry belongs to" fields on the
   individuals data entry form have clearer descriptions.
   Closes: #191: "Panel size description could be improved".
 * Fixed bug; A variant could be made public when "Affects function (reported)"
   was set to "Not classified".
   Closes #213: "Curator is allowed to leave `effect_reported` set to
   unclassified."
 * Removed redundant "View" in all page titles. E.g. "View all genes" became
   "All genes".
   Closes #206: "Gene homepage title has unnecessary word 'view'".
 * Fixed bug; When the LOVD logo was customized, the page header would sometimes
   overlap the page data.
   Closes #277: "The page header isn't properly displayed when system logo is
   changed".
 * Added script to fix known errors in variant positions. The script has been
   added to the scripts folder.
 * Let screening page show linked variants, even when `variants_found` flag is
   not set.
   Closes #242: "Display of screening with linked variants".
 * Fixed bug; Importing a phenotype entry without specifying a disease ID
   resulted in a fatal error.
   Closes #245: "Import file parsing fails with a fatal error when the diseaseid
   field is left empty for a phenotype record".
 * Fixed bug; Colleagues couldn't be assigned with MySQL's default strict mode.
   Closes #283: "Can not add colleagues that are not allowed to edit with
   MySQL's strict mode enabled".
 * New effect categories for variants that affect protein function but are
   either not associated with the individual's disease phenotype or not
   associated with any known disease phenotype.
   Closes #261: "Additional variant effect values".
 * Fixed bug; When automatically mapping variants of genes on the antisense
   strand, the variant positions were stored in the wrong order.
   Closes #58: "Extract positions from variant description".
 * Fixed bug; The message shown when a data listing had no results was sometimes
   unclear.
   Closes #189: "Viewlist 'no results' warning message sometimes unclear".
 * Implemented some speed improvements, mostly making a big difference in larger
   databases or on servers with limited resources.
 * Added feature for the unique variant view to show only entries where a
   certain column has different values. This can be useful for quickly finding
   variants where, for instance, different observations have different variant
   effects set. The feature is available under the options wheel for curators
   and up.
   Closes #202: "Overview of variants with multiple classifications".
 * Fixed bug; Sometimes search arguments in data listings got lost when using
   the browser's back button.
   Closes #292: "Some viewlists lose filters when using browser back button".
 * Fixed bug; Sorting the unique variant view sometimes failed on newer MySQL
   servers.
   Closes #291: "Query error on sorting unique variants viewlist".
 * Fixed issues sometimes showing up on Windows servers, like with the data
   import not working.
 * The LOVD2-style API can include the variant effect now, if requested.


/***************************
 * 3.0 Build 19 (tag:3.0-19)
 * 2017-06-19
 *********/
 * Fixed bug; Transcripts could not easily be added to variants anymore. This
   was caused by the recent changes making LOVD compatible with the new default
   "ONLY_FULL_GROUP_BY" MySQL setting.
   Closes #167: "Manage transcripts feature doesn't allow addition of transcript
   anymore".
 * Fixed bug; The new page header wasn't properly displayed in Firefox.
   Closes #166: "New header does not take full width on Firefox".
 * Fixed several problems with MySQL's new default strict mode. LOVD wasn't
   installable, and transcripts couldn't be created if this setting was enabled.
   Also, made some changes to make it easier to work with this MySQL version.
   Closes #143: "LOVD won't install with error "Invalid default value for
   'start_date'"".
   Closes #173: "Installation failed on ubuntu 16".
   Closes #185: "SQL only full group by error in DBID check".
   Closes #210: "Default values for non-essential NOT NULL database fields".
 * Fixed bug; The "all variants affecting transcripts" view showed only one
   entry. This was caused by the recent changes making LOVD compatible with the
   new default "ONLY_FULL_GROUP_BY" MySQL setting.
   Closes #176: "Viewlist entry count differs from what is displayed".
 * Updated some code to get ready for newer PHP versions.
   Closes #156: "LOVD uses old-style constructors".
 * Fixed bug; The gene's graphs pages only showed half of the graphs due to a
   query error introduced by the recent changes making LOVD compatible with the
   new default "ONLY_FULL_GROUP_BY" MySQL setting.
 * Fixed bug; Gene editing page failed to save changes in certain (rare) cases.
   Closes #200: "Fatal error on editing particular gene (on shared
   installation)"
 * Fixed bug; Single letter genes, like T, were not fully supported by LOVD.
   Closes #106: "Single-letter gene "T" is not fully supported".
 * Added feature to show variants in a certain genomic range, using the URL
   format /variants/chr3:20-200000.
   Closes #57: "Make all variants within a genomic range viewable".
 * Improved variant list error message for genes without transcripts and genes
   without variants.
   Closes #89: "Misleading text "No transcripts or variants found"".
 * Removed repeated error message during import if a checkbox field doesn't
   contain a 0 or 1.
 * When importing, the 'variants_found' field now allows for values higher than
   1, even though they will be interpreted as 1, since the field is a flag.
   Closes #82: "Minor improvements to import.php regarding the 'variants_found'
   column".
 * When a form field contains incorrect values (usally when importing), LOVD
   won't print more than one error message about that field's value anymore.
 * Included version 3.0-19 of the official LOVD Reference Sequence Parser
   script.
   - The "Include link to GenBank record" field in the final step sometimes
     contained more text than just an GenBank record ID.
 * Updated all links to the HGVS nomenclature to point to the new website.
   Closes #208: "Links to deprecated HGVS nomenclature website".
 * Clarified the link name to the exon/intron information table.
   Closes #207: "Link to Exon/Intron table missing on gene homepage".
 * Fixed Chrome again adding the username to data entry forms when the user had
   told Chrome to save their password.
 * Submission emails now have their Reply-To set to the curators and submitters,
   so that both parties can just reply to end up with the correct addressees.
   Closes #217: "Set Reply-To header for submission emails".
 * Updated all links to the NCBI to use HTTPS.
   Closes #219: "The Reference Sequence Parser no longer downloads GenBank files
   over a proxy server".
 * Added a LOVD2 to LOVD3 converter script. It allows for the import of an
   LOVD2 data file, that together with a user ID translation table generates an
   LOVD3 import file. The script has been added to the scripts folder.
   Closes #96: "Include script to convert the LOVD2 download format to the
   LOVD3 format".
   Closes #155: "Undefined index notice in LOVD_Custom::checkFields()".
 * Added the feature to allow the public to make downloads of public gene-
   specific data, provided the curator has enabled this option.
   Closes #78: "Download link missing on gene homepage".
   Closes #175: "Download link missing from gene homepage for public, even if
   setting is enabled".
 * Included version 3.0-19 of the official LOVD Reading Frame Checker.
   This script is ported from LOVD2 and allows you to quickly check whether a
   whole-exon or multi-exon deletion or duplication leads to a in-frame or out-
   of-frame change.
   Closes #139: "Port reading frame checker from LOVD2".
 * Upgraded the reCAPTCHA integration to version 2.
   Closes #142: "Upgrade reCAPTCHA".
 * Added feature to open links in tables in a new browser tab. Does not work
   for some older browsers based on webkit.
   Closes #196: "Let viewlist rows open link in new window with middle-click".
 * Fixed bug with editing individuals with large numbers of diseases.
   Closes #192: "Changes to individual not saved".
 * Fixed occasional deadlocks when viewing and editing data at the same time.
   Closes #233: "Deadlocks in ViewLists".
 * Fixed bug; The "Select all" feature was not working anymore on some variant
   views.
   Closes #205: "The "select all" feature in the options menu is not working".


/***************************
 * 3.0 Build 18 (tag:3.0-18)
 * 2016-12-23
 *********/
 * Make header stick to the top of the browser's viewport, such that the links
   in the header are always visible.
 * Fixed bug; Curators were given an actions menu when viewing other users. None
   of the links actually worked because of security measures, now the menu has
   been removed.
 * Full disease data can now also be downloaded by Managers and up.
 * Fixed bug; The "Manage transcripts for this variant" feature didn't allow the
   removal of a transcript anymore due to an error introduced in 3.0-17.
 * Fixed bug; Importing data failed for installations with a '2' in the table
   prefix, because the import code misunderstood the table types that way.
 * Large downloads are now allowed to take a longer time, to make sure they
   finish before the server interrupts them.
 * Fixed bug; When a user needed to change the password, the force option didn't
   work properly, and could be circumvented.
 * Improved data form when changing the password after unlocking your account,
   to clarify that you need to insert the unlocking code again for confirmation.
 * Users can now create their own API tokens to use for the LOVD data submission
   API.
 * LOVD now includes a submission API, that can take VarioML formatted data and
   convert this into an LOVD3 import file. Currently, these import files are not
   yet automatically imported. This will be included in a future LOVD release.
   Documentation on this API is to follow soon.
 * The VariantOnTranscript/Exon field is now no longer mandatory by default,
   allowing the submission API to directly submit data, since it doesn't contain
   the Exon field.
 * When a Database administrator creates a new user, the level now selected by
   default will be Submitter instead of Manager.
 * The variant effect columns were checked twice while submitting and importing,
   possibly resulting in repeated error messages.
 * Fixed bug; The variant effect fields didn't have a default value when
   importing.
 * Fixed bug; Imports could set variant start positions that were higher than
   variant end positions.
 * When variants are imported without position fields or variant type filled in,
   LOVD will now predict them.
 * Fixed bug; Variants that were imported with empty intron positions, didn't
   group together with variants that had a 0 filled in.
   Closes #140: "Position fields during import sometimes left as NULL".
 * LOVD3 is now compatible with the ONLY_FULL_GROUP_BY MySQL setting.
   Closes #144: "Make LOVD compatible with the `ONLY_FULL_GROUP_BY` MySQL
   setting."


/************************************
 * 3.0 Build 17 patch 02 (tag:3.0-17)
 * 2016-09-27
 *********/
 * Fixed bug; Some data listings had some rows that were no longer clickable.
 * Fixed bug; Custom columns could no longer be edited because of a double
   inclusion of a library file.


/**************************
 * 3.0 Build 17 patch 01
 * 2016-09-22
 *********/
 * Fixed bug; Custom links no longer functioned in most columns in custom data
   listings.


/**************************
 * 3.0 Build 17
 * 2016-09-21
 *********/
 * Fixed bug; Impossible for users of level submitter to browse the user list
   on the access sharing page.
 * Fixed bug; Repeated gene names on user account pages.
 * Added a "remarks" field for transcript. This may for example be used to
   denote why a certain transcript was chosen.
   Closes #77: "Comment on transcript".
 * Fixed bug; Query errors could occur when performing incorrect searches in
   hidden columns.
 * Fixed bug; Error when updating individuals panel from import file.
   Closes #67: "Import: Panel_size of individual in panelid field not checked
   properly"
 * Fixed bug; The previous bug fix #53, about LOVD complaining about fields not
   in the file when running an update import, was not implemented properly.
   Closes #53: "Importing records fails on existing fields in database".
 * Fixed bug; Colleagues can now see non-public fields of shared data.
   Closes #105: "Assigned colleagues can't see non-public fields in
   ViewEntries"
 * Added the option to block submitter registrations.
 * Added the option to create announcements within LOVD.
 * Described these two new features in the manual, and added a new chapter
   "Updating LOVD".
 * Added new fields "tissues", "features" and "remarks" to diseases.
   Closes #101: "New columns for diseases viewlist: tissue, alias, remarks".
 * Fixed bug; The proxy server settings were often ignored by LOVD, and proxy
   servers could not be used when using HTTPS, such as with Mutalyzer resources.
   Closes #112: "SOAP using HTTPS over proxy using PHP 5.6.0 doesn't work".
   (thanks to Jorge Oliveira, Centro Hospitalar do Porto, for reporting)
 * Fixed bug; For curators, editing a disease could result in a fatal error in
   some conditions.
 * Fixed issue with the HGNC returning multiple OMIM IDs sometimes. Some LOVD
   installations refuse to create such genes.
   (thanks to Jorge Oliveira, Centro Hospitalar do Porto, for reporting)
 * You can now perform a 'find and replace' on custom columns in some tables if
   authorized. Note that this feature is still in BETA, changes made using find
   and replace are not checked for errors as done in the edit forms, therefore
   using this feature may have destructive consequences.


/***************************
 * 3.0 Build 16 (tag:3.0-16)
 * 2016-06-24
 *********/
 * Fixed bug; RNA prediction of a variant affecting splicing was 'r.(?)' instead
   of 'r.spl?'.
 * Protein prediction for non-coding transcripts now defaults to "-".
 * Fixed bug; Variants with both a chromosomal DBID and a gene's DBID, were
   assigned new gene-specific DBIDs, instead of reusing the existing one.
 * Added multiple clarifications on the user account form and in the emails sent
   by LOVD to new submitters about the IP address allow list. Users setting that
   field are also now warned about the risks.
   Closes #69: "Clarify IP allow list functionality on form and confirmation
   email".
 * Fixed bug; When updating data using the update through import beta feature
   and leaving the owned_by field out of the file or empty, LOVD would overwrite
   the existing value with the ID of the user importing the file.
   Closes #66: "Update import always wants to edit the owned_by field".
 * Fixed bug; When running the update import, LOVD would complain if fields are
   not filled in correctly, even if those fields are not defined in the file.
   Closes #53: "Importing records fails on existing fields in database".
 * Updated copyright notice in the page footer to clarify the copyright covers
   the software, not the contents of the database.
 * Added possibility for sharing access to one's data with others. One can
   make another user a 'colleague' and let them view (and optionally edit)
   their submissions.
   Closes #51: "Sharing permissions".
 * Fixed bug; LOVD used to store Mutalyzer identifiers for transcript variants,
   but they were found to be unstable. Now, Mutalyzer has a new feature that
   works around this and now protein prediction in LOVD is done with an NCBI
   accession number as identifier for the transcript variant.
   Closes #76: "Unstable identifiers for transcript variants".
 * Clarified that the gene list during variant submission only shows genes with
   transcripts.
 * The currently selected gene is now also updated when the "all screenings for
   gene" page is loaded.


/***************************
 * 3.0 Build 15 (tag:3.0-15)
 * 2016-05-02
 *********/
 * Fixed bug; During update import the file processing was not stopped after too
   many errors. The message "Too many errors, stopping file processing." was
   displayed more than once.
 * Fixed bug; Custom columns with numbers in the names were not converted to
   links in the log entries.
 * After creating a user account for somebody else, you will now always be for-
   warded to the account page of that new user.
 * Mitochondrial genes are now supported.
 * Fixed bug; When a new transcript was created, variants from other chromosomes
   were selected to be remapped as well.
 * Removed the X-MSMail-Priority header from emails sent by LOVD, to lower the
   spam score.
 * The view 'Individuals screened for gene X' has been replaced by the view
   'Individuals with variants in gene X'.
 * Fixed bug; Update import did not recognize changes in the disease section of
   the import file.
 * Fixed bug; The links from user profile pages to data owned by the user didn't
   work for users with some special characters in their names.
 * LOVD now allows more transcripts to be stored; up to 16 million.
 * Fixed bug; When updating using an import file, it was not possible to change
   the capitalization of a disease name.
 * Fixed bug; Variants counts on the gene homepage were counted using the gene's
   first transcript in the database only.
 * Fixed bug; Attempting to make changes to the "Healthy/Control" disease using
   an import file resulted in a fatal error.
 * Fixed bug; Under certain circumstances, fatal errors would not be logged even
   though LOVD reported they had been logged.
 * Fixed bug; During an insert import, the progress bar was hanging when a
   transcript ID was missing in the section Variants_On_Transcripts.
 * The geneswitcher in the header is now an autocomplete field for large
   databases.
 * Improved error message when LOVD could not retrieve a valid gene reference
   sequence from Mutalyzer.
 * Fixed bug; During update import no difference was seen between '02' and '2',
   this is not correct for string fields.
 * Fixed bug; During import, disease ID '0' was not recognized.
 * Fixed bug; When LOVD could not connect to the database, the error message was
   not shown because of a fatal error when trying to log the message.
 * The page titles are made consistent with the dropdown menu options of the
   page tabs, and missing menu items are added.
 * Added chapter "View and search data in an LOVD installation" to the manual
   and added some other improvements.
 * On data entry forms, the "Owner of this data" field now has the user's ID
   visible as well, to distinguish between two users with the same name.
 * When a gene can't be created because another gene with the same HGNC ID
   already exists in the database, that gene symbol is now displayed for easy
   reference.
 * For each shared custom column, the list of genes or diseases that this column
   is active for, is now shown on the column's detailed view.
 * Fixed bug; Transcript viewlists included non-public variants in the variant
   counts also for non-authorized users.
 * Fixed bug; Automatic filling of certain password fields in forms is now
   blocked and a fake text field is used to capture auto-filled usernames.
   Closes #27: "Issues with browsers remembering user's username and password".
 * Fixed bug; Fixed the "View uncurated variants" link in the drop-down menu of
   the Configuration tab as it didn't show all uncurated variants, and changed
   its name to "Variants that require attention".
   Closes #26: "Wrong link for uncurated variants in drop-down menu
   Configuration area".
 * Fixed bug; You couldn't switch to a different transcript on the unique
   variant view.
 * When assigning or changing the curators for a certain gene, the LOVD logs now
   contain information on the exact changes.
   Closes #25: "Improve logging when changing curator rights".
 * Added second confirmation step on deletion of gene and disease. The
   confirmation warning shows how many related entities are going to be
   removed.
   Closes #29: "No proper warnings when deleting a gene or a disease".
 * Improved error message when the genomic DNA field of a variant is left empty.
   Closes #39: "Transcript variant entry form: warning on empty *Genomic DNA
   change* unclear".
 * LOVD now links to the new bug tracking system on fatal query errors.
   Closes #42: "Message report error links to old ticket system".
 * When viewing another user's unfinished submissions, now links are provided to
   the data detailed view.
   Closes #43: "Viewlist of submissions for user does not link anywhere".
 * You can now assign data to the LOVD user when editing or when importing data.
   Closes #52: "Import fails for records with user id = 0".
 * Fixed bug; When editing a gene through an update import, often LOVD would
   complain about the genomic reference field without proper reason.
   Closes #6: "Message: Please select a valid entry from the 'refseq_genomic'
   selection box should not be displayed".
 * Implemented speed optimization in one specific LOVD database function.
 * Fixed bug; The Owner information on data listings wasn't shown for users that
   had quotes in one of the account fields.
   Closes #54: "Tooltip fails to display if quotes are present".
   (thanks to Anthony Marty, Melbourne Genomics Health Alliance, for reporting)
 * Fixed bug; Multiple search terms with quotes sometimes resulted in an error
   message.
   Closes #17: "Your search column contains incorrect search expression syntax
   at: Protein".
 * Implemented an optimization in LOVD when showing data listings, which should
   speed up any data listing. Currently dropped the maximum number of results to
   still allow sorting on. If speed problems remain, we will reinstate a maximum
   number of results to still allow to sort on.
   Closes #9: "Update objects.php to optimize ViewList queries so we can get rid
   of the SQL_CALC_FOUND_ROWS as much as possible".
 * Fixed bug; During import, numeric references to object IDs were not properly
   checked to be numeric.
   Closes #7: "Check referring numeric IDs in import files".


/**************************
 * 3.0 Build 14 (r657)
 * 2015-10-09
 *********/
 * Added URLs to show data by reference (DOI or PubMed currently supported),
   e.g. /references/PMID:10677295.
 * Fixed possible future problems with the longer new generic top level domains,
   which could be rejected as invalid URLs for LOVDs to reside.
 * Fixed bug; During import the panel IDs in the individual section were only
   checked in the database and not in the import file. Same for father ID and
   mother ID.
 * Curators can simulate the import of an LOVD tab-delimited file.
 * Fixed problem when LOVD is behind a proxy communicating over HTTPS with the
   internet, but over normal HTTP with LOVD itself. LOVD then does not detect it
   is running under HTTPS and includes other items using normal HTTP, causing
   errors.
   (thanks to Raymond Dalgleish, University of Leicester, UK, for reporting)
 * Increased maximum of entries for sortable views to 250K.
 * Fixed bug; When creating a download file, filters applied would sometimes
   overwrite previously set filters, for instance causing the gene-specific
   download to sometimes not contain all related diseases.
 * Fixed bug; When an import file missed the preceding zeros in any numeric ID,
   LOVD did not recognize the ID, even though it existed in the database. This
   bug was introduced in 3.0-13.
 * Improved the speed of the genes and diseases ViewEntries, where many linked
   variants, individuals or phenotype entries slowed down the views.
 * Major update to gene-specific graph page.
   (thanks to David Baux, IURC, France, for initial code and ideas)
 * Due to continuous changes in the reCAPTCHA appearance, changed the text that
   describes the image.
   (thanks to Raymond Dalgleish, University of Leicester, UK)
 * The unique variant view is available. When the variant tab is selected, only
   unique variants are displayed. The reported column is new in the unique
   variant view and contains the number of times the variant is reported.
 * Fixed typo in variants.php.
 * Max errors during import can be changed in the import file.
 * Fixed bug; After resorting columns from a certain category, LOVD forwarded
   the user to the last column's view, instead of to the category's view.
 * Fixed bug; During import, checking the Variants_On_Transcripts section got
   slower as more variants within the same gene were checked.
 * Update via an import is available. Managers and higher are allowed to update
   fields via the import. Per line, one field can be changed. Curators can run a
   simulate update import.
 * Fixed bug; When downloading variant data, the given Variant_On_Transcripts
   effectid had been overwritten in the file by the Variants_On_Genome effectid.
 * Added gene symbol as a new column to the variant views on the Individual and
   Screening detailed views.
 * Fixed bug; Editing a transcript entry didn't update the "Last edited by" and
   "Date last edited" fields.
 * Fixed bug; When gene symbols with wrong capitalization are used in URLs, some
   features and pages caused errors.
 * Added hidden column on data ViewLists for searching on the data owner's
   country.
 * Importing data with status pending is now possible.
 * Fixed typo in reset_password.php.
 * Fixed bug; The "Select all" link didn't work for the custom column data
   listing.
 * Fixed bug; When removing a transcript from a variant, if the transcript was
   the only one in the database, an interface error occured.
 * Fixed bug; The position converter on the variant data entry form always used
   hg19.
 * Added support for hg38 for new LOVD3 installations. It is also the new
   default for new LOVD3 installations.
 * Updated links to Ensembl as they changed the default URL to point to hg38.
 * Fixed bug; For each new gene, the UD (Mutalyzer reference sequence) retrieved
   was hg38 instead of the active human build.
 * Fixed bug; When a checkbox field was left empty in the import file, an SQL
   error occured during the import.
 * Added the genome build to the genomic DNA field headers in variant listings
   and detailed views.
 * Increased maximum length of disease's abbreviation to 25.
 * Patch 01: 2015-10-19 (r666): Fixed bug; The diseases detailed view showed a
   query error because table names were used directly (with a non-standard table
   prefix) instead of using the table constants.
   Closes #41: "Diseases Query error".


/**************************
 * 3.0 Build 13 (r546)
 * 2015-03-23
 *********/
 * Fixed bug; Given parent IDs were not properly checked during import.
 * Updated the manual; added detail on installation requirements,  and clarified
   that some extra fields during import are now optional.
 * Fixed bug; Importing a file with phenotype or screening data without a given
   individual ID, caused a fatal query error instead of an error message.
 * Legend of a form field is available in data entry forms. Legend can now be
   viewed in via help icons.
 * Option added in the submission process to add a variant to a screening for
   when a submitter returned to the individual, or when the submission process
   is interrupted and continued through "Unfinished Submissions".
 * Fixed bug; When deleting all variants and associated data of a gene,
   deleting phenotypes while no individuals were found caused an error.
 * Fixed bug; Solved bug with finding the proper path elements due to spaces in
   the LOVD installation path.
 * Added info table which explains the effect of deleting a gene.
 * Fixed bug; When genes overlap, the protein change prediction predicted by the
   variant mapper was sometimes incorrect.
 * Fixed typo in the data importer.
 * Fixed bug; Fixed fatal error when a user submits an individual with variants
   for which they are both curator and submitter.
 * Fixed bug; Diseases could not be linked to a big number of genes (hundreds).
 * Fixed bug; The ORCID integration during user registration had to be updated
   due to a discontinued service.
 * Updated the year of the copyright notice in the footer.
 * When rejecting a given DBID, LOVD now reports the incorrect DBID.
 * Improved import; If a custom column, transcript or disease already exists in
   the database, the IDs from the database are used and a soft error is set.
   Custom columns and diseases that exist are not imported and import will
   continue using the IDs from the database.
 * Added chapter "Adding data to LOVD" to the manual and extended chapter
   "Downloading & importing data".
 * The Phenotype/Length column is now no longer enabled by default for healthy
   controls.
 * On the system-wide view of gene-specific columns, two menu links were enabled
   for Curators, which led to non-available actions.
 * Clarified some text in the Configuration area.
 * Fixed bug; During phenotype data import, an incorrect warning message could
   occur, about the disease not being inserted in the database yet.
 * Improved the way a new disease can be created through a popup window from the
   individual and gene data entry forms.
 * Fixed bug; The gene-specific page for listing individuals sometimes showed
   individuals screened for other genes, if those genes had a symbol partially
   matching the selected gene.
 * Multiple speed optimizations related to importing large files.


/**************************
 * 3.0 Build 12 (r480)
 * 2014-10-09
 *********/
 * Fixed bug; When manually mapping a variant to a transcript, transcripts on
   the reverse strand did not display the correctly calculated distance.
 * Fixed bug; The number of non-public variants, shown on the gene homepage, was
   always set to 0 for the public users, while it was meant to show the public
   whether a gene database is really empty or not.
 * Fixed bug; When no individuals with public variants are stored, the field for
   this value on the gene homepage was empty, instead of showing a 0.
 * When the Entrez Gene ID is available, the Gene homepage now shows a link to
   PubMed, showing articles manually linked to the gene by the NCBI staff.
 * Fixed bug; The SeattleSeq importer caused errors and warnings when trying to
   generate a variant's description by itself, due to the recent changes to the
   Mutalyzer interface.
 * Fixed bug; The update checker could in large installations take a few minutes
   to complete if statistics were shared; greatly improved the speed.
 * Fixed bug; The custom viewlists didn't align numeric columns to the right.
 * Updated the country list with information from wikipedia.org/wiki/ISO_3166-1.
 * Fixed bug; The reference sequence parser couldn't download files from
   Mutalyzer anymore due to their recent server update.
 * Included version 3.0-12 of the official LOVD Reference Sequence Parser
   script.
 * Fixed bug; New LOVD 3.0-11 installations didn't connect to the correct Muta-
   lyzer webservice, whereas installations upgraded from 3.0-10, did.


/**************************
 * 3.0 Build 11 (r463)
 * 2014-08-07
 *********/
 * Checkbox values are now checked properly when importing data.
 * Fixed bug; DB-IDs created for genes containing a hyphen followed by a number,
   were rejected by LOVD.
   (thanks to Efstathios Papachristos, Centogene, Germany, for reporting)
 * Fixed bug; Due to changes in the ORCID API you could no longer register using
   an ORCID ID.
   (thanks to Sanna Matilainen, University of Helsinki, Finland, for reporting)
 * Fixed bug; Selecting the "No transcripts available" note when creating a gene
   that has no annotated transcripts, resulted in a fatal error.
 * Fixed bug; Transcripts created from an NG reference sequence sometimes caused
   the variant mapper to loop forever.
 * Fixed bug; Some event log entries related to column edits were marked as er-
   rors by mistake.
 * Added "Not classified" as a value for the variant effect option list, which
   is selected by default but not a valid input for submitters, forcing them to
   make a conscious choice for a value for this field, and therefore showing the
   difference between "Effect unknown" and "Not classified".
 * When users try to reset the password but type in the wrong username, this is
   now logged, so users can be helpt more easily. Also, it is mentioned that if
   they do not receive an email, it might be because the username they entered
   is incorrect.
 * From 25 diseases or more, the diseases list on the individuals form shows a
   link to the full disease list which can be searched and browsed in order to
   find the disease abbreviation needed for the form.
 * Included version 3.0-11 of the official LOVD Reference Sequence Parser
   script.
   - The user can now choose whether the gene-specific NG reference sequence is
     used, if configured for that specific gene, or the chromosomal NC reference
     sequence.
 * The Configuration area is slightly restyled to mirror the view of the Setup
   area, and includes the names and email addresses of the managers of the LOVD
   installation, so Curators know who to turn to for help.
 * Fixed bug; Variants with many genes associated with it could not be edited,
   because MySQL applied a limit to the length of the gene list.
 * Fixed bug; The variant mapper sometimes didn't return any RNA or Protein
   prediction.
 * Due to the HGNC changing their REST webservice output format, there were pro-
   blems with creating multiple genes starting from Thursday, July 31th.
 * Rewrote all communication with Mutalyzer to the new standard, which will be
   required starting from the next Mutalyzer release, planned in September 2014.


/**************************
 * 3.0 Build 10 (r424)
 * 2014-04-28
 *********/
 * Selecting a new transcript now also works with an NG reference sequence, not
   only an UD. Sometimes UDs don't work in case of overlapping genes.
 * Fixed bug; The API didn't return a proper date of last update. This is now
   returned for the genes separately as for the variants.
 * Added a chapter on the LOVD API to the manual, containing the sections
   "Format" and "Possibilities".
 * Fixed bug; The "Individuals" and "Phenotypes" columns in the Disease listing
   were not handled as numeric columns by LOVD.
 * The disease-specific Individuals and Phenotypes listings now have the options
   menu enabled for managers and up.
 * Added a help text on imprinting to the gene data entry form.
 * Fixed bug; The links on the names of a gene's collaborators shown on the gene
   homepage were pointing to other user's pages.
 * Fixed bug; When importing large SeattleSeq files and being active in another
   tab at the same time, both processes could lock each other.
 * Fixed bug; The mappingInfo webservice from Mutalyzer didn't sort the returned
   positions on the transcript level, so we need to do it.
 * Sped up the SeattleSeq import by preventing unnecessary Mutalyzer webservice
   calls.
 * Improved the protein description prediction for the SeattleSeq import format.
 * The owned_by and statusid fields are no longer mandatory while importing;
   default values are filled in.
 * Fixed bug; Checks on gene symbols passed through as part of the page URL are
   now case-insensitive.
 * Now FLOAT columns can be defined as well.
 * Fixed bug; The variant mapper can end up in a endless loop while annotating
   transcripts in genes without the UD set.
 * Fixed bug; When looking for a transcript to map the variant to while
   importing a SeattleSeq file, prefer the version provided in the SeattleSeq
   annotation.
 * Fixed bug; The VOG and Genes tables could not be in one VL sorted on the
   chromosome field because of field name ambiguity.
 * Fixed bug; The waiting time for forcing an LOVD upgrade was set to 3 seconds,
   but should be 30.
 * Fixed bug; Non-managers could get a menu item to download other user's data,
   even though the action itself is not allowed.
 * More information is shown when viewing your own account page.
 * Fixed bug; Collaborators lost authorization when dynamically reloading a data
   view, by searching, sorting or navigating the view.
 * Switched the order of the options "Add phenotype information to individual"
   and "Add screening to individual" in the individual detailed view menu.
 * Fixed a typo in the menus for individuals, phenotypes and variants.


/**************************
 * 3.0 Build 09 (r383)
 * 2014-02-13
 *********/
 * The script that fetches frequencies from the LOVD whole genome installation,
   was keeping the session locked.
 * Fixed bug; Editing or manually mapping unmappable variants could result in a
   fatal error depending on the PHP settings.
 * The variant checker (protein predictor) using the Mutalyzer services can now
   also work with an NG reference sequence, not only a UD. Sometimes UDs don't
   work in case of overlapping genes.
 * Fixed bug; Editing a public variant by a submitter could result in a fatal
   error.
 * Fixed notices in the data listings caused by incorrect search expressions.
 * Improved views for diseases associated with many genes; the data listings and
   the detailed views of the diseases now show a maximum number of gene entries,
   but always show the total number.
 * Fixed bug; MySQL 5.6 reported to not have InnoDB, because the variable we use
   to check this, has become unavailable.
   Closes #26: "LOVD uninstallable on Xampp on Mac OS X 10.8.5".
   (thanks to Tyler Hill, Oregon Health & Science Univ., USA, for reporting)
 * From the "Your account" link in the top right-hand side of the screen, but
   also for authorized users when viewing any user's details, links are provided
   to view the data owned by the user in question.
 * Due to the HGNC changing their URL schema again, no new genes could be
   created starting from Wednesday, January 8th.
 * Improved the speed of the variant overview on the Screenings or Individuals
   detailed pages, especially noticable when having many VariantOnTranscript
   columns.
 * Fixed bug; Uploading a non-SeattleSeq file into the SeattleSeq parser resul-
   ted in many notices, and the message only one variant was found (but not
   imported). Now it doesn't throw the notices, and reports the correct number
   of ignored variants.


/**************************
 * 3.0 Build 08 (r349)
 * 2013-10-16
 *********/
 * Importing no longer has PHP's time limit imposed.
 * Fixed bug; Users with special characters in their name could sometimes not
   receive email from LOVD, because LOVD did not encode the names correctly.
 * During installation, LOVD now checks for a valid mail server.
 * Fixed bug; The StopForumSpam check at user registration could not deal with
   multiple email addresses in the email field.
 * Minor changes to the manual, improving clarity.
 * Fixed bug; Custom links could not be assigned to all custom columns when the
   number of columns had increased to large numbers.
 * Applied speed improvements to the disease viewlist, and the numbers for the
   "Individuals" and "Phenotypes" columns now also show non-public entries for
   authorized users.
 * On the genes data listing, the "Variants" and "Unique variants" columns now
   also show non-public entries for authorized users.
 * Fixed bug; When directly publishing a variant, the DBID assigned to it was
   ignoring the mapping to any transcripts.
 * The restriction site column is no longer enabled by default.
 * While managing the transcripts for a certain variant, the distance between
   the variant and the transcripts are now shown. The default sort order is on
   this column, so nearly transcripts are easily picked.
 * Fixed bug; Whenever a variant is not recognized because it's not correct HGVS
   syntax, it couldn't be manually mapped to a different transcript.
 * Clarified error messages related to panel size and panel ID on the data entry
   form for individuals.
 * Added script that fetches the average variant frequency of any variant in the
   database from the LOVD whole genome installation, which stores variant
   frequencies from various studies and populations. The variant's average
   frequency can be viewed in the variant's detailed view, and includes a link
   to the whole genome LOVD installation for a detailed view.
 * IDs in the logs recognized by LOVD are now turned into links, allowing quick
   navigation from the log entry to the data described by it.
 * Fixed bug; LOVD3 did not support LOVD2-style redirects from the LOVD world-
   wide variant search interface.
 * Fixed bug; For large gene databases, the gene homepages showed an incorrect
   number for individuals with public variants, because of database limitations.
 * Fixed bug; The warning messages during import about lost values were repeated
   several times when empty sections were found at the end of the imported file.
 * When importing data from SeattleSeq files, the Allele field would default on
   "Parent #1", instead of "Unknown".
 * After deleting a screening, users are now forwarded to the individual's
   detailed view.
 * Fixed bug; Quick-curating entries sometimes triggered an incorrect error when
   empty selection lists were involved.


/**************************
 * 3.0 Build 07 (r327)
 * 2013-08-15
 *********/
 * Fixed bug; When importing data not directly associated to a gene, the log
   entry describing the import seemed incomplete.
 * When LOVD no longer sorts the data views, it now tries to sort on the primary
   key, which should be fast and should keep the results in a reliable order.
 * Updated minor parts of the manual.
 * Added sections "Deleting custom columns", "Downloading custom column data to
   text files" and "Importing custom column data from text files" to the custom
   column chapter in the manual.
 * Added a chapter about downloading & importing data to the manual, containing
   the sections "The LOVD3 import format" and "Downloading data from LOVD".
 * Added a chapter about data security to the manual, containing the sections
   "Keeping your data secure", "Built-in security measures" and "What you can do
   to protect your data".
 * Added a chapter about troubleshooting to the manual.
 * Fixed bug; When a data listing can't be sorted because it's too slow, LOVD on
   first load claimed it's not sortable because of the number of results instead
   of the loading time.
 * Fixed typo in column legend.
 * Fixed bug; Data owners had an option in the menu to publish their data, but
   clicking this resulted in an unclear error message. Removed the menu option
   to prevent confusion, but also improved the error message.
 * All known age fields now support shorter input formats, which are converted
   by LOVD to the full format. For instance; 5d is converted into 00y00m05d for
   you automatically.
 * The individuals view and the gene-specific full data view now allow sorting
   on the disease column as well.
 * Fixed bug; Searching full-match on text including an underscore didn't return
   the expected results.
 * When viewing a variant that was reported more than once, a link is displayed
   next to the DBID field that allows viewing all reports.
 * Fixed bug; Because the Ensembl genome browser doesn't support the offset tag
   in the BED file, the variants were displayed on the wrong position.
   Closes #23: "Variant offset is wrong in Ensembl genome browser".
   (thanks to Rajaram Kaliyaperumal, LUMC, Leiden, Netherlands, for reporting)
 * The number of variants in the individuals and screenings views did not show
   non-public, but owned, variants for submitters.
 * Submitters could not see their non-public data in the gene-specific variant
   views.
 * Minor changes to the screening data entry form.
 * Improved labels on "Map variant" button to more clearly indicate its function
   to users using the variant data entry form for the first time.
 * Fixed bug; When creating a user account for somebody else, the email sent to
   the new user contained a link to the creator's account instead of the created
   account.


/**************************
 * 3.0 Build 06 (r316)
 * 2013-06-28
 *********/
 * LOVD3 now requires PHP/5.3.0 although some code was already incompatible with
   5.2.0.
 * Fixed bug; The individual user pages were not open for submitters,
   collaborators and curators, even though links to these pages were given.
   These pages are now open to authorized users, and for users not logged in,
   the links have been removed.
   (thanks to Raymond Dalgleish, University of Leicester, UK, for reporting)
 * Fixed bug; The individuals and screenings listings, as well as the screenings
   detailed view, showed the total number of variants to the public, instead of
   the number of public variants.
 * The variant listings below individual and screenings detailed views now also
   show the variant's effect on transcript level.
   Closes #18: "View variants affecting transcripts in screening view".
 * Diseases with OMIM ID but without abbreviation, now no longer have their full
   name printed twice on the gene homepage.
 * In the genes listing, diseases without abbreviation now have their full name
   printed.
 * Improved description on legend about Allele field.
 * Added sections "Editing custom column settings", "Changing the order of
   custom columns" and "Disabling custom columns" to the custom column chapter
   in the manual.
 * Fixed bug; When creating new shared custom column, "Show field on submission
   form" was incorrectly not tagged as updatable per parent object (gene or
   disease).
 * Some numbers on the gene homepage (public variants, hidden variants) are now
   clickable in case you are authorized to see these subsets.
 * The disease listing now shows the number of phenotype entries associated with
   each disease.
 * The disease detailed view now shows the number of individuals reported having
   this disease, and the number of phenotype entries associated with this
   disease. The latter is a link leading to the phenotype data listing.
 * Fixed bug; When curators removed custom columns from all genes or diseases
   they control, the number of values reported to be lost could be too high.
 * Now that LOVD provides information on values lost when removing custom
   columns, curators are allowed again to delete phenotype columns containing
   data.
 * Clarified data entry form notes on the object-specific custom column edit
   form.
 * Fixed bug; The gene-specific overviews (variants and full data view) were not
   showing non-public non-shared (Variants On Genome, Screenings, Individuals)
   columns to curator level users due to a overly strict security check.
 * Fixed notice in lovd_trimField() function during import.
 * Fixed bug; Not specifying the HGVS column in the custom column import file
   caused a fatal query error in LOVD.
 * Fixed bug; Through certain manipulations, collaborators and curators would be
   able to see (not edit) non-public data of genes they had no authorization
   for.


/**************************
 * 3.0 Build 05 (r302)
 * 2013-05-30
 *********/
 * Added note on VCF import page about pre-filtering the data.
 * Changed wording somewhat on the user registration page.
 * Fixed bug; The API didn't reveal the strand of the genes, like the LOVD2 API.
 * Fixed bug; In the import script, the check for repeated IDs in each object's
   data section was not working.
 * Fixed bug; The import script resulted in a query error when two diseases were
   added having the same OMIM ID, and adding two diseases with the same name was
   not prevented.
 * Fixed bug; When importing data, the diseaseid field in the Phenotypes section
   was not mandatory.
 * Variants can now be imported without specifying the DBID; it will be
   automatically generated when left empty.
 * While importing many phenotype entries of a disease not yet in the database,
   the warning about this is no longer repeated for each phenotype entry.
 * When the importer rejects a field's input because its value is not part of
   the selection list's options, the allowed values are now listed in the error
   message.
 * When importing individuals with a fatherid or motherid, the IDs were not
   matched with individuals in the import file.
 * Fixed bug; The update checker failed in installations without curators.
 * Fixed bug; Internet Explorer did not reload the data listings correctly, when
   using the browser's back button. Also fixed other issues with using the
   browser's back button while navigating data listings.
   Closes #20: "Going back in browser does not change the view back to how it
   was on Windows".
   (thanks to Sirisha Hesketh, Oxford University Hospitals, UK, for reporting)
 * Custom column data can now also be imported using the LOVD3 import format.
 * When creating, editing or importing a custom column, the form type field is
   now properly checked.
 * The detailed view of an individual entry now shows links to the parents when
   they are in the database as well.
 * When during import non-fatal warnings occur with simulation mode on, the
   warnings can be shown on the import form.
 * Fixed bug; When re-importing previously downloaded data, quotes and
   backslashes were not handled properly.
 * When downloading the full LOVD data set, the custom column data is now also
   included.
 * Now allowing gene symbols longer than 20 characters, since
   DTX2P1-UPK3BP1-PMS2P11 needs the space.
 * The list of diseases now shows the number of individuals in the database
   linked to these diseases.
 * The list of individuals on the disease detailed view is now split in pages
   and can be navigated.
 * Fixed bug; On large installations, the check_update.php script took quite
   some time and locked the session of the current user.


/**************************
 * 3.0 Build 04 (r297)
 * 2013-04-18
 *********/
 * Fixed bug; When registering, the password fields were optional. This bug was
   introduced over a year ago in r102 (3.0-alpha-07).
 * Fixed notice in inc-ini.php when using older config.ini file.
 * Custom columns can now be downloaded in the LOVD import format, to facilitate
   backups or to share custom column settings with other LOVDs.
 * Fixed bug; The function retrieving the NG ID for a gene also matched gene
   symbols that end with the requested symbol.
 * Fixed bug; When data owned by the LOVD user is edited, the email sent returns
   due to the lack of an email address. LOVD will now never attempt an email
   again if no address is known.
 * The import script now supports a "simulate" mode, where the file is checked
   for errors, but no import is done if no errors are found.
 * The import script didn't allow the custom columns IDs to contain numbers even
   though LOVD does allow such column IDs.
 * Added the Phenotype/Age/Onset custom column.
 * Added the option "Complex" for the Phenotype/Inheritance column.
 * Fixed bug; When opening the configuration area without having selected a gene
   first, the gene selection list allowed managers to select only genes they
   curate.
 * Fixed bug; Using a trick, curators could open the configuration area of genes
   they do not curate, although this did not grant them any authorization.
 * Fixed bug; Removing a Variant On Transcript column resulted in a query error.
 * When removing or adding a shared custom column, LOVD now more intelligently
   checks if there is a risk for a long duration of the query.
 * Fixed bug; When changing the order of curators, the changes were applied
   system wide.
   (thanks to Anne Polvi, University of Helsinki, Finland, for reporting)
 * On smaller screens, the menu tabs will no longer wrap.
 * Added a chapter about custom columns to the manual, containing the sections
   "Custom column categories", "Creating a new custom column" and
   "Enabling custom columns".
 * The hint on the custom column definition form displaying the column's width,
   now updates instantaneous. The minimum width is now set to 20 pixels, and the
   maximum to 500 pixels.
 * From the documentation page, none of the information usually on the top right
   hand side of the screen were available.


/**************************
 * 3.0 Build 03 (r288)
 * 2013-03-06
 *********/
 * Added a chapter about gene transcripts to the manual and various other minor
   additions.
 * When during import, columns are being ignored, LOVD no longer stops import,
   which was introduced in build 02.
 * Fixed notice in the import procedure, caused when uploading an empty section.
 * On forms where file uploads are enabled, the reasons for file size
   restrictions are now explained to the user.
 * Greatly improved the HGVS syntax checking on the data entry forms, which is
   instant now.
 * The HGVS syntax checking script is now also cached by the browser.
 * The MySQL password setting in the config.ini.php file is no longer mandatory.
 * Importing very large VCF files no longer result in a timeout.
 * Fixed bug; The public could not see any contents in VariantOnTranscript
   fields in the "View all variants affecting transcripts" custom viewlist due
   to an over active security feature last changed in r214 (3.0-beta-07).
 * Fixed bug; Curators could sometimes also not see contents in
   VariantOnTranscript fields of random genes in the "View all variants
   affecting transcripts" custom viewlist when the installation contained a lot
   of genes.
 * Improved the variant mapper speed, and greatly sped up the lovd_fetchDBID()
   function, which together speeds up the variant mapping by about 8-20x with 1M
   variants.
 * Fixed bug; For variants spanning the entire gene, the RNA and protein change
   prediction on the data entry form returned an JavaScript error.
 * When data overviews get too slow, LOVD automatically disables the sorting
   feature to reduce the strain on the database.
 * When data overviews take too much time to load, LOVD speeds the views up by
   determining the correct number of results only once every 15 minutes.


/**************************
 * 3.0 Build 02 (r280)
 * 2013-01-30
 *********/
 * Managers and up can now also download other user's data.
 * Fixed bug; When removing a non-shared column or when removing a shared column
   from the last target, the actual removal was not logged.
 * Fixed bug; When not allowed to remove a shared column from a target, the menu
   link for removal on the column's detailed view is now disabled also.
 * Disabled links in the dropdown menus now have their icons greyed out.
 * Fixed bug; The Configuration tab's menu is no longer shown when a curator has
   a gene selected that he/she has no rights on or when no gene is selected.
 * Added some options to the tab's dropdown menus.
 * Improved the handling of custom column removal; when removing columns you are
   advised about the deletion of data in the given column and the number of
   values that will be lost is provided.
 * JS files generated by PHP are now cached.
 * Fixed bug; In emails sent when a screening entry had been edited, the "Edited
   by" field was numeric, instead of showing the user's name.
 * Fixed bug; The "Download selected entries" option didn't work because of an
   overly strict security feature.
 * Pages belonging to the Setup area now have the Setup tab highlighted.
 * Curators and up can now download all data specific to the selected gene.
 * Fixed bug; The PubMed custom link was not activated by default for the
   VariantOnGenome/Reference column.
 * A link to the gene-specific graphs page is now also included in the Options
   dropdown menu on the gene homepage.
 * Implemented the "Empty gene database" feature, also present in LOVD2.
 * Fixed bug; Importing a file failed when mime_content_type() was not available
   in PHP.
 * When certain columns are ignored during import because they are not present
   in the database, LOVD now reports how many entries had values in these
   columns.
 * Added links to dbSNP from the VariantOnGenome/dbSNP column.
 * Due to the HGNC changing their URL schema, no new genes could be created
   starting from Wednesday, January 30th.


/**************************
 * 3.0 Build 01 (r273)
 * 2012-12-19
 *********/
 * The list of diseases presented when activating phenotype columns, wasn't sor-
   ting diseases without abbreviations correctly.
 * Fixed bug; The variant type graphs analyzed all variants for non-authorized
   users, and only the public variants for authorized users.
 * Fixed bug; In the combined data listings, the individual's owner field was
   set to the variant's owner field.
 * Fixed bug; The first disease added to LOVD would have ID 2, instead of 1.
 * Fixed bug; Genes created when importing SeattleSeq files didn't get their
   Entrez Gene and OMIM IDs stored.
 * Fixed problem with creating genes and transcripts when importing SeattleSeq
   annotated files with MySQL's strict mode on.
 * Fixed problem with creating transcripts by the variant mapper with MySQL's
   strict mode on.
 * Fixed bug; Mapping variants to transcripts not yet in LOVD failed because of
   a bug introduced in r256.
 * Fixed bug; The RNA field was not predicted when mapping variants onto tran-
   scripts not yet in LOVD.
 * Fixed notices during import of diseases without associated genes.
 * Fixed bug; Diseases imported did not have the default phenotype columns
   enabled.


/**************************
 * 3.0 Beta 12 (RC2) (r268)
 * 2012-12-10
 *********/
 * Fixed bug; The newly introduced quick curate option in beta-11 (r258) intro-
   duced a bug that made the import script ask for password verification for the
   data that was being imported.
 * Changed the data listing's help icon to "Legend" text to prevent confusion
   what it provides help for, and added explanation on top of the full legend on
   how to get the short legend texts.
 * Fixed bug; Individuals without any diseases selected could not be published
   using the quick curate option.
 * The gene-specific data listings now also mention the data owner just like
   most other data listings, and moving the mouse over the owner's name shows
   the owner's information.
 * Modified LOVD scripts to accept changed warning codes from Mutalyzer, which
   now better reflect if they match the selected gene or not.
 * LOVD now shows a sensible error message on the variant data entry form when
   the given transcript is not in Mutalyzer's mapping database.
 * When mapping variants, LOVD now also predicts the RNA field.


/*******************
 * 3.0 Beta 11 (RC1) (r264)
 * 2012-12-03
 *********/
 * Added spam protection to the submitter registration form using the
   StopForumSpam.com API.
 * Fixed bug; '0' was never checked to be a valid entry for selection lists.
 * Fixed problem with creating genes by the variant mapper with MySQL's strict
   mode on.
 * Added warning to the VCF import form that we don't support importing
   deletions or insertions using VCF format 3.3 or lower.
 * Fixed bug; The variant mapper miscalculated the progress percentage of all
   runs except the first.
 * Added support for XR reference sequences.
 * Included version 3.0-beta-11 of official LOVD Reference Sequence Parser
   script.
   - Added support for transcripts other than NM transcripts.
 * A gene database's version is only shown on the gene homepage when the
   database already has an "updated" timestamp.
 * Fixed bug; The "Sort curators" page never showed any error messages when no
   curators were selected to be shown on the gene homepage, even though the form
   was blocked for submission.
 * Fixed bug; When the "Sort curators" page was submitted, but errors were
   encountered, all curators were shown as hidden and could not be reselected
   without restarting the form.
 * The "Sort curators" page no longer shows collaborators.
 * Fixed notices in import script when sections had been left out of the import
   file.
 * Fixed bug; When leaving the allele value empty in the Variants_On_Genome
   section, a query error occurred. Now, LOVD will assume a default value.
 * Added color coding to the status field on the detailed views of entries that
   have a status.
 * On the VariantOnGenome, Screening and Phenotype detailed views, the
   individual's status is also shown and color coded.
 * From the VariantOnGenome, Individual and Phenotype detailed views, you can
   now directly publish (curate) an unpublished entry by using the publish
   (curate) option in the Options menu.
 * The phenotype data listings now also show the status column for those allowed
   to see it.
 * Fixed bug; In emails sent when an entry had been edited, the "Edited by"
   field was numeric, instead of showing the user's names.
 * Fixed awkward non-standard order of the "Data status" field in the submission
   emails.
 * The users list now shows which users already have their ORCID ID filled in,
   and you can now sort on username.
 * Fixed bug; When LOVD could not send an email, the error was logged twice.
 * Fixed bug; DB IDs for ORF genes with additional letters after their number,
   such as CXorf40A, were always considered incorrect.
 * Fixed bug; After resorting or filtering the list of enabled phenotype columns
   for a certain gene or disease, the links would stop working.
 * The individual's detailed views now also show phenotype entries related to
   diseases the individual is not or no longer linked to.
 * Added missing form help text to the VariantOnGenome/DNA field.
 * Added Documentation tab, where you can find the latest LOVD 3.0 manual, which
   is still work in progress.
 * When moving the mouse over a column's header in a data listing, a short text
   describing the meaning of the column pops up. This has been implemented for
   all custom columns, and some fixed columns.
 * Data listings with a legend, now show a help icon if the pagination has been
   activated, which opens the full legend.
 * Removed the "date edited" column from the screenings listing, since no other
   listing showed that column.
 * Fixed bug; Data that got owned by LOVD for whatever reason, was automatically
   assigned to the user first in the alphabetic user list when editing.
 * Fixed bug; In emails sent when an entry had been edited, the "Data owner"
   field was only shown when this was not the person editing, even though the
   owner may have been changed in the edit.


/*******************
 * 3.0 Beta 10
 * 2012-11-13
 *********/
 * Fixed bug; The import page would sometimes hide error messages and say there
   was nothing to import.
 * Unset option from the Configuration tab menu when not available because no
   gene is selected.
 * Fixed bug; When disabling a shared column in only some objects, the log entry
   mentioned an incorrect number of objects.
 * Fixed bug; The fields on the variant create and edit forms were checked in a
   different order than how they are displayed, which may cause confusion when
   reading the error messages.
 * On a user's detailed view, the number of genes he/she curates or is
   collaborator for, is now printed in the field's header.
 * Added basic ORCID ID integration; while registering as a submitter or when
   creating a new user account for somebody else, you can provide an ORCID ID
   which is used to prefill as many fields of the registration form as possible.
   The ID itself is stored for later use.
 * Changed "Segregates with disease" to "Segregates with phenotype".
 * Fixed bug; The XSS check protecting fields from unauthorized HTML injection
   should not have been applied to the 'description_form' field when editing
   shared columns, since it's not applied when creating the column, either.
 * Fixed bug; Submitter registration emails were sent to the database
   administrator always, even if they indicated not wanting them.
 * After registering a submitter account, you are now forwarded to your account
   details instead of the gene list.
 * When creating a new user, you can have the account details mailed to them.
 * Added support for non-coding genes with NR transcript reference sequences.
 * Fixed bug; Transcripts could not be added to variants not HGVS compliant on
   genomic level.
 * Fixed bug; Importing would fail if spreadsheet programs had put quotes around
   the file section's headers.
 * Fixed notices while importing files without section headers.
 * Fixed bug; When the import script finds less columns in a section than
   expected, the missing columns are now defaulting to an empty field, instead
   of generating error messages.
 * Updated jQuery from 1.7.1 to 1.8.2 and jQuery UI from 1.8.18 to 1.9.1, also
   adding the 'dialog' widget and its dependencies.
 * Newly registered users are shown a message dialog hinting where to start
   submitting new data.
 * Rephrased and changed some pages in the submission process, hoping to make it
   more clear to new users.
 * The variant data entry forms now have links to the HGVS nomenclature pages
   from the DNA, RNA and Protein change description fields.
 * Changing a gene database's contents now actually updates the
   "Last updated by" and "Date last updated" fields (importing new variants
   through SeattleSeq or LOVD3 format, creating a new variant, editing a
   variant, deleting a variant, changing the mapping of a variant).
 * Added new custom link: DOI.
 * Fixed inconsistency of the PubMed custom link's description between LOVDs
   older than 3.0-beta-06 or newer.
 * Fixed bug; Wrong DBIDs were predicted because of a bug introduced in r221
   (3.0-beta-08) that should have prevented exactly that.
 * The 'Human-readable reference sequence location' field on the gene data entry
   form now also allows local URLs.
 * Links to the reference sequences from the gene homepage are now opened in a
   new window.
 * The gene homepage and the transcript detailed page now also link to the exon/
   intron information tables, if these are available. Other fields have also
   been added to the gene homepages.
 * Included version 3.0-beta-10 of official LOVD Reference Sequence Parser
   script.
   - When selecting the gene and transcript to work on, the list of transcripts
     is now sorted on NCBI ID.
 * Fixed bug; When manually mapping an unrecognized variant to a transcript,
   LOVD would return a query error.
 * Fixed notices shown when the "effectid" field was missing during import of
   variants. This also triggered an error message too many.
 * Added default values for the columns "effectid" and "mapping_flags" in the
   import script.
 * Fixed bug; During import, the created_* and edited_* defaults were only put
   in place when the columns were defined in the input file.
 * Ported the LOVD 2.0 RESTful API to LOVD 3.0, maintaining the same URL
   structure.
 * Added links from the gene homepage to the UCSC genome browser, the Ensembl
   genome browser, and the NCBI sequence viewer.  Those who support it, show the
   variants currently in the LOVD database as a separate track.  From the track,
   links are provided to point back to the corresponding entry in LOVD.
 * Added links to the download and import pages in the Setup tab dropdown menu.


/*******************
 * 3.0 Beta 09
 * 2012-10-11
 *********/
 * Fixed bug; The list of variant screenings on the individual's detailed view
   had gene symbols repeated in the "Genes screened" column, if more than one
   variants had been found.
 * Fixed notices after file import.
 * When an individual has not been screened for variants, the "no screenings
   found for this individual" message is simply hidden.
 * We're now nicely handeling diseases without abbreviations in the individuals
   listing and detailed view, the gene's full data view, the gene homepage, and
   the gene and individual data entry forms.
 * When data is updated, the mail sent by LOVD now has a subject different than
   that of newly submitted data, so those mails can easily be identified based
   on their subject.
 * Users being curator for many genes didn't have all genes shown on their
   account page, because of a default MySQL maximum length setting. LOVD now
   increased this maximum length, but the list is collapsed by default to keep
   the page short.
 * Fixed bug; LOVD 3.0-beta-08 was actually non-installable due to a change in
   table structure while the installation process was not updated accordingly.
 * LOVD is now also installable with MySQL's strict mode on.
   Closes #17: "installation error LOVD".
   (thanks to Hana Lango Allen, University of Exeter, UK, for reporting)
 * Diseases bearing the same name are no longer allowed.
 * After deleting a phenotype entry, you will be forwarded to the individual's
   detailed view.
 * Fixed bug; Creating a personal data download for a user without submitted
   data, generated an error.
 * Fixed bug; In a full data download the Variants_On_Transcripts section also
   contained data from the Variants_On_Genome section.
 * Fixed bug; An owner of a screening could not be changed by editing the field.
 * Implemented first version (alpha) of the data import feature. This requires a
   new format compared to LOVD 2.0, that can be obtained by making a full data
   download from the LOVD setup area. Currently implemented is an "insert all"
   mode that regards any data in the file as new, and tries to import it.


/*******************
 * 3.0 Beta 08
 * 2012-09-05
 *********/
 * Added the "Switch gene database" icon to the LOVD header; it will only be
   shown where appropriate.
 * Fixed bug; Under some circumstances, searching for active columns didn't show
   all active columns in the overview.
 * Implemented the gene-specific page header & footer.
 * Fixed bug; The gene's "Text for own disclaimer" and "Notes for the LOVD gene
   homepage" were not rendered as HTML enabled.
 * Fixed bug; The lists of diseases on the individual and gene data entry forms,
   are now sorted on value instead of ID.
   The list on the individual's data entry form is also now bound to a maximum
   width, to make sure that long disease names don't stretch the form anymore.
   The list on the gene's data entry form was already restricted in width.
 * A gene's full data view now also shows whether an individual is a panel
   (group of individuals) or not.
 * Fixed bug; The individual's panel_size is now taken into account on the gene
   homepage's individual count.
   (thanks to Anne Polvi, University of Helsinki, Finland, for reporting)
 * Fixed bug; Submitters couldn't edit their own variants, if these were linked
   to transcripts also. Curators had problems editing variants that were linked
   to other genes as well as one of their genes.
 * Included version 3.0-beta-08 of official LOVD Reference Sequence Parser
   script.
   - Fixed some small mistakes in the format of the reference sequence parser's
     index file HTML output.
   - Fixed problem in parsing the reference sequence ID out of the file.
   - Will now also work behind a proxy server or with PHP's fopen wrappers off.
 * Improved some texts on data entry forms to improve clarity.
 * Proxy servers requiring Basic authentication are now also handled correctly;
   a username and password can be set in the LOVD system settings.
 * Curators were not able to delete any data, although links to do so were shown
   in the menu.
 * The email sent after a submission now also contains the names of the Curators
   and/or Managers that have received the email, so that it's easier to track if
   the mail has been forwarded.
 * Fixed bug; The checkbox "Have variants been found?" in screening create &
   edit forms didn't work anymore.
 * It is now possible to add a phenotype to disease "Healthy/Control".
 * The whole submission workflow has been changed.
 * Added a "Cancel" button to all forms when you are in the middle of a full
   submission.
 * Link to "Unfinished submissions" has been added so you can see unfinished
   submissions.
 * The individual viewEntry now contains a list of diseases and the diseases
   viewList below has been removed.
 * Added some new options to the tab menu and fixed the occasional disappearance
   of older ones.
 * Fixed bug; LOVD no longer predicts & fills in a DBID for you which produces
   an error on the form.
 * Fixed bug; The backslashes issue in the URLs of some installations has now
   been fixed.
 * Fixed bug; The menu below the gene homepage no longer produces a JavaScript
   error when "Create human-readable refseq file" is clicked in Internet
   Explorer <= 7.
 * Fixed bug; Uploading variants would make LOVD lose the currently selected
   gene.
 * Fixed bug; Curators and Collaborators can now also see the variants for which
   they have viewing rights in the genomic variant viewlist.
 * Added color highlighting for marked and non-public entries in viewLists.
 * Fixed bug; The search fields on custom columns no longer produce an
   unexpected "Bad syntax error".
 * It is now possible to add and remove custom columns to the "Healthy/Control"
   disease.
 * When hovering your mouse over a search field, the current search expression
   will be explained in more detail in the popup.
 * No longer possible to add both a disease AND "Healthy/Control" to a
   individual.
 * Changed all viewEntry options to the new Jeegoo menu implementation.
 * Curators can now create diseases, but can only do so when they connect them
   to their own gene(s).
 * Curators can now edit diseases, but can only do so when they are connected to
   their own gene(s).
 * Curators can now remove diseases, but can only do so when they are not
   connected to other genes than their own gene(s).
 * The screenings & individuals pages now have gene specific page, which shows
   the entries that have been screened for the currently selected gene.
 * Mails are now being sent to the appropriate users after an edit of data.


/*******************
 * 3.0 Beta 07
 * 2012-07-26
 *********/
 * You can now open the Mutalyzer prediction page from the variant data entry
   form, by clicking on the mark besides the protein field after a successful
   prediction has been run.
 * LOVD 3.0 can no longer be configured for hg18, but existing installations
   will still be supported.
 * Fixed some typos and textual changes.
 * The quick download format for data lists are now only available for properly
   authorized users.
 * Included version 3.0-beta-07 of official LOVD Reference Sequence Parser
   script.
   - Compared to LOVD 2.0, the greatest improvement is that this script
     downloads the reference sequence from Mutalyzer, and therefore no longer
     requires GenBank files to be uploaded to LOVD.
   - It does not support generating GenBank files, like in LOVD 2.0.
 * When searching for a gene symbol on the "Create a new gene" form, LOVD now
   also searches for aliases if no match is found.
 * From the gene data entry form, you can now open a new window to create new
   disease entries.
 * From the individual data entry form, managers can now open a new window to
   create new disease entries. Other users get a note that they can include a
   missing disease in the individual's remarks field, such that a manager can
   configure the requested disease in the LOVD.
 * Fixed bug; Internet Explorer users couldn't configure new curators for genes
   or use the Mutalyzer mapping / variant checking features.
 * Improved the full download format; it now includes more data (genes,
   transcripts, and diseases), and also includes the relationships between
   individuals and diseases, screenings and genes, and screenings and variants.
 * Submitters are no longer allowed to add submissions without adding individual
   data also.
 * Fixed bug; Curators could not open the detailed view of a variant's effect on
   transcripts if the variant was non-public, even though the variant lies
   within one of their genes.
 * Fixed bug; On a disease's detailed view, in the list of genes the disease is
   linked to, genes without an OMIM ID were left out.
 * When there is an LOVD update available, this is now displayed in the Setup
   area.
 * Added the LOVD Configuration area; just like in LOVD 2.0 it serves as a gene-
   specific starting page for curators.
 * The Status column has been added to more data overviews, if the user is
   authorized to see this column.
 * The Phenotype/Inheritance column is now HGVS standard and enabled by default
   for new diseases.
 * You can now tag healthy controls as such by applying the "Healthy/Control"
   disease to the individual in question.
 * Fixed bug; A zero is now valid input for a mandatory column.
 * Fixed bug; If a multiple selection list contained a value of zero, it was
   incorrectly selected by itself due to some PHP strangeness.
 * Several gene's fields are now HTML enabled; Text for own disclaimer, Page
   header, Page footer, Notes for the LOVD gene homepage, and Notes for the
   variant listings.
 * On a user's detailed view, the genes this user is curator or collaborator of,
   are now clickable. A curator or collaborator may now also see which genes he/
   she is collaborator of.
 * Fixed bug; Invalid search expressions caused one or two PHP errors as well as
   generate a normal LOVD error message.
 * If Mutalyzer is having problems, the HGVS syntax checker no longer claims the
   variant's syntax is not correct.
 * Fixed some PHP notices in variants.php.
 * Updated descriptions, legends and sometimes types of all custom columns.
   Only some of these changes will also be applied to existing installations.
 * Added new custom column: Phenotype/Additional.
 * Fixed some PHP notices and two display bugs in the "Add transcript to gene"
   process.
 * Protein prediction on the variant create and edit form can now return
   multiple warnings/errors returned by Mutalyzer.
 * Fixed bug; The check on the DBID during variant create/edit now only accepts
   gene symbols that are actually present in the LOVD.
 * Fixed bug; In some cases the variant create/edit forms would give a
   javascript error.
 * Fixed bug; Since Mutalyzer changed how upstream/downstream positions are
   described, protein predictions could produce weird errors.
 * Status columns are now automatically hidden if the users do not have all view
   privileges on that entry.
 * Implemented the "Show contents to public" and "Show field on submission form"
   options for custom columns, so that they are actually hidden when deselected.
 * Variant DBID's kan now only be filled in by Curators, Managers and
   Administrators.
 * The OMIM ID field now has a check to ensure that the number is 6 digits and
   that the first digit is at least a 1 or higher.


/*******************
 * 3.0 Beta 06
 * 2012-06-22
 *********/
 * Custom column detailed views didn't render the legend fields correctly, if
   they contained multiple lines.
 * Clarified on the custom column data entry forms that the legend fields can
   contain HTML.
 * From a disease's detailed view you now also have the option to see all
   available phenotype custom columns.
 * Properly removed the column editing errors given when the custom column's
   legend fields contained HTML. Also the regular expression pattern is no
   longer checked for HTML contents.
 * Fixed bug; When importing data from a SeattleSeq annotated file, data for the
   "DistanceToSplice" column was not stored.
 * Added new custom columns: Individual/Age_of_death, Individual/Death/Cause,
   Phenotype/Age and Phenotype/Length.
 * When importing VCF or SeattleSeq files, the number of successfully imported
   variants is now mentioned when importing is done. Also, you will get an error
   message when no variants were imported. LOVD will no longer throw PHP errors
   when a non-VCF file is being imported.
 * The gene's disclaimer has been moved to the far bottom of the gene home page.
 * Fixed bug; A gene's human readable reference sequence can now actually be
   clicked and opened from the gene home page.
 * Improved PubMed custom link help text.
 * Implemented the new dropdown menu at the user's and variant's detailed views,
   instead of one long row of links.
 * Included links to the UCSC and Ensembl genome browsers from the variant's
   detailed view dropdown menu.
 * Implemented the full data download from the setup.
 * When viewing your own account details, from the options dropdown menu you can
   download all of your submitted data.
 * Implemented a first set of graphs displaying information about the variant
   types in a gene database.
 * The genomic DNA change field now shows the used genomic reference build on
   the form.
 * Fixed notices when submitting without internet connection.
 * Fixed bug; After submission the user was also forwarded to the data overview
   if the submission email could not be sent.
 * The custom column's "Notes on form" fields are now HTML enabled also, and
   support newlines.
 * Fixed bug; Custom columns added by the system automatically were reported as
   not active yet on their detailed view.
 * The two DNA columns (genomic & transcript) now have a distinct header to more
   clearly indicate which is which.
 * Added the LOVD status page. Since most of the information that was on the
   status page in LOVD 2.0 can now be seen elsewhere in LOVD, some graphs were
   created with various statistics.
 * LOVD now sends the correct charset through (as an HTTP header), regardless of
   the web server settings.
 * Fixed bug; LOVD did not handle well when the mutalyzer webservice generated a
   serious fatal error.
 * Databases created on a certain date with time set to 0, will now only show
   the day and not the time.
 * Fixed bug; NR_ numbers did not work properly in the mapping of a variant on
   the variant forms.
 * Fixed bug; Transcripts without an NM or NR accession number are now no longer
   addable to LOVD.
 * Fixed bug; Adding transcripts to a gene would sometimes produce notices when
   some of the transcript information was not available.
 * Fixed bug; LOVD did not insert NULL into the database on empty DECIMAL
   columns.
 * Fixed bug; With some specific PHP versions on some systems, detailed data
   views would unexpectedly throw a "No such ID!" error message.
 * Fixed bug; UNSIGNED on a DECIMAL column was ignored by LOVD.
 * Fixed bug; Searching on a DECIMAL UNSIGNED column in a viewList would be
   treated as a text search instead of a number search.
 * Fixed bug; Added the full base URL to all javascript calls using a URL, so
   that they all work even in IE.
 * Fixed bug; Fixed some errors where the XML functions would produce in some
   occasions.
 * Added a variant checker and protein change prediction button to the variant
   forms, this is also automatically run when clicking the "Map variant" button.
 * Changed the variant create & edit forms so that all transcript variants are
   shown first and the genomic variant at the end of the form.
 * Fixed bug; Fixed authorization issues that didn't allow some users to finish
   a submission properly.
 * Changed all remaining lovd_queryDB_Old() & mysql_*() function calls to their
   PDO counterparts.
 * Changed the option menu when creating a variant, to promote the submission of
   variant data linked with a gene.
 * Manual mapping of a variant now fills in the correct DBID when the variant
   has already been succesfully mapped before.
 * Added a functionality that will first check if all transcripts have positions
   in the database. If not it will fetch them and update the transcript entries
   before starting the mapping.
 * Fixed bug; LOVD could not handle g.? or c.? very well.


/*******************
 * 3.0 Beta 05
 * 2012-05-16
 *********/
 * Implemented PDO in lovd_queryDB() calls in columns.php.
 * Fixed bug; The gene's external link field accepted input that did not result
   in a proper link.
 * Implemented a dropdown menu at the gene's and disease's detailed views,
   instead of one long row of links.
 * Fixed bug; The new template class was not activated correctly in objects.php
   and object_transcript_variants.php.
 * Fixed bug; PDO was not implemented completely in LOVD_Objects::loadEntry()
   and LOVD_Transcript_Variants::loadEntry().
 * From a gene's or disease's detailed view, you can now view a list of its
   active columns. From there you can also change the order in which the columns
   are shown in the system. Clicking a custom column leads to a detailed page
   about the column's settings for that gene or disease. These settings can now
   also be edited.
 * From the custom column's list, you can now easily select only a specific
   category of columns.
 * Fixed bug; One of the changes made in 3.0-beta-04 to the dropdown menu script
   had adverse side effects, so it was reverted.
 * Fixed bug; On some PHP versions, PDO was not capable of inspecting the LOVD
   installation using a prepared query, resulting in an error.
   Closes #10: "error in PDO".
   Closes #12: "LOVD3 test Edit custom data column Phenotype/Inheritance"
   (thanks to John-Paul Plazzer, Royal Melbourne Hosp. Australia, for reporting)
 * Fixed bug; The Phenotype/Inheritance columns was too short for its contents.
 * Fixed bug; When enabling a column for an empty table, LOVD thought an error
   had occurred.
 * Fixed bug; When removing a shared custom column, providing the target was not
   mandatory. When left empty, LOVD returned a bunch of errors.
 * Enabled a menu for authorized users to the data listings of columns,
   diseases, genes, individuals, logs, screenings, transcripts, users, variants
   and views, which by default allows downloading the data shown.
 * The list of log entries now also supports deleting multiple log entries at
   once, through the new menu.
 * Fixed notice when editing a custom column's default settings.
 * Fixed bug; When removing Log entries, the empty search fields above the table
   could not be used anymore until the page was refreshed.
 * Fixed bug; When confirming variants with another screening, Internet Explorer
   showed all variants in the system instead of all variants in the individual.
 * Fixed bug; The "Select all" and "Select none" options in the viewlist menu
   didn't work on Internet Explorer.
 * Fixed bug; Curators could not add custom columns to their genes since their
   authorization was not loaded properly.
 * Fixed bug; The update checker returned errors if no diseases were configured
   in the database yet.
 * Fixed bug; When the MySQL database didn't exist, you would get a fatal error
   instead of an informative error message.
 * Improved user create & edit form by adding explanation on how to create
   curators.
 * Fixed bug; Protein description prediction during automatic mapping now
   returns a p.? instead of a p.= when mutalyzer predicts it is a variant
   affecting splicing.
 * Removed custom links from `VariantOnGenome/DBID` and all custom columns that
   are not text columns and made it impossible to add them again to these
   columns.
 * Now the tooltip of multiple select fields are automatically appended with
   basic information how to select multiple items.
 * "Description on full legend" & "Description on short legend" of custom
   columns can now also contain HTML.
 * The javascript errors on IE <= 7 in viewLists are now fixed.
   Closes #11: "Javascript errors in IE 7 on viewLists".
 * Rewrote columns/<columnID>?add & columns/<columnID>?remove to make it cleaner
   code-wise and more user-friendly.
 * Added the possibility to send a target through the URL to both
   columns/<columnID>?add & columns/<columnID>?remove.
 * Fixed bug; Changed all javascript links to absolute URLs, because IE does
   not respect the BASE tag.
   (thanks to Chris Watson, St. James's Univ Hospital, Leeds, UK, for reporting)
 * Fixed bug; The variant create & edit forms no longer produce an error despite
   having filled in a valid dbSNP number or DBID in the `VariantOnGenome/dbSNP`
   and `VariantOnGenome/DBID` field correctly.
 * Implemented the option of also removing variants when deleting a screening or
   an individual.
 * Redirect from login now has an extra check built in to prevent the user from
   being redirected to something that could potentially harm the LOVD.
 * Reply-To: in the email headers is now always added properly.
 * Users can now only edit the status and owner of their data if they are also
   curator of the gene the variant is mapped to. Managers and Database
   administators are the only ones that can do this for genomic variants.


/*******************
 * 3.0 Beta 04
 * 2012-04-25
 *********/
 * On the bottom of the user's ViewEntries, visible for managers and up, we have
   added a log entry ViewList with log entries linked to the user.
 * Fixed bug; Variants imported from VCF and SeattleSeq files were sometimes
   incorrectly described as inversions.
 * Automatic mapping will now create several gene entries if a single variant
   can be mapped onto more than one gene.
 * Automatically mapped variants now get a VariantOnTranscript/Protein
   description.
 * Variants imported from VCF files will now get DB-ID's even if automatic
   mapping has been turned off.
 * Fixed bug; the automatic mapping script would crash with a PHP fatal error if
   it tries to get gene information from the HGNC for a deprecated gene symbol.
 * Fixed bug; The "make standard" AJAX call made from the SeattleSeq import form
   did not actually make the column standard because of a problem in the call.
 * Fixed bug; Submission emails sent out by LOVD by users with more than one
   email address, had the additional addresses in the body of the email.
 * Fixed bug; The /transcripts/GENE URL also showed transcripts for genes with
   symbols starting with the requested gene symbol.
 * Fixed bug; The number of variants shown in the individuals listing, showed
   the number of variants found in the first screening instead of the total
   number of variants found.
   (thanks to Chris Watson, St. James's Univ Hospital, Leeds, UK, for reporting)
 * Fixed bug; The custom column data type wizard was resetting a textarea's size
   to 40 every time the wizard ran.
 * Implemented PDO in all remaining lovd_queryDB() calls in genes.php,
   logout.php and users.php.
 * Fixed bug; LOVD's REST2SOAP library was throwing errors on older PHP versions
   while parsing XML files.
 * Fixed bug; After a SeattleSeq import, the final overview given didn't show
   all imported variants (although import was successful).
 * Fixed bug; When not logged in, no variant descriptions on transcripts could
   be viewed.
 * SeattleSeq import will now describe variants as p.(=) only if they are more
   than 10 bases away from the nearest splice site.
 * Fixed bug; the "External links" field could not be filled in with link
   descriptions, because the XSS security check didn't allow it.
 * Fixed bug; lovd_checkXSS() was not properly protected against XSS itself.
 * Cleaned up the gene homepage, which had way too many columns enabled.
 * Fixed bug; Fixed the bug that searching in a
   (created|edited|updated|owned)_by column would result in an invalid search
   syntax error.
 * Fixed bug; Sometimes the footer would not be included when an error occurred.
 * Fixed bug; Now preventing javascript injection in the custom columns data
   type wizard.
 * Implemented confirmed variants into the submission mail process.
 * Now writing to log if the mail to the curator(s) failed at the end of a
   submission and also added a notification of the error to the user.
 * Added some checks to screenings?confirm so that users cannot confirm variants
   when they are not allowed.
 * Added some examples to the standard custom link descriptions.
 * Renamed `VariantOnGenome/DNA_published` to `VariantOnGenome/Published_as` &
   `VariantOnTranscript/DNA_published` to `VariantOnTranscript/Published_as`.
 * Changed the page the user goes to when a column is enabled or
   removed/disabled.
 * Fixed bug; No longer able to view data that you are not authorized for in
   viewEntries.
 * Split screenings?confirm in screenings?confirmVariants and
   screenings?removeVariants.
 * Added automatic trimming of whitespaces in some SQL queries.
 * Implemented a proper error handling for emails.
 * Added the custom columns `Individual/Consanguinity`, `Phenotype/Date`,
   `Phenotype/Inheritance`, `VariantOnGenome/Genetic_origin` and
   `VariantOnGenome/Segregation` to the standard available set of columns.
 * Added allele and variant effect columns to some of the variant views.
 * Fixed bug; Fixed a fatal error saying the function called array_replace does
   not exist, because it is not available before PHP 5.3.0.
 * Fixed bug; Fixed an issue where NULL values would not be stored properly in
   the database.
 * Fixed bug; The check on DBID would, in some cases, throw an error on a DBID
   that LOVD just predicted.
 * Fixed some usability issues with the tab menu.
 * Increased the width of the tooltip, so that in some places parts of the
   tooltip don't disappear at the bottom edge of the page.
 * Added the allele field to some variant viewLists.
 * Fixed the variant counts in the genes viewList.
 * Leaving the proxy_port empty during install, would cause it to be stored as 0
   instead of NULL in the database, this is now fixed.
 * Changed all implementations of `VariantOnGenome/DBID` so that it can only
   contain the DBID itself and nothing extra.
 * Changed the column order on the gene homepage and changed the homepage url
   & external url fields to actual clickable links.
 * Now does not show some columns in the gene homepage when they are empty or
   when the user's level is not high enough.
 * Activated the Phenotype & VariantOnTranscript standard custom columns during
   installation.
 * Added a few variant statistics to the gene homepage and fixed the variant
   statistics on the gene viewList.


/*******************
 * 3.0 Beta 03
 * 2012-03-28
 *********/
 * Implemented PDO in all remaining lovd_queryDB() calls in check_update.php,
   class/object_columns.php, class/object_genes.php,
   class/object_genome_variants.php, class/object_individuals.php,
   class/object_phenotypes.php, class/object_screenings.php,
   class/object_users.php, diseases.php, inc-auth.php, inc-init.php,
   inc-lib-init.php, individuals.php, install/index.php, login.php, settings.php
   and setup.php.
 * Fixed bug; ViewLists without page controls could not be sorted anymore since
   Beta-02.
 * Finished correcting the stats calculations in check_update.php.
 * Fixed bug; When trying to assign Panel ID 0 to an individual, LOVD returned a
   query error.
 * Fixed bug; On slower machines, LOVD could run into the maximum execution time
   during installation.
 * Fixed bug; LOVDs which were not correctly installed, for instance because the
   configuration step was skipped, could not be uninstalled.
 * Fixed bug; LOVD 3.0 could not connect to external sources through a proxy
   server.
   Closes #3: "Allow LOVD to work behind a proxy".
   (thanks to Susan McCafferty, University of Glasgow, UK, for reporting)
   (thanks to Chris Watson, St. James's Univ. Hospital, Leeds, UK, for testing)
 * Fixed bug; When incorrect MySQL data was filled in the config.ini, LOVD would
   now show a correct error message on the screen.
 * Fixed bug; lovd_matchURL() didn't correctly parse the given URLs that could
   result in false positives or false negatives.
 * Fixed bug; The email sent after a submitter registers, did not contain a
   proper link directly to the user's profile.
 * The email forwarded to the admin after a submitter registers, now has a
   proper Reply-To header.
 * Fixed notice directly after a submitter registers.
 * Fixed bug; "Not authorized" messages would include the header even if the
   "clean" header was already included before.
 * Fixed bug; On servers where MySQL had the ONLY_FULL_GROUP_BY setting enabled,
   custom columns could not be edited nor enabled.
 * Fixed bug; lovd_isAuthorized() returned false for users lower than managers
   when authorizing for variants, individuals, phenotypes and screenings.
 * Slightly optimized lovd_isAuthorized().
 * Fixed bug; It was not possible to activate the "Forward messages to database
   admin" or "Enable submitters to change data" settings.
 * Include the new Template class, that will soon replace inc-top.php,
   inc-top-clean.php, inc-bot.php and inc-bot-clean.php.
 * Implemented it in columns.php.
 * Fixed bug; ViewLists would throw an JavaScript error in some cases.
 * Fixed bug; DBID would not be predicted correctly in some cases.
 * Fixed bug; Searching for time on a DATETIME column would result in a Bad
   Syntax message in viewLists.
   Closes #8: "Searching a DATETIME column does not accept time input".
 * Made some layout changes to the list of current curators/collaborators for a
   gene.
 * Implemented better messages when a viewList does not return any entries.
 * Added a button to the viewEntry of variants that links to
   variants/<variantid>?map, where the user can add/remove transcripts on which
   the variant gets mapped on.
 * Fixed bug; Internal transcript start and stop positions that are pulled from
   mutalyzer were not correct.
 * Fixed bug; When clicking on a separator line in the tab menu, LOVD would
   redirect to /undefined, which would result in a 404 error.
 * Fixed bug; If LOVD was upgrading to a newer version, when redirecting back
   to the page where the user came from some pages would throw an error.
 * Added the "Imprinting" column to the genes pages & forms.
 * Implemented a delete column feature, that can remove a column from the
   installation after it has been disabled/removed from all data.
 * Fixed bug; Page navigation now reverts to the highest possible page, when a
   page is requested that is too high.
 * Added the possibility to add checkboxes to all entries in a viewList and a
   menu that allows you to perform actions to these entries.
 * Implemented a functionality to confirm ealier found variants with a
   screening.
 * When removing a transcript from the variant descriptions LOVD will show a
   warning when the red cross is clicked.
 * Added the option to import VCF files and SeattleSeq annotated files.
 * Variants on genomic level, such as variants imported with VCF files, can be
   mapped automatically to the genes in the database. Also, the uploader can
   choose to have LOVD create genes automatically, if imported variants are in
   a gene region.
 * Added an option to search for a certain variant in other LOVD databases.


/*******************
 * 3.0 Beta 02
 * 2012-02-09
 *********/
 * Went through the entire 2Do.txt file to resort the new priorities after
   3.0-beta-01.
 * The installation process now checks if MultiViews or mod_rewrite (or
   something equivalent on non-Apache servers) is activated. It also checks for
   the PHP function xml_parser_create().
   Closes #4: "Problems running LOVD 3.0 on Windows 7/WampServer 2.0".
   (thanks to John-Paul Plazzer, Royal Melbourne Hosp. Australia, for reporting)
 * Updated the INSTALL.txt to reflect this.
 * Removed link to LOVD status page for now since we haven't implemented it yet.
 * When resorting a ViewList, the list will return to the first page.
 * When there is only one user in the database, after creating a gene you are no
   longer forwarded to the "Add curator" page.
 * Fixed display problem with the disease entry form when there are genes with
   long names.
 * Fixed bug; Searching for !="" still showed entries with empty values in the
   specified column.
 * Fixed bug; Searching for values in custom columns used the slower HAVING SQL
   syntax instead of the optimized WHERE syntax.
 * When searching for negative matches (e.g. "!DMD" which means "does not match
   DMD"), the NULL values were ignored and not returned.
 * Fixed bug; The progress bar shown while upgrading did not calculate the total
   work correctly, making a weird "jump" at the end.
 * Fixed accidentially changed field length for the VariantOnGenome/Frequency
   field.
 * Fixed bug; The checks on the Panel ID field were not adequate.
 * Fixed bug; When running the data type wizard twice on the same form, the pre-
   vious values were not remembered.
 * Fixed bug; The data type wizard didn't remember the form type of the Decimal
   type column.
 * Fixed notice when creating two PDO connections.
 * Fixed bug; SOAP moduleCall()s would produce warnings when lovd_php_file()
   returned false on a failed SOAP request.
 * Fixed bug; Genes were not editable.
 * LOVD 3.0 now requires the PHP mbstring extension to be on.
 * After changing the page size on a viewList, the page number now always resets
   to 1.
 * Added links in the screenings tab dropdown to the custom columns overviews.
 * Added some icons in the dropdown menus.
 * Fixed bug; Fixed a notice from the custom column create form.
 * Added a progress bar in custom column delete.
 * Fixed bug; Fixed missing permission checks in various parts of LOVD.
 * Fixed bug; The variant create and edit form would give a notice if a variant
   could not be recognized/mapped by mutalyzer.
 * The buttons "Add a variant to this screening", "Add a screening to this
   individual" & "Add a phenotype to this individual" are now only visible when
   the user is the owner of the data, curator or higher.
 * You can now specify that no variants were found with a particular screening.
 * Now a user is only able to select up to 15 genes that have been screened in
   the screenings create & edit forms. For genome-wide analysis no genes should
   be selected.
 * Fixed bug; The DBID was not properly predicted in some cases.
 * Fixed bug; When creating a gene, there were in some specific cases no proper
   checks if the gene was already present in the database.
 * Removed the separator line in the tab menu's when there are no items after
   it.
 * Added some mod_rewrite rules that we had forgotten to add before.


/*******************
 * 3.0 Beta 01
 * 2012-01-31
 *********/
 * Fixed bug; Sometimes transcripts where shown under a gene's detailed view
   that belonged to genes with only a similar name.
   Closes #6: "showing active transcripts".
 * Fixed bug; Password reset tried to send an email even if the user was unknown
   but it threw a PHP error instead. Also, you can no longer check if a username
   exists by using this function.
 * The default page size for the viewList used to select curators is now 10.
 * Fixed notices in columns.php.
 * Fixed bug; Removing a VariantOnTranscript column that has been added to many
   genes resulted in a very long selection list.
 * Fixed bug; The row links from the view/GENE viewList were not correct.
 * Fixed weird display of the view/GENE viewList when no transcripts or variants
   are available.
 * Added a column with the individual's disease(s) to the view/GENE viewList.
 * Added icons on the LOVD Setup page.
 * Increased required MySQL version to 4.1.2.
 * Added a user called LOVD for usage in (created|edited|updated)_by columns in
   case of LOVD making changes to the database itself.
 * Fixed bug; The display for checkbox custom columns was not working properly
   when viewing the column properties.
 * Fixed bug; When creating a custom (multiple) select column, LOVD would throw
   an error saying the select_options have to be numeric.
 * Fixed bug; When removing a non-shared custom column, you would get a notice.
 * All standard custom columns & custom links have now been set to be created by
   LOVD.
 * Implemented custom columns edit page.
 * The column width can now no longer allow more than 3 digits.
 * It is now possible to edit/create up to 5 columns simultaneously in different
   tabs/windows without losing data.
 * Implemented a dynamic change of the example below the 'width' input field in
   the custom columns edit & create forms.
 * Fixed bug; The variant create form threw a notice.
 * Fixed bug; Added a proper message on the gene-specific variant listing when
   there are no transcript with variants available for the selected gene.
 * Fixed bug; Prevented a variant from being added to the same screening every
   time due to a bug in the code.
 * Fixed bug; Prevented a notice from occurring regarding the chromosome in the
   variant edit form.
 * Fixed bug; Variants which were not public where still viewable in some
   viewLists.
 * Rewrote the submission mailing process, so that screenings & phenotypes can
   be added to an individual properly with a notification mail to the curator(s)
   and such.
 * Implemented panelid & panel size.
 * Implemented VariantOnGenome/DBID check & predict functions into the variant
   create and edit forms.
 * Corrected some pathogenicity error messages on the variant forms.
 * Fixed bug; Installing LOVD would cause a notice, because pathogenicity was
   not yet changed to functional effect.
 * Fixed bug; The map variant button did not properly check if there are no
   transcripts.
 * Changed the VariantOnGenome/DBID descriptions, regular expression pattern
   check and form type for the new LOVD3 implementation.
 * Removed Individual/Times_Reported and copied its data to panel size.
 * Changed some of the functional effect option names.
 * Added a loading image implementation to the HGVS check on the variant create
   & edit form.
 * Genes with a mitchondrial location can now be added in the create gene form.
 * Newly registered user accounts will now be registered as having been created
   by the user itself, instead of by nobody.
 * Gene symbols with a 'reserved' chromosomal location will not be allowed to be
   added to LOVD since mutalyzer cannot do anything if the chromosome is not
   known.
 * Sometimes the variant create or edit forms would take a long time to load,
   this has now been fixed.
 * Changed the default width for "VariantOnGenome/DBID" from 200 to 80.
 * Added a new database table to correctly sort the chromosomes.
 * Variant start & stop positions are now stored in the database, to facilitate
   correct sorting of the variants.


/*******************
 * 3.0 Alpha 07
 * 2011-12-14
 *********/
 * Fixed bug; When a gene has been selected, the disease tab was always linking
   to diseases associated to the DMD gene, even if there was no DMD gene.
 * When viewing a chromosome-specific variant overview, the chromosome number is
   mentioned in the page title.
 * Fixed bug; DECIMAL type columns weren't properly checked for their values'
   maximum allowed lengths nor if negative numbers were allowed.
 * Fixed bug; INT type columns weren't properly checked for their values'
   maximum allowed lengths.
 * Fixed bug; On servers without MySQL support, LOVD didn't return a proper
   warning anymore.
 * Fixed bug; Fixed an unclear error message that might be shown when creating a
   disease with no genes in the database yet.
 * Improved the navigation a bit by implementing shorter routes.
 * Fixed bug; The "New password" fields were always mandatory when editing a
   user's account.
 * Fixed bug; Newly created submitter accounts were reported to have last been
   logged in in the year 1970.
 * Fixed bug; A variable name in inc-top.php interfered with a variable name in
   lovd_requireAuth(), which made lovd_requireAuth() print a wrong error message
   when a user did not have proper rights to view a page.
 * Reimplemented /variants/GENE viewList - the variants can now only be viewed
   per transcript. The viewer can switch transcripts if others are available for
   the selected gene. Also created the /variants/GENE/NM_ID URL, which locks the
   view on the given transcript.
 * When viewing a variant's details, the affected transcripts now also mention
   the gene symbol.
 * Added links to gene and transcript pages from the variant's detailed view.
 * Fixed bug; Under some circumstances, you could get two "No results have been
   found that match your criteria." error messages below each other.
 * Implemented /transcripts/NM_ID, that forwards to the correct numeric ID.
 * Fixed bug; Values of checkbox custom columns were not stored in the database.
 * Fixed bug; When removing a VariantOnTranscript or Phenotype custom column,
   the multiple selection list to select from which objects the column should be
   removed, was not restricted to a certain maximum size.
 * Fixed bug; DATETIME columns with DATETIME values got an error message that
   they should contain DATE values.
 * Added the /view/GENE page that shows variant, screening and individual data
   joined to each other, per gene, like was done in LOVD 2.0.
 * Changed the dbSNP custom link so that it can accept "rs1234567" as well as
   just "1234567".
 * Fixed bug; The VariantOnTranscripts ViewList did not show any active custom
   columns.
 * Added the "Affects function" selection list to all variant create & edit
   forms, which will be the replacement of the "Pathogenicity" field from LOVD2.
 * Added the option M (mitochondrial) to the chromosome selection list when
   creating a genomic variant.
 * Added support for editing a variant that affects transcripts of more than one
   gene.
 * Added a "loading..." image when the map variants button is pressed in the
   variant create & edit form.
 * Changed the way LOVD sorts on the `VariantOnGenome/DNA` and
   `VariantOnTranscript/DNA` columns.
 * When creating a variant on transcript level, you can now ignore specific
   transcripts.
 * The variant edit form now only shows the transcripts that the variant is
   mapped on.


/*******************
 * 3.0 Alpha 06
 * 2011-11-18
 *********/
 * Added the "Collaborates" column to the user's viewEntry, visible from Manager
   and up.
 * Fixed bug; The built-in Mutalyzer Syntax Checker on the variant create form
   didn't work for variants on non-numeric chromosomes, due to misinterpretation
   of 'chrX' as a malformed reference sequence.
 * When visiting gene-specific pages, LOVD now creates the gene-specific header
   with the list of curators displayed on the top of the page, like in LOVD 2.0.
 * LOVD also remembers your selected gene while you are active in LOVD, and some
   tabs' links are adapted to direct you to gene-specific overviews directly.
 * Improved the PDO wrapper by implementing a PDOStatement::fetchAllAssoc().
 * Changed order of columns in /variants/GENE overview, such that the variants
   on the transcript level are shown first.
 * Fixed bug; Internet Explorer users could be having some trouble with the drop
   down menu because of a bug in IE.
 * Added the protein NCBI ID column to the transcript viewList.
 * Fixed bug; Using the back button in your browser didn't always work properly
   when searching data using viewLists.
 * Fixed notice on phenotype data entry form.
 * Clicking on an entry in the "variant affecting transcripts" viewList now also
   links to the entry's viewEntry, and custom links are now displayed properly.
 * Fixed bug; The viewLists of individuals, screenings and phenotypes has no
   functional anchor.
 * Fixed bug; "Owned by" and "Status" fields are now only editable for curators
   and higher. The status of entries edited by the data owner, will be lowered
   to Marked, if it was set to Public.
 * Fixed bug; When leaving a Date data field empty, the database stored
   "0000-00-00".
 * Fixed bug; Internet Explorer users could be having some trouble with links
   from the "variants affecting transcripts" page, because Internet Explorer's
   Javascript engine does not respect the <BASE> tag.
 * Changed the end of submission URL from submit/(individual|variant)/<ID> to
   submit/finish/(individual|variant)/<ID>.
 * Implemented mailing to curators etc. at the end of a submission.
 * Authorization of users is now supported for all data types.
 * Searching numeric columns will now also allow negative numbers.
 * Enabled the "Forward messages to database admin" & "Enable submitters to
   change data" options in system settings.
 * Only public & marked entries are now visible to non-authorized users.
 * Implemented default values for variant forms.
 * Variants on transcript can now be edited and include HGVS syntax check &
   position converter on the form.
 * Changed the Content-Type of the standard email headers to charset UTF-8.
 * Variants on transcript viewlists now have a status field, which is actually
   the status from the corresponding genomic variant.
 * Added a viewEntry for variants on transcript below the genomic variant in
   variants/<variantid>#<transcriptid>.
 * Fixed bug; The active_columns selection box in custom link forms will no
   longer cause a notice when no columns have been selected.
 * Fixed bug; The password field will now always be checked correctly.
 * Phenotype edit forms and viewEntries are now displayed properly.
 * Focus of the variant?create/edit form is now on the submit button instead of
   the map variants buttons.
 * Added a password field to the custom links edit form.
 * Changed the layout of some forms.


/*******************
 * 3.0 Alpha 05
 * 2011-10-17
 *********/
 * Fixed bug; When deleting a user, an error occurred because of an invalid
   query to the database.
 * Fixed bug; When creating an individual entry, an error could have been shown
   on the screen.
 * Fixed bug; Registering a user would result into an infinite loop, freezing
   the browser because the code was expecting the user to be logged in.
 * Added new cross and check images in 11x11 and 16x16 and removed the old ones.
 * Added a register user functionality.
 * Added a reCAPTCHA library.
 * Implemented a reCAPTCHA to the user register form.
 * Implemented AJAX calls into the variant submission form so that the HGVS is
   checked instantly and you can convert the position from genomic to the
   transcripts and vice versa.
 * Fixed bug; newly registered submitters are now logged in properly after the
   registration step.
 * Fixed bug; running LOVD in php5 safe mode will no longer cause notices.
 * Added new mail functionalities and implemented them into the registration &
   password reset processes.
 * Improved the compatibility with other database platforms.
 * Changed the wrap length of email body texts from 80 to 70 characters.
 * Implemented the search expression ="" to viewLists, which will match columns
   with no value.
 * Changed PDO to use buffered queries.
 * Changed the standard email headers that are sent with all outgoing mails.
 * Search fields in the viewList now always fit the column.
 * Added a default location_url to the system settings form.
 * User level in the users viewList is now sortable AND searchable.
 * Added some more information about the meaning of the icons on the custom
   column overview if you move your mouse over them.
 * LOVD now distributes an User-Agent string when using certain web calls.
 * Changed URL of bug tracking system, since it has been moved.
 * When installing LOVD, the database URL is now predicted for the user.
 * Fixed problems with advanced searching in viewLists.
 * Made some textual improvements.
 * Improved the PDO wrapper.
 * Fixed bug; Checking the install's URL didn't work during LOVD installation,
   as notices were generated about a missing variable.


/*******************
 * 3.0 Alpha 04
 * 2011-09-02
 *********/
 * For phenotype data entries, the status can now also be set.
 * Fixed bug; The reset password functionality was non functional.
 * The gene's disclaimer will now be shown underneath the viewEntry table.
 * Fixed bug; A gene database's date of creation can no longer be in the future.
 * Curators can now also view custom column information.
 * Added link for changing the columns' order underneath a category's viewList.
 * Added "Genes screened" and "Variants" columns to the individual viewList.
 * Fixed bug; The submitter count and unique variants count were not calculated
   properly by check_update.php.
 * Fixed some numical references to user levels (should be constants).
 * Minimum required PHP version is now 5.1.0, due to the requirement of PDO.
 * LOVD now checks the existence of PDO support and the MySQL driver for PDO,
   then connects to MySQL using PDO. Actually implementing PDO everywhere will
   take some time.
 * Fixed bug; LOVDs that were not installed yet, were throwing notices.
 * Added code for proper authorization of data owners to individuals.php,
   screenings.php and phenotypes.php. The correct user level is not yet assigned
   by lovd_isAuthorized().
 * Fixed some issues with HTML 4.01 compatibility.
 * Fixed bug; lovd_queryDB() did not show the entire query if it was throwing an
   error message about the number of arguments used in the query.
 * Added chromosome to genomic variant viewList.
 * Updated the INSTALL.txt help file.
 * Implemented a custom viewList class, allowing easy implementation of flexible
   viewLists with several different data objects linked to each other.
 * Fixed bug; Added XSS fix to lovd_displayError().
 * Fixed bug; MySQL handles 01 very different than '01' for VARCHAR columns,  so
   lovd_queryDB() will now always quote integers.
 * Implemented the /variants/chr# URL showing a viewList of all genomic variants
   on a specific chromosome.
 * Fixed bug; Non-mandatory selection lists did not have the "(Optional)" suffix
   on data entry forms.
 * Added jeegoocontext drop down menu, written by Erik van den Berg
   (http://www.planitworks.nl/jeegoocontext)
 * Cleaned up inc-upgrade.php; it is no longer supported to upgrade LOVD 3.0
   from earlier than 3.0-pre-21.
 * Added minified jQuery 1.6.2 to the newly created lib/jQuery folder.
 * Added minified jQuery UI 1.8.15-core files (core/mouse/widget/position) &
   sortable file to lib/jQuery.
 * Removed lib/tool-man folder and its contents entirely as it was outdated and
   a solid replacement was found in jQuery UI.
 * Included jQuery & jQuery UI in inc-top.php so they can be accessed everywhere
   in LOVD.
 * Fixed bug; sorting in genes?sortCurator & columns?order now also works for IE
   by using jQuery UI sortable.
   Fixed #1: "Drag and drop sorting does not work in IE 8".
 * Fixed bug; Changed the temporary memory leak fix to a solid permanent fix in
   genes?create, genes?edit & transcripts?create.
 * Renamed 'inc-js-insert_custom_links.php' to 'inc-js-custom_links.php'.
 * Implemented deleteEntry in users?delete & built in a check in users?(un)lock
   to see if a user is already (un)locked.
 * Fixed bug; In phenotype?create it is now mandatory to select a disease, and
   also implemented checks for a valid diseaseid. Also only diseases that have
   custom columns enabled will be selectable now.
 * When an individual has only one disease, you don't have to select the disease
   when creating a new phenotype entry.
 * Implemented one-click navigation from the individual's detailed view to the
   form to add phenotype information on a certain disease.
 * Fixed bug; Couldn't select which genes were screened on screening data entry
   forms.
 * Changed all references to inc-js-insert-custom-links.php to the new name
   inc-js-custom_links.php and removed the old file.
 * Fixed bug; lovd_AJAX_viewListAddNextRow() now works properly in all browsers.
 * Fixed bug; lovd_includeJS() can now also handle files in a different path.
 * Fixed bug; lovd_viewForm() allowed single selection lists to have a "select
   all" link.
 * Fixed bug; Fixed the database structure for transcript variant custom columns
   in object_custom.php.
 * Optimized & cleaned the transcripts?create code.
 * Transcripts/<gene symbol> now also works and is basically the same as the
   /transcripts view with a search on <gene symbol>.
 * Improved navigation between linked data types by adding some extra viewLists
   and links.
 * Implemented a working form to create variants on transcript level.
 * Implemented full submission workflow.


/*******************
 * 3.0 Alpha 03
 * 2011-08-03
 *********/
 * Fixed bug; The verification of the LOVD database URL did not work, actually
   because of a problem in the script on the LOVD website.
 * Fixed bug; When selecting curators for a gene, if the viewList with available
   users was sorted or searched, the users could no longer be selected.
 * Fixed bug; When selecting curators for a gene, clicking on the user's name
   led to execution of javascript outside the scope of the page, resulting in a
   blank page with only "true" on it.
 * Fixed bug; Users can no longer remove a user as curator for a gene, when this
   user has an equal or higher level than themselves.
 * Fixed bug; Fixed notices when not properly selecting a curator for a gene.
 * Added the "Order" column in the custom columns viewList.
 * Simplified the check on the regular expression syntax of a custom column.
 * Fixed bug; On the gene viewEntry pages one of the headers was malformed.
 * Implemented option for curators to sort the list of curators for their genes.
 * Implemented lovd_isAuthorized() for checking a user's authorization for dif-
   ferent data types. Currently, only genes are implemented. The user's level,
   if lower than LEVEL_MANAGER, will no longer be defined in inc-auth.php.
 * Curators of any gene can now also check LOVD's update status. The link to
   this page is now only active for Curators and up.
 * Added navigation for Curators from the gene viewEntry page to forms to edit a
   gene, add a transcript to a gene, and sort the list of curators. Those pages
   are now also opened up to Curators.
 * Minimum MySQL version needed to run LOVD 3.0 is now 4.1.1.
 * Added lovd_php_htmlspecialchars() function that also works recursively.
 * Added array_merge() optimization where possible.
 * Fixed bug; Values of custom columns configured as simple drop down lists were
   lost during edit of the data entry.
 * Fixed bug; On the genomic variant data entry form, "Owner of individual"
   should be "Owner of variant". Also other forms had this error.
   (thanks to Raymond Dalgleish, University of Leicester, UK, for reporting)
 * Links to OMIM are now to OMIM.org and not to the NCBI site anymore.
 * Fixed bug; The user's viewList and viewEntry reported collaborators as being
   curators for the genes they are collaborators for.
 * Implemented lovd_isAuthorized() checks for diseases and transcripts, so that
   curators can correctly be recognized as authorized users.
 * Added virtual user level LEVEL_OWNER, assigned by lovd_isAuthorized() to sub-
   mitters who are owner or creator of a certain data entry.
 * Fixed too big Variant/DBID size on the data entry form.
 * Fixed bug and standardized code for checks on ownerid and statusid.
 * Fixed bug; When all available users had been selected as curator or
   collaborator, you were not able to remove anyone from this list anymore.
 * Fixed bug; Internet Explorer "forgot" which columns where hidden from view in
   viewLists when searching or sorting them.
 * Fixed bug; A change applied to lovd_php_file() in r46 failed on servers with
   PHP 4, so included work around.
 * Checking the user's password for authorization of creates, edits and deletes
   is now handled by class/objects.php.
 * Fixed bug; On input errors, some data entry forms did not delete the password
   after the form was sent back.
 * Fixed bug; All custom columns can now be removed properly.
 * Fixed bug; When a user edits a gene, LOVD checks if there is a known UD number
   in the database. If not, then it generates one through mutalyzer.
 * Implemented a re-ordering functionality of custom columns.
 * Changed the regular expression for gene symbol validity so that it can also
   contain @ and #.
 * Implemented a urldecode and urlencode in genes.php to allow special chars
   to be in the gene symbol and thus in the URL.
 * Implemented automatic exploding of GROUP_CONCAT data based on their name.
   So '_genes' = array (;) or '__active_diseases' = nested array(;;).
 * Added the temporary memory leak fix from genes?create also to genes?edit &
   transcripts?create.
 * Fixed bug; Variants can be added to a screening again. Still this is only
   possible from the screenings page when you select "Add variant to screening".
 * The proper columns are now loaded also for transcript variants in
   object_custom.php.
 * Implemented tooltips for custom links in viewLists, inside the tooltip is the
   actual link so that they are now clickable without going to the viewEntry.
 * User levels are now properly displayed in user viewLists & viewEntries and
   sortable (not searchable).


/*******************
 * 3.0 Alpha 02
 * 2011-07-05
 *********/
 * Fixed bug; Windows systems will now be able to send mails to the users when
   using reset password.
 * Fixed bug; Appropriate email headers are now added to the LOVD system mail
   function.
 * Fixed bug; Temporary fix for the memory leak in /genes?create.
 * Fixed bug; Order of custom columns is now set correctly when enabled.
 * Create, edit & delete phenotype are now implemented and working properly.
 * User authorization level is now searchable in viewLists.
 * Custom columns can now be removed.
 * Adapted the page for phenotype create a bit.
 * Changed & to W3C compliant &amp; in HTML output.
 * Some LOVD 2.0 -> LOVD 3.0 code standardizations.
 * Some code optimizations.
 * insertEntry() and updateEntry() don't need to implode array values,
   lovd_queryDB() does that for them already.
 * Changed "variant information entry" to "variant entry".
 * Added new logos for gene database create and edit.
 * Removed remaining carriage returns in all files except the
   config.ini.php-lovd.
 * Removed internal LOVD columns from the VariantsOnTranscripts' viewList and
   viewEntry.
 * Fixed bug; Non-shared custom columns couldn't be removed.
 * Used CURRENT_PATH instead of (possibly concatenated) $_PATH_ELEMENTS calls.
 * Added new screening techniques to the "Screening/Technique" column.
 * Fixed bug; The "VariantOnTranscript/RNA" and "VariantOnTranscript/Protein"
   columns were non-mandatory by mistake.
 * Fixed bug; The "updated" column in the genes viewList did not allow for date
   type searching because lovd_getColumnType() did not recognize it.
 * Fixed bug; Notices were thrown when searching in date columns using
   incomplete date ranges.
 * Cleaned out the 2Do.txt file; bugs that had been fixed already were removed.
 * Added anchor in columns viewList.
 * The "Last login" and "Started" columns in the users viewList have been
   shortened to just the dates.
 * Fixed bug; A gene's hidden curators and collaborators should only be viewable
   on that gene's viewEntry page by collaborators or higher.
 * Added panelid and panel_size to the Individuals table, to distinguish between
   individuals and panels.
 * The VariantOnTranscript/DBID field has been removed in favor of the
   VariantOnGenome/DBID field.
 * A new authentication method is introduced, storing the user's passwords even
   more safely as before. The user account password stores are only updated one
   by one, whenever a user logs in.



/*******************
 * 3.0 Alpha 01
 * 2011-05-26
 *********/
 * Initial release to general public.
