From 6de0b2d183109e6cb3bc14d1ac7532ec6e0fe82d Mon Sep 17 00:00:00 2001
From: Ezequiel Bergamaschi <ezequielbergamaschi@gmail.com>
Date: Tue, 7 Oct 2014 01:16:41 -0300
Subject: [PATCH] symb links for tests

---
 mindplot/src/test/javascript/lib/core.js      |   1 +
 .../test/javascript/{ => lib}/jquery-1.8.2.js |   0
 .../src/test/javascript/lib/web2d.svg-min.js  | 762 ++++++++++++++++++
 3 files changed, 763 insertions(+)
 create mode 120000 mindplot/src/test/javascript/lib/core.js
 rename mindplot/src/test/javascript/{ => lib}/jquery-1.8.2.js (100%)
 create mode 100644 mindplot/src/test/javascript/lib/web2d.svg-min.js

diff --git a/mindplot/src/test/javascript/lib/core.js b/mindplot/src/test/javascript/lib/core.js
new file mode 120000
index 00000000..b52f4cba
--- /dev/null
+++ b/mindplot/src/test/javascript/lib/core.js
@@ -0,0 +1 @@
+../../../../../core-js/target/classes/core.js
\ No newline at end of file
diff --git a/mindplot/src/test/javascript/jquery-1.8.2.js b/mindplot/src/test/javascript/lib/jquery-1.8.2.js
similarity index 100%
rename from mindplot/src/test/javascript/jquery-1.8.2.js
rename to mindplot/src/test/javascript/lib/jquery-1.8.2.js
diff --git a/mindplot/src/test/javascript/lib/web2d.svg-min.js b/mindplot/src/test/javascript/lib/web2d.svg-min.js
new file mode 100644
index 00000000..e292dbd8
--- /dev/null
+++ b/mindplot/src/test/javascript/lib/web2d.svg-min.js
@@ -0,0 +1,762 @@
+var web2d={};
+web2d.peer={svg:{}};
+web2d.peer.utils={};web2d.peer.utils.EventUtils={broadcastChangeEvent:function(elementPeer,type){var listeners=elementPeer.getChangeEventListeners(type);
+if($defined(listeners)){for(var i=0;
+i<listeners.length;
+i++){var listener=listeners[i];
+listener.call(elementPeer,null)
+}}var children=elementPeer.getChildren();
+for(var j=0;
+j<children.length;
+j++){var child=children[j];
+web2d.peer.utils.EventUtils.broadcastChangeEvent(child,type)
+}}};web2d.peer.utils.TransformUtil={workoutScale:function(elementPeer){var current=elementPeer.getParent();
+var width=1;
+var height=1;
+while(current){var coordSize=current.getCoordSize();
+var size=current.getSize();
+width=width*(parseInt(size.width)/coordSize.width);
+height=height*(parseInt(size.height)/coordSize.height);
+current=current.getParent()
+}return{width:width,height:height}
+}};web2d.peer.svg.ElementPeer=new Class({initialize:function(svgElement){this._native=svgElement;
+if(!this._native.addEvent){for(var key in Element){this._native[key]=Element.prototype[key]
+}}this._size={width:1,height:1};
+this._changeListeners={}
+},setChildren:function(children){this._children=children
+},getChildren:function(){var result=this._children;
+if(!$defined(result)){result=[];
+this._children=result
+}return result
+},getParent:function(){return this._parent
+},setParent:function(parent){this._parent=parent
+},append:function(elementPeer){elementPeer.setParent(this);
+var children=this.getChildren();
+children.include(elementPeer);
+this._native.appendChild(elementPeer._native);
+web2d.peer.utils.EventUtils.broadcastChangeEvent(this,"strokeStyle")
+},removeChild:function(elementPeer){elementPeer.setParent(null);
+var children=this.getChildren();
+var oldLength=children.length;
+children.erase(elementPeer);
+$assert(children.length<oldLength,"element could not be removed:"+elementPeer);
+this._native.removeChild(elementPeer._native)
+},addEvent:function(type,listener){$(this._native).bind(type,listener)
+},trigger:function(type,event){$(this._native).trigger(type,event)
+},cloneEvents:function(from){this._native.cloneEvents(from)
+},removeEvent:function(type,listener){$(this._native).unbind(type,listener)
+},setSize:function(width,height){if($defined(width)&&this._size.width!=parseInt(width)){this._size.width=parseInt(width);
+this._native.setAttribute("width",parseInt(width))
+}if($defined(height)&&this._size.height!=parseInt(height)){this._size.height=parseInt(height);
+this._native.setAttribute("height",parseInt(height))
+}web2d.peer.utils.EventUtils.broadcastChangeEvent(this,"strokeStyle")
+},getSize:function(){return{width:this._size.width,height:this._size.height}
+},setFill:function(color,opacity){if($defined(color)){this._native.setAttribute("fill",color)
+}if($defined(opacity)){this._native.setAttribute("fill-opacity",opacity)
+}},getFill:function(){var color=this._native.getAttribute("fill");
+var opacity=this._native.getAttribute("fill-opacity");
+return{color:color,opacity:Number(opacity)}
+},getStroke:function(){var vmlStroke=this._native;
+var color=vmlStroke.getAttribute("stroke");
+var dashstyle=this._stokeStyle;
+var opacity=vmlStroke.getAttribute("stroke-opacity");
+var width=vmlStroke.getAttribute("stroke-width");
+return{color:color,style:dashstyle,opacity:opacity,width:width}
+},setStroke:function(width,style,color,opacity){if($defined(width)){this._native.setAttribute("stroke-width",width+"px")
+}if($defined(color)){this._native.setAttribute("stroke",color)
+}if($defined(style)){var dashArrayPoints=this.__stokeStyleToStrokDasharray[style];
+var scale=1/web2d.peer.utils.TransformUtil.workoutScale(this).width;
+var strokeWidth=this._native.getAttribute("stroke-width");
+strokeWidth=parseFloat(strokeWidth);
+var scaledPoints=[];
+for(var i=0;
+i<dashArrayPoints.length;
+i++){scaledPoints[i]=dashArrayPoints[i]*strokeWidth;
+scaledPoints[i]=(scaledPoints[i]*scale)+"px"
+}this._stokeStyle=style
+}if($defined(opacity)){this._native.setAttribute("stroke-opacity",opacity)
+}},setVisibility:function(isVisible){this._native.setAttribute("visibility",(isVisible)?"visible":"hidden")
+},isVisible:function(){var visibility=this._native.getAttribute("visibility");
+return !(visibility=="hidden")
+},updateStrokeStyle:function(){var strokeStyle=this._stokeStyle;
+if(this.getParent()){if(strokeStyle&&strokeStyle!="solid"){this.setStroke(null,strokeStyle)
+}}},attachChangeEventListener:function(type,listener){var listeners=this.getChangeEventListeners(type);
+if(!$defined(listener)){throw"Listener can not be null"
+}listeners.push(listener)
+},getChangeEventListeners:function(type){var listeners=this._changeListeners[type];
+if(!$defined(listeners)){listeners=[];
+this._changeListeners[type]=listeners
+}return listeners
+},moveToFront:function(){this._native.parentNode.appendChild(this._native)
+},moveToBack:function(){this._native.parentNode.insertBefore(this._native,this._native.parentNode.firstChild)
+},setCursor:function(type){this._native.style.cursor=type
+}});
+web2d.peer.svg.ElementPeer.prototype.svgNamespace="http://www.w3.org/2000/svg";
+web2d.peer.svg.ElementPeer.prototype.linkNamespace="http://www.w3.org/1999/xlink";
+web2d.peer.svg.ElementPeer.prototype.__stokeStyleToStrokDasharray={solid:[],dot:[1,3],dash:[4,3],longdash:[10,2],dashdot:[5,3,1,3]};web2d.peer.svg.ElipsePeer=new Class({Extends:web2d.peer.svg.ElementPeer,initialize:function(){var svgElement=window.document.createElementNS(this.svgNamespace,"ellipse");
+this.parent(svgElement);
+this.attachChangeEventListener("strokeStyle",web2d.peer.svg.ElementPeer.prototype.updateStrokeStyle);
+this._position={x:0,y:0}
+},setSize:function(width,height){this.parent(width,height);
+if($defined(width)){this._native.setAttribute("rx",width/2)
+}if($defined(height)){this._native.setAttribute("ry",height/2)
+}var pos=this.getPosition();
+this.setPosition(pos.x,pos.y)
+},setPosition:function(cx,cy){var size=this.getSize();
+cx=cx+size.width/2;
+cy=cy+size.height/2;
+if($defined(cx)){this._native.setAttribute("cx",cx)
+}if($defined(cy)){this._native.setAttribute("cy",cy)
+}},getPosition:function(){return this._position
+}});web2d.peer.svg.Font=new Class({initialize:function(){this._size=10;
+this._style="normal";
+this._weight="normal"
+},init:function(args){if($defined(args.size)){this._size=parseInt(args.size)
+}if($defined(args.style)){this._style=args.style
+}if($defined(args.weight)){this._weight=args.weight
+}},getHtmlSize:function(scale){var result=0;
+if(this._size==6){result=this._size*scale.height*43/32
+}if(this._size==8){result=this._size*scale.height*42/32
+}else{if(this._size==10){result=this._size*scale.height*42/32
+}else{if(this._size==15){result=this._size*scale.height*42/32
+}}}return result
+},getGraphSize:function(){return this._size*43/32
+},getSize:function(){return parseInt(this._size)
+},getStyle:function(){return this._style
+},getWeight:function(){return this._weight
+},setSize:function(size){this._size=size
+},setStyle:function(style){this._style=style
+},setWeight:function(weight){this._weight=weight
+},getWidthMargin:function(){var result=0;
+if(this._size==10||this._size==6){result=4
+}return result
+}});web2d.peer.svg.ArialFont=new Class({Extends:web2d.peer.svg.Font,initialize:function(){this.parent();
+this._fontFamily="Arial"
+},getFontFamily:function(){return this._fontFamily
+},getFont:function(){return web2d.Font.ARIAL
+}});web2d.peer.svg.PolyLinePeer=new Class({Extends:web2d.peer.svg.ElementPeer,initialize:function(){var svgElement=window.document.createElementNS(this.svgNamespace,"polyline");
+this.parent(svgElement);
+this.setFill("none");
+this.breakDistance=10
+},setFrom:function(x1,y1){this._x1=x1;
+this._y1=y1;
+this._updatePath()
+},setTo:function(x2,y2){this._x2=x2;
+this._y2=y2;
+this._updatePath()
+},setStrokeWidth:function(width){this._native.setAttribute("stroke-width",width)
+},setColor:function(color){this._native.setAttribute("stroke",color)
+},setStyle:function(style){this._style=style;
+this._updatePath()
+},getStyle:function(){return this._style
+},_updatePath:function(){if(this._style=="Curved"){this._updateMiddleCurvePath()
+}else{if(this._style=="Straight"){this._updateStraightPath()
+}else{this._updateCurvePath()
+}}},_updateStraightPath:function(){if($defined(this._x1)&&$defined(this._x2)&&$defined(this._y1)&&$defined(this._y2)){var path=web2d.PolyLine.buildStraightPath(this.breakDistance,this._x1,this._y1,this._x2,this._y2);
+this._native.setAttribute("points",path)
+}},_updateMiddleCurvePath:function(){var x1=this._x1;
+var y1=this._y1;
+var x2=this._x2;
+var y2=this._y2;
+if($defined(x1)&&$defined(x2)&&$defined(y1)&&$defined(y2)){var diff=x2-x1;
+var middlex=(diff/2)+x1;
+var signx=1;
+var signy=1;
+if(diff<0){signx=-1
+}if(y2<y1){signy=-1
+}var path=x1+", "+y1+" "+(middlex-10*signx)+", "+y1+" "+middlex+", "+(y1+10*signy)+" "+middlex+", "+(y2-10*signy)+" "+(middlex+10*signx)+", "+y2+" "+x2+", "+y2;
+this._native.setAttribute("points",path)
+}},_updateCurvePath:function(){if($defined(this._x1)&&$defined(this._x2)&&$defined(this._y1)&&$defined(this._y2)){var path=web2d.PolyLine.buildCurvedPath(this.breakDistance,this._x1,this._y1,this._x2,this._y2);
+this._native.setAttribute("points",path)
+}}});web2d.peer.svg.CurvedLinePeer=new Class({Extends:web2d.peer.svg.ElementPeer,initialize:function(){var svgElement=window.document.createElementNS(this.svgNamespace,"path");
+this.parent(svgElement);
+this._style={fill:"#495879"};
+this._updateStyle();
+this._customControlPoint_1=false;
+this._customControlPoint_2=false;
+this._control1=new core.Point();
+this._control2=new core.Point();
+this._lineStyle=true
+},setSrcControlPoint:function(control){this._customControlPoint_1=true;
+var change=this._control1.x!=control.x||this._control1.y!=control.y;
+if($defined(control.x)){this._control1=control;
+this._control1.x=parseInt(this._control1.x);
+this._control1.y=parseInt(this._control1.y)
+}if(change){this._updatePath()
+}},setDestControlPoint:function(control){this._customControlPoint_2=true;
+var change=this._control2.x!=control.x||this._control2.y!=control.y;
+if($defined(control.x)){this._control2=control;
+this._control2.x=parseInt(this._control2.x);
+this._control2.y=parseInt(this._control2.y)
+}if(change){this._updatePath()
+}},isSrcControlPointCustom:function(){return this._customControlPoint_1
+},isDestControlPointCustom:function(){return this._customControlPoint_2
+},setIsSrcControlPointCustom:function(isCustom){this._customControlPoint_1=isCustom
+},setIsDestControlPointCustom:function(isCustom){this._customControlPoint_2=isCustom
+},getControlPoints:function(){return[this._control1,this._control2]
+},setFrom:function(x1,y1){var change=this._x1!=parseInt(x1)||this._y1!=parseInt(y1);
+this._x1=parseInt(x1);
+this._y1=parseInt(y1);
+if(change){this._updatePath()
+}},setTo:function(x2,y2){var change=this._x2!=parseInt(x2)||this._y2!=parseInt(y2);
+this._x2=parseInt(x2);
+this._y2=parseInt(y2);
+if(change){this._updatePath()
+}},getFrom:function(){return new core.Point(this._x1,this._y1)
+},getTo:function(){return new core.Point(this._x2,this._y2)
+},setStrokeWidth:function(width){this._style["stroke-width"]=width;
+this._updateStyle()
+},setColor:function(color){this._style.stroke=color;
+this._style.fill=color;
+this._updateStyle()
+},updateLine:function(avoidControlPointFix){this._updatePath(avoidControlPointFix)
+},setLineStyle:function(style){this._lineStyle=style;
+if(this._lineStyle){this._style.fill=this._fill
+}else{this._fill=this._style.fill;
+this._style.fill="none"
+}this._updateStyle();
+this.updateLine()
+},getLineStyle:function(){return this._lineStyle
+},setShowEndArrow:function(visible){this._showEndArrow=visible;
+this.updateLine()
+},isShowEndArrow:function(){return this._showEndArrow
+},setShowStartArrow:function(visible){this._showStartArrow=visible;
+this.updateLine()
+},isShowStartArrow:function(){return this._showStartArrow
+},_updatePath:function(avoidControlPointFix){if($defined(this._x1)&&$defined(this._y1)&&$defined(this._x2)&&$defined(this._y2)){this._calculateAutoControlPoints(avoidControlPointFix);
+var path="M"+this._x1+","+this._y1+" C"+(this._control1.x+this._x1)+","+(this._control1.y+this._y1)+" "+(this._control2.x+this._x2)+","+(this._control2.y+this._y2)+" "+this._x2+","+this._y2+(this._lineStyle?" "+(this._control2.x+this._x2)+","+(this._control2.y+this._y2+3)+" "+(this._control1.x+this._x1)+","+(this._control1.y+this._y1+5)+" "+this._x1+","+(this._y1+7)+" Z":"");
+this._native.setAttribute("d",path)
+}},_updateStyle:function(){var style="";
+for(var key in this._style){style+=key+":"+this._style[key]+" "
+}this._native.setAttribute("style",style)
+},_calculateAutoControlPoints:function(avoidControlPointFix){var defaultpoints=mindplot.util.Shape.calculateDefaultControlPoints(new core.Point(this._x1,this._y1),new core.Point(this._x2,this._y2));
+if(!this._customControlPoint_1&&!($defined(avoidControlPointFix)&&avoidControlPointFix==0)){this._control1.x=defaultpoints[0].x;
+this._control1.y=defaultpoints[0].y
+}if(!this._customControlPoint_2&&!($defined(avoidControlPointFix)&&avoidControlPointFix==1)){this._control2.x=defaultpoints[1].x;
+this._control2.y=defaultpoints[1].y
+}},setDashed:function(length,spacing){if($defined(length)&&$defined(spacing)){this._native.setAttribute("stroke-dasharray",length+","+spacing)
+}else{this._native.setAttribute("stroke-dasharray","")
+}}});web2d.peer.svg.ArrowPeer=new Class({Extends:web2d.peer.svg.ElementPeer,initialize:function(){var svgElement=window.document.createElementNS(this.svgNamespace,"path");
+this.parent(svgElement);
+this._style={};
+this._controlPoint=new core.Point();
+this._fromPoint=new core.Point()
+},setFrom:function(x,y){this._fromPoint.x=x;
+this._fromPoint.y=y;
+this._redraw()
+},setControlPoint:function(point){this._controlPoint=point;
+this._redraw()
+},setStrokeColor:function(color){this.setStroke(null,null,color,null)
+},setStrokeWidth:function(width){this.setStroke(width)
+},setDashed:function(isDashed,length,spacing){if($defined(isDashed)&&isDashed&&$defined(length)&&$defined(spacing)){this._native.setAttribute("stroke-dasharray",length+","+spacing)
+}else{this._native.setAttribute("stroke-dasharray","")
+}},_updateStyle:function(){var style="";
+for(var key in this._style){style+=key+":"+this._style[key]+" "
+}this._native.setAttribute("style",style)
+},_redraw:function(){var x,y,xp,yp;
+if($defined(this._fromPoint.x)&&$defined(this._fromPoint.y)&&$defined(this._controlPoint.x)&&$defined(this._controlPoint.y)){if(this._controlPoint.y==0){this._controlPoint.y=1
+}var y0=this._controlPoint.y;
+var x0=this._controlPoint.x;
+var x2=x0+y0;
+var y2=y0-x0;
+var x3=x0-y0;
+var y3=y0+x0;
+var m=y2/x2;
+var mp=y3/x3;
+var l=6;
+var pow=Math.pow;
+x=(x2==0?0:Math.sqrt(pow(l,2)/(1+pow(m,2))));
+x*=Math.sign(x2);
+y=(x2==0?l*Math.sign(y2):m*x);
+xp=(x3==0?0:Math.sqrt(pow(l,2)/(1+pow(mp,2))));
+xp*=Math.sign(x3);
+yp=(x3==0?l*Math.sign(y3):mp*xp);
+var path="M"+this._fromPoint.x+","+this._fromPoint.y+" L"+(x+this._fromPoint.x)+","+(y+this._fromPoint.y)+"M"+this._fromPoint.x+","+this._fromPoint.y+" L"+(xp+this._fromPoint.x)+","+(yp+this._fromPoint.y);
+this._native.setAttribute("d",path)
+}}});web2d.peer.svg.TextPeer=new Class({Extends:web2d.peer.svg.ElementPeer,initialize:function(){var svgElement=window.document.createElementNS(this.svgNamespace,"text");
+this.parent(svgElement);
+this._position={x:0,y:0};
+this._font=new web2d.Font("Arial",this)
+},append:function(element){this._native.appendChild(element._native)
+},setTextAlignment:function(align){this._textAlign=align
+},getTextAlignment:function(){return $defined(this._textAlign)?this._textAlign:"left"
+},setText:function(text){while(this._native.firstChild){this._native.removeChild(this._native.firstChild)
+}this._text=text;
+if(text){var lines=text.split("\n");
+var me=this;
+lines.forEach(function(line){var tspan=window.document.createElementNS(me.svgNamespace,"tspan");
+tspan.setAttribute("dy","1em");
+tspan.setAttribute("x",me.getPosition().x);
+tspan.textContent=line.length==0?" ":line;
+me._native.appendChild(tspan)
+})
+}},getText:function(){return this._text
+},setPosition:function(x,y){this._position={x:x,y:y};
+this._native.setAttribute("y",y);
+this._native.setAttribute("x",x);
+$(this._native).children("tspan").attr("x",x)
+},getPosition:function(){return this._position
+},getNativePosition:function(){return $(this._native).position()
+},setFont:function(font,size,style,weight){if($defined(font)){this._font=new web2d.Font(font,this)
+}if($defined(style)){this._font.setStyle(style)
+}if($defined(weight)){this._font.setWeight(weight)
+}if($defined(size)){this._font.setSize(size)
+}this._updateFontStyle()
+},_updateFontStyle:function(){this._native.setAttribute("font-family",this._font.getFontFamily());
+this._native.setAttribute("font-size",this._font.getGraphSize());
+this._native.setAttribute("font-style",this._font.getStyle());
+this._native.setAttribute("font-weight",this._font.getWeight())
+},setColor:function(color){this._native.setAttribute("fill",color)
+},getColor:function(){return this._native.getAttribute("fill")
+},setTextSize:function(size){this._font.setSize(size);
+this._updateFontStyle()
+},setContentSize:function(width,height){this._native.xTextSize=width.toFixed(1)+","+height.toFixed(1)
+},setStyle:function(style){this._font.setStyle(style);
+this._updateFontStyle()
+},setWeight:function(weight){this._font.setWeight(weight);
+this._updateFontStyle()
+},setFontFamily:function(family){var oldFont=this._font;
+this._font=new web2d.Font(family,this);
+this._font.setSize(oldFont.getSize());
+this._font.setStyle(oldFont.getStyle());
+this._font.setWeight(oldFont.getWeight());
+this._updateFontStyle()
+},getFont:function(){return{font:this._font.getFont(),size:parseInt(this._font.getSize()),style:this._font.getStyle(),weight:this._font.getWeight()}
+},setSize:function(size){this._font.setSize(size);
+this._updateFontStyle()
+},getWidth:function(){var computedWidth;
+try{computedWidth=this._native.getBBox().width;
+if(computedWidth==0){var bbox=this._native.getBBox();
+computedWidth=bbox.width
+}}catch(e){computedWidth=10
+}var width=parseInt(computedWidth);
+width=width+this._font.getWidthMargin();
+return width
+},getHeight:function(){try{var computedHeight=this._native.getBBox().height
+}catch(e){computedHeight=10
+}return parseInt(computedHeight)
+},getHtmlFontSize:function(){return this._font.getHtmlSize()
+}});web2d.peer.svg.WorkspacePeer=new Class({Extends:web2d.peer.svg.ElementPeer,initialize:function(element){this._element=element;
+var svgElement=window.document.createElementNS(this.svgNamespace,"svg");
+this.parent(svgElement);
+this._native.setAttribute("focusable","true");
+this._native.setAttribute("id","workspace");
+this._native.setAttribute("preserveAspectRatio","none")
+},setCoordSize:function(width,height){var viewBox=this._native.getAttribute("viewBox");
+var coords=[0,0,0,0];
+if(viewBox!=null){coords=viewBox.split(/ /)
+}if($defined(width)){coords[2]=width
+}if($defined(height)){coords[3]=height
+}this._native.setAttribute("viewBox",coords.join(" "));
+this._native.setAttribute("preserveAspectRatio","none");
+web2d.peer.utils.EventUtils.broadcastChangeEvent(this,"strokeStyle")
+},getCoordSize:function(){var viewBox=this._native.getAttribute("viewBox");
+var coords=[1,1,1,1];
+if(viewBox!=null){coords=viewBox.split(/ /)
+}return{width:coords[2],height:coords[3]}
+},setCoordOrigin:function(x,y){var viewBox=this._native.getAttribute("viewBox");
+var coords=[0,0,0,0];
+if(viewBox!=null){coords=viewBox.split(/ /)
+}if($defined(x)){coords[0]=x
+}if($defined(y)){coords[1]=y
+}this._native.setAttribute("viewBox",coords.join(" "))
+},append:function(child){this.parent(child);
+web2d.peer.utils.EventUtils.broadcastChangeEvent(child,"onChangeCoordSize")
+},getCoordOrigin:function(child){var viewBox=this._native.getAttribute("viewBox");
+var coords=[1,1,1,1];
+if(viewBox!=null){coords=viewBox.split(/ /)
+}var x=parseFloat(coords[0]);
+var y=parseFloat(coords[1]);
+return{x:x,y:y}
+},getPosition:function(){return{x:0,y:0}
+}});web2d.peer.svg.GroupPeer=new Class({Extends:web2d.peer.svg.ElementPeer,initialize:function(){var svgElement=window.document.createElementNS(this.svgNamespace,"g");
+this.parent(svgElement);
+this._native.setAttribute("preserveAspectRatio","none");
+this._coordSize={width:1,height:1};
+this._native.setAttribute("focusable","true");
+this._position={x:0,y:0};
+this._coordOrigin={x:0,y:0}
+},setCoordSize:function(width,height){var change=this._coordSize.width!=width||this._coordSize.height!=height;
+this._coordSize.width=width;
+this._coordSize.height=height;
+if(change){this.updateTransform()
+}web2d.peer.utils.EventUtils.broadcastChangeEvent(this,"strokeStyle")
+},getCoordSize:function(){return{width:this._coordSize.width,height:this._coordSize.height}
+},updateTransform:function(){var sx=this._size.width/this._coordSize.width;
+var sy=this._size.height/this._coordSize.height;
+var cx=this._position.x-this._coordOrigin.x*sx;
+var cy=this._position.y-this._coordOrigin.y*sy;
+cx=isNaN(cx)?0:cx;
+cy=isNaN(cy)?0:cy;
+sx=isNaN(sx)?0:sx;
+sy=isNaN(sy)?0:sy;
+this._native.setAttribute("transform","translate("+cx+","+cy+") scale("+sx+","+sy+")")
+},setOpacity:function(value){this._native.setAttribute("opacity",value)
+},setCoordOrigin:function(x,y){var change=x!=this._coordOrigin.x||y!=this._coordOrigin.y;
+if($defined(x)){this._coordOrigin.x=x
+}if($defined(y)){this._coordOrigin.y=y
+}if(change){this.updateTransform()
+}},setSize:function(width,height){var change=width!=this._size.width||height!=this._size.height;
+this.parent(width,height);
+if(change){this.updateTransform()
+}},setPosition:function(x,y){var change=x!=this._position.x||y!=this._position.y;
+if($defined(x)){this._position.x=parseInt(x)
+}if($defined(y)){this._position.y=parseInt(y)
+}if(change){this.updateTransform()
+}},getPosition:function(){return{x:this._position.x,y:this._position.y}
+},append:function(child){this.parent(child);
+web2d.peer.utils.EventUtils.broadcastChangeEvent(child,"onChangeCoordSize")
+},getCoordOrigin:function(){return{x:this._coordOrigin.x,y:this._coordOrigin.y}
+}});web2d.peer.svg.RectPeer=new Class({Extends:web2d.peer.svg.ElementPeer,initialize:function(arc){var svgElement=window.document.createElementNS(this.svgNamespace,"rect");
+this.parent(svgElement);
+this._arc=arc;
+this.attachChangeEventListener("strokeStyle",web2d.peer.svg.ElementPeer.prototype.updateStrokeStyle)
+},setPosition:function(x,y){if($defined(x)){this._native.setAttribute("x",parseInt(x))
+}if($defined(y)){this._native.setAttribute("y",parseInt(y))
+}},getPosition:function(){var x=this._native.getAttribute("x");
+var y=this._native.getAttribute("y");
+return{x:parseInt(x),y:parseInt(y)}
+},setSize:function(width,height){this.parent(width,height);
+var min=width<height?width:height;
+if($defined(this._arc)){var arc=(min/2)*this._arc;
+this._native.setAttribute("rx",arc);
+this._native.setAttribute("ry",arc)
+}}});web2d.peer.svg.ImagePeer=new Class({Extends:web2d.peer.svg.ElementPeer,initialize:function(){var svgElement=window.document.createElementNS(this.svgNamespace,"image");
+this.parent(svgElement);
+this._position={x:0,y:0};
+this._href="";
+this._native.setAttribute("preserveAspectRatio","none")
+},setPosition:function(x,y){this._position={x:x,y:y};
+this._native.setAttribute("y",y);
+this._native.setAttribute("x",x)
+},getPosition:function(){return this._position
+},setHref:function(url){this._native.setAttributeNS(this.linkNamespace,"href",url);
+this._href=url
+},getHref:function(){return this._href
+}});web2d.peer.svg.TimesFont=new Class({Extends:web2d.peer.svg.Font,initialize:function(){this.parent();
+this._fontFamily="times"
+},getFontFamily:function(){return this._fontFamily
+},getFont:function(){return web2d.Font.TIMES
+}});web2d.peer.svg.LinePeer=new Class({Extends:web2d.peer.svg.ElementPeer,initialize:function(){var svgElement=window.document.createElementNS(this.svgNamespace,"line");
+this.parent(svgElement);
+this.attachChangeEventListener("strokeStyle",web2d.peer.svg.ElementPeer.prototype.updateStrokeStyle)
+},setFrom:function(x1,y1){this._x1=x1;
+this._y1=y1;
+this._native.setAttribute("x1",x1);
+this._native.setAttribute("y1",y1)
+},setTo:function(x2,y2){this._x2=x2;
+this._y2=y2;
+this._native.setAttribute("x2",x2);
+this._native.setAttribute("y2",y2)
+},getFrom:function(){return new core.Point(this._x1,this._y1)
+},getTo:function(){return new core.Point(this._x2,this._y2)
+},setArrowStyle:function(startStyle,endStyle){if($defined(startStyle)){}if($defined(endStyle)){}}});web2d.peer.svg.TahomaFont=new Class({Extends:web2d.peer.svg.Font,initialize:function(){this.parent();
+this._fontFamily="tahoma"
+},getFontFamily:function(){return this._fontFamily
+},getFont:function(){return web2d.Font.TAHOMA
+}});web2d.peer.svg.VerdanaFont=new Class({Extends:web2d.peer.svg.Font,initialize:function(){this.parent();
+this._fontFamily="verdana"
+},getFontFamily:function(){return this._fontFamily
+},getFont:function(){return web2d.Font.VERDANA
+}});web2d.Element=new Class({initialize:function(peer,attributes){this._peer=peer;
+if(peer==null){throw new Error("Element peer can not be null")
+}if($defined(attributes)){this._initialize(attributes)
+}},_initialize:function(attributes){var batchExecute={};
+for(var key in attributes){var funcName=this._attributeNameToFuncName(key,"set");
+var funcArgs=batchExecute[funcName];
+if(!$defined(funcArgs)){funcArgs=[]
+}var signature=web2d.Element._propertyNameToSignature[key];
+var argPositions=signature[1];
+if(argPositions!=web2d.Element._SIGNATURE_MULTIPLE_ARGUMENTS){funcArgs[argPositions]=attributes[key]
+}else{funcArgs=attributes[key].split(" ")
+}batchExecute[funcName]=funcArgs
+}for(var key in batchExecute){var func=this[key];
+if(!$defined(func)){throw new Error("Could not find function: "+key)
+}func.apply(this,batchExecute[key])
+}},setSize:function(width,height){this._peer.setSize(width,height)
+},setPosition:function(cx,cy){this._peer.setPosition(cx,cy)
+},addEvent:function(type,listener){this._peer.addEvent(type,listener)
+},trigger:function(type,event){this._peer.trigger(type,event)
+},cloneEvents:function(from){this._peer.cloneEvents(from)
+},removeEvent:function(type,listener){this._peer.removeEvent(type,listener)
+},getType:function(){throw new Error("Not implemeneted yet. This method must be implemented by all the inherited objects.")
+},getFill:function(){return this._peer.getFill()
+},setFill:function(color,opacity){this._peer.setFill(color,opacity)
+},getPosition:function(){return this._peer.getPosition()
+},getNativePosition:function(){return this._peer.getNativePosition()
+},setStroke:function(width,style,color,opacity){if(style!=null&&style!=undefined&&style!="dash"&&style!="dot"&&style!="solid"&&style!="longdash"&&style!="dashdot"){throw new Error("Unsupported stroke style: '"+style+"'")
+}this._peer.setStroke(width,style,color,opacity)
+},_attributeNameToFuncName:function(attributeKey,prefix){var signature=web2d.Element._propertyNameToSignature[attributeKey];
+if(!$defined(signature)){throw"Unsupported attribute: "+attributeKey
+}var firstLetter=signature[0].charAt(0);
+return prefix+firstLetter.toUpperCase()+signature[0].substring(1)
+},setAttribute:function(key,value){var funcName=this._attributeNameToFuncName(key,"set");
+var signature=web2d.Element._propertyNameToSignature[key];
+if(signature==null){throw"Could not find the signature for:"+key
+}var argPositions=signature[1];
+var args=[];
+if(argPositions!==this._SIGNATURE_MULTIPLE_ARGUMENTS){args[argPositions]=value
+}else{if(typeof value=="array"){args=value
+}else{var strValue=String(value);
+args=strValue.split(" ")
+}}var setter=this[funcName];
+if(setter==null){throw"Could not find the function name:"+funcName
+}setter.apply(this,args)
+},getAttribute:function(key){var funcName=this._attributeNameToFuncName(key,"get");
+var signature=web2d.Element._propertyNameToSignature[key];
+if(signature==null){throw"Could not find the signature for:"+key
+}var getter=this[funcName];
+if(getter==null){throw"Could not find the function name:"+funcName
+}var getterResult=getter.apply(this,[]);
+var attibuteName=signature[2];
+if(!$defined(attibuteName)){throw"Could not find attribute mapping for:"+key
+}var result=getterResult[attibuteName];
+if(!$defined(result)){throw"Could not find attribute with name:"+attibuteName
+}return result
+},setOpacity:function(opacity){this._peer.setStroke(null,null,null,opacity);
+this._peer.setFill(null,opacity)
+},setVisibility:function(isVisible){this._peer.setVisibility(isVisible)
+},isVisible:function(){return this._peer.isVisible()
+},moveToFront:function(){this._peer.moveToFront()
+},moveToBack:function(){this._peer.moveToBack()
+},getStroke:function(){return this._peer.getStroke()
+},setCursor:function(type){this._peer.setCursor(type)
+},getParent:function(){return this._peer.getParent()
+}});
+web2d.Element._SIGNATURE_MULTIPLE_ARGUMENTS=-1;
+web2d.Element._supportedEvents=["click","dblclick","mousemove","mouseout","mouseover","mousedown","mouseup"];
+web2d.Element._propertyNameToSignature={size:["size",-1],width:["size",0,"width"],height:["size",1,"height"],position:["position",-1],x:["position",0,"x"],y:["position",1,"y"],stroke:["stroke",-1],strokeWidth:["stroke",0,"width"],strokeStyle:["stroke",1,"style"],strokeColor:["stroke",2,"color"],strokeOpacity:["stroke",3,"opacity"],fill:["fill",-1],fillColor:["fill",0,"color"],fillOpacity:["fill",1,"opacity"],coordSize:["coordSize",-1],coordSizeWidth:["coordSize",0,"width"],coordSizeHeight:["coordSize",1,"height"],coordOrigin:["coordOrigin",-1],coordOriginX:["coordOrigin",0,"x"],coordOriginY:["coordOrigin",1,"y"],visibility:["visibility",0],opacity:["opacity",0]};web2d.Elipse=new Class({Extends:web2d.Element,initialize:function(attributes){var peer=web2d.peer.Toolkit.createElipse();
+var defaultAttributes={width:40,height:40,x:5,y:5,stroke:"1 solid black",fillColor:"blue"};
+for(var key in attributes){defaultAttributes[key]=attributes[key]
+}this.parent(peer,defaultAttributes)
+},getType:function(){return"Elipse"
+},getSize:function(){return this._peer.getSize()
+}});web2d.Font=new Class({initialize:function(fontFamily,textPeer){var font="web2d.peer.Toolkit.create"+fontFamily+"Font();";
+this._peer=eval(font);
+this._textPeer=textPeer
+},getHtmlSize:function(){var scale=web2d.peer.utils.TransformUtil.workoutScale(this._textPeer);
+return this._peer.getHtmlSize(scale)
+},getGraphSize:function(){var scale=web2d.peer.utils.TransformUtil.workoutScale(this._textPeer);
+return this._peer.getGraphSize(scale)
+},getFontScale:function(){return web2d.peer.utils.TransformUtil.workoutScale(this._textPeer).height
+},getSize:function(){return this._peer.getSize()
+},getStyle:function(){return this._peer.getStyle()
+},getWeight:function(){return this._peer.getWeight()
+},getFontFamily:function(){return this._peer.getFontFamily()
+},setSize:function(size){return this._peer.setSize(size)
+},setStyle:function(style){return this._peer.setStyle(style)
+},setWeight:function(weight){return this._peer.setWeight(weight)
+},getFont:function(){return this._peer.getFont()
+},getWidthMargin:function(){return this._peer.getWidthMargin()
+}});
+web2d.Font.ARIAL="Arial";
+web2d.Font.TIMES="Times";
+web2d.Font.TAHOMA="Tahoma";
+web2d.Font.VERDANA="Verdana";web2d.Group=new Class({Extends:web2d.Element,initialize:function(attributes){var peer=web2d.peer.Toolkit.createGroup();
+var defaultAttributes={width:50,height:50,x:50,y:50,coordOrigin:"0 0",coordSize:"50 50"};
+for(var key in attributes){defaultAttributes[key]=attributes[key]
+}this.parent(peer,defaultAttributes)
+},removeChild:function(element){if(!$defined(element)){throw"Child element can not be null"
+}if(element==this){throw"It's not possible to add the group as a child of itself"
+}var elementType=element.getType();
+if(elementType==null){throw"It seems not to be an element ->"+element
+}this._peer.removeChild(element._peer)
+},append:function(element){if(!$defined(element)){throw"Child element can not be null"
+}if(element==this){throw"It's not posible to add the group as a child of itself"
+}var elementType=element.getType();
+if(elementType==null){throw"It seems not to be an element ->"+element
+}if(elementType=="Workspace"){throw"A group can not have a workspace as a child"
+}this._peer.append(element._peer)
+},getType:function(){return"Group"
+},setCoordSize:function(width,height){this._peer.setCoordSize(width,height)
+},setCoordOrigin:function(x,y){this._peer.setCoordOrigin(x,y)
+},getCoordOrigin:function(){return this._peer.getCoordOrigin()
+},getSize:function(){return this._peer.getSize()
+},setFill:function(color,opacity){throw"Unsupported operation. Fill can not be set to a group"
+},setStroke:function(width,style,color,opacity){throw"Unsupported operation. Stroke can not be set to a group"
+},getCoordSize:function(){return this._peer.getCoordSize()
+},appendDomChild:function(DomElement){if(!$defined(DomElement)){throw"Child element can not be null"
+}if(DomElement==this){throw"It's not possible to add the group as a child of itself"
+}this._peer._native.append(DomElement)
+},setOpacity:function(value){this._peer.setOpacity(value)
+}});web2d.Image=new Class({Extends:web2d.Element,initialize:function(attributes){var peer=web2d.peer.Toolkit.createImage();
+this.parent(peer,attributes)
+},getType:function(){return"Image"
+},setHref:function(href){this._peer.setHref(href)
+},getHref:function(){return this._peer.getHref()
+},getSize:function(){return this._peer.getSize()
+}});web2d.Line=new Class({Extends:web2d.Element,initialize:function(attributes){var peer=web2d.peer.Toolkit.createLine();
+var defaultAttributes={strokeColor:"#495879",strokeWidth:1,strokeOpacity:1};
+for(var key in attributes){defaultAttributes[key]=attributes[key]
+}this.parent(peer,defaultAttributes)
+},getType:function(){return"Line"
+},setFrom:function(x,y){this._peer.setFrom(x,y)
+},setTo:function(x,y){this._peer.setTo(x,y)
+},getFrom:function(){return this._peer.getFrom()
+},getTo:function(){return this._peer.getTo()
+},setArrowStyle:function(startStyle,endStyle){this._peer.setArrowStyle(startStyle,endStyle)
+},setPosition:function(cx,cy){throw"Unsupported operation"
+},setSize:function(width,height){throw"Unsupported operation"
+},setFill:function(color,opacity){throw"Unsupported operation"
+}});web2d.PolyLine=new Class({Extends:web2d.Element,initialize:function(attributes){var peer=web2d.peer.Toolkit.createPolyLine();
+var defaultAttributes={strokeColor:"blue",strokeWidth:1,strokeStyle:"solid",strokeOpacity:1};
+for(var key in attributes){defaultAttributes[key]=attributes[key]
+}this.parent(peer,defaultAttributes)
+},getType:function(){return"PolyLine"
+},setFrom:function(x,y){this._peer.setFrom(x,y)
+},setTo:function(x,y){this._peer.setTo(x,y)
+},setStyle:function(style){this._peer.setStyle(style)
+},getStyle:function(){return this._peer.getStyle()
+},buildCurvedPath:function(dist,x1,y1,x2,y2){var signx=1;
+var signy=1;
+if(x2<x1){signx=-1
+}if(y2<y1){signy=-1
+}var path;
+if(Math.abs(y1-y2)>2){var middlex=x1+((x2-x1>0)?dist:-dist);
+path=x1.toFixed(1)+", "+y1.toFixed(1)+" "+middlex.toFixed(1)+", "+y1.toFixed(1)+" "+middlex.toFixed(1)+", "+(y2-5*signy).toFixed(1)+" "+(middlex+5*signx).toFixed(1)+", "+y2.toFixed(1)+" "+x2.toFixed(1)+", "+y2.toFixed(1)
+}else{path=x1.toFixed(1)+", "+y1.toFixed(1)+" "+x2.toFixed(1)+", "+y2.toFixed(1)
+}return path
+},buildStraightPath:function(dist,x1,y1,x2,y2){var middlex=x1+((x2-x1>0)?dist:-dist);
+return x1+", "+y1+" "+middlex+", "+y1+" "+middlex+", "+y2+" "+x2+", "+y2
+}});web2d.CurvedLine=new Class({Extends:web2d.Element,initialize:function(attributes){var peer=web2d.peer.Toolkit.createCurvedLine();
+var defaultAttributes={strokeColor:"blue",strokeWidth:1,strokeStyle:"solid",strokeOpacity:1};
+for(var key in attributes){defaultAttributes[key]=attributes[key]
+}this.parent(peer,defaultAttributes)
+},getType:function(){return"CurvedLine"
+},setFrom:function(x,y){$assert(!isNaN(x),"x must be defined");
+$assert(!isNaN(y),"y must be defined");
+this._peer.setFrom(x,y)
+},setTo:function(x,y){$assert(!isNaN(x),"x must be defined");
+$assert(!isNaN(y),"y must be defined");
+this._peer.setTo(x,y)
+},getFrom:function(){return this._peer.getFrom()
+},getTo:function(){return this._peer.getTo()
+},setShowEndArrow:function(visible){this._peer.setShowEndArrow(visible)
+},isShowEndArrow:function(){return this._peer.isShowEndArrow()
+},setShowStartArrow:function(visible){this._peer.setShowStartArrow(visible)
+},isShowStartArrow:function(){return this._peer.isShowStartArrow()
+},setSrcControlPoint:function(control){this._peer.setSrcControlPoint(control)
+},setDestControlPoint:function(control){this._peer.setDestControlPoint(control)
+},getControlPoints:function(){return this._peer.getControlPoints()
+},isSrcControlPointCustom:function(){return this._peer.isSrcControlPointCustom()
+},isDestControlPointCustom:function(){return this._peer.isDestControlPointCustom()
+},setIsSrcControlPointCustom:function(isCustom){this._peer.setIsSrcControlPointCustom(isCustom)
+},setIsDestControlPointCustom:function(isCustom){this._peer.setIsDestControlPointCustom(isCustom)
+},updateLine:function(avoidControlPointFix){return this._peer.updateLine(avoidControlPointFix)
+},setStyle:function(style){this._peer.setLineStyle(style)
+},getStyle:function(){return this._peer.getLineStyle()
+},setDashed:function(length,spacing){this._peer.setDashed(length,spacing)
+}});
+web2d.CurvedLine.SIMPLE_LINE=false;
+web2d.CurvedLine.NICE_LINE=true;web2d.Arrow=new Class({Extends:web2d.Element,initialize:function(attributes){var peer=web2d.peer.Toolkit.createArrow();
+var defaultAttributes={strokeColor:"black",strokeWidth:1,strokeStyle:"solid",strokeOpacity:1};
+for(var key in attributes){defaultAttributes[key]=attributes[key]
+}this.parent(peer,defaultAttributes)
+},getType:function(){return"Arrow"
+},setFrom:function(x,y){this._peer.setFrom(x,y)
+},setControlPoint:function(point){this._peer.setControlPoint(point)
+},setStrokeColor:function(color){this._peer.setStrokeColor(color)
+},setStrokeWidth:function(width){this._peer.setStrokeWidth(width)
+},setDashed:function(isDashed,length,spacing){this._peer.setDashed(isDashed,length,spacing)
+}});web2d.Rect=new Class({Extends:web2d.Element,initialize:function(arc,attributes){if(arc&&arc>1){throw"Arc must be 0<=arc<=1"
+}if(arguments.length<=0){var rx=0;
+var ry=0
+}var peer=web2d.peer.Toolkit.createRect(arc);
+var defaultAttributes={width:40,height:40,x:5,y:5,stroke:"1 solid black",fillColor:"green"};
+for(var key in attributes){defaultAttributes[key]=attributes[key]
+}this.parent(peer,defaultAttributes)
+},getType:function(){return"Rect"
+},getSize:function(){return this._peer.getSize()
+}});web2d.Text=new Class({Extends:web2d.Element,initialize:function(attributes){var peer=web2d.peer.Toolkit.createText();
+this.parent(peer,attributes)
+},getType:function(){return"Text"
+},setText:function(text){this._peer.setText(text)
+},setTextAlignment:function(align){$assert(align,"align can not be null");
+this._peer.setTextAlignment(align)
+},setTextSize:function(width,height){this._peer.setContentSize(width,height)
+},getText:function(){return this._peer.getText()
+},setFont:function(font,size,style,weight){this._peer.setFont(font,size,style,weight)
+},setColor:function(color){this._peer.setColor(color)
+},getColor:function(){return this._peer.getColor()
+},setStyle:function(style){this._peer.setStyle(style)
+},setWeight:function(weight){this._peer.setWeight(weight)
+},setFontFamily:function(family){this._peer.setFontFamily(family)
+},getFont:function(){return this._peer.getFont()
+},setSize:function(size){this._peer.setSize(size)
+},getHtmlFontSize:function(){return this._peer.getHtmlFontSize()
+},getWidth:function(){return this._peer.getWidth()
+},getHeight:function(){return parseInt(this._peer.getHeight())
+},getFontHeight:function(){var lines=this._peer.getText().split("\n").length;
+return Math.round(this.getHeight()/lines)
+}});web2d.peer.ToolkitSVG={init:function(){},createWorkspace:function(element){return new web2d.peer.svg.WorkspacePeer(element)
+},createGroup:function(element){return new web2d.peer.svg.GroupPeer()
+},createElipse:function(){return new web2d.peer.svg.ElipsePeer()
+},createLine:function(){return new web2d.peer.svg.LinePeer()
+},createPolyLine:function(){return new web2d.peer.svg.PolyLinePeer()
+},createCurvedLine:function(){return new web2d.peer.svg.CurvedLinePeer()
+},createArrow:function(){return new web2d.peer.svg.ArrowPeer()
+},createText:function(){return new web2d.peer.svg.TextPeer()
+},createImage:function(){return new web2d.peer.svg.ImagePeer()
+},createRect:function(arc){return new web2d.peer.svg.RectPeer(arc)
+},createArialFont:function(){return new web2d.peer.svg.ArialFont()
+},createTimesFont:function(){return new web2d.peer.svg.TimesFont()
+},createVerdanaFont:function(){return new web2d.peer.svg.VerdanaFont()
+},createTahomaFont:function(){return new web2d.peer.svg.TahomaFont()
+}};
+web2d.peer.Toolkit=web2d.peer.ToolkitSVG;web2d.Workspace=new Class({Extends:web2d.Element,initialize:function(attributes){this._htmlContainer=this._createDivContainer();
+var peer=web2d.peer.Toolkit.createWorkspace(this._htmlContainer);
+var defaultAttributes={width:"200px",height:"200px",stroke:"1px solid #edf1be",fillColor:"white",coordOrigin:"0 0",coordSize:"200 200"};
+for(var key in attributes){defaultAttributes[key]=attributes[key]
+}this.parent(peer,defaultAttributes);
+this._htmlContainer.append(this._peer._native)
+},getType:function(){return"Workspace"
+},append:function(element){if(!$defined(element)){throw"Child element can not be null"
+}var elementType=element.getType();
+if(elementType==null){throw"It seems not to be an element ->"+element
+}if(elementType=="Workspace"){throw"A workspace can not have a workspace as a child"
+}this._peer.append(element._peer)
+},addItAsChildTo:function(element){if(!$defined(element)){throw"Workspace div container can not be null"
+}element.append(this._htmlContainer)
+},_createDivContainer:function(){var container=window.document.createElement("div");
+container.id="workspaceContainer";
+container.style.position="relative";
+container.style.top="0px";
+container.style.left="0px";
+container.style.height="688px";
+container.style.border="1px solid red";
+return $(container)
+},setSize:function(width,height){if($defined(width)){this._htmlContainer.css("width",width)
+}if($defined(height)){this._htmlContainer.css("height",height)
+}this._peer.setSize(width,height)
+},setCoordSize:function(width,height){this._peer.setCoordSize(width,height)
+},setCoordOrigin:function(x,y){this._peer.setCoordOrigin(x,y)
+},getCoordOrigin:function(){return this._peer.getCoordOrigin()
+},_getHtmlContainer:function(){return this._htmlContainer
+},setFill:function(color,opacity){this._htmlContainer.css("background-color",color);
+if(opacity||opacity===0){throw"Unsupported operation. Opacity not supported."
+}},getFill:function(){var color=this._htmlContainer.css("background-color");
+return{color:color}
+},getSize:function(){var width=this._htmlContainer.css("width");
+var height=this._htmlContainer.css("height");
+return{width:width,height:height}
+},setStroke:function(width,style,color,opacity){if(style!="solid"){throw"Not supported style stroke style:"+style
+}this._htmlContainer.css("border",width+" "+style+" "+color);
+if(opacity||opacity===0){throw"Unsupported operation. Opacity not supported."
+}},getCoordSize:function(){return this._peer.getCoordSize()
+},removeChild:function(element){if(!$defined(element)){throw"Child element can not be null"
+}if(element==this){throw"It's not possible to add the group as a child of itself"
+}var elementType=element.getType();
+if(elementType==null){throw"It seems not to be an element ->"+element
+}this._peer.removeChild(element._peer)
+},dumpNativeChart:function(){var elem=this._htmlContainer;
+return elem.innerHTML
+}});core.Point=new Class({initialize:function(x,y){this.x=x;
+this.y=y
+},setValue:function(x,y){this.x=x;
+this.y=y
+},inspect:function(){return"{x:"+this.x+",y:"+this.y+"}"
+},clone:function(){return new core.Point(this.x,this.y)
+}});
+core.Point.fromString=function(point){var values=point.split(",");
+return new core.Point(values[0],values[1])
+};
\ No newline at end of file