+/**
+ * @file addon-hooks.js
+ * @brief Provide a way for add-ons to register a JavaScript hook
+ */
+
var addon_hooks={};
+/**
+ * @brief Register a JavaScript hook to be called from other Javascript files
+ * @pre the .js file from which the hook will be called is included in the document response
+ * @param type which type of hook i.e. where should it be called along with other hooks of the same type
+ * @param hookfnstr name of the JavaScript function name that needs to be called
+ */
function Addon_registerHook( type, hookfnstr )
{
if (!addon_hooks.hasOwnProperty(type)) {
addon_hooks[type].push( hookfnstr );
}
+
+/**
+ * @brief Call all registered hooks of a certain type, i.e. at the same point of the JavaScript code execution
+ * @param typeOfHook string indicating which type of hooks to be called among the registered hooks
+ */
+function callAddonHooks( typeOfHook ) {
+ if (typeof addon_hooks !== 'undefined') {
+ var myTypeOfHooks = addon_hooks[typeOfHook];
+ if (typeof myTypeOfHooks !== 'undefined') {
+ for (addon_hook_idx = 0; addon_hook_idx < myTypeOfHooks.length; addon_hook_idx++) {
+ var hookfnstr = myTypeOfHooks[addon_hook_idx];
+ var hookfn = window[hookfnstr];
+ if (typeof hookfn === "function") hookfn();
+ }
+ }
+ }
+}
timer = setTimeout(NavUpdate, updateInterval);
}
-function callAddonHooks(typeOfHook) {
- if (typeof addon_hooks !== 'undefined') {
- var myTypeOfHooks = addon_hooks[typeOfHook];
- if (typeof myTypeOfHooks !== 'undefined') {
- for (addon_hook_idx = 0; addon_hook_idx < myTypeOfHooks.length; addon_hook_idx++) {
- var hookfnstr = myTypeOfHooks[addon_hook_idx];
- var hookfn = window[hookfnstr];
- if (typeof hookfn === "function") hookfn();
- }
- }
- }
-}
-
function liveUpdate(src) {
if ((src == null) || stopped || !profile_uid) {
$('.like-rotator').hide(); return;
prev = ident;
});
- callAddonHooks("postprocess");
+ callAddonHooks("postprocess_liveupdate");
$('.like-rotator').hide();
if (commentBusy) {