Greasy Fork

绯月表情增强插件

绯月论坛专用的扩展插件, 在发帖时快速输入自定义表情和论坛BBCODE

目前为 2015-01-31 提交的版本。查看 最新版本

// ==UserScript==
// @name       绯月表情增强插件
// @namespace  http://blog.nekohand.moe
// @version    2.42 正式版
// @description  绯月论坛专用的扩展插件, 在发帖时快速输入自定义表情和论坛BBCODE
// @icon        http://data.nekohand.moe/favicon.gif
// @match       http://*.2dgal.com/read.php?*
// @match       http://*.2dgal.com/post.php?*
// @match       http://2dgal.com/read.php?*
// @match       http://2dgal.com/post.php?*
// @copyright  2014-2015, eddie32
// ==/UserScript==

/* 自定义内容*/

// 功能栏标题

var ItemTitleArray = new Array('kf','水','颜','LL小','LL大','AC娘','百合','外','Gal','东方','轨迹','Gal2','Gal3');

// 链接ID, 对应, 100101开始的整数。
var loadTitleArray = [];
var ItemLength = ItemTitleArray.length;
for(var j=0; j<ItemLength;j++){
   loadTitleArray[j] = 100101 + j;
}
//var loadTitleArray = new Array('100101','100102','100103','100104','100105','100106','100107','100108','100109');



// 表情数组:
// 1:自带
var KFSmileURL = [];
var KFSmileTitle = [];
var KFSmileCode  = [];
for(var j = 0; j < 48; j++) {
    KFSmileURL[j] = 'http://2dgal.com/'+imgpath+'/post/smile/em/em' +
        ((j)>=9?(j+1):('0'+(j+1))) + '.gif';
    KFSmileTitle[j] = '';
    KFSmileCode[j] = '[s:'+(j+10)+']';
}


// 2: 颜文字
var emotionArray = Array("(●・ 8 ・●)", "╰(๑◕ ▽ ◕๑)╯", "(﹡ˆˆ﹡)","〜♪♪",
                         "|∀゚", "(´゚Д゚`)", "(;´Д`)", "(`・ω・)", "(=゚ω゚)=", "| ω・´)", "|-` )"
                         , "|д` )", "|ー` )", "|∀` )", "(つд⊂)", "(゚Д゚≡゚Д゚)", "(^o^)ノ"
                         , "(|||゚Д゚)", "( ゚∀゚)", "( ´∀`)", "(*´∀`)", "(*゚∇゚)", "(*゚ー゚)"
                         , "( ゚ 3゚)", "( ´ー`)", "( ・_ゝ・)", "( ´_ゝ`)", "(*´д`)", "(・ー・)"
                         , "(・∀・)", "(ゝ∀・)", "(〃∀〃)", "(*゚∀゚*)", "( ゚∀。)", "( `д´)"
                         , "(`ε´ )", "(`ヮ´ )", "σ`∀´)", " ゚∀゚)σ", "゚ ∀゚)ノ", "(╬゚д゚)"
                         , "(|||゚д゚)", "( ゚д゚)", "Σ( ゚д゚)", "( ;゚д゚)", "( ;´д`)"
                         , "( д ) ゚ ゚", "( ☉д⊙)", "((( ゚д゚)))", "( ` ・´)", "( ´д`)"
                         , "( -д-)", "(>д<)", "・゚( ノд`゚)", "( TдT)", "( ̄∇ ̄)"
                         , "( ̄3 ̄)", "( ̄ー ̄)", "( ̄ .  ̄)", "( ̄皿 ̄)", "( ̄艸 ̄)"
                         , "( ̄︿ ̄)", "( ̄︶ ̄)", "ヾ(´ω゚`)", "(*´ω`*)", "(・ω・)"
                         , "( ´・ω)", "(`・ω)", "(´・ω・`)", "(`・ω・´)", "( `_っ´)"
                         , "( `ー´)", "( ´_っ`)", "( ´ρ`)", "( ゚ω゚)", "(o゚ω゚o)"
                         , "( ^ω^)", "(。◕∀◕。)", "/( ◕‿‿◕ )\\", "ヾ(´ε`ヾ)"
                         , "(ノ゚∀゚)ノ", "(σ゚д゚)σ", "(σ゚∀゚)σ", "|д゚ )", "┃電柱┃",
                         "゚(つд`゚)", "゚Å゚ ) ", "⊂彡☆))д`)", "⊂彡☆))д´)", "⊂彡☆))∀`)", "(´∀((☆ミつ",
                         "( ◜◒◝ )","(●´3`)~♪", "_(:з」∠)_","хорошо!","\(^o^)/","(•̅灬•̅ )", "(゚Д゚)","(ノ=Д=)ノ┻━┻","まったく、小学生は最高だぜ!!",
                        "(;°ほ°)","もうこの国は駄目だぁ","ヽ(✿゚▽゚)ノ");
// 3. lovelive专用小
var LoveliveSmalltargetURL = [];
var LoveliveSmalltargetTitle = [];
for(var j = 0; j < 41; j++) {
    LoveliveSmalltargetURL[j] = 'http://smile.nekohand.moe/blogAcc/LoveliveEmotion02/Small/Lovelive2nd' +
        (j+1) + '.png';
    LoveliveSmalltargetTitle[j] = j+1;
}

for(var j = 0; j < 40; j++) {
    LoveliveSmalltargetURL[j+41] = 'http://smile.nekohand.moe/blogAcc/LoveliveEmotion01/Small/Lovelive' +
        (j+1) + '.png';
     LoveliveSmalltargetTitle[j+41] = j+1;
}

// 4. lovelive专用大
var LoveliveBigtargetURL = [];
var LoveliveBigtargetTitle = [];
for(var j = 0; j < 41; j++) {
    LoveliveBigtargetURL[j] = 'http://smile.nekohand.moe/blogAcc/LoveliveEmotion02/Big/Lovelive2nd' +
        (j+1) + '.png';
    LoveliveBigtargetTitle[j] = j+1;
}

for(var j = 0; j < 40; j++) {
    LoveliveBigtargetURL[j+41] = 'http://smile.nekohand.moe/blogAcc/LoveliveEmotion01/Big/Lovelive' +
        (j+1) + '.png';
    LoveliveBigtargetTitle[j+41] = j+1;
}

// 5. 快捷输入功能
var functionEmotion = Array("[sell=1][/sell]","[quote][/quote]","[hide=1][/hide]","[code][/code]","[strike][/strike]",
                             "[fly][/fly]","[color=#00FF00][/color]","[b][/b]","[u][/u]","[i][/i]","[hr]", "[bgcolor=][/bgcolor]","[img][/img]"
                            );
var functionDescription = Array("出售贴sell=售价","引用", "隐藏hide=神秘等级","插入代码","删除线","跑马灯","文字颜色","粗体","下划线","斜体","水平线","背景色","插入图片");

// 6. AC娘

var ACSmile3 = [];
var ACSmile3Title = [];
for(var j = 0; j < 50; j++) {
    ACSmile3[j] = 'http://smile.nekohand.moe/blogAcc/LoveliveEmotion01/EmCol/ACFUN/' +
        (j+1) + '.png';
    ACSmile3Title[j] = '';
}
var ACSmile2 = [];
var ACSmile2Title = [];
for(var j = 0; j < 10; j++) {
    ACSmile2[j] = 'http://smile.nekohand.moe/blogAcc/LoveliveEmotion01/EmCol/ACFUN/' +
        (j+51) + '.jpg';
    ACSmile2Title[j] = '';
}

//7. Akari 摇曳百合
var ACSmile1 = [];
var ACSmile1Title = [];
for(var j = 0; j < 20; j++) {
    ACSmile1[j] = 'http://smile.nekohand.moe/blogAcc/LoveliveEmotion01/EmCol/Dynamic/akari' +
        (j+1) + '.gif';
    ACSmile1Title[j] = '';
}

var AkariSmile1 = [];
var AkariSmile1Title = [];
for(var j = 0; j < 71; j++) {
    AkariSmile1[j] = 'http://smile.nekohand.moe/blogAcc/LoveliveEmotion01/EmCol/akari/akari' +
        (j+1) + '.png';
    AkariSmile1Title[j] = '';
}
// 8.百度
var BaiduSmile1 = [];
var BaiduSmile1Title = [];
for(var j = 0; j < 50; j++) {
    BaiduSmile1[j] = 'http://smilell1.eclosionstudio.com/EmCol/baidu/defaultx' +
        (j+1) + '.png';
    BaiduSmile1Title[j] = '';
}
// 百度兔斯基
var BaiduSmile2= [];
var BaiduSmile2Title = [];
for(var j = 0; j < 40; j++) {
    BaiduSmile2[j] = 'http://tb2.bdstatic.com/tb/editor/images/tsj/t_00' +
        ((j)>=9?(j+1):('0'+(j+1))) + '.gif';
    BaiduSmile2Title[j] = '';
}
// 百度气泡熊
var BaiduSmile3= [];
var BaiduSmile3Title = [];
for(var j = 0; j < 40; j++) {
    BaiduSmile3[j] = 'http://tb2.bdstatic.com/tb/editor/images/qpx_n/b' +
        ((j)>=9?(j+1):('0'+(j+1))) + '.gif';
    BaiduSmile3Title[j] = '';
}

// 多玩洋葱头
var duowanSmile =[];
var duowanSmileTitle = [];
for(var j= 0; j<69;j++){
    duowanSmile[j] = 'http://att.bbs.duowan.com/static/image/smiley/yct/yct' +
     ((j)>=9?(j+1):('0'+(j+1))) + '.gif';        
}
// 百度暴走漫画
var BaiduSmile4= [];
var BaiduSmile4Title = [];
for(var j = 0; j < 56; j++) {
    BaiduSmile4[j] = 'http://tb2.bdstatic.com/tb/editor/images/baodong/b_00' +
        ((j)>=9?(j+1):('0'+(j+1))) + '.gif';
    BaiduSmile4Title[j] = '';
}
// 百度绿豆蛙
var BaiduSmile5= [];
var BaiduSmile5Title = [];
for(var j = 0; j < 53; j++) {
    BaiduSmile5[j] = 'http://tb2.bdstatic.com/tb/editor/images/ldw/w_00' +
        ((j)>=9?(j+1):('0'+(j+1))) + '.gif';
    BaiduSmile5Title[j] = '';
}
// 百度波波
var BaiduSmile6= [];
var BaiduSmile6Title = [];
for(var j = 0; j < 63; j++) {
    BaiduSmile6[j] = 'http://tb2.bdstatic.com/tb/editor/images/bobo/B_00' +
        ((j)>=9?(j+1):('0'+(j+1))) + '.gif';
    BaiduSmile6Title[j] = '';
}
// ACFUN new
var ACSmile4 = [];
var ACSmile4Title = [];
for(var j = 0; j < 50; j++) {
    ACSmile4[j] = 'http://smile.nekohand.moe/blogAcc/LoveliveEmotion01/EmCol/ACFUN/New/' +
        (j+1) + '.png';
    ACSmile4Title[j] = '';
}
var ACSmile5 = [];
var ACSmile5Title = [];
for(var j = 0; j < 40; j++) {
    ACSmile5[j] = 'http://smile.nekohand.moe/blogAcc/LoveliveEmotion01/EmCol/ACFUN/Niming/' +
        ((j)>=9?(j+1):('0'+(j+1))) + '.gif';
    ACSmile5Title[j] = '';
}

// 东方400
var ACSmile6 = [];
var ACSmile6Title = [];

for(var j = 0; j < 398; j++) {
    ACSmile6[j] = 'http://smile.nekohand.moe/blogAcc/LoveliveEmotion01/EmCol/Touhou/Touhou' +
        (j+1) + '.jpg';
}



// 
// X(X=上面的数字+1). 小仓朝日
var AsahiURL = [];
var AsahiURLTitle = [];

for(var j = 0; j < 28; j++) {
   AsahiURL[j] = 'http://aruruu.net/ADDimages/asahi/' +
        (j+1) + '.png';   // 缩略图和实际图像地址用一个就行。
   AsahiURLTitle[j] = ''; // 这个数组是鼠标滑过的提示数组
}

var RisonaURL = [];
var RisonaURLTitle = [];

for(var j = 0; j < 39; j++) {
   RisonaURL[j] = 'http://aruruu.net/ADDimages/risona/' +
        (j+1) + '.png';   // 缩略图和实际图像地址用一个就行。
   RisonaURLTitle[j] = ''; // 这个数组是鼠标滑过的提示数组
}

var RunaURL = [];
var RunaURLTitle = [];

for(var j = 0; j < 30; j++) {
   RunaURL[j] = 'http://aruruu.net/ADDimages/runa/' +
        (j+1) + '.png';   // 缩略图和实际图像地址用一个就行。
   RunaURLTitle[j] = ''; // 这个数组是鼠标滑过的提示数组
}
//萝莉们

var mc2URL = [];
for(var j = 0; j < 70; j++) {
   mc2URL[j] = 'http://static.tieba.baidu.com/tb/editor/images/ali/ali_0' +
        ((j)>=9?(j+1):('0'+(j+1))) + '.gif';   // 缩略图和实际图像地址用一个就行。
   
}
var mc3URL = [];
for(var j = 0; j < 9; j++) {
   mc3URL[j] = 'http://blog.bi119ate5hxk.net/wp-content/smilies/b' +
        ((j)>=9?(j+1):('0'+(j+1))) + '.png';   // 缩略图和实际图像地址用一个就行。
   
}
var mc4URL = [];
for(var j = 0; j < 9; j++) {
   mc4URL[j] = 'http://blog.bi119ate5hxk.net/wp-content/smilies/a' +
        ((j)>=9?(j+1):('0'+(j+1))) + '.png';   // 缩略图和实际图像地址用一个就行。
   
}


// 4000w和tora酱
// 东方400
var w4 = [];

for(var j = 0; j < 36; j++) {
   w4[j] = 'http://smile.nekohand.moe/blogAcc/LoveliveEmotion01/EmCol/w4000/wfour' +
        (j+1) + '.jpg';
}
// 东方400
var w5 = [];

for(var j = 0; j < 14; j++) {
    w5[j] = 'http://smile.nekohand.moe/blogAcc/LoveliveEmotion01/EmCol/tora/0' +
         ((j)>=9?(j+1):('0'+(j+1))) + '.jpg';
}



//企鹅们

var Pen1 = ['http://up.twblog.org/image.php?di=6N5Z'];
var Pen1Title = [];
var Pen2 = ['http://up.twblog.org/image.php?di=N1WM'];
var Pen2Title = [];
var Pen3 = ['http://up.twblog.org/image.php?di=HFQF'];
var Pen3Title = [];
var Pen4= ['http://up.twblog.org/image.php?di=SPOW'];
var Pen4Title = [];
var Pen5 = ['http://up.twblog.org/image.php?di=8NCO'];
var Pen5Title = [];
var Pen6 = ['http://up.twblog.org/image.php?di=O9CQ'];
var Pen6Title = [];
var Pen7 = ['http://up.twblog.org/image.php?di=JKJG'];
var Pen7Title = [];
var Pen8 = ['http://up.twblog.org/image.php?di=60JH'];
var Pen8Title = [];
var Pen9 = ['http://up.twblog.org/image.php?di=SLJH'];
var Pen9Title = [];
var Pen10 = ['http://up.twblog.org/image.php?di=G83L'];
var Pen10Title = [];
var Pen11 = ['http://up.twblog.org/image.php?di=J42G'];
var Pen11Title = [];
var Pen12 = ['http://up.twblog.org/image.php?di=4Y0G'];
var Pen12Title = [];
var Pen13 = ['http://up.twblog.org/image.php?di=E7LN'];
var Pen13Title = [];
var Pen14 = ['http://up.twblog.org/image.php?di=ZLTY'];
var Pen14Title = [];
var Pen15 = ['http://up.twblog.org/image.php?di=7ZLJ'];
var Pen15Title = [];
var Pen16 = ['http://up.twblog.org/image.php?di=5H1J'];
var Pen16Title = [];
var Pen17 = ['http://up.twblog.org/image.php?di=SXWD'];
var Pen17Title = [];
var Pen18 = ['http://up.twblog.org/image.php?di=LVNG'];
var Pen18Title = [];


//雜
var Zha1 = ['http://up.twblog.org/image.php?di=84IL'];
var Zha1Title = [];
var Zha2 = ['http://up.twblog.org/image.php?di=XZVK'];
var Zha2Title = [];
var Zha3 = ['http://up.twblog.org/image.php?di=YV3X'];
var Zha3Title = [];
var Zha4 = ['http://up.twblog.org/image.php?di=57TU'];
var Zha4Title = [];

// 零之轨迹/碧之轨迹
var w6 = [];

for(var j = 0; j < 27; j++) {
    w6[j] = 'http://nekohand.moe/spsmile/01Sora/0xx' +
         (j+2) + '.png';
}


var w7 = [];

for(var j = 0; j < 39; j++) {
    w7[j] = 'http://nekohand.moe/spsmile/03Sora/RlN8rQO_' +
         ((j)>=9?(j+1):('0'+(j+1))) + '.png';
}


var w8 = [];

for(var j = 0; j < 40; j++) {
    w8[j] = 'http://aruruu.net/ADDimages/saika/' +
         (j+1) + '.png';
}

//

	// 6. 小仓朝阳
var w10 = [];

for(var j = 0; j < 40; j++) {
   w10[j] = 'http://aruruu.net/ADDimages/saika/' +
        (j+1) + '.png';
}


// 7. 艾斯豚
var w11 = [];

for(var j = 0; j < 48; j++) {
   w11[j] = 'http://aruruu.net/ADDimages/est/' +
        (j+1) + '.png';
}


// 8. 八日堂朔莉
var w12 = [];

for(var j = 0; j < 48; j++) {
   w12[j] = 'http://aruruu.net/ADDimages/sakuri/' +
        (j+1) + '.png';
}


// 9. 银条春心
var w13 = [];

for(var j = 0; j < 60; j++) {
   w13[j] = 'http://aruruu.net/ADDimages/parco/' +
        (j+1) + '.png';
}



// 10. 一丸弓
var w14 = [];

for(var j = 0; j < 14; j++) {
   w14[j] = 'http://aruruu.net/ADDimages/kyuu/' +
        (j+1) + '.png';
}



// 11. 梅宮伊瀬也
var w15 = [];

for(var j = 0; j < 14; j++) {
   w15[j] = 'http://aruruu.net/ADDimages/iseya/' +
        (j+1) + '.png';
}



// 12. 山吹九千代
var w16 = [];

for(var j = 0; j < 21; j++) {
w16[j] = 'http://aruruu.net/ADDimages/konochiyo/' +
        (j+1) + '.png';
}



// 13. 大蔵ルミネ
var w17 = [];

for(var j = 0; j < 72; j++) {
   w17[j] = 'http://aruruu.net/ADDimages/lumine/' +
        (j+1) + '.png';
}



// 14. 桜小路アトレ
var w18 = [];

for(var j = 0; j < 12; j++) {
   w18[j] = 'http://aruruu.net/ADDimages/atre/' +
        (j+1) + '.png';
}



function loadingHandler(loadindex, target){
    
    switch (loadindex) {
        case 1: // 1:苍雪自带
            userInputImg(target, Pen1, Pen1, Pen1Title, returnImg, 40, 40);
            userInputImg(target, Pen2, Pen2, Pen2Title, returnImg, 40, 40);
            userInputImg(target, Pen3, Pen3, Pen3Title, returnImg, 40, 40);
            userInputImg(target, Pen4, Pen4, Pen4Title, returnImg, 40, 40);
            userInputImg(target, Pen5, Pen5, Pen5Title, returnImg, 40, 40);
            userInputImg(target, Pen6, Pen6, Pen6Title, returnImg, 40, 40);
            userInputImg(target, Pen7, Pen7, Pen7Title, returnImg, 40, 40);
            userInputImg(target, Pen8, Pen8, Pen8Title, returnImg, 40, 40);
            userInputImg(target, Pen9, Pen9, Pen9Title, returnImg, 40, 40);
            userInputImg(target, Pen10, Pen10, Pen10Title, returnImg, 40, 40);
            userInputImg(target, Pen11, Pen11, Pen11Title, returnImg, 40, 40);
            userInputImg(target, Pen12, Pen12, Pen12Title, returnImg, 40, 40);
            userInputImg(target, Pen13, Pen13, Pen13Title, returnImg, 40, 40);
            userInputImg(target, Pen14, Pen14, Pen14Title, returnImg, 40, 40);
            userInputImg(target, Pen15, Pen15, Pen15Title, returnImg, 80, 40);
            userInputImg(target, Pen16, Pen16, Pen16Title, returnImg, 40, 40);
            userInputImg(target, Pen17, Pen17, Pen17Title, returnImg, 40, 40);
            userInputImg(target, Pen18, Pen18, Pen18Title, returnImg, 40, 40);
            
            userInputImg(target, KFSmileURL,KFSmileCode, KFSmileTitle, returnPlainText, 30, 30);
      //      userInputImg(target, Zha2, Zha2, Zha2Title, returnImg, 92, 42);
        //    userInputImg(target, Zha3, Zha3, Zha3Title, returnImg, 357, 200);
          //  userInputImg(target, Zha1, Zha1, Zha1Title, returnImg, 257, 144);
           // userInputImg(target, Zha4, Zha4, Zha4Title, returnImg, 155, 145);
            
            break;
        case 3:   // 2: 颜文字
            userInputPlainText(target,emotionArray, emotionArray, returnPlainText);
            break;
        case 4: // Lovelive大法好Small
            userInputImg(target, LoveliveSmalltargetURL, LoveliveSmalltargetURL, LoveliveSmalltargetTitle, returnImg, 90, 90);
            break;
        case 5: // Lovelive大法好Big
            userInputImg(target, LoveliveSmalltargetURL, LoveliveBigtargetURL, LoveliveBigtargetTitle, returnImg, 90, 90);
            break;
        case 2:
            newElementEx = document.createElement('p');
            newElementEx.innerHTML = "<b>快速输入出售帖, 神秘限制贴, 引用等等</b><br />";
            target.appendChild(newElementEx);
            userInputPlainText(target,  functionEmotion, functionDescription,returnPlainText);
            break;
        case 6:
//            userInputImg(target, ACSmile3, ACSmile3, ACSmile3Title, returnImg, 60, 60);
            userInputImg(target, ACSmile4, ACSmile4, ACSmile4Title, returnImg, 60, 60);
            userInputImg(target, ACSmile5, ACSmile5, ACSmile5Title, returnImg, 60, 60);
            break;
        case 7:
            userInputImg(target, ACSmile2, ACSmile2, ACSmile2Title, returnImg, 50, 50);
            userInputImg(target, ACSmile1, ACSmile1, ACSmile1Title, returnImg, 50, 50);
            userInputImg(target, AkariSmile1, AkariSmile1, AkariSmile1Title, returnImg, 50, 50);
            break;
        case 11:
      //      userInputImg(target, BaiduSmile1, BaiduSmile1, BaiduSmile1Title, returnImg, 30, 30);
        //    userInputImg(target, BaiduSmile2, BaiduSmile2, BaiduSmile1Title, returnImg, 30, 30);
          //  userInputImg(target, BaiduSmile3, BaiduSmile3, BaiduSmile1Title, returnImg, 30, 30);
            //userInputImg(target, BaiduSmile4, BaiduSmile4, BaiduSmile1Title, returnImg, 30, 30);
            userInputImg(target, w6, w6, '', returnImg, 100, 100);
            userInputImg(target, w7, w7, '', returnImg, 100, 100);
            break;
        case 9:
            userInputImg(target, AsahiURL, AsahiURL, AsahiURLTitle, returnImg, 80, 80);
            userInputImg(target, RisonaURL, RisonaURL, RisonaURLTitle, returnImg, 80, 80); 
            userInputImg(target, RunaURL, RunaURL, RunaURLTitle, returnImg, 80, 80); 
            userInputImg(target, w8, w8, '', returnImg, 100, 100);

     // 这个函数直接用就好了, 第1个参数不变, 第二第三个参数是地址的数组名, 第四个是Title的数组名, 后面3个是方法, 大小
            break;
        case 12:
            userInputImg(target, w10, w10, '', returnImg, 100, 100);
            userInputImg(target, w11, w11, '', returnImg, 100, 100);
            userInputImg(target, w12, w12, '', returnImg, 100, 100);
            userInputImg(target, w13, w13, '', returnImg, 100, 100);
            userInputImg(target, w14, w14, '', returnImg, 100, 100);
            userInputImg(target, w15, w15, '', returnImg, 100, 100);
            userInputImg(target, w16, w16, '', returnImg, 100, 100);
            
            break;
        case 8:
            
         //   userInputImg(target, mc2URL, mc2URL, '', returnImg, 50, 50);
          //  userInputImg(target, mc3URL, mc3URL, '', returnImg, 50, 50);
          //  userInputImg(target, mc4URL, mc4URL, '', returnImg, 50, 50);
            userInputImg(target, w4, w4, '', returnImg, 100, 100);
            userInputImg(target, w5, w5, '', returnImg, 100, 100);
            
            
            break;
            
            case 10:
            userInputImg(target, ACSmile6, ACSmile6, '', returnImg, 80, 100);
            break;
        case 13:
            userInputImg(target, w17, w17, '', returnImg, 100, 100);
            userInputImg(target, w18, w18, '', returnImg, 100, 100);
            break;
            
   // case: 编号     
/*
         case xx:
            在这里添加 
            break;
*/            
//    
        default:
            emptyContainer.innerHTML = '<b style="color:orange">空白表情容器</b>';
            return;
    }
    
}
/* 自定义内容到此结束 */
/*------------------------------------*/


/*------------------------------------*/
var totalNum = ItemTitleArray.length; // 功能栏数量

var textareas, textarea;

var emptyContainer;

var startPos, endPos; // 当前光标位置定位

textareas = document.getElementsByTagName('textarea');
if (!textareas.length) { return; }



// 用户操作函数
function userInputPlainText(target, textBox,titleBox, func){
   var textlength = textBox.length;
    for (var j=0;j<textlength; j++){
        var newElementEx = document.createElement('a'); 
        var imgaa = document.createElement('img');
        imgaa.style.margin = "4px";
        newElementEx.onclick = func;
        newElementEx._target = textarea;
        newElementEx.style.cursor = 'pointer';
        imgaa.alt = titleBox[j];
        imgaa.useMap = textBox[j];
        target.appendChild(newElementEx);
        newElementEx.appendChild(imgaa);
   }
   target.parentNode.insertAfter(document.createElement('br'));
}

function userInputImg(target,thumbURL, targetURL, targetTitle, func, ImgWidth, ImgHeight){
    var emotionlength = targetURL.length;
    for (var i = 0; i<emotionlength; i++)
    {
        target.appendChild(
                    createButton(
                        textarea,     //对象
                        func,   //方法
                        targetTitle[i],   //提示文字
                        ImgWidth, // 缩略图宽
                        ImgHeight, //缩略图高
                        targetURL[i],thumbURL[i])); // 贴图地址和缩略图地址
    }

}


// 返回纯文本

function insertText(selector, text) {
    var target = document.querySelector(selector);
    var startPos = target.selectionStart;
    //var endPos = target.selectionEnd;
    var value = target.value;
    target.value = value.slice(0, startPos) + text + value.slice(startPos);
}


function returnPlainText(event) {
    var link, textarea, s, selectedTarget;
    link = event.currentTarget;
    textarea = link._target;
    selectedTarget = event.target;
    insertText("textarea", selectedTarget.useMap);
    // 定位光标
//    alert(startPos);
//    if(typeof textarea.selectionStart === 'number' && typeof textarea.selectionEnd === 'number'){
//        textarea.value = textarea.value.substring(0,startPos) + selectedTarget.innerHTML + textarea.value.substring(endPos, textarea.value.length);
//    }else{
//        textarea.value +=selectedTarget.useMap;
//    }
    event.preventDefault();
}

// 返回Wincode代码
function returnImg(event) {
    var link, textarea, s, selectedTarget;
    link = event.currentTarget;
    textarea = link._target;
    selectedTarget = event.target;
//    textarea.value += '[img]'+selectedTarget.useMap+'[/img]';
    var inserttext = '[img]'+selectedTarget.useMap+'[/img]';
    insertText("textarea", inserttext);
    event.preventDefault();
}

// ImgButton
function createButton(target, func, title, width, height, src, smallsrc) {
    // target: 控制对象
    // func:     方法
    // title:   提示文字
    // width,height  外观
    // src:  路径
    var img, button;
    img = document.createElement('img');
    img.width = width;
    img.height = height;
    img.style.borderTop = img.style.borderLeft = "1px solid #ccc";
    img.style.borderRight = img.style.borderBottom = "1px solid #888";
    img.style.marginRight = "2px";
    img.src = smallsrc;
    img.useMap = src;
    button = document.createElement('a');
    button._target = target;
    button.title = title;
    button.href = '#';
    button.onclick = func;
    button.style.cursor="pointer";
    button.appendChild(img);
    button.style.borderBottom = '1px solid';
    return button;       
}



// 清空容器用函数
function closeHandler(event){
    var deletTarget = document.getElementById('emotioncontainer9999');
    deletTarget.parentNode.removeChild(deletTarget);
    emptyContainer = document.createElement('div');
    emptyContainer.id = 'emotioncontainer9999';
    textarea.parentNode.insertBefore(emptyContainer, textarea);
}

//展开动作
function extendHandler(event){
    var newElement2,link,selectedTarget;
    
    /*清空当前容器*/
    closeHandler();
    
    newElement2 = document.createElement('div');
    newElement2.style.border = '1px solid #9999FF';
    //newElement2.innerHTML = '&nbsp;&nbsp;';
    newElement2.style.background = '#FCFCFC';
    newElement2.style.paddingLeft = '4px';
    newElement2.style.height = '120px';
    newElement2.style.width = textarea.style.width;
    newElement2.style.overflow = 'auto';
    emptyContainer.appendChild(newElement2);
    
    
    /*表情载入*/
    selectedTarget = event.target;
    var loadIndex = selectedTarget.id - '100100';
    //    alert(loadIndex);
    loadingHandler(loadIndex,newElement2);
    
    event.preventDefault();
}

//生成栏目
function createMenuItem(target,func,title, loadTitle){
    var newElement;
    newElement = document.createElement('a');
    newElement.style.height = '20px';
    newElement.style.width = '100px';
    newElement.innerHTML = '  [' +title+ ']'+'&nbsp;';
    newElement.onclick = func;
    newElement.style.cursor = 'pointer';
    newElement.id = loadTitle;
    target.appendChild(newElement);    
}
// 生成项目
function createMenuElement(target, listNumber){
    var newElement;
    newElement = document.createElement('div');
    newElement.style.border = '1px solid #9999FF';
    
    newElement.align = 'left';
    newElement.style.paddingLeft = '4px';
    newElement.innerHTML = ' <b style="color:gold">⑨_⑨ </b> ';
    newElement.style.background = '#FCFCFC';
    newElement.style.height = '22px';
    newElement.style.width = textarea.style.width;
    target.parentNode.insertBefore(newElement, target);
    
    for (var i = 0; i < listNumber; i++) {
        createMenuItem(newElement,extendHandler,ItemTitleArray[i],loadTitleArray[i]);
    }
   

    
    
    var additionalInfo = document.createElement('a');
    additionalInfo.innerHTML = ' <b style="color:gold"> [隐藏] </b> ';
    additionalInfo.onclick = closeHandler;
    additionalInfo.style.cursor = 'pointer';
    newElement.appendChild(additionalInfo);
    
    var additionalInfo2 = document.createElement('b');
    additionalInfo2.innerHTML = ' <a style="color:pink;text-align:right;" href="http://blog.nekohand.moe/" target="_blank"> eddie32 </a> ';
    newElement.appendChild(additionalInfo2);
    
    
   
}



//主函数
for (var i = 0; i < textareas.length; i++) {
    textarea = textareas[i];
    emptyContainer = document.createElement('div');
    emptyContainer.id = 'emotioncontainer9999';
    createMenuElement(textarea, totalNum);
    textarea.parentNode.insertBefore(emptyContainer, textarea);
    
}