1/*
2*  Does emulate of .call method for IE5
3*
4*  @return mixed execution result
5*  @access public
6*/
7if ('undefined' == typeof Function.call)
8  Function.prototype.call = function () {
9    var context, oldprop, s = [], i=1, aL = arguments.length;
10    if (arguments.length == 0) context = window;
11    else context = arguments[0];
12    oldprop = context.______________tmp______________;
13    context.______________tmp______________ = this;
14    for (;i<aL;i++) s[s.length] = 'arguments['+i+']';
15    var ret = eval ("context.______________tmp______________("+s.join(",")+")");
16    context.______________tmp______________ = oldprop;
17    return ret;
18  }
19/*
20*  Does emulate of .apply method for IE5
21*
22*  @return mixed execution result
23*  @access public
24*/
25if ('undefined' == typeof Function.apply)
26  Function.prototype.apply = function () {
27    var context, oldprop, s = [], i=0, aL = arguments[1].length;
28    if (arguments.length == 0) context = window;
29    else context = arguments[0];
30    oldprop = context.______________tmp______________;
31    context.______________tmp______________ = this;
32    for (;i<aL;i++) s[s.length] = 'arguments[1]['+i+']';
33    var ret = eval ("context.______________tmp______________("+s.join(",")+")");
34    context.______________tmp______________ = oldprop;
35    return ret;
36  }
37