function Array.prototype.insert(data, index){
if(isNaN(index) || index<0 || index>this.length) {
this[this.length]=data;
}else{
var temp = this.slice(index-1);
this[index-1]=data;
for (var i=0; i<temp.length; i++) this[index+i]=temp[i];
}
}
function Array.prototype.insertArray(ary, index){
if(isNaN(index) || index<0 || index>this.length) {
for (var i=0; i<ary.length; i++)
this[this.length]=ary[i];
}else{
var temp = ary.concat(this.slice(index-1));
for (var i=0; i<temp.length; i++) this[index+i]=temp[i];
}
}
function Array.prototype.append(data, index){
if (data instanceof Array) this.insertArray(data, index+1);
else this.insert(data, index+1);
}
function Array.prototype.indexOf(data){
for (var i=0; i<this.length; i++)
if (this[i]==data) return i;
}
function Array.prototype.lastIndexOf(data){
for (var i=this.length-1; i>=0; i--)
if (this[i]==data) return i;
}
function Array.prototype.remove(a, b){
return this.slice(0, a).concat(this.slice((b||a)+1));
}
if(isNaN(index) || index<0 || index>this.length) {
this[this.length]=data;
}else{
var temp = this.slice(index-1);
this[index-1]=data;
for (var i=0; i<temp.length; i++) this[index+i]=temp[i];
}
}
function Array.prototype.insertArray(ary, index){
if(isNaN(index) || index<0 || index>this.length) {
for (var i=0; i<ary.length; i++)
this[this.length]=ary[i];
}else{
var temp = ary.concat(this.slice(index-1));
for (var i=0; i<temp.length; i++) this[index+i]=temp[i];
}
}
function Array.prototype.append(data, index){
if (data instanceof Array) this.insertArray(data, index+1);
else this.insert(data, index+1);
}
function Array.prototype.indexOf(data){
for (var i=0; i<this.length; i++)
if (this[i]==data) return i;
}
function Array.prototype.lastIndexOf(data){
for (var i=this.length-1; i>=0; i--)
if (this[i]==data) return i;
}
function Array.prototype.remove(a, b){
return this.slice(0, a).concat(this.slice((b||a)+1));
}