
/*****************************************************************************/

  This README is an attempt to keep the house clean under the 'js' directory.

/*****************************************************************************/

Directory contents
-------------------
+ js/

  - admin.js :
    Code for tasks performed in the administration area.

    Also sorts select elements (both normal and multiple) where language names are
    involved. This is done in JavaScript because currently it's not possible
    to sort them within Django.
    To sort a new select element, add the end of the element id to the 'ids'
    array.

  - captcha.js :
    Code for interacting with the site-wide captcha.

  - common.js :
    Common code that is included in every page.

  - contact.js :
    Contact form code.

  - editor.js :
    Code that sets up the editor and handles all the actions involved there.
    This includes unit navigation, submission, suggestions' handling, copying
    functions, fuzzy/unfuzzy, and several other helper stuff.

  - stats.js :
    Statistics/overview browser page code.

  - search.js :
    Search functionality, shared across pages.

  - utils.js :
    Common utilities.

  + lookup/

    - wikipedia.js :
      Wikipedia lookup backend.

  + mt/

    - apertium.js :
      Script to load translation suggestions using the Apertium service.

    - google-translate.js :
      Script to load translation suggestions using the Google Translate service.

  + vendor/

    - diff_match_patch.js :
      Google's Diff, Match, and Patch libraries for plain text.
      It's used for suggestion's diff highlighting.

      Version 20120106.

      https://code.google.com/p/google-diff-match-patch/

    - iso8601.js :
      Date.parse with progressive enhancement for ISO 8601.

      https://github.com/csnover/js-iso8601

    - shortcut.js :
      Small library to ease adding keyboard shortcuts.

      http://www.openjs.com/scripts/events/keyboard_shortcuts/

    - sorttable.js :
      Sorts tables according to its values. Used in the homepage as well as on the
      languages and projects listings. It has some customisations to support
      zebra stripes once the sort is done (using jQuery). The icons used on the
      table headings are custom code too. We also customized it to handle our tag
      rows.

      http://www.kryogenix.org/code/browser/sorttable/

    - spin.js :
      A spinning activity indicator.

      Version 1.3.2

      http://fgnass.github.io/spin.js/

    - underscore.js :
      Utility library providing functional programming support.

      Version 1.6

      http://underscorejs.org/

    + bootstrap/

      - bootstrap-alert.js :
        Dismiss functionality for all alert messages.

        Version 2.1.1

        https://github.com/twitter/bootstrap/blob/master/js/bootstrap-alert.js

      - bootstrap-transition.js :
        Transition support for bootstrap scripts.

        Version 2.1.1

        https://github.com/twitter/bootstrap/blob/master/js/bootstrap-transition.js

    + backbone/

      - backbone.js :
        Library for providing structure to web applications.

        Version 1.0.0

        http://backbonejs.org

      - backbone-relational.js :
        Relationships for Backbone models.

        Version 0.8.5

        http://backbonerelational.org

    + jquery/

      - jquery.js :
        The jQuery library, version 2.0.3.

        https://github.com/jquery/jquery

      - jquery.bidi.js :
        jQuery plugin used to automatically set line direction of news
        item based on their content.

        http://plugins.jquery.com/project/bidi

      - jquery.caret.js :
        jQuery plugin to write text on top of the selected text or just after
        the caret position.

        Using patched version to remove `$.browser` calls.

        http://www.jquery-plugin.buss.hk/my-plugins/jquery-caret-plugin

      - jquery.easing.js :
        jQuery plugin that provides dfferent easing (animation) formulas.

        http://gsgd.co.uk/sandbox/jquery/easing/

      - jquery.highlighRegex.js :
        Plugin to highlight text on selected elements using regular expressions.

        https://github.com/jbr/jQuery.highlightRegex

      - jquery.history.js :
        Plugin to handle AJAX history using hashes.

        Using patched version to remove `$.browser` calls.

        http://github.com/tkyk/jquery-history-plugin/

      - jquery.jsonp.js :
        Alternative solution to jQuery's JSONP support.

        jQuery's JSONP support has some limitations (the abort method doesn't
        really abort), and this plugin tries to address those issues.

        These features may be implemented in jQuery core at some stage.

        Using version 2.4.0.

        https://github.com/jaubourg/jquery-jsonp

      - jquery.magnific-popup.js :
        Lightbox overlay popups to display all sorts of content: images,
        HTML, AJAX data, ...

        Using v0.9.9 built with their 'Build Tool' with the following features:
        Inline, Image, Ajax, Iframe, Gallery, High-DPI.

        http://dimsemenov.com/plugins/magnific-popup/

      - jquery.select2.js :
        jQuery-based replacement for select boxes.

        Using version 3.4.5.

        https://github.com/ivaynberg/select2/

      - jquery.serializeObject.js :
        A method for serializing forms directly into objects.

        Whereas jQuery’s built-in .serializeArray() method serializes a form
        into an array, .serializeObject() serializes a form into an
        (arguably more useful) object.

        http://benalman.com/projects/jquery-misc-plugins/#serializeobject

      - jquery.textarea-expander.js :
        jQuery plugin used in the translate page textareas.

        Using patched version to remove `$.browser` calls.

        http://blogs.sitepointstatic.com/examples/tech/textarea-expander/jquery.textarea-expander.js

      - jquery.textcomplete.js
        Autocomplete for Textarea.

        Using version 0.1.3.

        Introduces autocompleting power to textareas, like a GitHub comment
        form has.

        https://github.com/yuku-t/jquery-textcomplete

      - jquery.tipsy.js :
        Facebook-style tooltips for jQuery.

        Using revision 718b348872 from branch bugfix/remnant-tips @ julen/tipsy fork.

        https://github.com/julen/tipsy

      - jquery.utils.js :
        Custom utilities that extend jQuery's capabilities.
