diff --git a/modules/editor/components/emoticon/tpl/popup.js b/modules/editor/components/emoticon/tpl/popup.js index e6008554c..156422d4f 100644 --- a/modules/editor/components/emoticon/tpl/popup.js +++ b/modules/editor/components/emoticon/tpl/popup.js @@ -1,39 +1,52 @@ -function insertEmoticon(obj) { - if(typeof(opener)=='undefined') return; +jQuery(function($){ - var url = obj.src.replace(request_uri,''); - var text = "\"emoticon\""; - - opener.editorFocus(opener.editorPrevSrl); +var is_popup = window._isPoped; - var iframe_obj = opener.editorGetIFrame(opener.editorPrevSrl) +/** + * @brief Get emoticon list by name + * @params String emoticon name + */ +function getEmoticons(emoName) { + var params = {component:'emoticon', emoticon:emoName, method:'getEmoticonList'}; + var resp_tags = 'error message emoticons'.split(' '); - opener.editorReplaceHTML(iframe_obj, text); - self.focus(); -} - -/* 선택된 이모티콘 목록을 가져옴 */ -function getEmoticons(emoticon) { - var params = new Array(); - params['component'] = "emoticon"; - params['emoticon'] = emoticon; - params['method'] = "getEmoticonList"; - - var response_tags = new Array('error','message','emoticons'); - exec_xml('editor', 'procEditorCall', params, completeGetEmoticons, response_tags); + exec_xml('editor', 'procEditorCall', params, completeGetEmoticons, resp_tags); } +/** + * @brief Load callback + */ function completeGetEmoticons(ret_obj) { var emoticons = ret_obj['emoticons'].split("\n"); + var html = []; - var zone = xGetElementById("popBody"); - var html = ""; for(var i=0;i'; + html[html.length] = ''; } - xInnerHtml(zone, html); - setFixedPopupSize(); - setTimeout(setFixedPopupSize,1000); + jQuery('#popBody').html(html).delegate('img.emoticon', 'click', insertEmoticon); + + if (_isPoped) { + setFixedPopupSize(); + setTimeout(setFixedPopupSize,1000); + } } -jQuery(window).load(function() { getEmoticons('msn'); }); +/** + * @brief Insert a selected emoticon into the document + * @params Event jQuery event + */ +function insertEmoticon(event) { + var url, html, iframe, win = is_popup?opener:window; + + if(!win) return; + + win.editorFocus(opener.editorPrevSrl); + win.editorRelKeys[opener.editorPrevSrl].pasteHTML(html); + + if (is_popup) self.focus(); +} + +// load default emoticon set +getEmoticons('msn'); + +});