-pg电子官方网址入口
/*******************************************************************************
* kindeditor - wysiwyg html editor for internet
* pg电子平台网站 copyright (c) 2006-2011 kindsoft.net
*
* @author roddy
* @site http://www.kindsoft.net/
* @licence http://www.kindsoft.net/license.php
*******************************************************************************/
kindeditor.plugin('emoticons', function(k) {
var self = this, name = 'emoticons',
path = (self.emoticonspath || self.pluginspath 'emoticons/images/'),
allowpreview = self.allowpreviewemoticons === undefined ? true : self.allowpreviewemoticons,
currentpagenum = 1;
self.clicktoolbar(name, function() {
var rows = 5, cols = 9, total = 135, startnum = 0,
cells = rows * cols, pages = math.ceil(total / cells),
colshalf = math.floor(cols / 2),
wrapperdiv = k(''),
elements = [],
menu = self.createmenu({
name : name,
beforeremove : function() {
removeevent();
}
});
menu.div.append(wrapperdiv);
var previewdiv, previewimg;
if (allowpreview) {
previewdiv = k('').css('right', 0);
previewimg = k('');
wrapperdiv.append(previewdiv);
previewdiv.append(previewimg);
}
function bindcellevent(cell, j, num) {
if (previewdiv) {
cell.mouseover(function() {
if (j > colshalf) {
previewdiv.css('left', 0);
previewdiv.css('right', '');
} else {
previewdiv.css('left', '');
previewdiv.css('right', 0);
}
previewimg.attr('src', path num '.gif');
k(this).addclass('ke-on');
});
} else {
cell.mouseover(function() {
k(this).addclass('ke-on');
});
}
cell.mouseout(function() {
k(this).removeclass('ke-on');
});
cell.click(function(e) {
self.inserthtml('').hidemenu().focus();
e.stop();
});
}
function createemoticonstable(pagenum, parentdiv) {
var table = document.createelement('table');
parentdiv.append(table);
if (previewdiv) {
k(table).mouseover(function() {
previewdiv.show('block');
});
k(table).mouseout(function() {
previewdiv.hide();
});
elements.push(k(table));
}
table.classname = 'ke-table';
table.cellpadding = 0;
table.cellspacing = 0;
table.border = 0;
var num = (pagenum - 1) * cells startnum;
for (var i = 0; i < rows; i ) {
var row = table.insertrow(i);
for (var j = 0; j < cols; j ) {
var cell = k(row.insertcell(j));
cell.addclass('ke-cell');
bindcellevent(cell, j, num);
var span = k('')
.css('background-position', '-' (24 * num) 'px 0px')
.css('background-image', '');
cell.append(span);
elements.push(cell);
num ;
}
}
return table;
}
var table = createemoticonstable(currentpagenum, wrapperdiv);
function removeevent() {
k.each(elements, function() {
this.unbind();
});
}
var pagediv;
function bindpageevent(el, pagenum) {
el.click(function(e) {
removeevent();
table.parentnode.removechild(table);
pagediv.remove();
table = createemoticonstable(pagenum, wrapperdiv);
createpagetable(pagenum);
currentpagenum = pagenum;
e.stop();
});
}
function createpagetable(currentpagenum) {
pagediv = k('');
wrapperdiv.append(pagediv);
for (var pagenum = 1; pagenum <= pages; pagenum ) {
if (currentpagenum !== pagenum) {
var a = k('');
bindpageevent(a, pagenum);
pagediv.append(a);
elements.push(a);
} else {
pagediv.append(k('@[' pagenum ']'));
}
pagediv.append(k('@ '));
}
}
createpagetable(currentpagenum);
});
});