Source: public/javascript/modules/page_overlay.js

/**
 * Class providing default elements for an overlay area
 * show, hide and add content
 */
class Overlay{
  constructor(container, containerId){
    this.container = container;
    this.container.id= containerId;
    this.container.class = "overlay";
    this.container.style = "overflow:scroll";
    this.show = this.show.bind(this);
    this._show = this._show.bind(this);
    this.hide = this.hide.bind(this);
    this._hide = this._hide.bind(this);
  }

  setINNERHtml(htmlContent){
    this.container.innerHTML = htmlContent;
  }

  show(){
    this._show();
  };

  _show(){
    this.container.style.height = "100%";
  };

  hide(){
    this._hide();
  };

  _hide() {
    this.container.style.height = "0%";
  }
}


/*
** A class to build an HTML table containing the header of a FITS table presented in certain way
** and control its visibility.
**
** @itsDIV the div which will contain the FITS header table.
** @itsFITSHeaders a dictionary Key:Value containing the FITS header.
**
*/
function ENTER(msg) {
  console.log(msg + " : entering");
};

function EXIT(msg) {
  console.log(msg + " : exiting");
};

/*
** The constructor.
** Expects two parameters :
**
** @itsDIV a reference to a div which will contain the tabular presentation of the FITS header.
** @itsFITSHeader a reference to the FITS Header to be displayed.
*/
function FITSHeaderTable( itsDIV, itsFITSHeader ) {
  ENTER("function FITSHeaderTable( itsDIV, itsFITSHeader )");

  let overlay = new Overlay(itsDIV, "FITSHeaderWrapper");

  let _innerHTML = "<a href=\"javascript:void(0)\" class=\"closebtn\" \
                       id=\"hideFITSHEADER\" >&times;</a>";
  _innerHTML += "<div class=\"overlay-content\">";
  _innerHTML += "<div id=\"FITSHeaderParent\">";
  _innerHTML += "<div id=\"FITSHeaderTable\" class=\"scrollWrapper\">";
  _innerHTML += "<table></table>";
  _innerHTML += "</div";
  _innerHTML += "</div";
  _innerHTML += "</div";

  overlay.setINNERHtml(_innerHTML);

  this.show = function() {
    overlay.show();
  };

  this.hide = function() {
    overlay.hide();
  };

  $("#hideFITSHEADER").click(function(e) {
   overlay.hide();
  });

  let _historyKeywords_ = ["DATE", "ORIGIN", "BLOCKED"];
  let _describingObservationKeywords_ = ["DATE-OBS","TELESCOP", "INSTRUME", "OBSERVER", "EQUINOX","EPOCH"];
  let _mandatoryKeywords_ = ["SIMPLE", "BITPIX", "NAXIS", "NAXIS1", "NAXIS2", "NAXIS3", "NAXIS4"];
  let _beamSizeKeywords_ = ["BMIN", "BMAJ", "BPA"];
  let _restFrqKeywords_ = ["RESTFRQ"];
  let _arrayKeywords_ = ["BSCALE", "BZERO", "BUNIT", "BLANK", "CTYPE1", "CTYPE2", "CTYPE3", "CTYPE4", "CRPIX1", "CRPIX2", "CRPIX3", "CRPIX4", "CRVAL1", "CRVAL2", "CRVAL3", "CRVAL4", "CDELT1", "CDELT2", "CDELT3", "CDELT4", "CROTA1", "CROTA2", "CROTA3", "CROTA3", "CUNIT1", "CUNIT2", "CUNIT3", "CUNIT4", "DATAMIN", "DATAMAX"];
  let _obsGeoKeywords_ = ["OBSGEO-X", "OBSGEO-Y", "OBSGEO-Z", "OBSRA", "OBSDEC"];

  let _keywordsByRegex = function(header, re) {
    var kw, result = [];
    for (kw in header) {
      if (kw.match(re) && header.hasOwnProperty(kw)) {
        result[result.length] = kw;
      }
    }
    return result.sort();
  }

  let _extractKeywords = function(keywords, header) {
    var result=[];
    for (var mk in keywords) {
      if (keywords[mk] in header) {
        result[keywords[mk]] = header[keywords[mk]];
        delete header[keywords[mk]];
      }
    }
    return result.sort();
  }

  let _populate = function (h) {
    var t = $('#FITSHeaderTable > table');
    t.empty();

    t.append('<tr><td colspan="2"><span>OBJECT: ' + h["OBJECT"] + '</span></td></tr>');
    t.append('<tr><td>--------</td><td>----------</td></tr>');

    /* History keywords */
    var mks = _extractKeywords(_historyKeywords_, h);
    for (var mk in mks) {
      t.append('<tr><td><span>' + mk + '</span></td><td><span>' + mks[mk] + '</span></td></tr>');
    }
    t.append('<tr><td>--------</td><td>----------</td></tr>');

    /* describing observation keywords */
    var mks = _extractKeywords(_describingObservationKeywords_, h);
    for (var mk in mks) {
      t.append('<tr><td><span>' + mk + '</span></td><td><span>' + mks[mk] + '</span></td></tr>');
    }
    t.append('<tr><td>--------</td><td>----------</td></tr>');

    /* The rest frequency */
    var mks = _extractKeywords(_restFrqKeywords_, h);
    for (var mk in mks) {
      t.append('<tr><td><span>' + mk + '</span></td><td><span>' + mks[mk] + '</span></td></tr>');
    }
    t.append('<tr><td>--------</td><td>----------</td></tr>');

    /* The mandatory keywords */
    var mks = _extractKeywords(_mandatoryKeywords_, h);
    for (var mk in mks) {
      t.append('<tr><td><span>' + mk + '</span></td><td><span>' + mks[mk] + '</span></td></tr>');
    }
    t.append('<tr><td>--------</td><td>----------</td></tr>');

    /* The beam size keywords */
    var mks = _extractKeywords(_beamSizeKeywords_, h);
    for (var mk in mks) {
      t.append('<tr><td><span>' + mk + '</span></td><td><span>' + mks[mk] + '</span></td></tr>');
    }
    t.append('<tr><td>--------</td><td>----------</td></tr>');

    /* The array keywords */
    var mks = _extractKeywords(_arrayKeywords_, h);
    for (var mk in mks) {
      t.append('<tr><td><span>' + mk + '</span></td><td><span>' + mks[mk] + '</span></td></tr>');
    }
    t.append('<tr><td>--------</td><td>----------</td></tr>');

    /* The geographic location of the observation (m) */
    var mks = _extractKeywords(_obsGeoKeywords_, h);
    for (var mk in mks) {
      t.append('<tr><td><span>' + mk + '</span></td><td><span>' + mks[mk] + '</span></td></tr>');
    }
    t.append('<tr><td>--------</td><td>----------</td></tr>');

    /* The PC keywords */
    var PCKeywords = _keywordsByRegex(h, /PC\d\d/);
    var mks = _extractKeywords(PCKeywords, h);
    for (var mk in mks) {
      t.append('<tr><td><span>' + mk + '</span></td><td><span>' + mks[mk] + '</span></td></tr>');
    }
    t.append('<tr><td>--------</td><td>----------</td></tr>');

    /* The rest */
    let kws=[];
    for (var kw in h) {
      kws[kws.length] = kw;
    }

    /* is listed by alphabetical order */
    kws = kws.sort();
    for (let i = 0; i < kws.length; i++)  {
      t.append('<tr><td><span>' + kws[i] + '</span></td><td><span>' + h[kws[i]] + '</span></td></tr>');
    }
  }

  var hclone = $.extend({}, itsFITSHeader);
  _populate(hclone);

  EXIT("function FITSHeaderTable( itsDIV, h)");
};



/*
** The constructor.
** Expects two parameters :
**
** @itsDIV a reference to a div which will contain the tabular presentation of the FITS header.
** @itsFITSHeader a reference to the FITS Header to be displayed.
*/
function LicensePanel( itsDIV ) {
  ENTER("function LicensePanel( itsDIV )");
  let overlay = new Overlay(itsDIV, "LicensePanelHeader");
 
  this._licenseText = function(){
    return `
      <pre>

      Yafits software uses the Highcharts and OpenLayers libraries whose license can
      be found below.

      -------------------------------------------------------------------------------
      CC BY-NC 3.0

      Applies to :
      - Highcharts, Copyright (c) Highsoft (As long as highcharts is used by a
      non-profit company, or if it is used for personal use)
      https://shop.highsoft.com/highcharts/

      -------------------------------------------------------------------------------


      License

      THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE COMMONS
      PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY COPYRIGHT AND/OR
      OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS AUTHORIZED UNDER THIS
      LICENSE OR COPYRIGHT LAW IS PROHIBITED.

      BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE TO BE
      BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS LICENSE MAY BE CONSIDERED
      TO BE A CONTRACT, THE LICENSOR GRANTS YOU THE RIGHTS CONTAINED HERE IN
      CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND CONDITIONS.

      1. Definitions

      "Adaptation" means a work based upon the Work, or upon the Work and other
      pre-existing works, such as a translation, adaptation, derivative work,
      arrangement of music or other alterations of a literary or artistic work, or
      phonogram or performance and includes cinematographic adaptations or any
      other form in which the Work may be recast, transformed, or adapted
      including in any form recognizably derived from the original, except that a
      work that constitutes a Collection will not be considered an Adaptation for
      the purpose of this License. For the avoidance of doubt, where the Work is a
      musical work, performance or phonogram, the synchronization of the Work in
      timed-relation with a moving image ("synching") will be considered an
      Adaptation for the purpose of this License. "Collection" means a collection
      of literary or artistic works, such as encyclopedias and anthologies, or
      performances, phonograms or broadcasts, or other works or subject matter
      other than works listed in Section 1(f) below, which, by reason of the
      selection and arrangement of their contents, constitute intellectual
      creations, in which the Work is included in its entirety in unmodified form
      along with one or more other contributions, each constituting separate and
      independent works in themselves, which together are assembled into a
      collective whole. A work that constitutes a Collection will not be
      considered an Adaptation (as defined above) for the purposes of this
      License. "Distribute" means to make available to the public the original and
      copies of the Work or Adaptation, as appropriate, through sale or other
      transfer of ownership. "Licensor" means the individual, individuals, entity
      or entities that offer(s) the Work under the terms of this License.
      "Original Author" means, in the case of a literary or artistic work, the
      individual, individuals, entity or entities who created the Work or if no
      individual or entity can be identified, the publisher; and in addition (i)
      in the case of a performance the actors, singers, musicians, dancers, and
      other persons who act, sing, deliver, declaim, play in, interpret or
      otherwise perform literary or artistic works or expressions of folklore;
      (ii) in the case of a phonogram the producer being the person or legal
      entity who first fixes the sounds of a performance or other sounds; and,
      (iii) in the case of broadcasts, the organization that transmits the
      broadcast. "Work" means the literary and/or artistic work offered under the
      terms of this License including without limitation any production in the
      literary, scientific and artistic domain, whatever may be the mode or form
      of its expression including digital form, such as a book, pamphlet and other
      writing; a lecture, address, sermon or other work of the same nature; a
      dramatic or dramatico-musical work; a choreographic work or entertainment in
      dumb show; a musical composition with or without words; a cinematographic
      work to which are assimilated works expressed by a process analogous to
      cinematography; a work of drawing, painting, architecture, sculpture,
      engraving or lithography; a photographic work to which are assimilated works
      expressed by a process analogous to photography; a work of applied art; an
      illustration, map, plan, sketch or three-dimensional work relative to
      geography, topography, architecture or science; a performance; a broadcast;
      a phonogram; a compilation of data to the extent it is protected as a
      copyrightable work; or a work performed by a variety or circus performer to
      the extent it is not otherwise considered a literary or artistic work. "You"
      means an individual or entity exercising rights under this License who has
      not previously violated the terms of this License with respect to the Work,
      or who has received express permission from the Licensor to exercise rights
      under this License despite a previous violation. "Publicly Perform" means to
      perform public recitations of the Work and to communicate to the public
      those public recitations, by any means or process, including by wire or
      wireless means or public digital performances; to make available to the
      public Works in such a way that members of the public may access these Works
      from a place and at a place individually chosen by them; to perform the Work
      to the public by any means or process and the communication to the public of
      the performances of the Work, including by public digital performance; to
      broadcast and rebroadcast the Work by any means including signs, sounds or
      images. "Reproduce" means to make copies of the Work by any means including
      without limitation by sound or visual recordings and the right of fixation
      and reproducing fixations of the Work, including storage of a protected
      performance or phonogram in digital form or other electronic medium.

      2. Fair Dealing Rights. Nothing in this License is intended to reduce, limit, or
      restrict any uses free from copyright or rights arising from limitations or
      exceptions that are provided for in connection with the copyright protection
      under copyright law or other applicable laws.

      3. License Grant. Subject to the terms and conditions of this License, Licensor
      hereby grants You a worldwide, royalty-free, non-exclusive, perpetual (for the
      duration of the applicable copyright) license to exercise the rights in the Work
      as stated below:

      to Reproduce the Work, to incorporate the Work into one or more Collections,
      and to Reproduce the Work as incorporated in the Collections; to create and
      Reproduce Adaptations provided that any such Adaptation, including any
      translation in any medium, takes reasonable steps to clearly label,
      demarcate or otherwise identify that changes were made to the original Work.
      For example, a translation could be marked "The original work was translated
      from English to Spanish," or a modification could indicate "The original
      work has been modified."; to Distribute and Publicly Perform the Work
      including as incorporated in Collections; and, to Distribute and Publicly
      Perform Adaptations.

      The above rights may be exercised in all media and formats whether now known or
      hereafter devised. The above rights include the right to make such modifications
      as are technically necessary to exercise the rights in other media and formats.
      Subject to Section 8(f), all rights not expressly granted by Licensor are hereby
      reserved, including but not limited to the rights set forth in Section 4(d).

      4. Restrictions. The license granted in Section 3 above is expressly made
      subject to and limited by the following restrictions:

      You may Distribute or Publicly Perform the Work only under the terms of this
      License. You must include a copy of, or the Uniform Resource Identifier
      (URI) for, this License with every copy of the Work You Distribute or
      Publicly Perform. You may not offer or impose any terms on the Work that
      restrict the terms of this License or the ability of the recipient of the
      Work to exercise the rights granted to that recipient under the terms of the
      License. You may not sublicense the Work. You must keep intact all notices
      that refer to this License and to the disclaimer of warranties with every
      copy of the Work You Distribute or Publicly Perform. When You Distribute or
      Publicly Perform the Work, You may not impose any effective technological
      measures on the Work that restrict the ability of a recipient of the Work
      from You to exercise the rights granted to that recipient under the terms of
      the License. This Section 4(a) applies to the Work as incorporated in a
      Collection, but this does not require the Collection apart from the Work
      itself to be made subject to the terms of this License. If You create a
      Collection, upon notice from any Licensor You must, to the extent
      practicable, remove from the Collection any credit as required by Section
      4(c), as requested. If You create an Adaptation, upon notice from any
      Licensor You must, to the extent practicable, remove from the Adaptation any
      credit as required by Section 4(c), as requested. You may not exercise any
      of the rights granted to You in Section 3 above in any manner that is
      primarily intended for or directed toward commercial advantage or private
      monetary compensation. The exchange of the Work for other copyrighted works
      by means of digital file-sharing or otherwise shall not be considered to be
      intended for or directed toward commercial advantage or private monetary
      compensation, provided there is no payment of any monetary compensation in
      connection with the exchange of copyrighted works. If You Distribute, or
      Publicly Perform the Work or any Adaptations or Collections, You must,
      unless a request has been made pursuant to Section 4(a), keep intact all
      copyright notices for the Work and provide, reasonable to the medium or
      means You are utilizing: (i) the name of the Original Author (or pseudonym,
      if applicable) if supplied, and/or if the Original Author and/or Licensor
      designate another party or parties (e.g., a sponsor institute, publishing
      entity, journal) for attribution ("Attribution Parties") in Licensor's
      copyright notice, terms of service or by other reasonable means, the name of
      such party or parties; (ii) the title of the Work if supplied; (iii) to the
      extent reasonably practicable, the URI, if any, that Licensor specifies to
      be associated with the Work, unless such URI does not refer to the copyright
      notice or licensing information for the Work; and, (iv) consistent with
      Section 3(b), in the case of an Adaptation, a credit identifying the use of
      the Work in the Adaptation (e.g., "French translation of the Work by
      Original Author," or "Screenplay based on original Work by Original
      Author"). The credit required by this Section 4(c) may be implemented in any
      reasonable manner; provided, however, that in the case of a Adaptation or
      Collection, at a minimum such credit will appear, if a credit for all
      contributing authors of the Adaptation or Collection appears, then as part
      of these credits and in a manner at least as prominent as the credits for
      the other contributing authors. For the avoidance of doubt, You may only use
      the credit required by this Section for the purpose of attribution in the
      manner set out above and, by exercising Your rights under this License, You
      may not implicitly or explicitly assert or imply any connection with,
      sponsorship or endorsement by the Original Author, Licensor and/or
      Attribution Parties, as appropriate, of You or Your use of the Work, without
      the separate, express prior written permission of the Original Author,
      Licensor and/or Attribution Parties.

      For the avoidance of doubt:
      Non-waivable Compulsory License Schemes. In those jurisdictions in which
      the right to collect royalties through any statutory or compulsory
      licensing scheme cannot be waived, the Licensor reserves the exclusive
      right to collect such royalties for any exercise by You of the rights
      granted under this License; Waivable Compulsory License Schemes. In
      those jurisdictions in which the right to collect royalties through any
      statutory or compulsory licensing scheme can be waived, the Licensor
      reserves the exclusive right to collect such royalties for any exercise
      by You of the rights granted under this License if Your exercise of such
      rights is for a purpose or use which is otherwise than noncommercial as
      permitted under Section 4(b) and otherwise waives the right to collect
      royalties through any statutory or compulsory licensing scheme; and,
      Voluntary License Schemes. The Licensor reserves the right to collect
      royalties, whether individually or, in the event that the Licensor is a
      member of a collecting society that administers voluntary licensing
      schemes, via that society, from any exercise by You of the rights
      granted under this License that is for a purpose or use which is
      otherwise than noncommercial as permitted under Section 4(c).
      Except as otherwise agreed in writing by the Licensor or as may be otherwise
      permitted by applicable law, if You Reproduce, Distribute or Publicly
      Perform the Work either by itself or as part of any Adaptations or
      Collections, You must not distort, mutilate, modify or take other derogatory
      action in relation to the Work which would be prejudicial to the Original
      Author's honor or reputation. Licensor agrees that in those jurisdictions
      (e.g. Japan), in which any exercise of the right granted in Section 3(b) of
      this License (the right to make Adaptations) would be deemed to be a
      distortion, mutilation, modification or other derogatory action prejudicial
      to the Original Author's honor and reputation, the Licensor will waive or
      not assert, as appropriate, this Section, to the fullest extent permitted by
      the applicable national law, to enable You to reasonably exercise Your right
      under Section 3(b) of this License (right to make Adaptations) but not
      otherwise.

      5. Representations, Warranties and Disclaimer

      UNLESS OTHERWISE MUTUALLY AGREED TO BY THE PARTIES IN WRITING, LICENSOR OFFERS
      THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND CONCERNING
      THE WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, INCLUDING, WITHOUT
      LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY, FITNESS FOR A PARTICULAR
      PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF LATENT OR OTHER DEFECTS, ACCURACY,
      OR THE PRESENCE OF ABSENCE OF ERRORS, WHETHER OR NOT DISCOVERABLE. SOME
      JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF IMPLIED WARRANTIES, SO SUCH
      EXCLUSION MAY NOT APPLY TO YOU.

      6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE LAW, IN
      NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR ANY SPECIAL,
      INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES ARISING OUT OF THIS
      LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS BEEN ADVISED OF THE
      POSSIBILITY OF SUCH DAMAGES.

      7. Termination

      This License and the rights granted hereunder will terminate automatically
      upon any breach by You of the terms of this License. Individuals or entities
      who have received Adaptations or Collections from You under this License,
      however, will not have their licenses terminated provided such individuals
      or entities remain in full compliance with those licenses. Sections 1, 2, 5,
      6, 7, and 8 will survive any termination of this License. Subject to the
      above terms and conditions, the license granted here is perpetual (for the
      duration of the applicable copyright in the Work). Notwithstanding the
      above, Licensor reserves the right to release the Work under different
      license terms or to stop distributing the Work at any time; provided,
      however that any such election will not serve to withdraw this License (or
      any other license that has been, or is required to be, granted under the
      terms of this License), and this License will continue in full force and
      effect unless terminated as stated above.

      8. Miscellaneous

      Each time You Distribute or Publicly Perform the Work or a Collection, the
      Licensor offers to the recipient a license to the Work on the same terms and
      conditions as the license granted to You under this License. Each time You
      Distribute or Publicly Perform an Adaptation, Licensor offers to the
      recipient a license to the original Work on the same terms and conditions as
      the license granted to You under this License. If any provision of this
      License is invalid or unenforceable under applicable law, it shall not
      affect the validity or enforceability of the remainder of the terms of this
      License, and without further action by the parties to this agreement, such
      provision shall be reformed to the minimum extent necessary to make such
      provision valid and enforceable. No term or provision of this License shall
      be deemed waived and no breach consented to unless such waiver or consent
      shall be in writing and signed by the party to be charged with such waiver
      or consent. This License constitutes the entire agreement between the
      parties with respect to the Work licensed here. There are no understandings,
      agreements or representations with respect to the Work not specified here.
      Licensor shall not be bound by any additional provisions that may appear in
      any communication from You. This License may not be modified without the
      mutual written agreement of the Licensor and You. The rights granted under,
      and the subject matter referenced, in this License were drafted utilizing
      the terminology of the Berne Convention for the Protection of Literary and
      Artistic Works (as amended on September 28, 1979), the Rome Convention of
      1961, the WIPO Copyright Treaty of 1996, the WIPO Performances and
      Phonograms Treaty of 1996 and the Universal Copyright Convention (as revised
      on July 24, 1971). These rights and subject matter take effect in the
      relevant jurisdiction in which the License terms are sought to be enforced
      according to the corresponding provisions of the implementation of those
      treaty provisions in the applicable national law. If the standard suite of
      rights granted under applicable copyright law includes additional rights not
      granted under this License, such additional rights are deemed to be included
      in the License; this License is not intended to restrict the license of any
      rights under applicable law.



      -------------------------------------------------------------------------------
            BSD 2-Clause License (FreeBSD/Simplified)

      Applies to :
      - OpenLayers
      -------------------------------------------------------------------------------



      The BSD 2-Clause License The following is a BSD 2-Clause license template. To
      generate your own license, change the values of OWNER, ORGANIZATION and YEAR
      from their original values as given here, and substitute your own.

      Note: see also the BSD-3-Clause license.

      This prelude is not part of the license.

      = Regents of the University of California = University of California, Berkeley =
      1998

      In the original BSD license, both occurrences of the phrase "COPYRIGHT HOLDERS
      AND CONTRIBUTORS" in the disclaimer read "REGENTS AND CONTRIBUTORS".

      Here is the license template:

      Copyright (c) , All rights reserved.

      Redistribution and use in source and binary forms, with or without modification,
      are permitted provided that the following conditions are met:

      Redistributions of source code must retain the above copyright notice, this list
      of conditions and the following disclaimer. Redistributions in binary form must
      reproduce the above copyright notice, this list of conditions and the following
      disclaimer in the documentation and/or other materials provided with the
      distribution. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
      CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
      LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
      PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
      CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
      OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
      SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
      INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
      CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
      IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
      OF SUCH DAMAGE.      
      </pre>    
    `;    
  }

  let _innerHTML = "<a href=\"javascript:void(0)\" class=\"closebtn\" \
                       id=\"hideLicensePanel\" >&times;</a>";
  _innerHTML += "<div class=\"overlay-content\">";
  _innerHTML += "<div id=\"LicenseHeaderParent\">";
  _innerHTML += "<div id=\"LicenseContainer\" class=\"scrollWrapper\">";
  _innerHTML += this._licenseText();
  _innerHTML += "</div";
  _innerHTML += "</div";
  _innerHTML += "</div";
  overlay.setINNERHtml(_innerHTML);

  this.show = function() {
    overlay.show();
  };

  this.hide = function() {
    overlay.hide();
  };

  $("#hideLicensePanel").click(function(e) {
   overlay.hide();
  });
  
}

export{FITSHeaderTable, LicensePanel}