function object_list(){
return new object_list.fn.init(arguments);
}
object_list.fn = object_list.prototype = {
constructor:object_list,
init:function(args){
this.useDefaultList = true;
this.object = {};
return this;
}
};
object_list.fn.init.prototype = object_list.fn;
object_list.prototype.clear = function(){
var k = arguments[0];
if (k && this.has(k)) {delete this.object[k];}
else { this.object = {};}
}
object_list.prototype.push = function (k,v) {
if (this.useDefaultList){
if (!this.object[k]){
this.object[k] = new Array();
}
this.object[k].push(v);
}else{
if (!this.object[k]){
this.object[k] = v;
}else{
var l = this.object[k];
var arr = new Array();
arr.push(l);
arr.push(v);
this.object[k] = arr;
}
}
return this;
};
object_list.prototype.has =function(k){ return this.object[k] != undefined;};
object_list.prototype.get = function(k){
return this.object[k];
};
object_list.prototype.safe_get_call = function (k,target,_func_) {
if (this.has(k)){
_func_.call(this,k,this.get(k));
}
};
object_list.prototype.get_with_default = function (k,d) {
return this.has(k)?this.get(k):d;
};
object_list.prototype.for = function () {
var f = arguments[0];
var rstr= arguments[1] != undefined?arguments[1]:"";
var r = (r.toLowerCase().indexOf("r") != -1 )? true:false;
for (var k in this.object){
if (!r){
f(k,0,this.object[k]);
}else{
if (is_array(this.object[k])){
for (var j in this.object[k]){
f(k,j,this.object[k][j]);
}
}else{
f(k,0,this.object[k]);
}
}
}
};
object_list.prototype.for_with_target = function () {
var f = arguments[0];
var target = arguments[1];
var rstr= arguments[2] != undefined?arguments[2]:"";
var r = (r.toLowerCase().indexOf("r") != -1 )? true:false;
for (var k in this.object){
if (!r){
f(k,0,this.object[k]);
}else{
if (is_array(this.object[k])){
for (var j in this.object[k]){
f.call(target,k,j,this.object[k][j]);
}
}else{
f.call(target,k,0,this.object[k]);
}
}
}
};
win.object_list = object_list;