function Vector() { this.data = new Array(); this.add = Vector_add; this.remove = Vector_remove; this.elementAt = Vector_elementAt; this.setElementAt = Vector_setElementAt; this.insert = Vector_insert; this.contains = Vector_contains; this.length = Vector_length; this.toString = Vector_toString; } function Vector_add( item ) { this.data[ this.data.length ] = item; } function Vector_remove( index ) { var data = this.data; data[ index ] = null; var tmpdata = new Array(); var newindex = 0; for( var i = 0; i < data.length; i++ ) { if( data[ i ] != null ) { tmpdata[ newindex ] = data[ i ]; newindex++; } } this.data = tmpdata; } function Vector_removeItem( item ) { var data = this.data; var tmpdata = new Array(); var newindex = 0; for( var i = 0; i < data.length; i++ ) { if( data[ i ] != item ) { tmpdata[ newindex ] = data[ i ]; } newindex++; } this.data = tmpdata; } function Vector_elementAt( index ) { return this.data[ index ]; } function Vector_setElementAt( index, item ) { this.data[ index ] = item; } function Vector_insert( index, item ) { if( index == this.data.length ) { this.add( item ); return; } var data = this.data; var tmpdata = new Array(); var newindex = 0; for( var i = 0; i < data.length; i++ ) { if( i == index ) { tmpdata[ i ] = item; newindex++; } tmpdata[ newindex ] = data[ i ]; newindex++; } this.data = tmpdata; } function Vector_contains( item ) { for( var i = 0; i < this.data.length; i++ ) { if( this.data[i] == item ) { return true; } } return false; } function Vector_length() { return this.data.length; } function Vector_toString() { var dataString = "[ "; var data = this.data; for( var i = 0; i < data.length; i++ ) { dataString += data[i] + " "; } dataString += "] "; return dataString; }