summaryrefslogtreecommitdiff
path: root/swat/style/qooxdoo/widgets/core
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>2005-08-05 19:11:26 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 13:31:20 -0500
commit8808465e5b70fd6388ed02a2cfda6015ffc914e5 (patch)
tree6e4428825fa1fd21f5e5938a3c0fb16710471852 /swat/style/qooxdoo/widgets/core
parentb99bca56570c0b146128bc243d770bb354ae0cd5 (diff)
downloadsamba-8808465e5b70fd6388ed02a2cfda6015ffc914e5.tar.gz
samba-8808465e5b70fd6388ed02a2cfda6015ffc914e5.tar.bz2
samba-8808465e5b70fd6388ed02a2cfda6015ffc914e5.zip
r9133: a huge import of the qooxdoo infrastructure. I decided to import all the widgets to make experimenting easy during development. We can trim this back later to only the pieces we use
(This used to be commit 631a56da39ed0daae46ca89e57c10b09cf41c718)
Diffstat (limited to 'swat/style/qooxdoo/widgets/core')
-rw-r--r--swat/style/qooxdoo/widgets/core/QxApplication.js2
-rw-r--r--swat/style/qooxdoo/widgets/core/QxBorder.js2
-rw-r--r--swat/style/qooxdoo/widgets/core/QxBuilder.js3
-rw-r--r--swat/style/qooxdoo/widgets/core/QxClient.js2
-rw-r--r--swat/style/qooxdoo/widgets/core/QxClientWindow.js2
-rw-r--r--swat/style/qooxdoo/widgets/core/QxCommand.js2
-rw-r--r--swat/style/qooxdoo/widgets/core/QxData.js2
-rw-r--r--swat/style/qooxdoo/widgets/core/QxDebug.js2
-rw-r--r--swat/style/qooxdoo/widgets/core/QxDom.js3
-rw-r--r--swat/style/qooxdoo/widgets/core/QxExtend.js4
-rw-r--r--swat/style/qooxdoo/widgets/core/QxNativeWindow.js2
-rw-r--r--swat/style/qooxdoo/widgets/core/QxObject.js2
-rw-r--r--swat/style/qooxdoo/widgets/core/QxSelectionStorage.js2
-rw-r--r--swat/style/qooxdoo/widgets/core/QxTarget.js3
-rw-r--r--swat/style/qooxdoo/widgets/core/QxTimer.js2
-rw-r--r--swat/style/qooxdoo/widgets/core/QxUserApplication.js2
-rw-r--r--swat/style/qooxdoo/widgets/core/QxXmlHttpLoader.js2
17 files changed, 39 insertions, 0 deletions
diff --git a/swat/style/qooxdoo/widgets/core/QxApplication.js b/swat/style/qooxdoo/widgets/core/QxApplication.js
new file mode 100644
index 0000000000..3d1dbbafa3
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/core/QxApplication.js
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxApplication(){if(QxApplication._instance){return QxApplication._instance;};QxTarget.call(this);window.onload=function(){window.application.init();};QxApplication._instance=this;};QxApplication.extend(QxTarget,"QxApplication");proto._clientWindow=null;proto._activeWidget=null;proto._userApplication=null;proto.coreObjects=["QxClient","QxClientWindow","QxClientDocument","QxWidget","QxEventManager","QxFocusManager","QxTarget","QxEvent","QxMouseEvent","QxKeyEvent"];proto.initcheck=function(){var ok=true;if(!document.body){return;};var c=this.coreObjects;for(var i=0,cl=c.length;i<cl;i++){if(typeof window[c[i]]!="function"){ok=false;};};if(ok){window.clearInterval(this._loadHandle);return this.init();};};proto.init=function(){window._appstart=(new Date).valueOf();var irun=(window._appstart-window._start);var iobj=QxObject._i3.length;var iper=String(irun/iobj);iper=iper.substring(0,iper.indexOf(".")+4)+"ms";this.debug("Init Runtime:"+irun+"ms");this.debug("Init Object Count:"+iobj);this.debug("Init Object Perf:"+iper);this._clientWindow=new QxClientWindow(window);if(typeof window.application.main=="function"){window.application.main();};window._appstop=window._stop=(new Date).valueOf();var mrun=(window._appstop-window._appstart);var mobj=(QxObject._i3.length-iobj);var mper=String(mrun/mobj);mper=mper.substring(0,mper.indexOf(".")+4)+"ms";this.debug("Main Runtime:"+mrun+"ms");this.debug("Main Object Count:"+mobj);this.debug("Main Object Perf:"+mper);};proto.setActiveWidget=function(v){this._activeWidget=v;};proto.getActiveWidget=function(){return this._activeWidget;};proto.getClientWindow=function(){return this._clientWindow;};proto.getPath=function(){var p=window.location.href;var v=p.substring(0,p.lastIndexOf("/"));return v;};proto.getUserApplication=function(){return this._userApplication;};proto.setUserApplication=function(userApplication){this._userApplication=userApplication;};proto.dispose=function(){if(this.getDisposed()){return;};var dispose_start=(new Date).valueOf();if(this._clientWindow){this._clientWindow.dispose();this._clientWindow=null;};this._activeWidget=null;QxTarget.prototype.dispose.call(this);QxObject.dispose();QxDebug("QxApplication","Dispose total:"+((new Date).valueOf()-dispose_start)+"ms");};window.application=new QxApplication; \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/core/QxBorder.js b/swat/style/qooxdoo/widgets/core/QxBorder.js
new file mode 100644
index 0000000000..007cdd307f
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/core/QxBorder.js
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxBorder(bWidth,bStyle,bColor){QxTarget.call(this);this._h1={};this._widgets={};this._h2={top:"",right:"",bottom:"",left:"",topColors:"",rightColors:"",bottomColors:"",leftColors:""};if(isValid(bWidth)&&bWidth!=0){this.setWidth(bWidth);};if(isValid(bStyle)){this.setStyle(bStyle);};if(isValid(bColor)){this.setColor(bColor);};};QxBorder.extend(QxTarget,"QxBorder");QxBorder.addProperty({name:"topWidth",type:Number,defaultValue:0,impl:"borderTopProperty"});QxBorder.addProperty({name:"rightWidth",type:Number,defaultValue:0,impl:"borderRightProperty"});QxBorder.addProperty({name:"bottomWidth",type:Number,defaultValue:0,impl:"borderBottomProperty"});QxBorder.addProperty({name:"leftWidth",type:Number,defaultValue:0,impl:"borderLeftProperty"});QxBorder.addProperty({name:"topStyle",type:String,defaultValue:"none",impl:"borderTopProperty"});QxBorder.addProperty({name:"rightStyle",type:String,defaultValue:"none",impl:"borderRightProperty"});QxBorder.addProperty({name:"bottomStyle",type:String,defaultValue:"none",impl:"borderBottomProperty"});QxBorder.addProperty({name:"leftStyle",type:String,defaultValue:"none",impl:"borderLeftProperty"});QxBorder.addProperty({name:"topColor",type:QxColor,defaultValue:"transparent",impl:"borderTopProperty"});QxBorder.addProperty({name:"rightColor",type:QxColor,defaultValue:"transparent",impl:"borderRightProperty"});QxBorder.addProperty({name:"bottomColor",type:QxColor,defaultValue:"transparent",impl:"borderBottomProperty"});QxBorder.addProperty({name:"leftColor",type:QxColor,defaultValue:"transparent",impl:"borderLeftProperty"});QxBorder.styleDecl={top:"borderTop",right:"borderRight",bottom:"borderBottom",left:"borderLeft"};QxBorder.geckoColorDecl={top:"MozBorderTopColors",right:"MozBorderRightColors",bottom:"MozBorderBottomColors",left:"MozBorderLeftColors"};QxBorder.fromString=function(s){var b=new QxBorder;var parts = s.split(/\s+/);var p;for(var i=0;i<parts.length;i++){p=parts[i];switch(p){case "groove":case "ridge":case "inset":case "outset":case "solid":case "dotted":case "dashed":case "double":case "none":b.setStyle(p);break;default:var n=parseFloat(p);if(n==p||p.indexOf("px")!=-1){b.setWidth(n);}else {b.setColor(p);};break;};};return b;};if((new QxClient).isOpera()){proto._generateDefString=function(bWidth,bStyle,bColor){var sWidth=typeof bWidth=="number"&&bWidth>=0&&bWidth<1000?bWidth+"px":"0px";var bStyle=typeof bStyle=="string"&&bStyle!=""?bStyle:"solid";var bColor=typeof bColor=="string"?bColor:"";if(bColor==""){switch(bStyle){case "groove":case "ridge":bColor="ThreeDHighlight";break;case "outset":case "inset":bColor="ThreeDFace";break;};};return sWidth+" "+bStyle+" "+(bColor!=""?" "+bColor:"");};}else {proto._generateDefString=function(bWidth,bStyle,bColor){var sWidth=typeof bWidth=="number"&&bWidth>=0&&bWidth<1000?bWidth+"px":"0px";var bStyle=typeof bStyle=="string"&&bStyle!=""?bStyle:"solid";var bColor=typeof bColor=="string"?bColor:"";return sWidth+" "+bStyle+" "+(bColor!=""?" "+bColor:"");};};proto.addWidget=function(o){this._widgets[o.toHash()]=o;this._applyWidget(o);};proto.removeWidget=function(o){delete this._widgets[o.toHash()];this._resetWidget(o);};proto.setWidth=function(bWidth,_b4){this.setTopWidth(bWidth,_b4);this.setRightWidth(bWidth,_b4);this.setBottomWidth(bWidth,_b4);this.setLeftWidth(bWidth,_b4);return true;};proto.setStyle=function(bStyle,_b4){this.setTopStyle(bStyle,_b4);this.setRightStyle(bStyle,_b4);this.setBottomStyle(bStyle,_b4);this.setLeftStyle(bStyle,_b4);return true;};proto.setColor=function(bColor,_b4){this.setTopColor(bColor,_b4);this.setRightColor(bColor,_b4);this.setBottomColor(bColor,_b4);this.setLeftColor(bColor,_b4);return true;};proto._modifyBorderTopProperty=function(_b1,_b2,_b3,_b4){this._h1[_b3]=_b1;this._h2.top=this._generateDefString(this._h1["topWidth"],this._h1["topStyle"],this._h1["topColor"]);this._h3Top();this._sync("top");return true;};if((new QxClient).isGecko()){proto._h3Top=function(){if(typeof this._h1["topColor"]=="string"&&this._h1["topColor"]!=""){this._h2["topColors"]="";}else {switch(this._h1["topStyle"]){case "groove":this._h2["topColors"]="ThreeDShadow ThreeDHighlight";break;case "ridge":this._h2["topColors"]="ThreeDHighlight ThreeDShadow";break;case "inset":this._h2["topColors"]="ThreeDShadow ThreeDDarkShadow";break;case "outset":this._h2["topColors"]="ThreeDLightShadow ThreeDHighlight";break;default:this._h2["topColors"]="";};};};}else {proto._h3Top=function(){};};proto._modifyBorderRightProperty=function(_b1,_b2,_b3,_b4){this._h1[_b3]=_b1;this._h2.right=this._generateDefString(this._h1["rightWidth"],this._h1["rightStyle"],this._h1["rightColor"]);this._h3Right();this._sync("right");return true;};if((new QxClient).isGecko()){proto._h3Right=function(){if(typeof this._h1["rightColor"]=="string"&&this._h1["rightColor"]!=""){this._h2["rightColors"]="";}else {switch(this._h1["rightStyle"]){case "groove":this._h2["rightColors"]="ThreeDHighlight ThreeDShadow";break;case "ridge":this._h2["rightColors"]="ThreeDShadow ThreeDHighlight";break;case "inset":this._h2["rightColors"]="ThreeDHighlight ThreeDLightShadow";break;case "outset":this._h2["rightColors"]="ThreeDDarkShadow ThreeDShadow";break;default:this._h2["rightColors"]="";};};};}else {proto._h3Right=function(){};};proto._modifyBorderBottomProperty=function(_b1,_b2,_b3,_b4){this._h1[_b3]=_b1;this._h2.bottom=this._generateDefString(this._h1["bottomWidth"],this._h1["bottomStyle"],this._h1["bottomColor"]);this._h3Bottom();this._sync("bottom");return true;};if((new QxClient).isGecko()){proto._h3Bottom=function(){if(typeof this._h1["bottomColor"]=="string"&&this._h1["bottomColor"]!=""){this._h2["bottomColors"]="";}else {switch(this._h1["bottomStyle"]){case "groove":this._h2["bottomColors"]="ThreeDHighlight ThreeDShadow";break;case "ridge":this._h2["bottomColors"]="ThreeDShadow ThreeDHighlight";break;case "inset":this._h2["bottomColors"]="ThreeDHighlight ThreeDLightShadow";break;case "outset":this._h2["bottomColors"]="ThreeDDarkShadow ThreeDShadow";break;default:this._h2["bottomColors"]="";};};};}else {proto._h3Bottom=function(){};};proto._modifyBorderLeftProperty=function(_b1,_b2,_b3,_b4){this._h1[_b3]=_b1;this._h2.left=this._generateDefString(this._h1["leftWidth"],this._h1["leftStyle"],this._h1["leftColor"]);this._h3Left();this._sync("left");return true;};if((new QxClient).isGecko()){proto._h3Left=function(){if(typeof this._h1["leftColor"]=="string"&&this._h1["leftColor"]!=""){this._h2["leftColors"]="";}else {switch(this._h1["leftStyle"]){case "groove":this._h2["leftColors"]="ThreeDShadow ThreeDHighlight";break;case "ridge":this._h2["leftColors"]="ThreeDHighlight ThreeDShadow";break;case "inset":this._h2["leftColors"]="ThreeDShadow ThreeDDarkShadow";break;case "outset":this._h2["leftColors"]="ThreeDLightShadow ThreeDHighlight";break;default:this._h2["leftColors"]="";};};};}else {proto._h3Left=function(){};};proto._sync=function(bProp){for(i in this._widgets){this._applyWidgetProp(this._widgets[i],bProp);};};if((new QxClient).isGecko()){proto._applyWidgetProp=function(o,bProp){if(typeof o=="undefined"||o==null){throw new Error("Failed to get widget to update border:"+o);};c=QxBorder.styleDecl;o.setStyleProperty(c[bProp],this._h2[bProp]);c=QxBorder.geckoColorDecl;o.setStyleProperty(c[bProp],this._h2[bProp+"Colors"]);};proto._applyWidget=function(o){if(typeof o=="undefined"||o==null||(!o instanceof QxWidget)){throw new Error("Failed to get widget to update border:"+o);};var c;with(this._h2){c=QxBorder.styleDecl;o.setStyleProperty(c.top,top);o.setStyleProperty(c.right,right);o.setStyleProperty(c.bottom,bottom);o.setStyleProperty(c.left,left);c=QxBorder.geckoColorDecl;o.setStyleProperty(c.top,topColors);o.setStyleProperty(c.right,rightColors);o.setStyleProperty(c.bottom,bottomColors);o.setStyleProperty(c.left,leftColors);};};proto._resetWidget=function(o){var c=QxBorder.styleDecl;o.setStyleProperty(c.top,"");o.setStyleProperty(c.right,"");o.setStyleProperty(c.bottom,"");o.setStyleProperty(c.left,"");c=QxBorder.geckoColorDecl;o.setStyleProperty(c.top,"");o.setStyleProperty(c.right,"");o.setStyleProperty(c.bottom,"");o.setStyleProperty(c.left,"");};}else {proto._applyWidgetProp=function(o,bProp){if(typeof o=="undefined"||o==null){throw new Error("Failed to get widget to update border:"+o);};c=QxBorder.styleDecl;o.setStyleProperty(c[bProp],this._h2[bProp]);};proto._applyWidget=function(o){if(typeof o=="undefined"||o==null||(!o instanceof QxWidget)){throw new Error("Failed to get widget to update border:"+o);};var c;with(this._h2){c=QxBorder.styleDecl;o.setStyleProperty(c.top,top);o.setStyleProperty(c.right,right);o.setStyleProperty(c.bottom,bottom);o.setStyleProperty(c.left,left);};};proto._resetWidget=function(o){var c=QxBorder.styleDecl;o.setStyleProperty(c.top,"");o.setStyleProperty(c.right,"");o.setStyleProperty(c.bottom,"");o.setStyleProperty(c.left,"");};};QxBorder.presets={inset:new QxBorder(2,"inset"),outset:new QxBorder(2,"outset"),groove:new QxBorder(2,"groove"),ridge:new QxBorder(2,"ridge"),thinInset:new QxBorder(1,"solid","ThreeDShadow"),thinOutset:new QxBorder(1,"solid","ThreeDShadow"),black:new QxBorder(1,"solid","black"),white:new QxBorder(1,"solid","white"),shadow:new QxBorder(1,"solid","ThreeDShadow")};with(QxBorder.presets.thinInset){setRightColor("ThreeDHighlight");setBottomColor("ThreeDHighlight");};with(QxBorder.presets.thinOutset){setLeftColor("ThreeDHighlight");setTopColor("ThreeDHighlight");};proto.dispose=function(){if(typeof this._widgets=="object"){for(var i;i<this._widgets.length;i++){delete this._widgets[i];};};delete this._widgets;if(typeof this._h1=="object"){for(var i in this._h1){delete this._h1[i];};};delete this._h1;if(typeof this._h2=="object"){for(var i in this._h2){delete this._h2[i];};};delete this._h2;return QxTarget.prototype.dispose.call(this);}; \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/core/QxBuilder.js b/swat/style/qooxdoo/widgets/core/QxBuilder.js
new file mode 100644
index 0000000000..c9b3277493
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/core/QxBuilder.js
@@ -0,0 +1,3 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxBuilder(flags){QxTarget.call(this);this._propertyEditors={};this._registerDefaultPropertyEditors();this._radioButtonManagers={};this._debugContext=[];this._flags=flags||{};if(this._flags.strict==null){this._flags.strict=true;};};QxBuilder.extend(QxTarget,"QxBuilder");proto.buildFromUrl=function(parent,url){var loader=new QxXmlHttpLoader();var self=this;loader.addEventListener("complete",function(e){self.build(parent,e.getValue());e.preventDefault();self.dispatchEvent(new QxEvent("done"),true);});loader.load(url);};proto.build=function(parent,node){if(parent instanceof QxApplication){parent=parent.getClientWindow().getDocument();};if(typeof node=="object"&&node.nodeName=='TEXTAREA'){node=node.value;};if(typeof node=="string"){if(new QxClient().isMshtml()){var xmlDoc=new ActiveXObject("Microsoft.XMLDOM");xmlDoc.async=false;xmlDoc.loadXML(node);node=xmlDoc.documentElement;if(xmlDoc.parseError.errorCode!=0){throw new Error("error parsing xml "+xmlDoc.parseError+"\nLine:"+xmlDoc.parseError.line+':'+xmlDoc.parseError.srcText);};}else{var parser=new DOMParser();node=parser.parseFromString(node,"text/xml").documentElement;};};this._buildNodes(parent,node.childNodes);};proto._buildNodes=function(parent,nodes){var x=0;for(var i=0;i<nodes.length;i++){var n=nodes[i];if(n.nodeType==1){this._debugContext.push(n.nodeName+'['+(x++)+']');this._buildWidgetFromNode(parent,n);this._debugContext.pop();};};};proto._buildEventListener=function(widget,args,text){if(isInvalidString(args.type)){throw this._newBuildError('eventListener requires a string type attribute');};var self=this;if(isValidString(args.delegate)){var dc=this._formatDebugContext();if(args.delegate.indexOf('.')>-1){var p=args.delegate.split('.');var o=p[0];var m=p[1];widget.addEventListener(args.type,function(e){if(!window[o]){throw self._newError(dc,'delegate not found',{delegate:args.delegate});};if(!window[o][m]){throw self._newError(dc,'delegate not found',{delegate:args.delegate});};window[o][m].apply(window[o],[e]);});}else{widget.addEventListener(args.type,function(e){if(!window[args.delegate]){throw self._newError(dc,'delegate not found',{delegate:args.delegate});};window[args.delegate].apply(null,[e]);});};}else{if(!args.args){args.args="event";};var f=new Function(args.args,text);widget.addEventListener(args.type,f);};};proto._buildWidgetFromNode=function(parent,node){var className=this._extractClassName(node);if(!className){if(parent instanceof QxAtom){var text=this._serializeToString(node);parent.setText((parent.getText()||"")+text);return;};throw this._newBuildError("unrecognised node",{nodeName:node.nodeName});};if(className=="QxWidgets"){this._buildNodes(parent,node.childNodes);return;};if(className=="QxScript"){var e=document.createElement("script");var attribs=this._mapXmlAttribToObject(node);if(attribs.type){e.type=attribs.type;}else{e.type='text/javascript';};if((new QxClient).isMshtml()){e.innerHTML=eval(node.firstChild.nodeValue);}else {e.innerHTML=node.firstChild.nodeValue;};document.body.appendChild(e);return;};if(className=="QxEventListener"){var attribs=this._mapXmlAttribToObject(node);var text;if(node.firstChild){text=node.firstChild.nodeValue;};this._buildEventListener(parent,attribs,text);return;};var constructor=window[className];if(!constructor){throw this._newBuildError("constructor not found",{className:className});};var widget=new constructor();var attribs=this._mapXmlAttribToObject(node,widget);delete attribs['qxtype'];if(attribs.id){window[attribs.id]=widget;delete attribs.id;};for(var a in attribs){if(a.toLowerCase().indexOf('on')==0&&a.length>2){var type=a.substring(2);type=type.charAt(0)+type.substring(1);this._buildEventListener(widget,{type:type,args:'event'},attribs[a]);delete attribs[a];};};var layoutHint;if(typeof QxLayout!="undefined"&&parent instanceof QxLayout){if(attribs.layouthint){try{eval('layoutHint={'+attribs.layouthint+'}');}catch(e){throw this._newBuildError('invalid property value',{name:'layoutHint',value:attrib.layoutHint},e);};delete attribs.layouthint;};};for(var n in attribs){this._debugContext.push("@"+n);this._setWidgetProperty(widget,n,attribs[n]);this._debugContext.pop();};if(typeof QxMenu!="undefined"&&widget instanceof QxMenu){window.application.getClientWindow().getDocument().add(widget);parent.setMenu(widget);}else if(layoutHint&&typeof QxLayout!="undefined"&&parent instanceof QxLayout){parent.add(widget,layoutHint);}else{parent.add(widget);};this._buildNodes(widget,node.childNodes);};proto._setWidgetProperty=function(widget,name,value){var editor=this._findPropertyEditor(widget.classname,name);if(!editor){editor=this._coercePropertyEditor;};editor.set(widget,name,value);};proto._findPropertyEditor=function(className,propertyName){var m=this._propertyEditors[className];if(m&&m[propertyName]){return m[propertyName];};var w=window[className];if(w&&w.prototype.superclass&&w.prototype.superclass.prototype.classname){return this._findPropertyEditor(w.prototype.superclass.prototype.classname,propertyName);};return null;};proto.registerPropertyEditor=function(className,propertyName,editor){if(!this._propertyEditors[className])this._propertyEditors[className]={};this._propertyEditors[className][propertyName]=editor;};proto._registerDefaultPropertyEditors=function(){var self=this;var commaDelimitedPropertyEditor={};commaDelimitedPropertyEditor.set=function(widget,name,value){if(value==null||value==""){self._setProperty(widget,name,null);return;};var s=value.split(",");var v=[];for(var i=0;i<s.length;i++){v[i]=self._coerce(s[i]);};self._setProperties(widget,name,v);};var evalPropertyEditor={};evalPropertyEditor.set=function(widget,name,value){if(value==null||value==""){self._setProperty(widget,name,null);return;};self._setProperty(widget,name,eval(value));};var radioButtonManagerEditor={};radioButtonManagerEditor.set=function(widget,name,value){var manager=self._radioButtonManagers[value];if(!manager){manager=new QxRadioButtonManager(value);self._radioButtonManagers[value]=manager;};manager.add(widget);};this.registerPropertyEditor('QxWidget','location',commaDelimitedPropertyEditor);this.registerPropertyEditor('QxWidget','dimension',commaDelimitedPropertyEditor);this.registerPropertyEditor('QxWidget','styleproperty',commaDelimitedPropertyEditor);this.registerPropertyEditor('QxWidget','border',evalPropertyEditor);this.registerPropertyEditor('QxMenuRadioButton','group',radioButtonManagerEditor);this.registerPropertyEditor('QxRadioButton','group',radioButtonManagerEditor);this._coercePropertyEditor={};this._coercePropertyEditor.set=function(widget,name,value){self._setProperty(widget,name,self._coerce(value));};};proto._coerce=function(value){if(value==null)return value;if(typeof value=='object')return value;if(typeof value=='function')return value;if(typeof value=='number')return value;if(typeof value=='boolean')return value;if(typeof value=='date')return value;if(typeof value=='array')return value;var n=new Number(value);if(!isNaN(n))return n.valueOf();if(value=="true")return true;if(value=="false")return false;var d=Date.parse(value);if(d!=null&&!isNaN(d))return d;if(typeof value=='string'){if(value=="")return null;};return value;};proto._setProperty=function(widget,name,value){this._setProperties(widget,name,[value]);};proto._setProperties=function(widget,name,value){var n="set"+name;for(var a in widget){if(n==a.toLowerCase()){var setter=widget[a];break;};};if(!setter&&this._flags.strict)throw this._newBuildError('no setter defined on widget instance',{widget:widget,property:name});setter.apply(widget,value);};proto._extractClassName=function(node){var n;if(node.nodeName.toUpperCase()=="DIV"){if(!node.attributes['qxtype']){return null
+};n=node.attributes['qxtype'].value;}else{n=node.nodeName;};var nameParts=n.split(":");if(nameParts.length!=2){return null;};return nameParts[0].toFirstUp()+nameParts[1].toFirstUp();};proto._serializeToString=function(node){var xmlSerializer=new XMLSerializer();return xmlSerializer.serializeToString(node);};proto._mapXmlAttribToObject=function(node){var r={};var c=node.attributes;for(var i=0;i<c.length;i++){r[c[i].name.toLowerCase()]=c[i].value;};return r;};proto._newBuildError=function(message,data,exception){return this._newError(this._formatDebugContext(),message,data,exception);};proto._newError=function(debugContext,message,data,exception){var m=message;var joiner="";var d="";if(data){for(var p in data){d+=joiner+p+"="+data[p]+'';joiner=" ";};m+=" "+d+" ";};m+=" context:"+debugContext+" ";if(exception){m+=" error:"+exception+" ";};return new Error(m);};proto._formatDebugContext=function(){var s="";for(var i=0;i<this._debugContext.length;i++){var v=this._debugContext[i];s+='/'+v;};return s;}; \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/core/QxClient.js b/swat/style/qooxdoo/widgets/core/QxClient.js
new file mode 100644
index 0000000000..19851a9850
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/core/QxClient.js
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxClient(){if(QxClient._instance){return QxClient._instance;};var n=navigator;var u=n.userAgent;var v=n.vendor;var p=n.product;var r=null;if(window.opera){r="opera";}else if(typeof v=="string"&&v=="KDE"){r="khtml";}else if(typeof p=="string"&&p=="Gecko"){r="gecko";}else if (/msie/i.test(u)){r="mshtml";};this.engine=r;this.mshtml=r=="mshtml";this.gecko=r=="gecko";this.opera=r=="opera";this.khtml=r=="khtml";n=u=v=p=r=null;QxClient._instance=this;};QxClient.extend(Object,"QxClient");proto.getEngine=function(){return this.engine;};proto.isMshtml=function(){return this.engine=="mshtml";};proto.isGecko=function(){return this.engine=="gecko";};proto.isOpera=function(){return this.engine=="opera";};proto.isKhtml=function(){return this.engine=="khtml";};proto.isNotMshtml=function(){return !this.isMshtml();};proto.isNotGecko=function(){return !this.isGecko();};proto.isNotOpera=function(){return !this.isMshtml();};proto.isNotKhtml=function(){return !this.isKhtml();};window.client=new QxClient; \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/core/QxClientWindow.js b/swat/style/qooxdoo/widgets/core/QxClientWindow.js
new file mode 100644
index 0000000000..060d637e78
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/core/QxClientWindow.js
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxClientWindow(windowElement){QxTarget.call(this);this._h3=windowElement;this._h3._QxClientWindow=this;this._addUnloadEvent(windowElement);this._h4=new QxClientDocument(this);this._h5=new QxEventManager(this);this._h6=new QxFocusManager(this);};QxClientWindow.extend(QxTarget,"QxClientWindow");proto.getEventManager=function(){return this._h5;};proto.getFocusManager=function(){return this._h6;};proto.getClientDocument=function(){return this._h4;};proto.getDocument=function(){return this._h4;};proto.getElement=function(){return this._h3;};if((new QxClient).isMshtml()){proto._addUnloadEvent=function(el){if(el==window){el.attachEvent("onunload",new Function("(new QxApplication).dispose();"));}else {el.attachEvent("onunload",function(e){if(el._QxClientWindow){el._QxClientWindow.dispose();el._QxClientWindow=null;};});};};}else if((new QxClient).isGecko()){proto._addUnloadEvent=function(el){if(el==window){el.addEventListener("unload",new Function("(new QxApplication).dispose();"),false);}else {el.addEventListener("unload",function(e){if(el._QxClientWindow){el._QxClientWindow.dispose();el._QxClientWindow=null;};},false);};};}else {proto._addUnloadEvent=function(el){};};proto.dispose=function(){if(this.getDisposed()){return;};if(this._h3){this._h3._QxClientWindow=null;this._h3=null;};if(this._h5){this._h5.dispose();this._h5=null;};if(this._h6){this._h6.dispose();this._h6=null;};if(this._h4){this._h4.dispose();this._h4=null;};QxTarget.prototype.dispose.call(this);return true;}; \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/core/QxCommand.js b/swat/style/qooxdoo/widgets/core/QxCommand.js
new file mode 100644
index 0000000000..488de0dd34
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/core/QxCommand.js
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxCommand(vShortcut,vKeyCode,vManager){QxTarget.call(this);if(isValid(vShortcut)){this.setShortcut(vShortcut);};if(isValid(vKeyCode)){this.setKeyCode(vKeyCode);};this.setManager(isValid(vManager)?vManager:window.application.getClientWindow().getEventManager());};QxCommand.extend(QxTarget,"QxCommand");QxCommand.addProperty({name:"checked",type:Boolean,defaultValue:false});QxCommand.addProperty({name:"shortcut",type:String});QxCommand.addProperty({name:"keyCode",type:Number});QxCommand.addProperty({name:"manager",type:Object});proto.execute=function(vTarget){this.dispatchEvent(new QxDataEvent("execute",vTarget));return false;};proto._shortcutParts={};proto._modifyShortcut=function(_b1,_b2,_b3,_b4){if(_b1){var a = _b1.toLowerCase().split(/[-+\s]+/);var al=a.length;this._shortcutParts={};for(var i=0;i<al;i++){this._shortcutParts[a[i]]=true;};}else {this._shortcutParts=null;};return true;};proto._modifyManager=function(_b1,_b2,_b3,_b4){if(_b2){_b2.removeCommand(this);};if(_b1){_b1.addCommand(this);};return true;};proto._matchesKeyEvent=function(e){if(!(isValid(this.getShortcut())||isValid(this.getKeyCode()))){return false;};if((this._shortcutParts.shift&&!e.getShiftKey())||(this._shortcutParts.ctrl&&!e.getCtrlKey())||(this._shortcutParts.alt&&!e.getAltKey())){return false;};var vEventCode=e.getKeyCode();var vSelfCode=this.getKeyCode();switch(vSelfCode){case null:break;case vEventCode:return true;};var c=String.fromCharCode(vEventCode).toLowerCase();if(this._shortcutParts[c]){return true;};if(vSelfCode==null){for(var vPart in this._shortcutParts){switch(vPart){case "ctrl":case "shift":case "alt":case "control":break;default:if(vEventCode==QxKeyEvent.keys[vPart]){return true;};};};};return false;};proto.toString=function(){var vShortcut=this.getShortcut();var vKeyCode=this.getKeyCode();var vString="";if(isValidString(vShortcut)){vString=vShortcut;if(isValidNumber(vKeyCode)){var vTemp=QxKeyEvent.codes[vKeyCode];vString+="+"+(vTemp?vTemp.toFirstUp():String(vKeyCode));};}else if(isValidNumber(vKeyCode)){var vTemp=QxKeyEvent.codes[vKeyCode];vString=vTemp?vTemp.toFirstUp():String(vKeyCode);};return vString;};proto.dispose=function(){if(this.getDisposed()){return;};this._ownerWindow=null;return QxTarget.prototype.dispose.call(this);}; \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/core/QxData.js b/swat/style/qooxdoo/widgets/core/QxData.js
new file mode 100644
index 0000000000..44b055c85f
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/core/QxData.js
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxData(c){QxTarget.call(this);this._h7=[];this._storeQueue=[];this._cache={};this._interval=new QxTimer(25);this._processRequestQueue=false;var o=this;this._interval.addEventListener("interval",function(){o.checkProcess();});(new QxTimerManager).add(this);};QxData.extend(QxTarget,"QxData");proto.loadData=function(dataKey){if(this.getDisposed()){return;};this._h7.push(dataKey);if(!this._interval.getEnabled()){this._interval.start();};};proto.checkProcess=function(){if(this.getDisposed()){return;};if(this._processRequestQueue){return;};this._processRequestQueue=true;while(this._h7.length>0){this.process(this._h7.shift(),new QxXmlHttpLoader);};this._processRequestQueue=false;this._interval.stop();};proto.process=function(dataKey,loader){if(this.getDisposed()){return;};this._storeQueue.push(dataKey);var o=this;loader.addEventListener("complete",function(e){o.processComplete(e.getData());loader.dispose();});try{loader.load(this.makeRequest(dataKey));}catch(ex){var t=dataKey.indexOf("[");var p0=dataKey.substring(0,t);this.dispatchEvent(new QxDataEvent("update"+p0.toFirstUp(),this),true);loader.dispose();throw new Error("Could not load data:"+ex);};};proto.makeRequest=function(dataKey){var t=dataKey.indexOf("[");var p0=dataKey.substring(0,t);var p1=dataKey.substring(t+1,dataKey.length-1);return "data/" + p0 + "/" + p1 + ".xml" + "?r=" + Math.round(Math.random()^Math.random()*100000);};proto.processComplete=function(xmlData){var req=this.getRequest(xmlData);var res=this.parseData(req,xmlData);this.mergeCacheData(res);this.dispatchEvent(new QxDataEvent("update"+req.toFirstUp(),this),true);};proto.getRequest=function(xmlData){return xmlData.documentElement.getElementsByTagName("PfxRequest")[0].getElementsByTagName("PfxSoap")[0].getAttribute("reqname");};proto.getResultXml=function(xmlData){return xmlData.documentElement.getElementsByTagName("PfxResult")[0];};proto.mapXmlToObject=function(xmlFrag){var r={};var c=xmlFrag.childNodes;for(var i=0;i<c.length;i++){if(c[i].nodeType==1){r[c[i].tagName]=c[i].firstChild.nodeValue;};};return r;};proto.parseData=function(req,xmlData){var handler=this["_parseData_"+req];if(typeof handler!="function"){throw new Error("QxData:The Parser function is not defined:_parseData_"+req+"!");};return handler.call(this,xmlData);};proto.mergeCacheData=function(res){for(i in res){this._cache[i]=res[i];};};proto.dispose=function(){if(this._disposed){return;};QxObject.prototype.dispose.call(this);if(typeof this._h7=="object"){for(var i=0;i<this._h7.length;i++){delete this._h7[i];};};delete this._h7;if(typeof this._storeQueue=="object"){for(var i=0;i<this._storeQueue.length;i++){delete this._storeQueue[i];};};delete this._storeQueue;if(typeof this._cache=="object"){for(i in this._cache){delete this._cache[i];};};this._cache=null;if(this._interval){this._interval.dispose();};this._interval=null;this._processRequestQueue=null;}; \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/core/QxDebug.js b/swat/style/qooxdoo/widgets/core/QxDebug.js
new file mode 100644
index 0000000000..66ac659cfd
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/core/QxDebug.js
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+window._start=(new Date).valueOf();function QxDebug(){var t=String((new Date).valueOf()-window._start);while(t.length<5)t="0"+t;t+=":&#160;";var m;if(arguments.length==2){if(arguments[0]==this.last){m=t+"&#160;&#160;"+arguments[1]+"<br/>";}else {m = t + arguments[0] + "<br/>" + t + "&#160;&#160;" + arguments[1] + "<br/>";this.last=arguments[0];};}else {m=t+arguments[0];};var d=document.getElementById("testDebug");if(!d){QxDebug.cache+=m;}else {if(QxDebug.cache!=""){d.innerHTML+=QxDebug.cache;QxDebug.cache="";};d.innerHTML+=m;};};QxDebug.cache="";function QxDebugTimer(id){if(QxDebugTimerCache[id]){QxDebug("QxDebugTimer",id+":"+((new Date).valueOf()-QxDebugTimerCache[id])+"ms");delete QxDebugTimerCache[id];}else {QxDebugTimerCache[id]=(new Date).valueOf();};};QxDebugTimerCache={}; \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/core/QxDom.js b/swat/style/qooxdoo/widgets/core/QxDom.js
new file mode 100644
index 0000000000..34b35caa77
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/core/QxDom.js
@@ -0,0 +1,3 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+var QxDOM=new Object;if(Boolean(document.defaultView)&&Boolean(document.defaultView.getComputedStyle)){QxDOM.getComputedStyleProperty=function(el,prop){return !el?null:el.ownerDocument?el.ownerDocument.defaultView.getComputedStyle(el,"")[prop]:el.style[prop];};}else if((new QxClient).isMshtml()){QxDOM.getComputedStyleProperty=function(el,prop){if(!el){return null;};if(el.parentNode){return el.currentStyle[prop];}else {var v1=el.runtimeStyle[prop];if(v1!=null&&typeof v1!="undefined"){return v1;};return el.style[prop];};};}else {QxDOM.getComputedStyleProperty=function(el,prop){return !el?null:el.style[prop];};};QxDOM.getComputedStyleSize=function(el,prop){return parseInt(QxDOM.getComputedStyleProperty(el,prop))||0;};QxDOM.getComputedMarginLeft=function(el){return QxDOM.getComputedStyleSize(el,"marginLeft");};QxDOM.getComputedMarginTop=function(el){return QxDOM.getComputedStyleSize(el,"marginTop");};QxDOM.getComputedMarginRight=function(el){return QxDOM.getComputedStyleSize(el,"marginRight");};QxDOM.getComputedMarginBottom=function(el){return QxDOM.getComputedStyleSize(el,"marginBottom");};QxDOM.getComputedPaddingLeft=function(el){return QxDOM.getComputedStyleSize(el,"paddingLeft");};QxDOM.getComputedPaddingTop=function(el){return QxDOM.getComputedStyleSize(el,"paddingTop");};QxDOM.getComputedPaddingRight=function(el){return QxDOM.getComputedStyleSize(el,"paddingRight");};QxDOM.getComputedPaddingBottom=function(el){return QxDOM.getComputedStyleSize(el,"paddingBottom");};QxDOM.getComputedBorderLeft=function(el){return QxDOM.getComputedStyleProperty(el,"borderLeftStyle")=="none"?0:QxDOM.getComputedStyleSize(el,"borderLeftWidth");};QxDOM.getComputedBorderTop=function(el){return QxDOM.getComputedStyleProperty(el,"borderTopStyle")=="none"?0:QxDOM.getComputedStyleSize(el,"borderTopWidth");};QxDOM.getComputedBorderRight=function(el){return QxDOM.getComputedStyleProperty(el,"borderRightStyle")=="none"?0:QxDOM.getComputedStyleSize(el,"borderRightWidth");};QxDOM.getComputedBorderBottom=function(el){return QxDOM.getComputedStyleProperty(el,"borderBottomStyle")=="none"?0:QxDOM.getComputedStyleSize(el,"borderBottomWidth");};QxDOM.getComputedOuterWidth=function(el){return QxDOM.getComputedBoxWidth(el)+QxDOM.getComputedMarginLeft(el)+QxDOM.getComputedMarginRight(el);};QxDOM.getComputedOuterHeight=function(el){return QxDOM.getComputedBoxHeight(el)+QxDOM.getComputedMarginTop(el)+QxDOM.getComputedMarginBottom(el);};QxDOM.getComputedBoxWidth=function(el){var h=el.offsetHeight;if(h==0){var o=el.style.height;el.style.height="1px";};var v=el.offsetWidth;if(h==0){el.style.height=o;};return v;};QxDOM.getComputedBoxHeight=function(el){var w=el.offsetWidth;if(w==0){var o=el.style.width;el.style.width="1px";};var v=el.offsetHeight;if(w==0){el.style.width=o;};return v;};if((new QxClient).isGecko()){QxDOM.getComputedAreaWidth=function(el){if(el.clientWidth!=0&&el.clientWidth!=(QxDOM.getComputedBorderLeft(el)+QxDOM.getComputedBorderRight(el))){return el.clientWidth;}else {return QxDOM.getComputedBoxWidth(el)-QxDOM.getComputedInsetLeft(el)-QxDOM.getComputedInsetRight(el);};};QxDOM.getComputedAreaHeight=function(el){if(el.clientHeight!=0&&el.clientHeight!=(QxDOM.getComputedBorderTop(el)+QxDOM.getComputedBorderBottom(el))){return el.clientHeight;}else {return QxDOM.getComputedBoxHeight(el)-QxDOM.getComputedInsetTop(el)-QxDOM.getComputedInsetBottom(el)};};}else {QxDOM.getComputedAreaWidth=function(el){return el.clientWidth!=0?el.clientWidth:(QxDOM.getComputedBoxWidth(el)-QxDOM.getComputedInsetLeft(el)-QxDOM.getComputedInsetRight(el));};QxDOM.getComputedAreaHeight=function(el){return el.clientHeight!=0?el.clientHeight:(QxDOM.getComputedBoxHeight(el)-QxDOM.getComputedInsetTop(el)-QxDOM.getComputedInsetBottom(el));};};QxDOM.getComputedInnerWidth=function(el){return QxDOM.getComputedAreaWidth(el)-QxDOM.getComputedPaddingLeft(el)-QxDOM.getComputedPaddingRight(el);};QxDOM.getComputedInnerHeight=function(el){return QxDOM.getComputedAreaHeight(el)-QxDOM.getComputedPaddingTop(el)-QxDOM.getComputedPaddingBottom(el);};if((new QxClient).isMshtml()){QxDOM.getComputedInsetLeft=function(el){return el.clientLeft;};QxDOM.getComputedInsetTop=function(el){return el.clientTop;};QxDOM.getComputedInsetRight=function(el){if(QxDOM.getComputedStyleProperty(el,"overflowY")=="hidden"||el.clientWidth==0){return QxDOM.getComputedBorderRight(el);};return Math.max(0,el.offsetWidth-el.clientLeft-el.clientWidth);};QxDOM.getComputedInsetBottom=function(el){if(QxDOM.getComputedStyleProperty(el,"overflowX")=="hidden"||el.clientHeight==0){return QxDOM.getComputedBorderBottom(el);};return Math.max(0,el.offsetHeight-el.clientTop-el.clientHeight);};}else {QxDOM.getComputedInsetLeft=function(el){return QxDOM.getComputedBorderLeft(el);};QxDOM.getComputedInsetTop=function(el){return QxDOM.getComputedBorderTop(el);};QxDOM.getComputedInsetRight=function(el){if(el.clientWidth==0){var ov=QxDOM.getComputedStyleProperty(el,"overflow");var sbv=ov=="scroll"||ov=="-moz-scrollbars-vertical"?16:0;return Math.max(0,QxDOM.getComputedBorderRight(el)+sbv);};return Math.max(0,el.offsetWidth-el.clientWidth-QxDOM.getComputedBorderLeft(el));};QxDOM.getComputedInsetBottom=function(el){if(el.clientHeight==0){var ov=QxDOM.getComputedStyleProperty(el,"overflow");var sbv=ov=="scroll"||ov=="-moz-scrollbars-horizontal"?16:0;return Math.max(0,QxDOM.getComputedBorderBottom(el)+sbv);};return Math.max(0,el.offsetHeight-el.clientHeight-QxDOM.getComputedBorderTop(el));};};QxDOM.getComputedScrollBarSizeLeft=function(el){return 0;};QxDOM.getComputedScrollBarSizeTop=function(el){return 0;};QxDOM.getComputedScrollBarSizeRight=function(el){return QxDOM.getComputedInsetRight(el)-QxDOM.getComputedBorderRight(el);};QxDOM.getComputedScrollBarSizeBottom=function(el){return QxDOM.getComputedInsetBottom(el)-QxDOM.getComputedBorderBottom(el);};QxDOM.getComputedScrollBarVisibleX=function(el){return QxDOM.getComputedScrollBarSizeRight(el)>0;};QxDOM.getComputedScrollBarVisibleY=function(el){return QxDOM.getComputedScrollBarSizeBottom(el)>0;};QxDOM.getScrollLeftSum=function(el){var sum=0;var p=el.parentNode;while(p.nodeType==1){sum+=p.scrollLeft;p=p.parentNode;};return sum;};QxDOM.getScrollTopSum=function(el){var sum=0;var p=el.parentNode;while(p.nodeType==1){sum+=p.scrollTop;p=p.parentNode;};return sum;};QxDOM.getComputedPageOuterLeft=function(el){return QxDOM.getComputedPageBoxLeft(el)-QxDOM.getComputedMarginLeft(el);};QxDOM.getComputedPageOuterTop=function(el){return QxDOM.getComputedPageBoxTop(el)-QxDOM.getComputedMarginTop(el);};QxDOM.getComputedPageOuterRight=function(el){return QxDOM.getComputedPageBoxRight(el)+QxDOM.getComputedMarginRight(el);};QxDOM.getComputedPageOuterBottom=function(el){return QxDOM.getComputedPageBoxBottom(el)+QxDOM.getComputedMarginBottom(el);};QxDOM.getComputedClientOuterLeft=function(el){return QxDOM.getComputedClientBoxLeft(el)-QxDOM.getComputedMarginLeft(el);};QxDOM.getComputedClientOuterTop=function(el){return QxDOM.getComputedClientBoxTop(el)-QxDOM.getComputedMarginTop(el);};QxDOM.getComputedClientOuterRight=function(el){return QxDOM.getComputedClientBoxRight(el)+QxDOM.getComputedMarginRight(el);};QxDOM.getComputedClientOuterBottom=function(el){return QxDOM.getComputedClientBoxBottom(el)+QxDOM.getComputedMarginBottom(el);};if((new QxClient).isMshtml()){QxDOM.getComputedClientBoxLeft=function(el){return el.getBoundingClientRect().left;};QxDOM.getComputedClientBoxTop=function(el){return el.getBoundingClientRect().top;};QxDOM.getComputedPageBoxLeft=function(el){return QxDOM.getComputedClientBoxLeft(el)+QxDOM.getScrollLeftSum(el);};QxDOM.getComputedPageBoxTop=function(el){return QxDOM.getComputedClientBoxTop(el)+QxDOM.getScrollTopSum(el);};}else if((new QxClient).isGecko()){QxDOM.getComputedClientBoxLeft=function(el){return QxDOM.getComputedClientAreaLeft(el)-QxDOM.getComputedBorderLeft(el);};QxDOM.getComputedClientBoxTop=function(el){return QxDOM.getComputedClientAreaTop(el)-QxDOM.getComputedBorderTop(el);};QxDOM.getComputedPageBoxLeft=function(el){return QxDOM.getComputedPageAreaLeft(el)-QxDOM.getComputedBorderLeft(el);};QxDOM.getComputedPageBoxTop=function(el){return QxDOM.getComputedPageAreaTop(el)-QxDOM.getComputedBorderTop(el);};}else {QxDOM.getComputedPageBoxLeft=function(el){var sum=el.offsetLeft;while(el.tagName!="BODY"){el=el.offsetParent;sum+=el.offsetLeft;};return sum;};QxDOM.getComputedPageBoxTop=function(el){var sum=el.offsetTop;while(el.tagName!="BODY"){el=el.offsetParent;sum+=el.offsetTop;};return sum;};QxDOM.getComputedClientBoxLeft=function(el){var sum=el.offsetLeft;while(el.tagName!="BODY"){el=el.offsetParent;sum+=el.offsetLeft-el.scrollLeft;};return sum;};QxDOM.getComputedClientBoxTop=function(el){var sum=el.offsetTop;while(el.tagName!="BODY"){el=el.offsetParent;sum+=el.offsetTop-el.scrollTop;};return sum;};};if((new QxClient).isMshtml()){QxDOM.getComputedClientBoxRight=function(el){return el.getBoundingClientRect().right;};QxDOM.getComputedClientBoxBottom=function(el){return el.getBoundingClientRect().bottom;};QxDOM.getComputedPageBoxRight=function(el){return QxDOM.getComputedClientBoxRight(el)+QxDOM.getScrollLeftSum(el);};QxDOM.getComputedPageBoxBottom=function(el){return QxDOM.getComputedClientBoxBottom(el)+QxDOM.getScrollTopSum(el);};}else {QxDOM.getComputedClientBoxRight=function(el){return QxDOM.getComputedClientBoxLeft(el)+QxDOM.getComputedBoxWidth(el);};QxDOM.getComputedClientBoxBottom=function(el){return QxDOM.getComputedClientBoxTop(el)+QxDOM.getComputedBoxHeight(el);};QxDOM.getComputedPageBoxRight=function(el){return QxDOM.getComputedPageBoxLeft(el)+QxDOM.getComputedBoxWidth(el);};QxDOM.getComputedPageBoxBottom=function(el){return QxDOM.getComputedPageBoxTop(el)+QxDOM.getComputedBoxHeight(el);};};if((new QxClient).isGecko()){QxDOM.getComputedPageAreaLeft=function(el){return el.ownerDocument.getBoxObjectFor(el).x;};QxDOM.getComputedPageAreaTop=function(el){return el.ownerDocument.getBoxObjectFor(el).y;};QxDOM.getComputedClientAreaLeft=function(el){return QxDOM.getComputedPageAreaLeft(el)-QxDOM.getScrollLeftSum(el);};QxDOM.getComputedClientAreaTop=function(el){return QxDOM.getComputedPageAreaTop(el)-QxDOM.getScrollTopSum(el);};}else {QxDOM.getComputedClientAreaLeft=function(el){return QxDOM.getComputedClientBoxLeft(el)+QxDOM.getComputedBorderLeft(el);};QxDOM.getComputedClientAreaTop=function(el){return QxDOM.getComputedClientBoxTop(el)+QxDOM.getComputedBorderTop(el);};QxDOM.getComputedPageAreaLeft=function(el){return QxDOM.getComputedPageBoxLeft(el)+QxDOM.getComputedBorderLeft(el);};QxDOM.getComputedPageAreaTop=function(el){return QxDOM.getComputedPageBoxTop(el)+QxDOM.getComputedBorderTop(el);};};QxDOM.getComputedClientAreaRight=function(el){return QxDOM.getComputedClientAreaLeft(el)+QxDOM.getComputedAreaWidth(el);};QxDOM.getComputedClientAreaBottom=function(el){return QxDOM.getComputedClientAreaTop(el)+QxDOM.getComputedAreaHeight(el);};QxDOM.getComputedPageAreaRight=function(el){return QxDOM.getComputedPageAreaLeft(el)+QxDOM.getComputedAreaWidth(el);};QxDOM.getComputedPageAreaBottom=function(el){return QxDOM.getComputedPageAreaTop(el)+QxDOM.getComputedAreaHeight(el);};QxDOM.getComputedClientInnerLeft=function(el){return QxDOM.getComputedClientAreaLeft(el)+QxDOM.getComputedPaddingLeft(el);};QxDOM.getComputedClientInnerTop=function(el){return QxDOM.getComputedClientAreaTop(el)+QxDOM.getComputedPaddingTop(el);};QxDOM.getComputedClientInnerRight=function(el){return QxDOM.getComputedClientInnerLeft(el)+QxDOM.getComputedInnerWidth(el);};QxDOM.getComputedClientInnerBottom=function(el){return QxDOM.getComputedClientInnerTop(el)+QxDOM.getComputedInnerHeight(el);};QxDOM.getComputedPageInnerLeft=function(el){return QxDOM.getComputedPageAreaLeft(el)+QxDOM.getComputedPaddingLeft(el);};QxDOM.getComputedPageInnerTop=function(el){return QxDOM.getComputedPageAreaTop(el)+QxDOM.getComputedPaddingTop(el);};QxDOM.getComputedPageInnerRight=function(el){return QxDOM.getComputedPageInnerLeft(el)+QxDOM.getComputedInnerWidth(el);};QxDOM.getComputedPageInnerBottom=function(el){return QxDOM.getComputedPageInnerTop(el)+QxDOM.getComputedInnerHeight(el);};if((new QxClient).isGecko()){QxDOM.getComputedScreenBoxLeft=function(el){var sum=0;var p=el.parentNode;while(p.nodeType==1){sum+=p.scrollLeft;p=p.parentNode;};return el.ownerDocument.getBoxObjectFor(el).screenX-sum;};QxDOM.getComputedScreenBoxTop=function(el){var sum=0;var p=el.parentNode;while(p.nodeType==1){sum+=p.scrollTop;p=p.parentNode;};return el.ownerDocument.getBoxObjectFor(el).screenY-sum;};}else {QxDOM.getComputedScreenBoxLeft=function(el){return QxDOM.getComputedScreenDocumentLeft(el)+QxDOM.getComputedPageBoxLeft(el);};QxDOM.getComputedScreenBoxTop=function(el){return QxDOM.getComputedScreenDocumentTop(el)+QxDOM.getComputedPageBoxTop(el);};};QxDOM.getComputedScreenBoxRight=function(el){return QxDOM.getComputedScreenBoxLeft(el)+QxDOM.getComputedBoxWidth(el);};QxDOM.getComputedScreenBoxBottom=function(el){return QxDOM.getComputedScreenBoxTop(el)+QxDOM.getComputedBoxHeight(el);};QxDOM.getComputedScreenOuterLeft=function(el){return QxDOM.getComputedScreenBoxLeft(el)-QxDOM.getComputedMarginLeft(el);};QxDOM.getComputedScreenOuterTop=function(el){return QxDOM.getComputedScreenBoxTop(el)-QxDOM.getComputedMarginTop(el);};QxDOM.getComputedScreenOuterRight=function(el){return QxDOM.getComputedScreenBoxRight(el)+QxDOM.getComputedMarginRight(el);};QxDOM.getComputedScreenOuterBottom=function(el){return QxDOM.getComputedScreenBoxBottom(el)+QxDOM.getComputedMarginBottom(el);};QxDOM.getComputedScreenAreaLeft=function(el){return QxDOM.getComputedScreenBoxLeft(el)+QxDOM.getComputedInsetLeft(el);};QxDOM.getComputedScreenAreaTop=function(el){return QxDOM.getComputedScreenBoxTop(el)+QxDOM.getComputedInsetTop(el);};QxDOM.getComputedScreenAreaRight=function(el){return QxDOM.getComputedScreenBoxRight(el)-QxDOM.getComputedInsetRight(el);};QxDOM.getComputedScreenAreaBottom=function(el){return QxDOM.getComputedScreenBoxBottom(el)-QxDOM.getComputedInsetBottom(el);};QxDOM.getComputedScreenInnerLeft=function(el){return QxDOM.getComputedScreenAreaLeft(el)+QxDOM.getComputedPaddingLeft(el);};QxDOM.getComputedScreenInnerTop=function(el){return QxDOM.getComputedScreenAreaTop(el)+QxDOM.getComputedPaddingTop(el);};QxDOM.getComputedScreenInnerRight=function(el){return QxDOM.getComputedScreenAreaRight(el)-QxDOM.getComputedPaddingRight(el);};QxDOM.getComputedScreenInnerBottom=function(el){return QxDOM.getComputedScreenAreaBottom(el)-QxDOM.getComputedPaddingBottom(el);};if((new QxClient).isGecko()){QxDOM.getComputedScreenDocumentLeft=function(el){return QxDOM.getComputedScreenOuterLeft(el.ownerDocument.body);};QxDOM.getComputedScreenDocumentTop=function(el){return QxDOM.getComputedScreenOuterTop(el.ownerDocument.body);};QxDOM.getComputedScreenDocumentRight=function(el){return QxDOM.getComputedScreenOuterRight(el.ownerDocument.body);};QxDOM.getComputedScreenDocumentBottom=function(el){return QxDOM.getComputedScreenOuterBottom(el.ownerDocument.body);};}else {QxDOM.getComputedScreenDocumentLeft=function(el){return el.document.parentWindow.screenLeft;};QxDOM.getComputedScreenDocumentTop=function(el){return el.document.parentWindow.screenTop;};QxDOM.getComputedScreenDocumentRight=function(el){};QxDOM.getComputedScreenDocumentBottom=function(el){};};QxDOM.getComputedPreferredSize=function(el){try{var elst=el.style;var _pa=el.parentNode;var _ne=el.nextChild;var _do=el.ownerDocument.body;var _el_w=isValidString(elst.width)?elst.width:"";var _el_h=isValidString(elst.height)?elst.height:"";var _el_p=isValidString(elst.position)?elst.position:"";var _el_d=isValidString(elst.display)?elst.display:"";var _el_v=isValidString(elst.visibility)?elst.visibility:"";_pa.removeChild(el);elst.width=elst.height="auto";elst.position="absolute";elst.display="inline";elst.visibility="hidden";_do.appendChild(el);var r={width:el.offsetWidth,height:el.offsetHeight};_do.removeChild(el);elst.width=_el_w;elst.height=_el_h;elst.position=_el_p;elst.display=_el_p;elst.visibility=_el_v;_ne?_pa.insertBefore(el,_ne):_pa.appendChild(el);return r;}catch(ex){throw new Error("Failed to detect preferred size for "+el+":"+ex);};};QxDOM.getComputedPreferredWidth=function(el){return QxDOM.getComputedPreferredSize(el).width;};QxDOM.getComputedPreferredHeight=function(el){return QxDOM.getComputedPreferredSize(el).height;};QxDOM.addClass=function(el,newClass){var n=el.className.add(newClass," ");if(n!=el.className){el.className=n;};};QxDOM.removeClass=function(el,oldClass){var n=el.className.remove(oldClass," ");if(n!=el.className){el.className=n;};};if((new QxClient).isMshtml()){QxDOM.setWidth=function(el,intValue){el.style.pixelWidth=intValue;};QxDOM.setHeight=function(el,intValue){el.style.pixelHeight=intValue;};}else {QxDOM.setWidth=function(el,intValue){el.style.width=intValue+"px";};QxDOM.setHeight=function(el,intValue){el.style.height=intValue+"px";};};QxDOM.getElementFromPoint=function(x,y){return QxDOM.getElementFromPointHandler(document.body,x,y);};QxDOM.getElementFromPointHandler=function(node,x,y,recursive){var ch=node.childNodes;var chl=ch.length-1;if(chl<0){return null;};var chc,subres,ret;do
+{chc=ch[chl];ret=QxDOM.getElementFromPointChecker(chc,x,y);if(ret){if(typeof recursive=="boolean"&&recursive==false&&2==1){return chc;}else {subres=QxDOM.getElementFromPointHandler(chc,x-ret[0]-QxDOM.getComputedBorderLeft(chc),y-ret[2]-QxDOM.getComputedBorderTop(chc));return subres?subres:chc;};};}while(chl--);return null;};QxDOM.getElementFromPointChecker=function(chc,x,y){var xstart,ystart,xstop,ystop;if(chc.nodeType!=1){return false;};xstart=QxDOM.getOffsetLeft(chc);if(x>xstart){ystart=QxDOM.getOffsetTop(chc);if(y>ystart){xstop=xstart+chc.offsetWidth;if(xstop==xstart&&chc.className=="QxContainer"){xstop=xstart+chc._QxWidget.getAnyWidth();};if(x<xstop){ystop=ystart+chc.offsetHeight;if(y<ystop){return[xstart,xstop,ystart,ystop];};};};};return false;};QxDOM.getElementAbsolutePointChecker=function(chc,x,y){var xstart,ystart,xstop,ystop;if(!chc||chc.nodeType!=1){return false;};xstart=QxDOM.getComputedPageBoxLeft(chc);if(x>xstart){ystart=QxDOM.getComputedPageBoxTop(chc);if(y>ystart){xstop=xstart+chc.offsetWidth;if(xstop==xstart&&chc.className=="QxContainer"){xstop=xstart+chc._QxWidget.getAnyWidth();};if(x<xstop){ystop=ystart+chc.offsetHeight;if(y<ystop){return[xstart,xstop,ystart,ystop];};};};};return false;};if((new QxClient).isGecko()){QxDOM.getOffsetLeft=function(el){var val=el.offsetLeft;var pa=el.parentNode;var pose=QxDOM.getComputedStyleProperty(el,"position");var posp=QxDOM.getComputedStyleProperty(pa,"position");if(pose!="absolute"&&pose!="fixed"){val-=QxDOM.getComputedBorderLeft(pa);};if(posp!="absolute"&&posp!="fixed"){while(pa){pa=pa.parentNode;if(!pa||isInvalidString(pa.tagName)){break;};var posi=QxDOM.getComputedStyleProperty(pa,"position");if(posi=="absolute"||posi=="fixed"){val-=QxDOM.getComputedBorderLeft(pa)+QxDOM.getComputedPaddingLeft(pa);break;};};};return val;};QxDOM.getOffsetTop=function(el){var val=el.offsetTop;var pa=el.parentNode;var pose=QxDOM.getComputedStyleProperty(el,"position");var posp=QxDOM.getComputedStyleProperty(pa,"position");if(pose!="absolute"&&pose!="fixed"){val-=QxDOM.getComputedBorderTop(pa);};if(posp!="absolute"&&posp!="fixed"){while(pa){pa=pa.parentNode;if(!pa||isInvalidString(pa.tagName)){break;};var posi=QxDOM.getComputedStyleProperty(pa,"position");if(posi=="absolute"||posi=="fixed"){val-=QxDOM.getComputedBorderTop(pa)+QxDOM.getComputedPaddingTop(pa);break;};};};return val;};}else {QxDOM.getOffsetLeft=function(el){return el.offsetLeft;};QxDOM.getOffsetTop=function(el){return el.offsetTop;};};if((new QxClient).isMshtml()){QxDOM.addEventListener=function(e,t,f){e.attachEvent("on"+t,f);};QxDOM.removeEventListener=function(e,t,f){e.detachEvent("on"+t,f);};}else {QxDOM.addEventListener=function(e,t,f){e.addEventListener(t,f,false);};QxDOM.removeEventListener=function(e,t,f){e.removeEventListener(t,f,false);};};if((new QxClient).isMshtml()){QxDOM.getWindowInnerWidth=function(w){if(!w){w=window;};if(w.document.documentElement&&w.document.documentElement.clientWidth){return w.document.documentElement.clientWidth;}else if(w.document.body){return w.document.body.clientWidth;};return 0;};QxDOM.getWindowInnerHeight=function(w){if(!w){w=window;};if(w.document.documentElement&&w.document.documentElement.clientHeight){return w.document.documentElement.clientHeight;}else if(w.document.body){return w.document.body.clientHeight;};return 0;};QxDOM.getClientScrollLeft=function(w){if(!w){w=window;};if(w.document.documentElement&&w.document.documentElement.scrollLeft){return w.document.documentElement.scrollLeft;}else if(w.document.body){return w.document.body.scrollTop;};return 0;};QxDOM.getClientScrollTop=function(w){if(!w){w=window;};if(w.document.documentElement&&w.document.documentElement.scrollTop){return w.document.documentElement.scrollTop;}else if(w.document.body){return w.document.body.scrollTop;};return 0;};}else {QxDOM.getWindowInnerWidth=function(w){return(w||window).innerWidth;};QxDOM.getWindowInnerHeight=function(w){return(w||window).innerHeight;};QxDOM.getClientScrollLeft=function(w){return(w||window).document.body.scrollLeft;};QxDOM.getClientScrollTop=function(w){return(w||window).document.body.scrollTop;};};QxDOM.scrollIntoViewX=function(vChild,vParent){if(!vParent){vParent=vChild.parentNode;};var l=vChild.offsetLeft;var w=vChild.offsetWidth;var sl=vParent.scrollLeft;var cw=vParent.clientWidth;if(w>cw||l<sl){vParent.scrollLeft=l;}else if(l+w>sl+cw){vParent.scrollLeft=l+w-cw;};};QxDOM.scrollIntoViewY=function(vChild,vParent){if(!vParent){vParent=vChild.parentNode;};var t=vChild.offsetTop;var h=vChild.offsetHeight;var st=vParent.scrollTop;var ch=vParent.clientHeight;if(h>ch||t<st){vParent.scrollTop=t;}else if(t+h>st+ch){vParent.scrollTop=t+h-ch;};}; \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/core/QxExtend.js b/swat/style/qooxdoo/widgets/core/QxExtend.js
new file mode 100644
index 0000000000..f633368011
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/core/QxExtend.js
@@ -0,0 +1,4 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function isHashEmpty(h){for(var s in h){return false;};return true;};function copyCreateHash(h){if(h){var n={};for(var k in h){n[k]=h[k];};return n;}else {return{};};};function copyCreateArray(a){return a&&a.length>0?a.copy():[];};function set(){var r={};for(var i=0,a=arguments,l=a.length;i<l;i++){r[a[i]]=true;};return r;};function isValid(v){switch(typeof v){case "undefined":return false;case "object":return v!=null;case "string":return v!="";case "number":return !isNaN(v);case "function":case "boolean":return true;};return false;};function isInvalid(v){switch(typeof v){case "undefined":return true;case "object":return v==null;case "string":return v=="";case "number":return isNaN(v);case "function":case "boolean":return false;};return true;};function isValidNumber(v){return typeof v=="number"&&!isNaN(v);};function isInvalidNumber(v){return typeof v!="number"||isNaN(v);};function isValidString(v){return typeof v=="string"&&v!="";};function isInvalidString(v){return typeof v!="string"||v=="";};function isValidArray(v){return typeof v=="object"&&v!=null&&typeof v.push=="function";};function isInvalidArray(v){return typeof v!="object"||v==null||typeof v.push!="function";};function isValidObject(v){return typeof v=="object"&&v!=null&&typeof v.push!="function";};function isInvalidObject(v){return typeof v!="object"||v==null||typeof v.push=="function";};function isValidFunction(v){return typeof v=="function";};function isInvalidFunction(v){return typeof v=="function";};Number.prototype.limit=function(vmin,vmax){if(vmax!=null&&typeof vmax=="number"&&this>vmax){return vmax;}else if(vmin!=null&&typeof vmin=="number"&&this<vmin){return vmin;}else {return Number(this);};};Number.prototype.inrange=function(vmin,vmax){return this>vmin&&this<vmax;};Array.prototype.indexOf=function(o){for(var i=0;i<this.length;i++){if(this[i]==o){return i;};};return-1;};Array.prototype.lastIndexOf=function(o){for(var i=this.length-1;i>=0;i--){if(this[i]==o){return i;};};return-1;};Array.prototype.contains=function(o){return this.indexOf(o)!=-1;};Array.prototype.remove=function(o){var i=this.indexOf(o);if(i!=-1){this.splice(i,1);};};Array.prototype.insertAt=function(o,i){this.splice(i,0,o);};Array.prototype.insertBefore=function(o,o2){var i=this.indexOf(o2);if(i==-1){this.push(o);}else{this.splice(i,0,o);};};Array.prototype.insertAfter=function(o,o2){var i=this.indexOf(o2);if(i==-1||i==(this.length-1)){this.push(o);}else{this.splice(i+1,0,o);};};Array.prototype.removeAt=function(i){this.splice(i,1);};Array.prototype.remove=function(o){var i=this.indexOf(o);if(i!=-1){this.splice(i,1);};};Array.prototype.copy=function(){return this.concat();};Array.prototype.getLast=function(){return this[this.length-1];};Array.prototype.getFirst=function(){return this[0];};String.prototype.contains=function(s){return this.indexOf(s)!=-1;};String.prototype.toFirstUp=function(){return this.charAt(0).toUpperCase()+this.substr(1);};String.prototype.toCamelCase=function(){var vArr=this.split('-');if(vArr.length==1){return vArr[0];};var ret=vArr[0];var s;for(var i=1,len=vArr.length;i<len;i++,s=vArr[i]){ret+=s.charAt(0).toUpperCase()+s.substring(1);};return ret;};String.prototype.trimLeft = new Function("return this.replace(/^\\s+/,'')");String.prototype.trimRight = new Function("return this.replace(/\\s+$/,'')");String.prototype.trim = new Function("return this.replace(/^\\s+|\\s+$/g,'')");String.prototype.add=function(v,sep){if(this==v){return this;}else if(this==""){return v;}else {if(isInvalid(sep)){sep=",";};var a=this.split(sep);if(a.indexOf(v)==-1){a.push(v);return a.join(sep);}else {return this;};};};String.prototype.remove=function(v,sep){if(this==v||this==""){return "";}else {if(isInvalid(sep)){sep=",";};var a=this.split(sep);var p=a.indexOf(v);if(p==-1){return this;};do{a.splice(p,1);}while((p=a.indexOf(v))!=-1);return a.join(sep);};};if(!Function.prototype.apply){Function.prototype.apply=function(oScope,args){var sarg=[];var rtrn,call;if(!oScope){oScope=window;};if(!args){args=[];};for(var i=0;i<args.length;i++){sarg[i]="args["+i+"]";};call="oScope._applyTemp_("+sarg.join(",")+");";oScope._applyTemp_=this;rtrn=eval(call);delete oScope._applyTemp_;return rtrn;};};Function.prototype.extend=function(sFunction,tClassName){if(typeof sFunction!="function"){throw new Error("Extend:Function/Constructor to extend from is not a function:"+sFunction);};if(typeof tClassName!="string"){throw new Error("Extend:Missing or malformed className:"+tClassName);};proto=this.prototype=new sFunction;proto.superclass=sFunction;proto.classname=tClassName;proto.constructor=this;return proto;};if(navigator.product=="Gecko"){Document.prototype.elementFromPoint=function(x,y){this.addEventListener("mousemove",this.elementFromPointHandler,false);var event=this.createEvent("MouseEvents");var box=this.getBoxObjectFor(this.documentElement);event.initMouseEvent("mousemove",true,false,this.defaultView,0,x+box.screenX,y+box.screenY,x,y,false,false,false,false,0,null);this.dispatchEvent(event);this.removeEventListener("mousemove",this.elementFromPointHandler,false);return this.elementFromPointTarget;};Document.prototype.elementFromPointHandler=function(event){this.elementFromPointTarget=event.explicitOriginalTarget;if(this.elementFromPointTarget.nodeType==Node.TEXT_NODE){this.elementFromPointTarget=this.elementFromPointTarget.parentNode;};if(this.elementFromPointTarget.nodeName.toUpperCase()=="HTML"&&this.documentElement.nodeName.toUpperCase()=="HTML"){this.elementFromPointTarget=this.getElementsByTagName("BODY").item(0);};event.preventDefault();event.stopPropagation();};Document.prototype.elementFromPointTarget=null;};Error.prototype.toString=function(){return this.message;};Function.prototype.removeProperty=function(p){if(typeof this.prototype._i1!="string"){throw new Error("Has no properties!");};if(typeof p!="object"){throw new Error("Param should be an object!");};if(isInvalid(p.name)){throw new Error("Malformed input parameters:name needed!");};p.method=p.name.toFirstUp();p.implMethod=p.impl?p.impl.toFirstUp():p.method;var valueKey="_value"+p.method;this.prototype._i1=this.prototype._i1.remove(p.name);this.prototype[valueKey]=null;this.prototype["get"+p.method]=function(){return null;};this.prototype["force"+p.method]=this.prototype["set"+p.method]=function(){throw new Error("Property "+p.name+" is not supported by class+"+this.classname);};if(this.prototype["_modify"+p.method]){this.prototype["_modify"+p.method]=null;};if(this.prototype["_eval"+p.method]){this.prototype["_eval"+p.method]=null;};};Function.prototype.addProperty=function(p){if(typeof p!="object"){throw new Error("Param should be an object!");};if(isInvalid(p.name)){throw new Error("Malformed input parameters:name needed!");};p.method=p.name.toFirstUp();p.implMethod=p.impl?p.impl.toFirstUp():p.method;if(isInvalid(p.defaultValue)){p.defaultValue=null;};var valueKey="_value"+p.method;var nullKey="_null"+p.method;var evalKey="_eval"+p.method;var changeKey="change"+p.method;var modifyKey="_modify"+p.implMethod;var checkKey="_check"+p.implMethod;this.prototype[valueKey]=p.defaultValue;if(typeof this.prototype._i1!="string"){this.prototype._i1=p.name;}else{this.prototype._i1+=","+p.name;};if(typeof p.groups=="object"){var g=p.groups;var l=g.length;var tempGroups;var tempGroupName;var tempGroupNameUp;var tempMemberRef;for(var i=0;i<l;i++){tempGroupName=g[i];tempMemberRef="_propertygroup_"+tempGroupName+"_members";if(typeof this.prototype._h9!="string"){this.prototype._h9=tempGroupName;}else {tempGroups=this.prototype._h9.split(",");if(tempGroups.contains(tempGroupName)){this.prototype[tempMemberRef]+=","+p.name;}else {tempGroups.push(tempGroupName);this.prototype._h9=tempGroups.join(",");};};if(typeof this.prototype[tempMemberRef]=="undefined"){this.prototype[tempMemberRef]=p.name;tempGroupNameUp=tempGroupName.toFirstUp();this.prototype["get"+tempGroupNameUp]=new Function("var memberList=this."+tempMemberRef+".split(',');"+"var memberLength=memberList.length;"+"var memberValues=[];"+"try{"+"for(var i=0;i<memberLength;i++){"+"memberValues.push(this['get'+memberList[i].toFirstUp()]());"+"};"+"}catch(ex){"+"throw new Error('Failed to get values from property group "+tempGroupName+":'+ex);"+"};"+"return memberValues;"
+);this.prototype["set"+tempGroupNameUp]=new Function("var memberList=this."+tempMemberRef+".split(',');"+"var memberLength=memberList.length;"+"try{"+"for(var i=0;i<memberLength;i++){"+"this['set'+memberList[i].toFirstUp()](arguments[i]);"+"};"+"}catch(ex){"+"throw new Error('Failed to setup property group "+tempGroupName+":'+ex);"+"};"+"return true"
+);};};};this.prototype["get"+p.method]=function(){if(typeof this[valueKey]=="undefined"||(this[valueKey]==null&&this[nullKey]!=true)){if(typeof this[evalKey]=="function"){var v1=this[evalKey]();if(isValid(v1)){return this[valueKey]=v1;};};return null;}else {return this[valueKey];};};this.prototype["getDefault"+p.method]=function(_b4){return p.defaultValue;};this.prototype["setDefault"+p.method]=function(newValue,_b4){return p.defaultValue=newValue;};this.prototype["force"+p.method]=function(newValue){this[valueKey]=newValue;this[nullKey]=newValue==null;return true;};this.prototype["reset"+p.method]=function(_b4){return this["set"+p.method](p.defaultValue,_b4);};this.prototype["set"+p.method]=function(newValue,_b4){var thisModId=this.toHash()+"_"+p.name;if(isInvalidArray(_b4)){var _b4=[thisModId];}else if(_b4.contains(thisModId)){return newValue;}else {_b4.push(thisModId);};var fixedValue=newValue==null?null:isValid(p.type)?p.type(newValue):newValue;var oldValue=this[valueKey];if(typeof this[checkKey]=="function"){try{fixedValue=this[checkKey](fixedValue,oldValue,p.name,_b4);}catch(ex){this.debug("Failed to check property "+p.name+":"+ex);return false;};};if(fixedValue!=oldValue){this[valueKey]=fixedValue;this[nullKey]=fixedValue==null;if(typeof this[modifyKey]=="function"){try{var r=this[modifyKey](fixedValue,oldValue,p.name,_b4);if(!r){throw new Error("Failed without exception:"+p.name+"["+p.implMethod+"|"+r+"]");};}catch(ex){this.debug("Failed to modify property "+p.name+":"+ex.message);return false;};};if(this instanceof QxTarget){if(this.hasEventListeners(changeKey)){var ce=new QxDataEvent(changeKey,fixedValue,oldValue,false);ce.setTarget(this);try{this.dispatchEvent(ce,true);}catch(ex){throw new Error("Failed to dispatch changed event:"+ex);};ce=null;};};};return fixedValue;};if(typeof p.getAlias=="string"){this.prototype[p.getAlias]=this.prototype["get"+p.method];};if(typeof p.setAlias=="string"){this.prototype[p.setAlias]=this.prototype["set"+p.method];};}; \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/core/QxNativeWindow.js b/swat/style/qooxdoo/widgets/core/QxNativeWindow.js
new file mode 100644
index 0000000000..3cf927052a
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/core/QxNativeWindow.js
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxNativeWindow(vCaption,vSource){QxTarget.call(this);this._timer=new QxTimer(100);this._timer.addEventListener("interval",this._ontimer,this);var o=this;this.__onload=function(e){return o._onload(e);};if(isValidString(vSource)){this.setSource(vSource);};if(isValidString(vCaption)){this.setCaption(vCaption);};};QxNativeWindow.extend(QxTarget,"QxNativeWindow");QxNativeWindow.addProperty({name:"width",defaultValue:400,groups:["dimension"]});QxNativeWindow.addProperty({name:"height",defaultValue:250,groups:["dimension"]});QxNativeWindow.addProperty({name:"left",type:Number,defaultValue:100,groups:["location"]});QxNativeWindow.addProperty({name:"top",type:Number,defaultValue:200,groups:["location"]});QxNativeWindow.addProperty({name:"modal",type:Boolean,defaultValue:false});QxNativeWindow.addProperty({name:"caption",type:String});QxNativeWindow.addProperty({name:"source",type:String});QxNativeWindow.addProperty({name:"status",type:String,defaultValue:"Ready"});QxNativeWindow.addProperty({name:"showStatusbar",type:Boolean,defaultValue:false});QxNativeWindow.addProperty({name:"showMenubar",type:Boolean,defaultValue:false});QxNativeWindow.addProperty({name:"showLocation",type:Boolean,defaultValue:false});QxNativeWindow.addProperty({name:"showToolbar",type:Boolean,defaultValue:false});QxNativeWindow.addProperty({name:"showCaption",type:Boolean,defaultValue:true});QxNativeWindow.addProperty({name:"resizeable",type:Boolean,defaultValue:true});QxNativeWindow.addProperty({name:"moveable",type:Boolean,defaultValue:true});QxNativeWindow.addProperty({name:"allowScrollbars",type:Boolean,defaultValue:false});proto.getPane=function(){return this._pane;};proto.addToWindow=proto.add;proto.addToPane=function(){this._pane.add.apply(this._pane,arguments);};proto.add=proto.addToPane;proto._modifyLeft=function(_b1,_b2,_b3,_b4){return this._d3();};proto._modifyTop=function(_b1,_b2,_b3,_b4){return this._d3();};proto._d3=function(){if(this._window&&!this._window.closed){this._window.moveTo(this.getLeft(),this.getTop());};return true;};proto._modifyCaption=function(_b1,_b2,_b3,_b4){return this._applyCaption();};proto._modifyShowCaption=function(_b1,_b2,_b3,_b4){return this._applyCaption();};proto._applyCaption=function(){if(this._window&&this._instance){var v="";if(this.getShowCaption()){var vc=this.getCaption();if(isValidString(vc)){v=vc;};};this._instance.getClientDocument().getDocumentElement().title=v;};return true;};proto._modifySource=function(_b1,_b2,_b3,_b4){if(this._window&&this._window.closed==false){this._window.location.replace(isValidString(_b1) ? _b1 : ("javascript:/" + "/"));};return true;};proto._chromeCaptionSize=24;proto._isOpened=false;proto._isLoaded=false;proto.isLoaded=function(){return this._isLoaded;};proto.close=function(){if(this._window){this._window.close();};};proto.open=function(){var conf="dependent=yes,";if(isValidNumber(this.getWidth())){conf+="width="+this.getWidth()+",";};if(isValidNumber(this.getHeight())){if((new QxClient).isMshtml()){if(this.getShowMenubar()){conf+="height="+(this.getHeight()+(this.getAllowScrollbars()?-20:-8))+",";}else {conf+="height="+this.getHeight()+",";};}else {conf+="height="+this.getHeight()+",";};};if(isValidNumber(this.getLeft())){conf+="left="+this.getLeft()+",";};if(isValidNumber(this.getTop())){conf+="top="+this.getTop()+",";};conf+="resizable="+(this.getResizeable()?"yes":"no")+",";conf+="status="+(this.getShowStatusbar()?"yes":"no")+",";conf+="location="+(this.getShowLocation()?"yes":"no")+",";conf+="menubar="+(this.getShowMenubar()?"yes":"no")+",";conf+="toolbar="+(this.getShowToolbar()?"yes":"no")+",";conf+="scrollbars="+(this.getAllowScrollbars()?"yes":"no")+",";conf+="modal="+(this.getModal()?"yes":"no")+",";this._isOpened=false;this._isLoaded=false;this._readyState=0;if(this.getModal()){window.application.getClientWindow().getClientDocument().block(this);};this._window=window.open("about:blank","w"+this.toHash(),conf);if(!this._window){this.debug("Window could not be opened. It seems there is a popup blocker active!");if(this.getModal()){window.application.getClientWindow().getClientDocument().release(this);};throw new Error("popupblocker");};this._timer.restart();};proto.centerToScreen=function(){return this._centerHelper((screen.width - this.getWidth()) / 2, (screen.height - this.getHeight() - this._chromeCaptionSize) / 2);};proto.centerToScreenArea=function(){return this._centerHelper((screen.availWidth - this.getWidth()) / 2, (screen.availHeight - this.getHeight() - this._chromeCaptionSize) / 2);};proto.centerToOpener=function(){return this._centerHelper(((QxDOM.getWindowInnerWidth(window) - this.getWidth()) / 2) + QxDOM.getComputedScreenBoxLeft(window.document.body), ((QxDOM.getWindowInnerHeight(window) - this.getHeight() - this._chromeCaptionSize) / 2) + QxDOM.getComputedScreenBoxTop(window.document.body));};proto._centerHelper=function(l,t){this.forceLeft(0);this.forceTop(0);this.setLeft(l);this.setTop(t);if(this._window&&!this._window.closed){this.focus();};};proto.focus=function(){if(this._window){try{this._window.focus();}catch(ex){};};};proto.blur=function(){if(this._window){this._window.blur();};};proto._ontimer=function(e){if(isValidNumber(this._readyState)&&this._isOpened&&(!this._window||(this._window&&this._window.closed!=false))){if(this.getModal()){window.application.getClientWindow().getClientDocument().release(this);};this._timer.stop();if(this._instance){this._instance.dispose();this._instance=null;};this._isOpened=false;this._isLoaded=false;this._readyState=null;return;};if(!this._window||this._timerRun){return;};if(this._window){this._isOpened=true;};this._timerRun=true;switch(this._readyState){case 0:this._isLoaded=false;var d=this._window.document;if(d){try{this._window._QxNativeWindow=this;}catch(ex){};if(isValidString(this.getSource())){try{QxDOM.addEventListener(this._window,"load",this.__onload);}catch(ex){};this._window.location.replace(this.getSource());this._timer.setInterval(500);this._readyState=5;}else {this._readyState=1;};if(!this.getResizeable()&&!(new QxClient).isMshtml()){var w=this.getWidth();var h=this.getHeight();var win=this._window;this._window.addEventListener("resize",function(e){win.resizeTo(w,h);},false);};};break;case 1:var ls=document.getElementsByTagName("head")[0].getElementsByTagName("link");for(var i=0,l=ls.length;i<l;i++){if(ls[i].getAttribute("href").indexOf("layouts/")!=-1){var s=ls[i].getAttribute("href");break;};};var d=this._window.document;d.open("text/html",true);d.write('<?xml version="1.0" encoding="iso-8859-1"?>');d.write('<!DOCTYPE html PUBLIC "-/' + '/W3C/' + '/DTD XHTML 1.1/' + '/EN" "http:/' + '/www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">');d.write('<html xmlns="http:/' + '/www.w3.org/1999/xhtml" xml:lang="en">');d.write('<head>');d.write('<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15" />');d.write('<meta http-equiv="MsThemeCompatible" content="yes"/>');d.write('<meta http-equiv="ImageToolBar" content="no"/>');d.write('<meta http-equiv="Pragma" content="no-cache"/>');d.write('<meta http-equiv="Expires" content="-1"/>');d.write('<meta http-equiv="Cache-Control" content="no-cache"/>');d.write('<meta name="MSSmartTagsPreventParsing" content="yes"/>');if(this.getShowCaption()){d.write('<title>'+this.getCaption()+'</title>');};if(isValidString(s)){d.write('<link type="text/css" rel="StyleSheet" href="' + s + '"/>');};d.write('</head><body></body></html>');d.close();this._readyState++;break;case 2:var d=this._window.document;if(d&&d.body){this._instance=new QxClientWindow(this._window);this._pane=this._instance.getClientDocument();this._readyState++;};break;case 3:try{if(this.hasEventListeners("ready")){this.dispatchEvent(new QxEvent("ready"));};}catch(ex){this.debug("Error in ready implementation:"+ex);this._timer.stop();};this._readyState++;break;case 4:this.focus();this._readyState++;this._onload();this._timer.setInterval(500);this._timer.restart();break;case 5:try{if(this._window.document.readyState=="complete"){this._onload();};}catch(ex){};if(!this.getMoveable()){try{this._window.moveTo(this.getLeft(),this.getTop());}catch(ex){};};if(!this.getResizeable()&&(this.getWidth()=="auto"||this.getHeight()=="auto")){var w,h;if(this.getWidth()=="auto"){w=this._instance.getClientDocument().getPreferredWidth();};if(this.getHeight()=="auto"){h=this._instance.getClientDocument().getPreferredHeight();};if(isValidNumber(w)||isValidNumber(h)){if((new QxClient).isMshtml()){try{this._window.resizeTo(isValidNumber(w)?w:this.getWidth(),isValidNumber(h)?h+this._chromeCaptionSize:this.getHeight());}catch(ex){};}else {if(isValidNumber(w)){this._window.innerWidth=w;};if(isValidNumber(h)){if(this._window.innerHeight!=150&&h!=150){this._window.innerHeight=h;};};};};};break;};delete this._timerRun;};proto._onload=function(){if(!this._isLoaded){this._isLoaded=true;this.focus();this.dispatchEvent(new QxEvent("load"));};};proto.dispose=function(){if(this.getDisposed()){return;};if(this._timer){this._timer.removeEventListener("interval",this._ontimer,this);this._timer.dispose();this._timer=null;};if(this._instance){this._instance.dispose();this._instance=null;};if(this._pane){this._pane.dispose();this._pane=null;};if(this._window){if(!this._window.closed){QxDOM.removeEventListener(this._window,"load",this.__onload);};this.close();try{if(this._window._QxNativeWindow){this._window._QxNativeWindow.dispose();this._window._QxNativeWindow=null;};}catch(ex){};this._window=null;};this._readyState=null;return QxTarget.prototype.dispose.call(this);}; \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/core/QxObject.js b/swat/style/qooxdoo/widgets/core/QxObject.js
new file mode 100644
index 0000000000..7300612863
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/core/QxObject.js
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxObject(autoDispose){this._pos=QxObject._i2++;this._hash="h"+String(Math.round(Math.random()*1e6));this._k1={};if(typeof autoDispose!="boolean"||autoDispose){QxObject._i3.push(this);};};QxObject.extend(Object,"QxObject");QxObject._i2=0;QxObject._siteCounter=0;QxObject._i3=[];QxObject.toHash=function(o){if(o._hash!=null){return o._hash;};return o._hash="h"+String(Math.round(Math.random()*1e6));};QxObject.dispose=function(){for(var i=QxObject._i3.length-1;i>=0;i--){if(typeof QxObject._i3[i]!="undefined"){QxObject._i3[i].dispose();if(typeof QxObject._i3=="undefined"){break;};delete QxObject._i3[i];};};delete QxObject._i3;};QxObject.addProperty({name:"enabled",type:Boolean,defaultValue:true,getAlias:"isEnabled"});proto.debug=function(m){QxDebug(this.classname+"["+this._pos+"]",m);};proto.subug=function(m){QxDebug(this.classname+"["+this._pos+"]","::"+m);};proto.toString=function(){if(this.classname){return "[object "+this.classname+"]";};return "[object Object]";};proto.toHash=function(){return this._hash;};proto._modifyEnabled=function(_b1,_b2,_b3,_b4){return true;};proto._disposed=false;proto.dispose=function(){if(this._disposed){return;};for(var p in this._k1){delete this._k1[p];};delete this._k1;this._disposed=true;delete QxObject._i3[this._pos];};proto.getDisposed=function(){return this._disposed;};proto.isDisposed=function(){return this._disposed;};proto.set=function(propertyValues){if(typeof propertyValues!="object"){throw new Error("Please use a valid hash of property key-values pairs.");};for(var prop in propertyValues){try{this["set"+prop.toFirstUp()](propertyValues[prop]);}catch(ex){throw new Error("Setter of property "+prop+" returned with an error:"+ex);};};return this;};proto.get=function(propertyNames,outputHint){switch(typeof propertyNames){case "string":return this["get"+propertyNames.toFirstUp()]();case "object":if(typeof propertyNames.length=="number"){if(outputHint=="hash"){var h={};propertyLength=propertyNames.length;for(var i=0;i<propertyLength;i++){try{h[propertyNames[i]]=this["get"+propertyNames[i].toFirstUp()]();}catch(ex){throw new Error("Could not get a valid value from property:"+propertyNames[i]+"! Is the property existing?("+ex+")");};};return h;}else {propertyLength=propertyNames.length;for(var i=0;i<propertyLength;i++){try{propertyNames[i]=this["get"+propertyNames[i].toFirstUp()]();}catch(ex){throw new Error("Could not get a valid value from property:"+propertyNames[i]+"! Is the property existing?("+ex+")");};};return propertyNames;};}else {for(var i in propertyNames){propertyNames[i]=this["get"+i.toFirstUp()]();};return propertyNames;};default:throw new Error("Please use a valid array,hash or string as parameter!");};};proto.addData=function(p){if(typeof p!="object"){throw new Error("Param should be an object!");};if(isInvalid(p.name)){throw new Error("Malformed input parameters:name needed!");};var valueKey=p.name;var methodKey=p.method=valueKey.toFirstUp();var changeKey="change"+methodKey;this["retrieve"+methodKey]=function(){return this._k1[valueKey];};if(typeof p.defaultValue!="undefined"){this._k1[valueKey]=p.defaultValue;this["retrieveDefault"+methodKey]=function(){return p.defaultValue;};this["storeDefault"+methodKey]=function(newValue){return p.defaultValue=newValue;};this["restore"+methodKey]=function(){return this["store"+methodKey](p.defaultValue);};};this["store"+methodKey]=function(newValue){var fixedValue=isValid(p.type)?p.type(newValue):newValue;var oldValue=this._k1[valueKey];if(fixedValue!=oldValue){this._k1[valueKey]=fixedValue;if(this instanceof QxTarget&&this.hasEventListeners(changeKey)){var ce=new QxDataEvent(changeKey,fixedValue,oldValue,false);ce.setTarget(this);try{this.dispatchEvent(ce,true);}catch(ex){throw new Error("Failed to dispatch change event:"+ex);};ce=null;};};return fixedValue;};};proto.removeData=function(p){if(typeof p!="object"){throw new Error("Param should be an object!");};if(isInvalid(p.name)){throw new Error("Malformed input parameters:name needed!");};var methodKey=p.method;delete this._k1[p.name];delete this["retrieve"+methodKey];delete this["store"+methodKey];delete this["retrieveDefault"+methodKey];delete this["storeDefault"+methodKey];delete this["restore"+methodKey];}; \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/core/QxSelectionStorage.js b/swat/style/qooxdoo/widgets/core/QxSelectionStorage.js
new file mode 100644
index 0000000000..07b6aebfb4
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/core/QxSelectionStorage.js
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxSelectionStorage(){this.removeAll();};QxSelectionStorage.extend(QxObject,"QxSelectionStorage");proto.add=function(oItem){this._i4[this.getItemHashCode(oItem)]=oItem;};proto.remove=function(oItem){delete this._i4[this.getItemHashCode(oItem)];};proto.removeAll=function(){this._i4={};};proto.contains=function(oItem){return this.getItemHashCode(oItem)in this._i4;};proto.toArray=function(){var res=[];for(var key in this._i4){res.push(this._i4[key]);};return res;};proto.getFirst=function(){for(var key in this._i4){return this._i4[key];};};proto.getChangeValue=function(){var sb=[];for(var hc in this._i4){sb.push(hc);};sb.sort();return sb.join(",");};proto.getItemHashCode=function(oItem){return oItem.toHash();};proto.isEmpty=function(){return isHashEmpty(this._i4);};proto.dispose=function(){if(this.getDisposed()){return;};this._i4=null;QxObject.prototype.dispose.call(this);}; \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/core/QxTarget.js b/swat/style/qooxdoo/widgets/core/QxTarget.js
new file mode 100644
index 0000000000..34fddfab51
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/core/QxTarget.js
@@ -0,0 +1,3 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxTarget(){QxObject.call(this);this._i5={};};QxTarget.extend(QxObject,"QxTarget");proto._modifyEnabled=function(_b1,_b2,_b3,_b4){QxObject.prototype._modifyEnabled.call(this,_b1,_b2,_b3,_b4);return true;};proto.addEventListener=function(eType,eFunc,eObject){if(this._disposed){return;};if(typeof eFunc!="function"){throw new Error("'"+eFunc+"' is not a function!");};if(typeof this._i5[eType]=="undefined"){this._i5[eType]={};};var key=QxObject.toHash(eFunc)+(eObject?"::"+QxObject.toHash(eObject):"");this._i5[eType][key]={handler:eFunc,object:eObject
+};};proto.hasEventListeners=function(eType){return typeof this._i5[eType]!="undefined";};proto.removeEventListener=function(eType,eFunc,eObject){if(this._disposed||typeof this._i5[eType]=="undefined"){return;};if(typeof eFunc!="function"){throw new Error("'"+eFunc+"' is not a function!");};var key=QxObject.toHash(eFunc)+(eObject?"::"+QxObject.toHash(eObject):"");delete this._i5[eType][key];};proto.dispatchEvent=function(e,dispose){if(this._disposed){return;};if(!e._target){e._target=this;};this._i6(e,dispose);return !e._defaultPrevented;;};proto._i6=function(e,dispose){if(this._disposed){return;};e.setCurrentTarget(this);var fs=this._i5[e.getType()];if(fs){var f,o;for(var hc in fs){f=fs[hc].handler;o=fs[hc].object;if(typeof f=="function"){f.call(typeof o=="object"?o:this,e);};};};var p=this.getParent();if(e.getBubbles()&&!e.getPropagationStopped()&&p&&p.getEnabled()){p._i6(e,false);};if(dispose){e.dispose();};};proto.getParent=function(){return null;};proto.dispose=function(_b1,propOldName,_b3,_b4){if(this._disposed){return;};if(typeof this._i5=="object"){for(var eType in this._i5){for(var eKey in this._i5[eType]){delete this._i5[eType][eKey];};delete this._i5[eType];};};delete this._i5;return QxObject.prototype.dispose.call(this);}; \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/core/QxTimer.js b/swat/style/qooxdoo/widgets/core/QxTimer.js
new file mode 100644
index 0000000000..6d0794237a
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/core/QxTimer.js
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxTimer(vInterval){QxTarget.call(this);this.setEnabled(false);if(isValidNumber(vInterval)){this.setInterval(vInterval);};(new QxTimerManager).add(this);var o=this;this.__i7=function(){o._i7();};};QxTimer.extend(QxTarget,"QxTimer");QxTimer.addProperty({name:"interval",type:Number,defaultValue:1000});proto._i8=null;proto._modifyEnabled=function(_b1,_b2,_b3,_b4){if(_b2){window.clearInterval(this._i8);this._i8=null;}else if(_b1){this._i8=window.setInterval(this.__i7,this.getInterval());};return QxTarget.prototype._modifyEnabled.call(this,_b1,_b2,_b3,_b4);};proto.start=function(){this.setEnabled(true);};proto.startWith=function(vInterval){this.setInterval(vInterval);this.start();};proto.stop=function(){this.setEnabled(false);};proto.restart=function(){this.stop();this.start();};proto.restartWith=function(vInterval){this.stop();this.startWith(vInterval);};proto._i7=function(){if(this.getEnabled()&&this.hasEventListeners("interval")){this.dispatchEvent(new QxEvent("interval"),true);};};proto.dispose=function(){if(this.getDisposed()){return;};this.stop();this.__i7=null;if(this._i8r){window.clearInterval(this._i8);this._i8r=null;};return QxTarget.prototype.dispose.call(this);}; \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/core/QxUserApplication.js b/swat/style/qooxdoo/widgets/core/QxUserApplication.js
new file mode 100644
index 0000000000..2937cb9c74
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/core/QxUserApplication.js
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxUserApplication(){if(QxUserApplication._instance){return QxUserApplication._instance;};QxTarget.call(this);QxUserApplication._instance=this;};QxUserApplication.extend(QxTarget,"QxUserApplication");proto.dispose=function(){if(this.getDisposed()){return;};var dispose_start=(new Date).valueOf();QxTarget.prototype.dispose.call(this);QxObject.dispose();QxDebug("QxUserApplication","Dispose total:"+((new Date).valueOf()-dispose_start)+"ms");}; \ No newline at end of file
diff --git a/swat/style/qooxdoo/widgets/core/QxXmlHttpLoader.js b/swat/style/qooxdoo/widgets/core/QxXmlHttpLoader.js
new file mode 100644
index 0000000000..fbf514106c
--- /dev/null
+++ b/swat/style/qooxdoo/widgets/core/QxXmlHttpLoader.js
@@ -0,0 +1,2 @@
+/* Copyright (c): 2002-2005 (Germany): United Internet, 1&1, GMX, Schlund+Partner, Alturo */
+function QxXmlHttpLoader(){QxTarget.call(this);if(!QxXmlHttpLoader._ok){throw new Error("Your Browser does not support XML-HTTP!");};var o=this;this.__onreadystatechange=function(){o._onreadystatechange();};this.__onload=function(){o._onload();};this.__onreadystatefix=function(){o.req.readyState=4;o._onreadystatechange();};};QxXmlHttpLoader.extend(QxTarget,"QxXmlHttpLoader");QxXmlHttpLoader._http=window.XMLHttpRequest?true:false;QxXmlHttpLoader._activex=window.ActiveXObject&&!(new QxClient).isOpera()?true:false;QxXmlHttpLoader._activexobj=null;QxXmlHttpLoader._ok=QxXmlHttpLoader._http||QxXmlHttpLoader._activex;if(QxXmlHttpLoader._activex){var servers=["MSXML2","Microsoft","MSXML","MSXML3"];for(var i=0;i<servers.length;i++){try{var o=new ActiveXObject(servers[i]+".XMLHTTP");QxXmlHttpLoader._activexobj=servers[i];o=null;}catch(ex){};};};QxXmlHttpLoader.addProperty({name:"xml"});proto.load=function(url){try{this.req=QxXmlHttpLoader._activex?new ActiveXObject(QxXmlHttpLoader._activexobj+".XMLHTTP"):new XMLHttpRequest();if(typeof this.req.abort!="undefined"){this.req.abort();};this.req.onreadystatechange=this.__onreadystatechange;if(this.req.readyState==null){this.req.readyState=1;req.addEventListener("load",this.__onreadystatefix,false);};this.req.open("GET",url,true);return QxXmlHttpLoader._activex?this.req.send():this.req.send(null);}catch(e){throw new Error("Your browser does not support XML-HTTP:\n"+e);};};proto._onload=function(){};proto._onreadystatechange=function(){switch(this.req.readyState){case 1:if(this.hasEventListeners("init")){this.dispatchEvent(new QxEvent("init"));};break;case 2:if(this.hasEventListeners("connect")){this.dispatchEvent(new QxEvent("connect"));};if(this.req.status!=200&&this.req.status!=0){if(typeof this.req.abort!="undefined")this.req.abort();throw new Error("File request failed:"+this.req.statusText+"["+this.req.status+"]");};break;case 3:if(this.hasEventListeners("download"))this.dispatchEvent(new QxEvent("download"));try{var l=this.req.getResponseHeader("Content-Length");if(typeof l!="number"){l=NaN;};}catch(ex){var l=NaN;};break;case 4:if(this.hasEventListeners("done")){this.dispatchEvent(new QxEvent("done"));};if(this.req.status!=200&&this.req.status!=0){if(this.req.abort){this.req.abort();};throw new Error("File request failed:"+this.req.statusText+"["+this.req.status+"]");};if(!this.req.responseXML.documentElement){var s = String(this.req.responseText).replace(/<\?xml[^\?]*\?>/, "");this.req.responseXML.loadXML(s);};if(!this.req.responseXML.documentElement){throw new Error("Missing Document Element!");};if(this.req.responseXML.documentElement.tagName=="parseerror"){throw new Error("XML-File is not well-formed!");};this.dispatchEvent(new QxDataEvent("complete",this.req.responseXML),true);};};proto.dispose=function(){if(this._disposed){return;};if(this.req){this.req=null;};this.__onreadystatechange=null;return QxTarget.prototype.dispose.call(this);}; \ No newline at end of file