@ -20,11 +20,10 @@
* /
* /
//The callBack object provides an easy way to pass a member of an object as callback parameter and makes sure that the 'this' is always set correctly when called.
//The callBack object provides an easy way to pass a member of an object as callback parameter and makes sure that the 'this' is always set correctly when called.
//bindScope provides a much cleaner sollution but we keep this one for compatibility and instead implement is with bindScope
callBack = function ( func , obj ) {
callBack = function ( func , obj ) {
this . id = callBack . callBacks . length ;
var newFunction = func . bindScope ( obj ) ;
callBack . callBacks [ this . id ] = this ;
callBack . callBacks [ this . id ] = newFunction ;
this . func = func ;
this . obj = obj ;
}
}
callBack . callBacks = Array ( ) ;
callBack . callBacks = Array ( ) ;
@ -36,18 +35,6 @@ callBack.call=function(id,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10){
}
}
}
}
callBack . prototype = function ( 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 ) {
return this . func . call ( this . obj , arg1 , arg2 , arg3 , arg4 , arg5 , arg6 , arg7 , arg8 , arg9 , arg10 ) ;
}
callBack . prototype . apply = function ( dummy , arguments ) {
return this . func . apply ( this . obj , arguments ) ;
}
//provide a simple way to add things to the onload
//provide a simple way to add things to the onload
OC _onload = new Object ( ) ;
OC _onload = new Object ( ) ;
@ -198,4 +185,49 @@ loadScript=function(url){//dynamicly load javascript files
script . setAttribute ( 'src' , url ) ;
script . setAttribute ( 'src' , url ) ;
body = document . getElementsByTagName ( 'body' ) . item ( 0 ) ;
body = document . getElementsByTagName ( 'body' ) . item ( 0 ) ;
body . appendChild ( script ) ;
body . appendChild ( script ) ;
}
}
Function . prototype . bindScope = function ( obj ) {
var o = obj ;
var fn = this ;
return function ( ) {
return fn . apply ( o , arguments ) ;
}
}
Function . prototype . bind = function ( ) {
var args = [ ] ;
var fn = this ;
for ( var n = 0 ; n < arguments . length ; n ++ ) {
args . push ( arguments [ n ] ) ;
}
return function ( ) {
var myargs = [ ] ;
for ( var m = 0 ; m < arguments . length ; m ++ ) {
myargs . push ( arguments [ m ] ) ;
}
return fn . apply ( this , args . concat ( myargs ) ) ;
} ;
}
Array . prototype . foreach = function ( func , that ) {
if ( ! func ) return ;
that = that || this ;
var returns = [ ] ;
for ( var i = 0 ; i < this . length ; i ++ ) {
returns . push ( func . call ( that , this [ i ] ) ) ;
}
return returns ;
}
Array . prototype . where = function ( func , that ) {
var found = [ ] ;
that = that || this ;
for ( var i = 0 , l = this . length ; i < l ; ++ i ) {
var item = this [ i ] ;
if ( func . call ( that , item ) ) {
found . push ( item ) ;
}
}
return found ;
} ;