Greasy Fork

绯月表情增强插件

绯月论坛专用的扩展插件, 在发帖时快速输入自定义表情和论坛BBCODE, 也可以应用于其他BBCODE论坛

目前为 2014-12-25 提交的版本。查看 最新版本

// ==UserScript==
// @name       绯月表情增强插件
// @namespace  http://blog.nekohand.moe
// @namespace  https://greasyfork.org/zh-CN/scripts/4777-%E8%87%AA%E5%AE%9A%E4%B9%89%E5%8F%B3%E9%94%AE%E5%BC%BA%E5%8A%9B%E8%A7%A3%E9%94%81
// @version    2.21 正式版
// @description  绯月论坛专用的扩展插件, 在发帖时快速输入自定义表情和论坛BBCODE, 也可以应用于其他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, eddie32
// ==/UserScript==

/* 自定义内容*/

// 功能栏标题

var ItemTitleArray = new Array('kf','水','Lovelive','Gal+萝莉','东方+表情','Acfun+阿卡林','百度');
var subItemInfo = new Array('233','4','2','4','4','3','4','8');
// 子标题 kf
var SubItem1 = new Array('默认','稀有','横幅','小横');
var loadTitleArray1 = new Array('100101','100104','100102','100103');
var SubItem2 = new Array('快速输入','颜文字');
var loadTitleArray2 = new Array('100105','100106');
var SubItem3 = new Array('小图1','小图2','大图1','大图2');
var loadTitleArray3 = new Array('100107','100108','100109','100110');
var SubItem4 = new Array('Gal1','Gal2','Gal3','萝莉');
var loadTitleArray4 = new Array('100111','100112','100113','100114');
var SubItem5 = new Array('表情1','表情2','东方','04');
var loadTitleArray5 = new Array('100115','100116','100117','100118');
var SubItem6 = new Array('AC匿名','AC视频','阿卡林1','阿卡林2');
var loadTitleArray6 = new Array('100119','100120','100121','100122');
var SubItem7 = new Array('阿狸','默认','兔斯基','波波熊','暴走漫画','洋葱头','绿豆蛙','多玩熊熊');
var loadTitleArray7 = new Array('100123','100124','100125','100126','100127','100128','100129','100130');

// 链接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/1419452114/post/smile/em/em' +
        ((j)>=9?(j+1):('0'+(j+1))) + '.gif';
    KFSmileTitle[j] = '';
    KFSmileCode[j] = '[s:'+(j+10)+']';
}

//附加gif:
var KFSmile2 = [];
var KFSmile2Title = [];
for(var j = 0; j < 25; j++) {
    KFSmile2[j] = 'http://smile.nekohand.moe/blogAcc/LoveliveEmotion01/EmCol/penseris/penseries' +
        (j+1) + '.gif';
    KFSmile2Title[j] = '';
}

var KFSmile3 = [];
var KFSmile3Title = [];
for(var j = 0; j < 54; j++) {
    KFSmile3[j] = 'http://smile.nekohand.moe/blogAcc/LoveliveEmotion01/EmCol/penseris/bannerpenseries' +
        (j+1) + '.gif';
    KFSmile3Title[j] = '';
}

// 2: 颜文字
var emotionArray = Array("(●・ 8 ・●)", "╰(๑◕ ▽ ◕๑)╯", "(﹡ˆˆ﹡)","〜♪♪",
                         "|∀゚", "(´゚Д゚`)", "(;´Д`)", "(`・ω・)", "(=゚ω゚)=", "| ω・´)", "|-` )"
                         , "|д` )", "|ー` )", "|∀` )", "(つд⊂)", "(゚Д゚≡゚Д゚)", "(^o^)ノ"
                         , "(|||゚Д゚)", "( ゚∀゚)", "( ´∀`)", "(*´∀`)", "(*゚∇゚)", "(*゚ー゚)"
                         , "( ゚ 3゚)", "( ´ー`)", "( ・_ゝ・)", "( ´_ゝ`)", "(*´д`)", "(・ー・)"
                         , "(・∀・)", "(ゝ∀・)", "(〃∀〃)", "(*゚∀゚*)", "( ゚∀。)", "( `д´)"
                         , "(`ε´ )", "(`ヮ´ )", "σ`∀´)", " ゚∀゚)σ", "゚ ∀゚)ノ", "(╬゚д゚)"
                         , "(|||゚д゚)", "( ゚д゚)", "Σ( ゚д゚)", "( ;゚д゚)", "( ;´д`)"
                         , "( д ) ゚ ゚", "( ☉д⊙)", "((( ゚д゚)))", "( ` ・´)", "( ´д`)"
                         , "( -д-)", "(>д<)", "・゚( ノд`゚)", "( TдT)", "( ̄∇ ̄)"
                         , "( ̄3 ̄)", "( ̄ー ̄)", "( ̄ .  ̄)", "( ̄皿 ̄)", "( ̄艸 ̄)"
                         , "( ̄︿ ̄)", "( ̄︶ ̄)", "ヾ(´ω゚`)", "(*´ω`*)", "(・ω・)"
                         , "( ´・ω)", "(`・ω)", "(´・ω・`)", "(`・ω・´)", "( `_っ´)"
                         , "( `ー´)", "( ´_っ`)", "( ´ρ`)", "( ゚ω゚)", "(o゚ω゚o)"
                         , "( ^ω^)", "(。◕∀◕。)", "/( ◕‿‿◕ )\\", "ヾ(´ε`ヾ)"
                         , "(ノ゚∀゚)ノ", "(σ゚д゚)σ", "(σ゚∀゚)σ", "|д゚ )", "┃電柱┃",
                         "゚(つд`゚)", "゚Å゚ ) ", "⊂彡☆))д`)", "⊂彡☆))д´)", "⊂彡☆))∀`)", "(´∀((☆ミつ",
                         "( ◜◒◝ )","(●´3`)~♪", "_(:з」∠)_","хорошо!","\(^o^)/","(•̅灬•̅ )", "(゚Д゚)","(ノ=Д=)ノ┻━┻");
// 3. lovelive专用小
var LoveliveSmalltargetURL = [];
var LoveliveSmalltargetTitle = [];
var LoveliveSmalltargetURL1 = [];
var LoveliveSmalltargetTitle1 = [];
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++) {
    LoveliveSmalltargetURL1[j] = 'http://smile.nekohand.moe/blogAcc/LoveliveEmotion01/Small/Lovelive' +
        (j+1) + '.png';
     LoveliveSmalltargetTitle1[j] = j+1;
}

// 4. lovelive专用大
var LoveliveBigtargetURL = [];
var LoveliveBigtargetTitle = [];
var LoveliveBigtargetURL1 = [];
var LoveliveBigtargetTitle1 = [];
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++) {
    LoveliveBigtargetURL1[j] = 'http://smile.nekohand.moe/blogAcc/LoveliveEmotion01/Big/Lovelive' +
        (j+1) + '.png';
    LoveliveBigtargetTitle1[j] = 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]","[img]http://publicupload.eclosionstudio.com/56_341710_110afb829198eaf.jpg[/img]","[img]http://publicupload.eclosionstudio.com/1796614_572067926272860_762025560394715210_n.jpg[/img]","[img]http://publicupload.eclosionstudio.com/1269366_467287710078284_8160611782170038686_o.jpg[/img]","[img]http://publicupload.eclosionstudio.com/Bachibuzhu.jpg[/img]",
                             "[img]http://static.mengniang.org/common/thumb/6/6e/27164560.jpg/703px-27164560.jpg[/img]",
                            "[img]http://static.mengniang.org/common/thumb/9/9d/SumiSora_Hyouka_bingguo.jpg/250px-SumiSora_Hyouka_bingguo.jpg[/img]",
                           "[IMG]http://tuchuang.eclosionstudio.com/di/8IP3/8IP3.jpg[/IMG]",
                           "[img]http://i.picpar.com/LGjb.jpg[/img]");
var functionDescription = Array("出售贴sell=售价","引用", "隐藏hide=神秘等级","插入代码","删除线","跑马灯","文字颜色","粗体","下划线","斜体","水平线","背景色",
                                "插入图片","阿卡林","绘理怒","生日快乐","把持不住","我很好奇1","我很好奇2","星星眼","好好撸管");

// 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://smile.nekohand.moe/blogAcc/LoveliveEmotion01/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 mcURL = [];
var mcURLTitle = [];
for(var j = 0; j < 9; j++) {
   mcURL[j] = 'http://www.mikocon.com/static/image/smiley/Miko/' +
        (j+1) + '.png';   // 缩略图和实际图像地址用一个就行。
   mcURLTitle[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 = [];




function loadingHandler(loadindex, target){

    switch (loadindex) {
        case 1: // 1:苍雪自带
            userInputImg(target, KFSmileURL,KFSmileCode, KFSmileTitle, returnPlainText, 30, 30);
            break;
        case 2:
            userInputImg(target, KFSmile2, KFSmile2, KFSmile2Title, returnImg, 80, 30);
            break;
        case 3:
            userInputImg(target, KFSmile3, KFSmile3, KFSmile3Title, returnImg, 120, 20);
            break;
        case 4:
            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);
            break;
        case 6:   // 2: 颜文字
           userInputPlainText(target,emotionArray, emotionArray, returnPlainText);
            break;
        case 7: // Lovelive大法好Small
            userInputImg(target, LoveliveSmalltargetURL, LoveliveSmalltargetURL, LoveliveSmalltargetTitle, returnImg, 70, 70);
            break;
        case 9: // Lovelive大法好Big
            userInputImg(target, LoveliveSmalltargetURL, LoveliveBigtargetURL, LoveliveBigtargetTitle, returnImg, 70, 70);
            break;
        case 8: // Lovelive大法好Small
            userInputImg(target, LoveliveSmalltargetURL1, LoveliveSmalltargetURL1, LoveliveSmalltargetTitle1, returnImg, 70, 70);
            break;
        case 10: // Lovelive大法好Big
            userInputImg(target, LoveliveSmalltargetURL1, LoveliveBigtargetURL1, LoveliveBigtargetTitle1, returnImg, 70, 70);
            break;
        case 5:
            newElementEx = document.createElement('p');
            newElementEx.innerHTML = "<b>快速输入出售帖, 神秘限制贴, 引用等等</b><br />";
            target.appendChild(newElementEx);
            userInputPlainText(target,  functionEmotion, functionDescription,returnPlainText);
            break;
        case 19:
//            userInputImg(target, ACSmile3, ACSmile3, ACSmile3Title, returnImg, 60, 60);
            userInputImg(target, ACSmile4, ACSmile4, ACSmile4Title, returnImg, 60, 60);
            break;
        case 20:
            userInputImg(target, ACSmile5, ACSmile5, ACSmile5Title, returnImg, 60, 60);
            break;
        case 21:
            userInputImg(target, ACSmile2, ACSmile2, ACSmile2Title, returnImg, 50, 50);
            
            userInputImg(target, AkariSmile1, AkariSmile1, AkariSmile1Title, returnImg, 50, 50);
            break;
        case 22:
            userInputImg(target, ACSmile1, ACSmile1, ACSmile1Title, returnImg, 50, 50);
            break;
        case 23:
            userInputImg(target, mc2URL, mc2URL, '', returnImg, 50, 50);
            break;
        case 24:
            userInputImg(target, BaiduSmile1, BaiduSmile1, BaiduSmile1Title, returnImg, 30, 30);
            break;
        case 25:
            userInputImg(target, BaiduSmile2, BaiduSmile2, BaiduSmile1Title, returnImg, 30, 30);
            break;
        case 26:
            userInputImg(target, BaiduSmile3, BaiduSmile3, BaiduSmile1Title, returnImg, 30, 30);
            break;
        case 27:
            userInputImg(target, BaiduSmile4, BaiduSmile4, BaiduSmile1Title, returnImg, 30, 30);
            break;
        case 11:
            userInputImg(target, AsahiURL, AsahiURL, AsahiURLTitle, returnImg, 80, 80);
            break;
        case 12:
            userInputImg(target, RisonaURL, RisonaURL, RisonaURLTitle, returnImg, 80, 80);
            break;
        case 13:
            userInputImg(target, RunaURL, RunaURL, RunaURLTitle, returnImg, 80, 80); 
            break;
        case 28:
            userInputImg(target, duowanSmile, duowanSmile, '', returnImg, 30, 30);
            break;
        case 29:
            userInputImg(target, BaiduSmile5, BaiduSmile5, '', returnImg, 30, 30);
            break;
        case 30:
            userInputImg(target, BaiduSmile6, BaiduSmile6, '', returnImg, 30, 30);
            break;
        case 14:
     

            userInputImg(target, mc3URL, mc3URL, '', returnImg, 50, 50);
            userInputImg(target, mc4URL, mc4URL, '', returnImg, 50, 50);
            
            userInputImg(target, Zha2, Zha2, Zha2Title, returnImg, 92, 42);
            userInputImg(target, Zha3, Zha3, Zha3Title, returnImg, 90, 50);
            userInputImg(target, Zha1, Zha1, Zha1Title, returnImg, 127, 72);
            userInputImg(target, Zha4, Zha4, Zha4Title, returnImg, 77, 72);
            break;
        case 15:
            userInputImg(target, w4, w4, '', returnImg, 80, 80);
            break;
        case 16:
            userInputImg(target, w5, w5, '', returnImg, 80, 80);
            break;
        case 17:
            userInputImg(target, ACSmile6, ACSmile6, '', returnImg, 60, 60);
            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 closeHandler2(event){
    var deletTarget = document.getElementById('emotioncontainer9999');
    deletTarget.parentNode.removeChild(deletTarget);
    emptyContainer = document.createElement('div');
    emptyContainer.id = 'emotioncontainer9999';
    textarea.parentNode.insertBefore(emptyContainer, textarea);
    var deletTarget = document.getElementById('emotion99');
    deletTarget.parentNode.removeChild(deletTarget);
}



//展开动作
function extendHandler(event){
    closeHandler();
    var newElement2,link,selectedTarget;
    selectedTarget = event.target;
    var loadIndex = selectedTarget.id - '100100';
    var subItemNumber = subItemInfo[loadIndex];
    subElement = document.createElement('div');
    subElement.id='EM00';
    subElement.style.float = 'left';
    subElement.style.backgroundImage="url('http://milky-holmes.com/favicon.ico')";
    subElement.style.backgroundSize="80px 120px";
    subElement.innerHTML = '测试中...<br />';
    subElement.style.border = '1px solid #9999FF';
    subElement.style.height = '120px';
    subElement.style.width = '80px';
    subElement.style.overflow = 'auto';
    switch (loadIndex) {
        case 1:
            for (var i = 0; i < subItemNumber; i++) {
                createMenuItem(subElement,extendHandler2,SubItem1[i],loadTitleArray1[i],'<br />');
            }
            break;
        case 2:
            for (var i = 0; i < subItemNumber; i++) {
                createMenuItem(subElement,extendHandler2,SubItem2[i],loadTitleArray2[i],'<br />');
            }
            break;
        case 3:
            for (var i = 0; i < subItemNumber; i++) {
                createMenuItem(subElement,extendHandler2,SubItem3[i],loadTitleArray3[i],'<br />');
            }
            break;
       case 4:
            for (var i = 0; i < subItemNumber; i++) {
                createMenuItem(subElement,extendHandler2,SubItem4[i],loadTitleArray4[i],'<br />');
            }
            break; 
       case 5:
            for (var i = 0; i < subItemNumber; i++) {
                createMenuItem(subElement,extendHandler2,SubItem5[i],loadTitleArray5[i],'<br />');
            }
            break;       
              case 6:
            for (var i = 0; i < subItemNumber; i++) {
                createMenuItem(subElement,extendHandler2,SubItem6[i],loadTitleArray6[i],'<br />');
            }
            break; 
                   case 7:
            for (var i = 0; i < subItemNumber; i++) {
                createMenuItem(subElement,extendHandler2,SubItem7[i],loadTitleArray7[i],'<br />');
            }
            break; 
        default:
            emptyContainer.innerHTML = '<b style="color:orange">空白表情容器</b>';
            return;   
    }
    
    newElement2 = document.createElement('div');
    newElement2.id='emotion99';
    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.width = '562px';
    newElement2.style.overflow = 'auto';
    newElement2.style.float = 'left';
    emptyContainer.appendChild(subElement);
    emptyContainer.appendChild(newElement2);
         

}

function extendHandler2(event){
    /*清空当前容器*/
//    closeHandler();
    //emptyContainer.innerHTML = '<b style="color:orange">空白表情容器</b>';
    var refreshTarget = document.getElementById('emotion99');
    refreshTarget.innerHTML = '';
//    refreshTarget.parentNode.removeChild(refreshTarget);
//    refreshTarget = document.createElement('div');
//    textarea.parentNode.insertBefore(refreshTarget, textarea);
//    refreshTarget.id = 'emotion99';
    refreshTarget.style.border = '1px solid #9999FF';
    refreshTarget.style.background = 'cyan';
    refreshTarget.style.background = '#FCFCFC';
    refreshTarget.style.paddingLeft = '4px';
    refreshTarget.style.height = '120px';
 //   newElement2.style.width = textarea.style.width;
    refreshTarget.style.width = '580px';
    refreshTarget.style.overflow = 'auto';
    refreshTarget.style.float = 'left';
     /*表情载入*/
    selectedTarget = event.target;
    var loadIndex = selectedTarget.id - '100100';
    //    alert(loadIndex);
    loadingHandler(loadIndex,refreshTarget);
    event.preventDefault();
}

//生成栏目
function createMenuItem(target,func,title, loadTitle, chare){
    var newElement;
    newElement = document.createElement('a');
    newElement.style.height = '20px';
    newElement.style.width = '100px';
    newElement.innerHTML = '  [' +title+ ']'+ chare;
    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],'&nbsp;');
    }
   

    
    
    var additionalInfo = document.createElement('a');
    additionalInfo.innerHTML = ' <b style="color:gold"> [隐藏] </b> ';
    additionalInfo.onclick = closeHandler2;
    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);
    
}