var jssc={
    idCount:0,
    multiLine:false,
    multiLineIndex:-1,
    tab:"&nbsp;&nbsp;&nbsp;&nbsp;",
    regLine:/\r\n|\n|\r/g,
    regTerminator:/\W/g,
    regXml:/<(([\/?]?[a-zA-Z]+[^<]*?\/?>)|(!--.*(-->|$)))/g,
    regString:/^\"?((\")|(.*?[^\\]\"))/,regChar:/^\'?((\')|(.*?[^\\]\'))/,
    regRegExp:/^\/.*?[^\\]\/(g|m|gm)?\s*?\W/,regNum:/^((0(((x|X){1}[\da-fA-F]+)|([01234567]+)))|(\d+[lLfFdD]?))$/,regDecimal:/^\.\d+[fFdD]?/
};
jssc.colorAll=function(X){
    //this.colorList(this.getTagList("pre",$));
    this.colorList(this.getTagList("textarea",X));
};
jssc.colorList=function(X){
    for(Y=0;Y<X.length;Y++){
        if (X[Y].style.display != "none"){
        var A=X[Y].firstChild.nodeValue,
        B=this.splitLine(A),
        C=X[Y].className.toLowerCase(),
        MY=X[Y].title,$=this.colorCode(A,B,C);
        var Z=this[C].title;
        if(Z==undefined)Z=C.charAt(0).toUpperCase()+C.substr(1);
        X[Y].id="jssc"+this.idCount++;
        var _=document.createElement("div"),D=document.createElement("div");
        D.innerHTML="<input type=\"button\" onclick=\"jssc.copyToClipboard('"+X[Y].id+"')\" value=\"複製程式碼\" class=\"button\" />";
        D.className="jssccodetitle";
        _.appendChild($);_.className="jssc";
        X[Y].parentNode.insertBefore(D, X[Y]);
        X[Y].parentNode.insertBefore(_, X[Y]);
        X[Y].style.display="none";
        }
    }
};
jssc.getTagList=function(_,cod){
	lis = new Array();
	j = 0;
	k = document.getElementsByTagName(_);
	for(var i=0;i<k.length;i++) {
		if(k[i].name == cod) { lis[j] = k[i]; j++; }
	}
	return lis;
};
jssc.splitLine=function($){
    var B=0,A,_=[];
    while(A=this.regLine.exec($)){
        _.push({begin:B,end:A.index});
        B=A.index+A[0].length
    }
    if(B<$.length)_.push({begin:B,end:$.length});return _;
};
jssc.colorCode=function(source,linesArr,className){
    var lineCounter=1,regLib=eval("this."+className+".regLib"),
    oFragment=document.createDocumentFragment(),
    oOl=document.createElement("ol"),
    marginLeft=(linesArr.length.toString().length-1)*9+30;
    oOl.style.marginLeft=marginLeft+"px";
    for(i=0;i<linesArr.length;i++){
        var oLi=document.createElement("li");
        oLi.innerHTML="<div onmouseover=this.className=\"on_line\" onmouseout=this.className=\"\">"+this.parseLine(source.slice(linesArr[i].begin,linesArr[i].end),className,regLib)+"</div>";
        if(lineCounter==1)oLi.className="alt";lineCounter*=-1;oOl.appendChild(oLi);
    }
    return oFragment.appendChild(oOl);
};
jssc.parseLine=function($,A,_){
    if($==""){return"&nbsp;";}
    if(A.indexOf("ml")>-1){return this.parseXml($,A,_);}
    else {return this.parseOther($,A,_);}
};
jssc.parseXml=function(_,D,C){
    var B,E,$=0,A=[];
    if(this.multiLine)if((B=_.match(/^.*-->/))!=null){
        A.push(this.colorStr(this.encodeStr(B[0]),
        D+C[this.multiLineIndex].css));
        this.multiLine=false;
        $=B[0].length
    }
    else {
        return this.colorStr(this.encodeStr(_),D+C[this.multiLineIndex].css);
    }
    if($>0)_=_.slice($);
    var Z=false;
    while(E=this.regXml.exec(_)){
        if(E.index>$)A.push(this.encodeStr(_.slice($,E.index)));
        A.push(this.parseOther(E[0],D,C));
        $=E.index+E[0].length;Z=true;
    }
    if(!Z)A.push(this.encodeStr(_));
    return A.join("")
};
jssc.parseOther=function($,A,_){
    var C,B=[];
    while(C=this.regTerminator.exec($))B.push(C.index);B.push($.length);
    return this.parseCode($,A,_,B)
};
jssc.parseCode=function(_,F,D,G){
    var B=[],$=0,E=G.length;
    if(this.multiLine){
        var A;
        if((A=_.match(D[this.multiLineIndex].endReg))!=null){
            B.push(this.colorStr(this.encodeStr(A[0]),F+D[this.multiLineIndex].css));
            this.multiLine=false;
            $=A[0].length;
        }
        else return this.colorStr(this.encodeStr(_),F+D[this.multiLineIndex].css);
    }
    for(var I=0;I<E;I++){
        if(G[I]<$)continue;
        if(G[I]>$)B.push(this.parseStr(_.slice($,G[I]),F));
        var H=-1;
        if((H=this.getRegLibIndex(_.substr(G[I],4),D))>-1){
            var A,C=F+D[H].css;if(D[H].multiLine){
                if((A=_.slice(G[I]).match(D[H].reg))!=null){
                    B.push(this.colorStr(this.encodeStr(A[0]),C));
                    $=G[I]+A[0].length;continue;
                }
                else{
                    B.push(this.colorStr(this.encodeStr(_.slice(G[I])),C));
                    this.multiLine=true;
                    this.multiLineIndex=H;break;
                }
            }
            else if((A=_.slice(G[I]).match(D[H].reg))!=null){
                if(D[H].reg==this.regRegExp)B.push(this.encodeStr(A[0]));
                else B.push(this.colorStr(this.encodeStr(A[0]),C));
                $=G[I]+A[0].length;continue;
            }
        }
        B.push(this.encodeStr(_.charAt(G[I])));
        $=G[I]+1;
    }
    return B.join("");
};
jssc.colorStr=function(_,$){
    return"<span class=\""+$+"\">"+_+"</span>";
};
jssc.parseStr=function($,_){
    if(this.isKeyWord($,_))return this.colorStr($,_+"keywords");
    else if(this.isNum($))return this.colorStr($,_+"num");
    else if(_.indexOf("ml")>-1)return this.colorStr($,_+"variables");
    else return this.encodeStr($);
};
jssc.isKeyWord=function(str,className){
    if(className=="sql"||className=="xhtml"||className=="xml")str=str.toUpperCase();
    var keyWords=eval("this."+className+".keyWords");
    if(keyWords.indexOf(" "+str+" ")>-1)return true;return false;
};
jssc.isNum=function($){
    return this.regNum.test($);
};
jssc.getRegLibIndex=function($,_){
    $:for(var A in _)if($.indexOf(_[A].index)==0)return A;
    return-1;
};
jssc.encodeStr=function($){
    return $.replace(/&/g,"&amp;").
    replace(/ /g,"&nbsp;").
    replace(/\t/g,this.tab).
    replace(/</g,"&lt;").
    replace(/>/g,"&gt;").
    replace(/\"/g,"&quot;");
};
jssc.copyToClipboard=function(A){
	var txt = document.getElementById(A).firstChild.nodeValue;
    var copied = false;
     if(window.clipboardData) {
        window.clipboardData.clearData();
        window.clipboardData.setData("Text", txt);
        copied = true;
     } else if (window.netscape) {
        try {
           netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
        } catch (e) {
           alert("被瀏覽器拒絕！\n請在瀏覽器網址列輸入'about:config'\n，將'signed.applets.codebase_principal_support'設為'true'");
        }
        var clip = Components.classes['@mozilla.org/widget/clipboard;1']
        .createInstance(Components.interfaces.nsIClipboard);
        if (!clip)
           return;
        var trans = Components.classes['@mozilla.org/widget/transferable;1']
        .createInstance(Components.interfaces.nsITransferable);
        if (!trans)
           return;
        trans.addDataFlavor('text/unicode');
        var str = new Object();
        var len = new Object();
        var str = Components.classes["@mozilla.org/supports-string;1"]
        .createInstance(Components.interfaces.nsISupportsString);
        var copytext = txt;
        str.data = copytext;
        trans.setTransferData("text/unicode",str,copytext.length*2);
        var clipid = Components.interfaces.nsIClipboard;
        if (!clip)
           return false;
        clip.setData(trans,null,clipid.kGlobalClipboard);
        copied = true;
     }
     if (copied) alert('文字內容已複製到剪貼簿中!');
     else alert("使用的瀏覽器不支援文字複製功能!");
};
jssc.actionscript={
    keyWords:" as break case catch class const continue default delete "+
             "do else extends false finally for function if implements import "+
             "in instanceof interface internal is native new null package "+
             "private protected public return super switch this throw to true "+
             "try typeof use var void while with each get set namespace include "+
             "dynamic final native override static trace String Number Array "+
             "Boolean int uint Date Error Function RegExp XML XMLLIST ",
    title:"ActionScript",regLib:[
             {index:"//",reg:new RegExp("^//.*$"),css:"comment"},
             {index:"/*",reg:new RegExp("^/\\*.*\\*/"),css:"comment",multiLine:true,endReg:new RegExp("^.*\\*/")},
             {index:"\"",reg:jssc.regString,css:"string",multiLine:true,endReg:jssc.regString},
             {index:"'",reg:jssc.regChar,css:"char"},
             {index:".",reg:jssc.regDecimal,css:"num"},
             {index:"/",reg:jssc.regRegExp}
    ]
};
jssc.c={
    keyWords:" auto bpod break case const dcontinue char do double "+
             "efault else extern float for goto if int struct long "+
             "register return sizeof short sogned static switch "+
             "typedef union unsigned volatile void while ",
    title:"C",regLib:[
             {index:"//",reg:new RegExp("^//.*$"),css:"comment"},
             {index:"#",reg:new RegExp("^#.*$"),css:"comment"},
             {index:"/*",reg:new RegExp("^/\\*.*\\*/"),css:"comment",multiLine:true,endReg:new RegExp("^.*\\*/")},
             {index:"\"",reg:jssc.regString,css:"string",multiLine:true,endReg:jssc.regString},
             {index:"'",reg:jssc.regChar,css:"char"},
             {index:".",reg:jssc.regDecimal,css:"num"}
    ]
};
jssc.cpp={
    keyWords:" break case catch class const __finally __exception __try "+
             "const_cast continue private public protected __declspec "+
             "default delete deprecated dllexport dllimport do dynamic_cast "+
             "else enum explicit extern if for friend goto inline "+
             "mutable naked namespace new noinline noreturn nothrow "+
             "register reinterpret_cast return selectany "+
             "sizeof static static_cast struct switch template this "+
             "thread throw true false try typedef typeid typename union "+
             "using uuid virtual void volatile whcar_t while ",
    title:"C++",regLib:[
             {index:"//",reg:new RegExp("^//.*$"),css:"comment"},
             {index:"#",reg:new RegExp("^#.*$"),css:"comment"},
             {index:"/*",reg:new RegExp("^/\\*.*\\*/"),css:"comment",multiLine:true,endReg:new RegExp("^.*\\*/")},
             {index:"\"",reg:jssc.regString,css:"string",multiLine:true,endReg:jssc.regString},
             {index:"'",reg:jssc.regChar,css:"char"},
             {index:".",reg:jssc.regDecimal,css:"num"}
    ]
};
jssc.csharp={
    keyWords:" abstract as base bool break byte case catch char checked class const "+
             "continue decimal default delegate do double else enum event explicit "+
             "extern false finally fixed float for foreach get goto if implicit in int "+
             "interface internal is lock long namespace new null object operator out "+
             "override params private protected public readonly ref return sbyte sealed set "+
             "short sizeof stackalloc static string struct switch this throw true try "+
             "typeof uint ulong unchecked unsafe ushort using virtual void while partial ",
    title:"C#",regLib:[
             {index:"//",reg:new RegExp("^//.*$"),css:"comment"},
             {index:"#",reg:new RegExp("^#.*$"),css:"region"},
             {index:"/*",reg:new RegExp("^/\\*.*\\*/"),css:"comment",multiLine:true,endReg:new RegExp("^.*\\*/")},
             {index:"\"",reg:jssc.regString,css:"string",multiLine:true,endReg:jssc.regString},
             {index:"'",reg:jssc.regChar,css:"char"},
             {index:".",reg:jssc.regDecimal,css:"num"},{index:"/",reg:jssc.regRegExp}
    ]
};
jssc.delphi={
    keyWords:" abs addr and ansichar ansistring array as asm begin boolean byte cardinal "+
             "case char class comp const constructor currency destructor div do double "+
             "downto else end except exports extended false file finalization finally "+
             "for function goto if implementation in inherited int64 initialization "+
             "integer interface is label library longint longword mod nil not object "+
             "of on or packed pansichar pansistring pchar pcurrency pdatetime pextended "+
             "pint64 pointer private procedure program property pshortstring pstring "+
             "pvariant pwidechar pwidestring protected public published raise real real48 "+
             "record repeat set shl shortint shortstring shr single smallint string then "+
             "threadvar to true try type unit until uses val var varirnt while widechar "+
             "widestring with word write writeln xor ",
    title:"Delphi",regLib:[
              {index:"//",reg:new RegExp("^//.*$"),css:"comment"},
              {index:"{",reg:new RegExp("^\\{.*\\}"),css:"comment",multiLine:true,endReg:new RegExp("^.*\\}")},
              {index:"(*",reg:new RegExp("^\\(\\*.*\\*\\)"),css:"comment",multiLine:true,endReg:new RegExp("^.*\\*\\)")},
              {index:"'",reg:jssc.regChar,css:"string",multiLine:true,endReg:new RegExp("^.*?[^\\\\]?\\'")},
              {index:".",reg:jssc.regDecimal,css:"num"}
    ]
};
jssc.java={
    keyWords:" abstract assert boolean break byte case catch char class const "+
             "continue default do double else enum extends "+
             "false final finally float for goto if implements import "+
             "instanceof int interface long native new null "+
             "package private protected public return "+
             "short static strictfp super switch synchronized this throw throws true "+
             "transient try void volatile while ",
    title:"Java",regLib:[
             {index:"//",reg:new RegExp("^//.*$"),css:"comment"},
             {index:"/*",reg:new RegExp("^/\\*.*\\*/"),css:"comment",multiLine:true,endReg:new RegExp("^.*\\*/")},
             {index:"\"",reg:jssc.regString,css:"string",multiLine:true,endReg:jssc.regString},
             {index:"'",reg:jssc.regChar,css:"char"},
             {index:".",reg:jssc.regDecimal,css:"num"}
    ]
};
jssc.javascript={
    keyWords:" abstract boolean break byte case catch char class const continue debugger "+
             "default delete do double else enum export extends false final finally float "+
             "for function goto if implements import in instanceof int interface long native "+
             "new null package private protected public return short static super switch "+
             "synchronized this throw throws transient true try typeof var void volatile "+
             "while with document window script ",
    title:"JavaScript",regLib:[
             {index:"//",reg:new RegExp("^//.*$"),css:"comment"},
             {index:"/*",reg:new RegExp("^/\\*.*\\*/"),css:"comment",multiLine:true,endReg:new RegExp("^.*\\*/")},
             {index:"\"",reg:jssc.regString,css:"string",multiLine:true,endReg:jssc.regString},
             {index:"'",reg:jssc.regChar,css:"char"},
             {index:".",reg:jssc.regDecimal,css:"num"},
             {index:"/",reg:jssc.regRegExp}
    ]
};
jssc.php={
    keyWords:" and or xor __FILE__ __LINE__ array as break case "+
             "cfunction class const continue declare default die do else "+
             "elseif empty enddeclare endfor endforeach endif endswitch endwhile "+
             "extends for foreach function include include_once global if "+
             "new old_function return static switch use require require_once "+
             "var while __FUNCTION__ __CLASS__ __METHOD__ abstract "+
             "interface public implements extends private protected throw ",
    title:"PHP",regLib:[
             {index:"$",reg:new RegExp("^\\$\\w+"),css:"variables"},
             {index:"@",reg:new RegExp("^\\$\\w+"),css:"variables"},
             {index:"//",reg:new RegExp("^//.*$"),css:"comment"},
             {index:"#",reg:new RegExp("^#.*$"),css:"comment"},
             {index:"/*",reg:new RegExp("^/\\*.*\\*/"),css:"comment",multiLine:true,endReg:new RegExp("^.*\\*/")},
             {index:"\"",reg:jssc.regString,css:"string",multiLine:true,endReg:jssc.regString},
             {index:"'",reg:jssc.regChar,css:"char"},
             {index:".",reg:jssc.regDecimal,css:"num"},
             {index:"/",reg:jssc.regRegExp}
    ]
};
jssc.python={
    keyWords:" and assert break class continue def del elif else "+
             "except exec finally for from global if import in is "+
             "lambda not or pass print raise return try yield while "+
             "None True False self cls class_ ",
    title:"Python",regLib:[
             {index:"#",reg:new RegExp("^#.*$"),css:"comment"},
             {index:"'",reg:jssc.regChar,css:"string",multiLine:true,endReg:new RegExp("^.*?[^\\\\]?\\'")},
             {index:".",reg:jssc.regDecimal,css:"num"},
             {index:"/",reg:jssc.regRegExp}
    ]
};
jssc.ruby={
    keyWords:" alias and BEGIN begin break case class def define_method "+
             "defined do each else elsif END end ensure false for if in "+
             "module new next nil not or raise redo rescue retry return "+
             "self super then throw true undef unless until when while yield ",
    title:"Ruby",regLib:[
             {index:"#",reg:new RegExp("^#.*$"),css:"comment"},
             {index:":",reg:new RegExp("^:[a-z][A-Za-z0-9_]*"),css:"symbol"},
             {index:"$",reg:new RegExp("^@{1,2}\\w+"),css:"variables"},
             {index:"\"",reg:jssc.regString,css:"string",multiLine:true,endReg:jssc.regString},
             {index:"'",reg:jssc.regChar,css:"char"},
             {index:".",reg:jssc.regDecimal,css:"num"},
             {index:"/",reg:jssc.regRegExp}
    ]
};
jssc.sql={
    keyWords:" ABSOLUTE ACTION ADD AFTER ALTER AS ASC AT AUTHORIZATION BEGIN BIGINT "+
             "BINARY BIT BY CASCADE CHAR CHARACTER CHECK CHECKPOINT CLOSE COLLATE "+
             "COLUMN COMMIT COMMITTED CONNECT CONNECTION CONSTRAINT CONTAINS CONTINUE "+
             "CREATE CUBE CURRENT CURRENT_DATE CURRENT_TIME CURSOR DATABASE DATE "+
             "DEALLOCATE DEC DECIMAL DECLARE DEFAULT DELETE DESC DISTINCT DOUBLE "+
             "DROP DYNAMIC ELSE END END-EXEC ESCAPE EXCEPT EXEC EXECUTE FALSE FETCH "+
             "FIRST FLOAT FOR FORCE FOREIGN FORWARD FREE FROM FULL FUNCTION GLOBAL "+
             "GOTO GRANT GROUP GROUPING HAVING HOUR IGNORE INDEX INNER INSENSITIVE "+
             "INSERT INSTEAD INT INTEGER INTERSECT INTO IS ISOLATION KEY LAST LEVEL "+
             "LOAD LOCAL MAX MIN MINUTE MODIFY MOVE NAME NATIONAL NCHAR NEXT NO "+
             "NUMERIC OF OFF ON ONLY OPEN OPTION ORDER OUT OUTPUT PARTIAL PASSWORD "+
             "PRECISION PREPARE PRIMARY PRIOR PRIVILEGES PROCEDURE PUBLIC READ REAL "+
             "REFERENCES RELATIVE REPEATABLE RESTRICT RETURN RETURNS REVOKE ROLLBACK "+
             "ROLLUP ROWS RULE SCHEMA SCROLL SECOND SECTION SELECT SEQUENCE "+
             "SERIALIZABLE SET SIZE SMALLINT STATIC STATISTICS TABLE TEMP TEMPORARY "+
             "THEN TIME TIMESTAMP TO TOP TRANSACTION TRANSLATION TRIGGER TRUE "+
             "TRUNCATE UNCOMMITTED UNION UNIQUE UPDATE VALUES VARCHAR VARYING VIEW "+
             "WHEN WHERE WITH WORK NOT NULL BOOL ",
    title:"SQL",regLib:[
             {index:"--",reg:new RegExp("^--.*$"),css:"comment"},
             {index:"`",reg:new RegExp("^`\\w+`"),css:"string"},
             {index:"\"",reg:jssc.regString,css:"string"},
             {index:"'",reg:jssc.regChar,css:"char"},
             {index:".",reg:jssc.regDecimal,css:"num"}
    ]
};
jssc.vb={
    keyWords:" AddHandler AddressOf AndAlso Alias And Ansi As Assembly Auto "+
             "Boolean ByRef Byte ByVal Call Case Catch CBool CByte CChar CDate "+
             "CDec CDbl Char CInt Class CLng CObj Const CShort CSng CStr CType "+
             "Date Decimal Declare Default Delegate Dim DirectCast Do Double Each "+
             "Else ElseIf End Enum Erase Error Event Exit False Finally For Friend "+
             "Function Get GetType GoSub GoTo Handles If Implements Imports In "+
             "Inherits Integer Interface Is Let Lib Like Long Loop Me Mod Module "+
             "MustInherit MustOverride MyBase MyClass Namespace New Next Not Nothing "+
             "NotInheritable NotOverridable Object On Option Optional Or OrElse "+
             "Overloads Overridable Overrides ParamArray Preserve Private Property "+
             "Protected Public RaiseEvent ReadOnly ReDim REM RemoveHandler Resume "+
             "Return Select Set Shadows Shared Short Single Static Step Stop String "+
             "Structure Sub SyncLock Then Throw To True Try TypeOf Unicode Until "+
             "Variant When While With WithEvents WriteOnly Xor ",
    title:"VB",regLib:[
             {index:"#",reg:new RegExp("^#.*$"),css:"region"},
             {index:"'",reg:new RegExp("^'.*$"),css:"comment"},
             {index:"\"",reg:jssc.regString,css:"string",multiLine:true,endReg:jssc.regString},
             {index:".",reg:jssc.regDecimal,css:"num"},{index:"/",reg:jssc.regRegExp}
    ]
};
jssc.xhtml={
    keyWords:" !DOCTYPE a abbr acronym address applet area b base basefont "+
             "bdo big blockquote body br button caption center cite code col "+
             "colgroup dd del dfn dir div dl dt em fieldest font form frame "+
             "frameset h1 h2 h3 h4 h5 h6 head hr html i iframe img input ins "+
             "isindex kbd label legend li link map menu meta noframes noscript "+
             "object ol optgroup option p param pre q s samp script select small "+
             "span strike strong style sub sup table tbody td textarea tfoot th "+
             "thead title tr tt u ul var ",
    title:"XHTML",regLib:[
             {index:"<!--",reg:new RegExp("^<!--.*-->"),css:"comment",multiLine:true,endReg:new RegExp("^.*-->")},
             {index:"\"",reg:jssc.regString,css:"string"},
             {index:"'",reg:jssc.regChar,css:"char"}
    ]
};
jssc.xml={
    keyWords:" XML ",
    title:"XML",regLib:[
             {index:"<!--",reg:new RegExp("^<!--.*-->"),css:"comment",multiLine:true,endReg:new RegExp("^.*-->")},
             {index:"\"",reg:jssc.regString,css:"string"},
             {index:"'",reg:jssc.regChar,css:"char"}
    ]
};
jssc.html={
    keyWords:" !DOCTYPE a abbr acronym address applet area b base basefont "+
             "bdo big blockquote body br button caption center cite code col "+
             "colgroup dd del dfn dir div dl dt em fieldest font form frame "+
             "frameset h1 h2 h3 h4 h5 h6 head hr html i iframe img input ins "+
             "isindex kbd label legend li link map menu meta noframes noscript "+
             "object ol optgroup option p param pre q s samp script select small "+
             "span strike strong style sub sup table tbody td textarea tfoot th "+
             "thead title tr tt u ul var ",
    title:"HTML",regLib:[
             {index:"<!--",reg:new RegExp("^<!--.*-->"),css:"comment",multiLine:true,endReg:new RegExp("^.*-->")},
             {index:"\"",reg:jssc.regString,css:"string"},
             {index:"'",reg:jssc.regChar,css:"char"}
    ]
};
jssc.css = {
    keyWords: " ascent azimuth background background-attachment background-color background-image background-position background-repeat baseline bbox border border-collapse border-color border-spacing border-style border-top border-right border-bottom border-left border-top-color border-right-color border-bottom-color border-left-color border-top-style border-right-style border-bottom-style border-left-style border-top-width border-right-width border-bottom-width border-left-width border-width bottom cap-height caption-side centerline clear clip color content counter-increment counter-reset cue cue-after cue-before cursor definition-src descent direction display elevation empty-cells float font font-family font-size font-size-adjust font-stretch font-style font-variant font-weight height left letter-spacing line-height list-style list-style-image list-style-position list-style-type margin margin-top margin-right margin-bottom margin-left marker-offset marks mathline max-height max-width min-height min-width orphans outline outline-color outline-style outline-width overflow padding padding-top padding-right padding-bottom padding-left page page-break-after page-break-before page-break-inside panose-1 pause pause-after pause-before pitch pitch-range play-during position quotes richness right size slope src speak speak-header speak-numeral speak-punctuation speech-rate stemh stemv stress table-layout text-align text-decoration text-indent text-shadow text-transform top unicode-bidi unicode-range units-per-em vertical-align visibility voice-family volume white-space widows width widths word-spacing x-height z-index",
    title:"CSS",regLib: [
             { index: '/*', reg: new RegExp('^/\\*.*\\*/'), css: "comment", multiLine: true, endReg: new RegExp('^.*\\*/') },
             { index: '"', reg: jssc.regString, css: "string" },
             { index: "'", reg: jssc.regChar, css: "string" },
             { index: '.', reg: jssc.regDecimal, css: "num" }
    ]
};
