git-svn-id: https://192.168.0.254/svn/Proyectos.MatritumCantat_Web/trunk@2 8e3496fd-7892-4c45-be36-0ff06e9dacc6
146 lines
4.2 KiB
JavaScript
146 lines
4.2 KiB
JavaScript
/**
|
|
* DOCLink 1.4.x
|
|
* @version $Id: dldialog.js 765 2009-01-05 20:55:57Z mathias $
|
|
* @package DOCLink_1.4
|
|
* @copyright (C) 2003-2009 Joomlatools
|
|
* @license http://www.gnu.org/copyleft/gpl.html GNU/GPL
|
|
* @link http://www.joomlatools.eu/ Official website
|
|
**/
|
|
|
|
// Based on htmlArea3 dialog.js
|
|
// htmlArea v3.0 - Copyright (c) 2003-2004 interactivetools.com, inc.
|
|
// This copyright notice MUST stay intact for use (see license.txt).
|
|
// Portions (c) dynarch.com, 2003-2004
|
|
|
|
// should be a function, the return handler of the currently opened dialog.
|
|
DLDialog._return = null;
|
|
|
|
// constant, the currently opened dialog
|
|
DLDialog._modal = null;
|
|
|
|
// the dialog will read it's args from this variable
|
|
DLDialog._arguments = null;
|
|
|
|
// the dialog will read it's args from this variable
|
|
DLDialog._features = null;
|
|
|
|
function DLDialog(url, action, arguments, features)
|
|
{
|
|
if (typeof arguments == "undefined") {
|
|
arguments = window; // pass this window object by default
|
|
}
|
|
|
|
DLDialog._arguments = arguments;
|
|
DLDialog._features = features;
|
|
|
|
//open dialog
|
|
if(Browser.is_ie)
|
|
DLDialog._ieOpenDialog(url, action, features['modal'], features);
|
|
else
|
|
DLDialog._geckoOpenModal(url, action, features['modal'], features);
|
|
};
|
|
|
|
DLDialog._geckoOpenModal = function(url, action, modal, features) {
|
|
|
|
//center dialog
|
|
if(features.center == 'yes') {
|
|
var x = (screen.availWidth - features.width ) / 2;
|
|
var y = (screen.availHeight - features.height) / 2;
|
|
|
|
features.screenX = x;
|
|
features.screenY = y;
|
|
}
|
|
|
|
//convert to string
|
|
sfeatures = features.toString();
|
|
var dlg = window.open(url, "hadialog", sfeatures);
|
|
|
|
DLDialog._modal = dlg;
|
|
|
|
// capture some window's events
|
|
function capwin(w) {
|
|
DLDialog._addEvent(w, "click", DLDialog._parentEvent);
|
|
DLDialog._addEvent(w, "mousedown", DLDialog._parentEvent);
|
|
DLDialog._addEvent(w, "focus", DLDialog._parentEvent);
|
|
};
|
|
// release the captured events
|
|
function relwin(w) {
|
|
DLDialog._removeEvent(w, "click", DLDialog._parentEvent);
|
|
DLDialog._removeEvent(w, "mousedown", DLDialog._parentEvent);
|
|
DLDialog._removeEvent(w, "focus", DLDialog._parentEvent);
|
|
};
|
|
capwin(window);
|
|
// capture other frames
|
|
for (var i = 0; i < window.frames.length; capwin(window.frames[i++]));
|
|
// make up a function to be called when the Dialog ends.
|
|
DLDialog._return = function (val) {
|
|
//release capture
|
|
relwin(window);
|
|
if(action && val) {
|
|
action(val);
|
|
}
|
|
// capture other frames
|
|
for (var i = 0; i < window.frames.length; relwin(window.frames[i++]));
|
|
DLDialog._modal = null;
|
|
};
|
|
};
|
|
|
|
DLDialog._ieOpenDialog = function(url, action, modal, features) {
|
|
|
|
features.width = features.width + 'px';
|
|
features.height = features.height + 'px';
|
|
|
|
//convert to string
|
|
sfeatures = features.toString();
|
|
|
|
sfeatures = sfeatures.replace(/\,/gi, ';')
|
|
sfeatures = sfeatures.replace(/\=/gi, ':')
|
|
sfeatures = sfeatures.replace(/scrollbars/gi, 'scroll')
|
|
sfeatures = sfeatures.replace(/left/gi, 'dialogLeft')
|
|
sfeatures = sfeatures.replace(/top/gi, 'dialogTop')
|
|
sfeatures = sfeatures.replace(/width/gi, 'dialogWidth')
|
|
sfeatures = sfeatures.replace(/height/gi, 'dialogHeight')
|
|
if ((sfeatures.search('scroll')) == -1) {
|
|
sfeatures += ";scroll:no"
|
|
}
|
|
if (sfeatures.search('status') == -1) {
|
|
sfeatures += ";status:no"
|
|
}
|
|
if (sfeatures.search('help') == -1) {
|
|
sfeatures += ";help:no"
|
|
}
|
|
|
|
if (modal == 'no') {
|
|
var val = window.showModelessDialog(url, DLDialog._arguments, sfeatures)
|
|
} else {
|
|
var val = window.showModalDialog(url, DLDialog._arguments, sfeatures)
|
|
}
|
|
|
|
if(action && val) {
|
|
action(val);
|
|
}
|
|
}
|
|
|
|
//Events
|
|
DLDialog._addEvent = function(el, evname, event) {
|
|
if (Browser.is_ie) {
|
|
el.attachEvent("on" + evname, event);
|
|
} else {
|
|
el.addEventListener(evname, event, true);
|
|
}
|
|
};
|
|
|
|
DLDialog._removeEvent = function(el, evname, event) {
|
|
if (Browser.is_ie) {
|
|
el.detachEvent("on" + evname, event);
|
|
} else {
|
|
el.removeEventListener(evname, event, true);
|
|
}
|
|
};
|
|
|
|
DLDialog._parentEvent = function(ev) {
|
|
setTimeout( function() { if (DLDialog._modal && !DLDialog._modal.closed) { DLDialog._modal.focus() } }, 50);
|
|
if (DLDialog._modal && !DLDialog._modal.closed) {
|
|
DOCLink._stopEvent(ev);
|
|
}
|
|
}; |