').parent();
}
t.attr('class', 'eArea _quote').attr('type', 'quote');
});
},
API_GETTING_CONTENT : function(sender, params) {
var self = this;
var seq = params[0];
var obj = params[1];
obj.children('div._quote').each(function(){
var quote = $(this).children('blockquote.citation');
quote.parent().before(quote).remove();
});
},
API_OPEN_QUOTE_EDITOR : function(sender, params) {
var self = this;
var seq = params[0];
var box = params[1];
var bef = params[2]; // selection to be before this editor
var cfg = this.configs[seq];
if (!cfg) cfg = this.create(seq);
if (box) {
box.hide().after(cfg.editor);
cfg.textarea.val( untranslate(box.find('p').html().replace(/
/ig, '\n')) );
cfg.source.val(box.find('cite').html());
} else {
self.cast('RESET_EDITOR', [seq, cfg.editor, 'QUOTE']);
cfg.editor.appendTo(configs[seq].editArea);
}
cfg.editor.show().find('textarea').focus();
this.cast('SCROLL_INTO_VIEW', [seq, cfg.editor]);
},
API_CLOSE_QUOTE_EDITOR : function(sender, params) {
var seq = params[0];
var save = params[1];
var cfg = this.configs[seq];
var box = cfg.editor.prev('div._quote:hidden');
var txt = $.trim(cfg.textarea.val());
if (save && txt) {
var newBox = $('
');
var quote = $('
').append( $('
').html( translate(txt).replace(/\r?\n/g, '
') ) ).appendTo(newBox);
var src = $.trim(cfg.source.val());
if(src == cfg.source.attr('title')) src = '';
if(src) $('').html(translate_cite(src)).appendTo(quote);
box.remove();
this.cast('SAVE_PARAGRAPH', [seq, cfg.editor, box=newBox, 'QUOTE']);
} else {
box.show();
}
if(!box.length) box = cfg.editor.prev('div.eArea');
this.cast('SELECT_PARAGRAPH', [seq, box, box, box]);
cfg.editor.hide().appendTo(configs[seq].writeArea);
}
});
editor.registerPlugin(new QuoteWriter);
var MovieWriter = xe.createPlugin('MovieWriter', {
configs : {},
init : function() {
this.configs = {};
},
create : function(seq) {
var self = this;
var _editor = configs[seq].writeArea.find('>div.movie');
var _textarea = _editor.find('textarea');
self.cast('ADD_DEFAULT_EDITOR_ACTION', [seq, _editor, 'MOVIE']);
this.configs[seq] = {
editor : _editor,
embed : _textarea.eq(0),
desc : _textarea.eq(1),
source : _editor.find('input[type=text]')
};
return this.configs[seq];
},
API_SETTING_CONTENT : function(sender, params) {
var self = this;
var seq = params[0];
var obj = params[1];
obj.children('object,embed,div.xe_dr_mov,div:has(div.embed)')
.each(function(){
var t = $(this);
if (!t.is('div')) t = t.wrap('').parent();
t.attr('class', 'eArea _movie').attr('type', 'movie');
t.find('>embed,>object').wrap('
');
t.find('>p.cite>cite').unwrap();
});
},
API_GETTING_CONTENT : function(sender, params) {
var self = this;
var seq = params[0];
var obj = params[1];
var mov = obj.children('div._movie').children('embed,object');
// TODO : 플래시 태그면 embed, object를 모두 사용하도록 변환
obj.parent().before(mov).remove();
},
API_OPEN_MOVIE_EDITOR : function(sender, params) {
var self = this;
var seq = params[0];
var box = params[1];
var bef = params[2]; // selection to be before this editor
var cfg = this.configs[seq];
if (!cfg) cfg = this.create(seq);
self.cast('RESET_EDITOR', [seq, cfg.editor, 'MOVIE']);
if (box) {
var embed = $.trim( box.find('>div.embed').html() );
var desc = $.trim( box.find('>p.desc').html() );
var source = $.trim( box.find('>cite').html() );
cfg.embed.val( embed );
cfg.desc.val( desc );
cfg.source.val( source );
box.hide().after(cfg.editor);
} else if (bef) {
bef.after(cfg.editor);
} else {
cfg.editor.appendTo(configs[seq].editArea);
}
cfg.editor.show().find('textarea:first').focus();
this.cast('SCROLL_INTO_VIEW', [seq, cfg.editor]);
},
API_CLOSE_MOVIE_EDITOR : function(sender, params) {
var seq = params[0];
var save = params[1];
var cfg = this.configs[seq];
var box = cfg.editor.prev('div._movie:hidden');
var val = $.trim(cfg.embed.val());
if (save && val) {
var newBox = $('
').append( $('
').html(val) );
var desc = $.trim(cfg.desc.val());
var source = $.trim(cfg.source.val());
if (desc == cfg.desc.attr('title')) desc = '';
if (source == cfg.source.attr('title')) source = '';
if (desc) newBox.append( $('
').text(desc) );
if (source) newBox.append( $('').html(translate_cite(source)) );
box.remove();
this.cast('SAVE_PARAGRAPH', [seq, cfg.editor, box=newBox, 'MOVIE']);
} else {
box.show();
}
if(!box.length) box = cfg.editor.prev('div.eArea');
this.cast('SELECT_PARAGRAPH', [seq, box, box, box]);
cfg.editor.hide().appendTo(configs[seq].writeArea);
}
});
editor.registerPlugin(new MovieWriter);
// Image Writer
var ImageWriter = xe.createPlugin('ImageWriter', {
configs : null,
_iframe : null,
_form : null,
init : function() {
var target = 'xe_dr_imgframe_'+(new Date).getTime();
this.configs = {};
this._iframe = $('