|
|
(10 intermediate revisions by 3 users not shown) |
Line 1: |
Line 1: |
| /* Any JavaScript here will be loaded for all users on every page load. */ | | /* Any JavaScript here will be loaded for all users on every page load. */ |
| + | var ggTopLink = 'https://store.allsetlearning.com?utm_source=wiki&utm_medium=wiki-ad&utm_campaign=pronwiki' |
| + | var ggTopImg = '/pronwiki/skins/allset/assets/test/gg-top-PronPacks.png'; |
| + | var ggMidLink = 'https://store.allsetlearning.com?utm_source=wiki&utm_medium=wiki-ad&utm_campaign=pronwiki'; |
| + | var ggMidImg = '/pronwiki/skins/allset/assets/test/gg-mid-PronPacks.png'; |
| + | var ggBotLink = 'https://store.allsetlearning.com?utm_source=wiki&utm_medium=wiki-ad&utm_campaign=pronwiki'; |
| + | var ggBotImg = '/pronwiki/skins/allset/assets/test/gg-bot-PronPacks.png'; |
| | | |
− | var audioEndedListener = function() { | + | var insertGg = function() { |
− | var $audioDiv = $('.pinyin-table-audio-container'); | + | console.log('inserting gg'); |
− | if ($audioDiv.children().length>1) { | + | if (ggTopLink && ggTopImg) { |
− | $audioDiv.children().get(1).play(); | + | $('#gg-top').append('<a href="' + ggTopLink + '"><img src="' + ggTopImg + '" /></a>'); |
| } | | } |
− | $(this).remove();
| + | if (ggMidLink && ggMidImg) { |
− | if ($audioDiv.children().length>1) { | + | $('#gg-mid').append('<a href="' + ggMidLink + '"><img src="' + ggMidImg + '" /></a>'); |
− | $audioDiv.children().get(1).pause();
| |
− | $audioDiv.children().get(1).load();
| |
− | } else {
| |
− | $('.playing-audio').removeClass('playing-audio'); | |
| } | | } |
− | };
| + | if (ggBotLink && ggBotImg) { |
− | var audioCanPlayListener = function() {
| + | $('#gg-bot').append('<a href="' + ggBotLink + '"><img src="' + ggBotImg + '" /></a>'); |
− | if (this===$('.pinyin-table-audio-container audio:last-child').get(0)) {
| |
− | console.log('Removing loading-audio class');
| |
− | $('.pinyin-table').removeClass('loading-audio');
| |
| } | | } |
− | }; | + | } |
− | | + | $(function() { |
− | /* Add tone marks */
| + | insertGg(); |
− | var vowelAddTone = function(vowel,number) {
| |
− | var tones = ['āēīōūǖ',
| |
− | 'áéíóúǘ',
| |
− | 'ǎěǐǒǔǚ',
| |
− | 'àèìòùǜ'][number-1]
| |
− | return tones['aeiouü'.indexOf(vowel)]
| |
− | };
| |
− | var syllableAddTone = function(syllable,number) {
| |
− | if (syllable.indexOf("a")!==-1) {
| |
− | return syllable.substr(0,syllable.indexOf("a")) + vowelAddTone('a',number) + syllable.substr(syllable.indexOf("a")+1,syllable.length);
| |
− | } else if (syllable.indexOf("e")!==-1) {
| |
− | return syllable.substr(0,syllable.indexOf("e")) + vowelAddTone('e',number) + syllable.substr(syllable.indexOf("e")+1,syllable.length);
| |
− | } else if (syllable.indexOf("ou")!==-1) {
| |
− | return syllable.substr(0,syllable.indexOf("o")) + vowelAddTone('e',number) + syllable.substr(syllable.indexOf("o")+1,syllable.length);
| |
− | } else {
| |
− | var vowels = 'aeiouü';
| |
− | var vowelCount = 0
| |
− | for (var i=0; i<syllable.length; i++) {
| |
− | if (vowels.indexOf(syllable[i])!==-1) {
| |
− | vowelCount++;
| |
− | }
| |
− | }
| |
− | if (vowelCount===1) {
| |
− | for (var i=0; i<vowels.length; i++) {
| |
− | if (syllable.indexOf(vowels[i])!==-1) {
| |
− | return syllable.substr(0,syllable.indexOf(vowels[i])) + vowelAddTone(syllable[syllable.indexOf(vowels[i])],number) + syllable.substr(syllable.indexOf(vowels[i])+1,syllable.length);
| |
− | }
| |
− | }
| |
− | } else {
| |
− | var first_vowel_index = 1000;
| |
− | for (var i=0; i<vowels.length; i++) {
| |
− | if (syllable.indexOf(vowels[i])!==-1 && syllable.indexOf(vowels[i])<first_vowel_index) {
| |
− | first_vowel_index = syllable.indexOf(vowels[i])
| |
− | }
| |
− | }
| |
− | return syllable.substr(0,first_vowel_index+1) + vowelAddTone(syllable[first_vowel_index+1],number) + syllable.substr(first_vowel_index+2,syllable.length);
| |
− | }
| |
− | }
| |
− | };
| |
− | | |
− | /*pinyin table scripts*/
| |
− | $(document).ready( function() {
| |
− | | |
− | $('.table-link').hide();
| |
− | $('.table-ipa').hide();
| |
− | $('.table-zhuyin').hide();
| |
− | $('.table-wade-giles').hide();
| |
− | $('.col-placeholder').hide();
| |
− | | |
− | //$('#pinyin-chart-settings .additional-settings').children().hide();
| |
− | | |
− | //Toggle additional settings
| |
− | $('#pinyin-chart-settings .additional-settings-label').hover( function() {
| |
− | $(this).css('background-color','rgba(0,0,0,0.15)');
| |
− | $(this).css('cursor','pointer');
| |
− | }, function () {
| |
− | $(this).css('background-color','#F5F5F5');
| |
− | $(this).css('cursor','initial');
| |
− | }).click( function() {
| |
− | $('#pinyin-chart-settings .additional-settings').children().slideToggle();
| |
− | });
| |
− | | |
− | //highlight row and col of hovered cell
| |
− | $('#pinyin-table td').hover( function() {
| |
− | if ($(this).children('div.table-pinyin').length && $('input[name="chart-mode"]:checked').val()==="audio") {
| |
− | $(this).addClass('table-extra-highlight');
| |
− | $(this).siblings().addClass('table-highlight');
| |
− | var rowIndex = $(this).prevAll().length+1;
| |
− | $('#pinyin-table tr :nth-child('+rowIndex+')').addClass('table-highlight');
| |
− | };
| |
− | }, function() {
| |
− | $(this).removeClass('table-extra-highlight')
| |
− | $('.table-highlight').removeClass('table-highlight');
| |
− | }).click( function() {
| |
− | if ($(this).children('div.table-pinyin').length && ! $('#table-toggle-links').prop('checked')) {
| |
− | var tones=$('input[name=\'tone\']:checked').val();
| |
− | var $audioDiv = $('.pinyin-table-audio-container');
| |
− | $audioDiv.empty();
| |
− | for (var i=0; i<tones.length; i++) {
| |
− | var sound_url = "http://resources.allsetlearning.com/pronwiki/resources/pinyin-audio/" + $(this).attr('id') + tones[i] + ".mp3"
| |
− | if (sound_url.indexOf('.C3.BC')!==-1) {
| |
− | sound_url = sound_url.substr(0,sound_url.indexOf('.C3.BC'))+'u%CC%88'+sound_url.substr(sound_url.indexOf('.C3.BC')+6,sound_url.length);
| |
− | };
| |
− | $audioDiv.append("<audio src=\"" + sound_url + "\" type=\"audio/mpeg\"></audio>");
| |
− | console.log(sound_url,0);
| |
− | };
| |
− | for (var i=0; i<$audioDiv.children().length; i++) {
| |
− | $audioDiv.children().get(i).addEventListener("ended",audioEndedListener);
| |
− | $audioDiv.children().get(i).addEventListener("canplay",audioCanPlayListener);
| |
− | };
| |
− | $audioDiv.children().get(0).pause();
| |
− | $audioDiv.children().get(0).load();
| |
− | $('.pinyin-table').addClass('loading-audio');
| |
− | $('.playing-audio').removeClass('playing-audio');
| |
− | $(this).addClass('playing-audio');
| |
− | $audioDiv.children().get(0).play();
| |
− | if ($audioDiv.children().length>1) {
| |
− | $audioDiv.children().get(1).pause();
| |
− | $audioDiv.children().get(1).load();
| |
− | };
| |
− | };
| |
− | });
| |
− | | |
− | //collapse column groups
| |
− | $('th.col-a, th.col-e, th.col-o, th.col-i, th.col-u, th.col-v').hover( function() {
| |
− | if ($(this).hasClass('col-a')) { var thClass='col-a'; } else
| |
− | if ($(this).hasClass('col-e')) { var thClass='col-e'; } else
| |
− | if ($(this).hasClass('col-o')) { var thClass='col-o'; } else
| |
− | if ($(this).hasClass('col-i')) { var thClass='col-i'; } else
| |
− | if ($(this).hasClass('col-u')) { var thClass='col-u'; } else
| |
− | if ($(this).hasClass('col-v')) { var thClass='col-v'; };
| |
− | $('th.'+thClass).addClass('table-selected');
| |
− | }, function() {
| |
− | $('.table-selected').removeClass('table-selected');
| |
− | }).click( function() { | |
− | if ($(this).hasClass('col-a')) { var thClass='col-a'; } else
| |
− | if ($(this).hasClass('col-e')) { var thClass='col-e'; } else
| |
− | if ($(this).hasClass('col-o')) { var thClass='col-o'; } else
| |
− | if ($(this).hasClass('col-i')) { var thClass='col-i'; } else
| |
− | if ($(this).hasClass('col-u')) { var thClass='col-u'; } else
| |
− | if ($(this).hasClass('col-v')) { var thClass='col-v'; };
| |
− | if ($(this).hasClass('col-placeholder')) {
| |
− | $('#pinyin-table .'+thClass).show();
| |
− | $('#pinyin-table .'+thClass+'.col-placeholder').hide();
| |
− | } else {
| |
− | $('#pinyin-table .'+thClass).hide();
| |
− | $('#pinyin-table .'+thClass+'.col-placeholder').show();
| |
− | };
| |
− | });
| |
− | | |
− | //change text size
| |
− | $('div#pinyin-chart-settings div.additional-settings input[name="text-size"]').click( function() {
| |
− | var new_size = $('input[name="text-size"]:checked').val();
| |
− | console.log('Changing table size to '+new_size);
| |
− | $('.pinyin-table').removeClass('small').removeClass('medium').removeClass('large');
| |
− | $('.pinyin-table').addClass(new_size);
| |
− | });
| |
− | | |
− | | |
− | //change chart mode
| |
− | $('div#pinyin-chart-settings div.additional-settings input[name="chart-mode"]').click( function() {
| |
− | var new_mode = $('input[name="chart-mode"]:checked').val();
| |
− | if (new_mode==="link") {
| |
− | $('.table-pinyin').hide();
| |
− | $('.table-link').show();
| |
− | } else {
| |
− | $('.table-pinyin').show();
| |
− | $('.table-link').hide();
| |
− | }
| |
− | });
| |
− | | |
− | //toggle showing ipa, zhuyin, wade-giles
| |
− | $('#table-toggle-ipa').click( function() {
| |
− | if ($(this).prop('checked')) {
| |
− | $('.table-ipa').show();
| |
− | } else {
| |
− | $('.table-ipa').hide();
| |
− | }
| |
− | });
| |
− | $('#table-toggle-zhuyin').click( function() {
| |
− | if ($(this).prop('checked')) {
| |
− | $('.table-zhuyin').show();
| |
− | } else {
| |
− | $('.table-zhuyin').hide();
| |
− | }
| |
− | });
| |
− | $('#table-toggle-wade-giles').click( function() {
| |
− | if ($(this).prop('checked')) {
| |
− | $('.table-wade-giles').show();
| |
− | } else {
| |
− | $('.table-wade-giles').hide();
| |
− | }
| |
− | });
| |
| }); | | }); |