function CSDS_FieldByName(AFieldName) {
var i = 0;
while (i < this.Fields.length && this.Fields[i] != AFieldName) i++;
if (i < this.Fields.length) {
return this.Data[this.CurrentRecord][i];
}
else {
return null; // Have to find a way to throw exception
}
}
function CSDS_First() {
this.CurrentRecord = 0;
this.DoOnChange();
};
function CSDS_Next() {
if (this.CurrentRecord < this.Data.length - 1) {
this.CurrentRecord++;
this.DoOnChange();
}
};
function CSDS_Prior() {
if (this.CurrentRecord > 0) {
this.CurrentRecord--;
this.DoOnChange();
}
};
function CSDS_Last() {
this.CurrentRecord = this.Data.length - 1;
this.DoOnChange();
};
function CSDS_EOF() {
return (this.CurrentRecord == this.Data.length - 1) || (this.Data.length == 0);
};
function CSDS_BOF() {
return (this.CurrentRecord == 0) || (this.Data.length == 0);
};
function CSDS_DoOnChange() {
for (i=0; i < this.OnChangeList.length; i ++) {
this.OnChangeList[i].DoOnChange(this);
}
}
function CSDataSet(AFields, AData) {
this.Fields = AFields;
this.Data = AData;
this.FieldByName = CSDS_FieldByName;
this.First = CSDS_First;
this.Next = CSDS_Next;
this.Prior = CSDS_Prior;
this.Last = CSDS_Last;
this.EOF = CSDS_EOF;
this.BOF = CSDS_BOF;
this.OnChangeList = new Array();
this.DoOnChange = CSDS_DoOnChange;
this.First();
}

