     /**
      * max text show length number.
      */
-    static public var MAX_TXT_LENGTH:int = 1000;
+    public static var MAX_TXT_LENGTH:int = 1000;
+    
     /**
      * max text show line number.
      */
-    static public var MAX_LINE:int = 50;
-
+    public static var MAX_LINE:int = 50;
+    
     //is outo expand.
-    static private var autoExpand:Boolean = true;
+    private static var autoExpand:Boolean = true;
+    
     //the yes/no strong.
-    static private var isStrong:Boolean = false;
-
-    static private var title:String = "Wersling Output v2.0.1";
+    private static var isStrong:Boolean = false;
+    
+    private static var title:String = "Wersling Output v2.1";
+    
     /**
      *  @private
      */
-    static public var instance:Output;
-
+    public static var instance:Output;
+    
     //==========================================================================
     //  Variables
     //==========================================================================
     //log history list.
     private var history:Array = new Array();
+    
     //default text format
-    private const defaultTextFormat:TextFormat = new TextFormat("Verdana,Tahoma,_sans");
+    private const defaultTextFormat:TextFormat = 
+        new TextFormat("Verdana,Tahoma,_sans");
+    
     //search text field
     private var searchLabel:TextField;
+    
     private var searchLabelBg:TextField;
+    
     //content text field
     private var outputTxt:TextField;
+    
     //title bar
     private var titleBar:Sprite;
+    
     //the out put parent.
     private var _parent:DisplayObjectContainer;
-
+    
+    private var invalidateTimeOut:int = 0;
     //------------------------
     //  private const
     //------------------------
     [Embed("images/delete.gif")]
     private var deleteIcon:Class;
-
+    
     [Embed("images/pin.gif")]
     private var pinIcon:Class;
-
+    
     [Embed("images/unpin.gif")]
     private var unpinIcon:Class;
-
+    
     [Embed("images/close.gif")]
     private var closeIcon:Class;
-
-    private const textClolors:Array = [ "#666666","#0066FF","#FFCC00","#FF0000","#CC0000","#000000" ];
-
+    
+    private const textClolors:Array = 
+        [ "#666666", "#0066FF", "#FFCC00", "#FF0000", "#CC0000", "#000000" ];
+    
     //==========================================================================
     //  Constructor
     //==========================================================================
-
+    
     /**
      * Output Constructor.
      * Create a new <code>Output</code> instance.

    {
        return "[object " + getQualifiedClassName(this) + "]";
    }

    public function dispose():void
    {
        clear(null);

     */
    private function addMsg(str:*, level:uint):void
    {
        if (!instance)
        {
            return;
        }
        
        if (isStrong)
        {
            history.push({ msg:str, level:getColorTextByLevel(str, level)});
            
            if (history.length > MAX_LINE)
            {
                history.shift();
            }
            if (_parent && _parent.contains(this))
            {
                invalidateHtmlText();
            }
        }
        else
        {
