HD.WidgetCluster=function(C,A,B){this.model=C;
this.view=A;
this.config=B;
this.widgets=[]
};
HD.WidgetCluster.prototype={init:function(A,B){this.addWidgets(A);
if(B!=null){B()
}},loadDependencies:function(C,D){var A=this;
var B=widgetsConfig;
HD.insert({filter:"raw",require:C,base:this.config.baseUrl+"/hd/",loadOptional:true,skin:{base:"assets/skins/",defaultSkin:"hd"},onSuccess:function(E){A.addWidgets.call(A,B);
if(D!=null){D()
}}})
},addWidgets:function(C){for(var B=0,A=C.length;
B<A;
B++){this.addWidget(C[B])
}},addWidget:function(A){var C=this.getClass(HD.classMap[A.type]);
if(C!=null){var B=new C(A);
if(this.model!=null){this.model.addObserver(B);
B.model=this.model
}if(this.view!=null){this.view.addObserver(B);
B.view=this.view
}this.widgets.push(B);
return B
}},removeWidget:function(E){this.model.removeObserver(E);
var B=[];
var D=this.widgets;
for(var C=0,A=D.length;
C<A;
C++){var F=D[C];
if(F!=E){B.push(F)
}}this.widgets=B
},getWidget:function(A){return this.widgets[A]
},getClass:function(D){if(D==null){return null
}var E=D.split(".");
var B=window;
for(var C=0,A=E.length;
C<A;
C++){B=B[E[C]]
}return B
}};
HD.register("hd_widget_cluster",HD.WidgetCluster,{version:"1.0",build:"1"});