(function( $ ) { "use strict"; var LanguageCategoryDisplay = function( element, options ) { this.$element = $( element ); this.options = $.extend( {}, $.fn.lcd.defaults, options ); this.$element.addClass( 'lcd' ); this.show(); this.listen(); }; LanguageCategoryDisplay.prototype = { constructor: LanguageCategoryDisplay, append: function( langCode, regionGroup ) { var that = this; this.addToRegion( langCode, regionGroup ); }, addToRegion: function( langCode, regionGroup ) { var that = this, language = $.uls.data.languages[langCode]; if ( !language ) { console.log( "Definition for " + langCode + " was not found in the language database." ); return; } var langName = that.options.languages[langCode]; var regions = $.uls.data.regions( langCode ); for ( var i = 0; i < regions.length; i++ ) { var regionCode = regions[i]; if ( regionGroup && regionCode !== regionGroup ) { continue; } var $li = $( '
  • ' ) .data( 'code', langCode ) .append( $( '' ).prop( 'href', '#' ).html( langName ) ); that.getColumn( regionCode ).append( $li ); if ( that.options.clickhandler ) { $li.click( function() { that.options.clickhandler.call( this, langCode ); } ); } } }, getColumn: function( regionCode ) { var $ul = $( "div#" + regionCode ).find( 'ul:last' ); if ( $ul.length === 0 || $ul.find( 'li' ).length >= 10) { $ul = $( '