141 lines
3.6 KiB
JavaScript
141 lines
3.6 KiB
JavaScript
// htmlArea v3.0 - Copyright (c) 2002, 2003 interactivetools.com, inc.
|
|
// This copyright notice MUST stay intact for use (see license.txt).
|
|
//
|
|
// Portions (c) dynarch.com, 2003
|
|
//
|
|
// A free WYSIWYG editor replacement for <textarea> fields.
|
|
// For full source code and docs, visit http://www.interactivetools.com/
|
|
//
|
|
// Version 3.0 developed by Mihai Bazon.
|
|
// http://dynarch.com/mishoo
|
|
//
|
|
// $Id:popup.js 929 2008-01-09 21:10:59Z ray $
|
|
if(typeof Xinha == 'undefined')
|
|
Xinha = window.opener.Xinha;
|
|
|
|
// Backward compatibility will be removed some time or not?
|
|
HTMLArea = Xinha;
|
|
|
|
function getAbsolutePos(el) {
|
|
var r = { x: el.offsetLeft, y: el.offsetTop };
|
|
if (el.offsetParent) {
|
|
var tmp = getAbsolutePos(el.offsetParent);
|
|
r.x += tmp.x;
|
|
r.y += tmp.y;
|
|
}
|
|
return r;
|
|
}
|
|
|
|
function comboSelectValue(c, val) {
|
|
var ops = c.getElementsByTagName("option");
|
|
for (var i = ops.length; --i >= 0;) {
|
|
var op = ops[i];
|
|
op.selected = (op.value == val);
|
|
}
|
|
c.value = val;
|
|
}
|
|
|
|
function __dlg_onclose() {
|
|
opener.Dialog._return(null);
|
|
}
|
|
// ray: I mark this on deprecated, because bottom is never used
|
|
function __dlg_init( bottom, win_dim ) {
|
|
__xinha_dlg_init(win_dim);
|
|
}
|
|
|
|
function __xinha_dlg_init( win_dim ) {
|
|
if(window.__dlg_init_done) return true;
|
|
|
|
if(window.opener._editor_skin) {
|
|
var head = document.getElementsByTagName("head")[0];
|
|
var link = document.createElement("link");
|
|
link.type = "text/css";
|
|
link.href = window.opener._editor_url + 'skins/' + window.opener._editor_skin + '/skin.css';
|
|
link.rel = "stylesheet";
|
|
head.appendChild(link);
|
|
}
|
|
if (!window.dialogArguments && opener.Dialog._arguments)
|
|
{
|
|
window.dialogArguments = opener.Dialog._arguments;
|
|
}
|
|
|
|
|
|
var page = Xinha.pageSize(window);
|
|
if ( !win_dim )
|
|
{
|
|
win_dim = {width:page.x, height: page.y};
|
|
}
|
|
window.resizeTo(win_dim.width, win_dim.height);
|
|
|
|
var dim = Xinha.viewportSize(window);
|
|
|
|
window.resizeBy(0, page.y - dim.y);
|
|
|
|
if(win_dim.top && win_dim.left)
|
|
{
|
|
window.moveTo(win_dim.left,win_dim.top);
|
|
}
|
|
else
|
|
{
|
|
if (!Xinha.is_ie)
|
|
{
|
|
var x = opener.screenX + (opener.outerWidth - win_dim.width) / 2;
|
|
var y = opener.screenY + (opener.outerHeight - win_dim.height) / 2;
|
|
}
|
|
else
|
|
{//IE does not have window.outer... , so center it on the screen at least
|
|
var x = (self.screen.availWidth - win_dim.width) / 2;
|
|
var y = (self.screen.availHeight - win_dim.height) / 2;
|
|
}
|
|
window.moveTo(x,y);
|
|
}
|
|
|
|
Xinha.addDom0Event(document.body, 'keypress', __dlg_close_on_esc);
|
|
window.__dlg_init_done = true;
|
|
}
|
|
|
|
function __dlg_translate(context) {
|
|
var types = ["input", "select", "legend", "span", "option", "td", "th", "button", "div", "label", "a", "img"];
|
|
for (var type = 0; type < types.length; ++type) {
|
|
var spans = document.getElementsByTagName(types[type]);
|
|
for (var i = spans.length; --i >= 0;) {
|
|
var span = spans[i];
|
|
if (span.firstChild && span.firstChild.data) {
|
|
var txt = Xinha._lc(span.firstChild.data, context);
|
|
if (txt) {
|
|
span.firstChild.data = txt;
|
|
}
|
|
}
|
|
if (span.title) {
|
|
var txt = Xinha._lc(span.title, context);
|
|
if (txt) {
|
|
span.title = txt;
|
|
}
|
|
}
|
|
if (span.tagName.toLowerCase() == 'input' &&
|
|
(/^(button|submit|reset)$/i.test(span.type))) {
|
|
var txt = Xinha._lc(span.value, context);
|
|
if (txt) {
|
|
span.value = txt;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
document.title = Xinha._lc(document.title, context);
|
|
}
|
|
|
|
// closes the dialog and passes the return info upper.
|
|
function __dlg_close(val) {
|
|
opener.Dialog._return(val);
|
|
window.close();
|
|
}
|
|
|
|
function __dlg_close_on_esc(ev) {
|
|
ev || (ev = window.event);
|
|
if (ev.keyCode == 27) {
|
|
__dlg_close(null);
|
|
return false;
|
|
}
|
|
return true;
|
|
}
|