summaryrefslogtreecommitdiffstats
path: root/js/lib_ajax.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/lib_ajax.js')
-rw-r--r--js/lib_ajax.js75
1 files changed, 62 insertions, 13 deletions
diff --git a/js/lib_ajax.js b/js/lib_ajax.js
index 28062e66532..319875d40e7 100644
--- a/js/lib_ajax.js
+++ b/js/lib_ajax.js
@@ -32,35 +32,84 @@ callBack.callBacks=Array();
callBack.call=function(id,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10){
callback=callBack.callBacks[id];
if(callback){
- callback.func.call(callback.obj,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10);
+ return callback.func.call(callback.obj,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10);
}
}
callBack.prototype=function(arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10){
- this.call(false,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10);
+ return this.call(false,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10);
}
callBack.prototype.func=false;
callBack.prototype.obj=false;
callBack.prototype.call=function(dummy,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10){
- //the dummy is just to provide compatibility with the normal call function and isn't used
- this.func.call(this.obj,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10);
+ return this.func.call(this.obj,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10);
}
callBack.prototype.apply=function(dummy,arguments){
- //the dummy is just to provide compatibility with the normal call function and isn't used
- this.apply(this.obj,arguments);
+ return this.func.apply(this.obj,arguments);
}
//provide a simple way to add things to the onload
OC_onload=new Object();
OC_onload.items=new Array();
-OC_onload.add=function(callback){
- OC_onload.items[OC_onload.items.length]=callback;
+OC_onload.itemsPriority=new Array();
+OC_onload.add=function(callback,priority){
+ if(priority){
+ OC_onload.itemsPriority[OC_onload.items.length]=callback;
+ }else{
+ OC_onload.items[OC_onload.items.length]=callback;
+ }
}
OC_onload.run=function(){
- for(index in OC_onload.items){
- if(OC_onload.items[index].call){
- OC_onload.items[index].call();
- }
- }
+ for(index in OC_onload.itemsPriority){
+ if(OC_onload.itemsPriority[index].call){
+ OC_onload.itemsPriority[index].call();
+ }
+ }
+ for(index in OC_onload.items){
+ if(OC_onload.items[index].call){
+ OC_onload.items[index].call();
+ }
+ }
+}
+
+//implement Node.prototype under IE
+if(typeof Node=='undefined'){
+ Node=new Object();
+ Node.prototype=new Object();
+
+ tmpObj=new Object();
+ tmpObj.prototype=document.createElement;
+ document.createElementNative=document.createElement;
+ tmpObj=null;
+
+ document.createElement=function(tagName){
+// alert(tagName);
+ node=document.createElementNative(tagName);
+ for(name in Node.prototype){
+ node[name]=Node.prototype[name];
+ }
+ return node;
+ }
+
+ addNodePrototype=function(node){
+ if(!node){
+ node=document.getElementsByTagName('body');
+ node=node.item(0)
+ }
+ if(node.nodeType==1){
+ for(name in Node.prototype){
+// node[name]=Node.prototype[name];
+ eval('node.'+name+'=Node.prototype.'+name+';');
+ }
+ if(node.hasChildNodes){
+ var childs=node.childNodes;
+ for(var i=0;i<childs.length;i++){
+ addNodePrototype(childs[i]);
+ }
+ }
+ }
+ }
+ OC_onload.add(new function(){addNodePrototype(document.documentElement);});
+ OC_onload.add(addNodePrototype,true);
} \ No newline at end of file