+var QJSUI = new Class({
+ initialize: function(class_, parent, sizer) {
+ this.parent = parent;
+ this.sizer = $defined(sizer)?sizer:parent;
+
+ this.create(class_);
+
+ window.addEvent("resize", function() {
+ this.reflow();
+ this.reflow.delay(100, this);
+ }.bind(this));
+ },
+ create: function(class_) {
+ var XE = function(classes) {
+ var l = new Element("div");
+ l.addClass(class_);
+ l.addClass("dynamicpanel");
+
+ classes.split(" ").each(function(x) {
+ l.addClass(x);
+ });
+
+ this.parent.appendChild(l);
+ return l;
+ }.bind(this);
+
+ this.top = XE("widepanel topboundpanel");
+ this.topic = XE("widepanel");
+ this.middle = XE("leftboundpanel");
+ this.right = XE("rightboundpanel");
+ this.bottom = XE("bottomboundpanel widepanel");
+ },
+ reflow: function() {
+ var bottom = this.bottom;
+ var middle = this.middle;
+ var right = this.right;
+ var topic = this.topic;
+ var top = this.top;
+
+ var topicsize = topic.getSize();
+ var topsize = top.getSize();
+ var rightsize = right.getSize();
+ var bottomsize = bottom.getSize();
+ var docsize = this.sizer.getSize();
+
+ var mheight = (docsize.y - topsize.y - bottomsize.y - topicsize.y);
+ var mwidth = (docsize.x - rightsize.x);
+
+ topic.setStyle("top", topsize.y + "px");
+
+ middle.setStyle("top", (topsize.y + topicsize.y) + "px");
+ if(mheight > 0) {
+ middle.setStyle("height", mheight + "px");
+ right.setStyle("height", mheight + "px");
+ }
+
+ if(mwidth > 0) {
+ middle.setStyle("width", mwidth + "px");
+ } else {
+ alert(mwidth);
+ }
+ right.setStyle("top", (topsize.y + topicsize.y) + "px");
+ right.setStyle("left", mwidth + "px");
+
+ bottom.setStyle("top", (docsize.y - bottomsize.y) + "px");
+ },
+ showChannel: function(state) {
+ var display = "none";
+ if(state)
+ display = "block";
+
+ this.right.setStyle("display", display);
+ this.topic.setStyle("display", display);
+ //this.reflow.delay(0, this);
+ }
+});