﻿function ShowMore(C,D)
{
 var D=D||
 {
 }
 ;
 C=(C.constructor==String)?document.getElementById(C):C;
 if(C&&C.innerHTML)
 {
  var B=D.charCount||100;
  var F=D.showMoreText||"&nbsp;"+" 更多&#187;";
  var G=/<\/?\w+(\s+\w+="?[^>]*"?)*\s*>/g;
  var L=C.innerHTML.match(G);
  var E=C.innerHTML.replace(G,"|").replace(/\s+/g," ").replace(/(^\s|\s$)/g,"");
  var K=E.match(new RegExp("(.{"+B+"})(.*)"));
  if(!K||K[2].length<F.length*1.5)
  {
   return null;
  }
  else
  {
   var H=K[1];
   var I=K[2];
   if(H.match(/\w$/)&&I.match(/^\w/))
   {
    I=H.match(/\w+$/)[0]+I;
    H=H.replace(/\w+$/,"");
   }
   var J,A=[];
   while(L&&L[0])
   {
    J=L.shift();
    if(H.match(/\|[^$]/))
    {
     H=H.replace(/\|/,J);
    }
    else
    {
     if(H.match(/\|/))
     {
      H=H.replace(/\|/,"");
     }
     else
     {
      if(J.match(/<\//))
      {
       A.push(J);
      }
     }
    }
    if(L.length==0)
    {
     H+=A.join("");
    }
   }
   C.collapsed=true;
   C.showMore=F;
   C.showLess=D.showLessText||" "+" &#171;更少";
   C.content=
   {
    original:C.innerHTML,truncated:H.replace(/^\s+|\s+$/g,"")+"..."
   }
   ;
   C.innerHTML=C.content.truncated;
   C.span=document.createElement("SPAN");
   C.span.className="toggle-show-more";
   C.span.innerHTML=(C.collapsed)?C.showMore:C.showLess;
   C.appendChild(C.span);
   YAHOO.util.Event.on(C,"click",this.toggle);
  }
 }
}
ShowMore.prototype=
{
 toggle:function(A)
 {
  var B=YAHOO.util.Event.getTarget(A);
  if(B.tagName=="SPAN"&&B.className=="toggle-show-more")
  {
   this.collapsed=!this.collapsed;
   this.removeChild(this.span);
   this.innerHTML=(this.collapsed)?this.content.truncated:this.content.original;
   this.span.innerHTML=(this.collapsed)?this.showMore:this.showLess;
   this.appendChild(this.span);
  }
 }
}
;
