You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
186 lines
6.0 KiB
186 lines
6.0 KiB
window.onload = function () { |
|
editor.setOpt({ |
|
emotionLocalization: false |
|
}); |
|
|
|
emotion.SmileyPath = editor.options.emotionLocalization === true ? 'images/' : "http://img.baidu.com/hi/"; |
|
emotion.SmileyBox = createTabList(emotion.tabNum); |
|
emotion.tabExist = createArr(emotion.tabNum); |
|
|
|
initImgName(); |
|
initEvtHandler("tabHeads"); |
|
}; |
|
|
|
function initImgName() { |
|
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); |
|
} |
|
} |
|
} |
|
|
|
function initEvtHandler(conId) { |
|
var tabHeads = $G(conId); |
|
for (var i = 0, j = 0; i < tabHeads.childNodes.length; i++) { |
|
var tabObj = tabHeads.childNodes[i]; |
|
if (tabObj.nodeType == 1) { |
|
domUtils.on(tabObj, "click", (function (index) { |
|
return function () { |
|
switchTab(index); |
|
}; |
|
})(j)); |
|
j++; |
|
} |
|
} |
|
switchTab(0); |
|
$G("tabIconReview").style.display = 'none'; |
|
} |
|
|
|
function InsertSmiley(url, evt) { |
|
var obj = { |
|
src: editor.options.emotionLocalization ? editor.options.UEDITOR_HOME_URL + "dialogs/emotion/" + url : url |
|
}; |
|
obj._src = obj.src; |
|
editor.execCommand('insertimage', obj); |
|
if (!evt.ctrlKey) { |
|
dialog.popup.hide(); |
|
} |
|
} |
|
|
|
function switchTab(index) { |
|
|
|
autoHeight(index); |
|
if (emotion.tabExist[index] == 0) { |
|
emotion.tabExist[index] = 1; |
|
createTab('tab' + index); |
|
} |
|
//获取呈现元素句柄数组 |
|
var tabHeads = $G("tabHeads").getElementsByTagName("span"), |
|
tabBodys = $G("tabBodys").getElementsByTagName("div"), |
|
i = 0, L = tabHeads.length; |
|
//隐藏所有呈现元素 |
|
for (; i < L; i++) { |
|
tabHeads[i].className = ""; |
|
tabBodys[i].style.display = "none"; |
|
} |
|
//显示对应呈现元素 |
|
tabHeads[index].className = "focus"; |
|
tabBodys[index].style.display = "block"; |
|
} |
|
|
|
function autoHeight(index) { |
|
var iframe = dialog.getDom("iframe"), |
|
parent = iframe.parentNode.parentNode; |
|
switch (index) { |
|
case 0: |
|
iframe.style.height = "380px"; |
|
parent.style.height = "392px"; |
|
break; |
|
case 1: |
|
iframe.style.height = "220px"; |
|
parent.style.height = "232px"; |
|
break; |
|
case 2: |
|
iframe.style.height = "260px"; |
|
parent.style.height = "272px"; |
|
break; |
|
case 3: |
|
iframe.style.height = "300px"; |
|
parent.style.height = "312px"; |
|
break; |
|
case 4: |
|
iframe.style.height = "140px"; |
|
parent.style.height = "152px"; |
|
break; |
|
case 5: |
|
iframe.style.height = "260px"; |
|
parent.style.height = "272px"; |
|
break; |
|
case 6: |
|
iframe.style.height = "230px"; |
|
parent.style.height = "242px"; |
|
break; |
|
default: |
|
|
|
} |
|
} |
|
|
|
|
|
function createTab(tabName) { |
|
var faceVersion = "?v=1.1", //版本号 |
|
tab = $G(tabName), //获取将要生成的Div句柄 |
|
imagePath = emotion.SmileyPath + emotion.imageFolders[tabName], //获取显示表情和预览表情的路径 |
|
positionLine = 11 / 2, //中间数 |
|
iWidth = iHeight = 35, //图片长宽 |
|
iColWidth = 3, //表格剩余空间的显示比例 |
|
tableCss = emotion.imageCss[tabName], |
|
cssOffset = emotion.imageCssOffset[tabName], |
|
textHTML = ['<table class="smileytable">'], |
|
i = 0, imgNum = emotion.SmileyBox[tabName].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[tabName][i]; |
|
if (faceImage) { |
|
sUrl = imagePath + faceImage + faceVersion; |
|
realUrl = imagePath + faceImage; |
|
posflag = j < positionLine ? 0 : 1; |
|
offset = cssOffset * i * (-1) - 1; |
|
infor = emotion.SmileyInfor[tabName][i]; |
|
|
|
textHTML.push('<td class="' + tableCss + '" border="1" width="' + iColWidth + '%" style="border-collapse:collapse;" align="center" bgcolor="transparent" onclick="InsertSmiley(\'' + realUrl.replace(/'/g, "\\'") + '\',event)" onmouseover="over(this,\'' + sUrl + '\',\'' + posflag + '\')" onmouseout="out(this)">'); |
|
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 width="' + iColWidth + '%" bgcolor="#FFFFFF">'); |
|
} |
|
textHTML.push('</td>'); |
|
} |
|
textHTML.push('</tr>'); |
|
} |
|
textHTML.push('</table>'); |
|
textHTML = textHTML.join(""); |
|
tab.innerHTML = textHTML; |
|
} |
|
|
|
function over(td, srcPath, posFlag) { |
|
td.style.backgroundColor = "#ACCD3C"; |
|
$G('faceReview').style.backgroundImage = "url(" + srcPath + ")"; |
|
if (posFlag == 1) $G("tabIconReview").className = "show"; |
|
$G("tabIconReview").style.display = 'block'; |
|
} |
|
|
|
function out(td) { |
|
td.style.backgroundColor = "transparent"; |
|
var tabIconRevew = $G("tabIconReview"); |
|
tabIconRevew.className = ""; |
|
tabIconRevew.style.display = 'none'; |
|
} |
|
|
|
function createTabList(tabNum) { |
|
var obj = {}; |
|
for (var i = 0; i < tabNum; i++) { |
|
obj["tab" + i] = []; |
|
} |
|
return obj; |
|
} |
|
|
|
function createArr(tabNum) { |
|
var arr = []; |
|
for (var i = 0; i < tabNum; i++) { |
|
arr[i] = 0; |
|
} |
|
return arr; |
|
} |
|
|
|
|