var suka=suka?suka:{};suka.collections=suka.collections?suka.collections:new Object();suka.display=suka.display?suka.display:new Object();suka.dom=suka.dom?suka.dom:new Object();suka.drawing=suka.drawing?suka.drawing:new Object();suka.images=suka.images?suka.images:{};suka.Object=function(){};suka.Object.prototype.toString=function(){return "suka.Object";};suka.Event=function(){suka.Object.call(this);this._handlers=new suka.collections.List();};suka.Event.inherit(suka.Object);suka.Event.prototype.addEventHandler=function(handler){this._handlers.add(handler);};suka.Event.prototype.fire=function(sender,e){for(var i=0;i<this._handlers.getCount();i++){var handler=this._handlers.getItem(i);handler.getHandler().call(handler.getOwner(),sender,e);}};suka.Event.prototype.removeEventHandler=function(handler){this._handlers.remove(handler);};suka.Event.prototype.toString=function(){return "suka.Event";};suka.EventArgs=function(e){suka.Object.call(this);var self=this;this._source=null;if(e){e.cancelBubble=true;if(e.target){this._source=e.target;}else if(e.srcElement){this._source=e.srcElement;}if(this._source.nodeType==3){this._source=this._source.parentNode;}}};suka.EventArgs.inherit(suka.Object);suka.EventArgs.prototype.getSource=function(){return this._source;};suka.EventArgs.toString=function(){return "suka.EventArgs";};suka.EventHandler=function(owner,handler){suka.Object.call(this);this._owner=owner;this._handler=handler;};suka.EventHandler.inherit(suka.Object);suka.EventHandler.prototype.getOwner=function(){return this._owner;};suka.EventHandler.prototype.getHandler=function(){return this._handler;};suka.EventHandler.prototype.toString=function(){return "suka.EventHandler";};suka.collections.List=function(){suka.Object.call(this);this._count=0;this._items=new Array();};suka.collections.List.inherit(suka.Object);suka.collections.List.prototype.getCount=function(){return this._count;};suka.collections.List.prototype.getItem=function(index){if(this.isValidIndex(index)){return this._items[index];}else{throw "Index Out of Bounds";}};suka.collections.List.prototype.add=function(item){if(this._count>=this._items.length){this._items.push(item);}else{this._items[this._count]=item;}this._count++;};suka.collections.List.prototype.clear=function(){this._count=0;this._items=new Array();};suka.collections.List.prototype.contains=function(item){return(this.indexOf(item)!=-1);};suka.collections.List.prototype.indexOf=function(item){for(var i=0;i<this._count;i++){if(this._items[i]==item){return i;}}return-1;};suka.collections.List.prototype.insert=function(item,index){if(!this.isValidIndex(index)){throw "Index Out of Bounds";}if(this._count>=this._items.length){this._items.push();}for(var i=this._count+1;i>index;i--){this._items[i]=this._items[i-1];}this._items[index]=item;this._count++;};suka.collections.List.prototype.isValidIndex=function(index){return(index>=0&&index<this._count);};suka.collections.List.prototype.remove=function(item){var index=this.indexOf(item);if(this.isValidIndex(index)){this.removeAt(index);}};suka.collections.List.prototype.removeAt=function(index){if(!this.isValidIndex(index)){throw "Index Out of Bounds";}for(var i=index;i<this._count-1;i++){this._items[i]=this._items[i+1];}this._count--;};suka.collections.List.prototype.toString=function(){return "suka.collections.List("+this._items.slice(0,this._count).toString().replace(/^\,+|\,+$/,"")+")";};suka.dom.NodeType=new suka.Object();suka.dom.NodeType.Any=0;suka.dom.NodeType.Element=1;suka.dom.NodeType.Attribute=2;suka.dom.NodeType.Text=3;suka.dom.NodeType.CDataSection=4;suka.dom.NodeType.EntityReference=5;suka.dom.NodeType.Entity=6;suka.dom.NodeType.ProcessingInstruction=7;suka.dom.NodeType.Comment=8;suka.dom.NodeType.Document=9;suka.dom.NodeType.DocumentType=10;suka.dom.NodeType.DocumentFragment=11;suka.dom.NodeType.Notation=12;suka.drawing.Point=function(x,y){suka.Object.call(this);this._x=x?x:0;this._y=y?y:0;};suka.drawing.Point.inherit(suka.Object);suka.drawing.Point.prototype.getX=function(){return this._x;};suka.drawing.Point.prototype.setX=function(value){this._x=value;};suka.drawing.Point.prototype.getY=function(){return this._y;};suka.drawing.Point.prototype.setY=function(value){this._y=value;};suka.drawing.Point.prototype.add=function(size){this._x+=size.getWidth();this._y+=size.getHeight();};suka.drawing.Point.prototype.equals=function(point){return(this._x==point._x)&&(this._y==point._y);};suka.drawing.Point.prototype.subtract=function(size){this._x-=size.getWidth();this._y-=size.getHeight();};suka.drawing.Point.prototype.toString=function(){return "suka.drawing.Point("+this._x+", "+this._y+")";};suka.drawing.Rectangle=function(location,size){suka.Object.call(this);this._location=location?location:new suka.drawing.Point(0,0);this._size=size?size:new suka.drawing.Size(0,0);};suka.drawing.Rectangle.inherit(suka.Object);suka.drawing.Rectangle.prototype.getArea=function(){return this.getWidth()*this.getHeight();};suka.drawing.Rectangle.prototype.getBottom=function(){return this._location.getY()+this._size.getHeight();};suka.drawing.Rectangle.prototype.setBottom=function(value){this._size.setHeight(value-this._location.getY());};suka.drawing.Rectangle.prototype.getHeight=function(){return this._size.getHeight();};suka.drawing.Rectangle.prototype.setHeight=function(value){this._size.setHeight(value);};suka.drawing.Rectangle.prototype.getLeft=function(){return this._location.getX();};suka.drawing.Rectangle.prototype.setLeft=function(value){this._location.setX(value);};suka.drawing.Rectangle.prototype.getLocation=function(){return this._location;};suka.drawing.Rectangle.prototype.setLocation=function(value){this._location=value;};suka.drawing.Rectangle.prototype.getRight=function(){return this._location.getX()+this._size.getWidth();};suka.drawing.Rectangle.prototype.setRight=function(value){this._size.setWidth(value-this._location.getX());};suka.drawing.Rectangle.prototype.getSize=function(){return this._size;};suka.drawing.Rectangle.prototype.setSize=function(value){this._size=value;};suka.drawing.Rectangle.prototype.getTop=function(){return this._location.getY();};suka.drawing.Rectangle.prototype.setTop=function(value){this._location.setY(value);};suka.drawing.Rectangle.prototype.getWidth=function(){return this._size.getWidth();};suka.drawing.Rectangle.prototype.setWidth=function(value){this._size.setWidth(value);};suka.drawing.Rectangle.prototype.getX=function(){return this._location.getX();};suka.drawing.Rectangle.prototype.setX=function(value){this._location.setX(value);};suka.drawing.Rectangle.prototype.getY=function(){return this._location.getY();};suka.drawing.Rectangle.prototype.setY=function(value){this._location.setY(value);};suka.drawing.Rectangle.prototype.centerIn=function(rectangle){this._location.setX((rectangle.getWidth()-this.getWidth())/2);this._location.setY((rectangle.getHeight()-this.getHeight())/2);};suka.drawing.Rectangle.prototype.equals=function(rectangle){return(this._location.equals(rectangle._location)&&this._size.equals(rectangle._size));};suka.drawing.Rectangle.prototype.intersection=function(rectangle){var result=new suka.drawing.Rectangle();result.setLeft(Math.max(this.getLeft(),rectangle.getLeft()));result.setRight(Math.min(this.getRight(),rectangle.getRight()));result.setTop(Math.max(this.getTop(),rectangle.getTop()));result.setBottom(Math.min(this.getBottom(),rectangle.getBottom()));if(result.getWidth()<=0||result.getHeight()<=0){return null;}else{return result;}};suka.drawing.Rectangle.prototype.scaleTo=function(factor){this._size.scaleTo(factor);};suka.drawing.Rectangle.prototype.scaleToFit=function(rectangle){this._size.scaleToFit(rectangle._size);};suka.drawing.Rectangle.prototype.toString=function(){return "suka.drawing.Rectangle("+this.getX()+", "+this.getY()+", "+this.getWidth()+", "+this.getHeight()+")";};suka.drawing.Rectangle.prototype.translate=function(size){this.setLocation(new suka.drawing.Point(this.getX()+size.getWidth(),this.getY()+size.getHeight()));};suka.drawing.Size=function(width,height){suka.Object.call(this);this._width=width?width:0;this._height=height?height:0;};suka.drawing.Size.inherit(suka.Object);suka.drawing.Size.prototype.getWidth=function(){return this._width;};suka.drawing.Size.prototype.setWidth=function(value){this._width=value;};suka.drawing.Size.prototype.getHeight=function(){return this._height;};suka.drawing.Size.prototype.setHeight=function(value){this._height=value;};suka.drawing.Size.prototype.contract=function(size){this._width-=size._width;this._height-=size._height;};suka.drawing.Size.prototype.equals=function(size){return(this._width==size._width)&&(this._width==size._width);};suka.drawing.Size.prototype.expand=function(size){this._width+=size._width;this._height+=size._height;};suka.drawing.Size.prototype.scaleTo=function(factor){this._width*=factor;this._height*=factor;};suka.drawing.Size.prototype.scaleToFit=function(size){if(this._width==0||this._height==0){this.scaleTo(0);}else{this.scaleTo(Math.min((size._width/this._width),(size._height/this._height)));}};suka.drawing.Size.prototype.toString=function(){return "suka.drawing.Size("+this._width+", "+this._height+")";};suka.images.ImageLoader=function(){suka.Object.call(this);var self=this;this.imageLoaded=new suka.Event();this.sourceChanged=new suka.Event();this._loaded=false;this._img=document.createElement("img");this._img.onload=function(e){self._onImageLoad(new suka.EventArgs(e));};};suka.images.ImageLoader.inherit(suka.Object);suka.images.ImageLoader.prototype.getHeight=function(){return this._img.height;};suka.images.ImageLoader.prototype.getLoaded=function(){return this._loaded;};suka.images.ImageLoader.prototype.getSize=function(){return new suka.drawing.Size(this._img.width,this._img.height);};suka.images.ImageLoader.prototype.imageLoaded=null;suka.images.ImageLoader.prototype.sourceChanged=null;suka.images.ImageLoader.prototype.getSource=function(){return this._img.src;};suka.images.ImageLoader.prototype.setSource=function(value){this._loaded=false;this._img.src=value;};suka.images.ImageLoader.prototype.getWidth=function(){return this._img.width;};suka.images.ImageLoader.prototype.toString=function(){return "suka.images.ImageLoader";};suka.images.ImageLoader.prototype._onImageLoad=function(e){this._loaded=true;this.imageLoaded.fire(this,e);};suka.display.MouseButton=new suka.Object();suka.display.MouseButton.None=0;suka.display.MouseButton.Left=1;suka.display.MouseButton.Right=2;suka.display.MouseButton.Middle=4;suka.display.MouseEventArgs=function(e){suka.EventArgs.call(this);if(document.all){this._button=e.button;this._location=new suka.drawing.Point(e.offsetX,e.offsetY);}else{switch(e.button){case 0:this._button=suka.display.MouseButton.Left;break;case 1:this._button=suka.display.MouseButton.Middle;break;case 2:this._button=suka.display.MouseButton.Right;break;default:this._button=suka.display.MouseButton.None;}this._location=new suka.drawing.Point(e.pageX,e.pageY);this._location.subtract(this._findOffsetOf(e.target));}};suka.display.MouseEventArgs.inherit(suka.EventArgs);suka.display.MouseEventArgs.prototype.getButton=function(){return this._button;};suka.display.MouseEventArgs.prototype.getLocation=function(){return this._location;};suka.display.MouseEventArgs.prototype.getX=function(){return this._location.getX();};suka.display.MouseEventArgs.prototype.getY=function(){return this._location.getY();};suka.display.MouseEventArgs.prototype.toString=function(){return "suka.display.MouseEventArgs";};suka.display.MouseEventArgs.prototype._findOffsetOf=function(element){if(element){var offset=this._findOffsetOf(element.offsetParent);offset.expand(new suka.drawing.Size(element.offsetLeft,element.offsetTop));return offset;}else{return new suka.drawing.Size(0,0);}};suka.display.Control=function(element){suka.Object.call(this);var self=this;this.click=new suka.Event();this.doubleClick=new suka.Event();this.mouseDown=new suka.Event();this.mouseOver=new suka.Event();this.mouseOut=new suka.Event();this.mouseMove=new suka.Event();this.mouseUp=new suka.Event();this.moved=new suka.Event();this.resized=new suka.Event();this._element=element;this._element.onclick=function(e){self._onClick(new suka.EventArgs(e||event));};this._element.ondblclick=function(e){self._onDoubleClick(new suka.EventArgs(e||event));};this._element.onmousedown=function(e){self._onMouseDown(new suka.display.MouseEventArgs(e||event));};this._element.onmouseover=function(e){self._onMouseOver(new suka.EventArgs(e||event));};this._element.onmouseout=function(e){self._onMouseOut(new suka.EventArgs(e||event));};this._element.onmousemove=function(e){self._onMouseMove(new suka.display.MouseEventArgs(e||event));};this._element.onmouseup=function(e){self._onMouseUp(new suka.display.MouseEventArgs(e||event));};this._element.style.position="relative";this._element.style.overflow="hidden";};suka.display.Control.inherit(suka.Object);suka.display.Control.addClassTo=function(element,className){if(element.className.search(new RegExp("\\b"+className+"\\b"))==-1){element.className+=element.className?" "+className:""+className;}};suka.display.Control.getBoundsOf=function(element){return new suka.drawing.Rectangle(new suka.drawing.Point(element.offsetLeft,element.offsetTop),new suka.drawing.Size(element.offsetWidth,element.offsetHeight));};suka.display.Control.setBoundsOf=function(element,value){element.style.left=value.getLeft()+"px";element.style.top=value.getTop()+"px";element.style.width=value.getWidth()+"px";element.style.height=value.getHeight()+"px";};suka.display.Control.removeClassFrom=function(element,className){if(element.className.search(new RegExp("\\b"+className+"\\b"))!=-1){element.className=element.className.replace(new RegExp("\\s*\\b"+className+"\\b","g"),"");}};suka.display.Control.getChildrenOf=function(element,filter){var children=[];var child=element.firstChild;while(child){if(filter==suka.dom.NodeType.Any||filter==child.nodeType){children.push(child);}child=child.nextSibling;}return children;};suka.display.Control.getFirstChildOf=function(element,filter){var child=element.firstChild;while(child){if(filter==suka.dom.NodeType.Any||filter==child.nodeType){return child;}child=child.nextSibling;}return null;};suka.display.Control.prototype.getBounds=function(){return new suka.drawing.Rectangle(new suka.drawing.Point(this._div.offsetLeft,this._div.offsetTop),new suka.drawing.Size(this._div.offsetWidth,this._div.offsetHeight));};suka.display.Control.prototype.setBounds=function(value){this._element.style.left=value.getLeft()+"px";this._element.style.top=value.getTop()+"px";this._element.style.width=value.getWidth()+"px";this._element.style.height=value.getHeight()+"px";this._onResize(new suka.EventArgs());this._onMove(new suka.EventArgs());};suka.display.Control.prototype.getChildren=function(filter){return suka.display.Control.getChildrenOf(this._element,filter);};suka.display.Control.prototype.getClient=function(){return new suka.drawing.Rectangle(new suka.drawing.Point(0,0),new suka.drawing.Size(this._element.clientWidth,this._element.clientHeight));};suka.display.Control.prototype.getElement=function(){return this._element;};suka.display.Control.prototype.getFirstChild=function(filter){return suka.display.Control.getFirstChildOf(this._element,filter);};suka.display.Control.prototype.getHeight=function(){return this._element.offsetHeight;};suka.display.Control.prototype.setHeight=function(value){this._element.style.height=value+"px";this._onResize(new suka.EventArgs());};suka.display.Control.prototype.getLeft=function(){return this._element.offsetLeft;};suka.display.Control.prototype.setLeft=function(value){this._element.style.left=value+"px";this._onMove(new suka.EventArgs());};suka.display.Control.prototype.getLocation=function(){return new suka.drawing.Point(this._element.offsetLeft,this._element.offsetTop);};suka.display.Control.prototype.setLocation=function(value){this._element.style.left=value.getX()+"px";this._element.style.top=value.getY()+"px";this._onMove(new suka.EventArgs());};suka.display.Control.prototype.getSize=function(){return new suka.drawing.Size(this._element.offsetWidth,this._element.offsetHeight);};suka.display.Control.prototype.setSize=function(value){this._element.style.width=value.getWidth()+"px";this._element.style.height=value.getHeight()+"px";this._onResize(new suka.EventArgs());};suka.display.Control.prototype.getTop=function(){return this._element.offsetTop;};suka.display.Control.prototype.setTop=function(value){this._element.style.top=value+"px";this._onMove(new suka.EventArgs());};suka.display.Control.prototype.getWidth=function(){return this._element.offsetWidth;};suka.display.Control.prototype.setWidth=function(value){this._element.style.width=value+"px";this._onResize(new suka.EventArgs());};suka.display.Control.prototype.getX=function(){return this._element.offsetLeft;};suka.display.Control.prototype.setX=function(value){this._element.style.left=value+"px";this._onMove(new suka.EventArgs());};suka.display.Control.prototype.getY=function(){return this._element.offsetTop;};suka.display.Control.prototype.setY=function(value){this._element.style.top=value+"px";this._onMove(new suka.EventArgs());};suka.display.Control.prototype.addClass=function(className){suka.display.Control.addClassTo(this,className);};suka.display.Control.prototype.removeClass=function(className){suka.display.Control.removeClassFrom(this,className);};suka.display.Control.prototype.toString=function(){return "suka.collections.Control";};suka.display.Control.prototype.click=null;suka.display.Control.prototype.doubleClick=null;suka.display.Control.prototype.mouseDown=null;suka.display.Control.prototype.mouseOver=null;suka.display.Control.prototype.mouseOut=null;suka.display.Control.prototype.mouseMove=null;suka.display.Control.prototype.mouseUp=null;suka.display.Control.prototype.moved=null;suka.display.Control.prototype.resized=null;suka.display.Control.prototype._onClick=function(e){this.click.fire(this,e);};suka.display.Control.prototype._onDoubleClick=function(e){this.doubleClick.fire(this,e);};suka.display.Control.prototype._onMouseDown=function(e){this.mouseDown.fire(this,e);};suka.display.Control.prototype._onMouseOver=function(e){this.mouseOver.fire(this,e);};suka.display.Control.prototype._onMouseOut=function(e){this.mouseOut.fire(this,e);};suka.display.Control.prototype._onMouseMove=function(e){this.mouseMove.fire(this,e);};suka.display.Control.prototype._onMouseUp=function(e){this.mouseUp.fire(this,e);};suka.display.Control.prototype._onMove=function(e){this.moved.fire(this,e);};suka.display.Control.prototype._onResize=function(e){this.resized.fire(this,e);};suka.display.AccordianSizeMode=new suka.Object();suka.display.AccordianSizeMode.Fill=0;suka.display.AccordianSizeMode.Fit=1;suka.display.Accordian=function(element){suka.display.Control.call(this,element);var self=this;this._frames=30;this._frameRate=30;this._sizeMode=suka.display.AccordianSizeMode.Fill;this._tabOverClass="AccordianTabOver";this._tabOpenClass="AccordianTabOpen";this._contentOpenClass="AccordianContentOpen";this._animator=null;var panels=this.getChildren(suka.dom.NodeType.Element);for(var i=0;i<panels.length;i++){var tab=suka.display.Control.getChildrenOf(panels[i],suka.dom.NodeType.Element)[0];tab.onclick=function(e){self._tabClicked(new suka.EventArgs(e||event));};tab.onmouseover=function(e){self._tabMouseOver(new suka.EventArgs(e||event));};tab.onmouseout=function(e){self._tabMouseOut(new suka.EventArgs(e||event));};var content=suka.display.Control.getChildrenOf(panels[i],suka.dom.NodeType.Element)[1];content.style.height=(i==0)?this._selectedHeight(content)+"px":"0px";if(i==0){suka.display.Control.addClassTo(tab,this._tabOpenClass);suka.display.Control.addClassTo(content,this._contentOpenClass);content.style.height=this._selectedHeight(content)+"px";}else{content.style.height="0px";}}};suka.display.Accordian.inherit(suka.display.Control);suka.display.Accordian.prototype.getSizeMode=function(){return this._sizeMode;};suka.display.Accordian.prototype.setSizeMode=function(value){this._autoFill=value;};suka.display.Accordian.prototype.toString=function(){return "suka.display.Accordian";};suka.display.Accordian.prototype._tabClicked=function(e){var panel=e.getSource().parentNode;if(this._animator){this._animator.stop();}this._animator=new suka.display.Accordian.Animator(this._frames,this._frameRate);var panels=this.getChildren(suka.dom.NodeType.Element);for(var i=0;i<panels.length;i++){var tab=suka.display.Control.getChildrenOf(panels[i],suka.dom.NodeType.Element)[0];var content=suka.display.Control.getChildrenOf(panels[i],suka.dom.NodeType.Element)[1];var animated=null;if(panel==panels[i]){suka.display.Control.addClassTo(tab,this._tabOpenClass);suka.display.Control.addClassTo(content,this._contentOpenClass);animated=new suka.display.Accordian.Animated(content,this._selectedHeight(content));}else{suka.display.Control.removeClassFrom(tab,this._tabOpenClass);suka.display.Control.removeClassFrom(content,this._contentOpenClass);animated=new suka.display.Accordian.Animated(content,0);}this._animator.add(animated);}this._animator.start();};suka.display.Accordian.prototype._tabMouseOver=function(e){suka.display.Control.addClassTo(e.getSource(),this._tabOverClass);};suka.display.Accordian.prototype._tabMouseOut=function(e){suka.display.Control.removeClassFrom(e.getSource(),this._tabOverClass);};suka.display.Accordian.prototype._selectedHeight=function(element){var height=0;switch(this._sizeMode){case suka.display.AccordianSizeMode.Fill:height=this._element.clientHeight;var panels=this.getChildren(suka.dom.NodeType.Element);for(var i=0;i<panels.length;i++){var tab=suka.display.Control.getChildrenOf(panels[i],suka.dom.NodeType.Element)[0];var t=(document.all)?parseInt(tab.currentStyle.marginTop):parseInt(document.defaultView.getComputedStyle(tab,'').getPropertyValue('margin-top'));var b=(document.all)?parseInt(tab.currentStyle.marginBottom):parseInt(document.defaultView.getComputedStyle(tab,'').getPropertyValue('margin-bottom'));var h=(document.all)?parseInt(tab.currentStyle.height):parseInt(document.defaultView.getComputedStyle(tab,'').getPropertyValue('height'));height-=(t)?t:0;height-=(b)?b:0;height-=(h)?h:0;}break;case suka.display.AccordianSizeMode.Fit:return element.scrollHeight;break;default:throw "Invalid Enumeration";}return height;};suka.display.Accordian.Animator=function(frames,frameRate){suka.Object.call(this);var self=this;this._frames=frames;this._frameSize=Math.floor(1000/frameRate);this._timer=null;this._animateds=[];};suka.display.Accordian.Animator.inherit(suka.Object);suka.display.Accordian.Animator.prototype.add=function(animated){this._animateds.push(animated);};suka.display.Accordian.Animator.prototype.start=function(){var self=this;this._timer=setTimeout(function(){self._animate();},this._time);};suka.display.Accordian.Animator.prototype.stop=function(){if(this._timer){clearTimeout(this._timer);}this._timer=null;for(var i=0;i<this._animateds.length;i++){this._animateds[i].step(-1);}};suka.display.Accordian.Animator.prototype._animate=function(){for(var i=0;i<this._animateds.length;i++){this._animateds[i].step(this._frames);}if(--this._frames>0){var self=this;this._timer=setTimeout(function(){self._animate();},this._time);}};suka.display.Accordian.Animated=function(element,seeking){this._element=element;this._seeking=seeking;this._overflow=this._element.style.overflow;};suka.display.Accordian.Animated.inherit(suka.Object);suka.display.Accordian.Animated.prototype.step=function(frames){if(frames>0){var current=this._element.offsetHeight;this._element.style.height=(current+(this._seeking-current)/frames)+"px";this._element.style.overflow=(frames==1)?this._overflow:"hidden";}else{this._element.style.overflow=this._overflow;}};suka.display.ImageButton=function(element,outSource,overSource,downSource,target){suka.display.Control.call(this,element);var self=this;this._outSource=outSource;this._overSource=overSource;this._downSource=downSource;this._target=target;var outImageLoader=new suka.images.ImageLoader(outSource);var overImageLoader=new suka.images.ImageLoader(overSource);var downImageLoader=new suka.images.ImageLoader(downSource);outImageLoader.setSource(outSource);overImageLoader.setSource(overSource);downImageLoader.setSource(downSource);};suka.display.ImageButton.inherit(suka.display.Control);suka.display.Control.prototype._onClick=function(e){this._target.call(this);this.click.fire(this,e);};suka.display.ImageButton.prototype._onMouseDown=function(e){this._element.src=this._downSource;this.mouseDown.fire(this,e);};suka.display.ImageButton.prototype._onMouseOver=function(e){this._element.src=this._overSource;this.mouseOver.fire(this,e);};suka.display.ImageButton.prototype._onMouseOut=function(e){this._element.src=this._outSource;this.mouseOut.fire(this,e);};suka.display.ImageButton.prototype._onMouseUp=function(e){this._element.src=this._overSource;this.mouseUp.fire(this,e);};suka.display.ImageBoxSizeMode=new suka.Object();suka.display.ImageBoxSizeMode.Center=0;suka.display.ImageBoxSizeMode.Normal=1;suka.display.ImageBoxSizeMode.Stretch=2;suka.display.ImageBoxSizeMode.Scale=3;suka.display.ImageBox=function(element){suka.display.Control.call(this,element);var self=this;this.imageLoaded=new suka.Event();this.sizeModeChanged=new suka.Event();this._sizeMode=suka.display.ImageBoxSizeMode.Normal;this._element.style.overflow="hidden";this._img=this.getFirstChild(suka.dom.NodeType.Element);this._img.style.position="absolute";this._img.style.display="none";this._img.onclick=function(e){self._onClick(new suka.EventArgs(e||event));};this._img.ondblclick=function(e){self._onDoubleClick(new suka.EventArgs(e||event));};this._img.onmousedown=function(e){self._onMouseDown(new suka.display.MouseEventArgs(e||event));};this._img.onmouseover=function(e){self._onMouseOver(new suka.EventArgs(e||event));};this._img.onmouseout=function(e){self._onMouseOut(new suka.EventArgs(e||event));};this._img.onmousemove=function(e){self._onMouseMove(new suka.display.MouseEventArgs(e||event));};this._img.onmouseup=function(e){self._onMouseUp(new suka.display.MouseEventArgs(e||event));};this._loader=new suka.images.ImageLoader();this._loader.imageLoaded.addEventHandler(new suka.EventHandler(this,self._onImageLoad));this._loader.setSource(this._img.src);};suka.display.ImageBox.inherit(suka.display.Control);suka.display.ImageBox.prototype.getSizeMode=function(){return this._sizeMode;};suka.display.ImageBox.prototype.setSizeMode=function(value){this._sizeMode=value;this._onSizeModeChange(new suka.EventArgs());};suka.display.ImageBox.prototype.getSource=function(){return this._loader.getSource();};suka.display.ImageBox.prototype.setSource=function(value){this._loader.setSource(value);};suka.display.ImageBox.prototype.toString=function(){return "suka.display.ImageBox";};suka.display.ImageBox.prototype.imageLoaded=null;suka.display.ImageBox.prototype.sizeModeChanged=null;suka.display.ImageBox.prototype._onImageLoad=function(e){this._refresh();this.imageLoaded.fire(this,e);};suka.display.ImageBox.prototype._onSizeModeChange=function(e){this._refresh();this.sizeModeChanged.fire(this,e);};suka.display.ImageBox.prototype._refresh=function(){var client=this.getClient();if(client.getWidth()>0&&client.getHeight()>0);{if(this._loader.getLoaded()){var image=new suka.drawing.Rectangle(new suka.drawing.Point(0,0),this._loader.getSize());switch(this._sizeMode){case suka.display.ImageBoxSizeMode.Center:image.centerIn(client);break;case suka.display.ImageBoxSizeMode.Normal:break;case suka.display.ImageBoxSizeMode.Stretch:image=client;break;case suka.display.ImageBoxSizeMode.Scale:image.scaleToFit(client);image.centerIn(client);break;default:throw "Invalid Enumeration";}this._img.src=this._loader.getSource();this._img.style.width=image.getWidth()+"px";this._img.style.height=image.getHeight()+"px";this._img.style.left=image.getLeft()+"px";this._img.style.top=image.getTop()+"px";this._img.style.display="";}else{this._img.style.display="none";}}};