AjxCore.js
Summary
No overview generated for 'AjxCore.js'
function AjxCore() {}
AjxCore._objectIds = [null];
AjxCore.assignId =
function(anObject) {
var myId = AjxCore._objectIds.length;
AjxCore._objectIds[myId]= anObject;
return myId;
};
AjxCore.unassignId =
function(anId) {
AjxCore._objectIds[anId]= null;
};
AjxCore.objectWithId =
function(anId) {
return AjxCore._objectIds[anId];
};
AjxCore.addListener =
function(eventSource, eventName, action) {
eventSource = AjxCore._getEventSource(eventSource);
var listenerStruct = AjxCore._getListenerStruct(eventSource, eventName, true);
listenerStruct.list[listenerStruct.list.length] = action;
};
AjxCore.setEventHandler =
function(eventSource, eventName, action) {
eventSource = AjxCore._getEventSource(eventSource);
var listenerStruct = AjxCore._getListenerStruct(eventSource, eventName, true);
listenerStruct.single = action;
};
AjxCore.removeListener =
function(eventSource, eventName, action) {
eventSource = AjxCore._getEventSource(eventSource);
var listenerStruct = AjxCore._getListenerStruct(eventSource, eventName);
if (listenerStruct) {
var listenerList = listenerStruct.list;
for (var i = 0; i < listenerList.length; i++) {
if (listenerList[i] == action)
listenerList[i] = null;
}
}
};
AjxCore.removeAllListeners =
function(eventSource, eventName) {
eventSource = AjxCore._getEventSource(eventSource);
var listenerStruct = AjxCore._getListenerStruct(eventSource, eventName);
if (listenerStruct) {
var listenerList = listenerStruct.list;
for (var i = 0; i < listenerList.length; i++)
listenerList[i] = null;
}
AjxCore.unassignId(listenerStruct.id);
};
AjxCore.notifyListeners =
function(eventSource, eventName, arg1) {
eventSource = AjxCore._getEventSource(eventSource);
var listenerStruct = AjxCore._getListenerStruct(eventSource, eventName)
if (listenerStruct)
eventSource[eventName](arg1);
};
AjxCore._getEventSource =
function(eventSource) {
if (typeof(eventSource) == 'string')
eventSource = document.getElementById(eventSource);
return eventSource;
};
AjxCore.getListenerStruct =
function (eventSource, eventName) {
return AjxCore._getListenerStruct(eventSource, eventName);
};
AjxCore._getListenerStruct =
function(eventSource, eventName, create) {
var listenerStruct = null;
if (eventSource[eventName]) {
var id = eventSource[eventName]._lsListenerStructId;
listenerStruct = AjxCore.objectWithId(id);
} else if (create) {
listenerStruct = AjxCore._setupListener(eventSource, eventName);
}
return listenerStruct;
};
AjxCore._setupListener =
function(eventSource, eventName, id) {
var listenerStruct = new Object();
listenerStruct.list = new Array();
listenerStruct.single = null;
var id = listenerStruct.id = AjxCore.assignId(listenerStruct);
var handler = AjxCore._createListenerClosure(id);
eventSource[eventName] = handler;
eventSource[eventName]._lsListenerStructId = id;
return listenerStruct;
};
AjxCore._createListenerClosure =
function(id) {
var closure = function(arg1) {
var listenerStruct = AjxCore.objectWithId(id);
var listenerList = listenerStruct.list;
for (var i = 0; i < listenerList.length; i++) {
var callback = listenerList[i];
if (callback) {
if (typeof(callback) == 'string') {
eval(callback);
} else {
if (callback.handleEvent) {
callback.handleEvent(arg1, this);
} else {
callback(arg1, this);
}
}
}
}
if (listenerStruct.single) {
var callback = listenerStruct.single;
if (typeof(callback) == 'string') {
eval(callback);
} else {
return callback.handleEvent
? callback.handleEvent(arg1, this)
: callback(arg1, this);
}
}
}
return closure;
};
AjxCore.addOnloadListener =
function(action) {
if (window.onload && (!window.onload._lsListenerStructId)) {
var priorListener = window.onload;
window.onload = null;
AjxCore.addListener(window, "onload", priorListener);
}
AjxCore.addListener(window, "onload", action);
};
AjxCore.addOnunloadListener =
function(action) {
if (window.onunload && (!window.onunload._lsListenerStructId)) {
var priorListener = window.onunload;
window.onunload = null;
AjxCore.addListener(window, "onunload", priorListener);
}
AjxCore.addListener(window, "onunload", action);
};
Documentation generated by
JSDoc on Thu Apr 27 13:58:39 2006