function Enumerable()
{
   
}

Enumerable.map=function(originalArray, callback, scopeObject)
{
   var originalArray=arguments[0];
   var callback=arguments[1];
   var scopeObject=(arguments.length==3 ? arguments[2] : window);
   
   var newArray=[];
   
   for(var i=0; i<originalArray.length; i++)
   {
      newArray[i]=callback.call(scopeObject, originalArray[i], i, originalArray);
   }

   return newArray;
};