| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135 | 
							- /*!
 
-  * UEditor
 
-  * version: ueditor
 
-  * build: Wed Dec 26 2018 17:24:52 GMT+0800 (CST)
 
-  */
 
- ;(function () {
 
-   ;(function () {
 
-     UE = window.UE || {}
 
-     var isIE = !!window.ActiveXObject
 
-     //定义utils工具
 
-     var utils = {
 
-       removeLastbs: function (url) {
 
-         return url.replace(/\/$/, '')
 
-       },
 
-       extend: function (t, s) {
 
-         var a = arguments,
 
-           notCover = this.isBoolean(a[a.length - 1]) ? a[a.length - 1] : false,
 
-           len = this.isBoolean(a[a.length - 1]) ? a.length - 1 : a.length
 
-         for (var i = 1; i < len; i++) {
 
-           var x = a[i]
 
-           for (var k in x) {
 
-             if (!notCover || !t.hasOwnProperty(k)) {
 
-               t[k] = x[k]
 
-             }
 
-           }
 
-         }
 
-         return t
 
-       },
 
-       isIE: isIE,
 
-       cssRule: isIE
 
-         ? function (key, style, doc) {
 
-             var indexList, index
 
-             doc = doc || document
 
-             if (doc.indexList) {
 
-               indexList = doc.indexList
 
-             } else {
 
-               indexList = doc.indexList = {}
 
-             }
 
-             var sheetStyle
 
-             if (!indexList[key]) {
 
-               if (style === undefined) {
 
-                 return ''
 
-               }
 
-               sheetStyle = doc.createStyleSheet('', (index = doc.styleSheets.length))
 
-               indexList[key] = index
 
-             } else {
 
-               sheetStyle = doc.styleSheets[indexList[key]]
 
-             }
 
-             if (style === undefined) {
 
-               return sheetStyle.cssText
 
-             }
 
-             sheetStyle.cssText = sheetStyle.cssText + '\n' + (style || '')
 
-           }
 
-         : function (key, style, doc) {
 
-             doc = doc || document
 
-             var head = doc.getElementsByTagName('head')[0],
 
-               node
 
-             if (!(node = doc.getElementById(key))) {
 
-               if (style === undefined) {
 
-                 return ''
 
-               }
 
-               node = doc.createElement('style')
 
-               node.id = key
 
-               head.appendChild(node)
 
-             }
 
-             if (style === undefined) {
 
-               return node.innerHTML
 
-             }
 
-             if (style !== '') {
 
-               node.innerHTML = node.innerHTML + '\n' + style
 
-             } else {
 
-               head.removeChild(node)
 
-             }
 
-           },
 
-       domReady: function (onready) {
 
-         var doc = window.document
 
-         if (doc.readyState === 'complete') {
 
-           onready()
 
-         } else {
 
-           if (isIE) {
 
-             ;(function () {
 
-               if (doc.isReady) return
 
-               try {
 
-                 doc.documentElement.doScroll('left')
 
-               } catch (error) {
 
-                 setTimeout(arguments.callee, 0)
 
-                 return
 
-               }
 
-               onready()
 
-             })()
 
-             window.attachEvent('onload', function () {
 
-               onready()
 
-             })
 
-           } else {
 
-             doc.addEventListener(
 
-               'DOMContentLoaded',
 
-               function () {
 
-                 doc.removeEventListener('DOMContentLoaded', arguments.callee, false)
 
-                 onready()
 
-               },
 
-               false
 
-             )
 
-             window.addEventListener(
 
-               'load',
 
-               function () {
 
-                 onready()
 
-               },
 
-               false
 
-             )
 
-           }
 
-         }
 
-       },
 
-       each: function (obj, iterator, context) {
 
-         if (obj == null) return
 
-         if (obj.length === +obj.length) {
 
-           for (var i = 0, l = obj.length; i < l; i++) {
 
-             if (iterator.call(context, obj[i], i, obj) === false) return false
 
-           }
 
-         } else {
 
-           for (var key in obj) {
 
-             if (obj.hasOwnProperty(key)) {
 
-               if (iterator.call(context, obj[key], key, obj) === false) return false
 
-             }
 
-           }
 
-         }
 
-       },
 
-       inArray: function (arr, item) {
 
-         var index = -1
 
-         this.each(arr, function (v, i) {
 
-           if (v === item) {
 
-             index = i
 
-             return false
 
-           }
 
-         })
 
-         return index
 
-       },
 
-       pushItem: function (arr, item) {
 
-         if (this.inArray(arr, item) == -1) {
 
-           arr.push(item)
 
-         }
 
-       },
 
-       trim: function (str) {
 
-         return str.replace(/(^[ \t\n\r]+)|([ \t\n\r]+$)/g, '')
 
-       },
 
-       indexOf: function (array, item, start) {
 
-         var index = -1
 
-         start = this.isNumber(start) ? start : 0
 
-         this.each(array, function (v, i) {
 
-           if (i >= start && v === item) {
 
-             index = i
 
-             return false
 
-           }
 
-         })
 
-         return index
 
-       },
 
-       hasClass: function (element, className) {
 
-         className = className
 
-           .replace(/(^[ ]+)|([ ]+$)/g, '')
 
-           .replace(/[ ]{2,}/g, ' ')
 
-           .split(' ')
 
-         for (var i = 0, ci, cls = element.className; (ci = className[i++]); ) {
 
-           if (!new RegExp('\\b' + ci + '\\b', 'i').test(cls)) {
 
-             return false
 
-           }
 
-         }
 
-         return i - 1 == className.length
 
-       },
 
-       addClass: function (elm, classNames) {
 
-         if (!elm) return
 
-         classNames = this.trim(classNames)
 
-           .replace(/[ ]{2,}/g, ' ')
 
-           .split(' ')
 
-         for (var i = 0, ci, cls = elm.className; (ci = classNames[i++]); ) {
 
-           if (!new RegExp('\\b' + ci + '\\b').test(cls)) {
 
-             cls += ' ' + ci
 
-           }
 
-         }
 
-         elm.className = utils.trim(cls)
 
-       },
 
-       removeClass: function (elm, classNames) {
 
-         classNames = this.isArray(classNames)
 
-           ? classNames
 
-           : this.trim(classNames)
 
-               .replace(/[ ]{2,}/g, ' ')
 
-               .split(' ')
 
-         for (var i = 0, ci, cls = elm.className; (ci = classNames[i++]); ) {
 
-           cls = cls.replace(new RegExp('\\b' + ci + '\\b'), '')
 
-         }
 
-         cls = this.trim(cls).replace(/[ ]{2,}/g, ' ')
 
-         elm.className = cls
 
-         !cls && elm.removeAttribute('className')
 
-       },
 
-       on: function (element, type, handler) {
 
-         var types = this.isArray(type) ? type : type.split(/\s+/),
 
-           k = types.length
 
-         if (k)
 
-           while (k--) {
 
-             type = types[k]
 
-             if (element.addEventListener) {
 
-               element.addEventListener(type, handler, false)
 
-             } else {
 
-               if (!handler._d) {
 
-                 handler._d = {
 
-                   els: []
 
-                 }
 
-               }
 
-               var key = type + handler.toString(),
 
-                 index = utils.indexOf(handler._d.els, element)
 
-               if (!handler._d[key] || index == -1) {
 
-                 if (index == -1) {
 
-                   handler._d.els.push(element)
 
-                 }
 
-                 if (!handler._d[key]) {
 
-                   handler._d[key] = function (evt) {
 
-                     return handler.call(evt.srcElement, evt || window.event)
 
-                   }
 
-                 }
 
-                 element.attachEvent('on' + type, handler._d[key])
 
-               }
 
-             }
 
-           }
 
-         element = null
 
-       },
 
-       off: function (element, type, handler) {
 
-         var types = this.isArray(type) ? type : type.split(/\s+/),
 
-           k = types.length
 
-         if (k)
 
-           while (k--) {
 
-             type = types[k]
 
-             if (element && element.removeEventListener) {
 
-               element.removeEventListener(type, handler, false)
 
-             } else {
 
-               var key = type + handler.toString()
 
-               try {
 
-                 element.detachEvent('on' + type, handler._d ? handler._d[key] : handler)
 
-               } catch (e) {}
 
-               if (handler._d && handler._d[key]) {
 
-                 var index = utils.indexOf(handler._d.els, element)
 
-                 if (index != -1) {
 
-                   handler._d.els.splice(index, 1)
 
-                 }
 
-                 handler._d.els.length == 0 && delete handler._d[key]
 
-               }
 
-             }
 
-           }
 
-       },
 
-       loadFile: (function () {
 
-         var tmpList = []
 
-         function getItem(doc, obj) {
 
-           try {
 
-             for (var i = 0, ci; (ci = tmpList[i++]); ) {
 
-               if (ci.doc === doc && ci.url == (obj.src || obj.href)) {
 
-                 return ci
 
-               }
 
-             }
 
-           } catch (e) {
 
-             return null
 
-           }
 
-         }
 
-         return function (doc, obj, fn) {
 
-           var item = getItem(doc, obj)
 
-           if (item) {
 
-             if (item.ready) {
 
-               fn && fn()
 
-             } else {
 
-               item.funs.push(fn)
 
-             }
 
-             return
 
-           }
 
-           tmpList.push({
 
-             doc: doc,
 
-             url: obj.src || obj.href,
 
-             funs: [fn]
 
-           })
 
-           if (!doc.body) {
 
-             var html = []
 
-             for (var p in obj) {
 
-               if (p == 'tag') continue
 
-               html.push(p + '="' + obj[p] + '"')
 
-             }
 
-             doc.write('<' + obj.tag + ' ' + html.join(' ') + ' ></' + obj.tag + '>')
 
-             return
 
-           }
 
-           if (obj.id && doc.getElementById(obj.id)) {
 
-             return
 
-           }
 
-           var element = doc.createElement(obj.tag)
 
-           delete obj.tag
 
-           for (var p in obj) {
 
-             element.setAttribute(p, obj[p])
 
-           }
 
-           element.onload = element.onreadystatechange = function () {
 
-             if (!this.readyState || /loaded|complete/.test(this.readyState)) {
 
-               item = getItem(doc, obj)
 
-               if (item.funs.length > 0) {
 
-                 item.ready = 1
 
-                 for (var fi; (fi = item.funs.pop()); ) {
 
-                   fi()
 
-                 }
 
-               }
 
-               element.onload = element.onreadystatechange = null
 
-             }
 
-           }
 
-           element.onerror = function () {
 
-             throw Error('The load ' + (obj.href || obj.src) + ' fails,check the url')
 
-           }
 
-           doc.getElementsByTagName('head')[0].appendChild(element)
 
-         }
 
-       })()
 
-     }
 
-     utils.each(
 
-       ['String', 'Function', 'Array', 'Number', 'RegExp', 'Object', 'Boolean'],
 
-       function (v) {
 
-         utils['is' + v] = function (obj) {
 
-           return Object.prototype.toString.apply(obj) == '[object ' + v + ']'
 
-         }
 
-       }
 
-     )
 
-     var parselist = {}
 
-     UE.parse = {
 
-       register: function (parseName, fn) {
 
-         parselist[parseName] = fn
 
-       },
 
-       load: function (opt) {
 
-         utils.each(parselist, function (v) {
 
-           v.call(opt, utils)
 
-         })
 
-       }
 
-     }
 
-     uParse = function (selector, opt) {
 
-       utils.domReady(function () {
 
-         var contents
 
-         if (document.querySelectorAll) {
 
-           contents = document.querySelectorAll(selector)
 
-         } else {
 
-           if (/^#/.test(selector)) {
 
-             contents = [document.getElementById(selector.replace(/^#/, ''))]
 
-           } else if (/^\./.test(selector)) {
 
-             var contents = []
 
-             utils.each(document.getElementsByTagName('*'), function (node) {
 
-               if (
 
-                 node.className &&
 
-                 new RegExp('\\b' + selector.replace(/^\./, '') + '\\b', 'i').test(node.className)
 
-               ) {
 
-                 contents.push(node)
 
-               }
 
-             })
 
-           } else {
 
-             contents = document.getElementsByTagName(selector)
 
-           }
 
-         }
 
-         utils.each(contents, function (v) {
 
-           UE.parse.load(utils.extend({ root: v, selector: selector }, opt))
 
-         })
 
-       })
 
-     }
 
-   })()
 
-   UE.parse.register('insertcode', function (utils) {
 
-     var pres = this.root.getElementsByTagName('pre')
 
-     if (pres.length) {
 
-       if (typeof XRegExp == 'undefined') {
 
-         var jsurl, cssurl
 
-         if (this.rootPath !== undefined) {
 
-           jsurl = utils.removeLastbs(this.rootPath) + '/third-party/SyntaxHighlighter/shCore.js'
 
-           cssurl =
 
-             utils.removeLastbs(this.rootPath) + '/third-party/SyntaxHighlighter/shCoreDefault.css'
 
-         } else {
 
-           jsurl = this.highlightJsUrl
 
-           cssurl = this.highlightCssUrl
 
-         }
 
-         utils.loadFile(document, {
 
-           id: 'syntaxhighlighter_css',
 
-           tag: 'link',
 
-           rel: 'stylesheet',
 
-           type: 'text/css',
 
-           href: cssurl
 
-         })
 
-         utils.loadFile(
 
-           document,
 
-           {
 
-             id: 'syntaxhighlighter_js',
 
-             src: jsurl,
 
-             tag: 'script',
 
-             type: 'text/javascript',
 
-             defer: 'defer'
 
-           },
 
-           function () {
 
-             utils.each(pres, function (pi) {
 
-               if (pi && /brush/i.test(pi.className)) {
 
-                 SyntaxHighlighter.highlight(pi)
 
-               }
 
-             })
 
-           }
 
-         )
 
-       } else {
 
-         utils.each(pres, function (pi) {
 
-           if (pi && /brush/i.test(pi.className)) {
 
-             SyntaxHighlighter.highlight(pi)
 
-           }
 
-         })
 
-       }
 
-     }
 
-   })
 
-   UE.parse.register('table', function (utils) {
 
-     var me = this,
 
-       root = this.root,
 
-       tables = root.getElementsByTagName('table')
 
-     if (tables.length) {
 
-       var selector = this.selector
 
-       //追加默认的表格样式
 
-       utils.cssRule(
 
-         'table',
 
-         selector +
 
-           ' table.noBorderTable td,' +
 
-           selector +
 
-           ' table.noBorderTable th,' +
 
-           selector +
 
-           ' table.noBorderTable caption{border:1px dashed #ddd !important}' +
 
-           selector +
 
-           ' table.sortEnabled tr.firstRow th,' +
 
-           selector +
 
-           ' table.sortEnabled tr.firstRow td{padding-right:20px; background-repeat: no-repeat;' +
 
-           'background-position: center right; background-image:url(' +
 
-           this.rootPath +
 
-           'themes/default/images/sortable.png);}' +
 
-           selector +
 
-           ' table.sortEnabled tr.firstRow th:hover,' +
 
-           selector +
 
-           ' table.sortEnabled tr.firstRow td:hover{background-color: #EEE;}' +
 
-           selector +
 
-           ' table{margin-bottom:10px;border-collapse:collapse;display:table;}' +
 
-           selector +
 
-           ' td,' +
 
-           selector +
 
-           ' th{ background:white; padding: 5px 10px;border: 1px solid #DDD;}' +
 
-           selector +
 
-           ' caption{border:1px dashed #DDD;border-bottom:0;padding:3px;text-align:center;}' +
 
-           selector +
 
-           ' th{border-top:1px solid #BBB;background:#F7F7F7;}' +
 
-           selector +
 
-           ' table tr.firstRow th{border-top:2px solid #BBB;background:#F7F7F7;}' +
 
-           selector +
 
-           ' tr.ue-table-interlace-color-single td{ background: #fcfcfc; }' +
 
-           selector +
 
-           ' tr.ue-table-interlace-color-double td{ background: #f7faff; }' +
 
-           selector +
 
-           ' td p{margin:0;padding:0;}',
 
-         document
 
-       )
 
-       //填充空的单元格
 
-       utils.each('td th caption'.split(' '), function (tag) {
 
-         var cells = root.getElementsByTagName(tag)
 
-         cells.length &&
 
-           utils.each(cells, function (node) {
 
-             if (!node.firstChild) {
 
-               node.innerHTML = ' '
 
-             }
 
-           })
 
-       })
 
-       //表格可排序
 
-       var tables = root.getElementsByTagName('table')
 
-       utils.each(tables, function (table) {
 
-         if (/\bsortEnabled\b/.test(table.className)) {
 
-           utils.on(table, 'click', function (e) {
 
-             var target = e.target || e.srcElement,
 
-               cell = findParentByTagName(target, ['td', 'th'])
 
-             var table = findParentByTagName(target, 'table'),
 
-               colIndex = utils.indexOf(table.rows[0].cells, cell),
 
-               sortType = table.getAttribute('data-sort-type')
 
-             if (colIndex != -1) {
 
-               sortTable(table, colIndex, me.tableSortCompareFn || sortType)
 
-               updateTable(table)
 
-             }
 
-           })
 
-         }
 
-       })
 
-       //按照标签名查找父节点
 
-       function findParentByTagName(target, tagNames) {
 
-         var i,
 
-           current = target
 
-         tagNames = utils.isArray(tagNames) ? tagNames : [tagNames]
 
-         while (current) {
 
-           for (i = 0; i < tagNames.length; i++) {
 
-             if (current.tagName == tagNames[i].toUpperCase()) return current
 
-           }
 
-           current = current.parentNode
 
-         }
 
-         return null
 
-       }
 
-       //表格排序
 
-       function sortTable(table, sortByCellIndex, compareFn) {
 
-         var rows = table.rows,
 
-           trArray = [],
 
-           flag = rows[0].cells[0].tagName === 'TH',
 
-           lastRowIndex = 0
 
-         for (var i = 0, len = rows.length; i < len; i++) {
 
-           trArray[i] = rows[i]
 
-         }
 
-         var Fn = {
 
-           reversecurrent: function (td1, td2) {
 
-             return 1
 
-           },
 
-           orderbyasc: function (td1, td2) {
 
-             var value1 = td1.innerText || td1.textContent,
 
-               value2 = td2.innerText || td2.textContent
 
-             return value1.localeCompare(value2)
 
-           },
 
-           reversebyasc: function (td1, td2) {
 
-             var value1 = td1.innerHTML,
 
-               value2 = td2.innerHTML
 
-             return value2.localeCompare(value1)
 
-           },
 
-           orderbynum: function (td1, td2) {
 
-             var value1 = td1[utils.isIE ? 'innerText' : 'textContent'].match(/\d+/),
 
-               value2 = td2[utils.isIE ? 'innerText' : 'textContent'].match(/\d+/)
 
-             if (value1) value1 = +value1[0]
 
-             if (value2) value2 = +value2[0]
 
-             return (value1 || 0) - (value2 || 0)
 
-           },
 
-           reversebynum: function (td1, td2) {
 
-             var value1 = td1[utils.isIE ? 'innerText' : 'textContent'].match(/\d+/),
 
-               value2 = td2[utils.isIE ? 'innerText' : 'textContent'].match(/\d+/)
 
-             if (value1) value1 = +value1[0]
 
-             if (value2) value2 = +value2[0]
 
-             return (value2 || 0) - (value1 || 0)
 
-           }
 
-         }
 
-         //对表格设置排序的标记data-sort-type
 
-         table.setAttribute(
 
-           'data-sort-type',
 
-           compareFn && typeof compareFn === 'string' && Fn[compareFn] ? compareFn : ''
 
-         )
 
-         //th不参与排序
 
-         flag && trArray.splice(0, 1)
 
-         trArray = sort(trArray, function (tr1, tr2) {
 
-           var result
 
-           if (compareFn && typeof compareFn === 'function') {
 
-             result = compareFn.call(this, tr1.cells[sortByCellIndex], tr2.cells[sortByCellIndex])
 
-           } else if (compareFn && typeof compareFn === 'number') {
 
-             result = 1
 
-           } else if (compareFn && typeof compareFn === 'string' && Fn[compareFn]) {
 
-             result = Fn[compareFn].call(
 
-               this,
 
-               tr1.cells[sortByCellIndex],
 
-               tr2.cells[sortByCellIndex]
 
-             )
 
-           } else {
 
-             result = Fn['orderbyasc'].call(
 
-               this,
 
-               tr1.cells[sortByCellIndex],
 
-               tr2.cells[sortByCellIndex]
 
-             )
 
-           }
 
-           return result
 
-         })
 
-         var fragment = table.ownerDocument.createDocumentFragment()
 
-         for (var j = 0, len = trArray.length; j < len; j++) {
 
-           fragment.appendChild(trArray[j])
 
-         }
 
-         var tbody = table.getElementsByTagName('tbody')[0]
 
-         if (!lastRowIndex) {
 
-           tbody.appendChild(fragment)
 
-         } else {
 
-           tbody.insertBefore(
 
-             fragment,
 
-             rows[lastRowIndex - range.endRowIndex + range.beginRowIndex - 1]
 
-           )
 
-         }
 
-       }
 
-       //冒泡排序
 
-       function sort(array, compareFn) {
 
-         compareFn =
 
-           compareFn ||
 
-           function (item1, item2) {
 
-             return item1.localeCompare(item2)
 
-           }
 
-         for (var i = 0, len = array.length; i < len; i++) {
 
-           for (var j = i, length = array.length; j < length; j++) {
 
-             if (compareFn(array[i], array[j]) > 0) {
 
-               var t = array[i]
 
-               array[i] = array[j]
 
-               array[j] = t
 
-             }
 
-           }
 
-         }
 
-         return array
 
-       }
 
-       //更新表格
 
-       function updateTable(table) {
 
-         //给第一行设置firstRow的样式名称,在排序图标的样式上使用到
 
-         if (!utils.hasClass(table.rows[0], 'firstRow')) {
 
-           for (var i = 1; i < table.rows.length; i++) {
 
-             utils.removeClass(table.rows[i], 'firstRow')
 
-           }
 
-           utils.addClass(table.rows[0], 'firstRow')
 
-         }
 
-       }
 
-     }
 
-   })
 
-   UE.parse.register('charts', function (utils) {
 
-     utils.cssRule(
 
-       'chartsContainerHeight',
 
-       '.edui-chart-container { height:' + (this.chartContainerHeight || 300) + 'px}'
 
-     )
 
-     var resourceRoot = this.rootPath,
 
-       containers = this.root,
 
-       sources = null
 
-     //不存在指定的根路径, 则直接退出
 
-     if (!resourceRoot) {
 
-       return
 
-     }
 
-     if ((sources = parseSources())) {
 
-       loadResources()
 
-     }
 
-     function parseSources() {
 
-       if (!containers) {
 
-         return null
 
-       }
 
-       return extractChartData(containers)
 
-     }
 
-     /**
 
-      * 提取数据
 
-      */
 
-     function extractChartData(rootNode) {
 
-       var data = [],
 
-         tables = rootNode.getElementsByTagName('table')
 
-       for (var i = 0, tableNode; (tableNode = tables[i]); i++) {
 
-         if (tableNode.getAttribute('data-chart') !== null) {
 
-           data.push(formatData(tableNode))
 
-         }
 
-       }
 
-       return data.length ? data : null
 
-     }
 
-     function formatData(tableNode) {
 
-       var meta = tableNode.getAttribute('data-chart'),
 
-         metaConfig = {},
 
-         data = []
 
-       //提取table数据
 
-       for (var i = 0, row; (row = tableNode.rows[i]); i++) {
 
-         var rowData = []
 
-         for (var j = 0, cell; (cell = row.cells[j]); j++) {
 
-           var value = cell.innerText || cell.textContent || ''
 
-           rowData.push(cell.tagName == 'TH' ? value : value | 0)
 
-         }
 
-         data.push(rowData)
 
-       }
 
-       //解析元信息
 
-       meta = meta.split(';')
 
-       for (var i = 0, metaData; (metaData = meta[i]); i++) {
 
-         metaData = metaData.split(':')
 
-         metaConfig[metaData[0]] = metaData[1]
 
-       }
 
-       return {
 
-         table: tableNode,
 
-         meta: metaConfig,
 
-         data: data
 
-       }
 
-     }
 
-     //加载资源
 
-     function loadResources() {
 
-       loadJQuery()
 
-     }
 
-     function loadJQuery() {
 
-       //不存在jquery, 则加载jquery
 
-       if (!window.jQuery) {
 
-         utils.loadFile(
 
-           document,
 
-           {
 
-             src: resourceRoot + '/third-party/jquery-1.10.2.min.js',
 
-             tag: 'script',
 
-             type: 'text/javascript',
 
-             defer: 'defer'
 
-           },
 
-           function () {
 
-             loadHighcharts()
 
-           }
 
-         )
 
-       } else {
 
-         loadHighcharts()
 
-       }
 
-     }
 
-     function loadHighcharts() {
 
-       //不存在Highcharts, 则加载Highcharts
 
-       if (!window.Highcharts) {
 
-         utils.loadFile(
 
-           document,
 
-           {
 
-             src: resourceRoot + '/third-party/highcharts/highcharts.js',
 
-             tag: 'script',
 
-             type: 'text/javascript',
 
-             defer: 'defer'
 
-           },
 
-           function () {
 
-             loadTypeConfig()
 
-           }
 
-         )
 
-       } else {
 
-         loadTypeConfig()
 
-       }
 
-     }
 
-     //加载图表差异化配置文件
 
-     function loadTypeConfig() {
 
-       utils.loadFile(
 
-         document,
 
-         {
 
-           src: resourceRoot + '/dialogs/charts/chart.config.js',
 
-           tag: 'script',
 
-           type: 'text/javascript',
 
-           defer: 'defer'
 
-         },
 
-         function () {
 
-           render()
 
-         }
 
-       )
 
-     }
 
-     //渲染图表
 
-     function render() {
 
-       var config = null,
 
-         chartConfig = null,
 
-         container = null
 
-       for (var i = 0, len = sources.length; i < len; i++) {
 
-         config = sources[i]
 
-         chartConfig = analysisConfig(config)
 
-         container = createContainer(config.table)
 
-         renderChart(container, typeConfig[config.meta.chartType], chartConfig)
 
-       }
 
-     }
 
-     /**
 
-      * 渲染图表
 
-      * @param container 图表容器节点对象
 
-      * @param typeConfig 图表类型配置
 
-      * @param config 图表通用配置
 
-      * */
 
-     function renderChart(container, typeConfig, config) {
 
-       $(container).highcharts(
 
-         $.extend({}, typeConfig, {
 
-           credits: {
 
-             enabled: false
 
-           },
 
-           exporting: {
 
-             enabled: false
 
-           },
 
-           title: {
 
-             text: config.title,
 
-             x: -20 //center
 
-           },
 
-           subtitle: {
 
-             text: config.subTitle,
 
-             x: -20
 
-           },
 
-           xAxis: {
 
-             title: {
 
-               text: config.xTitle
 
-             },
 
-             categories: config.categories
 
-           },
 
-           yAxis: {
 
-             title: {
 
-               text: config.yTitle
 
-             },
 
-             plotLines: [
 
-               {
 
-                 value: 0,
 
-                 width: 1,
 
-                 color: '#808080'
 
-               }
 
-             ]
 
-           },
 
-           tooltip: {
 
-             enabled: true,
 
-             valueSuffix: config.suffix
 
-           },
 
-           legend: {
 
-             layout: 'vertical',
 
-             align: 'right',
 
-             verticalAlign: 'middle',
 
-             borderWidth: 1
 
-           },
 
-           series: config.series
 
-         })
 
-       )
 
-     }
 
-     /**
 
-      * 创建图表的容器
 
-      * 新创建的容器会替换掉对应的table对象
 
-      * */
 
-     function createContainer(tableNode) {
 
-       var container = document.createElement('div')
 
-       container.className = 'edui-chart-container'
 
-       tableNode.parentNode.replaceChild(container, tableNode)
 
-       return container
 
-     }
 
-     //根据config解析出正确的类别和图表数据信息
 
-     function analysisConfig(config) {
 
-       var series = [],
 
-         //数据类别
 
-         categories = [],
 
-         result = [],
 
-         data = config.data,
 
-         meta = config.meta
 
-       //数据对齐方式为相反的方式, 需要反转数据
 
-       if (meta.dataFormat != '1') {
 
-         for (var i = 0, len = data.length; i < len; i++) {
 
-           for (var j = 0, jlen = data[i].length; j < jlen; j++) {
 
-             if (!result[j]) {
 
-               result[j] = []
 
-             }
 
-             result[j][i] = data[i][j]
 
-           }
 
-         }
 
-         data = result
 
-       }
 
-       result = {}
 
-       //普通图表
 
-       if (meta.chartType != typeConfig.length - 1) {
 
-         categories = data[0].slice(1)
 
-         for (var i = 1, curData; (curData = data[i]); i++) {
 
-           series.push({
 
-             name: curData[0],
 
-             data: curData.slice(1)
 
-           })
 
-         }
 
-         result.series = series
 
-         result.categories = categories
 
-         result.title = meta.title
 
-         result.subTitle = meta.subTitle
 
-         result.xTitle = meta.xTitle
 
-         result.yTitle = meta.yTitle
 
-         result.suffix = meta.suffix
 
-       } else {
 
-         var curData = []
 
-         for (var i = 1, len = data[0].length; i < len; i++) {
 
-           curData.push([data[0][i], data[1][i] | 0])
 
-         }
 
-         //饼图
 
-         series[0] = {
 
-           type: 'pie',
 
-           name: meta.tip,
 
-           data: curData
 
-         }
 
-         result.series = series
 
-         result.title = meta.title
 
-         result.suffix = meta.suffix
 
-       }
 
-       return result
 
-     }
 
-   })
 
-   UE.parse.register('background', function (utils) {
 
-     var me = this,
 
-       root = me.root,
 
-       p = root.getElementsByTagName('p'),
 
-       styles
 
-     for (var i = 0, ci; (ci = p[i++]); ) {
 
-       styles = ci.getAttribute('data-background')
 
-       if (styles) {
 
-         ci.parentNode.removeChild(ci)
 
-       }
 
-     }
 
-     //追加默认的表格样式
 
-     styles && utils.cssRule('ueditor_background', me.selector + '{' + styles + '}', document)
 
-   })
 
-   UE.parse.register('list', function (utils) {
 
-     var customCss = [],
 
-       customStyle = {
 
-         cn: 'cn-1-',
 
-         cn1: 'cn-2-',
 
-         cn2: 'cn-3-',
 
-         num: 'num-1-',
 
-         num1: 'num-2-',
 
-         num2: 'num-3-',
 
-         dash: 'dash',
 
-         dot: 'dot'
 
-       }
 
-     utils.extend(this, {
 
-       liiconpath: 'http://bs.baidu.com/listicon/',
 
-       listDefaultPaddingLeft: '20'
 
-     })
 
-     var root = this.root,
 
-       ols = root.getElementsByTagName('ol'),
 
-       uls = root.getElementsByTagName('ul'),
 
-       selector = this.selector
 
-     if (ols.length) {
 
-       applyStyle.call(this, ols)
 
-     }
 
-     if (uls.length) {
 
-       applyStyle.call(this, uls)
 
-     }
 
-     if (ols.length || uls.length) {
 
-       customCss.push(selector + ' .list-paddingleft-1{padding-left:0}')
 
-       customCss.push(
 
-         selector + ' .list-paddingleft-2{padding-left:' + this.listDefaultPaddingLeft + 'px}'
 
-       )
 
-       customCss.push(
 
-         selector + ' .list-paddingleft-3{padding-left:' + this.listDefaultPaddingLeft * 2 + 'px}'
 
-       )
 
-       utils.cssRule(
 
-         'list',
 
-         selector +
 
-           ' ol,' +
 
-           selector +
 
-           ' ul{margin:0;padding:0;}li{clear:both;}' +
 
-           customCss.join('\n'),
 
-         document
 
-       )
 
-     }
 
-     function applyStyle(nodes) {
 
-       var T = this
 
-       utils.each(nodes, function (list) {
 
-         if (list.className && /custom_/i.test(list.className)) {
 
-           var listStyle = list.className.match(/custom_(\w+)/)[1]
 
-           if (listStyle == 'dash' || listStyle == 'dot') {
 
-             utils.pushItem(
 
-               customCss,
 
-               selector +
 
-                 ' li.list-' +
 
-                 customStyle[listStyle] +
 
-                 '{background-image:url(' +
 
-                 T.liiconpath +
 
-                 customStyle[listStyle] +
 
-                 '.gif)}'
 
-             )
 
-             utils.pushItem(
 
-               customCss,
 
-               selector +
 
-                 ' ul.custom_' +
 
-                 listStyle +
 
-                 '{list-style:none;} ' +
 
-                 selector +
 
-                 ' ul.custom_' +
 
-                 listStyle +
 
-                 ' li{background-position:0 3px;background-repeat:no-repeat}'
 
-             )
 
-           } else {
 
-             var index = 1
 
-             utils.each(list.childNodes, function (li) {
 
-               if (li.tagName == 'LI') {
 
-                 utils.pushItem(
 
-                   customCss,
 
-                   selector +
 
-                     ' li.list-' +
 
-                     customStyle[listStyle] +
 
-                     index +
 
-                     '{background-image:url(' +
 
-                     T.liiconpath +
 
-                     'list-' +
 
-                     customStyle[listStyle] +
 
-                     index +
 
-                     '.gif)}'
 
-                 )
 
-                 index++
 
-               }
 
-             })
 
-             utils.pushItem(
 
-               customCss,
 
-               selector +
 
-                 ' ol.custom_' +
 
-                 listStyle +
 
-                 '{list-style:none;}' +
 
-                 selector +
 
-                 ' ol.custom_' +
 
-                 listStyle +
 
-                 ' li{background-position:0 3px;background-repeat:no-repeat}'
 
-             )
 
-           }
 
-           switch (listStyle) {
 
-             case 'cn':
 
-               utils.pushItem(
 
-                 customCss,
 
-                 selector + ' li.list-' + listStyle + '-paddingleft-1{padding-left:25px}'
 
-               )
 
-               utils.pushItem(
 
-                 customCss,
 
-                 selector + ' li.list-' + listStyle + '-paddingleft-2{padding-left:40px}'
 
-               )
 
-               utils.pushItem(
 
-                 customCss,
 
-                 selector + ' li.list-' + listStyle + '-paddingleft-3{padding-left:55px}'
 
-               )
 
-               break
 
-             case 'cn1':
 
-               utils.pushItem(
 
-                 customCss,
 
-                 selector + ' li.list-' + listStyle + '-paddingleft-1{padding-left:30px}'
 
-               )
 
-               utils.pushItem(
 
-                 customCss,
 
-                 selector + ' li.list-' + listStyle + '-paddingleft-2{padding-left:40px}'
 
-               )
 
-               utils.pushItem(
 
-                 customCss,
 
-                 selector + ' li.list-' + listStyle + '-paddingleft-3{padding-left:55px}'
 
-               )
 
-               break
 
-             case 'cn2':
 
-               utils.pushItem(
 
-                 customCss,
 
-                 selector + ' li.list-' + listStyle + '-paddingleft-1{padding-left:40px}'
 
-               )
 
-               utils.pushItem(
 
-                 customCss,
 
-                 selector + ' li.list-' + listStyle + '-paddingleft-2{padding-left:55px}'
 
-               )
 
-               utils.pushItem(
 
-                 customCss,
 
-                 selector + ' li.list-' + listStyle + '-paddingleft-3{padding-left:68px}'
 
-               )
 
-               break
 
-             case 'num':
 
-             case 'num1':
 
-               utils.pushItem(
 
-                 customCss,
 
-                 selector + ' li.list-' + listStyle + '-paddingleft-1{padding-left:25px}'
 
-               )
 
-               break
 
-             case 'num2':
 
-               utils.pushItem(
 
-                 customCss,
 
-                 selector + ' li.list-' + listStyle + '-paddingleft-1{padding-left:35px}'
 
-               )
 
-               utils.pushItem(
 
-                 customCss,
 
-                 selector + ' li.list-' + listStyle + '-paddingleft-2{padding-left:40px}'
 
-               )
 
-               break
 
-             case 'dash':
 
-               utils.pushItem(
 
-                 customCss,
 
-                 selector + ' li.list-' + listStyle + '-paddingleft{padding-left:35px}'
 
-               )
 
-               break
 
-             case 'dot':
 
-               utils.pushItem(
 
-                 customCss,
 
-                 selector + ' li.list-' + listStyle + '-paddingleft{padding-left:20px}'
 
-               )
 
-           }
 
-         }
 
-       })
 
-     }
 
-   })
 
-   UE.parse.register('vedio', function (utils) {
 
-     var video = this.root.getElementsByTagName('video'),
 
-       audio = this.root.getElementsByTagName('audio')
 
-     document.createElement('video')
 
-     document.createElement('audio')
 
-     if (video.length || audio.length) {
 
-       var sourcePath = utils.removeLastbs(this.rootPath),
 
-         jsurl = sourcePath + '/third-party/video-js/video.js',
 
-         cssurl = sourcePath + '/third-party/video-js/video-js.min.css',
 
-         swfUrl = sourcePath + '/third-party/video-js/video-js.swf'
 
-       if (window.videojs) {
 
-         videojs.autoSetup()
 
-       } else {
 
-         utils.loadFile(document, {
 
-           id: 'video_css',
 
-           tag: 'link',
 
-           rel: 'stylesheet',
 
-           type: 'text/css',
 
-           href: cssurl
 
-         })
 
-         utils.loadFile(
 
-           document,
 
-           {
 
-             id: 'video_js',
 
-             src: jsurl,
 
-             tag: 'script',
 
-             type: 'text/javascript'
 
-           },
 
-           function () {
 
-             videojs.options.flash.swf = swfUrl
 
-             videojs.autoSetup()
 
-           }
 
-         )
 
-       }
 
-     }
 
-   })
 
- })()
 
 
  |