( function ( ) { var editor = null ; UM . registerWidget ( 'emotion' , { tpl : "<link type=\"text/css\" rel=\"stylesheet\" href=\"<%=emotion_url%>emotion.css\">" + "<div class=\"edui-emotion-tab-Jpanel edui-emotion-wrapper\">" + "<ul class=\"edui-emotion-Jtabnav edui-tab-nav\">" + "<li class=\"edui-tab-item\"><a data-context=\".edui-emotion-Jtab0\" hideFocus=\"true\" class=\"edui-tab-text\"><%=lang_input_choice%></a></li>" + "<li class=\"edui-tab-item\"><a data-context=\".edui-emotion-Jtab1\" class=\"edui-tab-text\"><%=lang_input_Tuzki%></a></li>" + "<li class=\"edui-tab-item\"><a data-context=\".edui-emotion-Jtab2\" hideFocus=\"true\" class=\"edui-tab-text\"><%=lang_input_lvdouwa%></a></li>" + "<li class=\"edui-tab-item\"><a data-context=\".edui-emotion-Jtab3\" hideFocus=\"true\" class=\"edui-tab-text\"><%=lang_input_BOBO%></a></li>" + "<li class=\"edui-tab-item\"><a data-context=\".edui-emotion-Jtab4\" hideFocus=\"true\" class=\"edui-tab-text\"><%=lang_input_babyCat%></a></li>" + "<li class=\"edui-tab-item\"><a data-context=\".edui-emotion-Jtab5\" hideFocus=\"true\" class=\"edui-tab-text\"><%=lang_input_bubble%></a></li>" + "<li class=\"edui-tab-item\"><a data-context=\".edui-emotion-Jtab6\" hideFocus=\"true\" class=\"edui-tab-text\"><%=lang_input_youa%></a></li>" + "<li class=\"edui-emotion-tabs\"></li>" + "</ul>" + "<div class=\"edui-tab-content edui-emotion-JtabBodys\">" + "<div class=\"edui-emotion-Jtab0 edui-tab-pane\"></div>" + "<div class=\"edui-emotion-Jtab1 edui-tab-pane\"></div>" + "<div class=\"edui-emotion-Jtab2 edui-tab-pane\"></div>" + "<div class=\"edui-emotion-Jtab3 edui-tab-pane\"></div>" + "<div class=\"edui-emotion-Jtab4 edui-tab-pane\"></div>" + "<div class=\"edui-emotion-Jtab5 edui-tab-pane\"></div>" + "<div class=\"edui-emotion-Jtab6 edui-tab-pane\"></div>" + "</div>" + "<div class=\"edui-emotion-JtabIconReview edui-emotion-preview-box\">" + "<img src=\"<%=cover_img%>\" class=\'edui-emotion-JfaceReview edui-emotion-preview-img\'/>" + "</div>" , sourceData : { emotion : { tabNum : 7 , SmilmgName : { 'edui-emotion-Jtab0' : [ 'j_00' , 84 ] , 'edui-emotion-Jtab1' : [ 't_00' , 40 ] , 'edui-emotion-Jtab2' : [ 'w_00' , 52 ] , 'edui-emotion-Jtab3' : [ 'B_00' , 63 ] , 'edui-emotion-Jtab4' : [ 'C_00' , 20 ] , 'edui-emotion-Jtab5' : [ 'i_f' , 50 ] , 'edui-emotion-Jtab6' : [ 'y_00' , 40 ] } , imageFolders : { 'edui-emotion-Jtab0' : 'jx2/' , 'edui-emotion-Jtab1' : 'tsj/' , 'edui-emotion-Jtab2' : 'ldw/' , 'edui-emotion-Jtab3' : 'bobo/' , 'edui-emotion-Jtab4' : 'babycat/' , 'edui-emotion-Jtab5' : 'face/' , 'edui-emotion-Jtab6' : 'youa/' } , imageCss : { 'edui-emotion-Jtab0' : 'jd' , 'edui-emotion-Jtab1' : 'tsj' , 'edui-emotion-Jtab2' : 'ldw' , 'edui-emotion-Jtab3' : 'bb' , 'edui-emotion-Jtab4' : 'cat' , 'edui-emotion-Jtab5' : 'pp' , 'edui-emotion-Jtab6' : 'youa' } , imageCssOffset : { 'edui-emotion-Jtab0' : 35 , 'edui-emotion-Jtab1' : 35 , 'edui-emotion-Jtab2' : 35 , 'edui-emotion-Jtab3' : 35 , 'edui-emotion-Jtab4' : 35 , 'edui-emotion-Jtab5' : 25 , 'edui-emotion-Jtab6' : 35 } , SmileyInfor : { 'edui-emotion-Jtab0' : [ 'Kiss' , 'Love' , 'Yeah' , '啊！' , '背扭' , '顶' , '抖胸' , '88' , '汗' , '瞌睡' , '鲁拉' , '拍砖' , '揉脸' , '生日快乐' , '大笑' , '瀑布汗~' , '惊讶' , '臭美' , '傻笑' , '抛媚眼' , '发怒' , '打酱油' , '俯卧撑' , '气愤' , '?' , '吻' , '怒' , '胜利' , 'HI' , 'KISS' , '不说' , '不要' , '扯花' , '大心' , '顶' , '大惊' , '飞吻' , '鬼脸' , '害羞' , '口水' , '狂哭' , '来' , '发财了' , '吃西瓜' , '套牢' , '害羞' , '庆祝' , '我来了' , '敲打' , '晕了' , '胜利' , '臭美' , '被打了' , '贪吃' , '迎接' , '酷' , '微笑' , '亲吻' , '调皮' , '惊恐' , '耍酷' , '发火' , '害羞' , '汗水' , '大哭' , '' , '加油' , '困' , '你NB' , '晕倒' , '开心' , '偷笑' , '大哭' , '滴汗' , '叹气' , '超赞' , '??' , '飞吻' , '天使' , '撒花' , '生气' , '被砸' , '吓傻' , '随意吐' ] , 'edui-emotion-Jtab1' : [ 'Kiss' , 'Love' , 'Yeah' , '啊！' , '背扭' , '顶' , '抖胸' , '88' , '汗' , '瞌睡' , '鲁拉' , '拍砖' , '揉脸' , '生日快乐' , '摊手' , '睡觉' , '瘫坐' , '无聊' , '星星闪' , '旋转' , '也不行' , '郁闷' , '正Music' , '抓墙' , '撞墙至死' , '歪头' , '戳眼' , '飘过' , '互相拍砖' , '砍死你' , '扔桌子' , '少林寺' , '什么？' , '转头' , '我爱牛奶' , '我踢' , '摇晃' , '晕厥' , '在笼子里' , '震荡' ] , 'edui-emotion-Jtab2' : [ '大笑' , '瀑布汗~' , '惊讶' , '臭美' , '傻笑' , '抛媚眼' , '发怒' , '我错了' , 'money' , '气愤' , '挑逗' , '吻' , '怒' , '胜利' , '委屈' , '受伤' , '说啥呢？' , '闭嘴' , '不' , '逗你玩儿' , '飞吻' , '眩晕' , '魔法' , '我来了' , '睡了' , '我打' , '闭嘴' , '打' , '打晕了' , '刷牙' , '爆揍' , '炸弹' , '倒立' , '刮胡子' , '邪恶的笑' , '不要不要' , '爱恋中' , '放大仔细看' , '偷窥' , '超高兴' , '晕' , '松口气' , '我跑' , '享受' , '修养' , '哭' , '汗' , '啊~' , '热烈欢迎' , '打酱油' , '俯卧撑' , '?' ] , 'edui-emotion-Jtab3' : [ 'HI' , 'KISS' , '不说' , '不要' , '扯花' , '大心' , '顶' , '大惊' , '飞吻' , '鬼脸' , '害羞' , '口水' , '狂哭' , '来' , '泪眼' , '流泪' , '生气' , '吐舌' , '喜欢' , '旋转' , '再见' , '抓狂' , '汗' , '鄙视' , '拜' , '吐血' , '嘘' , '打人' , '蹦跳' , '变脸' , '扯肉' , '吃To' , '吃花' , '吹泡泡糖' , '大变身' , '飞天舞' , '回眸' , '可怜' , '猛抽' , '泡泡' , '苹果' , '亲' , '' , '骚舞' , '烧香' , '睡' , '套娃娃' , '捅捅' , '舞倒' , '西红柿' , '爱慕' , '摇' , '摇摆' , '杂耍' , '招财' , '被殴' , '被球闷' , '大惊' , '理想' , '欧打' , '呕吐' , '碎' , '吐痰' ] , 'edui-emotion-Jtab4' : [ '发财了' , '吃西瓜' , '套牢' , '害羞' , '庆祝' , '我来了' , '敲打' , '晕了' , '胜利' , '臭美' , '被打了' , '贪吃' , '迎接' , '酷' , '顶' , '幸运' , '爱心' , '躲' , '送花' , '选择' ] , 'edui-emotion-Jtab5' : [ '微笑' , '亲吻' , '调皮' , '惊讶' , '耍酷' , '发火' , '害羞' , '汗水' , '大哭' , '得意' , '鄙视' , '困' , '夸奖' , '晕倒' , '疑问' , '媒婆' , '狂吐' , '青蛙' , '发愁' , '亲吻' , '' , '爱心' , '心碎' , '玫瑰' , '礼物' , '哭' , '奸笑' , '可爱' , '得意' , '呲牙' , '暴汗' , '楚楚可怜' , '困' , '哭' , '生气' , '惊讶' , '口水' , '彩虹' , '夜空' , '太阳' , '钱钱' , '灯泡' , '咖啡' , '蛋糕' , '音乐' , '爱' , '胜利' , '赞' , '鄙视' , 'OK' ] , 'edui-emotion-Jtab6' : [ '男兜' , '女兜' , '开心' , '乖乖' , '偷笑' , '大笑' , '抽泣' , '大哭' , '无奈' , '滴汗' , '叹气' , '狂晕' , '委屈' , '超赞' , '??' , '疑问' , '飞吻' , '天使' , '撒花' , '生气' , '被砸' , '口水' , '泪奔' , '吓傻' , '吐舌头' , '点头' , '随意吐' , '旋转' , '困困' , '鄙视' , '狂顶' , '篮球' , '再见' , '欢迎光临' , '恭喜发财' , '稍等' , '我在线' , '恕不议价' , '库房有货' , '货在路上' ] } } } , initContent : function ( _editor , $widget ) { var me = this , emotion = me . sourceData . emotion , lang = _editor . getLang ( 'emotion' ) [ 'static' ] , emotionUrl = UMEDITOR_CONFIG . UMEDITOR_HOME_URL + 'dialogs/emotion/' , options = $ . extend ( { } , lang , { emotion_url : emotionUrl } ) , $root = me . root ( ) ; if ( me . inited ) { me . preventDefault ( ) ; this . switchToFirst ( ) ; return ; } me . inited = true ; editor = _editor ; this . widget = $widget ; emotion . SmileyPath = _editor . options . emotionLocalization === true ? emotionUrl + 'images/' : "http://img.baidu.com/hi/" ; emotion . SmileyBox = me . createTabList ( emotion . tabNum ) ; emotion . tabExist = me . createArr ( emotion . tabNum ) ; options [ 'cover_img' ] = emotion . SmileyPath + ( editor . options . emotionLocalization ? '0.gif' : 'default/0.gif' ) ; $root . html ( $ . parseTmpl ( me . tpl , options ) ) ; me . tabs = $ . eduitab ( { selector : ".edui-emotion-tab-Jpanel" } ) ; me . previewBox = $root . find ( ".edui-emotion-JtabIconReview" ) ; me . previewImg = $root . find ( ".edui-emotion-JfaceReview" ) ; me . initImgName ( ) ; } , initEvent : function ( ) { var me = this ; me . root ( ) . on ( 'click' , function ( e ) { return false ; } ) ; me . root ( ) . delegate ( 'td' , 'mouseover mouseout' , function ( evt ) { var $td = $ ( this ) , url = $td . attr ( 'data-surl' ) || null ; if ( url ) { me [ evt . type ] ( this , url , $td . attr ( 'data-posflag' ) ) ; } return false ; } ) ; me . root ( ) . delegate ( 'td' , 'click' , function ( evt ) { var $td = $ ( this ) , realUrl = $td . attr ( 'data-realurl' ) || null ; if ( realUrl ) { me . insertSmiley ( realUrl . replace ( /'/g , "\\'" ) , evt ) ; } return false ; } ) ; me . tabs . edui ( ) . on ( "beforeshow" , function ( evt ) { var contentId = $ ( evt . target ) . attr ( 'data-context' ) . replace ( /^.*\.(?=[^\s]*$)/ , '' ) ; evt . stopPropagation ( ) ; me . updateTab ( contentId ) ; } ) ; this . switchToFirst ( ) ; } , initImgName : function ( ) { var emotion = this . sourceData . emotion ; for ( var pro in emotion . SmilmgName ) { var tempName = emotion . SmilmgName [ pro ] , tempBox = emotion . SmileyBox [ pro ] , tempStr = "" ; if ( tempBox . length ) return ; for ( var i = 1 ; i <= tempName [ 1 ] ; i ++ ) { tempStr = tempName [ 0 ] ; if ( i < 10 ) tempStr = tempStr + '0' ; tempStr = tempStr + i + '.gif' ; tempBox . push ( tempStr ) ; } } } , /**
         * 切换到第一个tab
         */ switchToFirst : function ( ) { this . root ( ) . find ( ".edui-emotion-Jtabnav .edui-tab-text:first" ) . trigger ( 'click' ) ; } , updateTab : function ( contentBoxId ) { var me = this , emotion = me . sourceData . emotion ; me . autoHeight ( contentBoxId ) ; if ( ! emotion . tabExist [ contentBoxId ] ) { emotion . tabExist [ contentBoxId ] = true ; me . createTab ( contentBoxId ) ; } } , autoHeight : function ( ) { this . widget . height ( this . root ( ) + 2 ) ; } , createTabList : function ( tabNum ) { var obj = { } ; for ( var i = 0 ; i < tabNum ; i ++ ) { obj [ "edui-emotion-Jtab" + i ] = [ ] ; } return obj ; } , mouseover : function ( td , srcPath , posFlag ) { posFlag -= 0 ; $ ( td ) . css ( 'backgroundColor' , '#ACCD3C' ) ; this . previewImg . css ( "backgroundImage" , "url(" + srcPath + ")" ) ; posFlag && this . previewBox . addClass ( 'edui-emotion-preview-left' ) ; this . previewBox . show ( ) ; } , mouseout : function ( td ) { $ ( td ) . css ( 'backgroundColor' , 'transparent' ) ; this . previewBox . removeClass ( 'edui-emotion-preview-left' ) . hide ( ) ; } , insertSmiley : function ( url , evt ) { var obj = { src : url } ; obj . _src = obj . src ; editor . execCommand ( 'insertimage' , obj ) ; if ( ! evt . ctrlKey ) { this . previewBox . removeClass ( 'edui-emotion-preview-left' ) . hide ( ) ; this . widget . edui ( ) . hide ( ) ; } } , createTab : function ( contentBoxId ) { var faceVersion = "?v=1.1" , me = this , $contentBox = this . root ( ) . find ( "." + contentBoxId ) , emotion = me . sourceData . emotion , imagePath = emotion . SmileyPath + emotion . imageFolders [ contentBoxId ] , positionLine = 11 / 2 , iWidth = iHeight = 35 , iColWidth = 3 , tableCss = emotion . imageCss [ contentBoxId ] , cssOffset = emotion . imageCssOffset [ contentBoxId ] , textHTML = [ '<table border="1" class="edui-emotion-smileytable">' ] , i = 0 , imgNum = emotion . SmileyBox [ contentBoxId ] . length , imgColNum = 11 , faceImage , sUrl , realUrl , posflag , offset , infor ; for ( ; i < imgNum ; ) { textHTML . push ( '<tr>' ) ; for ( var j = 0 ; j < imgColNum ; j ++ , i ++ ) { faceImage = emotion . SmileyBox [ contentBoxId ] [ i ] ; if ( faceImage ) { sUrl = imagePath + faceImage + faceVersion ; realUrl = imagePath + faceImage ; posflag = j < positionLine ? 0 : 1 ; offset = cssOffset * i * ( - 1 ) - 1 ; infor = emotion . SmileyInfor [ contentBoxId ] [ i ] ; textHTML . push ( '<td  class="edui-emotion-' + tableCss + '" data-surl="' + sUrl + '" data-realurl="' + realUrl + '" data-posflag="' + posflag + '" align="center">' ) ; textHTML . push ( '<span>' ) ; textHTML . push ( '<img  style="background-position:left ' + offset + 'px;" title="' + infor + '" src="' + emotion . SmileyPath + ( editor . options . emotionLocalization ? '0.gif" width="' : 'default/0.gif" width="' ) + iWidth + '" height="' + iHeight + '"></img>' ) ; textHTML . push ( '</span>' ) ; } else { textHTML . push ( '<td bgcolor="#FFFFFF">' ) ; } textHTML . push ( '</td>' ) ; } textHTML . push ( '</tr>' ) ; } textHTML . push ( '</table>' ) ; textHTML = textHTML . join ( "" ) ; $contentBox . html ( textHTML ) ; } , createArr : function ( tabNum ) { var arr = [ ] ; for ( var i = 0 ; i < tabNum ; i ++ ) { arr [ i ] = 0 ; } return arr ; } , width : 603 , height : 400 } ) ; } ) ( ) ;