Array.prototype.size = function(){ return this.length;}
Array.prototype.elementAt = function(pos){ return this[pos];}
Array.prototype.indexOf = function(elm){var res=-1;	for(var i=0;i<this.size() && res<0;i++){if(elm == this[i]) res=i;};return res;}
Array.prototype.lastElement = function(){ return this[this.length-1];}
Array.prototype.contains = function (elm){ return this.indexOf(elm)>-1;}
Array.prototype.emptyArray = function(){ this.length = 0;}
Array.prototype.addElement = function(elm){	this[this.size()] = elm;return elm;}
Array.prototype.insertElementAt = function(elm,pos){if(pos>=this.size()){this.addElement(elm);}else{	for(var i=this.size()-1;i>=pos;i--)	this[i+1] = this[i];this[pos] = elm;};return elm;}
Array.prototype.removeElementAt = function(pos){var elm = this.elementAt(pos);for(var i=pos; i < this.size()-1; i++){this[i] = this[i+1];};this.length--;	return elm;}
Array.prototype.removeElement = function(elm){var idx = this.indexOf(elm);if (idx>-1) return this.removeElementAt(idx);	return null;}
Array.prototype.swap = function(idx0,idx1) { var idx1value = this[idx1]; this[idx1] = this[idx0]; this[idx0] = idx1value; return this; }
Array.prototype.clone = function() { var cloned = new Array(); for(var i=0; i < this.size(); i++) {cloned.addElement(this[i]);}; return cloned;}
Array.prototype.subIndex = function(elm){var res = -1;	for(i = 0 ; i < this.length ; i++){	if(this[i].contains(elm)) res = i;};return res;}
Array.prototype.findSubIndex = function(elm){var res=-1;for(i = 0 ; i < this.length ; i++){	if(this[i].contains(elm)){ for(i = 0 ; i < eval(elm).length ; i++){	tmp = eval(elm);eval("go"+tmp[2]+"("+tmp[1]+",true);");};}}}
