File indexing completed on 2024-05-12 05:50:04
0001 /* 0002 Additional Javascript for ubiquity-slideshow, global to all variations. 0003 */ 0004 0005 /* FIXME: Replace this with a proper querystring deparam function (and update Ubiquity for new format) */ 0006 var INSTANCE_OPTIONS = { 0007 'locale' : 'en' 0008 }; 0009 (function() { 0010 var hash = window.location.hash.split('#')[1] || ''; 0011 var parameters = hash.split(/\?|&/); 0012 $.each(parameters, function(i, parameter) { 0013 var hash = parameter.split('='); 0014 var key = hash[0]; 0015 if (hash[1] !== undefined) { 0016 var value = decodeURIComponent( 0017 hash[1].replace(/\+/g, '%20') 0018 ); 0019 } else { 0020 var value = undefined; 0021 } 0022 0023 INSTANCE_OPTIONS[key] = value; 0024 }); 0025 })(); 0026 0027 var Signals = new function() { 0028 var handlers = {}; 0029 0030 var register = function(signalName) { 0031 if (! handlers[signalName]) { 0032 handlers[signalName] = []; 0033 } 0034 } 0035 0036 this.fire = function(signalName, data) { 0037 if (! handlers[signalName]) register(signalName); 0038 0039 $.each(handlers[signalName], function(index, callback) { 0040 callback(data); 0041 }); 0042 } 0043 0044 this.watch = function(signalName, handler) { 0045 if (! handlers[signalName]) register(signalName); 0046 0047 var signalId = 0; 0048 signalId = handlers[signalName].push(handler); 0049 0050 return signalId; 0051 } 0052 0053 this.unwatch = function(signalName, handlerID) { 0054 if (! handlers[signalName]) register(signalName); 0055 0056 handlers[signalName].splice(handlerID - 1, 1); 0057 } 0058 } 0059 0060 var parse_locale_code = function(locale) { 0061 var data = {}; 0062 0063 var modifier = locale.split('@', 1); 0064 data['modifier'] = modifier[1]; 0065 0066 var codeset = modifier[0].split('.', 1); 0067 data['codeset'] = codeset[1]; 0068 0069 var territory = codeset[0].split('_', 1); 0070 data['territory'] = territory[1]; 0071 0072 data['language'] = territory[0]; 0073 0074 return data; 0075 } 0076