Array.prototype.Delete = function(index) 
{
   if ( isNaN(index) ) { return; }
   if ( index < 0 || index > this.length - 1 ) { return; }
   this.splice( index, 1 );
}

Array.prototype.toString = function()
{
   var str=this.join("|");
   //alert(str);
   return str;
}

Array.prototype.Add  =  function(item)
{
   this.push(item);
}

Array.prototype.AddRange = function(items)
{
   var length =items.length;
   if (length !=0)
   {
      for (var index =0;index <length;index++)
      {
         this.push(items[index]);
      }
   }
}

Array.prototype.Clear = function()
{
   if (this.length >0)
   {
      this.splice(0,this.length);
   }
}

Array.prototype.Clone = function()
{
   var clonedArray =[];
   var length = this.length;
   for (var index =0;index <length;index++)
   {
      clonedArray[index]=this[index];
   }
   return clonedArray;
}

Array.prototype.Contains = function(item)
{
   var index =this.IndexOf(item);
   return (index >=0);
}

Array.prototype.Dequeue = function()
{
   return this.shift();
}

Array.prototype.IndexOf = function(item)
{
   var length =this.length;
   if (length !=0)
   {
      for (var index =0;index <length;index++)
      {
         if (this[index]==item)
         {
            return index;
         }
      }
   }
   return -1;
}

Array.prototype.Insert = function(index,item)
{
   this.splice(index,0,item);
}

Array.prototype.Queue = function(item)
{
   this.push(item);
}

Array.prototype.Remove = function(item)
{
   var index =this.indexOf(item);
   if (index >=0)
   {
      this.splice(index,1);
   }
}

Array.prototype.RemoveAt = function(index)
{
   this.splice(index,1);
}

Array._typeName ='Array';

Array.Parse = function(value)
{
   return eval('('+value +')');
}

Array.prototype.GetNrElems =function()
{
   return this.length;
}

Array.prototype.GetItem = function(index)
{
   return this[index];
}

Array.prototype.print_r = function()
{
   var str = "Array(";
   for (var f in this)
   {
      if (typeof(this[f])=='function')
         continue;
      str += " ["+f+"]=>"+this[f]+" ";
   }
   return str += ")";
}

