
function DP_ObCollectionOrdered(MemberKeyName,MemberType){this.Members=new Array();this.MemberKeyName=MemberKeyName;if(!MemberType){this.MemberType=MemberType;}else{this.MemberType=null;};this.CreationDate=new Date();};DP_ObCollectionOrdered.prototype={isMember:function(MemberKey){if(this.isValidType(MemberKey)){MemberKey=MemberKey[this.MemberKeyName];};var Rank=this.getRank(MemberKey);if(Rank==null){return false;}else{return true;};},isValidType:function(ObjectToCheck){if(this.MemberType==null){return true;};if((typeof ObjectToCheck=="object")&&(ObjectToCheck.constructor==this.MemberType)){return true;}else{return false;};},getRank:function(MemberKey){if(typeof MemberKey=="object"&&this.isValidType(MemberKey)){MemberKey=MemberKey[this.MemberKeyName];};var Rank=null;for(var Cnt=0;Cnt<this.Members.length;Cnt++){if(this.Members[Cnt][this.MemberKeyName]==MemberKey){Rank=Cnt;break;};};return Rank;},add:function(NewMember,AllowOverwrite){if(!this.isValidType(NewMember)){return false;};var NewMemberKey=NewMember[this.MemberKeyName];if(typeof AllowOverwrite!="boolean"){AllowOverwrite=false;};var Rank=this.getRank(NewMemberKey);if(Rank!=null){if(AllowOverwrite){this.Members[Rank]=NewMember;return true;}else{return false;};};this.Members[this.getCount()]=NewMember;return true;},drop:function(MemberKey){if(typeof MemberKey=="object"&&this.isValidType(MemberKey)){MemberKey=MemberKey[this.MemberKeyName];};var Rank=this.getRank(MemberKey);if(Rank==null){return false;}else{var NewMembers=new Array();for(var Cnt=0;Cnt<this.Members.length;Cnt++){if(Cnt!=Rank){NewMembers[NewMembers.length]=this.Members[Cnt];};};this.Members=NewMembers;return true;};},clear:function(){this.Members=new Array();return true;},getCount:function(){return this.Members.length;},get:function(MemberKey){if(typeof MemberKey=="object"&&this.isValidType(MemberKey)){MemberKey=MemberKey[this.MemberKeyName];};var Rank=this.getRank(MemberKey);if(Rank!=null){return this.Members[Rank];}else{return null;};},getAt:function(Rank){return this.Members[Rank];},getAll:function(){return this.Members;},promoteAt:function(Index,Steps){if(Steps==null){Steps=1};var NewIndex=Index-Steps;if(!this.isIndexInRange(NewIndex)){NewIndex=0;};if(this.setRankAt(Index,NewIndex)){return NewIndex;}else{return null;};}}