`;
+ for (let i = 0; i < this.packages.length; i++) {
+ html += `
+
`;
+ let opackage = this.odata[this.packages[i]].container;
+ for (let i = 0; i < opackage.length; i++) {
+ html += (`
+ - ${opackage[i].icon}
`);
+ }
+ html += `
+
`;
+ }
+ html += `
+
+
`;
+ for (let i = 0; i < this.packages.length; i++) {
+ html += `
+ - ${this.packages[i]}
`
+ }
+ html += `
+
+
+
+ `;
+ if(option.appendContent != '') {
+ html += option.appendContent;
+ }
+ this.container.innerHTML = html;
+ // bind event
+ this.logo = this.container.getElementsByClassName('OwO-logo')[0];
+ this.logo.addEventListener('click', () => {
+ this.toggle();
+ });
+ this.container.getElementsByClassName('OwO-body')[0].addEventListener('click', (e)=> {
+ let target = null;
+ if (e.target.classList.contains('OwO-item')) {
+ target = e.target;
+ } else if (e.target.parentNode.classList.contains('OwO-item')) {
+ target = e.target.parentNode;
+ }
+ if (target) {
+ var insertContent = target.innerHTML;
+ if(target.firstChild.tagName == "IMG" && option.useMarkdown) {
+ insertContent = "+1)) + option.usedSize + ")";
+ }
+ const cursorPos = this.area.selectionEnd;
+ let areaValue = this.area.value;
+ this.area.value = areaValue.slice(0, cursorPos) + insertContent + areaValue.slice(cursorPos);
+ this.area.focus();
+ //this.toggle();
+ }
+ });
+ this.packagesEle = this.container.getElementsByClassName('OwO-packages')[0];
+ for (let i = 0; i < this.packagesEle.children.length; i++) {
+ ((index) =>{
+ this.packagesEle.children[i].addEventListener('click', () => {
+ this.tab(index);
+ });
+ })(i);
+ }
+ this.tab(0);
+ }
+ toggle() {
+ if (this.container.classList.contains('OwO-open')) {
+ this.container.classList.remove('OwO-open');
+ } else {
+ this.container.classList.add('OwO-open');
+ }
+ }
+ tab(index) {
+ const itemsShow = this.container.getElementsByClassName('OwO-items-show')[0];
+ if (itemsShow) {
+ itemsShow.classList.remove('OwO-items-show');
+ }
+ this.container.getElementsByClassName('OwO-items')[index].classList.add('OwO-items-show');
+ const packageActive = this.container.getElementsByClassName('OwO-package-active')[0];
+ if (packageActive) {
+ packageActive.classList.remove('OwO-package-active');
+ }
+ this.packagesEle.getElementsByTagName('li')[index].classList.add('OwO-package-active');
+ }
+ }
+ if (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {
+ module.exports = OwO;
+ } else {
+ window.OwO = OwO;
+ }
+})();
\ No newline at end of file
diff --git a/iMobile/js/lib/OwO/OwO.js b/iMobile/js/lib/OwO/OwO.js
new file mode 100644
index 0000000..71badf9
--- /dev/null
+++ b/iMobile/js/lib/OwO/OwO.js
@@ -0,0 +1,290 @@
+{
+ "颜文字": {
+ "type": "emoticon",
+ "container": [{
+ "icon": "OωO",
+ "text": "萌"
+ },
+ {
+ "icon": "|´・ω・)ノ",
+ "text": "Hi"
+ },
+ {
+ "icon": "ヾ(≧∇≦*)ゝ",
+ "text": "开心"
+ },
+ {
+ "icon": "(●゚ω゚●)",
+ "text": "脸红"
+ },
+ {
+ "icon": " ̄﹃ ̄",
+ "text": "流口水"
+ },
+ {
+ "icon": "(/ω\)",
+ "text": "捂脸"
+ },
+ {
+ "icon": "→_→",
+ "text": "斜眼"
+ },
+ {
+ "icon": "(╯‵□′)╯︵┴─┴",
+ "text": "掀桌"
+ },
+ {
+ "icon": "∠( ᐛ 」∠)_",
+ "text": "给跪"
+ },
+ {
+ "icon": "(@。ε。@))",
+ "text": "么么哒"
+ },
+ {
+ "icon": "୧(๑•̀⌄•́๑)૭",
+ "text": "加油"
+ },
+ {
+ "icon": "⌇●﹏●⌇",
+ "text": "吓死宝宝惹"
+ },
+ {
+ "icon": "٩(ˊᗜˋ*)و",
+ "text": "有木有WiFi"
+ },
+ {
+ "icon": "(ノ°ο°)ノ",
+ "text": "前方高能预警"
+ },
+ {
+ "icon": "(´இ皿இ`)",
+ "text": "我从未见过如此厚颜无耻之人"
+ },
+ {
+ "icon": "(ฅ´ω`ฅ)",
+ "text": "已阅留爪"
+ },
+ {
+ "icon": "(╯°A°)╯︵○○○",
+ "text": "去吧大师球"
+ },
+ {
+ "icon": "φ( ̄∇ ̄o)",
+ "text": "太萌惹"
+ },
+ {
+ "icon": "ヾ(´・ ・`。)ノ\"",
+ "text": "咦咦咦"
+ },
+ {
+ "icon": "( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃",
+ "text": "气呼呼"
+ },
+ {
+ "icon": "(๑•̀ㅂ•́)و✧",
+ "text": "加油"
+ },
+ {
+ "icon": "Σ(っ °Д °;)っ",
+ "text": "什么鬼"
+ },
+ {
+ "icon": "─=≡Σ(((つ•̀ω•́)つ",
+ "text": "飞扑"
+ },
+ {
+ "icon": "╮(╯▽╰)╭ ",
+ "text": "无奈"
+ },
+ {
+ "icon": "( ,,´・ω・)ノ\"(´っω・`。)",
+ "text": "摸摸头"
+ },
+ {
+ "icon": "♥(✿ฺ´∀`✿ฺ)ノ",
+ "text": "花痴"
+ },
+ {
+ "icon": "٩(๑>◡<๑)۶",
+ "text": "真棒"
+ },
+ {
+ "icon": "(ó﹏ò。)",
+ "text": "我受到了惊吓"
+ }
+ ]
+ },
+ "Emoji": {
+ "type": "emoji",
+ "container": [{
+ "icon": "😂",
+ "text": "笑哭"
+ },
+ {
+ "icon": "😀",
+ "text": "哈哈"
+ },
+ {
+ "icon": "😅",
+ "text": "流汗"
+ },
+ {
+ "icon": "😊",
+ "text": "可爱"
+ },
+ {
+ "icon": "🙂",
+ "text": "微笑"
+ },
+ {
+ "icon": "🙃",
+ "text": "我倒"
+ },
+ {
+ "icon": "😌",
+ "text": "嘻嘻"
+ },
+ {
+ "icon": "😍",
+ "text": "爱你"
+ },
+ {
+ "icon": "😘 ",
+ "text": "飞吻"
+ },
+ {
+ "icon": "😜",
+ "text": "鬼脸"
+ },
+ {
+ "icon": "😝",
+ "text": "啦啦啦"
+ },
+ {
+ "icon": "😏",
+ "text": "坏笑"
+ },
+ {
+ "icon": "😒",
+ "text": "撇嘴"
+ },
+ {
+ "icon": "🙄",
+ "text": "白眼"
+ },
+ {
+ "icon": "😳 ",
+ "text": "脸红"
+ },
+ {
+ "icon": "😡",
+ "text": "愤怒"
+ },
+ {
+ "icon": "😔",
+ "text": "哎"
+ },
+ {
+ "icon": "😫",
+ "text": "好累"
+ },
+ {
+ "icon": "😱",
+ "text": "惊恐"
+ },
+ {
+ "icon": "😭",
+ "text": "大哭"
+ },
+ {
+ "icon": "😶",
+ "text": "无语"
+ },
+ {
+ "icon": "😣",
+ "text": "难过"
+ },
+
+ {
+ "icon": "😤",
+ "text": "气死"
+ },
+ {
+ "icon": "😪",
+ "text": "困了"
+ },
+ {
+ "icon": "😮",
+ "text": "惊呆"
+ },
+ {
+ "icon": "😲",
+ "text": "天哪"
+ },
+ {
+ "icon": "🤥",
+ "text": "说谎"
+ },
+ {
+ "icon": "🤢",
+ "text": "恶心"
+ },
+ {
+ "icon": "👻",
+ "text": "吓死你"
+ },
+ {
+ "icon": "👍",
+ "text": "棒棒哒"
+ },
+ {
+ "icon": "👎",
+ "text": "鄙视"
+ },
+ {
+ "icon": "👏",
+ "text": "鼓掌"
+ },
+ {
+ "icon": "👋",
+ "text": "拜拜"
+ },
+ {
+ "icon": "👭",
+ "text": "朋友"
+ },
+ {
+ "icon": "🌝",
+ "text": "满月"
+ },
+ {
+ "icon": "🌞",
+ "text": "太阳"
+ },
+ {
+ "icon": "🙈",
+ "text": "看不见"
+ },
+ {
+ "icon": "💊",
+ "text": "该吃药了"
+ },
+ {
+ "icon": "🙏",
+ "text": "拜托"
+ }
+ ]
+ },
+ "Markdown": {
+ "type": "emoticon",
+ "container": [
+ { "icon": "[TEXT](https://zixizixi.cn 'TITLE')", "text": "链接" },
+ { "icon": "", "text": "图片" },
+ { "icon": "#", "text": "标题" },
+ { "icon": "> ", "text": "引用" },
+ { "icon": "*", "text": "粗/斜/项" },
+ { "icon": "```", "text": "代码" }
+ ]
+ }
+}
\ No newline at end of file
diff --git a/iMobile/js/lib/OwO/OwO.json_bak b/iMobile/js/lib/OwO/OwO.json_bak
new file mode 100644
index 0000000..ddc23b5
--- /dev/null
+++ b/iMobile/js/lib/OwO/OwO.json_bak
@@ -0,0 +1,444 @@
+{
+"颜文字": {
+ "type": "emoticon",
+ "container": [
+ {"icon": "OωO","text": "萌"},
+ {"icon": "|´・ω・)ノ","text": "Hi"},
+ {"icon": "ヾ(≧∇≦*)ゝ","text": "开心"},
+ {"icon": "(●゚ω゚●)","text": "脸红"},
+ {"icon": " ̄﹃ ̄","text": "流口水"},
+ {"icon": "(/ω\)","text": "捂脸"},
+ {"icon": "→_→","text": "斜眼"},
+ {"icon": "(╯‵□′)╯︵┴─┴","text": "掀桌"},
+ {"icon": "∠( ᐛ 」∠)_","text": "给跪"},
+ {"icon": "(@。ε。@))","text": "么么哒"},
+ {"icon": "୧(๑•̀⌄•́๑)૭","text": "加油"},
+ {"icon": "⌇●﹏●⌇","text": "吓死宝宝惹"},
+ {"icon": "٩(ˊᗜˋ*)و","text": "有木有WiFi"},
+ {"icon": "(ノ°ο°)ノ","text": "前方高能预警"},
+ {"icon": "(´இ皿இ`)","text": "我从未见过如此厚颜无耻之人"},
+ {"icon": "(ฅ´ω`ฅ)","text": "已阅留爪"},
+ {"icon": "(╯°A°)╯︵○○○","text": "去吧大师球"},
+ {"icon": "φ( ̄∇ ̄o)","text": "太萌惹"},
+ {"icon": "ヾ(´・ ・`。)ノ\"","text": "咦咦咦"},
+ {"icon": "( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃","text": "气呼呼"},
+ {"icon": "(๑•̀ㅂ•́)و✧","text": "加油"},
+ {"icon": "Σ(っ °Д °;)っ","text": "什么鬼"},
+ {"icon": "─=≡Σ(((つ•̀ω•́)つ","text": "飞扑"},
+ {"icon": "╮(╯▽╰)╭ ","text": "无奈"},
+ {"icon": "( ,,´・ω・)ノ\"(´っω・`。)","text": "摸摸头"},
+ {"icon": " ♥(✿ฺ´∀`✿ฺ)ノ","text": "花痴"},
+ {"icon": "٩(๑>◡<๑)۶","text": "真棒"},
+ {"icon": "(ó﹏ò。)","text": "我受到了惊吓"}
+ ]
+},
+"图片表情": {
+ "type": "image",
+ "container": [
+ {
+ "icon": "';
+ for (var i = 0; i < this.packages.length; i++) {
+ html += '
';
+ var opackage = this.odata[this.packages[i]].container;
+ for (var _i = 0; _i < opackage.length; _i++) {
+ html += '- ' + opackage[_i].icon + '
');
+ }
+ html += '
';
+ }
+ html += '
';
+ for (var _i2 = 0; _i2 < this.packages.length; _i2++) {
+ html += '- ' + this.packages[_i2] + '
';
+ }
+ html += '
';
+ if (option.appendContent != '') {
+ html += option.appendContent;
+ }
+ this.container.innerHTML = html;
+ // bind event
+ this.logo = this.container.getElementsByClassName('OwO-logo')[0];
+ this.logo.addEventListener('click', function() {
+ _this2.toggle();
+ });
+ this.container.getElementsByClassName('OwO-body')[0].addEventListener('click', function(e) {
+ var target = null;
+ if (e.target.classList.contains('OwO-item')) {
+ target = e.target;
+ } else if (e.target.parentNode.classList.contains('OwO-item')) {
+ target = e.target.parentNode;
+ }
+ if (target) {
+ var insertContent = target.innerHTML;
+ if (target.firstChild.tagName == "IMG" && option.useMarkdown) {
+ insertContent = " + 1) + option.usedSize + ")";
+ }
+ var cursorPos = _this2.area.selectionEnd;
+ var areaValue = _this2.area.value;
+ _this2.area.value = areaValue.slice(0, cursorPos) + insertContent + areaValue.slice(cursorPos);
+ _this2.area.focus();
+ //_this2.toggle();
+ }
+ });
+ this.packagesEle = this.container.getElementsByClassName('OwO-packages')[0];
+ var _loop = function _loop(_i3) {
+ (function(index) {
+ _this2.packagesEle.children[_i3].addEventListener('click', function() {
+ _this2.tab(index);
+ });
+ })(_i3);
+ };
+
+ for (var _i3 = 0; _i3 < this.packagesEle.children.length; _i3++) {
+ _loop(_i3);
+ }
+ this.tab(0);
+ }
+ }, {
+ key: 'toggle',
+ value: function toggle() {
+ if (this.container.classList.contains('OwO-open')) {
+ this.container.classList.remove('OwO-open');
+ } else {
+ this.container.classList.add('OwO-open');
+ }
+ }
+ }, {
+ key: 'tab',
+ value: function tab(index) {
+ var itemsShow = this.container.getElementsByClassName('OwO-items-show')[0];
+ if (itemsShow) {
+ itemsShow.classList.remove('OwO-items-show');
+ }
+ this.container.getElementsByClassName('OwO-items')[index].classList.add('OwO-items-show');
+
+ var packageActive = this.container.getElementsByClassName('OwO-package-active')[0];
+ if (packageActive) {
+ packageActive.classList.remove('OwO-package-active');
+ }
+ this.packagesEle.getElementsByTagName('li')[index].classList.add('OwO-package-active');
+ }
+ }]);
+ return OwO;
+ }();
+ if (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {
+ module.exports = OwO;
+ } else {
+ window.OwO = OwO;
+ }
+})();
\ No newline at end of file
diff --git a/iMobile/js/lib/jquery/jquery.2.2.4.min.js b/iMobile/js/lib/jquery/jquery.2.2.4.min.js
new file mode 100644
index 0000000..4024b66
--- /dev/null
+++ b/iMobile/js/lib/jquery/jquery.2.2.4.min.js
@@ -0,0 +1,4 @@
+/*! jQuery v2.2.4 | (c) jQuery Foundation | jquery.org/license */
+!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=a.document,e=c.slice,f=c.concat,g=c.push,h=c.indexOf,i={},j=i.toString,k=i.hasOwnProperty,l={},m="2.2.4",n=function(a,b){return new n.fn.init(a,b)},o=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,p=/^-ms-/,q=/-([\da-z])/gi,r=function(a,b){return b.toUpperCase()};n.fn=n.prototype={jquery:m,constructor:n,selector:"",length:0,toArray:function(){return e.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:e.call(this)},pushStack:function(a){var b=n.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a){return n.each(this,a)},map:function(a){return this.pushStack(n.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(e.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor()},push:g,sort:c.sort,splice:c.splice},n.extend=n.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||n.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(a=arguments[h]))for(b in a)c=g[b],d=a[b],g!==d&&(j&&d&&(n.isPlainObject(d)||(e=n.isArray(d)))?(e?(e=!1,f=c&&n.isArray(c)?c:[]):f=c&&n.isPlainObject(c)?c:{},g[b]=n.extend(j,f,d)):void 0!==d&&(g[b]=d));return g},n.extend({expando:"jQuery"+(m+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===n.type(a)},isArray:Array.isArray,isWindow:function(a){return null!=a&&a===a.window},isNumeric:function(a){var b=a&&a.toString();return!n.isArray(a)&&b-parseFloat(b)+1>=0},isPlainObject:function(a){var b;if("object"!==n.type(a)||a.nodeType||n.isWindow(a))return!1;if(a.constructor&&!k.call(a,"constructor")&&!k.call(a.constructor.prototype||{},"isPrototypeOf"))return!1;for(b in a);return void 0===b||k.call(a,b)},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?i[j.call(a)]||"object":typeof a},globalEval:function(a){var b,c=eval;a=n.trim(a),a&&(1===a.indexOf("use strict")?(b=d.createElement("script"),b.text=a,d.head.appendChild(b).parentNode.removeChild(b)):c(a))},camelCase:function(a){return a.replace(p,"ms-").replace(q,r)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b){var c,d=0;if(s(a)){for(c=a.length;c>d;d++)if(b.call(a[d],d,a[d])===!1)break}else for(d in a)if(b.call(a[d],d,a[d])===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(o,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(s(Object(a))?n.merge(c,"string"==typeof a?[a]:a):g.call(c,a)),c},inArray:function(a,b,c){return null==b?-1:h.call(b,a,c)},merge:function(a,b){for(var c=+b.length,d=0,e=a.length;c>d;d++)a[e++]=b[d];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,e,g=0,h=[];if(s(a))for(d=a.length;d>g;g++)e=b(a[g],g,c),null!=e&&h.push(e);else for(g in a)e=b(a[g],g,c),null!=e&&h.push(e);return f.apply([],h)},guid:1,proxy:function(a,b){var c,d,f;return"string"==typeof b&&(c=a[b],b=a,a=c),n.isFunction(a)?(d=e.call(arguments,2),f=function(){return a.apply(b||this,d.concat(e.call(arguments)))},f.guid=a.guid=a.guid||n.guid++,f):void 0},now:Date.now,support:l}),"function"==typeof Symbol&&(n.fn[Symbol.iterator]=c[Symbol.iterator]),n.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(a,b){i["[object "+b+"]"]=b.toLowerCase()});function s(a){var b=!!a&&"length"in a&&a.length,c=n.type(a);return"function"===c||n.isWindow(a)?!1:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var t=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=ga(),z=ga(),A=ga(),B=function(a,b){return a===b&&(l=!0),0},C=1<<31,D={}.hasOwnProperty,E=[],F=E.pop,G=E.push,H=E.push,I=E.slice,J=function(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return c;return-1},K="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",L="[\\x20\\t\\r\\n\\f]",M="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",N="\\["+L+"*("+M+")(?:"+L+"*([*^$|!~]?=)"+L+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+M+"))|)"+L+"*\\]",O=":("+M+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+N+")*)|.*)\\)|)",P=new RegExp(L+"+","g"),Q=new RegExp("^"+L+"+|((?:^|[^\\\\])(?:\\\\.)*)"+L+"+$","g"),R=new RegExp("^"+L+"*,"+L+"*"),S=new RegExp("^"+L+"*([>+~]|"+L+")"+L+"*"),T=new RegExp("="+L+"*([^\\]'\"]*?)"+L+"*\\]","g"),U=new RegExp(O),V=new RegExp("^"+M+"$"),W={ID:new RegExp("^#("+M+")"),CLASS:new RegExp("^\\.("+M+")"),TAG:new RegExp("^("+M+"|[*])"),ATTR:new RegExp("^"+N),PSEUDO:new RegExp("^"+O),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+L+"*(even|odd|(([+-]|)(\\d*)n|)"+L+"*(?:([+-]|)"+L+"*(\\d+)|))"+L+"*\\)|)","i"),bool:new RegExp("^(?:"+K+")$","i"),needsContext:new RegExp("^"+L+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+L+"*((?:-\\d)?\\d*)"+L+"*\\)|)(?=[^-]|$)","i")},X=/^(?:input|select|textarea|button)$/i,Y=/^h\d$/i,Z=/^[^{]+\{\s*\[native \w/,$=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,_=/[+~]/,aa=/'|\\/g,ba=new RegExp("\\\\([\\da-f]{1,6}"+L+"?|("+L+")|.)","ig"),ca=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},da=function(){m()};try{H.apply(E=I.call(v.childNodes),v.childNodes),E[v.childNodes.length].nodeType}catch(ea){H={apply:E.length?function(a,b){G.apply(a,I.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function fa(a,b,d,e){var f,h,j,k,l,o,r,s,w=b&&b.ownerDocument,x=b?b.nodeType:9;if(d=d||[],"string"!=typeof a||!a||1!==x&&9!==x&&11!==x)return d;if(!e&&((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,p)){if(11!==x&&(o=$.exec(a)))if(f=o[1]){if(9===x){if(!(j=b.getElementById(f)))return d;if(j.id===f)return d.push(j),d}else if(w&&(j=w.getElementById(f))&&t(b,j)&&j.id===f)return d.push(j),d}else{if(o[2])return H.apply(d,b.getElementsByTagName(a)),d;if((f=o[3])&&c.getElementsByClassName&&b.getElementsByClassName)return H.apply(d,b.getElementsByClassName(f)),d}if(c.qsa&&!A[a+" "]&&(!q||!q.test(a))){if(1!==x)w=b,s=a;else if("object"!==b.nodeName.toLowerCase()){(k=b.getAttribute("id"))?k=k.replace(aa,"\\$&"):b.setAttribute("id",k=u),r=g(a),h=r.length,l=V.test(k)?"#"+k:"[id='"+k+"']";while(h--)r[h]=l+" "+qa(r[h]);s=r.join(","),w=_.test(a)&&oa(b.parentNode)||b}if(s)try{return H.apply(d,w.querySelectorAll(s)),d}catch(y){}finally{k===u&&b.removeAttribute("id")}}}return i(a.replace(Q,"$1"),b,d,e)}function ga(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ha(a){return a[u]=!0,a}function ia(a){var b=n.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ja(a,b){var c=a.split("|"),e=c.length;while(e--)d.attrHandle[c[e]]=b}function ka(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||C)-(~a.sourceIndex||C);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function la(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function na(a){return ha(function(b){return b=+b,ha(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function oa(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=fa.support={},f=fa.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},m=fa.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=n.documentElement,p=!f(n),(e=n.defaultView)&&e.top!==e&&(e.addEventListener?e.addEventListener("unload",da,!1):e.attachEvent&&e.attachEvent("onunload",da)),c.attributes=ia(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ia(function(a){return a.appendChild(n.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=Z.test(n.getElementsByClassName),c.getById=ia(function(a){return o.appendChild(a).id=u,!n.getElementsByName||!n.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c?[c]:[]}},d.filter.ID=function(a){var b=a.replace(ba,ca);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(ba,ca);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return"undefined"!=typeof b.getElementsByClassName&&p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=Z.test(n.querySelectorAll))&&(ia(function(a){o.appendChild(a).innerHTML="