if(typeof top.jsWindowRecordsets=="undefined"){top.jsWindowRecordsets=[];}
function JSRecordset(rsName){var rawdata=top['jsRawData_'+rsName];var metadata=rawdata[0];this.Filter=false;this.fields=[];this.fieldNameIndex=[];for(var i=0;i<metadata.length;i++){var fieldName=metadata[i];Array_push(this.fields,{'name':fieldName});this.fieldNameIndex[fieldName]=i;}
this.rows=rawdata.slice(1,-1);this.origRows=this.rows;this.rowIndex=-1;top.jsWindowRecordsets[rsName]=this;}
JSRecordset.prototype.Fields=function(fieldIndex){if(typeof fieldIndex=="string"){fieldIndex=this.fieldIndexFromName(fieldIndex);}
try{return this.rows[this.rowIndex][fieldIndex];}catch(e){}}
JSRecordset.prototype.Move=function(i){this.rowIndex=i;}
JSRecordset.prototype.MoveFirst=function(){this.rowIndex=-1;}
JSRecordset.prototype.MoveLast=function(){this.rowIndex=this.RecordCount();}
JSRecordset.prototype.MoveNext=function(){this.rowIndex++;if(this.EOF()){return false;}else{return true;}}
JSRecordset.prototype.MovePrev=function(){this.rowIndex--;if(this.BOF()){return false;}else{return true;}}
JSRecordset.prototype.EOF=function(){return this.rowIndex>=this.RecordCount();}
JSRecordset.prototype.BOF=function(){return this.rowIndex<0;}
JSRecordset.prototype.RecordCount=function(){if(typeof this.intRecordCount=="undefined"){this.intRecordCount=this.rows.length;}
return this.intRecordCount;}
function fsort(a,b){return 1;}
JSRecordset.prototype.sort=function(sortField,sortHow){}
JSRecordset.prototype.find=function(searchField,searchCriteria,searchValue){var searchFieldIndex=this.fieldIndexFromName(searchField);switch(searchCriteria){case"=":for(var i=0;i<this.rows.length;i++){if(this.rows[i][searchFieldIndex]==searchValue){this.rowIndex=i;return true;}}
break;case"begins with":searchValue=searchValue.toLowerCase();for(var i=0;i<this.rows.length;i++){if(this.rows[i][searchFieldIndex].toLowerCase().indexOf(searchValue)==0){this.rowIndex=i;return true;}}
break;}
return false;}
function JSRecordset_fieldIndexFromName(fieldName){if(typeof(this.fieldNameIndex[fieldName])!="undefined"){fieldIndex=this.fieldNameIndex[fieldName];}else{fieldIndex=this.fieldNameIndex[fieldName.toLowerCase()];}
return fieldIndex;}
JSRecordset.prototype.fieldIndexFromName=JSRecordset_fieldIndexFromName;JSRecordset.prototype.Insert=function(row,index){delete this.intRecordCount;var newRow=[];for(var i=0;i<this.fields.length;i++){for(var j=0;j<this.fields.length;j++){if(this.fieldIndexFromName(this.fields[j].name)==i){Array_push(newRow,row[this.fields[j].name]);}}}
Array_push(this.origRows,newRow);this.rows=this.origRows;this.refreshFilteredData();}
function JSRecordset_setFilter(fkey,criteria,value){if(typeof fkey=="undefined"){this.Filter=null;}else{this.Filter={'field':fkey,'criteria':criteria,'value':value};}
this.refreshFilteredData();}
function JSRecordset_refreshFilteredData(){delete this.intRecordCount;this.MoveFirst();var filteredRows=[];for(var i=0;i<this.rows.length;i++){this.rowIndex=i;if(this.matchFilter()){Array_push(filteredRows,this.rows[i]);}}
this.rows=filteredRows;this.MoveFirst();}
JSRecordset.prototype.setFilter=JSRecordset_setFilter;JSRecordset.prototype.refreshFilteredData=JSRecordset_refreshFilteredData;function JSRecordset_matchFilter(){if(!this.Filter){return true;}
var match=true;switch(this.Filter.criteria){case"=":match=this.Fields(this.Filter.field)==this.Filter.value;break;case"begins with":match=this.Fields(this.Filter.field).toLowerCase().indexOf(this.Filter.value)==0;default:}
return match;}
JSRecordset.prototype.matchFilter=JSRecordset_matchFilter;
