$(function() { 'use strict'; var defaultTranslation = 'en', translations = {'en': {title: 'English', code: 'en'},'zh': {title: '简体中文', code: 'zh'},'es': {title: 'Español', code: 'es'}}; window.getLocale = function () { if (!localStorage) { return defaultTranslation; } if (location.search !== '') { localStorage.locale = translations[location.search.replace('?locale=', '')].code; } return localStorage.locale === undefined ? defaultTranslation : localStorage.locale; }; function main() { $(window).scroll(showGotoTop); $(window).resize(showGotoTop); $('.goto-top').click(function() { document.body.scrollTop = 0; document.documentElement.scrollTop = 0; return false; }); initLocale(); initScrollspy(); showGotoTop(); $('#bulletin').bulletin(); } function initLocale() { var $locale = $('#locale'), translation = {}; if (!localStorage) { $locale.hide(); return; } translation = translations[getLocale()]; setGlobalLanguage($locale, translation.title, translation.code); $('[data-locale]').click(function () { localStorage.locale = $(this).data('locale'); location.reload(true); }); } function setGlobalLanguage($locale, text, languageCode) { var translationsArray = $.map(translations, function(value, index) { return [value]; }); for(var i = 0; i < translationsArray.length; i++) { if(translationsArray[i].code !== languageCode) { $locale.find('[data-locale="'+ translationsArray[i].code + '"]').removeClass('active').end() .find('.dropdown-toggle img').removeClass('flag-'+ translationsArray[i].code +'').end(); } } $locale.find('.language').text(text).end() .find('[data-locale="'+languageCode + '"]').addClass('active').end() .find('.dropdown-toggle img').addClass('flag-'+ languageCode +'').end(); $('[data-'+ languageCode + ']').each(function () { $(this).html($(this).data(languageCode)); }); } function initScrollspy() { var $window = $(window), $body = $(document.body), html = []; $('.page-header').find('h1, h2').each(function (i) { var $this = $(this), parent = $this.is('h1'), link = '' + $.trim($this.text()) + ''; if (parent) { if (i > 0) { html.push(''); } html.push('