Greasy Fork

绯月表情增强插件

KF论坛、BBCODE论坛专用的回复表情, 插图扩展插件, 在发帖时快速输入自定义表情和论坛BBCODE

目前为 2015-07-04 提交的版本。查看 最新版本

// ==UserScript==
// @name       绯月表情增强插件
// @namespace  http://blog.nekohand.moe
// @version    2.81
// @description  KF论坛、BBCODE论坛专用的回复表情, 插图扩展插件, 在发帖时快速输入自定义表情和论坛BBCODE
// @icon        http://bas.nekohand.moe/favicon.gif
// @homepage    https://greasyfork.org/zh-CN/scripts/5124-%E7%BB%AF%E6%9C%88%E8%A1%A8%E6%83%85%E5%A2%9E%E5%BC%BA%E6%8F%92%E4%BB%B6
// @match       http://*.2dgal.com/read.php?*
// @match       http://*.2dgal.com/post.php?*
// @match       http://*.2dgal.com/message.php?*
// @match       http://2dgal.com/read.php?*
// @match       http://2dgal.com/post.php?*
// @match       http://2dgal.com/message.php?*
// @match       http://2dgal.com/*
// @match       http://*.2dgal.com/*
// @match       http://*.9baka.com/*
// @match       http://*.9gal.com/*
// @match       http://9baka.com/*
// @match       http://9gal.com/*
// @match       http://www.mmy.moe/*
// @match       http://www.mddmm.com/*
// @copyright  2014-2015, eddie32
// @grant       none
// @license     MIT
// @run-at      document-end
// ==/UserScript==

/* 自定义内容*/

// 功能栏标题

var ItemTitleArray = new Array('0.kf',
                               '1.常用',
                               '2.颜',
                               '3.LL小',
                               '4.LL大',
                               '5.AC娘',
                               '6.百合',
                               '7.外',
                               '8.东方',
                               '9.Gal1',
                               '10.Gal2',
                               '11.百度扩展',
                               '12.其他ACG',
                               '13.猫咪',
                               '14.萝莉',
                               '15.北方酱');
// 链接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,
                              100110,
                              100111,
                              100112,
                              100113,
                              100114,
                              100115,
                              100116);
                              
//不显示的元素位置
var itemDoNotShow =[];
var user=getCookie("setup");
//alert(user);
var itemDoNotShow = new Array();
if (user != ""){
    // alert(user.split(','));
    itemDoNotShow = user.split(',');
   // alert(itemDoNotShow);
    if(itemDoNotShow.length>0){
        for(var j=0; j<itemDoNotShow.length;j++){
            ItemTitleArray[itemDoNotShow[j]] = undefined;
            loadTitleArray[itemDoNotShow[j]] = undefined;
        }
    }
}



var totalNum = ItemTitleArray.length; // 功能栏数量
var textareas, textarea;
var emptyContainer;
var startPos, endPos; // 当前光标位置定位


/************************** 内置表情 *******************/
// 1:自带
websithurl = window.location.href;
console.log(websithurl.indexOf('2dgal')+1);
if(!(websithurl.indexOf('2dgal')+1)){
    //console.log(websithurl.indexOf('mmy')+1);
    imgpath = '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 ̄)", "( ̄ー ̄)", "( ̄ .  ̄)"
                         , "( ̄︿ ̄)", "( ̄︶ ̄)", "(*´ω`*)", "(・ω・)"
                         , "(´・ω・`)", "(╯°□°)╯︵ ┻━┻","(╯‵□′)╯︵┻━┻", "( ´ρ`)", "( ゚ω゚)", "(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]",
                            "[img]http://data.nekohand.moe/StorageCenter/uploads/Pictures/blogAcc/smile.gif[/img]",
                            "[img]http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal/b6/doge_org.gif[/img]",
                            "[img]http://nekohand.moe/spsmile/03Sora/RlN8rQO_47.gif[/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://tb2.bdstatic.com/tb/editor/images/face/i_f' +
         ((j)>=9?(j+1):('0'+(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 < 70; j++) {
    BaiduSmile3[j] = 'http://tb2.bdstatic.com/tb/editor/images/ali/ali_0' +
        ((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 < 43; j++) {
    w6[j] = 'http://nekohand.moe/spsmile/01Sora/0xx' +
         (j+2) + '.png';
}


var w7 = [];

for(var j = 0; j < 47; 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 < 40; j++) {
   w18[j] = 'http://aruruu.net/ADDimages/atre/' +
        (j+1) + '.png';
}

// 偶像大师灰姑娘
var ww1 = [];

for(var j = 0; j < 40; j++) {
   ww1[j] = 'http://nekohand.moe/spsmile/05Sora/mjWwLqe_' +
        ((j)>=9?(j+1):('0'+(j+1))) + '.png';
}

// 叠加包
var ww2 = [];

for(var j = 0; j < 40; j++) {
   ww2[j] = 'http://nekohand.moe/spsmile/06Sora/special/p3p (' +
        (j+1) + ').png';
}

// 叠加包2
var ww3 = [];

for(var j = 0; j < 39; j++) {
   ww3[j] = 'http://nekohand.moe/spsmile/07/pg2 (' +
        (j+1) + ').png';
}
var ww4 = [];

for(var j = 0; j < 162; j++) {
   ww4[j] = 'http://nekohand.moe/spsmile/07/pg2 (' +
        (j+1) + ').gif';
}

var ww5 = [];

for(var j = 0; j < 10; j++) {
   ww5[j] = 'http://nekohand.moe/spsmile/07/Remilia (' +
        (j+1) + ').jpg';
}
// 罗小黑猫

var ww6 = [];

for(var j = 0; j < 93; j++) {
   ww6[j] = 'http://nekohand.moe/spsmile/07/luoxiaohei (' +
        (j+1) + ').gif';
}


// 萝莉们

var ww7 = [];

for(var j = 0; j < 26; j++) {
    ww7[j] = 'https://www.blog.nekohand.moe/emotion/(' +
          (j+1) + ').jpg';
}

// 北方酱

var ww8 = [];

for(var j = 0; j < 200; j++) {
    ww8[j] = 'https://www.blog.nekohand.moe/emotion/bei' +
      ((j)>=9?(j+1):('0'+(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);
            
            userInputPlainText(target,  functionEmotion, functionDescription,returnPlainText);
      //      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 2:
      //      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);
            userInputImg(target, ww1, ww1, '', returnImg, 100, 100);
            break;
        case 10:
            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 11:
             userInputImg(target, w17, w17, '', returnImg, 100, 100);
            userInputImg(target, w18, w18, '', returnImg, 100, 100);
            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 9:
            userInputImg(target, ACSmile6, ACSmile6, '', returnImg, 80, 100);
            break;
        case 12:
            userInputImg(target, BaiduSmile1, BaiduSmile1, '', returnImg, 30, 30);
            userInputImg(target, BaiduSmile3, BaiduSmile3, '', returnImg, 30, 30);
            userInputImg(target, ww2, ww2, '', returnImg, 50, 50);
           
            break;
            
       case 13:
            userInputImg(target, ww5, ww5, '', returnImg, 80, 80);
            userInputImg(target, ww3, ww3, '', returnImg, 80, 80);
            userInputImg(target, ww4, ww4, '', returnImg, 80, 80);
            break;
            
       case 14:
            userInputImg(target, ww6, ww6, '', returnImg, 80, 80);
            break;
            
       case 15:
            userInputImg(target, ww7, ww7, '', returnImg, 80, 80);
            break;
       case 16:
            userInputImg(target, ww8, ww8, '', returnImg, 80, 80);
            break;
            
            
   // case: 编号     
/*
         case xx:
            在这里添加 
            break;
*/            
//    
        default:
            emptyContainer.innerHTML = '<b style="color:orange">空白表情容器</b>';
            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 closeSetupHandler(event){
    var deletTarget = document.getElementById('setup');
    deletTarget.parentNode.removeChild(deletTarget);
}
function reSetupHandler(event){
    var deletTarget = document.getElementById('setup');
    deletTarget.parentNode.removeChild(deletTarget);
    user = prompt("请输入不想使用的表情组, 从0开始以逗号分隔, 如0,1,2,3, 可以留空表示全部显示","");
    setCookie("setup", user, 30);
    //alert(document.location.href);
   
}



//展开动作
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 = '200px';
    newElement2.style.width = textarea.style.width;
    newElement2.style.overflow = 'auto';
 //   newElement2.style.position = 'fixed';
   // newElement2.style.top = '0';
   // newElement2.style.left = '5px';
    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 = '40px';
    newElement.style.width = '100px';
    newElement.innerHTML = '  [' +title+ ']'+'&nbsp;';
    newElement.onclick = func;
    newElement.style.cursor = 'pointer';
    newElement.id = loadTitle;
    if(title!==undefined){
    target.appendChild(newElement);
    }
}
function setupHandler(){
            /*------------------------------------*/
    var user=getCookie("setup");
    if (document.getElementById('setup')){return;}
    if (user != "") {
    newElement = document.createElement('div');
    newElement.id = 'setup';
    newElement.style.left = '43%';
    newElement.style.bottom = '100px';
    newElement.style.width = '400px';
    newElement.style.height = '50px';
    newElement.style.border = '3px solid deeppink';
    newElement.style.padding = '5px 5px';
   
    newElement.style.background = '#eee';
    newElement.innerHTML = ' ';
    document.body.appendChild(newElement);
    document.getElementById('setup').style.position = 'fixed';
    /*
    var submitform = document.createElement('fieldset');
    submitform.id = 'formsetup';
    submitform.style.margin = "10px 10px";
    submitform.innerHTML =' <legend>勾选启用的表情组</legend>';
    document.getElementById('setup').appendChild(submitform);
    for(j=0;j<ItemTitleArray.length;j++)
    {
        var checkBoxItem = document.createElement('input');
        checkBoxItem.type = 'checkbox';
        checkBoxItem.name = ItemTitleArray[j];
        checkBoxItem.value = loadTitleArray[j];
        document.getElementById('formsetup').appendChild(checkBoxItem);
        var descriptionWord = document.createElement('b');
        descriptionWord.innerHTML = ItemTitleArray[j]+'  ';
        document.getElementById('formsetup').appendChild(descriptionWord);
    }*/
    var cookienow = document.createElement('b');
    cookienow.innerHTML = user + '<br>';    
    document.getElementById('setup').appendChild(cookienow);
    var additionalInfo = document.createElement('button');
    additionalInfo.type = 'submit';
    additionalInfo.name = 'setup';
    additionalInfo.innerHTML = ' 保存并关闭 ';
    additionalInfo.onclick = closeSetupHandler;
    additionalInfo.style.cursor = 'pointer';
    document.getElementById('setup').appendChild(additionalInfo);
        
    var additionalInfo2 = document.createElement('button');
    additionalInfo2.type = 'submit';
    additionalInfo2.name = 'setup';
    additionalInfo2.innerHTML = ' 重新设定 ';
    additionalInfo2.onclick = reSetupHandler;
    additionalInfo2.style.cursor = 'pointer';
    document.getElementById('setup').appendChild(additionalInfo2);
/*    
     var additionalInfo = document.createElement('button');
    additionalInfo.type = 'submit';
    additionalInfo.name = 'setup';
    additionalInfo.value = ' 确定 ';
    additionalInfo.onclick = closeSetupHandler;
    additionalInfo.style.cursor = 'pointer';
    document.getElementById('formsetup').appendChild(additionalInfo);
    
     var additionalInfo = document.createElement('button');
    additionalInfo.type = 'submit';
    additionalInfo.name = 'setup';
    additionalInfo.value = ' 默认值 ';
    additionalInfo.onclick = closeSetupHandler;
    additionalInfo.style.cursor = 'pointer';
    document.getElementById('formsetup').appendChild(additionalInfo);
    */
        //alert("Welcome again " + user);
    } else {
       user = prompt("请输入不想使用的表情组, 从0开始以逗号分隔, 如0,1,2,3, 可以留空表示全部显示","");
       if (user != "" && user != null) {
           setCookie("setup", user, 30);
       }
    }
    
}
// 生成项目
function createMenuElement(target, listNumber){
    var newElement;
    newElement = document.createElement('div');
    newElement.style.border = '1px solid #9999FF';
    newElement.id='itemlist';
    newElement.align = 'left';
    newElement.style.paddingLeft = '4px';
    newElement.innerHTML = ' <b style="color:gold">⑨_⑨ </b> ';
    newElement.style.background = '#FCFCFC';
    newElement.style.height = '44px';
    newElement.style.width = '100%' ;
    //document.getElementById('itemlist').style.position = 'relative';
    target.parentNode.insertBefore(newElement, target);
    
    for (var i = 0; i < listNumber; i++) {
        createMenuItem(newElement,extendHandler,ItemTitleArray[i],loadTitleArray[i]);
    }
    
     var brElement = document.createElement('br');

    
    
    var additionalInfo = document.createElement('a');
    additionalInfo.innerHTML = ' <b style="color:red"> [隐藏] </b> ';
    additionalInfo.onclick = closeHandler;
    additionalInfo.style.cursor = 'pointer';
    newElement.appendChild(additionalInfo);
    //newElement.appendChild(brElement);
    var additionalInfo3 = document.createElement('a');
    additionalInfo3.innerHTML = '<b style="color:deeppink;z-index:1001;"> [禁用表情] </b>';
    additionalInfo3.onclick = setupHandler;
    additionalInfo3.style.cursor = 'pointer';
    newElement.appendChild(additionalInfo3);
    
//    var additionalInfo2 = document.createElement('b');
//    additionalInfo2.innerHTML = ' <a style="color:deeppink;text-align:right;" href="http://blog.nekohand.moe/" target="_blank"> eddie32 </a> ';
//    newElement.appendChild(additionalInfo2);
   
   
}

// 设置cookie
function setCookie(cname, cvalue, exdays) {
    var d = new Date();
    d.setTime(d.getTime() + (exdays*24*60*60*1000));
    var expires = "expires="+d.toUTCString();
    document.cookie = cname + "=" + cvalue + "; " + expires;
     history.go(0);
}
function getCookie(cname) {
    var name = cname + "=";
    var ca = document.cookie.split(';');
    for(var i=0; i<ca.length; i++) {
        var c = ca[i];
        while (c.charAt(0)==' ') c = c.substring(1);
        if (c.indexOf(name) == 0) return c.substring(name.length,c.length);
    }
    return "";
}






var KFOL = {
    init: function(){

textareas = document.getElementsByTagName('textarea');
if (!textareas.length) { return; }
        textarea = textareas[0];
        emptyContainer = document.createElement('div');
        emptyContainer.id = 'emotioncontainer9999';
        createMenuElement(textarea, totalNum); 
        textarea.parentNode.insertBefore(emptyContainer, textarea);
    }
}
KFOL.init();