1 	
  2 	
  3 	function newVarName(prefix){
  4 		var rplc="";var pf=typeof(prefix)=="string" && prefix.length>0?prefix+"_":"untyped_";
  5 		this.nameisfree=false;var cntr=0;
  6 		var format = function(val,len){	var rst=""+val;for(var i=rst.length;i<len;i++)rst="0"+rst;return rst;	};
  7 		while(!this.nameisfree){
  8 			rplc=pf+format(cntr++,10);
  9 			eval("this.nameisfree=typeof("+rplc+")==\"undefined\";");
 10 		}
 11 		return rplc;
 12 	};
 13 	
 14 	window.requestAnimFrame = (function(){
 15 		return  window.requestAnimationFrame       || 
 16 				window.webkitRequestAnimationFrame || 
 17 				window.mozRequestAnimationFrame    || 
 18 				window.oRequestAnimationFrame      || 
 19 				window.msRequestAnimationFrame     || 
 20 				function( callback ){window.setTimeout(callback, 1000 / 60);};
 21     })();
 22 	
 23 // --------------------------- Arrays [ -----------------------
 24 	/*var YAbstractArray = function(){
 25 		this.array = [];
 26 		this.build = function(){
 27 			var xlist = {'concat':1,'join':1,'pop':0,'push':1,'reverse':0,'shift':0,'slice':2,'unshift':1};
 28 			for(var i in xlist){
 29 				var argarr = [];
 30 				for(var j=0;j<xlist[i];j++)argarr.push('arguments['+j+']');
 31 				var evst = "this[i] = function(){	return this.array."+i+"("+argarr.join(',')+");	};";
 32 				eval(evst);
 33 			}
 34 		};
 35 		this.length	= function(){		return this.array.length;};
 36 		this.get	= function(index ){	return this.array[index];};
 37 		this.build();
 38 	};*/
 39 	
 40 // --------------------------- ] Arrays -----------------------
 41 
 42 
 43 
 44 
 45 
 46 
 47 
 48 
 49 
 50 
 51 
 52 
 53 
 54 
 55 
 56 
 57 
 58 
 59 
 60 
 61