Whitespace

This commit is contained in:
Amir E. Aharoni
2013-01-02 16:28:42 +02:00
parent 680e14196d
commit 1f91a4c40c
3 changed files with 83 additions and 56 deletions

View File

@@ -25,7 +25,7 @@
* @param language string Language code * @param language string Language code
* @return Target language code if it's a redirect or false if it's not * @return Target language code if it's a redirect or false if it's not
*/ */
$.uls.data.isRedirect = function( language ) { $.uls.data.isRedirect = function ( language ) {
return ( $.uls.data.languages[language] !== undefined && return ( $.uls.data.languages[language] !== undefined &&
$.uls.data.languages[language].length === 1 ) ? $.uls.data.languages[language][0] : false; $.uls.data.languages[language].length === 1 ) ? $.uls.data.languages[language][0] : false;
}; };
@@ -35,7 +35,7 @@
* @param language string Language code * @param language string Language code
* @return string * @return string
*/ */
$.uls.data.getScript = function( language ) { $.uls.data.getScript = function ( language ) {
var target = $.uls.data.isRedirect( language ); var target = $.uls.data.isRedirect( language );
if ( target ) { if ( target ) {
@@ -50,7 +50,7 @@
* @param language string Language code * @param language string Language code
* @return array|string 'UNKNOWN' * @return array|string 'UNKNOWN'
*/ */
$.uls.data.getRegions = function( language ) { $.uls.data.getRegions = function ( language ) {
var target = $.uls.data.isRedirect( language ); var target = $.uls.data.isRedirect( language );
if ( target ) { if ( target ) {
@@ -65,7 +65,7 @@
* @param language string Language code * @param language string Language code
* @return string * @return string
*/ */
$.uls.data.getAutonym = function( language ) { $.uls.data.getAutonym = function ( language ) {
var target = $.uls.data.isRedirect( language ); var target = $.uls.data.isRedirect( language );
if ( target ) { if ( target ) {
@@ -79,7 +79,7 @@
* Returns all language codes and corresponding autonyms * Returns all language codes and corresponding autonyms
* @return array * @return array
*/ */
$.uls.data.getAutonyms = function() { $.uls.data.getAutonyms = function () {
var autonymsByCode = {}; var autonymsByCode = {};
for ( var language in $.uls.data.languages ) { for ( var language in $.uls.data.languages ) {
@@ -97,10 +97,10 @@
* Returns an array of all region codes. * Returns an array of all region codes.
* @return array * @return array
*/ */
$.uls.data.getAllRegions = function() { $.uls.data.getAllRegions = function () {
var allRegions = []; var allRegions = [];
for( var region in $.uls.data.regiongroups ) { for ( var region in $.uls.data.regiongroups ) {
allRegions.push( region ); allRegions.push( region );
} }
@@ -113,7 +113,7 @@
* @param script string * @param script string
* @return array of strings (languages codes) * @return array of strings (languages codes)
*/ */
$.uls.data.getLanguagesInScript = function( script ) { $.uls.data.getLanguagesInScript = function ( script ) {
return $.uls.data.getLanguagesInScripts( [ script ] ); return $.uls.data.getLanguagesInScripts( [ script ] );
}; };
@@ -122,7 +122,7 @@
* @param scripts array of strings * @param scripts array of strings
* @return array of strings (languages codes) * @return array of strings (languages codes)
*/ */
$.uls.data.getLanguagesInScripts = function( scripts ) { $.uls.data.getLanguagesInScripts = function ( scripts ) {
var languagesInScripts = []; var languagesInScripts = [];
for ( var language in $.uls.data.languages ) { for ( var language in $.uls.data.languages ) {
@@ -146,7 +146,7 @@
* @param region string * @param region string
* @return array of strings (languages codes) * @return array of strings (languages codes)
*/ */
$.uls.data.getLanguagesInRegion = function( region ) { $.uls.data.getLanguagesInRegion = function ( region ) {
return $.uls.data.getLanguagesInRegions( [ region ] ); return $.uls.data.getLanguagesInRegions( [ region ] );
}; };
@@ -155,7 +155,7 @@
* @param regions array of strings. * @param regions array of strings.
* @return array of strings (languages codes) * @return array of strings (languages codes)
*/ */
$.uls.data.getLanguagesInRegions = function( regions ) { $.uls.data.getLanguagesInRegions = function ( regions ) {
var languagesInRegions = []; var languagesInRegions = [];
for ( var language in $.uls.data.languages ) { for ( var language in $.uls.data.languages ) {
@@ -179,7 +179,7 @@
* @param groupNum number. * @param groupNum number.
* @return array of strings (languages codes) * @return array of strings (languages codes)
*/ */
$.uls.data.getLanguagesInRegionGroup = function( groupNum ) { $.uls.data.getLanguagesInRegionGroup = function ( groupNum ) {
return $.uls.data.getLanguagesInRegions( $.uls.data.getRegionsInGroup( groupNum ) ); return $.uls.data.getLanguagesInRegions( $.uls.data.getRegionsInGroup( groupNum ) );
}; };
@@ -189,7 +189,7 @@
* @param region string Region code * @param region string Region code
* @return associative array * @return associative array
*/ */
$.uls.data.getLanguagesByScriptInRegion = function( region ) { $.uls.data.getLanguagesByScriptInRegion = function ( region ) {
var languagesByScriptInRegion = {}; var languagesByScriptInRegion = {};
for ( var language in $.uls.data.languages ) { for ( var language in $.uls.data.languages ) {
@@ -199,6 +199,7 @@
if ( $.inArray( region, $.uls.data.getRegions( language ) ) !== -1 ) { if ( $.inArray( region, $.uls.data.getRegions( language ) ) !== -1 ) {
var script = $.uls.data.getScript( language ); var script = $.uls.data.getScript( language );
if ( languagesByScriptInRegion[script] === undefined ) { if ( languagesByScriptInRegion[script] === undefined ) {
languagesByScriptInRegion[script] = []; languagesByScriptInRegion[script] = [];
} }
@@ -215,7 +216,7 @@
* @param region string Region code * @param region string Region code
* @return associative array * @return associative array
*/ */
$.uls.data.getLanguagesByScriptGroupInRegion = function( region ) { $.uls.data.getLanguagesByScriptGroupInRegion = function ( region ) {
return $.uls.data.getLanguagesByScriptGroupInRegions( [ region ] ); return $.uls.data.getLanguagesByScriptGroupInRegions( [ region ] );
}; };
@@ -225,7 +226,7 @@
* grouped by script group. * grouped by script group.
* @return associative array * @return associative array
*/ */
$.uls.data.getAllLanguagesByScriptGroup = function() { $.uls.data.getAllLanguagesByScriptGroup = function () {
return $.uls.data.getLanguagesByScriptGroupInRegions( $.uls.data.getAllRegions() ); return $.uls.data.getLanguagesByScriptGroupInRegions( $.uls.data.getAllRegions() );
}; };
@@ -234,7 +235,7 @@
* @param languages Array of language codes * @param languages Array of language codes
* @return {Object} Array of languages indexed by script codes * @return {Object} Array of languages indexed by script codes
*/ */
$.uls.data.getLanguagesByScriptGroup = function( languages ) { $.uls.data.getLanguagesByScriptGroup = function ( languages ) {
var languagesByScriptGroup = {}, var languagesByScriptGroup = {},
scriptGroup, scriptGroup,
language, language,
@@ -243,12 +244,15 @@
for ( scriptGroup in $.uls.data.scriptgroups ) { for ( scriptGroup in $.uls.data.scriptgroups ) {
for ( language in languages ) { for ( language in languages ) {
langScriptGroup = $.uls.data.getScriptGroupOfLanguage( language ); langScriptGroup = $.uls.data.getScriptGroupOfLanguage( language );
if( langScriptGroup !== scriptGroup ) {
if ( langScriptGroup !== scriptGroup ) {
continue; continue;
} }
if ( !languagesByScriptGroup[scriptGroup] ) { if ( !languagesByScriptGroup[scriptGroup] ) {
languagesByScriptGroup[scriptGroup] = []; languagesByScriptGroup[scriptGroup] = [];
} }
languagesByScriptGroup[scriptGroup].push( language ); languagesByScriptGroup[scriptGroup].push( language );
} }
} }
@@ -262,7 +266,7 @@
* @param regions array of strings - region codes * @param regions array of strings - region codes
* @return associative array * @return associative array
*/ */
$.uls.data.getLanguagesByScriptGroupInRegions = function( regions ) { $.uls.data.getLanguagesByScriptGroupInRegions = function ( regions ) {
var languagesByScriptGroupInRegions = {}; var languagesByScriptGroupInRegions = {};
for ( var language in $.uls.data.languages ) { for ( var language in $.uls.data.languages ) {
@@ -292,7 +296,7 @@
* region, script group and script. * region, script group and script.
* @return associative array * @return associative array
*/ */
$.uls.data.getAllLanguagesByRegionAndScript = function() { $.uls.data.getAllLanguagesByRegionAndScript = function () {
var allLanguagesByRegionAndScript = {}, var allLanguagesByRegionAndScript = {},
region, region,
regionGroup; regionGroup;
@@ -340,7 +344,7 @@
* @param groupNum int * @param groupNum int
* @return array of strings * @return array of strings
*/ */
$.uls.data.getRegionsInGroup = function( groupNum ) { $.uls.data.getRegionsInGroup = function ( groupNum ) {
var regionsInGroup = []; var regionsInGroup = [];
for ( var region in $.uls.data.regiongroups ) { for ( var region in $.uls.data.regiongroups ) {
@@ -359,7 +363,7 @@
* @param script string Script code * @param script string Script code
* @return string script group name * @return string script group name
*/ */
$.uls.data.getGroupOfScript = function( script ) { $.uls.data.getGroupOfScript = function ( script ) {
for ( var group in $.uls.data.scriptgroups ) { for ( var group in $.uls.data.scriptgroups ) {
if ( $.inArray( script, $.uls.data.scriptgroups[group] ) !== -1 ) { if ( $.inArray( script, $.uls.data.scriptgroups[group] ) !== -1 ) {
return group; return group;
@@ -374,7 +378,7 @@
* @param language string Language code * @param language string Language code
* @return string script group name * @return string script group name
*/ */
$.uls.data.getScriptGroupOfLanguage = function( language ) { $.uls.data.getScriptGroupOfLanguage = function ( language ) {
return $.uls.data.getGroupOfScript( $.uls.data.getScript( language ) ); return $.uls.data.getGroupOfScript( $.uls.data.getScript( language ) );
}; };
@@ -384,9 +388,10 @@
* @param a string Language code * @param a string Language code
* @param b string Language code * @param b string Language code
*/ */
$.uls.data.sortByAutonym = function( a, b ) { $.uls.data.sortByAutonym = function ( a, b ) {
var autonymA = $.uls.data.getAutonym( a ) || a, var autonymA = $.uls.data.getAutonym( a ) || a,
autonymB = $.uls.data.getAutonym( b ) || b; autonymB = $.uls.data.getAutonym( b ) || b;
return ( autonymA.toLowerCase() < autonymB.toLowerCase() ) ? -1 : 1; return ( autonymA.toLowerCase() < autonymB.toLowerCase() ) ? -1 : 1;
}; };
@@ -395,7 +400,7 @@
* @param language string Language code * @param language string Language code
* @return boolean * @return boolean
*/ */
$.uls.data.isRtl = function( language ) { $.uls.data.isRtl = function ( language ) {
return $.inArray( $.uls.data.getScript( language ), $.uls.data.rtlscripts ) !== -1; return $.inArray( $.uls.data.getScript( language ), $.uls.data.rtlscripts ) !== -1;
}; };
@@ -404,7 +409,7 @@
* @param language string Language code * @param language string Language code
* @return string * @return string
*/ */
$.uls.data.getDir = function( language ) { $.uls.data.getDir = function ( language ) {
return $.uls.data.isRtl( language ) ? 'rtl' : 'ltr'; return $.uls.data.isRtl( language ) ? 'rtl' : 'ltr';
}; };
@@ -413,8 +418,7 @@
* @param territory string Territory code * @param territory string Territory code
* @return list of language codes * @return list of language codes
*/ */
$.uls.data.getLanguagesInTerritory = function( territory ) { $.uls.data.getLanguagesInTerritory = function ( territory ) {
return $.uls.data.territories[territory]; return $.uls.data.territories[territory];
}; };
} ( jQuery ) ); } ( jQuery ) );

View File

@@ -19,8 +19,8 @@
* @licence MIT License * @licence MIT License
*/ */
( function( $ ) { ( function ( $ ) {
"use strict"; 'use strict';
var noResultsTemplate = '\ var noResultsTemplate = '\
<div class="twelve columns uls-no-results-view">\ <div class="twelve columns uls-no-results-view">\
@@ -45,12 +45,12 @@
</div>\ </div>\
</div>'; </div>';
var LanguageCategoryDisplay = function( element, options ) { var LanguageCategoryDisplay = function ( element, options ) {
this.$element = $( element ); this.$element = $( element );
this.options = $.extend( {}, $.fn.lcd.defaults, options ); this.options = $.extend( {}, $.fn.lcd.defaults, options );
this.$element.addClass( 'lcd' ); this.$element.addClass( 'lcd' );
this.regionDivs = {}; this.regionDivs = {};
this.$element.append( $(noResultsTemplate) ); this.$element.append( $( noResultsTemplate ) );
this.$noResults = this.$element.find( 'div.uls-no-results-view' ); this.$noResults = this.$element.find( 'div.uls-no-results-view' );
this.render(); this.render();
this.listen(); this.listen();
@@ -59,7 +59,7 @@
LanguageCategoryDisplay.prototype = { LanguageCategoryDisplay.prototype = {
constructor: LanguageCategoryDisplay, constructor: LanguageCategoryDisplay,
append: function( langCode, regionCode ) { append: function ( langCode, regionCode ) {
this.addToRegion( langCode, regionCode ); this.addToRegion( langCode, regionCode );
this.$noResults.hide(); this.$noResults.hide();
}, },
@@ -71,7 +71,7 @@
* @param langCode * @param langCode
* @param region Optional region * @param region Optional region
*/ */
addToRegion: function( langCode, region ) { addToRegion: function ( langCode, region ) {
var lcd = this, var lcd = this,
language = lcd.options.languages[langCode], language = lcd.options.languages[langCode],
langName = $.uls.data.getAutonym( langCode ) || language || langCode, langName = $.uls.data.getAutonym( langCode ) || language || langCode,
@@ -120,12 +120,13 @@
$column.append( $li ); $column.append( $li );
} }
}, },
/** /**
* Get a column to add language. * Get a column to add language.
* @param regionCode string The region code * @param regionCode string The region code
* @param forceNew bool whether a new column must be created or not * @param forceNew bool whether a new column must be created or not
*/ */
getColumn: function( regionCode, forceNew ) { getColumn: function ( regionCode, forceNew ) {
var $divRegionCode, $rowDiv, $ul; var $divRegionCode, $rowDiv, $ul;
forceNew = forceNew || false; forceNew = forceNew || false;
@@ -151,7 +152,7 @@
return $ul; return $ul;
}, },
render: function() { render: function () {
var $section, $sectionTitle, var $section, $sectionTitle,
lcd = this, lcd = this,
regions = { regions = {
@@ -165,11 +166,13 @@
PA: 'Pacific' PA: 'Pacific'
}; };
$.each( $.uls.data.regiongroups, function( regionCode, regionIndex ) { $.each( $.uls.data.regiongroups, function ( regionCode, regionIndex ) {
$section = $( '<div>' ).addClass( 'twelve columns uls-lcd-region-section' ).prop( 'id', regionCode ); $section = $( '<div>' ).addClass( 'twelve columns uls-lcd-region-section' ).prop( 'id', regionCode );
$sectionTitle = $( '<h3 data-i18n="uls-region-'+ regionCode+'">' )
$sectionTitle = $( '<h3 data-i18n="uls-region-' + regionCode + '">' )
.addClass( 'eleven columns uls-lcd-region-section uls-lcd-region-title offset-by-one' ) .addClass( 'eleven columns uls-lcd-region-section uls-lcd-region-title offset-by-one' )
.text( regions[regionCode] ); .text( regions[regionCode] );
$section.append( $sectionTitle ); $section.append( $sectionTitle );
lcd.$element.append( $section ); lcd.$element.append( $section );
$section.hide(); $section.hide();
@@ -180,11 +183,11 @@
this.i18n(); this.i18n();
}, },
i18n: function( ) { i18n: function ( ) {
this.$element.find( '[data-i18n]' ).i18n(); this.$element.find( '[data-i18n]' ).i18n();
}, },
quicklist: function() { quicklist: function () {
if ( $.isFunction( this.options.quickList ) ) { if ( $.isFunction( this.options.quickList ) ) {
this.options.quickList = this.options.quickList(); this.options.quickList = this.options.quickList();
} }
@@ -197,6 +200,7 @@
var quickList = this.options.quickList; var quickList = this.options.quickList;
quickList = quickList.slice( 0, 16 ); quickList = quickList.slice( 0, 16 );
quickList.sort( $.uls.data.sortByAutonym ); quickList.sort( $.uls.data.sortByAutonym );
var $quickListSection = $( '<div>' ).addClass( 'twelve columns uls-lcd-region-section' ).prop( 'id', 'uls-lcd-quicklist' ); var $quickListSection = $( '<div>' ).addClass( 'twelve columns uls-lcd-region-section' ).prop( 'id', 'uls-lcd-quicklist' );
var $quickListSectionTitle = $( '<h3 data-i18n="uls-common-languages">' ) var $quickListSectionTitle = $( '<h3 data-i18n="uls-common-languages">' )
.addClass( 'eleven columns uls-lcd-region-section uls-lcd-region-title offset-by-one' ) .addClass( 'eleven columns uls-lcd-region-section uls-lcd-region-title offset-by-one' )
@@ -204,6 +208,7 @@
$quickListSection.append( $quickListSectionTitle ); $quickListSection.append( $quickListSectionTitle );
this.$element.prepend( $quickListSection ); this.$element.prepend( $quickListSection );
this.regionDivs[ 'quick' ] = $quickListSection; this.regionDivs[ 'quick' ] = $quickListSection;
for ( var i = 0; i < quickList.length; i++) { for ( var i = 0; i < quickList.length; i++) {
var $column = this.getColumn( 'quick', i % 4 === 0 ); var $column = this.getColumn( 'quick', i % 4 === 0 );
var langCode = quickList[i]; var langCode = quickList[i];
@@ -220,27 +225,29 @@
); );
$column.append( $li ); $column.append( $li );
} }
$quickListSection.show(); $quickListSection.show();
$quickListSectionTitle.i18n(); $quickListSectionTitle.i18n();
return $quickListSection; return $quickListSection;
}, },
show: function() { show: function () {
if ( !this.regionDivs ) { if ( !this.regionDivs ) {
this.render(); this.render();
} }
}, },
empty: function() { empty: function () {
this.$element.find( 'div.uls-language-block' ).remove(); this.$element.find( 'div.uls-language-block' ).remove();
this.$element.find( 'div.uls-lcd-region-section' ).hide(); this.$element.find( 'div.uls-lcd-region-section' ).hide();
}, },
focus: function() { focus: function () {
this.$element.focus(); this.$element.focus();
}, },
noResults: function() { noResults: function () {
this.$noResults.show(); this.$noResults.show();
var $suggestions = this.quicklist(); var $suggestions = this.quicklist();
$suggestions.find( 'h3' ) $suggestions.find( 'h3' )
@@ -254,7 +261,7 @@
var lcd = this; var lcd = this;
if ( this.options.clickhandler ) { if ( this.options.clickhandler ) {
this.$element.on( 'click', 'div.row li', function() { this.$element.on( 'click', 'div.row li', function () {
lcd.options.clickhandler.call( this, $( this ).data( 'code' ) ); lcd.options.clickhandler.call( this, $( this ).data( 'code' ) );
} ); } );
} }
@@ -264,6 +271,7 @@
var $ulsLanguageList = $( this ), var $ulsLanguageList = $( this ),
scrollTop = $ulsLanguageList.position().top, scrollTop = $ulsLanguageList.position().top,
scrollBottom = $ulsLanguageList.height(); scrollBottom = $ulsLanguageList.height();
if ( lcd.options.lazyload && lcd.options.source.val() === '' ) { if ( lcd.options.lazyload && lcd.options.source.val() === '' ) {
if ( this.offsetHeight + this.scrollTop >= this.scrollHeight / 2 ) { if ( this.offsetHeight + this.scrollTop >= this.scrollHeight / 2 ) {
lcd.$element.trigger( 'scrollend' ); lcd.$element.trigger( 'scrollend' );
@@ -279,6 +287,7 @@
if ( top - padding <= scrollTop && height > scrollBottom ) { if ( top - padding <= scrollTop && height > scrollBottom ) {
inviewRegion = $lcdRegionSection.attr( 'id' ); inviewRegion = $lcdRegionSection.attr( 'id' );
return true; return true;
} }
} ); } );
@@ -290,8 +299,8 @@
} }
}; };
$.fn.lcd = function( option ) { $.fn.lcd = function ( option ) {
return this.each( function() { return this.each( function () {
var $this = $( this ), var $this = $( this ),
data = $this.data( 'lcd' ), data = $this.data( 'lcd' ),
options = typeof option === 'object' && option; options = typeof option === 'object' && option;
@@ -299,6 +308,7 @@
if ( !data ) { if ( !data ) {
$this.data( 'lcd', ( data = new LanguageCategoryDisplay( this, options ) ) ); $this.data( 'lcd', ( data = new LanguageCategoryDisplay( this, options ) ) );
} }
if ( typeof option === 'string') { if ( typeof option === 'string') {
data[option](); data[option]();
} }

View File

@@ -28,7 +28,7 @@
* The attached element should have data-regiongroup attribute * The attached element should have data-regiongroup attribute
* that defines the regiongroup for the selector. * that defines the regiongroup for the selector.
*/ */
var RegionSelector = function( element, options ) { var RegionSelector = function ( element, options ) {
this.$element = $( element ); this.$element = $( element );
this.options = $.extend( {}, $.fn.regionselector.defaults, options ); this.options = $.extend( {}, $.fn.regionselector.defaults, options );
this.$element.addClass( 'regionselector' ); this.$element.addClass( 'regionselector' );
@@ -42,32 +42,36 @@
RegionSelector.prototype = { RegionSelector.prototype = {
constructor: RegionSelector, constructor: RegionSelector,
init: function() { init: function () {
var region = this.$element.data( 'region' ); var region = this.$element.data( 'region' );
this.regions = $.uls.data.getRegionsInGroup( this.regionGroup ); this.regions = $.uls.data.getRegionsInGroup( this.regionGroup );
if ( region ) { if ( region ) {
this.regions.push( region ); this.regions.push( region );
} }
}, },
test: function( langCode ) { test: function ( langCode ) {
var langRegions = $.uls.data.getRegions( langCode ), var langRegions = $.uls.data.getRegions( langCode ),
region; region;
for ( var i = 0; i < this.regions.length; i++ ) { for ( var i = 0; i < this.regions.length; i++ ) {
region = this.regions[i]; region = this.regions[i];
if ( $.inArray( region, langRegions ) >= 0 ) { if ( $.inArray( region, langRegions ) >= 0 ) {
this.render( langCode, region ); this.render( langCode, region );
this.cache[langCode] = region; this.cache[langCode] = region;
return; return;
} }
} }
}, },
show: function() { show: function () {
if ( this.cache ) { if ( this.cache ) {
// If the result cache is present, render the results from there. // If the result cache is present, render the results from there.
var result = null; var result = null;
for ( result in this.cache ) { for ( result in this.cache ) {
this.render( result, this.cache[result] ); this.render( result, this.cache[result] );
} }
@@ -75,11 +79,14 @@
this.cache = {}; this.cache = {};
// Get the languages grouped by script group // Get the languages grouped by script group
var languagesByScriptGroup = $.uls.data.getLanguagesByScriptGroup( this.options.languages ); var languagesByScriptGroup = $.uls.data.getLanguagesByScriptGroup( this.options.languages );
for ( var scriptGroup in languagesByScriptGroup ) { for ( var scriptGroup in languagesByScriptGroup ) {
// Get the languages for the script group // Get the languages for the script group
var languages = languagesByScriptGroup[scriptGroup]; var languages = languagesByScriptGroup[scriptGroup];
// Sort it based on autonym // Sort it based on autonym
languages.sort( $.uls.data.sortByAutonym ); languages.sort( $.uls.data.sortByAutonym );
for ( var i = 0; i < languages.length; i++ ) { for ( var i = 0; i < languages.length; i++ ) {
// Check whether it belongs to the region // Check whether it belongs to the region
this.test( languages[i] ); this.test( languages[i] );
@@ -92,11 +99,13 @@
} }
}, },
render: function( langCode, region ) { render: function ( langCode, region ) {
var $target = this.options.$target; var $target = this.options.$target;
if ( !$target ) { if ( !$target ) {
return; return;
} }
$target.append( langCode, region ); $target.append( langCode, region );
}, },
@@ -113,21 +122,23 @@
var $nextRegion = $( '#uls-region-' + nextRegiongroup ); var $nextRegion = $( '#uls-region-' + nextRegiongroup );
var next = $nextRegion.length && $nextRegion.data( 'regionselector' ); var next = $nextRegion.length && $nextRegion.data( 'regionselector' );
if ( next ) { if ( next ) {
next.show(); next.show();
} }
}, 100 ); }, 100 );
return false; return false;
}, },
listen: function() { listen: function () {
this.$element.on( 'click', $.proxy( this.click, this ) ); this.$element.on( 'click', $.proxy( this.click, this ) );
this.options.$target.$element.bind( 'scrollend', $.proxy( this.next, this) ); this.options.$target.$element.bind( 'scrollend', $.proxy( this.next, this) );
}, },
click: function( e ) { click: function ( e ) {
// Don't do anything if a region is selected already // Don't do anything if a region is selected already
if( this.$element.hasClass( 'active' ) ) { if ( this.$element.hasClass( 'active' ) ) {
return; return;
} }
@@ -136,6 +147,7 @@
this.show(); this.show();
// Make the selected region (and it only) active // Make the selected region (and it only) active
$( '.regionselector' ).removeClass( 'active' ); $( '.regionselector' ).removeClass( 'active' );
if ( this.regionGroup ) { if ( this.regionGroup ) {
// if there is a region group, make it active. // if there is a region group, make it active.
this.$element.addClass( 'active' ); this.$element.addClass( 'active' );
@@ -145,8 +157,8 @@
/* RegionSelector plugin definition */ /* RegionSelector plugin definition */
$.fn.regionselector = function( option ) { $.fn.regionselector = function ( option ) {
return this.each( function() { return this.each( function () {
var $this = $( this ), var $this = $( this ),
data = $this.data( 'regionselector' ), data = $this.data( 'regionselector' ),
options = typeof option === 'object' && option; options = typeof option === 'object' && option;
@@ -154,6 +166,7 @@
if ( !data ) { if ( !data ) {
$this.data( 'regionselector', ( data = new RegionSelector( this, options ) ) ); $this.data( 'regionselector', ( data = new RegionSelector( this, options ) ) );
} }
if ( typeof option === 'string' ) { if ( typeof option === 'string' ) {
data[option](); data[option]();
} }