 
             // If there is no font found, assume a device font
             this.textfield.embedFonts = (this.font != null);
-            
+
             tf.bold = (this.fontstyle == "bold" || this.fontstyle =="bolditalic");
             tf.italic = (this.fontstyle == "italic" || this.fontstyle =="bolditalic");
             tf.underline = (this.underline || this.textdecoration == "underline");

            this.textfield = createTextField(0,0,400,20);
        }

        
        override public function setClickable( c:Boolean ):void {
          if (this.clickable == c) return;

          this.textfield.mouseEnabled = c || this.textfield.selectable;
          this.setCancelBubbling();

          this.clickable = c;
          if (c) {
              attachMouseEvents(this.textfield);
          } else {
              removeMouseEvents(this.textfield);
          }
      }

        public function addScrollEventListener():void {
            this.textfield.addEventListener(flash.events.Event.SCROLL, __handleScrollEvent);
        }

    function __handleScrollEvent(e:Event = null) {
      if (scroll !== textfield.scrollV) {
        scroll = textfield.scrollV;
        //Debug.info('__handleScrollEvent', 'scrollTop', lineNoToPixel(textfield.scrollV));
        owner.scrollevent('scrollTop', lineNoToPixel(textfield.scrollV));
      }
      if (maxscroll !== textfield.maxScrollV) {
        maxscroll = textfield.maxScrollV;
        //Debug.info('__handleScrollEvent', 'scrollHeight', lineNoToPixel(textfield.maxScrollV));
        owner.scrollevent('scrollHeight', lineNoToPixel(textfield.maxScrollV) + height);
      }
      if (hscroll !== textfield.scrollH) {
        hscroll = textfield.scrollH;
        //Debug.info('__handleScrollEvent', 'scrollLeft', textfield.scrollH);
        owner.scrollevent('scrollLeft', textfield.scrollH);
      }
      if (maxhscroll !== textfield.maxScrollH) {
        maxhscroll = textfield.maxScrollH;
        //Debug.info('__handleScrollEvent', 'scrollWidth', textfield.maxScrollH);
        owner.scrollevent('scrollWidth', textfield.maxScrollH + width);
      }
    }


      // turn on/off canceling of mouse event bubbling
      private function setCancelBubbling():void {
          var dobj:DisplayObject = this.textfield;

          // base on the displayobject's mouseenabled property - on for selectable
          var prevent = this.textfield.mouseEnabled;
          // if clickable is on, we don't want to cancel events
          if (this.clickable) prevent = false;

          if (prevent) {
              dobj.addEventListener(MouseEvent.CLICK, __ignoreMouseEvent);
              dobj.addEventListener(MouseEvent.DOUBLE_CLICK, __ignoreMouseEvent);
              dobj.addEventListener(MouseEvent.MOUSE_DOWN, __ignoreMouseEvent);
              dobj.addEventListener(MouseEvent.MOUSE_UP, __ignoreMouseEvent);
              dobj.addEventListener(MouseEvent.MOUSE_OVER, __ignoreMouseEvent);
              dobj.addEventListener(MouseEvent.MOUSE_OUT, __ignoreMouseEvent);
          } else {
              dobj.removeEventListener(MouseEvent.CLICK, __ignoreMouseEvent);
              dobj.removeEventListener(MouseEvent.DOUBLE_CLICK, __ignoreMouseEvent);
              dobj.removeEventListener(MouseEvent.MOUSE_DOWN, __ignoreMouseEvent);
              dobj.removeEventListener(MouseEvent.MOUSE_UP, __ignoreMouseEvent);
              dobj.removeEventListener(MouseEvent.MOUSE_OVER, __ignoreMouseEvent);
              dobj.removeEventListener(MouseEvent.MOUSE_OUT, __ignoreMouseEvent);
          }
      }

      private function __ignoreMouseEvent(e:MouseEvent) :void {
          if (e.type != MouseEvent.MOUSE_UP || LzMouseKernel.__lastMouseDown == this) {
              // don't cancel "onmouseup" if another sprite was selected
              e.stopPropagation();
          }
      }

        public function enableClickableLinks( enabled:Boolean):void {
            if (enabled) {

              this.owner.scrollevent('lineHeight', lh);
            }
        }


        public function setMultiline ( ml:Boolean ):void {
            this.multiline = (ml == true);
            if (this.multiline) {
