if
(
typeof
(Function.prototype.apply)
!=
"
function
"
)
{
Function.prototype.apply
=
function
(obj, argu)
{
var
s;
if
(obj)
{
obj.constructor.prototype._caller
=
this
;
s
=
"
obj._caller
"
;
}
else
s
=
"
this
"
;
var
a
=
[];
for
(
var
i
=
0
; i
<
argu.length; i
++
)
a[i]
=
"
argu[
"
+
i
+
"
]
"
;
return
eval(s
+
"
(
"
+
a.join(
"
,
"
)
+
"
);
"
);
};
Function.prototype.call
=
function
(obj)
{
var
a
=
[];
for
(
var
i
=
1
; i
<
arguments.length; i
++
)
a[i
-
1
]
=
arguments[i];
return
this
.apply(obj, a);
};
}