var s=scope||dj_global; 
var s=scope||dojo.global; 
dojox.collections.ArrayList=function(/* array? */arr){	//	summary	//	Returns a new object of type dojox.collections.ArrayList	var items=[];	if(arr) items=items.concat(arr);	this.count=items.length;	this.add=function(/* object */obj){		//	summary		//	Add an element to the collection.		items.push(obj);		this.count=items.length;	};	this.addRange=function(/* array */a){		//	summary		//	Add a range of objects to the ArrayList		if(a.getIterator){			var e=a.getIterator();			while(!e.atEnd()){				this.add(e.get());			}			this.count=items.length;		}else{			for(var i=0; i<a.length; i++){				items.push(a[i]);			}			this.count=items.length;		}	};	this.clear=function(){		//	summary		//	Clear all elements out of the collection, and reset the count.		items.splice(0, items.length);		this.count=0;	};	this.clone=function(){		//	summary		//	Clone the array list		return new dojox.collections.ArrayList(items);	//	dojox.collections.ArrayList	};	this.contains=function(/* object */obj){		//	summary		//	Check to see if the passed object is a member in the ArrayList		for(var i=0; i < items.length; i++){			if(items[i] == obj) {				return true;	//	bool			}		}		return false;	//	bool	};	this.forEach=function(/* function */ fn, /* object? */ scope){		//	summary		//	functional iterator, following the mozilla spec.		var s=scope||dj_global;		if(Array.forEach){			Array.forEach(items, fn, s);		}else{			for(var i=0; i<items.length; i++){				fn.call(s, items[i], i, items);			}		}	};	this.getIterator=function(){		//	summary		//	Get an Iterator for this object		return new dojox.collections.Iterator(items);	//	dojox.collections.Iterator	};	this.indexOf=function(/* object */obj){		//	summary		//	Return the numeric index of the passed object; will return -1 if not found.		for(var i=0; i < items.length; i++){			if(items[i] == obj) {				return i;	//	int			}		}		return -1;	// int	};	this.insert=function(/* int */ i, /* object */ obj){		//	summary		//	Insert the passed object at index i		items.splice(i,0,obj);		this.count=items.length;	};	this.item=function(/* int */ i){		//	summary		//	return the element at index i		return items[i];	//	object	};	this.remove=function(/* object */obj){		//	summary		//	Look for the passed object, and if found, remove it from the internal array.		var i=this.indexOf(obj);		if(i >=0) {			items.splice(i,1);		}		this.count=items.length;	};	this.removeAt=function(/* int */ i){		//	summary		//	return an array with function applied to all elements		items.splice(i,1);		this.count=items.length;	};	this.reverse=function(){		//	summary		//	Reverse the internal array		items.reverse();	};	this.sort=function(/* function? */ fn){		//	summary		//	sort the internal array		if(fn){			items.sort(fn);		}else{			items.sort();		}	};	this.setByIndex=function(/* int */ i, /* object */ obj){		//	summary		//	Set an element in the array by the passed index.		items[i]=obj;		this.count=items.length;	};	this.toArray=function(){		//	summary		//	Return a new array with all of the items of the internal array concatenated.		return [].concat(items);	}	this.toString=function(/* string */ delim){		//	summary		//	implementation of toString, follows [].toString();		return items.join((delim||","));	};};
5168	/local1/tlutelli/issta_data/temp/all_js/javascript/2007_temp/2007/5168/c270a8925d5a9958195b302ecdff1966132b1409/ArrayList.js/clean/collections/ArrayList.js