/***
 * Delegate
 * (c)2008 Alban Creton, alban@ultrasupernew.com
 * */
Delegate = {
  create: function (o, f)
          {
            var aa = [];
            if( arguments.length > 2 )
              for(var a=2; a<arguments.length; a++)
              {
                aa.push(arguments[a]);
              }
          
            var _f = function()
            { 
              var aaa = [];
              for(var a=0; a<arguments.length; a++)
              {
                aaa.push(arguments[a]);
              }
              
              return f.apply(o, aaa.concat(aa)); 
            }
            return _f;
          }
};
window.$D = Delegate.create;
$D = Delegate.create;
